LVM(論理ボリューム管理)とは?Linuxのストレージ容量を自由に変える基本を解説
生徒
「Linuxを使っているのですが、データの保存場所が足りなくなってしまいました。新しくハードディスクを追加したのですが、設定が難しそうで困っています。」
先生
「それは大変ですね。LinuxにはLVM(読み方はLogical Volume Manager:ロジカル ボリューム マネージャー)、日本語では論理ボリューム管理(ロンリ ボリューム カンリ)という便利な仕組みがありますよ。」
生徒
「LVMを使うと、バラバラなハードディスクをまとめて扱えるって本当ですか?」
先生
「その通りです!複数の物理的なディスクをひとつの大きな保存場所としてまとめたり、後から容量を増やしたり減らしたりが自由自在になります。初心者の方向けに、仕組みを噛み砕いて説明しますね。」
Linuxを初めて学ぶ人や、 OS・プロセス・メモリ管理・仮想マシン・コンテナの仕組みを図解で理解したい人におすすめの定番書籍です。
試して理解 Linuxのしくみを見る※ Amazonアソシエイト広告リンク
1. LVMとは?ストレージ管理の魔法の仕組み
LVM(ロジカル ボリューム マネージャー)は、Linux(リナックス)において、ハードディスクやSSD(エスエスディー:固形状態ドライブ)などの記憶装置を、より柔軟に管理するための仕組みです。通常のパーティション管理では、一度決めたサイズを変更するのは非常に手間がかかりますが、LVMを導入すればシステムを止めることなく容量を拡張することが可能になります。
イメージとしては、「粘土」のようなものです。小さな粘土をいくつもくっつけて大きな塊にしたり、その大きな塊から必要な分だけを切り分けて使ったりするような自由度があります。サーバー運用や自作PCでのデータ管理において、この柔軟性は大きなメリットとなります。
2. LVMの構造を知ろう!PV・VG・LVの3つの階層
LVMを理解する上で欠かせないのが、3つの重要な専門用語です。これらは入れ子構造のような関係になっています。
- PV(Physical Volume):物理ボリューム(ブツリ ボリューム)
実際のハードディスクやパーティションそのものを指します。LVMで使うための「材料」です。 - VG(Volume Group):ボリュームグループ
複数のPVをひとつにまとめた、大きな「プールの塊」のような状態です。ここで複数のディスクが合体します。 - LV(Logical Volume):論理ボリューム(ロンリ ボリューム)
VGから必要な分だけ切り出した「仮想的なパーティション」です。ユーザーはここをフォーマットして実際にデータ保存に使います。
この階層構造があるおかげで、物理的なディスクの境目を意識せずにストレージを扱えるようになります。
3. 物理ボリューム(PV)を作成するコマンド
まずは、買ってきたハードディスクをLVMで使えるように「初期化」する必要があります。これがPVの作成です。ここではpvcreateというコマンドを使用します。作業は管理者権限で行う必要があるため、ルートユーザーとして実行します。
例として、/dev/sdb1というパーティションをLVMの材料として登録する流れを見てみましょう。
pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
これで、特定のハードディスクがLVMの一部として扱われる準備が整いました。現在のPVの状態を確認するには、pvdisplayコマンドを使います。
pvdisplay
--- Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size 10.00 GiB / not usable 3.00 MiB
Allocatable yes
4. ボリュームグループ(VG)でディスクを合体させる
次に、作成した複数のPVを束ねて、ひとつの大きなグループであるVGを作ります。これにはvgcreateコマンドを使います。例えば、新しいグループに「my-storage」という名前をつけて、先ほどのディスクを登録してみます。
vgcreate my-storage /dev/sdb1
Volume group "my-storage" successfully created
もし後からもう一枚ハードディスクを追加したくなった場合も、このVGに対してvgextendというコマンドを使うことで、既存の容量をどんどん増やしていくことができます。これがLVMの大きな強みです。現在のグループ全体の容量を確認するにはvgsコマンドが便利です。
vgs
VG #PV #LV #SN Attr VSize VFree
my-storage 1 0 0 wz--n- 10.00g 10.00g
5. 論理ボリューム(LV)を切り出して利用する
VGという大きなプールができたら、そこから実際にOS(オーエス:基本ソフト)が認識する「論理ボリューム」を切り出します。これがLVです。lvcreateコマンドを使い、サイズと名前を指定します。ここでは5GB分を「data-lv」という名前で作成してみます。
lvcreate -L 5G -n data-lv my-storage
Logical volume "data-lv" created.
これで、/dev/my-storage/data-lvというパスを通じて、通常のハードディスクと同じように扱える領域が誕生しました。この後は、mkfs.ext4などのコマンドでフォーマット(読み方はフォーマット:初期化して形式を整えること)を行えば、マウントしてファイルの書き込みができるようになります。
6. LVMを使うメリットと運用のコツ
LVMを導入すると、従来の管理方法にはなかった多くの利点が得られます。初心者の方が特に恩恵を感じるポイントは以下の通りです。
- 柔軟なサイズ変更:使っている途中で容量が足りなくなったら、オンライン(システムを動かしたまま)でLVを拡張できます。
- 複数ディスクの統合:500GBのHDDと500GBのSSDを合体させて、1TBのひとつのドライブとして扱うことができます。
- スナップショット機能:ある時点のデータの状態を保存しておくことができ、バックアップの作成や実験的な操作の失敗時に役立ちます。
ただし、注意点もあります。物理的なディスクが故障した場合、複数のディスクにまたがってLVMを構築していると、データ復旧が難しくなることがあります。そのため、重要なデータを扱う場合はRAID(レイド:複数のディスクを組み合わせて信頼性を高める技術)との併用も検討されます。
7. 容量が足りなくなった時の拡張手順
LVMの本領発揮は「容量拡張」です。例えば、先ほど作った5GBのLVがいっぱいになった時、VGに空きがあればすぐに増量できます。lvextendコマンドを使います。
lvextend -L +2G /dev/my-storage/data-lv
Size of logical volume my-storage/data-lv changed from 5.00 GiB to 7.00 GiB.
Logical volume my-storage/data-lv successfully resized.
この操作の後、ファイルシステム自体のサイズも広げる必要があります。resize2fsコマンド(ext4形式の場合)などを実行することで、保存できる容量が実際に増えます。物理的な配線をいじったり、再起動したりする必要がないため、サーバーのダウンタイムを最小限に抑えたいプロの現場でも必須の技術となっています。
8. LVMの状態を一覧で確認する方法
設定が複雑になってくると、どのディスクがどれに繋がっているか分からなくなることがあります。そんな時は、サマリー(要約)を表示するコマンドを使い分けましょう。
- pvs:物理ボリュームの短い一覧を表示します。
- vgs:ボリュームグループの空き容量などを確認できます。
- lvs:作成された論理ボリュームの名前やサイズを表示します。
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data-lv my-storage -wi-a----- 7.00g
これらのコマンドを定期的に実行することで、ストレージの健康状態や残り容量を把握し、計画的な拡張を行うことが可能になります。Linuxのストレージ管理は、LVMを覚えることで格段に自由度が上がります。まずは仮想マシンなどで、練習用のディスクを追加して操作に慣れてみることをおすすめします。
LPICレベル1の合格を目指している人や、 Linuxコマンド・シェル・ネットワーク・セキュリティの試験対策を効率よく進めたい人におすすめの定番問題集です。
Linux教科書 LPICレベル1 スピードマスター問題集を見る※ Amazonアソシエイト広告リンク
まとめ
今回の記事では、Linux(リナックス)のストレージ管理における最強のツールであるLVM(Logical Volume Manager:論理ボリューム管理)について、その基本概念から具体的な操作コマンドまでを詳しく解説しました。従来のパーティション管理では、一度設定したディスク容量を変更するには再フォーマットや再起動が必要になることが多く、運用上の大きな壁となっていました。しかし、LVMを導入することで、物理的なディスクの制約を超えた柔軟なストレージ運用が可能になります。
LVMの階層構造と重要キーワードの復習
LVMを使いこなすための第一歩は、PV(物理ボリューム)、VG(ボリュームグループ)、LV(論理ボリューム)の3層構造を正しく理解することです。これらは、材料(PV)を大きなバケツ(VG)にまとめ、そこから必要な分だけコップ(LV)に注ぐようなイメージで捉えると分かりやすくなります。
| 用語 | 読み方 | 役割・説明 |
|---|---|---|
| PV | 物理ボリューム | 実際のHDDやSSD。LVMで使うための初期化されたディスク単位。 |
| VG | ボリュームグループ | 複数のPVを束ねた巨大なプール。ここから容量を自由に配分する。 |
| LV | 論理ボリューム | OSが実際に認識するドライブ。拡張や縮小が自由自在。 |
実務で役立つLVM運用のステップ
実際にシステムを運用する際には、以下の手順でストレージを拡張していきます。この流れをマスターすれば、サーバーの空き容量不足というトラブルにも冷静に対処できるようになります。
- 新しいディスクをPVとして認識させる(
pvcreate) - 既存のVGにPVを追加してプールを大きくする(
vgextend) - LVのサイズを必要な分だけ拡張する(
lvextend) - ファイルシステムを拡張してOSに認識させる(
resize2fsやxfs_growfs)
応用:論理ボリュームの情報を取得するサンプルスクリプト
管理するサーバーが増えてくると、手動でコマンドを打つよりも、自動で現在のLVM構成を確認したくなることがあります。以下は、bashシェルスクリプトを使用して、現在のLVの状態を整形して表示する簡単な例です。
#!/bin/bash
# LVMの状態を分かりやすく表示するスクリプト
echo "--- 現在のボリュームグループ(VG)一覧 ---"
vgs --units g
echo ""
echo "--- 現在の論理ボリューム(LV)詳細 ---"
lvs -o lv_name,vg_name,lv_size,lv_path
echo ""
echo "--- ディスク使用状況の確認 ---"
df -h | grep "/dev/mapper"
このように、/dev/mapper/ 配下に作成された論理ボリュームを監視することで、ディスクの溢れを未然に防ぐことができます。
これからのストレージ管理
クラウド環境や仮想化技術が普及した現代においても、OS内部でのストレージ管理の基本はLVMです。Amazon Web Services (AWS)のEBS拡張や、オンプレミスサーバーのHDD増設など、あらゆる場面でこの知識は必須となります。
LVMにはスナップショット機能もあり、OSのアップデート前に現状を保存し、失敗したらすぐに元の状態へ戻すといった高度なバックアップ運用も可能です。
本記事で紹介したコマンド(pvcreate, vgcreate, lvcreate, lvextend)は、Linuxエンジニアとして必ず覚えておきたい基本スキルです。ぜひ、手元のテスト環境で何度も実行して、その「魔法のような柔軟性」を体感してみてください。
生徒
「先生、ありがとうございました!LVMの仕組みがようやく繋がりました。物理的なハードディスクを直接使うんじゃなくて、一度『プール(VG)』にまとめるのがポイントなんですね。」
先生
「その通りです!物理的な境界線を消して、仮想的に容量を扱えるのがLVMの最大の魅力です。もし明日、上司から『サーバーの容量を今すぐ100GB増やしてくれ』と言われても、LVMなら再起動なしで対応できますよ。」
生徒
「それは頼もしいですね!でも、コマンドがたくさんあって少し不安です。特に拡張するときの手順を間違えそうで……。」
先生
「焦らなくて大丈夫ですよ。まずは pvs、vgs、lvs の3つを覚えて、今の状態を『見る』ことから始めましょう。確認コマンドを使いこなせれば、今自分がどの階層を操作しているのか迷わなくなります。」
生徒
「なるほど。まずは確認コマンドで構造をチェックする癖をつけます。ちなみに、LVMでまとめたディスクが1枚壊れたらどうなるんですか?」
先生
「鋭い質問ですね!複数のディスクを束ねている場合、1枚の故障が全体のデータ紛失につながるリスクもあります。だからこそ、本番環境ではRAIDで物理的な故障に備えつつ、その上でLVMを使って柔軟な運用をする、という組み合わせが鉄板なんです。」
生徒
「RAIDとLVMのコンビネーションですね。最強のストレージ構成を目指して、もっと練習してみます!」
先生
「その意気です!Linuxの習得には、実際に手を動かしてボリュームを増やしたり減らしたりするのが一番の近道ですよ。頑張ってくださいね。」