如何缩小 Proxmox 4 上 LXC 容器的磁盘?

如何缩小 Proxmox 4 上 LXC 容器的磁盘?

我想缩小 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 不喜欢这样!

  1. 停止容器
  2. 编辑 /etc/pve/lxc/XXX.conf
  3. 将挂载点的磁盘大小更改为其他大小(Proxmox 将在步骤 5 中使用它来创建实际卷)
  4. 备份你的 LXC
  5. 恢复你的 LXC

相关内容