lvextendコマンドでLVMボリュームをオンライン拡張する方法|xfs_growfs・resize2fsの使い分けも


この記事の監修:宮崎智広(Linux教育歴15年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)LinuxtipsLinuxtips, ディスク操作 > lvextendコマンドでLVMボリュームをオンライン拡張する方法|xfs_growfs・resize2fsの使い分けも
「ディスクが満杯です、と監視アラートが鳴ったけど、サーバーは止められない」
こんな状況、深夜の障害対応で何度も経験しました。

この記事では、LVM(Logical Volume Manager)の lvextend コマンドを使って、サーバーを停止せずに論理ボリュームを拡張する手順を解説します。
xfs_growfs と resize2fs の使い分け、--resizefs オプションでの一括拡張、ボリュームグループ(VG)に空き容量がない場合の対処まで、20年以上のサーバー運用で培ったノウハウを含めて網羅します。
動作確認環境:RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTS。

この記事のポイント

・lvextend -L +10G で論理ボリュームをオンライン拡張できる
・XFSは xfs_growfs、ext4は resize2fs でファイルシステムを追従
・--resizefs オプションで lvextend と同時にFS拡張も可能
・VGに空きがない場合は pvcreate と vgextend で物理ボリュームを追加


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

なぜLVMが現場で選ばれるのか?

LVMはRHEL系ディストリビューションのデフォルトインストールで採用されている、論理的なディスク管理の仕組みです。
物理ディスク(PV:Physical Volume)を束ねてボリュームグループ(VG:Volume Group)を作り、その中から論理ボリューム(LV:Logical Volume)を切り出して使います。

最大のメリットは「サーバーを止めずに容量を拡張できる」こと。クラウド時代の運用ではEBSボリュームのオンラインリサイズと組み合わせて使うケースが多く、知らないと現場で詰みます。
dmidecode でハードウェア情報を取得しておくと、物理ディスクとLVMの構成を整理しやすくなります。

lvextendの基本的な使い方

1. 現在のLVM構成を確認する

まずは lsblkvgslvs で現状を把握します。何も見ずに lvextend を叩くのは事故のもとです。

# ブロックデバイスとマウントポイントの確認 $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 50G 0 disk tqsda1 8:1 0 1G 0 part /boot mqsda2 8:2 0 49G 0 part tqrl-root 253:0 0 30G 0 lvm / mqrl-home 253:1 0 10G 0 lvm /home # ボリュームグループの空き容量 $ sudo vgs VG #PV #LV #SN Attr VSize VFree rl 1 2 0 wz--n- <49.00g 9.00g # 論理ボリュームの一覧 $ sudo lvs LV VG Attr LSize Pool Origin Data% home rl -wi-ao---- 10.00g root rl -wi-ao---- 30.00g

VFree が 9.00g あるので、この範囲内なら追加のディスク追加なしで拡張できます。

2. lvextendでサイズを増やす

論理ボリュームを5GB拡張する例です。

# +5G で5GB追加(相対指定) $ sudo lvextend -L +5G /dev/rl/home Size of logical volume rl/home changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents). Logical volume rl/home successfully resized. # または絶対サイズで指定 $ sudo lvextend -L 15G /dev/rl/home # VGの空きを全て使い切る $ sudo lvextend -l +100%FREE /dev/rl/home

+5G(プラス付き)は「現在のサイズに5GB足す」、5G(プラスなし)は「合計5GBにする」の意味です。
プラスを付け忘れると意図せず縮小がかかってデータが破損するリスクがあるので、相対指定では必ず + を付ける癖をつけてください。

3. ファイルシステムを追従させる

ここが落とし穴。lvextend だけでは df -h の表示は変わりません。ファイルシステムも拡張する必要があります。

# XFSの場合(RHEL 7以降のデフォルト) $ sudo xfs_growfs /home meta-data=/dev/mapper/rl-home isize=512 agcount=4, agsize=655360 blks data = bsize=4096 blocks=2621440, imaxpct=25 ... data blocks changed from 2621440 to 3932160 # ext4の場合 $ sudo resize2fs /dev/rl/home resize2fs 1.46.5 (30-Dec-2021) Filesystem at /dev/rl/home is mounted on /home; on-line resizing required The filesystem on /dev/rl/home is now 3932160 (4k) blocks long. # 拡張後の確認 $ df -h /home Filesystem Size Used Avail Use% Mounted on /dev/mapper/rl-home 15G 2.1G 13G 14% /home

XFSは xfs_growfs に「マウントポイント」を渡し、ext4は resize2fs に「デバイスパス」を渡す点が違います。
Linux 基本コマンドの解説でディレクトリ構造を整理しておくと、どのマウントポイントを拡張すべきか迷いません。

