可以接受的性能
对RAID 6来说,性能显然是重中之重,因此我们在8台500GB硬盘驱动器的背景下,以RAID 0、RAID 10、RAID 5和RAID 50作为参照,分别用IOmeter测试软件的顺序读、顺序写、随机读、随机写、File Server和Web Server脚本比较了RAID 6的性能差异。
HighPoint RocketRAID 3220 SATA RAID卡顺序读测试
顺序读:在访问的数据块尺寸达到32KB之后,RAID 10因其RAID 1的成分而最先掉队,RAID 6的成绩则一直紧追RAID 5,并略强于RAID 50。在数据块尺寸超过256KB之后,RAID 0、5、50和6的成绩都出现了奇怪的上下波动,可见RocketRAID 3220处理大尺寸数据块的能力有待改善。从理论上来说,RAID的顺序读和随机读性能应当与磁盘数量成正比,而与RAID类型的关系不大,所以RocketRAID 3220的RAID 10性能也还有提高的余地。
HighPoint RocketRAID 3220 SATA RAID卡顺序写测试
顺序写:RAID的顺序写性能与数据盘的数量成正比,放到我们的测试环境中,RAID 6的顺序写输出应该能达到RAID 5的85%(七分之六,约为0.857)。在我们的测试中,RAID 6一直略低于RAID 5,但直至访问的数据块尺寸达到1MB,才下降到95%以下,并在10MB时达到最大值——88%,表现超出预期。不过,从256KB开始的RAID 0超高和RAID 10超低的异常曲线,证明这确属RocketRAID 3220的“顽疾”。或许,RAID 5、50和6的顺序写性能还可以更好些。
HighPoint RocketRAID 3220 SATA RAID卡512字节随机读测试
随机读:正如前面所言,随机读性能和RAID类型无关,因此5条曲线有着大体相似的轨迹并不令人感到奇怪,特别是RAID 6和RAID 50几乎保持重合。意外的是,从并发任务数达到16开始,RAID 5反而低于RAID 6及50,而RAID 0也在并发任务数达到64之后加入了进来,这显然不是RAID的普遍规律,而应归于RocketRAID 3220的“个体差异”。
记得曾有厂商在宣传其RAID 6加速引擎时称,可以让RAID 6的性能达到RAID 5的99%。就顺序读和随机读而言这不难做到,但对随机写是不成立的,因为RAID 6在增加了可靠性的同时,牺牲了部分随机写性能。在随机写操作时,拥有同样多硬盘驱动器的RAID组中,RAID 6所花费的时间是RAID 5的1.5倍。每次RAID 5(7D + 1P)进行一次随机写操作,实际上产生了4个I/O:读老的应用数据,读老的校验数据,写新的应用数据和写新的校验数据(P)。而RAID 6做同样一个随机写操作,实际上需要6个I/O:读老的用户数据,读老的校验数据P,读老的校验数据Q,写新的用户数据,写新的校验数据P,写新的校验数据Q。这就造成了RAID 5(7D + 1P)和RAID 6(6D + 2P)随机写的33%性能差距,而且不是提高IOP的运算能力可以解决的。
HighPoint RocketRAID 3220 SATA RAID卡512字节随机写测试
随机写:RocketRAID 3220的随机写性能与上述理论符合得很好——从并发任务数达到8开始,就保持在RAID 5性能的67%左右,浮动幅度不超过1%。RAID 50的性能比RAID 5略低,基本上处于同一水准。不过,问题在于RAID 5的随机写性能与RAID 0相比差距实在太大了——只有一半乃至四分之一,甚至都被RAID 10甩掉很远。真不知是应该归罪于IOP331,还是RocketRAID 3220的固件算法。
HighPoint RocketRAID 3220 SATA RAID卡File Server脚本测试
文件服务器:文件服务器也是随机访问的测试项目,其读写成分比例为2:1,测试成绩也综合了这两方面的表现,RAID 6当然是最差,但与RAID 5的差距就没有随机写测试那么大了。不过RAID 50也排在RAID 5前面,显然是得益于随机读的反常优势。
HighPoint RocketRAID 3220 SATA RAID卡Web Server脚本测试
Web服务器:全部是随机读取的操作,只是数据块尺寸成分比较复杂——由9种规格的数据块尺寸构成,其中512B占22%,1~4KB占46%,8~512KB占32%。正所谓“万变不离其宗”,几条曲线的分布规律与随机读测试非常相似,只是纵坐标上的数值有一定程度的下降。
RAID 6可以用了吗?至少从RocketRAID 3220来说,答案是肯定的。从上面的各项测试来看,除了与随机写入有关的操作,RAID 6都体现出了与RAID 5及RAID 50相当的水准。与RAID 6增强的容错能力相比,某些相对次要的性能上的不足是可以接受的。以RocketRAID 3220为例,与其选择RAID 50,还不如改用磁盘空间利用率相同但能够全面抵御双硬盘驱动器故障的RAID 6。诚然,RAID 6的随机写性能只有RAID 5(和RAID 50)的三分之二,但这对SATA RAID来说影响并不是很大。SATA硬盘驱动器的优势是容量大且价格低,持续传输能力也与高转速(10K及15K RPM)的SCSI/SAS/FC硬盘驱动器相去不远,但在随机访问能力上存在较大的差距,因此SATA RAID适用于视频监控及流媒体应用,而不宜在强调IOPS和高可靠性的交易密集型应用中“以卵击石”。从目标应用对随机访问(特别是随机写)能力要求不高的角度来看,不要说RAID 6比RAID 5低三分之一,就是RAID 5只有RAID 0的四分之一(仅限于RocketRAID 3220的随机写成绩),也无碍大局。
综合考虑SATA RAID相对较长的重建时间和RAID 6总体表现尚佳的性能,建议用户们不妨让RAID 6给SATA RAID多上一道保险。