LVMについて

今回は、Linuxのストレージを柔軟に管理するためのLVMについて解説します。【連載コラム:Linuxシステム管理標準教科書を読む(24)】

最終更新日:2025年04月02日

Linuxの基本的なスキルを習得したら、Linuxサーバーをシステムとして長期に運用管理していくためのスキルを身につけるのはいかがでしょうか。このコラムでは、「Linuxシステム管理標準教科書」の全体調整を担当した筆者が改めて大切なポイントを解説していきます。

LVM(Logical Volume Management)は、Linuxのストレージを柔軟に管理するための仕組みです。ストレージ領域が不足した場合に容量を追加することなどができるようになります。多くの場合、Linuxディストリビューションのインストール時にLVMが設定されるので、まずはどのような設定になっているのか確認しながら、LVMの仕組みを理解しておきましょう。


物理ディスクを確認する

LVMは名称の中に「Logical(論理)」と入っているように、ソフトウェア的にストレージを管理する仕組みですが、一番根本になるのはハードディスクやSSDなどの物理ディスクです。ディスクやストレージは、OSが取り扱う際には「ボリューム」という呼び方をされる場合があります。
まず、LVMのベースとなる物理ボリュームを確認します。

pvscanコマンドとpvdisplayコマンドによる物理ボリュームの確認

pvscanコマンドは物理ボリュームの情報を簡易的に、pvdisplayコマンドはより詳細に情報を表示してくれます。

$ sudo pvscan
  PV /dev/nvme0n1p3   VG almalinux   lvm2 [18.41 GiB / 0    free]
  Total: 1 [18.41 GiB] / in use: 1 [18.41 GiB] / in no VG: 0 [0   ]
$ sudo pvdisplay
  --- Physical volume ---
  PV Name               /dev/nvme0n1p3
  VG Name               almalinux
  PV Size               18.41 GiB / not usable 2.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              4713
  Free PE               0
  Allocated PE          4713
  PV UUID               wkECjV-c1u9-MJco-aAY9-oQRe-eBTj-oMYlnY

この実行結果から、/dev/nvme0n1p3というデバイスに、almalinuxというボリュームグループが作成されています。nvme0n1p3は、nvme0n1という1台の物理ディスクがパーティションに分割されており、パーティション番号3番(p3)というパーティションをボリュームグループとして使っていることになります。

vgscanコマンドとvgdisplayコマンドによるボリュームグループの確認

ボリュームグループを確認するには、vgscanコマンドとvgdisplayコマンドを実行します。

$ sudo vgscan
  Found volume group "almalinux" using metadata type lvm2
$ sudo vgdisplay
  --- Volume group ---
  VG Name               almalinux
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               18.41 GiB
  PE Size               4.00 MiB
  Total PE              4713
  Alloc PE / Size       4713 / 18.41 GiB
  Free  PE / Size       0 / 0
  VG UUID               6t60px-iedk-ZCD1-BKjE-aY4B-ZTsy-JPzSE2

ボリュームグループは、複数の物理ボリュームから作ることもできます。「PV」が入ったパラメータが物理ボリュームの数を表しています。
LVは「論理ボリューム」です。論理ボリュームが最終的にシステムが利用するストレージ領域になります。ここでは2つの論理ボリュームが存在しているのが分かります。

物理エクステントについて

PEは「物理エクステント」で、デフォルトでは4MBに区切られたストレージ領域です。物理ボリュームから論理ボリュームに対して割り当てられますが、ここではすべてのPEが論理ボリュームに割り当てられているのが分かります。この状態では論理ボリュームの容量を増やしたいと考えても割当可能なPEがありませんので、追加の物理ボリュームを用意してボリュームグループにPEを追加する必要があることが分かります。

lvscanコマンドとlvdisplayコマンドによる論理ボリュームの確認

論理ボリュームを確認するには、lvscanコマンドとlvdisplayコマンドを実行します。

$ sudo lvscan
  ACTIVE            '/dev/almalinux/swap' [2.00 GiB] inherit
  ACTIVE            '/dev/almalinux/root' [16.41 GiB] inherit
$ sudo lvdisplay
  --- Logical volume ---
  LV Path                /dev/almalinux/swap
  LV Name                swap
  VG Name                almalinux
  LV UUID                6HdLUO-j6mh-iiXa-Rucn-N9E2-WkOY-UZv4zs
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2024-11-25 12:03:18 +0900
  LV Status              available
  # open                 2
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

  --- Logical volume ---
  LV Path                /dev/almalinux/root
  LV Name                root
  VG Name                almalinux
  LV UUID                GbPmyU-yD59-5Ly0-yiwE-4knW-dqXT-yM7vE0
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2024-11-25 12:03:19 +0900
  LV Status              available
  # open                 1
  LV Size                16.41 GiB
  Current LE             4201
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

ボリュームグループで確認して分かっていた通り、論理ボリュームは2つ用意されています。それぞれswapとrootという論理ボリューム名がつけられており、それぞれの名前で/dev/almalinux/以下のデバイスとして参照できるようになっています。

このように、LVMは物理ボリュームを1つ以上まとめたボリュームグループから、実際に使用したい領域を論理ボリュームとして切り出す、という形になっています。階層構造になっていて分かりにくいので、解説したコマンドを実際に実行してみて対応関係を確認して理解するとよいでしょう。


筆者紹介
宮原 徹 氏

宮原 徹 氏

株式会社びぎねっと

Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。

<Linuxシステム管理標準教科書とは>

Linuxシステム管理標準教科書」(システム管理教科書)は2015年4月にリリースされた標準教科書シリーズの1冊です。Linuxシステムの運用管理という観点で書かれており、システム管理者という業務において知っておかなければならない基本的なトピックが解説されています。「Linux標準教科書」「Linuxサーバー構築標準教科書」でコマンド操作やサーバー構築の基本を学んだら、このシステム管理教科書を読んで、単にLinuxを使うのではなく、システムとして長期的に管理運用していくためのスキルを身につけてください。

バックナンバー

第23回:SELinuxについて
第22回:NTPサーバーとして時刻を提供する
第21回:NTPによる時刻合わせ
第20回:anacronによるシステムジョブの実行
第19回:anacronの呼び出し

ページトップへ