Linux XFSとは?特徴・ext4との違い・作成(mkfs.xfs)から容量拡張(xfs_growfs)まで解説

コマンドリファレンス

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

    1. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    2. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  1. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  2. まとめ
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  3. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  4. まとめ
    1. 4. xfs_fsr:オンラインデフラグ(再編成)
  5. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  6. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  7. まとめ
    1. 3. xfs_repair:ファイルシステムのチェックと修復
    2. 4. xfs_fsr:オンラインデフラグ(再編成)
  8. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  9. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  10. まとめ
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  11. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  12. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  13. まとめ
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  14. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  15. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  16. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  17. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  18. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  19. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  20. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  21. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  22. まとめ
  23. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  24. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  25. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  26. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  27. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  28. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  29. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  30. まとめ
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  31. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  32. まとめ
  33. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  34. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  35. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  36. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  37. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  38. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  39. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  40. まとめ
    1. 4. xfs_fsr:オンラインデフラグ(再編成)
  41. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  42. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  43. まとめ
  44. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  45. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  46. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  47. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  48. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  49. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  50. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  51. まとめ
    1. 3. xfs_repair:ファイルシステムのチェックと修復
    2. 4. xfs_fsr:オンラインデフラグ(再編成)
  52. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  53. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  54. まとめ
  55. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  56. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  57. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  58. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  59. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  60. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  61. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  62. まとめ
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  63. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  64. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  65. まとめ
  66. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  67. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  68. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  69. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  70. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  71. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  72. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  73. まとめ
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  74. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  75. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  76. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  77. まとめ
  78. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  79. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  80. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  81. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  82. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  83. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  84. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  85. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  86. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  87. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  88. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  89. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  90. まとめ
  91. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  92. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  93. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  94. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  95. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  96. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  97. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  98. まとめ
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  99. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  100. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  101. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  102. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  103. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  104. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  105. まとめ
  106. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  107. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  108. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  109. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  110. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  111. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  112. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  113. まとめ
    1. 4. xfs_fsr:オンラインデフラグ(再編成)
  114. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  115. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  116. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  117. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  118. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  119. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  120. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  121. まとめ
  122. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  123. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  124. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  125. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  126. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  127. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  128. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  129. まとめ
    1. 3. xfs_repair:ファイルシステムのチェックと修復
    2. 4. xfs_fsr:オンラインデフラグ(再編成)
  130. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  131. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  132. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  133. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  134. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  135. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  136. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  137. まとめ
  138. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  139. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  140. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  141. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  142. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  143. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  144. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  145. まとめ
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  146. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  147. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  148. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  149. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  150. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  151. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  152. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  153. まとめ
  154. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  155. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  156. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  157. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  158. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  159. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  160. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  161. まとめ
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  162. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  163. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  164. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  165. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  166. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  167. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  168. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  169. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  170. まとめ
  171. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  172. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  173. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  174. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  175. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  176. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  177. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  178. まとめ
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  179. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  180. まとめ
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  181. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  182. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  183. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  184. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  185. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  186. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  187. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  188. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  189. まとめ
  190. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  191. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  192. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  193. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  194. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  195. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  196. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  197. まとめ
    1. 4. xfs_fsr:オンラインデフラグ(再編成)
  198. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  199. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  200. まとめ
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  201. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  202. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  203. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  204. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  205. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  206. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  207. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  208. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  209. まとめ
  210. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  211. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  212. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  213. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  214. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  215. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  216. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  217. まとめ
    1. 3. xfs_repair:ファイルシステムのチェックと修復
    2. 4. xfs_fsr:オンラインデフラグ(再編成)
  218. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  219. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  220. まとめ
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  221. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  222. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  223. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  224. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  225. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  226. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  227. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  228. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  229. まとめ
  230. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  231. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  232. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  233. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  234. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  235. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  236. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  237. まとめ
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  238. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  239. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  240. まとめ
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  241. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  242. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  243. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  244. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  245. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  246. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  247. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  248. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  249. まとめ
  250. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  251. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  252. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  253. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  254. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  255. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  256. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  257. まとめ
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  258. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  259. まとめ
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  260. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  261. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  262. まとめ
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  263. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  264. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  265. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  266. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  267. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  268. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  269. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  270. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  271. まとめ
  272. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  273. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  274. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  275. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  276. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  277. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  278. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  279. まとめ
    1. 4. xfs_fsr:オンラインデフラグ(再編成)
  280. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  281. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  282. まとめ
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  283. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  284. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  285. まとめ
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  286. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  287. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  288. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  289. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  290. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  291. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  292. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  293. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  294. まとめ
  295. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  296. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  297. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  298. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  299. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  300. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  301. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  302. まとめ
    1. 3. xfs_repair:ファイルシステムのチェックと修復
    2. 4. xfs_fsr:オンラインデフラグ(再編成)
  303. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  304. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  305. まとめ
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  306. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  307. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  308. まとめ
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  309. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  310. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  311. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  312. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  313. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  314. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  315. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  316. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  317. まとめ
  318. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  319. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  320. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  321. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  322. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  323. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  324. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  325. まとめ
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  326. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  327. まとめ
    1. 3. xfs_repair:ファイルシステムのチェックと修復
    2. 4. xfs_fsr:オンラインデフラグ(再編成)
  328. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  329. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  330. まとめ
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  331. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  332. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  333. まとめ
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  334. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  335. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  336. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  337. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  338. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  339. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  340. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  341. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  342. まとめ
  343. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  344. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  345. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  346. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  347. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  348. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  349. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  350. まとめ
    1. 4. xfs_fsr:オンラインデフラグ(再編成)
  351. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  352. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  353. まとめ
    1. 3. xfs_repair:ファイルシステムのチェックと修復
    2. 4. xfs_fsr:オンラインデフラグ(再編成)
  354. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  355. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  356. まとめ
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  357. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  358. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  359. まとめ
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  360. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  361. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  362. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  363. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  364. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  365. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  366. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  367. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  368. まとめ
  369. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  370. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  371. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  372. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  373. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  374. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  375. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  376. まとめ
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  377. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  378. まとめ
    1. 4. xfs_fsr:オンラインデフラグ(再編成)
  379. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  380. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  381. まとめ
    1. 3. xfs_repair:ファイルシステムのチェックと修復
    2. 4. xfs_fsr:オンラインデフラグ(再編成)
  382. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  383. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  384. まとめ
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  385. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  386. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  387. まとめ
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  388. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  389. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  390. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  391. まとめ
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  392. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  393. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  394. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  395. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  396. まとめ
  397. XFSとは|Linux高機能ファイルシステムの基本と特徴
    1. 1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)
    2. 2. アロケーショングループ(Allocation Groups)による高い並列I/O性能
    3. 3. 遅延割り当て(Delayed Allocation)とエクステント管理
    4. 4. RHEL系ディストリビューションでの標準採用
  398. XFSとext4の違い・比較|どちらを選ぶべきか?
    1. XFSを選択すべきケース
    2. ext4を選択すべきケース
  399. XFSファイルシステムの作成とフォーマット手順|mkfs.xfs
    1. 手順1: 対象ディスク・パーティションの確認
    2. 手順2: mkfs.xfs コマンドでフォーマット
    3. フォーマット時の最小サイズ制限(約300MB以上)
  400. XFSのマウントと自動マウント設定|mount / /etc/fstab
    1. 手動マウント手順
    2. /etc/fstab による自動マウント設定
  401. XFSの確認・運用・保守コマンド4選
    1. 1. xfs_info:ファイルシステムの詳細・構造情報を確認
    2. 2. xfs_growfs:オンラインでの容量拡張手順
    3. 3. xfs_repair:ファイルシステムのチェックと修復
    4. 4. xfs_fsr:オンラインデフラグ(再編成)
  402. XFS運用の注意点とトラブルシューティング
    1. 1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応
    2. 2. xfs_growfs を実行しても空き容量が増えない場合の原因
    3. 3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)
  403. よくある質問(FAQ)
    1. ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?
    2. xfs_growfs と resize2fs の違いは何ですか?
    3. UbuntuやDebianでXFSを使用することはできますか?
    4. XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?
  404. まとめ
  405. 関連記事

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

