導讀
如果你的 LVM 不再需要使用某個裝置,你可以使用 vgreduce 指令從卷組中删除實體卷。
vgreduce 指令可以通過删除實體卷來縮小卷組的容量。但要確定該實體卷沒有被任何邏輯卷使用,請使用 pvdisplay 指令檢視。如果實體卷仍在使用,你必須使用 pvmove 指令将資料轉移到另一個實體卷。

資料轉移後,它就可以從卷組中删除。最後使用 pvremove 指令删除空實體卷上的 LVM 标簽和 LVM 中繼資料。
第一部分:如何在 Linux 中建立/配置 LVM(邏輯卷管理)
第二部分:如何在 Linux 中擴充/增加 LVM(邏輯卷調整)
第三部分:如何在 Linux 中減少/縮小 LVM 大小(邏輯卷調整)
将擴充塊移動到現有實體卷上
使用 pvs 指令檢查是否使用了所需的實體卷(我們計劃删除 LVM 中的 /dev/sdc 磁盤)。
# pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used
/dev/sda myvg lvm2 a- 75.00G 14.00G 61.00G
/dev/sdb myvg lvm2 a- 50.00G 45.00G 5.00G
/dev/sdc myvg lvm2 a- 17.15G 12.15G 5.00G
如果使用了,請檢查卷組中的其他實體卷是否有足夠的空閑擴充塊extent。
如果有的話,你可以在需要删除的裝置上運作 pvmove 指令。擴充塊将被配置設定到其他裝置上。
# pvmove /dev/sdc
/dev/sdc: Moved: 2.0%
…
/dev/sdc: Moved: 79.2%
…
/dev/sdc: Moved: 100.0%
當 pvmove 指令完成後。再次使用 pvs 指令檢查實體卷是否有空閑。
# pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used
/dev/sda myvg lvm2 a- 75.00G 1.85G 73.15G
/dev/sdb myvg lvm2 a- 50.00G 45.00G 5.00G
/dev/sdc myvg lvm2 a- 17.15G 17.15G 0
如果它是空閑的,使用 vgreduce 指令從卷組中删除實體卷 /dev/sdc。
# vgreduce myvg /dev/sdc
Removed "/dev/sdc" from volume group "vg01"
最後,運作 pvremove 指令從 LVM 配置中删除磁盤。現在,磁盤已經完全從 LVM 中移除,可以用于其他用途。
# pvremove /dev/sdc
Labels on physical volume "/dev/sdc" successfully wiped.
移動擴充塊到新磁盤
如果你在卷組中的其他實體卷上沒有足夠的可用擴充。使用以下步驟添加新的實體卷。
向存儲組申請新的 LUN。配置設定完畢後,運作以下指令來在 Linux 中發現新添加的 LUN 或磁盤。
# ls /sys/class/scsi_host
host0
# echo "- - -" > /sys/class/scsi_host/host0/scan
# fdisk -l
作業系統中檢測到磁盤後,使用 pvcreate 指令建立實體卷。
# pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created
使用以下指令将新的實體卷 /dev/sdd 添加到現有卷組 vg01 中。
# vgextend vg01 /dev/sdd
Volume group "vg01" successfully extended
現在,使用 pvs 指令檢視你添加的新磁盤 /dev/sdd。
# pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used
/dev/sda myvg lvm2 a- 75.00G 14.00G 61.00G
/dev/sdb myvg lvm2 a- 50.00G 45.00G 5.00G
/dev/sdc myvg lvm2 a- 17.15G 12.15G 5.00G
/dev/sdd myvg lvm2 a- 60.00G 60.00G 0
使用 pvmove 指令将資料從 /dev/sdc 移動到 /dev/sdd。
# pvmove /dev/sdc /dev/sdd
/dev/sdc: Moved: 10.0%
…
/dev/sdc: Moved: 79.7%
…
/dev/sdc: Moved: 100.0%
資料移動到新磁盤後。再次使用 pvs 指令檢查實體卷是否空閑。
# pvs -o+pv_used
PV VG Fmt Attr PSize PFree Used
/dev/sda myvg lvm2 a- 75.00G 14.00G 61.00G
/dev/sdb myvg lvm2 a- 50.00G 45.00G 5.00G
/dev/sdc myvg lvm2 a- 17.15G 17.15G 0
/dev/sdd myvg lvm2 a- 60.00G 47.85G 12.15G
如果空閑,使用 vgreduce 指令從卷組中删除實體卷 /dev/sdc。
# vgreduce myvg /dev/sdc
Removed "/dev/sdc" from volume group "vg01"
最後,運作 pvremove 指令從 LVM 配置中删除磁盤。現在,磁盤已經完全從 LVM 中移除,可以用于其他用途。
# pvremove /dev/sdc
Labels on physical volume "/dev/sdc" successfully wiped.