LinuxソフトウェアRAID 5でmkfs操作に非常に時間がかかる


9

4 * 2 TBのディスクで構成されるLinuxソフトウェアRAIDレベル5をセットアップしました。ディスクアレイは64kのストライプサイズで作成され、他の構成パラメーターはありません。最初の再構築後、ファイルシステムを作成しようとしましたが、このステップには非常に時間がかかります(約30分以上)。私はxfsとext3ファイルシステムを作成しようとしましたが、どちらも長い時間がかかりました。mkfs.ext3を使用して、次のような動作が確認できました。

  • iノードテーブルの書き込みは、1053(〜1秒)に達するまで高速で実行され、その後約50を書き込み、2秒待機してから、次の50が書き込まれます(コンソールの表示によると)。
  • Control + Cで操作をキャンセルしようとすると、本当にキャンセルされる前に30分間ハングします

個々のディスクのパフォーマンスは非常に良好です。それぞれのディスクで個別にbonnie ++を実行し、約95 / 110MB /秒の書き込み/読み取り値を使用しています。すべてのドライブでbonnie ++を並行して実行した場合でも、値は約10 MBしか減少しません。したがって、ハードウェア/ I / Oのスケジューリングは一般的に問題の原因として除外しています。

stripe_cache_sizeとreadahead sizeのさまざまな構成パラメーターを試してみましたが、成功しませんでしたが、ファイルシステムの作成操作に関係があるとは思いません。

サーバーの詳細:

  • Linuxサーバー2.6.35-27-generic#48-Ubuntu SMP x86_64 GNU / Linux
  • mdadm-v2.6.7.1

これをさらにデバッグする方法について誰かが提案をしていますか?

回答:


4

私は、それがストライプアライメントに関連している可能性があることに同意します。私の経験から、3 * 2TB RAID-0でアラインされていないXFSを作成するには、最大5分かかりますが、ストライプサイズにアラインされている場合、最大で10-15秒です。XFSを256KBのストライプサイズに揃えるためのコマンドを次に示します。

mkfs.xfs -l internal,lazy-count=1,sunit=512 -d agsize=64g,sunit=512,swidth=1536 -b size=4096 /dev/vg10/lv00

ところで、私の場合のストライプ幅は3ユニットです。これは、4つのドライブを使用する場合と同じですが、raid-5です。

明らかに、これによりFSのパフォーマンスも向上するため、調整を維持することをお勧めします。


こんにちは、これは何の違いもありませんでした、私は試しました:time mkfs.xfs -l sunit=128 -d agsize=64g,sunit=128,swidth=512 -b size=4096 /dev/md0 -fパラメータなしのmkfsとほぼ同じ時間がかかりました
Elmar Weber

私はbonnie ++を実行しているので、操作中にパフォーマンスが変化するかどうかを確認します。btw:agsizeパラメータには何らかの理由がありますか?マニュアルページを読みましたが、値を設定するメリットを推測できませんでした。
Elmar Weber

(ところで:上記のコマンドは間違っていました。正しい幅は384でした)
Elmar Weber

mkfsでパフォーマンスは向上しませんでしたが、bonnie ++で測定した全体的なパフォーマンスははるかに優れています。ファイルの作成/削除操作は以前の約4倍、シーケンシャル書き込み速度は約15%です。どうもありがとう。
Elmar Weber

2
ここではagsizeは実際には必要ありません-mkfsが自動的に計算します(ボリュームのサイズを論理CPUの数で割って)。それは私自身のセットアップからの残り物です-私は将来の構成変更のためにいくらか期待してこのボリュームを作成しました。
dtoubelis

6

典型的なRAID5の小さな書き込みの問題が発生していると思います。ストライプサイズ以下の書き込みの場合、データとパリティの両方に対して読み取り-変更-書き込みを行う必要があります。書き込みがストライプと同じサイズの場合、値が何であるかを認識しており、パリティを再計算する必要がないため、パリティを単純に上書きできます。


これは正しく表示されますか?:mkfs.ext3の出力によると、1秒あたり約25のiノードテーブルが書き込まれます。最初の作成時に64kより小さいと想定しているため、64kのストライプが書き込まれます。これは、各ディスクへの16kの書き込みを意味します。したがって、毎秒25のランダムな16kの書き込みと4kbのセクターサイズは、毎秒100のランダムなI / O操作を意味します。これは、bonnie ++が示したものです。
Elmar Weber

実際のRAID、読み取り335 MB、書き込み310 MBでbonnie ++の結果と一致しますが、ファイルの作成と削除は単一ディスクのパフォーマンスの1/4にすぎません。
Elmar Weber

3

ファイルシステムの作成時にストライドとストライプ幅を指定すると、mkfsとそれに続くファイルシステムのパフォーマンスが向上する可能性があります。デフォルトの4kブロックを使用している場合、ストライドは16(64kのRAIDストライプを4kのファイルシステムブロックで割ったもの)であり、ストライプ幅は48(ファイルシステムストライド16にアレイ内の3つのデータディスクを掛けたもの)です。

mkfs.ext3 -E stride=16 stripe-width=48 /dev/your_raid_device
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.