发布时间:2023-03-07 | 信息来源: | 发布作者:沃趣科技
硬盘阵列(Redundant Arrays of Independent Disks,RAID),是由很多块独立的硬盘,组合成一个容量巨大的硬盘组。
现如今,基本所有的服务器都通过RAID卡对硬盘进行管理。硬盘插入到服务器的槽位后由背板的线缆连接RAID卡进行一个统一的管理,然后提供给操作系统,操作系统不能直接使用硬盘。
以下为一些常见的RAID级别:
当上层数据下发时,会将数据完全一致地写在两块硬盘上,实现数据冗余,可以用两块硬盘中读取数据,提升读性能。当一块硬盘发生故障,系统自动从另一块硬盘读取数据,提高可靠性,但是成本更高,适用于对数据可靠性要求高的应用,如:将系统盘放在RAID 1上面。
将数据和相对应的奇偶校验信息分别存储在不同的硬盘上,奇偶校验信息占一个硬盘的空间,允许损坏一个硬盘。当一个硬盘损坏时,可以根据剩余的数据和相对应的奇偶校验信息计算出损坏的数据,恢复数据时性能会受到较大的影响。RAID 5写性能偏低,尤其是随机写性能,建议在读写不太频繁的场景上使用,如:用作数据备份。
与RAID 5 相似,拥有两套独立的奇偶校验信息,可以允许损坏两块硬盘。
RAID卡除了将硬盘组建不同RAID级别的功能之外,还能提供加速读写的缓存功能。
每张RAID卡都拥有大小不等的缓存。
开启WB模式的前提是RAID卡带有电池,确保在服务器断电的情况下依然能将缓存里面的数据写入硬盘中。当服务器的RAID卡电池出现故障或者电量不足的情况,WB模式会被强制切换成WT模式,防止出现数据丢失,然而读策略不会受到任何影响,这是因为写到缓存里面的数据是脏数据,与硬盘里面的数据不一致,而读到缓存里面的数据与硬盘里面的数据完全一致,即使丢失了也没有任何关系。
WB模式能够提升写性能,这有个前提是上层下发的数据量不大,可以被RAID卡缓存所容纳,但是当上层下发大量数据时,缓存很快就会被击穿。我们可以通过一个实验去验证,将一块硬盘的写策略调整为WB模式,然后利用fio工具去模拟上层数据下发。
可以看到,当上层有大量数据下发时,缓存很快就被击穿,写性能呈现断崖式下划。
上文提到了各个RAID级别的特点及优劣势,下面我们通过fio工具测试,直观的感受一下不同RAID的性能。
一块盘RAID0基本可以发挥这块盘的所有性能,通过以上测试数据可以发现:
现如今,对硬盘的性能要求越来越高,SATA、SAS因为本身的缺陷,性能基本不会超过600MiB/s,因此对NVMe盘的需求越来越多,尤其是数据库等对底层硬件性能要求比较高的行业。
NVMe盘直通到cpu,无法通过RAID卡进行管理,因此也不能通过RAID卡去创建不同的RAID级别。目前给NVMe做raid的方式有两种,一种是软RAID,另一种是Intel VROC。
目前,英特尔至强可扩展处理器基本都支持VMD,但是并不是cpu支持就可以使用VROC了,需要满足以下几个条件:
VROC Key有几个不同的型号,每个型号Key的功能都有一些差别,有些型号的Key可以支持其余品牌的NVMe盘,但是出于兼容性考虑,还是不建议使用其余品牌的NVMe盘 。
3.服务器支持,并不是每一台服务器都可以安装VROC Key,需要服务器的主板有相应的槽位可以插入VROC Key。
VROC的管理方式以及系统上面的展示与软RAID非常相似。
VROC与软RAID都使用mdadm的命令进行管理,VROC需要安装相对应版本的mdadm rpm包。
rpm –U mdadm-4.0-13.1.IntelVROC6.0.el7.x86_64.rpm
VROC与软RAID这么相似,那么在性能上有什么差距吗?我们可以通过实验看一下
为了效果更加明显,使用了三块盘创建RAID0,结果显示VROC与软RAID没有明显的性能差距
VROC与软RAID组建RAID1各项性能基本一致
VROC与软RAID组建的raid5各项性能基本一致,但是两者的写性能都是偏低的,通过观察cpu的使用率可以发现,VROC与软RAID都是单核进程,所在core的使用率也已经被打满了,cpu的性能也是制约RAID5写性能的一项因素。
通过以上的测试可以发现,VROC与软RAID的性能基本是一致的,因为两者都需要使用cpu内核去来计算RAID逻辑。而VROC有硬件的支持,具备了一些其他的功能
1.可引导RAID
VROC可以作为系统盘使用,VROC有硬件的支持,在没有安装操作系统之前就可以在BIOS里面使用NVMe盘创建RAID,然后再将系统安装在这块raid卷组上面。
2.备份功能
VROC拥有热备功能,当检测到设备故障时,热备盘可用于重建RAID。
3.NVMe盘定位
NVMe盘一直没有很好的方式去定位,而VROC可以准确定位到NVMe盘。
ledctl locate=/dev/nvme0n1
通过以上命令可以使指定的NVMe盘闪灯。
性能方面,VROC与软RAID基本一致。软RAID的优势是不需要额外的成本,而VROC优势是有硬件的支持,具备一些特性(可引导RAID、NVMe盘定位等),以及有Intel的技术服务。两者各有优势,所以,可以根据实际的需求去选择使用哪一项技术。