応用・実務Tips

--resizefs で lvextend とFS拡張を同時実行

ここまで2ステップで説明しましたが、現場では --resizefs(または -r)で1コマンドにまとめるのが定石です。

# lvextend と xfs_growfs/resize2fs を同時実行 $ sudo lvextend -L +5G -r /dev/rl/home # VGの空き全部を使う+FS拡張 $ sudo lvextend -l +100%FREE -r /dev/rl/root

XFS・ext4どちらでも自動判別してくれるので、深夜対応で焦っているときほど -r を使ってミスを減らしてください。

VGに空きがない時:物理ボリュームを追加

クラウドのEBSやVMware環境でディスクを追加した場合、新しいデバイス(例: /dev/sdb)を物理ボリューム化してVGに組み込みます。

# 新しいディスクを物理ボリュームとして初期化 $ sudo pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. # 既存のVGに追加 $ sudo vgextend rl /dev/sdb Volume group "rl" successfully extended # VG容量が増えたことを確認 $ sudo vgs VG #PV #LV #SN Attr VSize VFree rl 2 2 0 wz--n- <99.00g 50.00g # あとは lvextend で拡張 $ sudo lvextend -l +100%FREE -r /dev/rl/home

クラウドでEBSをオンライン拡張した場合は、先に growpart /dev/sda 2 でパーティションサイズを追従させ、pvresize /dev/sda2 でPVのサイズを更新する手順が必要です。これを忘れると、ディスクは増えたのにVGの空きが増えない、という現象に悩まされます。

事前にスナップショットで保険をかける

本番サーバーで初めて lvextend を実行するときは、念のためスナップショットを取ってから作業すると安全です。

# 1GBのスナップショット領域を確保 $ sudo lvcreate -L 1G -s -n home_snap /dev/rl/home # 問題なく完了したらスナップショット削除 $ sudo lvremove /dev/rl/home_snap

スナップショット容量は「想定変更量」を上回る程度で十分です。容量不足になるとスナップショットは無効化されるので注意してください。
fstab 編集を伴うマウントポイント変更を併せて行う場合は、mount コマンドの使い方も確認しておくと安心です。

「Insufficient free space」が出た時の対処法

lvextend で頻発するエラーと対処を、実際のメッセージとともに整理します。

エラー1: 空き容量不足

$ sudo lvextend -L +20G /dev/rl/home Insufficient free space: 5120 extents needed, but only 2304 available

VGの空きが要求サイズより少ない場合に出ます。vgs で VFree を確認し、不足していれば pvcreate と vgextend でディスクを足してください。

エラー2: ファイルシステムが対応していない

$ sudo xfs_growfs /home xfs_growfs: /home is not a mounted XFS filesystem

マウントポイントを間違えているか、XFS以外のファイルシステムです。mount | grep home で実際の種別を確認してから、xfs_growfs か resize2fs を選んでください。

【重要】縮小(lvreduce)は本番サーバーで使わない

LVMには lvreduce という縮小コマンドもありますが、ext4/XFSのオンライン縮小は基本的に非対応です。XFSに至っては縮小自体が一切できません。
縮小が必要なケースはほぼ「データを別ボリュームに退避→LV作り直し」の手順になります。安易に lvreduce を叩くとファイルシステムが破壊されるので、本番では絶対に避けてください。

本記事のまとめ

やりたいこと コマンド
論理ボリュームを5GB拡張する sudo lvextend -L +5G /dev/rl/home
VGの空き全部を使って拡張する sudo lvextend -l +100%FREE /dev/rl/home
lvextendとFS拡張を同時実行する sudo lvextend -L +5G -r /dev/rl/home
XFSのファイルシステムを拡張する sudo xfs_growfs /home
ext4のファイルシステムを拡張する sudo resize2fs /dev/rl/home
新しいディスクをVGに追加する sudo pvcreate /dev/sdb && sudo vgextend rl /dev/sdb
EBSオンライン拡張後にPVを追従させる sudo growpart /dev/sda 2 && sudo pvresize /dev/sda2
スナップショットを作成する sudo lvcreate -L 1G -s -n home_snap /dev/rl/home
LVMの拡張は手順を1つ飛ばすだけで「ディスクは増えたのにdfには反映されない」という事故が起きます。
lsblk・vgs・lvs で現状を把握、+ を付けた相対指定、-r で同時拡張、この3つを徹底すれば深夜のディスク満杯アラートも怖くありません。

LVM拡張ができたら、次はサーバー構築の全体像を学びませんか?

lvextendでオンライン拡張ができるようになると、深夜のディスク障害対応が一気に楽になります。その力を活かして、体系的にLinuxサーバー構築を学んでみませんか。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。


無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。