▪️目的
今回は、Linuxの「LVM」を用いてディスク操作を行います。
LinuxのLVM(Logical Volume Manager)は、複数のハードディスクやパーティションをまとめて1つの大きな記憶領域(ストレージプール)として扱い、その中から必要なサイズを自由に切り出して仮想的なパーティションを作成・管理する仕組みのことです。
柔軟な容量変更や複数ディスクの統合が行えるので、とても便利な仕組みです。実務においても頻繁にこのLVMは用いられます。この記事ではLVMのディスク操作について解説します。
手順の流れは以下です。
PV(物理ボリューム)の作成
↓
VG(ボリュームグループ)の作成
↓
LV(論理ボリューム)の作成
▪️概要図

▪️構築手順
まずは、事前準備としてハードディスクを2つアタッチしましょう。
手順についてはこちらを参照してください。
→「https://lovelabengineer.com/2026/10/03/linuxでディスクの基本パーティション作成やってみ/」
♦︎ディスクのアタッチ
♦︎PV(物理ボリューム)の作成
(1) 以下のコマンドを実行して、ディスクがアタッチされたことを確認しましょう。
「nvme0n4」「nvme0n5」がアタッチされています。
・lsblk

(2) 以下のコマンドを実行して、PV(物理ボリューム)を作成しましょう。
ディスクは先程アタッチした2つを選択します。
・sudo pvcreate /dev/nvme0n4 /dev/nvme0n5

(3) PVが作成され、以下のメッセージが表示されました。

(4) 以下のコマンドからもPVが作成されたことを確認できます。
・sudo pvs

| 項目名 | 意味 | 説明 |
|---|---|---|
psize (PV Size) | 全体のサイズ | LVM として割り当てられたディスク全体の総容量。 |
pfree (PV Free) | 空き容量 | まだどの論理ボリューム(LV)にも割り当てられていない、残りの容量。 |
♦︎VG(ボリュームグループ)の作成
PV(物理ボリューム)を作成したので、続いてVG(ボリュームグループ)を作成します。
(1) 以下のコマンドを実行して、VGを作成します。
・sudo vgcreate lovelab_test /dev/nvme0n4 /dev/nvme0n5
「vgcreate 任意のVG(ボリュームグループ)名 PVで選択したディスク 」
*ここでは「lovelab_test」→ VG名とします。

(2) 以下のメッセージが表示されます。

(3) 以下のコマンドを実行して、VGの詳細情報を確認できます。
・sudo vgdisplay


