Partition

減少lvm空間並創建新分區

  • October 18, 2021

我的目標是從 lvm 中釋放一些空間並創建新分區。下面是它上面的設備和lvm。

# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
vda             252:0    0   200G  0 disk
|-vda1          252:1    0   512M  0 part /boot
`-vda2          252:2    0 199.5G  0 part
 |-vg-lv_root  253:0    0  15.5G  0 lvm  /
 |-vg-lv_pwcfg 253:1    0  10.9G  0 lvm  /opt/pwcfg
 |-vg-lv_var   253:2    0  12.5G  0 lvm  /var/log
 |-vg-lv_pw    253:3    0 118.4G  0 lvm  /pw
 `-vg-lv_opt   253:4    0  42.2G  0 lvm  /opt

我想將vg-lv_pw設為 50 GB。我正在使用以下命令執行此操作:

# lvreduce --resizefs -L 50G /dev/vg/lv_pw
fsck from util-linux 2.23.2
mkfs_lv_pw: 11/7007616 files (0.0% non-contiguous), 445504/31039488 blocks
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/mapper/vg-lv_pw to 13107200 (4k) blocks.
The filesystem on /dev/mapper/vg-lv_pw is now 13107200 blocks long.

 Size of logical volume vg/lv_pw changed from <118.41 GiB (30312 extents) to 50.00 GiB (12800 extents).
 Logical volume vg/lv_pw successfully resized.

是的 lvm 大小設置為 50GB。

# lsblk
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
vda             252:0    0   200G  0 disk
|-vda1          252:1    0   512M  0 part /boot
`-vda2          252:2    0 199.5G  0 part
 |-vg-lv_root  253:0    0  15.5G  0 lvm  /
 |-vg-lv_pwcfg 253:1    0  10.9G  0 lvm  /opt/pwcfg
 |-vg-lv_var   253:2    0  12.5G  0 lvm  /var/log
 |-vg-lv_pw    253:3    0    50G  0 lvm
 `-vg-lv_opt   253:4    0  42.2G  0 lvm  /opt

現在我必須取出Pfree 68.41GB並從中創建新分區。

# pvs
 PV         VG Fmt  Attr PSize    PFree
 /dev/vda2  vg lvm2 a--  <199.50g <68.41g
# vgs
 VG #PV #LV #SN Attr   VSize    VFree
 vg   1   5   0 wz--n- <199.50g <68.41g

如何使用該可用空間並創建新分區vda3

首先,您需要減小物理卷的大小,使用pvresize

pvresize /dev/vda2 --setphysicalvolumesize 132g

這可確保所有數據和元數據最終都位於/dev/vda2. 我在這裡玩的是安全的大小。

然後你需要縮小/dev/vda2分區條目,使用fdisk或類似的工具——刪除分區條目並使用相同的起始扇區和適當的大小重新創建它(略大於 132GiB,276,824,064 個 512 字節的扇區,以保持安全)。這將允許您創建一個新分區。

最後,再次調整 PV 的大小,這次使用

pvresize /dev/vda2

以便它使用分區中的所有可用空間。

引用自:https://unix.stackexchange.com/questions/673643