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