[转载]RAID卡原理

RAID卡有自己的CPU,Cache Memory,通过集成或借用主板上的SCSI控制器来管理硬盘,可以称之为一个智能化的设备。

[img]http://dl.iteye.com/upload/attachment/343923/785a3bf9-e8e4-3567-a632-88dd797f031c.gif[/img]

RAID卡的分类一般根据集成的SCSI控制器来划分。如果没有集成SCSI控制器,而是借用主板上的SCSI控制器来管理硬盘,则为零通道RAID卡。根据RAID卡集成的SCSI控制器的通道数量,可以分为单通道、双通道、三通道RAID卡。还可以按照SCSI控制器的标准来划分RAID卡的种类,如Ultra Wide、 Ultra2 Wide、Ultra160 Wide。

[img]http://dl.iteye.com/upload/attachment/343925/2f109127-2532-369a-bfc1-859c9f571867.jpg[/img]

RAID处理器是一个PCI从设备,接受并执行来自系统的命令。 同时占用PCI中断,代表SCSI磁盘子系统向系统 提出中断请求,请求占用PCI总线,返回对系统命令的响应,如输送SCSI硬盘上的数据。

[img]http://dl.iteye.com/upload/attachment/343927/03109b57-ef7c-3aaa-a051-0753105180af.jpg[/img]

作为RAID卡的CPU,通过执行闪存中的Firmware,控制SCSI控制器、Cache Memory以及指示报警电路,来实现RAID卡的功能,运作流程如下:
(1)初始化RAID卡寄存器
(2)读取NVRAM的上次RAID参数,与硬盘实际信息进行比较,显示结果
(3)发送配置提示、响应 HOST 命令进入配置界面
(4)提供配置菜单、将用户提供的RAID卡参数、RAID参数存入NVRAM
(5)根据RAID参数,通过SCSI控制器对硬盘进行初始化写操作
(6)完成配置
(7)等待Host发出读写操作命令
RAID卡提高磁盘读写性能的另一手段是:磁盘CACHE。
对于磁盘I/O来说,如果没有CACHE,就直接从硬盘读写;如果有CACHE,则首先从CACHE读写。
CACHE具有两大功能:
——预读
CACHE预读提高了计算机系统中的硬盘读的功能,尤其是在读取含有大量文件碎片的文件时。具有良好预读功能的RAID卡能在看起来很随机的读访问中,识别出读取磁盘的规律, 通过这个规律提前将系统要读取的数据放在CACHE中。
预读的两种方式:
Read Ahead
由于硬盘数据经常是以一族连续的硬盘扇区组织起来的,所以有时侯如把系统所请求的扇区随后的一个扇区里的数据 同时读进来是有价值的。对于数据文件的读取有利,特别是系统CPU的性能低时。
Pre-Fetch
当RAID卡发现系统要读的是先前已经读过的数据时,在 这一次,便将这一个数据块的数据写到CACHE里。对于程序文件的读取有利 。
——回写
回写是通过暂时将数据存在CACHE里,从而推迟将数据写到慢设备(如硬盘、磁带机)的一种工作方式。数据将在随后的时间,硬盘闲置的时候写到硬盘中。写的时候也是统一将CACHE内的尚未写出的数据按照数据块的在硬盘中的BLOCK序号写入,这样可以提高写的效率。
回写需要加电池给CACHE供电,以免数据在写到硬盘之前系统断电导致硬盘数据丢失。
增加CACHE大小对于预读来说,为系统提供了更多的来自CACHE的可供读取的记录。 对于回写来说,允许控制卡保存更多的记录留待后期写磁盘。特别是对于电梯式回写,使得连续的回写段之间有更近的间隔,降低硬盘写操作的平均访时间并提高了吞吐率。
写策略
——回写(Write Back)
——通写(Write Through)
通写模式下,所有数据在以命令完成状态返回到计算机之前,直接写到硬盘。两种写策略比较来说,写策略由通写改为回写时,可大幅度提高RAID性能。但回写具有一定的数据危险性。在突然断电的情况下,会丢失存于Cache尚未写入硬盘的数据。
RAID卡工作在写策略为THROUGH时,缓存大小对RAID卡的性能影响很小,只有当写策略改为BACK时,缓存的作用才会发挥出来。
影响RAID卡性能的因素很多,其中可调因素主要有RAID卡缓存(CACHE)大小、写策略(WRITE POLICY)、读策略(READ POLICY)、条带的大小(STRIPE SIZE)。不同的RAID卡虽然说法略有不同,但意思是一样的。很多设置可以在RAID卡的配置工具中调整。

你可能感兴趣的:([转载]RAID卡原理)