Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux 邏輯卷管理 LVM 從入門到實戰:PV/VG/LV 創建、擴容、縮容、跨盤彈性伸縮

編輯:Linux 教學

傳統分區大小固定,調整需重分區風險極高。LVM (Logical Volume Manager) 在塊設備與文件系統間引入邏輯層,實現**不停機、不丟數據、跨物理盤**的彈性空間管理。本文完整演示 LVM 構建、擴容、縮容、新增盤擴展全流程。

一、 LVM 核心概念模型

層級術語對比傳統說明
物理層PV (Physical Volume)磁盤分區 /dev/sdb1底層存儲塊,打上 LVM 標籤
聚合層VG (Volume Group)物理硬盤由 1 個或多個 PV 組成的存儲池
邏輯層LV (Logical Volume)磁盤分區從 VG 切割的邏輯分區,可格式化掛載
分配單元PE (Physical Extent)簇/塊PV 中最小分配單元,默認 4MB
映射單元LE (Logical Extent)簇/塊LV 中最小單元,與 PE 1:1 映射

關鍵優勢:
• VG 可跨多塊物理硬盤 (異構無感)。
• LV 大小動態調整,不受物理分區邊界限制。
• 支持快照、鏡像、條帶化 (RAID 0/1/10)。

二、 環境準備與工具安裝


# 檢查安裝
rpm -qa | grep lvm
# lvm2-2.02.x  system-config-lvm

# 未安裝時
yum install lvm2 -y

三、 LVM 構建全流程 (雙盤跨盤演示)

1. 創建物理分區 (類型 8e)


fdisk /dev/sdb
# n → p → 1 → 回車 → +5G → t → 8e → w
fdisk /dev/sdc
# 同上創建 /dev/sdc1

2. 創建 PV


pvcreate /dev/sdb1 /dev/sdc1
# Physical volume "/dev/sdb1" successfully created

3. 創建 VG (跨盤)


vgcreate vg_data /dev/sdb1 /dev/sdc1
# Volume group "vg_data" successfully created

4. 激活 VG


vgchange -ay vg_data

5. 查看 VG/PV 信息


vgdisplay vg_data
pvdisplay /dev/sdb1

6. 創建 LV


# 指定大小創建
lvcreate -L 8G -n lv_web vg_data

# 使用剩餘所有空間 (按 PE 數)
vgdisplay vg_data | grep "Free PE"
# Free PE / Size  255 / 1.00 GB
lvcreate -l 255 -n lv_log vg_data

7. 格式化、掛載、驗證


mkfs.ext4 /dev/vg_data/lv_web
mkfs.xfs /dev/vg_data/lv_log

mkdir /web /log
mount /dev/vg_data/lv_web /web
mount /dev/vg_data/lv_log /log

df -h /web /log

8. 寫入 /etc/fstab 永久掛載


blkid /dev/vg_data/lv_web
# UUID=xxxx  /web  ext4  defaults  0 0
# UUID=yyyy  /log  xfs   defaults  0 0

四、 動態擴容 (線上擴容,無需卸載)

前提:VG 有剩餘空間 (或新增 PV)。文件系統支持線上擴容 (ext4/xfs 支持,ext2/3 需卸載)。


# 1. 擴容 LV (+5G)
lvextend -L +5G /dev/vg_data/lv_web

# 2. 擴容文件系統
resize2fs /dev/vg_data/lv_web        # ext4
xfs_growfs /web                      # xfs (掛載點)

# 3. 驗證
df -h /web

五、 新增物理硬盤擴展 VG (跨盤擴容)


# 1. 新盤分區 /dev/sdd1 類型 8e
fdisk /dev/sdd

# 2. 創建 PV
pvcreate /dev/sdd1

# 3. 擴展 VG
vgextend vg_data /dev/sdd1

# 4. 驗證 VG 空間增大
vgdisplay vg_data

# 5. 按需擴容 LV
lvextend -L +10G /dev/vg_data/lv_web
resize2fs /dev/vg_data/lv_web

六、 縮容 LV (高風險,必須離線)

⚠️ 僅支持 ext4/ext3,xfs 不支持縮容!
步驟:

  1. 卸載文件系統:umount /web
  2. 檢查文件系統:e2fsck -f /dev/vg_data/lv_web
  3. 縮容文件系統:resize2fs /dev/vg_data/lv_web 5G
  4. 縮容 LV:lvreduce -L 5G /dev/vg_data/lv_web
  5. 掛載驗證:mount /dev/vg_data/lv_web /web

黃金法則:文件系統縮容尺寸 ≤ LV 目標尺寸,否則數據截斷!

七、 常用管理命令速查

任務命令
掃描所有 LVMlvm pvscan / vgscan / lvscan
顯示詳情pvdisplay / vgdisplay / lvdisplay
移除 PVvgreduce vg_data /dev/sdb1 → pvremove /dev/sdb1
刪除 LVlvremove /dev/vg_data/lv_old
刪除 VGvgremove vg_data
創建快照lvcreate -L 2G -s -n lv_web_snap /dev/vg_data/lv_web
合併快照lvconvert --merge /dev/vg_data/lv_web_snap

八、 最佳實踐建議

  1. 命名規範:vg_<業務>_<環境>、lv_<用途> (如 vg_data_prod, lv_mysql)。
  2. 預留 10-20% VG 空間:應對突發擴容,避免滿盤無法操作。
  3. 監控告警:vgdisplay 解析 Free PE,接入 Prometheus/Grafana。
  4. 備份前快照:數據庫備份前創建 LVM 快照,秒級凍結一致性視圖。
  5. 文件系統選型:數據庫/大文件用 XFS,通用/需縮容用 ext4。
Copyright © Windows教程網 All Rights Reserved