Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
3.10. ext4 から XFS への移行
Red Hat Enterprise Linux 7.0 以降、デフォルトのファイルシステムは ext4 ではなく XFS になります。本セクションでは、XFS ファイルシステムを使用または管理する際の相違点を説明します。
ext4 ファイルシステムは、引き続き Red Hat Enterprise Linux 7 で完全にサポートされており、インストール時に選択できます。ext4 から XFS への移行は可能ですが、必須ではありません。
3.10.1. Ext3/4 と XFS の相違点
- ファイルシステムの修復
- Ext3/4 は、ブート時にユーザー空間で e2fsck を実行し、必要に応じてジャーナルを回復します。比較すると、XFS はマウント時にカーネル空間でジャーナルリカバリーを実行します。
fsck.xfs
シェルスクリプトが提供されていますが、initscript の要件を満たすためだけに存在するため、有用なアクションは実行されません。XFS ファイルシステムの修復またはチェックが要求されたら、xfs_repair コマンドを使用します。読み取り専用チェックには -n オプションを使用します。xfs_repair コマンドは、ダーティーログのあるファイルシステムでは動作しません。このようなファイルシステムを修復するには、まず マウント と アンマウント を実行してログを再生する必要があります。ログが破損していて再生できない場合は、-L オプションを使用してログをゼロにすることができます。XFS ファイルシステムのファイルシステム修復の詳細は、「XFS」 を参照してください。 - メタデータエラーの動作
- ext3/4 ファイルシステムでは、メタデータエラーが発生した場合の動作を設定できますが、デフォルトは単に継続します。XFS で回復不可能なメタデータエラーが発生すると、ファイルシステムがシャットダウンされ、
EFSCORRUPTED
エラーが返されます。システムログには、発生したエラーの詳細が含まれており、必要に応じて xfs_repair を実行することが推奨されます。 - Quotas
- XFS クォータは再マウントできるオプションではありません。クォータを有効にするには、最初のマウント時に -o quote オプションを指定する必要があります。クォータパッケージの標準ツールは基本的なクォータ管理タスク (setquota や repquota などのツール) を実行できますが、xfs_quota ツールはプロジェクトクォータ管理などの XFS 固有の機能に使用できます。quotacheck コマンドは、XFS ファイルシステムには影響しません。クォータアカウンティングが初めてオンになると、内部で自動的に quotacheck を実行します。XFS クォータメタデータは、ファーストクラスのジャーナル化されたメタデータオブジェクトであるため、クォータシステムは、クォータが手動でオフになるまで常に一貫しています。
- ファイルシステムのサイズ変更
- XFS ファイルシステムには、ファイルシステムを縮小するユーティリティーはありません。XFS ファイルシステムは、xfs_growfs コマンドを使用してオンラインで拡張できます。
- Inode 番号
- 256 バイトの inode を持つ 1TB を超えるファイルシステム、または 512 バイトの inode を持つ 2TB を超えるファイルシステムでは、XFS の inode 番号が 2^32 を超える可能性があります。このような大きな inode 番号により、32 ビットの stat 呼び出しが EOVERFLOW の戻り値で失敗します。上記の問題は、デフォルトの Red Hat Enterprise Linux 7 設定 (4 つの割り当てグループでストライプ化されていない) を使用する場合に発生する可能性があります。ファイルシステムの拡張子や XFS ファイルシステムのパラメーターの変更など、カスタム設定では異なる動作が発生する場合があります。通常、アプリケーションは、このように大きな inode 番号を正しく処理します。必要に応じて、-o inode32 パラメーターを使用して XFS ファイルシステムをマウントし、inode 番号を 2^32 未満に強制します。
inode32
を使用しても、すでに 64 ビットの数値が割り当てられている inode には影響しないことに注意してください。重要特定の環境に必要な場合を除き、inode32
オプション は 使用しない でください。inode32
オプションは、割り当て動作を変更します。これにより、下層のディスクブロックに inode を割り当てるための領域がない場合に、ENOSPC エラーが発生する可能性があります。 - 投機的事前割り当て
- XFS は、投機的事前割り当て を使用して、ファイルの書き込み時に EOF を超えてブロックを割り当てます。これにより、NFS サーバーでの同時ストリーミング書き込みワークロードによるファイルの断片化を回避します。デフォルトでは、この事前割り当てはファイルのサイズとともに増加し、"du" の出力で確認できます。投機的事前割り当てのあるファイルで 5 分間ダーティーが発生しない場合、事前割り当ては破棄されます。その時間より前に、inode がキャッシュからサイクルアウトされると、inode が回収される際に、事前割り当てが破棄されます。投機的な事前割り当てが原因で時期尚早の ENOSPC 問題が発生した場合は、-o allocsize= amount マウントオプションを使用して固定の事前割り当て量を指定できます。
- フラグメンテーション関連のツール
- フラグメント化は、割り当ての遅延や投機的な事前割り当てなどのヒューリスティックおよび動作のために、XFS ファイルシステムで重大な問題になることはめったにありません。ただし、ファイルシステムの断片化を測定したり、ファイルシステムのデフラグを行うツールは存在します。それらの使用は推奨されていません。xfs_db frag コマンドは、すべてのファイルシステム割り当てを単一の断片化数値 (パーセンテージで表現) に抽出しようとします。コマンドの出力には、その意味を理解するための十分な専門知識が必要です。たとえば、75% のフラグメント化ファクターの場合は、ファイルあたり平均 4 つのエクステントのみを意味します。このため、xfs_db のフラグメントの出力は有用とは見なされず、フラグメント化の問題を注意深く分析することが推奨されます。警告xfs_fsr コマンドは、ファイルシステム上の個々のファイルまたはすべてのファイルをデフラグするために使用できます。後者は、ファイルの局所性を破壊し、空き領域をフラグメント化する可能性があるため、特にお勧めしません。
XFS と比較した ext3 および ext4 で使用されるコマンド
以下の表は、ext3 および ext4 で使用される一般的なコマンドを、XFS 固有のコマンドと比較します。
表3.1 XFS と比較した ext3 および ext4 の共通コマンド
タスク | ext3/4 | XFS |
---|---|---|
ファイルシステムを作成する | mkfs.ext4 or mkfs.ext3 | mkfs.xfs |
ファイルシステム検査 | e2fsck | xfs_repair |
ファイルシステムのサイズ変更 | resize2fs | xfs_growfs |
ファイルシステムのイメージを保存する | e2image | xfs_metadump および xfs_mdrestore |
ファイルシステムのラベル付けまたはチューニングを行う | tune2fs | xfs_admin |
ファイルシステムのバックアップ | ダンプ と 復元 | xfsdump と xfsrestore |
次の表に、XFS ファイルシステムでも機能する汎用ツールを示しますが、XFS バージョンにはより具体的な機能があるため、推奨されます。
表3.2 ext4 および XFS の一般的なツール
タスク | ext4 | XFS |
---|---|---|
クォータ | quota | xfs_quota |
ファイルマッピング | filefrag | xfs_bmap |
一覧表示されている XFS コマンドの詳細は、3章XFS ファイルシステム に記載されています。詳細は、リスト化された XFS 管理ツールの man ページも参照してください。