XFS(エックスエフエス)は、大容量ストレージや高速な並列I/O処理に特化した高機能な64ビット・ジャーナリングファイルシステムです。Red Hat Enterprise Linux(RHEL)7以降やその派生OS(Rocky Linux、AlmaLinux、CentOS等)において標準ファイルシステムとして長年採用されており、エンタープライズサーバー運用において非常に重要な技術です。

新しいストレージの追加時やクラウドサーバーのディスク拡張時、ファイルシステムの選定において「ext4とXFSのどちらを選ぶべきか」「mkfs.xfsxfs_growfs の正しい使い方は?」と疑問を持つ方も多いでしょう。

本記事では、XFSの基本概念や特徴、ext4との違いから、mkfs.xfs によるフォーマット作成、xfs_info でのメタデータ確認、xfs_growfs によるオンライン容量拡張、xfs_repair によるファイルシステム修復手順、そして「XFSは容量の縮小ができない」といった運用上の重大な注意点まで徹底解説します。

XFSとは|Linux高機能ファイルシステムの基本と特徴

XFSは、もともとSilicon Graphics(SGI)社がIRIX OS向けに開発し、2001年にLinuxカーネルへ移植された歴史あるファイルシステムです。大容量化と高速並列処理を前提にゼロから設計されています。

