上次误打误撞测试了软件RAID,发现性能基本上是线性的,而据说硬件RAID性能比这个高的很。那本文将就硬件RAID展开测试,测试内容主要为各RAID等级下磁盘空间、I/O性能、模拟硬盘故障的可靠性等。
硬件RAID
硬 RAID 拥有自己的 RAID 控制处理与 I/O 处理芯片,甚至还有阵列缓冲,相比于软RAID和软硬混合RAID,对 CPU 的占用率和整体性能是最优的,但实现成本也最高的。硬 RAID 通常都支持热交换技术,在系统运行下更换故障磁盘。
硬 RAID 包含 RAID 卡和主板上集成的 RAID 芯片,服务器平台多采用 RAID 卡。 RAID 卡由 RAID 核心处理芯片( RAID 卡上的 CPU )、端口、缓存和电池 4 部分组成。比如我服务器上这套P440ar阵列卡和8块SAS盘。
首先使能阵列模式,也就是上次不敢开启的Smart Array模式。
修改之后需要重启生效。
RAID 0
RAID 0 是一种简单的、无数据校验的数据条带化技术,并不提供任何形式的冗余策略。 RAID 0 将所在磁盘条带化后组成大容量的存储空间,将数据分散存储在所有磁盘中,以独立访问方式实现多块磁盘的并读访问。由于可以并发执行 I/O 操作,总线带宽得到充分利用;再加上不需要进行数据校验,RAID 0 的性能在所有 RAID 等级中是最高的。理论上讲,使用 N 块硬盘,即可拥有将近 N 倍的读写效能。
RAID 0 具有低成本、高读写性能、100% 的高存储空间利用率等优点,但是数据安全性较低,同组数组中任一硬盘发生问题就会造成数据遗失。 因此, RAID 0 一般适用于对性能要求严格但对数据安全性和可靠性不高的应用,如视频、音频存储、临时数据缓存空间等。
在阵列卡配置中选择创建阵列。
选择RAID 0,其它选项使用默认的配置选项。
Strip Size/Full Strip Size
Strip Size(条带深度),指的是在阵列的磁盘集中的单块磁盘上,从条带起始位置开始读/写所允许的最大数据量。Strip Size越大,顺序读写性能越好,但IOPS越低;Strip Size越小,IOPS越高,随机读写性能越好。
一般根据服务器的具体用途来决定Strip Size。通常,提高顺序读写性能对文件服务器(备份、存档、共享等用途)磁盘性能提升较多。反之,对于琐碎文件(几KB、十几KB大小的文件)较多的服务、数据库、集成编译服务器等,频繁对小文件读写的服务器,提升IOPS则有较大益处。
如果单磁盘容量较大,1TB以上的SATA盘,更适合做文件服务器,可将Strip Size调整大至1MB,600G、15K的高性能磁盘或SSD,由于本身具有较高的IO性能,更适合做数据库,可将Strip Size 调小一些。
Sector/Track
Sector/Track表示每条磁道上有几个扇区,一般编号从1开始,最大为63,表示63个扇区,每个扇区为512字节,它是磁盘的最小存储单位。
恩,分的少应该是可以提高读写速度的。毕竟扇区少了之后寻址会更快。
此时阵列可用逻辑卷容量为4.3T。
随后重启安装装Windows 7 旗舰版。这次提前百度了一下,64位的Windows 7家庭普通版最高可支持8GB内存,家庭高级版最高可支持16GB,专业版、企业版和旗舰版最高可支持192GB内存。
这次CPU和内存完全使用起来了。
但是新的问题是硬盘最大只能使用2TB。
再次百度,原来MBR分区的硬盘在Windows 7 32位和64位系统最大支持都是2TB;而GPT分区的硬盘只能支持Windows 7 64位系统,最大容量是18EB。(1EB=1024PB=1,048,576TB)
Windows 7在MBR模式下用NTFS分区格式能管理256TB的硬盘空间,NTFS分区单区容量不能超过2TB,单区超过2TB就只能采用罕见的GPT模式。
先使用硬盘测试软件ATTO进行顺序读写测试,结果如下图。对于各种情况下的I/O性能信息,将在文末进行对比。
再使用AS SSD测试硬盘的顺序读写、随机读写和响应性能测试,并记录得分情况,为我最后选择何种RAID做个参考。
这彪悍的读写性能让我想起了之前一些游戏本的NVME双通道这个配置,按照我个人笔记本同系列的HP EX900来计算,1T容量的单块盘顺序读取速度是2150MB,顺序写入速度是1800MB;如果是这样的两块盘组RAID 0阵列,读取速度就达到了令人发指的4300MB,写入速度也是变态的3600MB。对于游戏玩家来说,几秒钟游戏加载完成,无异于就地起飞!
RAID 1/10
RAID 1 称为镜像,它将数据完全一致地分别写到工作磁盘和镜像磁盘,磁盘空间利用率为50% 。RAID 1 在数据写入时,响应时间会有所影响,但是读数据的时候没有影响。RAID 1 提供了最佳的数据保护,一旦工作磁盘发生故障,系统自动从镜像磁盘读取数据,不会影响用户工作。安全性依照数组里的实体硬盘数量倍数成长,适用于对顺序读写性能要求高以及对数据保护极为重视的应用。
RAID 1 与 RAID 0 刚好相反,是为了增强数据安全性使两块磁盘数据呈现完全镜像,从而达到安全性好、技术简单、管理方便。RAID 1 拥有完全容错的能力,但实现成本高,空间利用率是所有 RAID 中最没有效率的。
操作之前要删掉之前的阵列配置,此时会提示丢失所有数据,因为是做实验嘛,干就是了!
还是选中所有磁盘,下一步。
此时也可以看到RAID 1实际上就是RAID 1+0,因为RAID 1实际上只是两块盘做镜像,当数量多于2并且为偶数时,需要先两两做RAID 1,再通过做RAID 0组合,即RAID 1+0(RAID 10)。
此时的磁盘可用空间为2.18T,是总大小的一半。
安装的时候可以看到磁盘未分配空间是2235GB,大于2TB。
但是安装完成之后就是前面提到的2TB了。
使用ATTO进行顺序读写I/O性能测试。
再使用AS SSD进行I/O性能测试。
然后拔掉一块硬盘进行可用性测试。随即可以看到iLO中有硬盘故障告警。
并且在存储状态中查看,8槽中的磁盘状态为Failed。
使用ATTO进行顺序读写I/O性能测试,好神奇,性能竟然有所提升。
再使用AS SSD进行I/O性能测试,性能也有明显提升。
拔掉5槽位硬盘,系统状态正常。
拔掉2槽位硬盘,系统状态正常。
接下来拔掉4槽位硬盘,阵列故障。
操作系统蓝屏,应该在这种模式下,是1和5、2和6、3和7、4和8两两做的RAID 1,当同时拔掉4和8时,出现阵列无法恢复的故障。
再次进入SSA,提示逻辑卷已经损坏,所有数据已经丢失,真恐怖,看来硬件故障真要命啊!