正在计算ZFS RAIDZ的IOPS,然后计算RAID5和RAID6的IOPS?

在计算传统RAIDarrays的IOPS时,可以使用以下公式(从Symantec Connect上获取IOPS v1.3挂起中借用):

Ieffective = (n * Isingle) / (READ% + (F * WRITE%)) 

哪里:

  • 有效的是有效的IOPS数量
  • Isingle是单个驱动器的平均IOPS 。
  • n是arrays中的磁盘数量
  • READ%是从磁盘分析中读取的部分
  • WRITE%是从磁盘分析中读取的部分
  • F是RAID写入的惩罚 :

     RAID Level Write Penalty RAID-0 1 RAID-1 2 RAID-5 4 RAID-6 6 RAID-10 2 RAID-DP 2 

公式基本上是一个函数:

  • arrays中每个驱动器的IOPS
  • 磁盘的数量。 更多的磁盘意味着更多的IOPS
  • 每个写操作的RAID惩罚。
    • 每次写入RAID5和RAID6需要4个以上的磁盘操作。 控制器必须读取块,然后读取奇偶校验数据(两个操作),计算新的奇偶校验数据,然后更新奇偶校验块并更新数据块(另外两个操作)。 RAID6有两个奇偶校验块,因此需要三次读取和三次写入。 因此,RAID5和RAID6arrays的IOPS较less,然后是RAID1。
    • RAID1和RAID10只需要2个写入,镜像中的每个磁盘一个写入。

而且要清楚的是,这一切都提供了理论性能估计 。 各种各样的控制器和RAID方法都有一些技巧来加速其中的一些。

ZFS相当于RAID5和RAID6是RAIDZ和RAIDZ2。 在计算RAIDZarrays的IOPS时,我可以使用与RAID5和RAID6相同的公式,或者ZFS有特殊的技巧来减less写操作所需的操作次数。

计算RAIDZarrays的IOPS时有没有不同的公式?

这更容易回答…

这里都提炼出来了: ZFS RAIDbuild议:空间,性能和MTTDL,以及ZFS,Vdevs和性能的深入研究

  • 具有一个奇偶校验驱动器的RAIDZ将为您提供单个磁盘的IOPS性能,但单个磁盘的总带宽是n-1倍。

因此,如果您需要扩展,您可以使用RAIDZ vdevs的数量进行扩展…例如,如果使用16个磁盘,则4组4-RAIDZ会比2组8-RAIDZ具有更高的IOPS潜力。

令人惊讶,对吧?

我通常在我的ZFS安装上使用条纹镜像(RAID 1 + 0)。 同样的概念适用。 更多的镜像对==更好的性能。

在ZFS中,只能以完整的vdev单位进行扩展。 所以,当RAID 1 + 0集合的扩展意味着增加更多的对时,对RAIDZ集合进行相同的操作意味着添加更多的相同组合的RAIDZ组。