我想缩小 Proxmox VE 4.2 上 LXC 容器的主磁盘,例如从 30GB 缩小到 20GB。缩小似乎还不受支持:
$ pct resize <VMID> rootfs 20G
unable to shrink disk size
关于如何实现这一点有什么想法吗?
答案1
您可能已经明白了,但这似乎是 LXC 容器的一个限制,至少目前如此。摘自 pct 手册页:
<size> \+?\d+(\.\d+)?[KMGT]?
The new size. With the + sign the value is added to the actual size of the volume and without it,
the value is taken as an absolute one. Shrinking disk size is not supported.
如果你真的想缩小一个容器,我想你必须执行备份,然后使用选项恢复它--rootfs local:<newsize>
,如下所示:
pct stop <id>
vzdump <id> -storage local -compress lzo
pct destroy <id>
pct restore <id> /var/lib/lxc/vzdump-lxc-<id>-....tar.lzo --rootfs local:<newsize>
当然,您无法在线执行这种调整大小的操作,因此我不会称其为一个很好的解决方案,但如果您别无选择,它还是可行的。
祝你好运,
答案2
现在这变得容易多了,无需备份和恢复即可完成。
root@pve:~# lvdisplay | grep "LV Path\|LV Size"
LV Path /dev/pve/swap
LV Size 8.00 GiB
LV Path /dev/pve/root
LV Size 96.00 GiB
LV Size 1.67 TiB
LV Path /dev/pve/vm-100-disk-0
LV Size 40.00 GiB
LV Path /dev/pve/vm-101-disk-0
LV Size 8.00 GiB
LV Path /dev/pve/vm-103-disk-0
LV Size 508.00 GiB
LV Path /dev/pve/vm-104-disk-0
LV Size 8.00 GiB
LV Path /dev/pve/vm-105-disk-0
LV Size 1000.00 GiB
LV Path /dev/pve/snap_vm-105-disk-0_vzdump
LV Size 500.00 GiB
root@pve:~# e2fsck -fy /dev/pve/vm-103-disk-0
e2fsck 1.46.5 (30-Dec-2021)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/pve/vm-103-disk-0: 59084/33292288 files (0.6% non-contiguous), 3465123/133169152 blocks
root@pve:~# resize2fs /dev/pve/vm-103-disk-0 20G
resize2fs 1.46.5 (30-Dec-2021)
Resizing the filesystem on /dev/pve/vm-103-disk-0 to 5242880 (4k) blocks.
The filesystem on /dev/pve/vm-103-disk-0 is now 5242880 (4k) blocks long.
root@pve:~# lvreduce -L 20G /dev/pve/vm-103-disk-0
WARNING: Reducing active logical volume to 20.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce pve/vm-103-disk-0? [y/n]: y
Size of logical volume pve/vm-103-disk-0 changed from 508.00 GiB (130048 extents) to 20.00 GiB (5120 extents).
Logical volume pve/vm-103-disk-0 successfully resized.
然后只需更新 LXC 配置文件来反映新的大小。
答案3
由于我也多次被困在这个地方并且@ThisGuy 的解决方案不起作用,所以我使用了另一种方法。
警告:如果你搞砸了,你创建的卷可能会溢出!LXC 不喜欢这样!
- 停止容器
- 编辑 /etc/pve/lxc/XXX.conf
- 将挂载点的磁盘大小更改为其他大小(Proxmox 将在步骤 5 中使用它来创建实际卷)
- 备份你的 LXC
- 恢复你的 LXC