1. 64ビット大容量ストレージ対応(最大8EB / 1024TiB超)

XFSは完全な64ビットファイルシステムであり、理論上は最大8EB(エクサバイト = 約800万TB)のボリューム容量および単一ファイルサイズをサポートします。現実のLinuxカーネル実装においても1024TiB(1PB)以上の超大容量ストレージ領域を安定して管理できます。

2. アロケーショングループ(Allocation Groups)による高い並列I/O性能

XFSの性能面での最大の特徴がアロケーショングループ(Allocation Groups: AG)です。ファイルシステム全体を複数のAGと呼ばれる独立した領域に分割して管理します。各AGは自身のフリースペース管理表やInodeアロケーション表を持つため、マルチコアCPUや複数ディスク環境において、複数のI/Oスレッドが同時に異なるAGへ並列書き込み・読み込みを行っても競合(ロック待ち)が発生しにくく、極めて高い並列I/Oスループットを発揮します。

3. 遅延割り当て(Delayed Allocation)とエクステント管理

ext4と同様に、XFSも遅延割り当て(Delayed Allocation / delalloc)エクステント(Extents)構造を採用しています。データが実際にディスクに書き込まれる直前までブロック割り当てを遅らせることで、連続した大きな領域を効率よく確保し、ディスクの断片化(フラグメンテーション)を強力に防止します。

4. RHEL系ディストリビューションでの標準採用

RHEL 7以降、およびRocky Linux、AlmaLinux、Oracle Linuxなどの派生OSでは、デフォルトのファイルシステムとしてext4に代わりXFSが採用されています。エンタープライズのサーバー運用やストレージ構築では必須の知識となります。

XFSとext4の違い・比較|どちらを選ぶべきか?

Linuxの二大ファイルシステムであるXFSとext4には、得意とする用途や機能の違いが存在します。

