カテゴリ: Linux 更新日: 2026/07/27

LinuxのXFSとは?高性能ファイルシステムの基礎知識とストレージ管理の基本を徹底解説!

Linuxのxfsとは?XFSファイルシステムの概要
Linuxのxfsとは?XFSファイルシステムの概要

先生と生徒の会話形式で理解しよう

生徒

「Linuxの勉強を始めたのですが、インストールするときにXFS(エックスエフエス)という言葉が出てきました。これって何のことですか?」

先生

「それはファイルシステムの一種ですね。データをハードディスクやSSDに整理整頓して保存するためのルールのことですよ。」

生徒

「ファイルシステム...難しそうですね。Windowsのフォーマットみたいなものだと思えばいいんでしょうか?」

先生

「その通りです!特にXFSは、大規模なデータを扱うのが得意で、今のLinuxでは標準的に使われているとても優秀なシステムなんです。仕組みを知ると、ストレージ管理がもっと楽しくなりますよ。」

Linuxを初めて学ぶ人や、 OS・プロセス・メモリ管理・仮想マシン・コンテナの仕組みを図解で理解したい人におすすめの定番書籍です。

試して理解 Linuxのしくみを見る

※ Amazonアソシエイト広告リンク

1. XFSファイルシステムとは?基本の概要

1. XFSファイルシステムとは?基本の概要
1. XFSファイルシステムとは?基本の概要

XFS(エックスエフエス)は、高性能なジャーナリングファイルシステムです。もともとはSGI(エスジーアイ)社という会社が、自社のUNIX(ユニックス)系OSであるIRIX(アイリックス)向けに開発したものでした。その後、2000年ごろにオープンソース化され、現在ではRed Hat Enterprise Linux(レッドハット・エンタープライズ・リナックス)などの主要なディストリビューションで標準のファイルシステムとして採用されています。

ファイルシステムとは、読み方はファイルシステム(ファイルシステム)といい、OSが記録媒体であるストレージ(HDDやSSD)の中に、どのような構造でデータを配置し、管理するかを決定する仕組みのことです。本棚に本を並べるときの「図書分類法」のようなものだとイメージすると分かりやすいでしょう。

XFSの最大の特徴は、非常に大きな容量のファイルや、大容量のストレージを効率よく扱える点にあります。数テラバイト、数ペタバイトといった膨大なデータを扱うサーバー環境において、その真価を発揮します。

2. XFSが選ばれる理由と主な特徴

2. XFSが選ばれる理由と主な特徴
2. XFSが選ばれる理由と主な特徴

なぜ多くのLinuxサーバーでXFSが使われているのでしょうか。それにはいくつかの明確な理由があります。

第一に、高いスケーラビリティ(拡張性)です。XFSは64ビットのデータ構造を採用しているため、理論上は16エクサバイト(1エクサバイトは100万テラバイト)という気が遠くなるような巨大な容量まで対応可能です。家庭用のパソコンでは過剰に思えるかもしれませんが、クラウドサービスや企業のデータベースではこの余裕が重要になります。

第二に、ジャーナリング機能による信頼性です。読み方はジャーナリング(ジャーナリング)といいます。これは、データを書き込む際に「これから書き込みますよ」という履歴(ログ)を先に記録する仕組みです。万が一、書き込み中に停電などでコンピュータが強制終了してしまっても、この履歴をたどることでデータの不整合を防ぎ、素早く復旧させることができます。

第三に、アロケーショングループという仕組みです。読み方はアロケーショングループ(アロケーショングループ)といいます。ストレージの領域をいくつかのグループに分割して管理することで、複数の書き込み処理を同時に並行して行うことができます。これにより、マルチコアCPU(シーピーユー)を搭載した現代のコンピュータで高いパフォーマンスを発揮します。

3. XFSとext4の違いを知ろう

3. XFSとext4の違いを知ろう
3. XFSとext4の違いを知ろう

