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

Ste*_*ski 13 performance zfs storage

在计算传统 RAID 阵列的 IOPS 时,可以使用以下公式(从Symantec Connect 上的Getting The Hang Of IOPS v1.3借用):

Ieffective = (n * Isingle) / (READ% + (F * WRITE%))
Run Code Online (Sandbox Code Playgroud)

在哪里:

该公式本质上是一个函数:

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

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

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

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

eww*_*ite 13

这个更容易回答...

所有内容都在这里提炼:ZFS RAID 建议:空间、性能和 MTTDL以及ZFS、Vdevs 和性能的深入了解

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

因此,如果您需要扩展,您可以根据 RAIDZ 虚拟设备的数量进行扩展……例如,对于 16 个磁盘,4 组 4 磁盘 RAIDZ 将比 2 组 8 磁盘 RAIDZ 具有更大的 IOPS 潜力。

令人惊讶,对吧?

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

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

  • 我只想说清楚 - ZFS 的设计本身不会赢得任何性能大战。您可以找到在相同硬件(例如 ext4 和 Adaptec RAID 卡)上性能优于 ZFS 的替代文件系统和卷管理器(或组合)。我所知道的唯一例外来自易于缓存的读取,其中 ARC 通常在大多数替代方案上为 ZFS 提供支持。但是当谈到写作时呢?不会。ZFS 在数据完整性及其处理写入方面所付出的努力几乎永远不会赢得速度竞赛。权衡是完整性和功能集。 (3认同)