|
|
|
|
移动端

再谈Raid 5和Raid 6的写性能差异

这次给大家介绍下RAID 5和RAID 6做后端在写性能上的差异以及原因。这里暂不考虑上层缓存以及跨array创建LUN带来的性能提升,只考虑array本身的性能差异。

作者:Gu Jun来源:存储蓝|2018-02-06 09:21

人工智能+区块链的发展趋势及应用调研报告


这次给大家介绍下RAID 5和RAID 6做后端在写性能上的差异以及原因。这里暂不考虑上层缓存以及跨array创建LUN带来的性能提升,只考虑array本身的性能差异。

随机短步写

对于写入量小于条带数据块的写操作,之前已经讲过,对于RAID 5而言,短步写会从data盘上读取要改写的数据,从parity盘上读取P校验,然后把新数据写入data盘,计算新的P校验值并写入P校验盘,总共是2次读+2次写操作。

对于RAID 6,则需要读取要改写的数据,从P盘读取P校验,从Q盘读取Q校验,把新数据写入data盘,计算新的P和Q校验,再分别写入P盘和Q盘,所以总共是3次读+3次写。

也就是说,假设所有写入的块大小都是Z, 单个磁盘所能处理Z大小的数据块的最大IOPS是定值X,组成RAID的磁盘个数都是Y,那么对应的RAID 5可以处理的最大IOPS是X*Y/4,而RAID 6可以处理的是X*Y/6,对应的数据传输率就是Z*X*Y/4和Z*X*Y/6。也就是说,由于多了个Q校验的读写,RAID 6在随机短步写性能上和RAID5比会有33%的差距。所以除了增大成员磁盘个数Y外,并没有很好的方法来改进RAID 6的性能,而一味的增大Y又会带来其他问题在此不再详述。

连续整条带写

RAID 5整条带写的过程是,计算出P校验,把数据和P校验一起写入到所有的RAID成员磁盘里。

RAID 6整条带写的过程是,计算出P和Q校验,把数据和P和Q校验一起写入到所有的RAID成员磁盘里。

我们依然假设2种RAID都用相同的磁盘个数Y,RAID 5的条带数据块大小是a,RAID 6的条带数据块是b。那么由于有P校验的存在,RAID 5的条带大小就是a*(Y-1),RAID 6有P和Q两个校验,条带大小就是b*(Y-2)。

不管是RAID 5还是RAID 6,写完整的一个条带,都需要把所有成员磁盘写一次,也就是说需要的磁盘IO数都是Y。如果条带数据块a和b比较小的话,对于现在的大容量机械硬盘来说,寻道时间远大于小块数据的传输时间,所以我们可以假设磁盘处理a和b大小的数据块的最大IOPS都是x。那么RAID 5做连续整条带写的数据传输率就是a*(Y-1)*x,RAID 6则是b*(Y-2)*x。由此可见,当RAID 6和RAID 5的条带数据块大小一致时候(a=b),如果都是8个磁盘组成的RAID,RAID 5和RAID 6的传输率对比就是7:6,这是RAID 6多出一个Q校验的代价。同时从上面的公式可以看到,增大RAID 6的条带数据块大小b可以在一定范围内提高RAID 6的性能。当然b是不能无限制增大的,当条带数据块大到一定程度的时候,寻道时间不再远小于数据块的传输时间,也就是说对于RAID 5和RAID 6的磁盘处理a和b大小的数据块的最大IOPS将不再相等,上面的公式也就不适用了。所以对于连续整条带写,选择一个合适的条带数据块大小对于性能很重要。

综上,RAID 6相对于RAID 5,有天然的写性能上的不足,但是数据安全始终是第一位的,随着磁盘容量越来越大,RAID重建(rebuilding)时间也越来越长,RAID 5重建时候用户数据暴露在无保护的时间窗口也越来越大,采用RAID 6可以更好的保护用户数据,这点性能上的付出是值得的,而且通过上层的缓存和跨越更多个rank来建LUN可以一定程度上弥补性能差距。

【编辑推荐】

  1. 组图:RAID 5EE 阵列级别简介
  2. Buffalo将于9月下旬推出RAID 5 NAS存储
  3. 实战:RAID 5搭建详尽攻略
  4. vSAN 6.2中如何实现RAID 5或RAID 6擦除编码?
  5. DRAM核心设计的新旧存取技术差异
【责任编辑:武晓燕 TEL:(010)68476606】


点赞 0
分享:
大家都在看
猜你喜欢

热门职位+更多

读 书 +更多

ASP快速建站全程实录

本书从一个网站制作过程入手,详细介绍基于ASP技术建设网站的全过程。全书共10章。第1章,网站制作规划与流程;第2章,IIS安装与调试;第3...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