Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Increasing root ( "/" ) xfs filesystem in OEL Linux 8

2025年09月14日に「Dev.to」が公開したITニュース「Increasing root ( "/" ) xfs filesystem in OEL Linux 8」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Oracle Linux 8でルートXFSファイルシステムの容量不足が発生した際の対処法を解説。/usrや/varディレクトリの肥大化が原因で容量が逼迫することがあり、物理ディスク追加からLVMによるボリューム拡張、xfs_growfsコマンドを使ったファイルシステム拡張まで、段階的な手順を示している。

ITニュース解説

Linuxシステムは、サーバーやパソコンの基盤となるソフトウェアで、その中でも「ルートファイルシステム」(記号で「/」と表記される)は、オペレーティングシステムが動作するために必要なすべてのプログラムやファイルが格納される最も重要な場所だ。このルートファイルシステムは、例えるなら、建物全体の基礎や、すべての部屋へつながる大元の廊下のようなものだ。もしこのルートファイルシステムの容量が不足すると、新しいソフトウェアのインストールができなくなったり、システムが不安定になったり、最悪の場合、正常に動作しなくなるなどの深刻な問題が発生する可能性がある。システムエンジニアを目指す皆さんにとって、このようなディスク容量の問題に対処するスキルは、システム運用において不可欠な知識となる。

Oracle Linux 8 (OEL 8) のようなエンタープライズ向けのLinux環境では、通常、このルートファイルシステムの初期容量は必要最低限に設定されていることが多い。しかし、システムを運用していく中で、予期せぬ形でディスク容量が逼迫することがある。これは、専門のシステム管理者やインフラエンジニアにとっては日常的な作業かもしれないが、データベース管理者(DBA)やアプリケーション開発者にとっては、どこから問題に対処すれば良いのか、その手順が複雑に感じられることもあるだろう。

では、具体的にルートファイルシステムには何が格納されており、なぜ容量が不足するのだろうか。ルートファイルシステムには、多くの重要なディレクトリが含まれている。「/bin」には「ls」や「cp」といった基本的なユーザーコマンドが、「/sbin」にはシステムの起動や復旧に必要なシステム管理コマンドが格納されている。「/etc」にはシステムの様々な設定ファイルが置かれ、「/lib」や「/lib64」にはプログラムが動作するための共有ライブラリが格納される。

特に容量が増加しやすいディレクトリとして、「/usr」と「/var」の二つが挙げられる。「/usr」はユーザーが利用するアプリケーションやそのライブラリ、ドキュメントなどが格納される場所だ。開発環境で多数のプログラミング言語のライブラリ(例えばPythonモジュール)をインストールすると、この「/usr」の容量は急速に増大することがある。「/var」はログファイルやメールのスプール、一時ファイルなど、システムの状態に応じて内容が変化するデータが格納される場所だ。システムの稼働期間が長くなったり、アプリケーションで大量のログが出力されたりすると、「/var/log」以下のログファイルが肥大化し、ルートファイルシステムの容量を圧迫する主要な原因となる。

実際に、あるシステムエンジニアの事例では、20GBで設定されていたルートファイルシステムの容量が95%まで使用され、空き容量が1GBを下回る状態に陥ったという。このような状況を診断するためには、まず「df -Th」というコマンドを使って、システム全体のファイルシステムの使用状況を把握する。このコマンドの出力により、「/dev/mapper/ol-root」という論理ボリュームが「/」(ルート)にマウントされており、その使用率が95%であるといった全体像が確認できる。

次に、ルートファイルシステム内で具体的にどのディレクトリが容量を多く消費しているかを特定するため、「du -csh *」というコマンドをルートディレクトリで実行する。このコマンドは、各ディレクトリの合計容量を表示してくれるため、容量を食い潰している犯人を見つけ出すのに役立つ。上記の事例では、この診断の結果、「/usr」が12GB、「/var」が1.9GBを消費していることが判明した。「/usr」の肥大化は多数のPythonモジュールインストールによるものであり、「/var」はシステムログの増加が原因だった。このように、容量不足の根本原因を特定することが、効果的な解決策を見つける上で非常に重要だ。

容量不足の原因が特定できたら、いよいよ容量を拡張する作業に移る。現在のLinuxシステムでは、多くの場合「LVM (Logical Volume Manager)」という仕組みが使われている。LVMは、物理的なディスク(物理ボリューム: PV)を複数まとめ、仮想的な大きなストレージプール(ボリュームグループ: VG)を作り、その中から必要なサイズだけを切り出して論理的なディスク(論理ボリューム: LV)を作成する技術だ。このLVMを利用することで、物理ディスクの追加や容量の変更を柔軟かつ安全に行うことができる。

ルートファイルシステムが「xfs」という種類のファイルシステムで、かつLVMによって管理されている場合、その容量拡張の手順は主に以下のステップで構成される。

まず、「物理ディスクの追加」だ。サーバーに新しいハードディスクやSSDを物理的に接続する。接続後、「lsblk」コマンドを実行して、システムが新しいディスク(例えば「/dev/sdc」のような名前)を正しく認識しているかを確認する。

次に、追加したディスクに「パーティションを作成」する。新しいディスクはそのままではLVMで使えないため、「fdisk /dev/sdc」のようなコマンドを使って、ディスクのどの部分をストレージとして利用するかを区画に分ける。このパーティションをLVMが利用できるタイプとして作成する。

パーティションが作成できたら、そのパーティションをLVMの「物理ボリューム(PV)として初期化」する。これは「pvcreate /dev/sdc1」のようなコマンドで行い、LVMがこのパーティションをストレージプールに組み込めるように準備する。

続いて、この新しい物理ボリュームを既存の「ボリュームグループ(VG)に拡張」する。既存のルートファイルシステムが「ol」という名前のボリュームグループに属している場合、「vgextend ol /dev/sdc1」というコマンドで、新しく作成した物理ボリュームを「ol」ボリュームグループに追加する。これにより、「ol」ボリュームグループ全体の利用可能な容量が増えることになる。

ボリュームグループに容量が追加されたら、その追加された容量をルートファイルシステムを格納している「論理ボリューム(LV)に割り当てる」。「lvextend -l +100%FREE /dev/ol/root」というコマンドを実行すると、ボリュームグループ内の未使用領域のすべてを「/dev/ol/root」という論理ボリュームに割り当てることができる。これにより、論理的なディスクサイズが大きくなる。

最後のステップは、LVMで拡張された論理ボリュームの容量を、実際にOSが利用する「xfsファイルシステムに認識させる」ことだ。これは「xfs_growfs -d /」というコマンドで行う。このコマンドを実行することで、ファイルシステムが新しい容量を認識し、ルートファイルシステムが実際に利用できる領域が増加する。この作業を終えると、追加したディスクの容量がルートファイルシステムに反映され、容量不足の問題が解消される。

一連の作業後、再度「df -Th」コマンドを実行すると、ルートファイルシステムの容量が正しく拡張され、使用可能な空き容量が増えていることが確認できるだろう。これらの手順は、多くの場合、システムを停止させることなくオンラインで実行できるため、稼働中のシステムでもディスク容量の問題に対応できる。システムエンジニアにとって、ディスク容量の診断からLVMとファイルシステムの管理を理解し、実際に問題を解決できる能力は、非常に価値のあるスキルとなる。

関連コンテンツ

関連IT用語