技术分析:深入剖析RAID HBA与架构

时间:2011-04-11   来源:   网友评论:0   人气: 3581 作者:

一般的RAID HBA 有下面形态的硬件架构:

IOP +IOC

1.ASIC IOP +IOC

2.FPGA ,CPLD 的IOP +ASIC IOC

RoC (RAID on Chip)

1.ASIC 的RoC

2.FPGA的RoC

ASIC (Application-specific Ic) 这种要Tape out的(好像1000万起跳吧忘了价格..) ,要有量才合算。

LSI 这种Fabless(无半导体工厂) SoC Designer 厂商当然都是ASIC 产品...

FPGA or CPLD 可编程逻辑们阵列,这就比较有弹性了。

比如说一些SSD RAID、DRAM RAID,都是用FPGA实现,但是如果量大是有点不合算。

像H牌这类,部份XOR 就是用FPGA or CPLD,PH

至于FPGA 做SAS PHY 仿真就不多了。 

从RAID Controller的观点来看,它是基于单纯的SAS/SATA HBA上提供了RAID功能(RAID 0, RAID 1, RAID 5, RAID 6,甚至是混合阵列等等..),有些RAID Controller在单个硬盘驱动器情况下可以直接被识别,有些则是必须要建立阵列(Array)才能使用,可能根据Option ROM载入的内容而有所差异。下面是一张AMCC/3ware早期的9690SA-8i RAID Controller,这是一款Hardware RAID,由PowerPC处理器、ASIC XOR Accelerator和Emulex IOC组成经典的StorSwitch分离式架构。在3ware还没被LSI买下以前,长年以来都是应用这种架构,3ware对于早期开发SATA产品中,面对SCSI产品这个架构有相当的优势性,不过现在颇老矣...

RAID HBA与架构评述 

最左边那块是存放韧体(Firmware)代码的flash,由于StorSwitch架构没有太多的详细资料,所以我的猜测是这样的:那颗 PowerPC的处理器——PPC405CR提供266MHz的时钟频率,这颗处理器一般的用途可能是一些平常I/O处理,例如中断执行、flow control、另外还包括了对于RAID code的执行,AMCC握有PowerPC的授权后,不用白不用。中间那颗是AMCC特制的ASIC XOR加速器——G133 RAID engine,提供大量的DMA通道(32条,StorSwitch架构的特色之一)给更多的Storage使用,附加XOR和RAID 6所使用的GF硬件加速设计,PPC405CR加上G133 RAID engine应该就是一个完整的IOP(I/O 处理器)架构。根据AMCC/3ware之前相关产品资料来看,Cache Memory部分应该是从AMCC ASIC XOR加速器连接,IOC则是使用Emulex的IOC 500S,提供两个wide-port(各包含4条SAS通道)的连接。

就我以前拿4颗Seagate的15k.6 146GB组成RAID 5后进行测试,最佳的情况都无法突破1GB/s的顺序读写传输速度,故此我是认为bottleneck应该是卡在host-bus(主机总线)的带宽问题,也许有可能的情况就是AMCC ASIC XOR加速器连接IOC 500S是用PCI-X bus。当然,这些仅仅是我的一些猜测,其实纵观3ware后期产品来看,并没有太多的改善,不管是9550系列或着9650系列,software部分我倒是认为作的不差。下面是一张LSI的SAS 9211-8i的HBA,提供了IT/IR双模式,在单个硬盘连接情况下,可以直接被识别使用:

RAID HBA与架构评述 

这块HBA使用了LSISAS2008芯片,是Hardware RAID架构,内置了一颗PowerPC——PPC440 at 533MHz的处理器,LSISAS2008的特点是支持了6Gb/s介面的SAS 2.0规格,目前被广泛应用在HBA、ROMB方案下。这颗芯片提供了基础RAID功能,可以从官方文件来看是用来取代LSISAS1068/E的,仅拥有入门级(entry-level)的性能,他跟同门师兄——LSISAS2108相比,可以说是差了一大截,他没有任何XOR硬件加速设计,没有内存控制器来连接外部内存作为Cache Memory,光缺少这两种特征,足以让RAID性能受到严重的打击。从Intel的一份文件显示,芯片里面整合了一块2MB的context RAM可以用来做为buffer;支持MSI-X特性、IRQ x15,对于SMP/CMP系统来说,在大量I/O的情况下会有所帮助。

