如何缩小 PVE 中 lxc 已分配硬盘的大小?
在 PVE 上面搭建 lxc 非常方便,资源的动态分配也很简单。比如 cpu、内存、硬盘等。cpu 和内存都支持动态增加或减少,但硬盘只能增加,不能减少,有时候不小心加得太多,那可没有后悔药可以吃了。
有一次为了中转个什么资料,给某个 lxc 扩容了 500G,后面 PVE 自己空间也不太够了,想回收一些,没找到太好的办法。如是在网上搜了一番,确实有人操作过,还挺麻烦的。如下:
#先关闭 lxc,然后进入 PVE 的 Shell,装个工具: apt install guestfs-tools #进入要收缩的 lxc 目录: cd /var/lib/vz/images/100 #看一下硬盘情况: virt-df -h vm-100-disk-0.raw #进行收缩: guestfish add vm-100-disk-0.raw run list-filesystem e2fsck-f /dev/sda resize2fs-size /dev/sda 10000M e2fsck-f /dev/sda quit #再看硬盘的情况: virt-df -h vm-100-disk-0.raw #收缩一下: qemu-img resize --shrink -f raw vm-100-disk-0.raw 10G #再看下情况: qemu-img info vm-100-disk-0.raw #改下 lxc 硬盘配置: vi /etc/pve/lxc/100.conf
找了个小的 lxc 测试了一下,才 15G 的硬盘,收缩花了好几十分钟。算了,有这时间,转移下数据再新加硬盘都够了。感觉没啥太大意义。不过这个过程可以记录下,后面如果真的有这样的场景,也可以试试……