计算 ZFS RAIDZ 的 IOPS 与计算 RAID5 和 RAID6 的 IOPS 是否不同?

计算 ZFS RAIDZ 的 IOPS 与计算 RAID5 和 RAID6 的 IOPS 是否不同?

计算传统 RAID 阵列的 IOPS 时,可以使用以下公式(借用自掌握 IOPS v1.3在 Symantec Connect 上):

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

在哪里:

  • Ieffective 是有效 IOPS 数量
  • Isingle 是单盘平均IOPS
  • n 是阵列中的磁盘数量
  • 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
    

该公式本质上是以下函数:

  • 阵列中每个驱动器的 IOPS
  • 磁盘数量。磁盘越多,IOPS 越高
  • 每次写入操作的 RAID 惩罚。
    • RAID5 和 RAID6 每次写入都需要 4 次以上的磁盘操作。控制器必须读取块,然后读取奇偶校验数据(两次操作),计算新的奇偶校验数据,然后更新奇偶校验块并更新数据块(另外两次操作)。RAID6 有两个奇偶校验块,因此需要三次读取和三次写入。因此,RAID5 和 RAID6 阵列的 IOPS 比 RAID1 要少。
    • RAID1 和 RAID10 仅需要 2 次写入,镜像中的每个磁盘一次。

要明确的是,这一切都提供了一个估计理论性能。各种控制器和 RAID 方法都有一些技巧可以加快其中的一些速度。

ZFS 中与 RAID5 和 RAID6 相当的是 RAIDZ 和 RAIDZ2。计算 RAIDZ 阵列的 IOPS 时,我可以使用与 RAID5 和 RAID6 相同的公式吗?或者 ZFS 是否有特殊技巧来减少写入操作所需的操作数。

计算 RAIDZ 阵列的 IOPS 时是否使用不同的公式?

答案1

这个问题比较容易回答...

一切都浓缩在这里:ZFS RAID 建议:空间、性能和 MTTDL进一步了解 ZFS、Vdevs 和性能

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

因此,如果您需要扩展,则可以根据 RAIDZ vdev 的数量进行扩展...例如,如果有 16 个磁盘,则 4 组 4 磁盘 RAIDZ 的 IOPS 潜力将大于 2 组 8 磁盘 RAIDZ。

很令人惊奇吧?

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

在 ZFS 中,您只能以完整 vdev 为单位进行扩展。因此,虽然扩展 RAID 1+0 集意味着添加更多对,但对 RAIDZ 集执行相同操作意味着添加更多相同组成的 RAIDZ 组。

相关内容