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) 移除實戰:縮減邏輯卷、遷移資料、安全移除完整流程

編輯:關於 Linux

LVM (Logical Volume Manager) 提供彈性儲存管理,當需移除物理卷 (PV,如硬碟分區 /dev/sda6) 時,必須先將其上資料遷移至同卷組 (VG) 內其他 PV,再縮減邏輯卷 (LV)、移除 PV。本文以 /home 掛載點為例,完整演示離線縮減、pvmove 遷移、vgreduce 移除全流程。

前置條件與風險提示

  • 必須離線操作: 縮減檔案系統需卸載掛載點 (umount),業務停機窗口規劃。
  • 資料備份: 操作前對關鍵資料做快照或備份,防呆。
  • 檔案系統支援縮減: ext4/xfs 支援,xfs 不支援縮減 (僅支援擴充),若為 xfs 需備份→重建→還原。
  • 目標 PV 可用空間 ≥ 遷移資料量: 否則 pvmove 失敗。

環境範例

VG: liuhg_disk
LV: /dev/liuhg_disk/home (掛載 /home, ext4, 2.6G)
PVs:
  /dev/sda5  100M  (全滿)
  /dev/sda6  200M  (目標移除, 全滿)
  /dev/sda7  300M  (空閒 300M, 可接收遷移資料)
  /dev/sda8  400M  (部分使用)
  /dev/sda9  500M
  /dev/sda10 600M
  /dev/sda11 500M
當前使用 2G,空閒 500M,移除 sda6 (200M) 需遷移 200M 資料,sda7 空閒 300M 滿足。

操作步驟

1. 卸載檔案系統

umount /home
# 若提示 busy,用 lsof/fuser 找出佔用進程殺掉

2. 檢查並縮減檔案系統

# 強制檢查
e2fsck -f /dev/liuhg_disk/home

# 縮減檔案系統至 2200M (原 2600M - 移除 200M - 預留 200M 緩衝)
resize2fs /dev/liuhg_disk/home 2200M

關鍵: 檔案系統縮減目標大小 必須小於等於 縮減後的 LV 大小,建議留 100-200M 緩衝。

3. 縮減邏輯卷

lvreduce -L 2200M /dev/liuhg_disk/home
# 輸出確認:Logical volume liuhg_disk/home successfully resized

4. 檢查 PV 使用狀態 (確認遷移來源與目標)

pvdisplay -m
# 關注:
# /dev/sda6: Allocated PE 50, Free PE 0  ← 來源,需遷移 50 PE
# /dev/sda7: Allocated PE 0, Free PE 76  ← 目標,有 76 PE 空閒,足夠

5. 遷移資料 (核心步驟)

pvmove /dev/sda6 /dev/sda7
# 將 sda6 上所有 PE 遷移到 sda7
# 可加 -v 顯示進度,-b 後台執行
# 輸出範例:
#   /dev/sda6: Moved: 12.5%
#   ...
#   /dev/sda6: Moved: 100.0%

注意: pvmove 會鎖定 VG 元資料,期間不可進行其他 LVM 操作。大量資料遷移耗時較長,建議在維護窗口執行。

6. 驗證遷移結果

pvdisplay -m
# /dev/sda6 應顯示 Allocated PE 0, Free PE 50
# /dev/sda7 Allocated PE 增加 50

7. 從卷組移除 PV

vgreduce liuhg_disk /dev/sda6
# 輸出:Removed "/dev/sda6" from volume group "liuhg_disk"

8. 移除 PV 標籤 (可選,徹底清理)

pvremove /dev/sda6
# 輸出:Labels on physical volume "/dev/sda6" successfully wiped

9. 重新掛載並驗證

mount /home
df -h /home
# 確認容量為 2.2G 左右,資料完整

進階:線上遷移 (不停機) - 僅限擴充/遷移 PV,不支援縮減 LV

若只需將資料從舊硬碟遷移到新硬碟 (擴充 VG),可線上操作:

# 1. 新硬碟建立 PV、加入 VG
pvcreate /dev/sdb1
vgextend liuhg_disk /dev/sdb1

# 2. 線上遷移
pvmove /dev/sda6 /dev/sdb1

# 3. 移除舊 PV
vgreduce liuhg_disk /dev/sda6
pvremove /dev/sda6

關鍵差異: 線上遷移不涉及 umount、resize2fs、lvreduce,LV 大小不變,業務零中斷。

常見錯誤與對策

錯誤原因對策
resize2fs: Bad magic number非 ext4 檔案系統 (如 xfs)xfs 不支援縮減,需備份重建
lvreduce: Insufficient free space目標 LV 大小小於檔案系統實際使用量先 resize2fs 縮減檔案系統
pvmove: Insufficient free extents目標 PV 空閒 PE 不足加入更大 PV 或清理目標 PV 空間
vgreduce: Physical volume still in usePV 上仍有 PE 配置確認 pvmove 完成,pvdisplay -m 驗證

XFS 檔案系統特殊處理

XFS 不支援縮減,移除 PV 流程變為:

  1. 新增大容量 PV 到 VG
  2. pvmove 遷移舊 PV 資料
  3. vgreduce 移除舊 PV
  4. LV 大小不變,總容量增加

若必須縮減總容量:備份資料 → 刪除 LV/PV/VG → 重建較小 LV → 還原資料。

嚴格遵循「卸載 → 檢查 → 縮減 FS → 縮減 LV → 遷移 PV → 移除 PV」順序,配合完整備份,即可安全完成 LVM 物理卷移除操作。

Copyright © Windows教程網 All Rights Reserved