📋 vgdisplay の主要な表示項目一覧
- VG Name
- ボリュームグループの名前です。
- System ID
- システムを識別するIDです(通常は空欄または未設定であることが多いです)。
- Format
- LVMのメタデータフォーマットです(通常は
lvm2)。
- LVMのメタデータフォーマットです(通常は
- Metadata Areas
- このVG内のメタデータ領域の数です。
- Metadata Sequence No
- VGの構成が変更された回数を示すシーケンス番号です。
- VG Access
- VGのアクセス権限です(
read/writeなど)。
- VGのアクセス権限です(
- VG Status
- VGの状態です(
resizableなど、サイズ変更可能かを示します)。
- VGの状態です(
- MAX LV / Cur LV
- MAX LV: このVG内に作成できる論理ボリューム(LV)の最大数(0は無制限)。
- Cur LV: 現在このVG内に存在する論理ボリュームの数。
- Open LV
- 現在マウントされるなどして、アクティブに開かれているLVの数です。
- Max PV / Cur PV / Act PV
- Max PV: このVGに組み込める物理ボリューム(PV)の最大数(0は無制限)。
- Cur PV: 現在このVGに割り当てられている物理ボリュームの数。
- Act PV: 現在アクティブな物理ボリュームの数。
- VG Size
- ボリュームグループの総容量です。
- PE Size
- 物理エクステント(PE)のサイズです(デフォルトは 4.00 MiB)。LVMはこのPE単位で容量を管理します。
- Total PE
- このVG内の総PE数です。
- Alloc PE / Size
割り当て済みのPE数と、その合計容量です(LVに消費されている容量)。 - Free PE / Size
- 未使用(空き)のPE数と、その合計容量です。新しくLVを作ったり、既存のLVを拡張したりできる残り容量を表します。
- VG UUID
ボリュームグループの一意の識別番号(UUID)です。
*LinuxでLVM(Logical Volume Manager)のVG(Volume Group)のサイズが、物理ディスク(PV)の合計サイズよりも少し少なく表示されるのは、LVMの正常な仕様(仕様通りの挙動)です。
次の二つが原因と考えられています。
1. メタデータ領域(Metadata Area)による消費
LVMは、ボリュームグループの構成情報(どのPVがどのVGに属しているか、LVの配置など)を管理するために、物理ディスク(PV)の先頭(または末尾)にメタデータ領域を確保します。
- デフォルトでは、各PVごとに 約1MB〜数MB がメタデータ用として自動的に差し引かれます。
2. PE(Physical Extent)のサイズ単位による端数(切り捨て)
LVMは、ディスク容量をPE(Physical Extent)という小さなブロック単位(デフォルトは 4MB)に分割して管理します。
- VGの総容量は、必ず「PEサイズ × PEの個数」になります。
- そのため、ディスク全体の容量がPEサイズ(4MBなど)で割り切れなかった場合の端数(数MB程度)は、VGの容量として組み込まれず、切り捨てられます。
♦︎LV(論理ボリューム)の作成
最後にLV(論理ボリューム)を作成します。
(1) 以下のコマンドを実行して、LV(論理ボリューム)を作成します。
・sudo lvcreate -L 20G -n lv_test lovelab_test
「lvcreate -L 作成する容量 -n VG(ボリュームグループ)名」

(2) 以下のメッセージが表示され、LVが作成されたことを確認します。

(3) 以下のコマンドでLVの詳細情報を確認できます。
・sudo lvs

(4)以下のコマンドを実行して、新規でLVが作成されていることを確認しましょう。
・lsblk

(5) 以下のコマンドを実行してみてください。
「/dev」配下に「lovelab_test」が表示されます。
・ls /dev | grep lovelab_test

(6) 以下のコマンドを実行してみてください。
「/dev/lovelab_test」配下に「lv_test」が表示されます。
・ls /dev/lovelab_test

*VGはLVM上の論理的な「容量プール」で、LVが実際にOSからブロックデバイスとして使う単位です。
言い換えると、VG = PVから構成された容量プール LV = VGから切り出して利用する論理ボリューム
(7)以下のコマンドを実行してください。
ここには「lovelab_test-lv_test」と表示されます。
・ls /dev/mapper

*「/dev/mapper」は以下に出てくるものはLVMのLVをOSから扱えるブロックデバイスとして見せるための「入口」のようなものです。
そもそも「mapper」は device-mapper というLinuxの仕組みが作るデバイスを置く場所です。
したがって「ls /dev/mapper/lovelab_test-lv_test」と「/dev/lovelab_test/lv_test」は同じ実態を指します。
♦︎ファイルシステムの設定
LVの作成が終わったので、ファイルシステムの設定を行います。
(1) 以下のコマンドを実行します。
今回は「ext4」形式を選択します。
・sudo mkfs -t ext4 /dev/lovelab_test/lv_test

(2) 以下のようなメッセージが表示されます。

(3) 以下のコマンドを実行して、ファイルステムを確認します。
・lsblk -f


♦︎ディレクトリへのマウント
最後にディレクトリへマウントします。
(1) まず、以下のコマンドを実行して新規でディレクトリを作成します。
・sudo mkdir /dir_lovelab_test

(2) マウントを行うには「/etc/fstab」を編集する必要があります。
その前に以下のコマンドを実行して、ファイルのバックアップを取ります。
・sudo cp /etc/fstab /etc/fstab_bk

(3) 以下のコマンドを実行して、設定ファイルを編集します。
・sudo vi /etc/fstab
(4) キーボードの「i」を押して「挿入モード」に切り替えます。
設定ファイルの一番下の行に以下のように記載します。
記載終了後は、「escキー」→「:」→「wq」→「Enter キー」を押して保存をします。
・/dev/lovelab_test/lv_test /dir_lovelab_test ext4 defaults 0 0

(5) 以下のコマンドを実行して、設定ファイルに文法的なエラーがないか確認します。
「Success, no errors ......」が表示されることを確認します。
・sudo findmnt --verify

(6) 以下のコマンドを実行して、「/etc/fstab」のマウント情報をもとにマウントを行います。
・sudo mount -a

(7) 以下のコマンドを実行して、マウントが行われたことを確認します。
・sudo df -h

(8) 以下のコマンドからもマウント情報を確認できます。
・lsblk -l


▪️まとめ
LVMの解説は以上になります。
Linuxのディスク操作は様々なものがあるのでそれぞれを使いこなせるようにしましょう。
その他のディスク操作については以下を参照してください。
GPT パーティション作成
→「https://lovelabengineer.com/2026/10/01/linuxでディスクのパーティション作成やってみた!-gpt/」
MBR 基本パーティション作成
→「https://lovelabengineer.com/2026/10/03/linuxでディスクの基本パーティション作成やってみ/」
MBR 拡張・論理パーティション作成
→「https://lovelabengineer.com/2026/10/04/linuxでディスクの拡張・論理パーティション作成や/」

No responses yet