RAID卡简介
参考资料:
https://blog.csdn.net/cymm_liu/article/details/8656154?spm=a2c4e.10696291.0.0.406119a4YLoXPK
0、RAID卡简介
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 卡的功能,运作流程如下:
• 初始化 RAID 卡寄存器
• 读取 NVRAM 的上次 RAID 参数,与硬盘实际信息进行比较,显示结果
• 发送配置提示、响应 HOST 命令进入配置界面
• 提供配置菜单、将用户提供的 RAID 卡参数、 RAID 参数存入 NVRAM
• 根据 RAID 参数,通过 SCSI 控制器对硬盘进行初始化写操作
• 完成配置
• 等待 Host 发出读写操作命令
RAID 卡提高磁盘读写性能的另一手段是:磁盘CACHE。
1、RAID卡结构:
实现了raid功能的板卡(SCSI卡或者IDE扩展卡)就叫做RAID卡。同样,在主板南桥芯片(又称之为输出/输入控制器中心(Input/Output Controller Hub,ICH),负责I/O总线之间的通信,如PCI总线、USB、LAN、ATA、SATA、音频控制器、键盘控制器、实时时钟控制器、高级电源管理等,这些技术相对来说比较稳定,所以不同芯片组中南桥芯片可能是一样的,不一样的只是北桥芯片。)上也可实现RAID功能,由于南桥中的芯片不能靠CPU来完成他们的功能,所以这些芯片完全靠电路逻辑来自己运算,尽管速度很快,但是功能相对插卡式的RAID卡要弱。从某些主板的宣传广告中就可以看到,所谓板载raid芯片就是指南桥中有实现raid功能的芯片。
这样操作系统不需要作任何改动,除了RAID卡驱动程序之外不用安装任何额外的软件,就可以直接识别到已经过raid处理而生产的虚拟磁盘。
对于硬件的raid卡,操作系统无法感知底层物理磁盘,OS只能通过厂家提供的raid卡的管理软件来查看卡上所连接的物理磁盘。而且,配置raid卡的时候,也不能在操作系统下完成,而必须进入这个硬件来完成(或者在操作系统下通过raid卡配置工具来设置)。一般的raid卡都是在开机自检的时候,进入他的ROM配置程序来配置各种RAID功能。
RAID卡的结构图:
- SCSI RAID卡上一定要包含SCSI控制器,因为其后端连接的依然是SCSI物理磁盘;
- 其前端连接到主机的PCI总线上,所以一定要有一个PCI总线控制器来维护PCI总线仲裁、数据发送接收等功能;
- 还需要一个ROM,一般都是用flsh芯片作为ROM,其中存放着初始化RAID卡必须的代码以及实现RAID功能所需的代码;
- RAM的作用,首先是作为数据缓存(OS要写入硬盘的数据以及OS要读取的硬盘的数据),提高性能;其次作为RAID卡上的CPU执行RAID运算所需要的内存空间;
- XOR芯片是准们用来做RAID3,5,6,等这类校验型RAID的校验数据计算用的。如果让cpu来做校验运算,需要执行代码,将耗费很多周期。而如果直接使用专用的数字电路,一进一出就立即得到结果。所以为了解脱CPU,增加了这块专门用于XOR运算的电路模块,大大增加了数据校验计算的速度。
RAID卡与 SCSI卡(SCSI控制器 )不是同一个东西(SCSI和RAID这两板卡功能是完全不同的,RAID卡的价格通常会比SCSI卡的价格高许多,原因是它们的用途不一样,SCSI卡仅用于连接SCSI硬盘或外设,而RAID卡的主要用途是通过相应的RAID技术实现磁盘读写性能的提高和数据备份,以便当一个磁盘发生故障时,通过RAID技术可以从阵列中其它磁盘中恢复损坏磁盘中的数据,以最大限度地确保企业服务器数据的完整性,减少因单个磁盘损坏而造成的损失。 而且RAID卡不仅可支持SCSI接口,还可支持如IDE和SATA这样常用的磁盘接口,所以不仅RAID卡的作用要远大于SCSI卡,而且适用范围也更广,它们唯一相似的一点就是两者都可以连接多个硬盘。),RAID卡有raid功能,而SCSI卡上没有raid功能的,如果RAID卡上有多个SCSI通道,那么就成为多通道RAID卡。目前scsi RAID 卡最高有4通道,其后端可以接入4条SCSI总线,所以最多连接64个SCSI设备。有了RAID卡之后,SCSI控制器(SCSI卡)就成了RAID程序代码的傀儡,raid让它干啥,他就干啥,SCSI控制器对它下面掌管的磁盘情况完全明了,它和RAID程序代码之间进行通信。RAID程序代码知道SCSI控制器(SCSI卡)掌管的磁盘情况之后,就按照ROM中所设置的选项,比如RAID类型,条带大小(?)等,对RAID程序代码做相应的调整,操控它的傀儡SCSI控制器向主机报告“虚拟”的逻辑盘,而不是物理磁盘了。
RAID卡会向每个磁盘写入一些RAID信息(这也是做过raid的磁盘与普通磁盘唯一的区别,raid磁盘里不会又条带化的信息,因为条带化信息在raid卡内),这样即使将这些磁盘拿下来,放到同型号的另一块RAID卡上,也能无误地认出以前做好的raid信息。
条带化之后,raid程序代码就操控SCSI控制器向OS层驱动程序代码提交一个虚拟化之后的所谓的“虚拟盘”或者称“逻辑盘” 也有人干脆称为LUN
RAID卡