Show Table of Contents
このページには機械翻訳が使用されている場合があります (詳細はこちら)。
第8章 XFS ファイルシステム
XFS は拡張性、パフォーマンス性が高いファイルシステムで、元々は Silicon Graphics, Inc で設計されたファイルシステムでした。巨大なファイルシステム (最大 16 エクサバイト) やファイル群 (8 エクサバイト)、ディレクトリー構造 (数千万のエントリー数) などに対応する目的で作成されました。
- 主な特長
- XFS はクラッシュからの迅速なリカバリーを容易にする メタデータジャーナリング に対応します。また、XFS ファイルシステムはマウント後のアクティブな状態でのデフラグや拡張も可能です。さらに Red Hat Enterprise Linux 6 では XFS 固有のバックアップや復元を行うユーティリティーにも対応しています。
- 割り当て機能
- XFS には以下のような割り当てスキームが備わっています。
- エクステント (領域) ベースの割り当て
- ストライプを認識できる割り当てポリシー
- 遅延割り当て
- 領域の事前割り当て
遅延割り当てやその他のパフォーマンス最適化は、ext4 に対するのと同様に XFS ファイルシステムに影響を与えます。つまり、プログラムによる XFS ファイルシステムへの書き込みは、書き込み後にそのプログラムがfsync()
呼び出しを実行しない限りオンディスクになるとは限りません。ファイルシステム (ext4 および XFS) での遅延割り当ての影響についてさらに詳しくは、6章Ext4 ファイルシステムの 『割り当て機能』 を参照してください。 - XFS ファイルシステムのその他の機能
- XFS ファイルシステムは次のような機能にも対応しています。
- 拡張属性 (
xattr
) - このシステムにより、ファイルごとの名前と値の複数の組み合わせを追加で関連付けられるようになります。これはデフォルトで有効にされます。
- クォータのジャーナリング
- クラッシュ後に行なわれる長い時間のかかるクォータの整合性チェックが不要になります。
- プロジェクト/ディレクトリーのクォータ
- ディレクトリーツリー全体にクォータ制限を適用することができます。
- サブセカンドのタイムスタンプ
- タイムスタンプをサブセカンド (1 秒未満) 単位にできます。
- 拡張属性 (
8.1. XFS ファイルシステムの作成
XFS ファイルシステムを作成するには、
mkfs.xfs /dev/device
コマンドを使用します。通常、一般的な使用にはデフォルトのオプションが最適となります。
既存のファイルシステムを含むブロックデバイス上で
mkfs.xfs
を使用する場合は、-f
オプションを使ってそのファイルシステムの上書きを強制します。
例8.1 mkfs.xfs
コマンドの出力
以下に
mkfs.xfs
コマンドの出力例を示します。
meta-data=/dev/device isize=256 agcount=4, agsize=3277258 blks = sectsz=512 attr=2 data = bsize=4096 blocks=13109032, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal log bsize=4096 blocks=6400, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
注記
XFS ファイルシステムを作成後にサイズを縮小することはできません。ただし、
xfs_growfs
コマンドを使ってサイズを拡大することはできます (「XFS ファイルシステムのサイズの拡大」を参照)。
ストライプ化されたブロックデバイス (RAID5 アレイなど) の場合、ファイルシステムの作成時にストライプの配列を指定することができます。適切なストライプ配列を使用することで XFS ファイルシステムのパフォーマンスが飛躍的に高まります。
ファイルシステムを LVM ボリュームや MD ボリューム上に作成すると、
mkfs.xfs
によって最適な配列が選択されます。配列情報をオペレーティングシステムにエクスポートするハードウェア RAID の場合、同様に最適な配列の選択を行うものがあります。
ストライプの配列を指定する場合は以下の
mkfs.xfs
サブオプションを使用します。
- su=value
- ストライプユニットまたは RAIDのチャンクサイズを指定します。
value
はバイト単位で指定します。オプションでk
、m
、g
などを後ろに付けます。 - sw=value
- 1 RAID デバイス内のデータディスク数または 1 ストライプ内のストライプユニット数を指定します。
以下の例では、チャンクサイズが 64k、ストライプユニット数が 4 つの RAID デバイスを指定しています。
# mkfs.xfs -d su=64k,sw=4 /dev/device
XFS ファイルシステムの作成方法についてさらに詳しくは、
man mkfs.xfs
を参照してください。
このページには機械翻訳が使用されている場合があります (詳細はこちら)。