4 * 2 TBディスクで構成されるLinuxソフトウェアRAIDレベル5をセットアップしました。ディスクアレイは64kのストライプサイズで作成され、他の構成パラメーターはありません。最初の再構築後、私はファイルシステムを作成しようとしましたが、このステップには非常に長い時間がかかりました(約30分以上)。xfsとext3ファイルシステムを作成しようとしましたが、どちらも長い時間がかかりました。 :
個々のディスクのパフォーマンスは非常に良好です。ディスクごとに個別にbonnie ++を実行し、約95/110MB /秒の書き込み/読み取り値を使用しています。すべてのドライブでbonnie ++を並行して実行した場合でも、値は約10 MBしか減少しません。そのため、ハードウェア/ I/Oのスケジューリングは一般的に問題の原因として除外しています。
Stripe_cache_sizeとreadahead sizeのさまざまな構成パラメーターを試してみましたが、成功しませんでしたが、ファイルシステムの作成操作に関係があるとは思いません。
サーバーの詳細:
これをさらにデバッグする方法について誰かが提案をしていますか?
私は、それがストライプアライメントに関連している可能性があることに同意します。私の経験から、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=パフォーマンスも向上させるので、より適切に調整しておく必要があります。
典型的なRAID5の小さな書き込みの問題が発生していると思います。ストライプサイズ以下の書き込みの場合、データとパリティの両方に対して読み取り-変更-書き込みを行う必要があります。書き込みがストライプと同じサイズの場合、値が何であるかを認識しており、パリティを再計算する必要がないため、パリティを単純に上書きできます。
ファイルシステムの作成時にストライドとストライプ幅を指定すると、mkfsとそれに続くファイルシステムのパフォーマンスが向上する可能性があります。デフォルトの4kブロックを使用している場合、ストライドは16(64kのRAIDストライプを4kのファイルシステムブロックで割った値)で、ストライプ幅は48(16のファイルシステムストライドにアレイ内の3つのデータディスクを掛けたもの)です。
mkfs.ext3 -E stride=16 stripe-width=48 /dev/your_raid_device