論理ボリューム管理(LVM)
LVMで固定パーティションから一歩進みます。物理ディスクをプールし、柔軟な論理ボリュームを作成し、ストレージを稼働中に拡張して、ダウンタイムや再パーティションなしでサーバーを成長させます。
「論理ボリューム管理(LVM)」はCoddyKit上の無料Linux Server Deployment & SSH Masteryレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Server Deployment & SSH Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。
固定パーティションの限界
従来のパーティションには大きな問題があります。作成時にサイズが固定されることです。パーティションがいっぱいになると、サイズ変更は危険を伴い、多くの場合ダウンタイムが必要になります。
LVM(Logical Volume Management)は、ディスクとファイルシステムの間に柔軟なレイヤーを追加することでこの問題を解決し、ストレージのサイズ変更や結合を簡単に行えるようにします。
LVMの3つのレイヤー
LVMには、次の3つの概念が積み重なっています。
- Physical Volume(PV) — LVMに割り当てたディスクまたはパーティション
- Volume Group(VG) — 1つ以上のPVをまとめたプール
- Logical Volume(LV) — VGから切り出した柔軟な「パーティション」
LVは通常のパーティションと同じようにフォーマットしてマウントします。
物理ボリュームの作成
最初の手順は、pvcreateでディスクをPVとして設定することです。これにより、ディスクにLVMのメタデータが書き込まれます。
pvsで物理ボリュームの一覧を表示できます。
sudo pvcreate /dev/sdb /dev/sdc
sudo pvsボリュームグループの作成
次に、vgcreateでPVをVGにまとめ、名前を付けます。VGの容量は、そのVGに含まれるPVの合計です。
vgsでボリュームグループと空き容量を確認できます。
sudo vgcreate data_vg /dev/sdb /dev/sdc
sudo vgs論理ボリュームの作成
次に、lvcreateでVGから論理ボリュームを切り出します。-Lでサイズを指定します(または -l 100%FREEですべての残り容量を使用します)。-nで名前を指定します。
sudo lvcreate -L 20G -n web_lv data_vg
sudo lvsLVのフォーマットとマウント
LVはあらゆるブロックデバイスと同じように動作します。パスは /dev/<vg>/<lv> です。フォーマットしてから、ストレージを使用する場所にマウントします。
sudo mkfs.ext4 /dev/data_vg/web_lv
sudo mkdir -p /srv/web
sudo mount /dev/data_vg/web_lv /srv/web論理ボリュームの拡張
これがLVMの最大の特長です。VGに空き容量があれば、lvextendでLVを拡張し、-rを使ってファイルシステムも同時に拡張できます。しかも、マウントしたまま実行できます。
sudo lvextend -L +10G -r /dev/data_vg/web_lvプールへのディスク追加
VGの空き容量がなくなった場合は、新しいディスクを追加します。ディスクをPVにしてから、vgextendでVGを拡張します。新しい容量は、そのVG内のすべてのLVで利用できるようになります。
sudo pvcreate /dev/sdd
sudo vgextend data_vg /dev/sdd
sudo vgsスナップショット
LVMでは、LVのスナップショットを特定の時点の状態で作成できます。安全なバックアップに便利です。スナップショットは小さい状態で開始し、変更されたブロックだけを保存します。
スナップショットからバックアップを取り、完了したら削除します。
sudo lvcreate -L 2G -s -n web_snap /dev/data_vg/web_lv
# ...take backup from the snapshot...
sudo lvremove /dev/data_vg/web_snapマウントの永続化
通常のファイルシステムと同様に、LVを /etc/fstab に追加すると、起動時にマウントされます。device-mapperのパスを使っても、UUIDを使っても構いません。
/dev/data_vg/web_lv /srv/web ext4 defaults 0 2ベストプラクティス
LVMをスムーズに運用するためのポイントです。
- スナップショットや拡張に備え、VGに空き容量を残します
- ファイルシステムも拡張されるよう、必ず
lvextend -rを使用します - VGとLVには用途が分かる名前を付けます(例:
data_vg/web_lv) - リスクのあるアップグレードの前にスナップショットを作成します
理解度チェック
LVMの理解度を確認しましょう。
振り返り
これで、LVMを使って柔軟なストレージを管理できるようになりました。
pvcreate→vgcreate→lvcreateの順に実行して構成を作成しますlvextend -rでボリュームを稼働中に拡張しますvgextendでプールにディスクを追加します- 安全なバックアップにはスナップショットを使用します
LVMにより固定パーティションの制約がなくなり、必要に応じてサーバーのストレージを拡張できるようになります。
よくある質問
「論理ボリューム管理(LVM)」レッスンは無料ですか?
はい。「論理ボリューム管理(LVM)」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Server Deployment & SSH Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Server Deployment & SSH Masteryコースには全4レッスンが含まれています。
「論理ボリューム管理(LVM)」で何を学びますか?
LVMで固定パーティションから一歩進みます。物理ディスクをプールし、柔軟な論理ボリュームを作成し、ストレージを稼働中に拡張して、ダウンタイムや再パーティションなしでサーバーを成長させます。 ブラウザで直接実行するハンズオンコードでLinux Server Deployment & SSH Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Linux Server Deployment & SSH Masteryを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLinux Server Deployment & SSH Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「論理ボリューム管理(LVM)」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLinux Server Deployment & SSH Masteryレッスンでコードを書いて実行できますか?
はい。すべてのLinux Server Deployment & SSH Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ディスクのパーティション分割とフォーマット
- ファイルシステムのマウント
- ディスク使用量の監視
- 論理ボリューム管理(LVM)