Partition
如何減少 LVM 中的捲組大小?
[root@localhost ~] vgdisplay --- Volume group --- VG Name vg_root System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 7 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 297,59 GiB PE Size 4,00 MiB Total PE 76182 Alloc PE / Size 59392 / 232,00 GiB Free PE / Size 16790 / 65,59 GiB VG UUID XXXXXXXXXX
光伏:
[root@localhost ~] pvdisplay --- Physical volume --- PV Name /dev/mapper/udisks-luks-uuid-ASDFASDF VG Name vg_root PV Size 297,59 GiB / not usable 2,00 MiB Allocatable yes PE Size 4,00 MiB Total PE 76182 Free PE 16790 Allocated PE 59392 PV UUID YYYYYYYYYYY
所以我有一個 65 GB 可用空間的 VG。但是當我想將此卷組縮小約 50 GB 時:
pvresize -tv --setphysicalvolumesize 247G /dev/mapper/udisks-luks-uuid-ASDFASDF Test mode: Metadata will NOT be updated and volumes will not be (de)activated. Using physical volume(s) on command line Test mode: Skipping archiving of volume group. /dev/mapper/udisks-luks-uuid-ASDFASDF: Pretending size is 517996544 not 624087040 sectors. Resizing volume "/dev/mapper/udisks-luks-uuid-ASDFASDF" to 624087040 sectors. Resizing physical volume /dev/mapper/udisks-luks-uuid-ASDFASDF from 0 to 63231 extents. /dev/mapper/udisks-luks-uuid-ASDFASDF: cannot resize to 63231 extents as later ones are allocated. 0 physical volume(s) resized / 1 physical volume(s) not resized Test mode: Wiping internal cache Wiping internal VG cache
所以錯誤資訊是:
cannot resize to 63231 extents as later ones are allocated.
**問:**如何對 vg_root 進行碎片整理,以便刪除不需要的部分?
ps:我已經發現我只需要調整PV的大小來調整VG的大小,或者有沒有更好的命令來調整VG的大小(例如:如果我在一個PV上有幾個VG該怎麼辦?… )?
您可以使用
pvmove
將這些範圍移動到設備或其他設備的開頭:sudo pvmove --alloc anywhere /dev/device:60000-76182
然後
pvmove
選擇將範圍移動到的位置,或者您可以指定將它們移動到的位置。查看
pvs -v --segments /dev/device
目前分配的範圍。
以下是調整 LVM 或 LVM2 分區大小所需的步驟:
sudo lvresize --verbose --resizefs -L -150G /dev/ubuntu/root sudo pvresize --setphysicalvolumesize {any size here} /dev/sda5
最後一個命令 ,
pvresize
可能會產生錯誤/dev/sda5: cannot resize to xxxxx extents as later ones are allocated.
您必須重新排列 LVM 末尾的未分配空間。這意味著在 root 和 swap_1 分區之後。可以用這個命令查看目前空間的排列
pvs -v --segments /dev/sda5
pvs
將顯示這樣的輸出/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx+1 root 0 linear /dev/sda:0-xxx /dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx+1 iii 0 free /dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyyy jjj swap 0 linear /dev/sda5:yyyy-end
現在用於
pvmove
去除外部碎片:sudo pvmove --alloc anywhere /dev/sda5:yyyy-end
現在讓我們看看移動交換卷是否成功。
pvs -v --segments /dev/sda5
應該顯示新的捲順序:
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx+1 root 0 linear /dev/sda:0-xxx /dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx+1 iii swap 0 linear /dev/sda5:xxx+1-yyyy /dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyyy+1 end 0 free
之後,使用 GParted 並將 LVM 調整為最大使用區域。其餘的將在未分配的空間中。