计算传统 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 组。