Performance
計算 ZFS RAIDZ 的 IOPS 與計算 RAID5 和 RAID6 的 IOPS 是否不同?
在計算傳統 RAID 陣列的 IOPS 時,可以使用以下公式(借自Getting The Hang Of IOPS v1.3 on 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 時是否有不同的公式可以使用?
這個比較容易回答…
這一切都在這裡提煉:ZFS RAID 建議:空間、性能和 MTTDL和更深入地了解 ZFS、Vdevs 和性能
- 帶有一個奇偶校驗驅動器的 RAIDZ 將為您提供單個磁碟的 IOPS 性能,但總頻寬是單個磁碟的 n-1 倍。
因此,如果您需要擴展,您可以根據 RAIDZ vdev 的數量進行擴展…例如,對於 16 個磁碟,4 組 4 磁碟 RAIDZ 將比 2 組 8 磁碟 RAIDZ 具有更大的 IOPS 潛力。
令人驚訝,對吧?
我通常在 ZFS 安裝中使用條帶鏡像 (RAID 1+0)。同樣的概念也適用。更多鏡像對 == 更好的性能。
在 ZFS 中,您只能以完整 vdev 為單位進行擴展。因此,雖然擴展 RAID 1+0 集意味著添加更多對,但對 RAIDZ 集執行相同操作意味著添加更多組成相同的 RAIDZ 組。