Menu Close

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 コマンドは、ダーティーログがあるファイルシステムでは動作しません。このようなファイルシステムを修復するには、最初に mountunmount を実行してログを再生する必要があります。ログが破損し、再生できない場合は、-L オプションを使用して、ログでゼロアウトすることができます。
XFS ファイルシステムのファイルシステム修復の詳細は、「XFS」 を参照してください。
メタデータエラーの動作
ext3/4 ファイルシステムでは、メタデータエラーが発生した場合の動作を設定できますが、デフォルトは単に継続します。復元できないメタデータエラーが発生すると、ファイルシステムがシャットダウンして、EFSCORRUPTED エラーが返されます。システムログには、発生したエラーの詳細が含まれ、必要に応じて xfs_repair を実行することをお勧めします。
クォータ
XFS クォータは再マウントできるオプションではありません。クォータを有効にするには、最初のマウントで-o quota オプションを指定する必要があります。
クォータパッケージの標準ツールは、基本的なクォータ管理タスク (setquotarepquota などのツール) を実行できますが、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 ファイルシステムをマウントし、2^32 未満の inode 番号を強制します。inode32 を使用しても、すでに 64 ビットの数値が割り当てられている inode には影響しないことに注意してください。
重要
特定の環境に必要な場合を除き、inode32 オプション は 使用しない でください。inode32 オプションは、割り当て動作を変更します。これにより、下層のディスクブロックに inode を割り当てるための領域がない場合に、ENOSPC エラーが発生する可能性があります。
投機的事前割り当て
XFS は、投機的事前割り当て を使用して、ファイルの書き込み時に EOF を超えてブロックを割り当てます。これにより、NFS サーバーでの同時ストリーミング書き込みワークロードによるファイルの断片化を回避します。デフォルトでは、この事前割り当てはファイルのサイズとともに増加し、"du" の出力で確認できます。投機的事前割り当てのあるファイルで 5 分間ダーティーが発生しない場合、事前割り当ては破棄されます。その時間より前に、inode がキャッシュからサイクルアウトされると、inode が回収される際に、事前割り当てが破棄されます。
予測的な事前割り当てにより、早い段階で ENOSPC の問題が発生している場合は、-o allocsize=amount マウントオプションで固定の割り当て量を指定することができます。
フラグメンテーション関連のツール
フラグメント化は、割り当ての遅延や投機的な事前割り当てなどのヒューリスティックおよび動作のために、XFS ファイルシステムで重大な問題になることはめったにありません。ただし、ファイルシステムの断片化を測定したり、ファイルシステムのデフラグを行うツールは存在します。それらの使用は推奨されていません。
xfs_db frag コマンドは、すべてのファイルシステムの割り当てを、パーセンテージで表される 1 つのフラグメンテーション番号で抽出しようとします。コマンドの出力には、その意味を理解するための十分な専門知識が必要です。たとえば、75% のフラグメント化ファクターの場合は、ファイルあたり平均 4 つのエクステントのみを意味します。このため、xfs_db のフラグメントの出力は有用とは見なされず、フラグメント化の問題を注意深く分析することが推奨されます。
警告
xfs_fsr は、ファイルシステム上の個々のファイルまたはすべてのファイルの最適化に使用できます。後者は、ファイルの局所性を破壊し、空き領域をフラグメント化する可能性があるため、特にお勧めしません。

XFS と比較した ext3 および ext4 で使用されるコマンド

以下の表は、ext3 および ext4 で使用される一般的なコマンドを、XFS 固有のコマンドと比較します。

表3.1 XFS と比較した ext3 および ext4 の共通コマンド

タスク ext3/4 XFS
ファイルシステムを作成する mkfs.ext4 または mkfs.ext3 mkfs.xfs
ファイルシステムを確認する e2fsck xfs_repair
ファイルシステムのサイズ変更 resize2fs xfs_growfs
ファイルシステムのイメージを保存する e2image xfs_metadump および xfs_mdrestore
ファイルシステムのラベル付けまたはチューニングを行う tune2fs xfs_admin
ファイルシステムのバックアップ dump および restore xfsdump および xfsrestore
次の表に、XFS ファイルシステムでも機能する汎用ツールを示しますが、XFS バージョンにはより具体的な機能があるため、推奨されます。

表3.2 ext4 および XFS の一般的なツール

タスク ext4 XFS
クォータ quota xfs_quota
ファイルマッピング filefrag xfs_bmap
一覧表示されている XFS コマンドの詳細は、3章XFS ファイルシステム に記載されています。詳細は、リスト化された XFS 管理ツールの man ページも参照してください。