比較項目XFSext4
主な設計用途大規模サーバー・大容量ストレージ・高並列I/O汎用サーバー・デスクトップ・小〜中規模環境
並列処理性能アロケーショングループにより並列I/Oに非常に強い単一I/Oや小ファイルのランダム処理が得意
オンライン容量拡張可能xfs_growfs可能resize2fs
容量の縮小(Shrink)不可(非対応)可能(アンマウント時に resize2fs
標準採用OSRHEL 7/8/9, Rocky Linux, AlmaLinuxUbuntu, Debian等

XFSを選択すべきケース

次のような用途・環境では、XFSの採用を強くおすすめします。

  • 大容量ストレージ・巨大ファイルを扱う場合: データベースサーバー(MySQL, PostgreSQL)、動画・メディア配信サーバー、バックアップストレージなど。
  • 高負荷・並列アクセスが発生するサーバー: マルチコアCPU環境で複数プロセスが同時にディスクへアクセスするWeb・DB・アプリケーションサーバー。
  • RHEL系OSを使用する場合: OSインストール時の標準設定を活かし、トラブル対応や運用ナレッジを共通化したい環境。

ext4を選択すべきケース

一方で、将来的にパーティションやLV(論理ボリューム)の容量を小さく縮小させる可能性がある場合や、Ubuntu/Debian系OSで汎用的に利用したい場合は、縮小コマンドに対応しているext4が適しています。

※ext4の詳細な特徴や操作コマンドについては、関連記事「Linux ext4とは?特徴・他ファイルシステム比較・作成(mkfs.ext4)から運用コマンドまで解説」をご覧ください。

XFSファイルシステムの作成とフォーマット手順|mkfs.xfs

ディスクやパーティションをXFS形式でフォーマットするには、mkfs.xfs コマンドを使用します。

注意: フォーマットを実行すると、対象パーティション内の既存データはすべて消去されます。作業前に必ず lsblk 等でデバイス名に誤りがないか確認してください。

手順1: 対象ディスク・パーティションの確認

まず lsblk -f コマンドを実行し、フォーマット対象のデバイス名(例: /dev/sdb1)を確認します。

lsblk -f
NAME   FSTYPE LABEL UUID                                 MOUNTPOINTS
sda                                                      
├─sda1 ext4         9a8b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d /
sdb                                                      
└─sdb1                                                   

手順2: mkfs.xfs コマンドでフォーマット

対象パーティション(/dev/sdb1)をXFSでフォーマットします。

sudo mkfs.xfs /dev/sdb1

実行すると、以下のようなXFSメタデータ構造が出力されます。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

すでにファイルシステムが書き込まれているディスクを再フォーマットする場合は、強制実行オプション -f を追加します。また、ボリュームラベルを付ける場合は -L オプションを使用します。

# ラベル「data_vol」を指定して強制フォーマット
sudo mkfs.xfs -f -L data_vol /dev/sdb1

フォーマット時の最小サイズ制限(約300MB以上)

モダンなLinuxディストリビューション(xfsprogs 5.x/6.x以降)では、アロケーショングループや内部ログ領域の確保のため、XFSファイルシステムを作成するには最低約300MB以上の領域が必要です。300MB未満の小さなパーティションに対して mkfs.xfs を実行すると Filesystem must be larger than 300MB. というエラーになりますので注意してください。

XFSのマウントと自動マウント設定|mount / /etc/fstab

作成したXFSファイルシステムをディレクトリに接続(マウント)して利用できるようにします。

手動マウント手順

マウント用ディレクトリ(例: /mnt/data)を作成し、mount コマンドでマウントします。

sudo mkdir -p /mnt/data
sudo mount -t xfs /dev/sdb1 /mnt/data

詳細なマウントオプションやオプション一覧については、関連記事「Linux mount コマンドの使い方|構文・オプション一覧・実行例を解説」を参照してください。

/etc/fstab による自動マウント設定

OS再起動後も自動でマウントさせるには、blkid コマンドでUUIDを確認し、/etc/fstab ファイルへ設定を追記します。

sudo blkid /dev/sdb1
/dev/sdb1: UUID="a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d" TYPE="xfs" PARTUUID="..."

/etc/fstab に以下の形式で1行追加します。

UUID=a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d  /mnt/data  xfs  defaults  0 0

※記述ミスのまま再起動するとOSが起動しなくなる恐れがあるため、追記後は必ず sudo mount -a を実行してエラーが出ないかテストしてください。具体的な安全編集手順は「Linux fstabの書き方|UUIDでの自動マウント設定と安全な編集手順を解説」で解説しています。

XFSの確認・運用・保守コマンド4選

XFSファイルシステムを安全かつ円滑に運用するために必須となる代表的なコマンドを4つ紹介します。

1. xfs_info:ファイルシステムの詳細・構造情報を確認

マウント中のXFSファイルシステムのメタデータ構造(ブロックサイズ、アロケーショングループ数など)を確認するには xfs_info コマンドを使用します。

xfs_info /mnt/data

引数にはデバイス名(例: /dev/sdb1)またはマウントポイント(例: /mnt/data)を指定できます。現在のブロック数や agcount(アロケーショングループ数)を確認したい際に便利です。

2. xfs_growfs:オンラインでの容量拡張手順

クラウドやLVM環境で下位のディスク/パーティションサイズを拡張した場合、マウントしたままオンラインでXFSファイルシステムを拡大するには xfs_growfs コマンドを使用します。

重要ポイント: ext4の resize2fs /dev/sdb1 とは異なり、xfs_growfs の引数にはマウントポイント(例: /mnt/data)を指定します。デバイス名を指定するとエラーになる場合があるため注意してください。

# 対象のマウントポイントを指定してオンライン拡張を実行
sudo xfs_growfs /mnt/data
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=1
         =                       reflink=1    bigtime=1 inobtcount=1 nrext64=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 262144 to 524288

末尾に data blocks changed from ... to ... と表示されれば容量の拡大は正常に完了です。

3. xfs_repair:ファイルシステムのチェックと修復

不正シャットダウンなどでファイルシステムに異常が生じた際、整合性のチェックと修復を行うには xfs_repair コマンドを実行します(ext4での e2fsck / fsck.ext4 に相当します)。

最重要警告: xfs_repair必ずアンマウント(umount)した状態で実行してください。マウント中の領域に対して実行するとデータを重大に破損させる危険があります。

# 1. 必ずアンマウントする
sudo umount /mnt/data

# 2. xfs_repair を実行
sudo xfs_repair /dev/sdb1

※万が一、クラッシュ直後でログ(ジャーナル)のクリーンアップに失敗して修復が進まない場合は、最終手段として -L オプション(ログの破棄・ゼロ消去)を指定することがありますが、未書き込みのログデータが失われる可能性があるため注意が必要です。

4. xfs_fsr:オンラインデフラグ(再編成)

xfs_fsr(FileSystem Reorganizer)は、マウント中のXFSファイルシステムのフラグメンテーション(断片化)をオンラインで解消・再編成するツールです。

# 指定したマウント領域のデフラグを実行
sudo xfs_fsr /mnt/data

XFS運用の注意点とトラブルシューティング

XFSを実務で運用する際に必ず押さえておくべきトラブル予防策を整理します。

1. 【最重要】XFSはファイルシステムの縮小(Shrink)が非対応

XFSの設計上、一度拡張・作成したファイルシステムのサイズを小さく減らす(縮小する)機能は提供されていません。LVM(Logical Volume Manager)などで「間違えて論理ボリュームを大きくしすぎたので縮小したい」という場合でも、XFS領域だけを縮小することはできません。

どうしても縮小が必要な場合の対処手順:

  1. 対象領域のデータを外部ディスクやバックアップストレージへ退避(tarrsync)する。
  2. パーティションまたはLVM論理ボリュームを削除し、希望の小さいサイズで再作成する。
  3. mkfs.xfs で再度XFSファイルシステムを作成する。
  4. 退避したデータをリストア(復元)する。

2. xfs_growfs を実行しても空き容量が増えない場合の原因

xfs_growfs を実行したのに容量が増えない場合、ファイルシステムより下位の階層(LVMのLVサイズや、ディスクパーティション自体のサイズ)が拡張されていないケースがほとんどです。

LVM環境であれば、事前に lvextend -l +100%FREE /dev/mapper/vg0-lv0 等で論理ボリュームを拡張してから xfs_growfs を実行しているか確認してください。

3. 空き容量(GB)はあるのにファイルが作成できない(Inode管理)

大量の極小ファイルを生成する環境では、ディスクのGB容量が残っていてもインデックス(Inode)が枯渇することがあります。df -i コマンドでInode使用率を確認してください。

※容量およびInode確認のコマンド詳細は「df コマンドの使い方|ディスク容量・空き容量を確認するオプションと実行例」でわかりやすく解説しています。

よくある質問(FAQ)

ext4からXFSへそのままオンラインで変換(コンバート)することは可能ですか?

いいえ、ext4からXFSへの直接変換(インプレースコンバート)はできません。異なるファイルシステム構造を持つため、データを別の場所へバックアップしたうえで、対象ディスクを mkfs.xfs でフォーマットし直してからデータを書き戻す必要があります。

xfs_growfs と resize2fs の違いは何ですか?

xfs_growfs はXFS専用の容量拡張コマンドで、対象にはマウントポイントを指定します。一方、resize2fs はext2/ext3/ext4専用のサイズ変更コマンドで、対象にはブロックデバイス名(例: /dev/sdb1)を指定します。また、resize2fs は縮小に対応していますが、xfs_growfs は拡張のみ対応しています。

UbuntuやDebianでXFSを使用することはできますか?

はい、問題なく使用できます。通常はパッケージマネージャーから sudo apt install xfsprogs を実行してXFS用の管理ツールキットをインストールすることで、mkfs.xfsxfs_growfs などのコマンド群が利用可能になります。

XFSフォーマット時に「Filesystem must be larger than 300MB」と表示される原因は?

最新の xfsprogs では、メタデータ構造やジャーナルログ領域の最小サイズとして約300MB以上が要件となっています。テスト用の非常に小さなパーティション(例: 100MB)を作成しようとすると本エラーが発生するため、300MB以上の領域を割り当てて実行してください。

まとめ

XFSは、並列I/Oの高速処理と超大容量ストレージ管理に長けた、Linuxのエンタープライズ運用に欠かせないファイルシステムです。

  • 大容量・並列I/Oが得意: アロケーショングループ(AG)によりマルチコア環境での並列アクセスが高速。
  • RHEL系の標準: RHEL 7/8/9やRocky Linux/AlmaLinux等でデフォルト採用。
  • 作成と拡張: mkfs.xfs で作成し、xfs_growfs /マウントポイント でマウントしたまま安全にオンライン拡張可能。
  • 縮小は不可: ファイルシステムの縮小機能は非対応のため、容量設定時は将来の縮小計画に注意。

サーバー構築やストレージ管理の現場では、用途に応じてext4とXFSを適切に使い分けることが重要です。ぜひ本記事を参考に、正しい作成・運用コマンドをマスターしてください。

関連おすすめ記事:

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント