RAID卡有自己的CPU,Cache Memory,通过集成或借用主板上的SCSI控制器来管理硬盘,可以称之为一个智能化的设备。
>RAID卡的分类一般根据集成的SCSI控制器来划分。如果没有集成SCSI控制器,而是借用主板上的SCSI控制器来管理硬盘,则为零通道RAID卡。根据RAID卡集成的SCSI控制器的通道数量,可以分为单通道、双通道、三通道RAID卡。还可以按照SCSI控制器的标准来划分RAID卡的种类,如 Ultra Wide、 Ultra2 Wide、Ultra160 Wide.
>RAID处理器是一个PCI从设备,接受并执行来自系统的命令。 同时占用PCI中断,代表SCSI磁盘子系统向系统 提出中断请求,请求占用PCI总线,返回对系统命令的响应,如输送SCSI硬盘上的数据。作为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
>RAID功能运作流程
>对于磁盘I/O来说,如果没有CACHE,就直接从硬盘读写;如果有CACHE,则首先从CACHE读写。
>CACHE具有两大功能:
>1、预读
>CACHE预读提高了计算机系统中的硬盘读的功能,尤其是在读取含有大量文件碎片的文件时。具有良好预读功能的RAID卡能在看起来很随机的读访问中,识别出读取磁盘的规律, 通过这个规律提前将系统要读取的数据放在CACHE中。
>预读的两种方式:
>◆Read Ahead:由于硬盘数据经常是以一族连续的硬盘扇区组织起来的,所以有时侯如把系统所请求的扇区随后的一个扇区里的数据 同时读进来是有价值的。对于数据文件的读取有利,特别是系统CPU的性能低时。
>◆Pre-Fetch:当RAID卡发现系统要读的是先前已经读过的数据时,在 这一次,便将这一个数据块的数据写到CACHE里。对于程序文件的读取有利 .
>2、回写
>回写是通过暂时将数据存在CACHE里,从而推迟将数据写到慢设备(如硬盘、磁带机)的一种工作方式。数据将在随后的时间,硬盘闲置的时候写到硬盘中。写的时候也是统一将CACHE内的尚未写出的数据按照数据块的在硬盘中的BLOCK序号写入,这样可以提高写的效率。回写需要加电池给CACHE供电,以免数据在写到硬盘之前系统断电导致硬盘数据丢失。
>增加CACHE大小对于预读来说,为系统提供了更多的来自CACHE的可供读取的记录。 对于回写来说,允许控制卡保存更多的记录留待后期写磁盘。特别是对于电梯式回写,使得连续的回写段之间有更近的间隔,降低硬盘写操作的平均访时间并提高了吞吐率。
>RAID卡写策略
>通写模式下,所有数据在以命令完成状态返回到计算机之前,直接写到硬盘。两种写策略比较来说,写策略由通写改为回写时,可大幅度提高RAID性能。但回写具有一定的数据危险性。在突然断电的情况下,会丢失存于Cache尚未写入硬盘的数据。RAID卡工作在写策略为THROUGH时,缓存大小对RAID卡性能影响很小,只有当写策略改为BACK时,缓存的作用才会发挥出来。
>影响RAID卡性能的因素很多,其中可调因素主要有RAID卡缓存(CACHE)大小、写策略(WRITE POLICY)、读策略(READ POLICY)、条带的大小(STRIPE SIZE)。不同的RAID卡虽然说法略有不同,但意思是一样的。很多设置可以在RAID卡的配置工具中调整。