正文共:3857字 50图,预估阅读时间:12 分钟
之前误打误撞测试了软件RAID(Windows下软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,提示逻辑卷已经损坏,所有数据已经丢失,真恐怖,看来硬件故障真要命啊!
RAID 2-4
RAID 2、3、4已经很少有实际应用,它们大多只在研究领域有实作。
RAID 2
RAID 2 称为纠错海明码磁盘阵列,其设计思想是利用海明码实现数据校验冗余,实现在bit级别条带化数据。在 RAID 2 中,数据按位存储,每块磁盘存储一位数据编码,磁盘数量取决于所设定的数据存储宽度,可由用户设定。RAID 2 的数据宽度越大,存储空间利用率越高,但同时需要的磁盘数量也越多;一般数据宽度为2^N 的 RAID 2 ,需要 2^N 块数据磁盘和 N+1 块校验磁盘。
海明码自身具备纠错能力,因此 RAID2 可以在数据发生错误的情况下纠正错误,保证数据的安全性。但是,海明码的数据冗余开销太大,而且 RAID 2 的数据输出性能受阵列中最慢磁盘驱动器的限制;再者,海明码是按位运算, RAID2 数据重建非常耗时。现在硬盘的纠错码已经使用了海明码,所以RAID 2不再被使用了。
RAID 3
RAID 3使用奇偶校验磁盘将RAID控制器生成的奇偶校验信息存储在与实际数据磁盘分开的磁盘上,采用一个专用的磁盘作为校验盘。RAID 3 完好时读性能与 RAID 0 完全一致,并行从多个磁盘条带读取数据,性能非常高,同时还提供了数据容错能力。向 RAID3 写入数据时,必须计算与所有同条带的校验值,并将新校验值写入校验盘中。一次写操作包含了写数据块、读取同条带的数据块、计算校验值、写入校验值等多个操作,系统开销非常大,性能较低。
如果 RAID 3 中某一磁盘出现故障,不会影响数据读取,可以借助校验数据和其他完好数据来重建数据。假如所要读取的数据块正好位于失效磁盘,则系统需要读取所有同一条带的数据块,并根据校验值重建丢失的数据,系统性能将受到影响。
当有大量数据请求时,这种RAID类型的性能很差,比如在数据库这样的应用程序中。RAID 3在需要长时间连续数据传输的应用程序(如视频服务器)中表现良好。RAID 3至少需要三个物理磁盘。
RAID 4
RAID 4 与 RAID 3 的原理大致相同,区别在于条带化的方式不同。RAID 4使用专用奇偶校验磁盘以及块级别的磁盘条带化,写操作只涉及当前数据盘和校验盘两个盘,多个 I/O 请求可以同时得到处理,提高了系统性能。RAID 4 按块存储可以保证单块的完整性,可以避免受到其他磁盘上同条带产生的不利影响。
RAID 4 在不同磁盘上的同级数据块同样使用 XOR 校验,结果存储在校验盘中。写入数据时, RAID4 按这种方式把各磁盘上的同级数据的校验值写入校验盘,读取时进行即时校验。因此,当某块磁盘的数据块损坏,RAID 4 可以通过校验值以及其他磁盘上的同级数据块进行数据重建。
RAID 4 提供了非常好的读性能,但是使用专用奇偶校验磁盘会导致写操作的性能瓶颈。有了RAID 5等替代方案,RAID 4的使用并不多。
RAID 5
RAID 5 应该是目前最常见的 RAID 等级,它的原理与 RAID 4 相似,区别在于校验数据分布在阵列中的所有磁盘上,而没有采用专门的校验磁盘。对于数据和校验数据,它们的写操作可以同时发生在完全不同的磁盘上。因此, RAID 5 不存在 RAID 4 中的并发写操作时的校验盘性能瓶颈问题。另外, RAID 5 还具备很好的扩展性。当阵列磁盘数量增加时,并行操作量的能力也随之增长,可比 RAID 4 支持更多的磁盘,从而拥有更高的容量以及更高的性能。
RAID 5 的磁盘上同时存储数据和校验数据,数据块和对应的校验信息存保存在不同的磁盘上,需要额外的运算资源,但仅能忍受 1 个硬盘损毁。与其他 RAID 等级一样,重建数据时,RAID5 的性能会受到较大的影响。
RAID 5 兼顾存储性能、数据安全和存储成本等各方面因素,它可以理解为 RAID 0 和 RAID 1 的折中方案,是目前综合性能最佳的数据保护解决方案。RAID 5 基本上可以满足大部分的存储应用需求,数据中心大多采用它作为应用数据的保护方案。
在设置时,将默认的Strip Size调小了一级进行测试。
逻辑卷的可用容量为3.82T,相当于损失一块盘。
安装时仍然是提示2T空间可用。
使用ATTO进行顺序读写I/O性能测试。
再使用AS SSD进行I/O性能测试。
拔掉1槽位硬盘进行测试。
使用ATTO进行顺序读写I/O性能测试。
再使用AS SSD进行I/O性能测试。
再拔掉3槽位硬盘进行测试。
拔掉两块盘时,虽然系统没有蓝屏,但是从iLO中查看,逻辑卷已经是Failed状态了。
再拔掉6槽位硬盘,开始系统没有蓝屏,但是在系统中操作时系统蓝屏。
所以RAID 5应该是能允许1块盘故障,并且还能撑一会,所以硬盘短暂异常应该对业务影响较小。
对本次测试结果进行总结,同时对关键参数进行优选,结果如下。
介于篇幅限制,剩余RAID等级评测将在下篇文章进行介绍。
后台回复“20200321”获取硬盘性能测试软件ATTO和AS SSD
长按二维码
关注我们吧