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