「XFS」の版間の差分
細 (→パフォーマンス) |
細 (1版 をインポートしました) |
(相違点なし)
|
2015年1月12日 (月) 20:45時点における版
関連記事
XFS は Silicon Graphics, Inc によって開発された高性能ジャーナリングファイルシステムです。XFS はアロケーショングループを使って設計されているため並列化された IO で特に性能を発揮します。このため複数のストレージデバイスを使用するときは IO スレッド, ファイルシステムの帯域, ファイルとファイルシステムのサイズ全てをスケーリングすることが可能です。
目次
インストール
XFS パーティションを管理するためのツールは公式リポジトリにある xfsprogs パッケージに含まれており、このパッケージはデフォルトでインストールされています。
データの破損
何らかの理由でデータが破損してしまった場合、手動で修復がする必要があります。
XFS ファイルシステムの修復
まず XFS ファイルシステムをアンマウントしてください:
# umount /dev/sda3
アンマウントしたら、xfs_repair ツールを実行します:
# xfs_repair -v /dev/sda3
整合性
xfsprogs 3.2.0 から新しいオンディスクフォーマット (v5) が導入され、Self-Describing Metadata という名前のメタデータチェックサム機構が入っています。CRC32 に基づいて、突然の停電などでメタデータが破損するのを保護します。デフォルトでは mkfs.xfs ツールを使ってもチェックサムは有効になりません。mkfs.xfs の実行時に -m crc=1
スイッチを使うことで有効にすることができます:
# mkfs.xfs -m crc=1 /dev/target_partition
XFS の v5 オンディスクフォーマットが実運用に耐えるほど安定になったのは Linux カーネル 3.15 からとされます。
パフォーマンス
速度を最適化するには、XFS ファイルシステムを次のコマンドで作成します:
# mkfs.xfs /dev/target_partition
はい、とてもシンプルです。なぜなら "ブースト機能" は全てデフォルトで "オン" になっている からです。
XFS wiki によれば、XFS を最大限活用したい場合は、デフォルトの CFQ I/O スケジューラーを (Deadline, Noop, BFQ などに) 変更したほうが良いようです (特に SSD を使っている場合)。
ストライプサイズと幅
ファイルシステムをストライプする RAID 上に作成する場合は mkfs.xfs
コマンドでストライプサイズを指定することで著しい速度の向上が望めます。
How to calculate the correct sunit,swidth values for optimal performance を見て下さい。
バリアの無効化
/etc/fstab
ファイルに nobarrier マウントオプションを追加してファイルシステムのバリアの使用を無効化することでパフォーマンスを上げることができます。
アクセス日時
/etc/fstab
ファイルに noatime
マウントオプションを追加することでファイルシステムのパフォーマンスが向上することがあります。XFS ファイルシステムではデフォルトの atime の扱い方は relatime
になっており、noatime
と比べてオーバーヘッドをかなり減らしつつも atime の値を正常に保ちます。現在 Linux の全てのファイルシステムが (2.6.30 あたりから) デフォルトで relatime
を使うようになっていますが、XFS が relatime
を使うようになったのは2006年からです。そのため、パフォーマンスを理由に XFS で noatime
を使う必要はほとんどありません。
また、noatime
には nodiratime
が含まれているため、noatime
を指定したら nodiratime
を指定する必要はなくなります。
デフラグ
XFS はエクステントベースであり遅延アロケーションを利用しているため断片化の問題はなかなか発生しないようになっていますが、マウントされたアクティブな XFS ファイルシステム上のファイルをデフラグできる、ファイルシステムデフラグユーティリティ (xfs_fsr, XFS filesystem reorganizer の略) が用意されています。定期的に XFS の断片化を監視するのにも使えます。
xfs_fsr はマウントされたファイルシステムの編成を改善します。再編成アルゴリズムによって一度に一つのファイルが操作され、コンパクトになる、つまりファイルのエクステント (ファイルデータの連続ブロック) のレイアウトが改善されます。
フラグメンテーションレベルの確認
ファイルシステムにどれくらい断片化が発生しているのか確認するには:
# xfs_db -c frag -r /dev/sda3
デフラグの実行
デフラグを開始するには、xfsprogs パッケージに含まれている xfs_fsr
コマンドを使います:
# xfs_fsr /dev/sda3