従来のRAIDアレイのIOPSを計算する場合、次の式を使用できます(Symantec ConnectでIOPS v1.3のハングを取得するから借用)。
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回以上のディスク操作が必要です。コントローラーは、ブロックを読み取ってからパリティデータを読み取り(2回の操作)、新しいパリティデータを計算してから、パリティブロックを更新してデータブロックを更新する必要があります(2回の操作)。RAID6には2つのパリティブロックがあるため、3つの読み取りと3つの書き込みが必要です。したがって、RAID5およびRAID6アレイは、RAID1よりも少ないIOPSを実現できます。
- RAID1およびRAID10は、ミラー内の各ディスクに1つずつ、2回の書き込みのみを必要とします。
明確にするために、これはすべて推定値を提供します理論上の性能のを。さまざまなコントローラーとRAID方式には、この一部を高速化するためのトリックがあります。
ZFSのRAID5およびRAID6に相当するものは、RAIDZおよびRAIDZ2です。RAIDZアレイのIOPSを計算するとき、RAID5およびRAID6に使用するのと同じ式を使用できますか、またはZFSには書き込み操作に必要な操作の数を減らすための特別なトリックがあります。
RAIDZアレイのIOPSを計算するときに使用する別の式はありますか?