1 XFSファイル・システムについて
XFSは、もともとSilicon Graphics, Inc.によってIRIX OS用に作成され、後にLinuxに移植された高性能のジャーナル・ファイル・システムです。 ファイル・システムが多数のストレージ・デバイスにまたがる場合でも、XFSの並列I/Oパフォーマンスのおかげで、I/Oスレッド、ファイル・システムの帯域幅、ファイルおよびファイル・システムのサイズに、高いスケーラビリティが確保されます。
XFSは、Oracle Linuxのroot (/)またはbootファイル・システムで使用できます。
XFSには、大規模なファイル・システムの実装を必要とするエンタープライズ・レベルのコンピューティング環境でのデプロイメントに適した、次のような多くの機能があります。
-
メタデータ操作のためのジャーナルが実装されます。
ジャーナルにより、停電やシステム障害が発生した場合にファイル・システムの整合性が保証されます。 XFSは、ファイル・システムの更新を非同期で循環バッファ(journal)に記録しており、それにより、ディスクに対する実際のデータ更新のコミットが可能です。 ジャーナルは、内部的にファイル・システムのデータ・セクションに格納するか、ディスク・アクセスの競合を減らために外部的に別のデバイスに格納することができます。 システム障害や停電が発生した場合は、ファイル・システムの再マウント時にジャーナルが読み取られ、保留中のメタデータ操作がすべてリプレイされて、ファイル・システムの整合性が確保されます。 このリカバリの速度は、ファイル・システムのサイズによって変わるわけではありません。
-
複数の割当てグループに内部的に区分けされます。これが固定サイズの仮想ストレージ領域です。
作成するファイルやディレクトリは、複数の割当てグループにまたがっていてもかまいません。 各割当てグループは、他の割当てグループとは独立に、独自のinodeと空き領域の組合せを管理して、I/O操作のスケーラビリティと並列性を確保します。 ファイル・システムが多くの物理デバイスにまたがる場合、割当てグループによりチャネルをストレージ・コンポーネントに基盤から分離することができるため、スループットを最適化できます。
-
エクステント・ベースのファイル・システム。
ファイルのフラグメンテーションと複数箇所への散在を少なく保つために、各ファイルのブロックは可変長のエクステントを持つことができます。ここで、各エクステントは1つ以上の連続ブロックで構成されています。 XFSの領域割当てスキームは、ファイル・システム操作に使用できる空きエクステントが効率的に特定されるように設計されています。 XFSでは、スパース・ファイルでの空き部分にはストレージが割り当てられません。 可能であれば、ファイルのエクステント割当てマップは、ファイルのinodeに格納されます。 大きな割当てマップは、割当てグループによって維持されるデータ構造に格納されます。
-
reflinkおよび重複排除機能が含まれています。これにより、次の利点があります。
-
各コピーに専用のinodeがあるため、各コピーは異なるファイル・メタデータ(権限など)を保持できます。 データ・エクステントのみが共有されます。
-
このファイル・システムでは、アプリケーションで特別な操作が必要になることなく、あらゆる書込みでコピーオンライトが発生します。
-
あるエクステントを変更しても、その他すべてのエクステントは共有状態を維持できます。 そのようにして、エクステント単位で領域が節約されます。 ただし、ハードリンク・ファイルへの変更には、ファイル全体の新しいコピーが必要になる点に注意してください。
-
-
遅延割当てが実装されます
断片化を減らしパフォーマンスを高めるために、XFSでは、バッファ・キャッシュにおいてデータ用のファイル・システム・ブロックが予約され、OSでそのデータがディスクにフラッシュされるときにそのブロックが割り当てられます。
-
XFSでは、ファイルの拡張属性が認識されます。
各属性の値のサイズは最大64 KBで、各属性はルートまたはユーザー・ネームスペースのいずれかに割り当てることができます。
-
XFSの直接I/Oは、高スループットの非キャッシュI/Oを実装します。
XFSでは、デバイスのすべてのI/O帯域幅を使用して、アプリケーションとストレージ・デバイスの間でDMAが直接実行されます。
-
ボリューム・マネージャ、ハードウェア・サブシステムおよびデータベースで提供されるスナップショット機能が含まれています。
xfs_freezeコマンドを使用して、XFSファイル・システムのI/Oを一時停止および再開します。 XFSファイル・システムの凍結と凍結解除を参照してください。 -
XFSでは、ブロックおよびinodeの使用量に関するユーザー、グループおよびプロジェクト・ディスク割当てが可能になり、それはファイル・システムのマウント時に初期化されます。 プロジェクト・ディスク割当てを使用すると、XFSファイル・システム内の個々のディレクトリ階層に、どのユーザーまたはグループにそれに対する書き込みアクセスがあるかに関係なく、制限を設定できます。
基盤となるストライプ化ソフトウェアまたはハードウェア・ベースのアレイ上に作成するXFSファイルシステムのスループットを最大化するために、mkfs.xfsコマンドの-dオプションのsuおよびsw引数を使用して、各ストライプ単位のサイズとストライプあたりの単位数を指定できます。 XFSは、その情報を使用して、ストレージに対して適切なようにデータ、inodeおよびジャーナルを調整します。 lvmボリューム、mdボリュームおよび一部のハードウェアRAID構成では、XFSで、最適なストライプ・パラメータを自動的に選択できます。
アクティブなXFSファイル・システム内の個々のファイルをデフラグするには、xfs_fsrコマンドを使用します。 XFSファイル・システムのデフラグを参照してください。
XFSファイル・システムを拡張するには、xfs_growfsコマンドを使用します。 XFSファイル・システムのサイズ調整を参照してください。
ライブXFSファイル・システムをバックアップおよびリストアするには、xfsdumpおよびxfsrestoreコマンドを使用できます。 XFSファイル・システムのバックアップとリストアを参照してください。
XFSの詳細は、https://xfs.wiki.kernel.org/を参照してください。
ローカル・ファイル・システム管理の概要は、「Oracle Linux 10: ファイル・システム管理の実行」を参照してください。