阵列卡就是RAID卡,直通卡就是HBA卡。
1.直通卡(HBA)
直通卡(HBA)就是一个通道卡,它的作用是让计算机能够对硬盘进行直接管理和使用。一般是针对SAS硬盘,可以看成是SAS控制器,而SAS是兼容SATA的,所以SATA硬盘也可以用。
HBA分为IT模式和IR模式,IT模式下所连接的磁盘对系统是透明的,由系统直接识别和管理,而IR模式下磁盘由HBA控制器控制然后模拟磁盘给系统使用。
IT直通卡的个人玩家的主要用途就是NAS,现在的各种NAS系统为了从系统层面管理硬盘都只能用直通卡,无法使用硬阵列卡。
IR模式下的HBA卡可以组建raid0,raid1甚至raid5,但是raid5的写入性能极差,甚至还不如单个硬盘。
2.阵列卡(RAID)
阵列卡通过ROC芯片来完成对存储设备的管理,并安需模拟磁盘给计算机使用,存储设备对操作系统不透明,由阵列卡管理。
ROC芯片的结构中包括通用CPU以及xor引擎等结构,同时ROC芯片中也有CPU的1级缓存,2级缓存,甚至3级缓存,甚至还有一个比缓存大一些的RAM存储。
3.阵列卡(RAID)缓存怎么选?
RAID卡一般都是由缓存的,往往采与RAM作为缓存。实际上阵列卡的缓存不仅是缓存,也是阵列卡的内容。阵列卡的核心是ROC芯片,实际上阵列卡就是一台管理数据的微型计算机。
作为缓存,主要是协调系统对阵列里数据的读写。那么就看使用什么硬盘。总的来说,对于连接16个以内的机械盘来说,512m缓存的阵列卡足矣。对于SATA和sas接口的固态硬盘,有1G到2G缓存足矣。对于支持nvme的硬阵列卡,4G缓存起步,8G标配,因为nvme本身的速度非常快,如果缓存的容量小那么就无法很好协调硬盘到CPU之间的数据传输了。
作为内存,则主要是xor运算的需求。那么阵列卡需要多大的缓存就和你使用它的raid模式以及连接的硬盘种类有关。实际上xor计算并不需要太大的内存,所以很多512M缓存的阵列卡在跑raid5和raid6时性能并不差。
在有些阵列卡测试中我们会发现采用相同roc芯片的阵列卡中缓存大的阵列卡可能比缓存小的阵列卡在某些性能上更差。这是因为缓存有个命中的概念,当CPU在缓存中没有找到需要的数据时就要到下一级存储中去寻找,而这样的情况下,缓存容量越大浪费的时间就越多,那么就出现了高容量缓存的阵列卡在某些情况下性能不如小容量缓存阵列卡的情况,特别是机械盘,寻道时间8ms以上甚至12ms以上,再加上缓存没有命中的时间,性能下降会更加容易被感知。但是作为写入缓存用途时,理论上是越大性能越好。
4.RAID卡产品的构成及分类
构成RAID的方式通常有两种,第一类是软件RAID,通常是通过操作系统中自带的RAID功能来实现,但是软件RAID涉及到复杂的计算,需要占用CPU、内存等大量的系统资源。而且,本身RAID程序运行于操作系统上,也就是说,必须在安装操作系统之上才能组建RAID组,而安装操作系统的磁盘就无法加入RAID组了。一旦操作系统崩溃,RAID程序也就无法运行,对整个RAID组的数据安全都带来一定的隐患,因此,相对于软件RAID,更加常见的,其实是硬件RAID模式。
早些时候,市场上较为普遍的是SCSI RAID卡,一般包括“SCSI接口控制器”,在后端与SCSI磁盘通讯;前端连接到PCI总线上,因此一般还有一个“PCI总线控制器”维护PCI总线仲裁,实现和主机系统的通讯。此外,还有一个“ROM”,通常都是用Flash芯片作为ROM,其中存放着初始化RAID卡必须的代码以及实现RAID功能所必须的代码。
RAM则一方面可以作为数据缓存提高性能,另一方面可以作为RAID卡上的CPU来执行RAID运算所需要的内存空间。XOR芯片则是专门用来做RAID3、5、6这一类校验型RAID的校验数据计算。使用XOR芯片,可以大大加速这一类校验型RAID的运算效率。
随着SAS作为SCSI磁盘通道协议的接班人逐步的替代SCSI接口,SAS RAID也逐步替代SCSI RAID成为RAID卡市场上的主流产品。此外,随着SSD应用日渐普遍,RAID卡产品对SSD的支持和优化也成为最新的必备选项。
学习笔记,欢迎交流