在计算传统RAID阵列的IOPS时,可以使用以下公式(取自Symantec Connect上的IOPS v1.3入门):
Ieffective = (n * Isingle) / (READ% + (F * WRITE%))
哪里:
- 有效是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
好问题。我期待阅读答案...
—
EEAA 2013年
iops是神话,但是此文档可能会提供一些见解。info.nexenta.com/rs/nexenta/images/…–
—
托尼·
IOPS可能是理论上的,但它可以提供一个解释,说明在给定相同驱动器的情况下,为什么RAID10阵列通常会胜过RAID5阵列。
—
Stefan Lasiewski
Nexenta文档中的一个引人注目的引述是: “在RAIDZ-2配置中,需要分解进入VDEV的单个IO,并将其跨所有数据磁盘写入。然后,必须计算奇偶校验并将其写入磁盘。 IO可以完成,如果所有磁盘都具有相同的延迟,则对磁盘的所有操作都将同时完成,从而以一个磁盘的速度完成对VDEV的IO。 RAIDZ-2 VDEV,直到最慢驱动器上的IO完成,VDEV的IO才完成。”
—
Stefan Lasiewski