Linuxでは、長らくext4(イーエックスティーフォー)というファイルシステムが主流でした。初心者の方は「どちらを使えばいいの?」と迷うかもしれません。一般的に、小規模なファイルがたくさんある場合はext4がキビキビと動く傾向にありますが、動画ファイルなどの大きなデータを扱う場合や、ストレージの総容量が非常に大きい場合はXFSが有利です。

また、XFSは動的にファイルシステムのサイズを拡張するのが得意ですが、逆にサイズを縮小することができないという注意点があります。一度大きくした領域を小さくするには、データのバックアップを取って再作成する必要があるため、ストレージ設計の段階で慎重に決める必要があります。

4. XFSファイルシステムを作成する方法

4. XFSファイルシステムを作成する方法
4. XFSファイルシステムを作成する方法

実際にLinuxで新しいディスクにXFSファイルシステムを作成する手順を見てみましょう。これにはmkfs.xfsコマンドを使用します。読み方は主記憶装置(シュキオクソウチ)へデータを書き込む準備をする作業をフォーマットと呼びますが、その際にこのコマンドを使います。

まずは、現在認識されているディスクの一覧を確認してみましょう。


lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
sdb      8:16   0   10G  0 disk

ここでは、新しく追加した10GBのディスク/dev/sdbにXFSを作成してみます。この作業は管理者権限(rootユーザー)で行う必要があります。


mkfs.xfs /dev/sdb
meta-data=/dev/sdb              isize=512    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

これで、/dev/sdbがXFS形式でフォーマットされました。

5. XFSをマウントして使用可能にする

5. XFSをマウントして使用可能にする
5. XFSをマウントして使用可能にする

ファイルシステムを作成しただけでは、まだファイルを書くことはできません。OSのディレクトリツリーの中に組み込む「マウント」という作業が必要です。読み方はマウント(マウント)といいます。

適当な名前のディレクトリ(マウントポイント)を作成して、そこに紐付けます。


mkdir /mnt/newdisk
mount /dev/sdb /mnt/newdisk
df -hT /mnt/newdisk
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sdb       xfs    10G   33M   10G   1% /mnt/newdisk

dfコマンドの-Tオプションを使うことで、ファイルシステムのタイプが「xfs」であることを確認できます。これで、/mnt/newdiskの下に自由にファイルを保存できるようになりました。

6. XFSファイルシステムの情報を確認する

6. XFSファイルシステムの情報を確認する
6. XFSファイルシステムの情報を確認する

運用中、ファイルシステムの詳細なパラメータを知りたくなることがあります。例えば、ブロックサイズやアロケーショングループの数などです。これを確認するにはxfs_infoコマンドを使います。


xfs_info /mnt/newdisk
meta-data=/dev/sdb              isize=512    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

この情報は、トラブルシューティングやパフォーマンスのチューニングを行う際に非常に重要です。特に、大きなファイルを大量に扱うサーバーでは、ブロックサイズの設定などが速度に直結することがあります。

7. XFSの修復とメンテナンス

7. XFSの修復とメンテナンス
7. XFSの修復とメンテナンス

もし、不適切なシャットダウンなどでファイルシステムにエラーが発生した場合は、修復を試みる必要があります。XFSにはxfs_repairという専用の修復ツールが用意されています。

修復作業を行う際は、必ずそのディスクをアンマウント(切り離し)した状態で行わなければなりません。マウントしたまま修復をかけると、データが完全に壊れてしまう危険があるため注意してください。


umount /mnt/newdisk
xfs_repair /dev/sdb
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
... (中略) ...
Phase 7 - verify and correct link counts...
done

このように、各フェーズ(段階)を経てエラーをチェックし、修正してくれます。信頼性の高いツールですが、万が一に備えて日頃からバックアップを取っておくことは基本中の基本です。

8. ストレージ管理におけるXFSの未来

8. ストレージ管理におけるXFSの未来
8. ストレージ管理におけるXFSの未来

現在、Linuxの標準的なストレージ管理において、XFSは不動の地位を築いています。以前は「巨大なファイルの扱いは得意だが、小さいファイルは苦手」と言われていた時期もありましたが、開発が進んだ現在では、あらゆる用途でバランス良く高い性能を発揮できるようになりました。

