4x2TB ディスクがあり、パフォーマンスの高い RAID5 アレイを作成したいと考えています (サーバーは 8GB RAM を搭載した HP N40L マイクロサーバーで、64GB SSHD から起動します)。OS は Centos 6.3、x86_64 です。
次のコマンドで RAID アレイを作成しました:
mdadm --create --verbose /dev/md0 --level=5 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
次に私が行うことは:
mdadm --examine /dev/sda1
...「チャンク サイズ」は 512K だと言われました (どうやらこれが mdadm の新しいデフォルト値のようです)。
今、XFSでアレイをフォーマットしたいのですが、http://www.mythtv.org/wiki/Optimizing_Performance#Optimizing_XFS_on_RAID_Arrays) は、"sunit" が 512 バイト ブロックの数として表されるチャンク サイズに等しいことを表します。つまり、私の場合、512KB = 1024 512 バイト ブロックです。同様に、"swidth" は、アレイ内の有効なディスクの数に sunit を掛けたものです。私の場合、RAID 5 に 4 つのディスクがあるため、有効なディスクは 3 つで、3x1024=3072 です。したがって、次のコマンドを使用して新しいアレイをフォーマットしました。
mkfs.xfs -b size=4096 -d sunit=1024,swidth=3072 /dev/md0
質問が 2 つあります。上記のコマンドで次のエラーが発生しました:
mkfs.xfs -b size=4096 -d sunit=1024,swidth=3072 /dev/md0
log stripe unit (524288 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB [...]
...そして、それが何か間違ったことをしたことを意味するのか、あるいは何らかの形で最適ではないファイルシステムになってしまうのか、あるいは何らかの理由でそのエラーを無視できるのかを知りたいのです。
2 番目の質問は、XFS パラメータを正しく計算したのか、それとも完全に間違った方向に進んでいるのかということです (参考になれば幸いですが、アレイには、ほとんどの場合、大きな音楽ファイルやビデオ ファイルが格納されます)。たとえば、「チャンク サイズ」と「ストライプ サイズ」を理解しましたか? mkfs コマンドのブロック サイズ 4096 は最適ですか? などです。
これに関してアドバイスをいただければ幸いです。
答え1
XFS は 256k を超えるストライプ ユニットをサポートしていないため、256k ストライプで RAID アレイを再作成してください。これは--chunk
のパラメーターですmdadm
。
4k のブロック サイズは、想定される用途には小さすぎる可能性があります。小さなファイルを多数保存する場合は、4k の方が適しているでしょう。XFS は最大 64k ブロックまで対応できます。連続したブロックの読み取りと書き込みは高速ですが、ブロック サイズが大きいとオーバーヘッドによってスペースがいくらか失われます。
割り当てはブロック単位でしか行えないため、処理する予定のファイルのサイズに基づいてブロック サイズを選択してください。ブロック サイズが 4k の場合、サイズが 1kb のファイルは 4kb (1 ブロック) のスペースを占有し、サイズが 65kb のファイルは 68kb (17 ブロック) のスペースを占有します。ブロック サイズが 64kb の場合、サイズが 1kb のファイルは 64kb (1 ブロック) を占有し、サイズが 65kb のファイルは 128kb (2 ブロック) を占有します。
小さなファイルを扱う場合、ブロック サイズが大きいと多くのスペースが無駄になります。数百ギガバイトのビデオ ファイルを扱う場合、64kb は気にする必要はなく、ブロック サイズが大きいことによるパフォーマンス上の利点の方が大きな違いを生みます。
理解しておくべきもう 1 つのことは、割り当てグループです。各 AG には個別の IO スレッドが割り当てられます。XFS アロケータは、各ディレクトリを異なる AG に配置しようとします。基本的な理論は、物理デバイスごとに 1 つの AG です。
XFS のドキュメントを読んで、ファイルシステムがどのように構築されているかを理解してください。
知識に基づいた推測を行い、自分にとって最も重要な要素を決定します。生産データを表すファイル (または実際の生産データのコピー) をいくつか取得し、自分にとって重要な点についてベンチマークを実行します。さまざまなブロック サイズに基づいて、ビデオまたはオーディオ ソフトウェアがファイルを読み取りおよび書き込みする速度などのメトリックを選択します。複数のオーディオ/ビデオ エンジニアが同時にファイルにアクセスすると、さまざまな AG でのスループットにどのような影響がありますか。
XFS は、数百テラバイトの巨大なファイルシステム用に設計されており、家よりも価値のある SAN 上で動作し、プロの映画スタジオで必要な大量の非圧縮メディア ファイルを保存します。海賊版の音楽やテレビ番組を安価な Linux ボックスに保存するためにこれを使用する場合は、ext4 を使用するだけで、問題が発生した場合のトラブルシューティングと修正がはるかに簡単になります。