LinuxのCentOSを使用していて、ディスク容量が足りなくなった事はないでしょうか?
アップデートや新規のサービスを追加したくても、ディスク容量オーバーで追加できないと新しいサーバーを用意しなくてはいけません。
そんな時はディスクを追加して容量を拡張しましょう!
筆者はWindowsサーバーやLinuxサーバーの運用構築を11年以上おこなってきました。その経験を元に知識を公開していきます!
今回は一番簡単なディスク容量の拡張を行ったので、図を使用してわかりやすく教えます。
LinuxのcentOSでディスク容量が足りなくなった場合の対処法

今回の手順をまとめます。
物理ディスクをサーバーに接続します。
システムを「Linux」から「Linux LVM」に変更する為に、IDを「8e」に変更します。
LVM(Logical Volume Manager)とは複数のディスクやパーティションであっても、1つの論理ボリュームとして管理できるものになります。
ディスクをLinuxで認識させるために、物理ボリュームを作成します。
物理ディスクを接続しただけでは「df -h」で見ても認識されません。
現在あるボリュームグループに新規で作成した物理ボリュームを追加します。
LVM(Logical Volume Manager)なので、違うディスクですが1つの論理ボリュームとして扱えます。
現在の論理ボリュームに今回拡張した全ての容量を追加します。(全てである必要はありません)
論理ボリュームの容量を拡張しただけでは、Linuxのファイルシステムに認識されず「df -h」しても認識されないので、ファイルシステムのリサイズを行います。
全体の流れをわかってから操作しないと、途中で思っていた作業と違っていたなんて事のないようにまずは流れをきちんと把握します。
そして今回は「df -h」コマンドで使用率99%の箇所を拡張していきます。

では1つ1つ細かく見ていきます。
サーバーに物理ディスクを接続

物理サーバーにディスクを接続して容量を追加します。
追加したら「fdisk -l」コマンドでディスクが追加されている事を確認します。
fdisk -l

今回は「/dev/sdb1」が追加されました。容量は26.8Gあります。
パーティションのタイプ変更

今回は論理ボリュームの容量を大きくするので、ディスクタイプを LVM(Logical Volume Manager)にします。
タイプ変更するには「fdisk」コマンドで行います。
fdisk /dev/対象ディスク

「t」と入力します。今回はパーティションが一つしかないので、自動的にパーティション1が選択されます。
「8e」と入力するとパーティションのタイプが「Linux」から「LinuxLVM」に変更されます。
「w」で確定させると、パーティションテーブルを再読み込みしてディスク同期します。

もう一度以下のコマンドで確認してみます。
fdisk -l

今回追加するディスクのパーティション「sdb1」が「Linux LVM」に変更しています。
物理ボリュームの作成

物理ボリュームの確認コマンド
事前確認として物理ボリュームは何があるかを以下のコマンドで確認します。
pvscan

「/dev/sda2」の7Gひとつが認識されています。
実践:物理ボリュームの作成
準備は出来たので以下のコマンドでLinuxサーバーの物理ボリュームを作成します。
pvcreate パーティション名
今回は以下のコマンドになりました。

「successfully created」のメッセージが出て成功しています。
物理ボリュームが新たに追加されているかを、以前のコマンドで確認します。

「/dev/sdb1」が新たに追加されているのが確認できました。
物理ボリュームをボリュームグループに追加

物理ボリュームを追加できたので、以下のコマンドで現在のボリュームグループに追加します。
vgextend ボリュームグループ名 パーティション名
現在の「ボリュームグループ名」を確認するコマンドは以下です。
vgdisplay

今回は「centos」というグループ名です。
ではボリュームグループに追加します。
vgextend centos /dev/sdb1

「Volume group “centos” successfully extended」となり成功しています。
「pvscan」で確認するとVGに「centos」とボリュームグループ名が入っています。
先程の「vgdisplay」でもう一度確認してみます。

「centos」グループのVGサイズが「31.99G」に拡張されています。
LV(論理ボリューム:Logical Volume)の拡張

LV(論理ボリューム:Logical Volume)の容量確認
現在の論理ボリュームの容量を確認するには以下のコマンドを入力します。
lvdisplay

以下のコマンドでも確認できます。
lvscan

結果は6.2Gしかありません。
実践:LV(論理ボリューム:Logical Volume)の拡張
今回追加した全ての容量で論理ボリュームを拡張します。
lvextend -l +100%FREE ファイルシステム名
ファイルシステム名は「df -h」コマンドで確認できます。

今回の環境では以下のコマンドになります。
lvextend -l +100%FREE /dev/mapper/centos-root

6.2Gから31.19Gに変更になり、成功したメッセージが出ています。
再度「lvscan」コマンドで確認します。

論理ボリュームの容量が6.2Gから31.19Gに変更になっています。
ファイルシステムのリサイズ

「df -h」コマンドで確認してみます。

ファイルシステムとしてはリサイズされていません。リサイズさせる為のコマンドは以下です。
xfs_growfs ファイルシステム名
今回の環境のコマンドは以下となります。
xfs_growfs /dev/mapper/centos-root

コマンド実行すると成功しています。「df -h」コマンドで確認して全体サイズが「32G」となり、使用率が99%から20%になりました。
LinuxのCentOSで容量がいっぱいになると、サービスのダウンロードもアップデートもできなくなるのでディスクの拡張の方法を覚えておきましょう!