在Linux系統中對根目錄所在的LVM邏輯卷進行擴容,需要依次完成 物理卷擴容 ? 卷組擴容 ? 邏輯卷擴容 ? 文件系統擴容 四個步驟。以下是詳細操作流程:
一、確認當前磁盤和LVM狀態
# 1. 查看磁盤空間使用情況
df -h /# 2. 查看塊設備及LVM層級關系
lsblk# 3. 查看LVM詳細信息(物理卷PV、卷組VG、邏輯卷LV)
pvdisplay
vgdisplay
lvdisplay
二、擴容物理卷(PV)
場景1:已有未分配的磁盤空間(例如虛擬機已擴容磁盤但未分區)
# 1. 創建新分區(假設新增空間在/dev/sda)
fdisk /dev/sda
# 進入交互模式后按序操作:
# n → 新建分區
# p → 主分區
# 選擇默認分區號(如已存在分區則需選新編號)
# 起始扇區默認(直接回車)
# 結束扇區默認(直接回車)
# t → 修改分區類型
# 輸入分區號 → 輸入類型代碼8e(LVM類型)
# w → 保存退出# 2. 讓內核重新讀取分區表
partprobe /dev/sda# 3. 將新分區初始化為物理卷
pvcreate /dev/sdaX # X為新創建的分區號
場景2:已有物理卷需擴展(例如云平臺直接擴容原有磁盤)
# 1. 調整物理卷大小(假設原PV為/dev/sda2)
pvresize /dev/sda2
三、擴展卷組(VG)
# 將新物理卷加入現有卷組(假設卷組名為vg_root)
vgextend vg_root /dev/sdaX# 或使用已有物理卷的擴容空間
vgextend vg_root /dev/sda2# 驗證卷組可用空間
vgdisplay vg_root | grep "Free PE"
四、擴展邏輯卷(LV)
# 1. 擴展邏輯卷(假設邏輯卷名為lv_root)
# 使用全部可用空間:
lvextend -l +100%FREE /dev/vg_root/lv_root# 或指定具體大小(例如+20G):
lvextend -L +20G /dev/vg_root/lv_root# 2. 驗證邏輯卷大小
lvdisplay /dev/vg_root/lv_root | grep "Size"
五、擴展文件系統
ext4文件系統
# 在線擴容(無需卸載)
resize2fs /dev/vg_root/lv_root
xfs文件系統
# 要求內核≥3.6且xfsprogs≥3.1.0
xfs_growfs /
六、驗證最終結果
df -h / # 確認根目錄容量已增加
lsblk # 查看整體層次結構
完整操作示例(基于ext4文件系統)
# 假設原根目錄LV路徑為/dev/vg_root/lv_root# 查看初始狀態
df -h /# 創建新分區并初始化為PV
fdisk /dev/sda # 創建新分區/dev/sda3
partprobe /dev/sda
pvcreate /dev/sda3# 擴展卷組
vgextend vg_root /dev/sda3# 擴展邏輯卷
lvextend -l +100%FREE /dev/vg_root/lv_root# 擴展文件系統
resize2fs /dev/vg_root/lv_root# 驗證結果
df -h /
注意事項
- 數據備份:操作前務必對重要數據進行備份
- 快照保護:虛擬機環境下建議先創建快照
- 文件系統類型:確認文件系統類型(
df -T /
) - 在線擴容:ext4/xfs支持在線擴容,無需卸載文件系統
- 云平臺操作:AWS/Aliyun等需先擴容云盤,再執行本流程
- 分區對齊:云環境建議使用
parted
工具確保4K對齊
故障排查
- 空間未生效:檢查是否遺漏
resize2fs/xfs_growfs
- VG無空閑空間:確認
vgextend
是否成功 - 分區未識別:執行
partprobe
或重啟系統 - LVM緩存問題:使用
vgscan --cache
刷新緩存
通過以上步驟,可安全完成根目錄LVM磁盤擴容。