最近では、コピーオンライト(書き込み時にコピーを作成する仕組み)を利用した高速なスナップショットや、重複排除といった高度な機能を持つ次世代ファイルシステム(Btrfsなど)も注目されています。しかし、安定性と実績、そして膨大なデータを確実に守るという点において、XFSはこれからも多くの現場で使われ続けるでしょう。

これからLinuxを学ぶ皆さんも、まずはこのXFSの扱いをマスターすることで、プロのサーバーエンジニアに近い知識を身につけることができます。コマンドを一つずつ叩きながら、ディスクの中の世界を覗いてみてください。

LPICレベル1の合格を目指している人や、 Linuxコマンド・シェル・ネットワーク・セキュリティの試験対策を効率よく進めたい人におすすめの定番問題集です。

Linux教科書 LPICレベル1 スピードマスター問題集を見る

※ Amazonアソシエイト広告リンク

まとめ

まとめ
まとめ

今回の記事では、Linux環境における標準的なファイルシステムであるXFS(エックスエフエス)について、その基本概念から具体的な操作方法、そして運用のポイントまでを詳しく解説してきました。XFSは単なるデータの保存形式ではなく、現代のエンタープライズサーバーやクラウド基盤を支える非常に強力なテクノロジーです。

XFSファイルシステムの重要ポイント再確認

XFSを理解する上で欠かせない要素を、改めて整理しておきましょう。これらを把握しておくことで、実務でのトラブル対応やシステム設計の精度が格段に向上します。

  • 圧倒的なスケーラビリティ: 64ビット設計により、将来的なデータ増大にも余裕を持って対応できる拡張性を備えています。
  • 高い信頼性を担保するジャーナリング: データの整合性を保ち、システムクラッシュ後の復旧を迅速に行うためのログ機能を搭載しています。
  • 並行処理に強いアロケーショングループ: ストレージを複数のグループに分けて管理することで、マルチプロセッサ環境での書き込み性能を最大化しています。
  • 運用の注意点: 容量の拡張はオンラインで簡単に行えますが、容量の縮小(ダウンサイズ)ができないという特性は、ディスク設計において最も重要な制約事項です。

実務で役立つ!XFS容量拡張のサンプル手順

XFSの大きなメリットの一つである「オンラインでの容量拡張」について、具体的なコマンド例を紹介します。例えば、仮想サーバーのディスク容量を物理的に増やした後、OS側に反映させる場合は以下のような手順になります。


# 1. まずは現在のファイルシステムの状態を確認
df -hT /mnt/newdisk

# 2. パーティションが拡張されていることを前提に、XFSファイルシステムを拡張
# マウントしたまま実行可能です
xfs_growfs /mnt/newdisk

# 3. 拡張後の容量を確認
df -hT /mnt/newdisk

このように、xfs_growfsコマンドを使用することで、サービスを停止させることなく、即座に増設したストレージ領域を認識させることができます。これは、ダウンタイムを最小限に抑えたい商用サーバーの運用において、非常に大きな利点となります。

ファイルシステム選択のベストプラクティス

LinuxにはXFSの他にもext4やBtrfsといった選択肢がありますが、どのような基準で選ぶべきでしょうか。

項目 XFS ext4 Btrfs
主な用途 大規模サーバー、データベース デスクトップ、小規模サーバー バックアップ、スナップショット重視
最大容量 非常に大きい(16EB) 大きい(1EB) 大きい(16EB)
縮小操作 不可能 可能 可能
特徴 並列処理と大容量に強い 歴史が長く安定、汎用的 高度なコピーオンライト機能

現代のRed Hat Enterprise LinuxやCentOS Stream、AlmaLinuxなどでは、デフォルトでXFSが選択されています。これは、今のハードウェア性能を引き出すのにXFSが最も適していると判断されているからです。まずはXFSを基準に考え、特定の要件(どうしても縮小が必要など)がある場合にのみ、他のファイルシステムを検討するのが良いでしょう。

まとめとしての最終アドバイス

