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

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

 

 

 

对于磁盘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卡的配置工具中调整。

浙江博硕数据真诚为您服务 http://www.85bs.com