LinuxでLVMを使ったディスク管理の実践
- 作成日 2026.04.21
- その他
LVMは、Linuxでディスクを柔軟に扱うための代表的な仕組みになる。通常の固定パーティション構成では、あとから容量を増やしたい、複数ディスクをまとめたい、スナップショットを取りたい、といった要求に対して手間が大きくなりやすい。LVMでは、物理ディスクやパーティションを物理ボリュームとして束ね、ボリュームグループという容量プールを作り、その中から論理ボリュームを切り出す。この考え方を押さえると、サーバー運用で頻繁に出てくる「容量を後から増やしたい」「ディスクを追加したい」「ファイルシステムごと拡張したい」といった作業がかなり整理しやすくなる。
- 1. LVMとは何か
- 2. まず覚えるべき3つの単位
- 3. PV・VG・LVの関係をイメージで捉える
- 4. LVMの対象デバイスを確認する
- 5. 物理ボリュームを作成する
- 6. 物理ボリュームの確認方法
- 7. ボリュームグループを作成する
- 8. ボリュームグループの確認方法
- 9. 論理ボリュームを作成する
- 10. 論理ボリュームの確認方法
- 11. ファイルシステムを作成してマウントする
- 12. 再起動後も自動マウントする設定
- 13. ディスク追加後にVGを拡張する
- 14. 論理ボリュームを拡張する方法
- 15. ファイルシステムの拡張も忘れない
- 16. 縮小は拡張よりずっと危険
- 17. スナップショットの考え方
- 18. よくある失敗と注意点
- 19. 実務で進めやすい作業順
- 20. まとめ
LVMとは何か
LVMは Logical Volume Manager の略で、物理デバイスから仮想的なブロックデバイスを作る仕組み。
固定的なパーティション管理より柔軟で、
・複数ディスクをまとめる
・あとから容量を拡張する
・論理ボリュームを切り分ける
・スナップショットを取る
といった操作をしやすい。
Linuxのストレージ管理ではかなり定番で、特にサーバー用途ではよく使われる。
まず覚えるべき3つの単位
LVMを理解するうえで最も重要なのは、次の3つ。
・PV(Physical Volume)
・VG(Volume Group)
・LV(Logical Volume)
流れとしては、
- 物理ディスクやパーティションをPVにする
- PVをまとめてVGを作る
- VGの中からLVを切り出す
という順になる。
この3段階を理解できれば、LVMのほとんどの基本操作は追いやすくなる。
PV・VG・LVの関係をイメージで捉える
たとえば、/dev/sdb と /dev/sdc の2本のディスクがあるとする。
これらをPVにして、まとめて1つのVGへ入れると、そのVGは「容量プール」のような状態になる。
そこから、
・アプリ用のLV
・ログ用のLV
・バックアップ用のLV
を切り出せる。
つまり、物理ディスクの境界を意識せず、論理的に容量を配分しやすくなるのがLVMの強みになる。
LVMの対象デバイスを確認する
LVMを触る前に、まず現在のディスク構成を確認する。
代表的には lsblk が見やすい。
lsblk
ファイルシステムまで見たいなら次。
lsblk -f
これで、
・どのディスクがあるか
・どこにマウントされているか
・すでにLVMが使われているか
を確認しやすい。
いきなり pvcreate する前に、対象デバイスを間違えていないかを必ず確認した方がよい。
物理ボリュームを作成する
LVMの最初の実作業は、対象デバイスを物理ボリューム化すること。pvcreate を使う。
sudo pvcreate /dev/sdb
複数デバイスをまとめて初期化することもできる。
sudo pvcreate /dev/sdb /dev/sdc
このコマンドを実行すると、そのデバイスはLVM用の物理ボリュームとして使えるようになる。
ただし、対象デバイス上の既存データは壊れる可能性があるため、空ディスクや用途が確定した領域に対して使うのが前提になる。
物理ボリュームの確認方法
PVを作成したら、正しく認識されているかを確認する。
代表的には pvs や pvdisplay を使う。
sudo pvs
詳細を見たいなら次。
sudo pvdisplay
ここで、
・PV名
・容量
・どのVGに所属しているか
などが確認できる。
複数ディスクを扱う環境では、まずこの一覧を見ながら進める方が安全。
ボリュームグループを作成する
PVを作成したら、それらを束ねてVGを作る。vgcreate を使う。
sudo vgcreate vgdata /dev/sdb
複数PVをまとめるなら次のようにする。
sudo vgcreate vgdata /dev/sdb /dev/sdc
これで vgdata という名前のVGが作られる。
以後は、このVGの中から論理ボリュームを切り出して使う流れになる。
VGは「物理ディスクをまとめた容量のプール」と考えると理解しやすい。
ボリュームグループの確認方法
VGを作成したら、vgs や vgdisplay で状態を見る。
まずは一覧表示が使いやすい。
sudo vgs
詳細確認なら次。
sudo vgdisplay
ここで、
・VG名
・総容量
・空き容量
・所属するPV数
などを確認できる。
LVM運用では「あとどれだけ空きがあるか」を見る機会が多いため、vgs はかなり使用頻度が高い。
論理ボリュームを作成する
VGの中から実際に使うストレージ領域を作るには lvcreate を使う。
たとえば 20GB の lvapp を作るなら次。
sudo lvcreate -L 20G -n lvapp vgdata
VGの空き領域をすべて使いたいなら次のような指定もできる。
sudo lvcreate -l 100%FREE -n lvbackup vgdata
これで作られたLVは、通常のブロックデバイスとして扱える。
パスは一般的に /dev/vgdata/lvapp のような形になる。
論理ボリュームの確認方法
LVを作ったあとは、lvs や lvdisplay で確認する。
一覧確認には lvs が使いやすい。
sudo lvs
詳細を見るなら次。
sudo lvdisplay
ここでは、
・LV名
・VG名
・サイズ
・属性
などが確認できる。
複数LVを運用するときは、この一覧を見ながら容量計画を整理しやすい。
ファイルシステムを作成してマウントする
LVを作成しただけでは、まだファイルシステムは無い。
通常のディスクと同じように mkfs してマウントする必要がある。
ext4の例は次。
sudo mkfs.ext4 /dev/vgdata/lvapp
マウントポイントを作ってマウントする。
sudo mkdir -p /data/app
sudo mount /dev/vgdata/lvapp /data/app
マウント確認。
df -h
これで、LVM上のLVを通常のストレージとして使えるようになる。
再起動後も自動マウントする設定
一時的に mount しただけでは、再起動後に消える。
恒久的に使うなら /etc/fstab へ登録する。
まずUUIDを確認する。
sudo blkid /dev/vgdata/lvapp
/etc/fstab に書く例。
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data/app ext4 defaults 0 0
書いたら、再起動せずに構文確認する。
sudo mount -a
ここでエラーが出なければ、再起動後の自動マウント設定として扱いやすい。
ディスク追加後にVGを拡張する
LVMの実務的な強みは、あとからディスクを追加しやすいこと。
たとえば、新しい /dev/sdd を追加した場合、まずPV化する。
sudo pvcreate /dev/sdd
そのあと既存VGへ追加する。
sudo vgextend vgdata /dev/sdd
これで vgdata の空き容量が増える。
通常の固定パーティション構成より、後からの拡張がかなり柔軟になるのがLVMの大きな利点。
論理ボリュームを拡張する方法
VGに空きがあるなら、既存LVを拡張できる。
たとえば 10GB 追加するなら次。
sudo lvextend -L +10G /dev/vgdata/lvapp
VGの空きを全部使うなら次。
sudo lvextend -l +100%FREE /dev/vgdata/lvapp
ただし、ここで終わりではなく、その上のファイルシステムも拡張する必要がある。
LVだけ大きくしても、ファイルシステムが追従しなければ df -h の見た目は変わらない。
ファイルシステムの拡張も忘れない
LV拡張後は、使っているファイルシステムに応じた拡張コマンドが必要。
ext4 なら resize2fs が代表例。
[code]
sudo resize2fs /dev/vgdata/lvapp
[/code]
XFSなら通常 xfs_growfs を使う。
マウントポイントが /data/app の場合は次のようになる。
sudo xfs_growfs /data/app
実務では、「LVは増えたのに df が変わらない」という失敗がかなり多い。
原因はほとんどがファイルシステム拡張忘れになる。
縮小は拡張よりずっと危険
LVMは拡張しやすい一方で、縮小は注意が必要。
特にファイルシステムの縮小を誤るとデータ破損のリスクがある。
基本的に、
・ext系は縮小手順をかなり慎重に踏む
・XFSは一般的にオンライン縮小ができない
という理解を持った方が安全。
拡張は比較的よく使うが、縮小は「できるか」より「本当にやる必要があるか」を先に考える方が実務では重要になる。
スナップショットの考え方
LVMにはスナップショット機能もある。
これは、ある時点のLVの状態を差分ベースで保持する仕組みとして使われることがある。
たとえばバックアップ前の一時固定や、変更前の退避で使うことがある。
簡易例。
sudo lvcreate -L 5G -s -n lvapp_snap /dev/vgdata/lvapp
ただし、スナップショットは容量管理や性能面の理解も必要で、初心者が常用するよりは、まずPV/VG/LVの基本運用を安定させてから触る方が安全。
よくある失敗と注意点
LVM運用でよくある失敗はかなり典型的。
・対象デバイスを間違えて pvcreate する
・VG名やLV名を混同する
・LVを拡張しただけでファイルシステム拡張を忘れる
・縮小を安易に実行する
・fstab へ誤記して再起動後にマウント失敗する
・空き容量確認なしに lvcreate しようとする
特に危険なのは「通常のパーティション感覚で縮小する」こと。
拡張より縮小の方がリスクが高い前提で扱う方がよい。
実務で進めやすい作業順
LVMを実務で扱うなら、次の順番がかなり分かりやすい。
lsblkで対象ディスクを確認するpvcreateでPVを作るvgcreateまたはvgextendでVGを作る / 広げるlvcreateまたはlvextendでLVを作る / 広げるmkfsとmountを行う- 必要なら
/etc/fstabへ登録する - 拡張時はファイルシステム拡張まで行う
この流れを固定しておくと、作業ミスがかなり減りやすい。
まとめ
LinuxでLVMを使ったディスク管理を理解するうえで重要なのは、
・PV、VG、LVの3層構造を押さえること
・LVMは固定パーティションより柔軟に容量管理しやすいこと
・ディスク追加後にVGを広げ、LVを後から拡張できること
・LV拡張後はファイルシステム拡張も必要なこと
・縮小は拡張よりずっと慎重に扱うべきこと
このあたりになる。
LVMは最初は概念が多く見えるが、PV→VG→LVの流れで捉えるとかなり整理しやすい。
サーバー運用で「あとから容量を増やしたい」という場面は非常に多いため、LVMを理解しておく価値はかなり大きい。
-
前の記事
Linuxでログイン監査ログを確認する方法 2026.04.20
-
次の記事
Linuxでinode枯渇問題の原因と対処 2026.04.22
コメントを書く