文章目录
5.2 RAID卡
- 软件RAID有三个缺点,占用内存空间、占用CPU资源、无法将安装有操作系统的那个磁盘分区做成RAID模式。如果操作系统损坏了,RAID程序也就无法运行,磁盘上的数据就成了一堆无用的东西。目前大多数RAID程序都会在磁盘上存储自己的算法信息,将这些磁盘连接到其他机器上,再安装相同的RAID软件,在读取了存储在硬盘固定区域的RAID信息后,也可以继续使用。
- RAID卡就是一种利用独立硬件来实现RAID功能的方法。要在硬件上实现RAID功能,必须找一个物理硬件作为载体,SCSI卡或者主板上的南桥无疑就是这个载体了。在SCSI卡上增加了额外的芯片用于实现RAID功能,专门用于执行RAID算法,可以是ASIC这样的高成本高速度的运算芯片,也可以是通用指令CPU这样的通用代码执行芯片,可以从ROM中加载代码直接执行,也可以先载入RAM后执行,从而实现RAID功能。
- 实现了RAID功能的板卡就叫做RAID卡。同样,在主板南桥芯片上也可以实现RAID功能,由于南桥中的芯片不能靠CPU来完成它们的功能,全靠电路逻辑来自己运算,尽管速度很快,但是功能相对插卡式的RAID卡要弱。所谓“板载”RAID芯片就是指南桥中有实现RAID功能的芯片。
- 这样,操作系统不需要作任何改动,除了RAID卡驱动程序之外不用安装任何额外的软件,就可以直接识别到已经过RAID处理生成的虚拟磁盘。
- 对于软件RAID,至少操作系统最底层还是能感知到实际物理磁盘的,但是对于硬件RAID来说,操作系统根本无法感知底层的物理磁盘,而只能通过厂家提供的RAID卡的管理软件来查看卡上所连接的窝里磁盘。一般的RAID卡都是在开机自检的时候,进入它们的ROM配置程序来配置各种RAID功能。
1. RAID卡的结构
- 带CPU的RAID卡俨然就是一个小的计算机系统,有自己的CPU、内存、ROM、总线和IO接口,只不过这个小计算机是为大计算机服务的。
- SCSI RAID卡上一定要包含SCSI控制器,因为其后端连接的依然是SCSI物理磁盘。前端连接到主机的PCI总线上,所以一定要有一个PMC总线控制器来维护PCI总线的仲裁、数据发送接收等功能。还需要有一个ROM,一般都是用Flash芯片做ROM,其中存放着初始化RAID卡必须的代码以及实现RAID功能所需的代码。
- RAM的作用,首先是作为数据缓存,提高性能;其次作为RAID卡上的CPU执行RAID运算所需的内存空间。XOR芯片是专门用来做RAID3、5、6等这类校验型RAID的校验数据计算用的。如果让CPU来做校验运算,需要执行代码,将耗费很多周期。直接使用专用的数字电路,一进一出就立即得到结果。所以为了解脱CPU,增加了这块专门用于XOR运算的电路模块,大大曾杰了数据校验计算的速度。
- RAID卡和SCSI卡的区别就在于RAID功能,其他没有太大区别。
- 映射完全通过公式来运行,所以物理磁盘上根本不用写入什么标志,以标注所谓的条带。条带的概念只是逻辑上的,物理上并不存在。所以,条带等概念只需“记忆”在RAID程序代码之中就可以了,要改变也是改变程序代码即可。唯一要向磁盘上写入的就是一些RAID信息,这样即使将这些磁盘拿下来,放到同型号的另一块RAID卡上,也能无误的认出以前做好的RAID信息。
SNIA协会
定义了一种DDF RAID信息标准格式,要求所有RAID卡厂家都按照这个标准来存放RAID信息,这样所有RAID就通用了。 - 条带化之后,RAID程序代码就操作SCSI控制器向OS层驱动程序代码提交一个虚拟化之后的所谓的“虚拟盘”或者“逻辑盘”,或干脆称为“LUN”。
2. RAID卡的初始化和配置过程
- 所谓初始化就是说在系统加电之后,CPU执行系统总线特定低智商的第一句指令,这个地址便是主板BIOS芯片的地址。BIOS芯片中包含着让CPU执行的第一条指令,CPU将逐条执行这些指令,执行到一定阶段的时候,有一条指令会让CPU寻址总线上其他设备的ROM地址。
- 系统加电之后,CPU总会执行SCSI卡这个设备上ROM中的程序代码来初始化这块卡。初始化的内容检测包括卡型号、生厂商以及扫描卡上的所有SCSI总线以找出每个设备并显示在显示器上。在初始化的过程中,可以向进入主板BIOS一样,进入SCSI卡自身的BIOS中进行设置,设置内容包括查看各个连接到SCSI总线上的设备的容量、生产商、状态、SCSI ID和LUN ID等。
3. 0通道RAID卡
- 又称为RAID子卡,后端没有SCSI通道。将这块卡插入主机的PCI插槽之后,它就可以利用主板上已经集成的或者已经插在PCI上的SCSI卡,来操控它们的通道,从而实现RAID。也是插到PCI上的一块卡,只不过它需要利用主板上为0通道子卡专门设计的逻辑电路,对外和SCSI控制器组成一块RAID卡来用,只不过是被分割带了两个PCI插槽而已。
- 图5-31展示了0通道RAID子卡的架构。在主板的一个特定PCI插槽上,有一个ICR逻辑电路,用来截获CPU发送的地址信号和发给CPU的中断信号。CPU发送到这里原本用来操控SCSI控制器的地址信号,全部被这个ICR电路充定向到RAID子卡处,包括主板BIOS初始载入ROM,也不是载入SCSI卡的ROM了,而使载入了RAID子卡的ROM。RAID卡完全接替了SCSI卡来面对主机系统。RAID卡和SCSI控制器的通信,包括地址信息和数据信息,需要占用PCI总线,这造成了一定的性能损失。RAID卡和SCSI卡之间的通信,不会被ICR电路重定向。
4. 无驱RAID卡
- PhotoFast所设计的一款RAID卡可谓是比较创新。传统的RAID卡都是使用PCIX或者PCIE总线来连接到计算机上的,但是PhotoFast这款RAID卡却是使用SATA接口来连接到计算机的,将其上连接的多块物理盘虚拟成若干的虚拟磁盘,并将这些磁盘通过SATA接口连接到计算机,计算机就任务它自身所连接的是多块SATA物理磁盘。这样这块RAID卡就不需要任何驱动程序便可被大多数操作系统使用(多数操作系统都自带SATA控制器驱动才更需)。
5. RAID On Chip(ROC)技术
- ROC技术是