ストレージ管理は、インフラエンジニアにとって避けては通れない道です。XFSの構造を理解し、mkfs.xfsmountxfs_infoxfs_repairといった主要なコマンドを使いこなせるようになることで、Linuxシステムの安定稼働を支える力が身につきます。 技術は日々進化していますが、XFSのような実績のある技術を深く学ぶことは、将来新しい技術に触れる際の強固な土台となるはずです。

先生と生徒の振り返り会話

生徒

「先生、XFSについて詳しく教えていただきありがとうございました!大きなデータを扱うのが得意で、しかもマウントしたまま容量を増やせるなんて、すごく便利ですね。」

先生

「その通りです。今のクラウド時代には、動的にストレージを増やせるXFSの特性がとてもマッチしているんですよ。実際にxfs_growfsコマンドを使ってみると、その手軽さに驚くと思います。」

生徒

「はい!でも、一つだけ気をつけないといけないのが『小さくできない』ことでしたよね。最初から計画的にサイズを決めないと後で大変なことになりそうです。」

先生

「よく覚えていますね!そこが一番の注意点です。なので、最初は必要最小限のサイズで作っておいて、足りなくなったら継ぎ足していくのが、XFS運用のコツなんです。腹八分目から始めるイメージですね。」

生徒

「なるほど、継ぎ足し秘伝のタレみたいですね(笑)。あと、壊れたときのxfs_repairも練習しておきたいです。アンマウントしてから実行する、というのも絶対に忘れないようにします!」

先生

「いい心がけです。万が一のときに冷静に対処できるのが、優れたエンジニアの証ですからね。他にも、ファイルシステム内部の構造を見るxfs_dbというデバッグツールなど、もっと深い世界もあります。基本をマスターしたら、ぜひ挑戦してみてください。」

生徒

「はい、頑張ります!まずは自分のテスト環境で、ディスクを増やしたり壊したりしながら、コマンドの感触を確かめてみます。Linuxの管理がどんどん楽しくなってきました!」

先生

「その調子です!自分で手を動かして得た知識は一生モノですよ。XFSをマスターすれば、サーバー構築の現場でも自信を持って作業できるようになりますから、これからも一緒に楽しく学んでいきましょう。」

関連記事:
カテゴリの一覧へ
新着記事
New1
Linux
Linuxのストレージとは?HDDやSSDなどデータ保存装置の仕組みを初心者向けに解説
新規投稿
New2
基本情報技術者試験
HTMLとは?初心者でもわかるWebページ作成の基礎と仕組みをやさしく徹底解説!
更新記事
New3
基本情報技術者試験
主キーとは?データベースの基本を初心者向けにやさしく解説
更新記事
New4
Linux
Linuxのスタティックリンクとは?ライブラリを実行ファイルに組み込む静的リンクを初心者向けに解説
新規投稿
人気記事
No.1
Java&Spring記事人気No1
基本情報技術者試験
イーサネット(Ethernet)とは?初心者にもわかるLANの基本技術をやさしく解説
No.2
Java&Spring記事人気No2
基本情報技術者試験
DHCP
239
DHCPとは?初心者でもわかるIPアドレス自動割り当ての仕組み
No.3
Java&Spring記事人気No3
基本情報技術者試験
NIC
224
NICとは何か?初心者にもわかるネットワークインターフェースカードの基本
No.4
Java&Spring記事人気No4
基本情報技術者試験
CPU
211
CPUとは何かを完全解説!初心者でもわかるコンピュータの頭脳の仕組み
No.5
Java&Spring記事人気No5
基本情報技術者試験
IPv4
126
IPv4とは?初心者でもわかるIPアドレスの基本と通信のルール
No.6
Java&Spring記事人気No6
基本情報技術者試験
16進数とは?初心者にもわかる意味・読み方・変換方法をやさしく解説!
No.7
Java&Spring記事人気No7
基本情報技術者試験
HTTP
111
HTTPとは?初心者にもわかりやすく仕組みを解説!Webの基本を学ぼう
No.8
Java&Spring記事人気No8
基本情報技術者試験
SMTP
109
SMTPとは?初心者でもわかるメール送信の仕組みとプロトコルをやさしく解説!