我有一个VM
跑步Centos8
。我想在根分区上创建快照。
我的磁盘有100GB,最初没有分区,这不利于创建分区快照。
之后我重新安装CentOs
,但将磁盘分区为几个分区,最终看起来像这样 -
[root@my-system ~]# lsblk -a
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1.9G 0 part /boot
└─sda2 8:2 0 58.2G 0 part
├─PV--LVM-root 253:0 0 28G 0 lvm /
├─PV--LVM-swap 253:1 0 4.2G 0 lvm [SWAP]
├─PV--LVM-home 253:2 0 23.3G 0 lvm /home
└─PV--LVM-TMP 253:3 0 2.8G 0 lvm /TMP
sr0 11:0 1 1024M 0 rom
大约 39 GB 的磁盘空间未分配。
命令vgs
产生以下结果 -
[root@my-system ~]# vgs
VG #PV #LV #SN Attr VSize VFree
PV-LVM 1 4 0 wz--n- <58.22g 4.00m
lvs
下列 -
[root@my-system ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
TMP PV-LVM -wi-ao---- <2.80g
home PV-LVM -wi-ao---- <23.29g
root PV-LVM -wi-ao---- 27.94g
swap PV-LVM -wi-ao---- 4.19g
和“vgdisplay”以下内容 -
[root@my-system ~]# vgdisplay
--- Volume group ---
VG Name PV-LVM
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 4
Open LV 4
Max PV 0
Cur PV 1
Act PV 1
VG Size <58.22 GiB
PE Size 4.00 MiB
Total PE 14904
Alloc PE / Size 14903 / 58.21 GiB
**Free PE / Size 1 / 4.00 MiB**
VG UUID RnIMct-UZXY-F5Tc-maC3-1of5-tFmZ-cLZFH8
由于某种原因,坚决Free PE / Size
保持在 1 / 400MiB
我想如果我扩展这个问题可能会被消除lvm
,所以我使用了一个指南,https://www.rootusers.com/how-to-increase-the-size-of-a-linux-lvm-by-expanding-the-virtual-machine-disk/并扩展了/dev/mapper/PV--LVM-root
39 GB,变成了 67 GB,带有sda3
.
[root@my-system ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1.9G 0 part /boot
├─sda2 8:2 0 58.2G 0 part
│ ├─PV--LVM-root 253:0 0 67.9G 0 lvm /
│ ├─PV--LVM-swap 253:1 0 4.2G 0 lvm [SWAP]
│ ├─PV--LVM-home 253:2 0 23.3G 0 lvm /home
│ └─PV--LVM-TMP 253:3 0 2.8G 0 lvm /TMP
└─sda3 8:3 0 39.9G 0 part
└─PV--LVM-root 253:0 0 67.9G 0 lvm /
sr0 11:0 1 1024M 0 rom
注意PV--LVM-root
insda2
和sda3
。
不幸的是,lvcreate
仍然失败。
[root@my-system ~]# lvcreate -s PV-LVM/root -n root_snapshot_22042020 -L 16G
Volume group "PV-LVM" has insufficient free space (1 extents): 4096 required.
[root@my-system ~]# vgdisplay
--- Volume group ---
VG Name PV-LVM
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 4
Open LV 4
Max PV 0
Cur PV 2
Act PV 2
VG Size <98.13 GiB
PE Size 4.00 MiB
Total PE 25121
Alloc PE / Size 25120 / 98.12 GiB
Free PE / Size 1 / 4.00 MiB
VG UUID RnIMct-UZXY-F5Tc-maC3-1of5-tFmZ-cLZFH8
我以-
[root@my-system ~]# resize2fs /dev/mapper/PV--LVM-root
resize2fs 1.44.3 (10-July-2018)
Filesystem at /dev/mapper/PV--LVM-root is mounted on /; on-line resizing required
old_desc_blocks = 4, new_desc_blocks = 9
The filesystem on /dev/mapper/PV--LVM-root is now 17786880 (4k) blocks long.
不知道现在该怎么办。我对 Linux 或磁盘分区的研究不多。所有磁盘都是ext4
文件系统...出于某种原因,即使我“增加”了 root lvm
,但似乎仍然没有。
答案1
您成功扩展了 LVM 卷组(即指南中的步骤,直至并包括该vgextend
命令),但随后您还通过扩展逻辑卷来用尽新空间LVM-root
,从而用尽新空间。
您应该在该vgextend
步骤之后停止,然后您的卷组中就会有空闲的 PE,可用于 LVM 级别的快照。
不幸的是,您无法ext4
在线收缩文件系统,而且它是您的根文件系统,因此您不能直接卸载它,因此您需要从某些实时 Linux 启动介质启动,激活卷组 ( vgchange -ay
),然后使用以下命令收缩 LV 内的文件系统: :
resize2fs /dev/mapper/PV--LVM-root 29G
然后(也只有这样)你才能缩小 LV。如果您以 GB 为单位指定大小,则将 LV 的新大小指定为比文件系统缩小后的大小稍大一些会更安全,以避免由于舍入错误而切掉文件系统的尾部。
(此时,如果您愿意,可以重新启动到 CentOS。)
将 LV 缩小到 30G:
lvreduce -L 30G /dev/mapper/PV--LVM-root
要将文件系统的大小与 LV 的新大小完全匹配:
resize2fs /dev/mapper/PV--LVM-root
(如果这个命令稍微扩展了文件系统,那么您就知道您正确地执行了收缩步骤。)
此后,VG 中应该有大约 38G 可用空间,用于快照、LV 扩展和/或新 LV 的任意组合。