web-dev-qa-db-ja.com

3ディスクソフトウェアRAID1EのExt3ストライド/ストライプ幅の計算

ここに入るには複雑すぎる理由で、私はいくつかのLinuxシステムで3ディスクRAID1Eを使用しています。詳細については、 ここ を参照してください。

したがって、このボリュームのファイルシステムレイアウトを最適化するには、次の計算を使用することを理解しています。

chunk-size = 64kB
block-size = 4kB
stride = chunk / block = 16
stripe-width = stride * ( (numdisks)/2 ) = 16 * 1.5 = 24

ただし、その計算を使用してストライプ幅を設定すると、mkfs.ext3は2の累乗である必要があるという警告を表示します。

だから私の質問は、私はそれを正しくやっていますか?ストライプは同じサイズなので、標準の4ディスクRAID10のように扱う必要がありますか?

更新:これは劣化したアレイではなく、完全にサポートされている構成です。最初の段落からリンクを読んでください。

3
Alex G

さまざまなサイズとレベルのMDRAIDで、ext3の代わりにXFSを使用していくつかの実験を実行しました。次の式が全面的に適用されるようです。

# chunk is specified in mdadm create, block in mkfs
stride = chunk / block
stripe-width = ((slices - parity) * stride

RAID0/10/1Eの場合はパリティがゼロ、RAID5の場合は1つ、RAID6の場合は2つです。

したがって、私の元の質問の場合、ストライプ幅は48(64kBチャンク、4kBブロック、3スライス、ゼロパリティ)に設定する必要があります。これらの設定を使用すると、mkfs.ext3は、ストライプ幅がストライドで割り切れないという警告を表示しなくなりました。

0
Alex G

ストライプ幅を64kBより高く設定すると、最適ではなくなります。

サイズが64kBを超える書き込みは、4回の書き込みになります。1回のディスクへの書き込み、1回のディスクへの書き込み、2回の書き込みです。

ストライプ幅を64kBに設定するだけです。

2
MikeyB