LVM(Logical Volume Manager,邏輯卷管理)是 Linux 核心提供的一種磁碟管理機制。它在實體硬碟與檔案系統之間建立一個抽象層,讓管理員能彈性調整儲存空間,而不必重新分區、格式化或搬移資料。對伺服器環境而言,LVM 是免費且極具彈性的儲存管理利器。
定義:物理卷是 LVM 的最基本儲存單元,對應實體硬碟分區或 RAID 裝置。建立 PV 時會在裝置上寫入 LVM 管理資訊(Metadata)。
常用指令:pvcreate、pvdisplay、pvscan
重點:PV 不是分區本身,而是透過 pvcreate 將分區初始化為 LVM 可識別的物理卷。
定義:卷組由一個或多個 PV 組成,類似於傳統架構中的「實體硬碟」。在 VG 上可建立多個邏輯卷(LV)。
常用指令:vgcreate、vgdisplay、vgscan
比喻:將多個教室(PV)合併成一個大年級(VG),之後可靈活分配學生(LV)。
定義:邏輯卷類似於傳統分區,可在其上建立檔案系統(如 /home、/var)並掛載使用。
常用指令:lvcreate、lvdisplay、lvextend、lvscan
優勢:當空間不足時,可從 VG 剩餘空間擴充 LV,檔案系統線上擴容(配合 resize2fs 或 xfs_growfs),資料零損失、無停機。
假設有一顆新硬碟 /dev/sdb,使用 fdisk 建立三個 100 MB 的分區(/dev/sdb1~3),分區類型設為 8e (Linux LVM)。
# pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3
Physical volume "/dev/sdb1" successfully created
Physical volume "/dev/sdb2" successfully created
Physical volume "/dev/sdb3" successfully created
# vgscan # 掃描現有 VG(首次建議執行)
# vgcreate vg0 /dev/sdb1 /dev/sdb2 # 先用兩個 PV 建立 vg0
Volume group "vg0" successfully created
# vgdisplay vg0
--- Volume group ---
VG Name vg0
Format lvm2
VG Access read/write
VG Status resizable
VG Size 200.00 MB
PE Size 4.00 MB
Total PE 50
Free PE / Size 50 / 200.00 MB
VG UUID WKRPJT-MI6G-vGk9-vne2-Gfg2-sAry-llsF7B
提示:PE(Physical Extent)預設 4 MB,可用 vgcreate -s 8M 調整。
# lvcreate -n data -L 10M vg0
Rounding up size to full physical extent 12.00 MB
Logical volume "data" created
# lvdisplay
--- Logical volume ---
LV Path /dev/vg0/data
LV Name data
VG Name vg0
LV Size 12.00 MB
Current LE 3
說明:指定 -L 10M 但實際分配 12 MB,因為 LVM 以 PE 為最小單位(3 PE × 4 MB = 12 MB)。
# mkfs.ext3 /dev/vg0/data
# mount /dev/vg0/data /mnt
# cp /etc/services /mnt/ # 測試寫入
# ls /mnt/
lost+found services
# umount /mnt
# lvextend -L +10M /dev/vg0/data
Rounding up size to full physical extent 12.00 MB
Extending logical volume data to 24.00 MB
Logical volume data successfully resized
# resize2fs /dev/vg0/data # 擴容檔案系統(ext3/4)
# mount /dev/vg0/data /mnt # 重新掛載即可使用新空間
pvcreate /dev/sdc1 → vgextend vg0 /dev/sdc1e2fsck)、縮減檔案系統、再用 lvreduce。lvcreate -s -n snap_data -L 50M /dev/vg0/data,備份利器。LVM 以「PV → VG → LV」三層架構,賦予 Linux 儲存管理極大彈性。掌握基本指令與 PE 概念,即可輕鬆應對擴容、遷移、快照等日常運維場景,是 Linux 系統管理員必修的核心技能。