在HBA方案中,提供IT(Initiator and Target)模式作为原生SAS模式支持(thx 注这是很特别状况)。

另一种IR(Integrated RAID)模式提供了基础RAID功能实现(RAID 0、RAID 1、RAID 10和RAID 1E),在LSI专有的Fusion-MPT架构,应用了子处理器(pRoCessor)来执行对I/ O的相关操作或着有关RAID的运算。另外ROMB设计方案中,提供一种RAID key的小块物理PCB插件,如下图所示:

RAID HBA与架构评述 

透过这个插件而外提供RAID 5模式,不过前面说过,由于没有了XOR硬件加速设计和内存控制器,因此RAID 5性能可以说是不堪入目。在使用RAID key的情况下,BIOS模式会切成IMR(Integrated MegaRAID)模式,这个模式就是MegaRAID产品系列所采用的,提供更多的特性,这与LSI SAS MegaRAID 9240系列是相同的。当切换成IMR模式后,就必须强制建立阵列才能使用,而且使用的IRQ数量只有4组,block size可以选择,但最高只能到64k,支持SSD Guard技术。下面是一张LSI MegaRAID SAS 9240-8i的RAID HBA,归属于MegaRAID产品线,所以可以提供对RAID 5模式的支持:

RAID HBA与架构评述#page_title#e#

一般RAID就设计上来说分成两种形式:Software RAID和Hardware RAID,我想这玩过或着熟悉相关RAID知识的人大致上都清楚,在说明这两种设计差异之前,并不包含一些特殊的设计,例如某家RAID厂商早期某款产品使用某种程度的XOR硬件加速设计(CPLD/FPGA)来提高性能。

Hardware RAID比较好讲,基本的架构就是IOP+IOC的组合,IOC可以说是SAS/SATA HBA部分,IOP通常只是拿来加速运算用的。先来讲讲Software RAID,根据Adaptec早期提供的一份基础文献(Hardware RAID vs. Software RAID: Which Implementation is Best for my Application?),对于了解Software RAID和Hardware RAID差异是值得参考的,就Software RAID的特征,Software RAID拆成两个部分:纯软件模式 – Operating System Software RAID和Hybrid Model – Hardware-Assisted(硬件辅助) Software RAID。在纯软件模式下,这个模式是非常容易了解的,RAID功能完全取决于操作系统而定,此模式提供最低成本的考量,但是缺点不少,最大的缺点在于他 I/O性能不佳,而且受到Software层级上的限制,意味着它容易被操作系统绑死,下图是一张纯软件模式的基础示意图:

RAID HBA与架构评述 

纯软件模式在一般情况下,是不会去应用的,尤其最近这几年来,Hybrid Model – Hardware-Assisted Software RAID反而是最常被用到的,基本上就是SAS/SATA HBA with a RAID BIOS或着是RAID BIOS integrated onto the motherboard,例如Intel的ICHxR就是一个Hardware-Assisted Software RAID,透过额外的硬件加入RAID的支持(将RAID Option ROM写在BIOS里),RAID功能部份可以独立于操作系统,资料安全上也高于纯软件模式,通过系统启动BIOS初始化阶段,可以预先检测到RAID模式的状况,并且提供独立的GUI设定RAID类型,当然在某些RAID模式下,IO性能依然会受到限制,例如典型的RAID 5模式。下面是一张基本的示意图:

RAID HBA与架构评述 

这张描述的是以HBA with a RAID BIOS的模型,RAID Software与HBA部分包起来,RAID Software指的是将有关RAID代码部分写在NVRAM里,作为系统启动初始化的时候,获得RAID的相关功能,也包括专属的组态设定 (dedicated GUI and software to build and maintain the RAID)。

这张是我取自Dell网站加以修改的基本HBA with a RAID BIOS结构:

RAID HBA与架构评述 

另外这张表示图则是ICHxR实现RAID功能,将RAID Option ROM写到主机板上的System BIOS里,以提供RAID Configuration Utility建立RAID:

RAID HBA与架构评述 

Software RAID的相反就是Hardware RAID,如之前所提,典型就是IOP+IOC(A Discrete RAID Controller Card)的组合,IOP作为某些模式(例如RAID 5)的运算加速时,可以提供某种程度上的效益(得视该硬体处理性能而定),并且IOP会包含一些额外的硬件加速设计,当然Hardware RAID花费的组建成本都高于Software RAID,以下是来自Dell的IOP+IOC示意图:

RAID HBA与架构评述


 

文章评论