XFS (日本語) - ArchWiki

# XFS (日本語)

関連記事

- ファイルシステム

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 からとされます。

Warning: Btrfs や ZFS とは異なり、CRC32 チェックサムはメタデータだけに適用され、実際のデータには使われません。

## パフォーマンス

速度を最適化するには、XFS ファイルシステムを次のコマンドで作成します:

    # mkfs.xfs /dev/target_partition

はい、とてもシンプルです。なぜなら "ブースト機能" は全てデフォルトで "オン" になっている からです。

Warning: パフォーマンスを上げるためにバリアや atime などの無効化を施すとデータの破損が頻繁に起こるようになる可能性があります。

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

## 参照

- XFS FAQ
- Improving Metadata Performance By Reducing Journal Overhead
- wikipedia:ja:XFS

Category:

- File systems (日本語)