这是一次PVE折腾的记录,可以学习了解PVE和虚机的存储方式、备份与还原。
某天早上忽然发现几个虚机没反应,报io-error:
发现是磁盘空间满了,通过删除一个不开机的虚机来腾出空间,临时解决了一下。
随着数据不断写入,256GB的PVE磁盘空间捉襟见肘,就想给100-DSM缩容,因为有直通硬盘,最初给它分配100G能缩容50G以上。
当然,没把握的操作前,都需要先做备份,我把备份放到了NFS大容量空间上了。
先找个小一点儿的虚机做测试,就选35G的101-win7了。
1、PVE UI上不能缩容,
命令行qm disk resize也不支持缩容,这有点危险气息。
2、尝试lvreduce
第一次直接从35G缩为28G:
lvreduce -L 28G /dev/pve/vm-101-disk-0
完蛋,没法启动,没有引导程序了。
第二次先进Windows,将磁盘分区缩容了5.2G,然后在PVE缩容5G:
lvreduce -L 30G /dev/pve/vm-101-disk-0
想想么截取掉后面没数据的5G应该OK的,谁知还是无法启动。
lvreduce会破坏现有数据,网友诚不欺我![捂脸]
又测试先把虚机硬盘改为28G,还原后依然是35G。
3、扩容LVM-Thin
既然缩不了虚机,换个思路,看看能否扩容LVM-Thin吧。
通过vgdisplay pve | grep Free查看剩余16G。先试下操作,扩容前:
执行lvextend -L +2G /dev/pve/data,
扩容2G成功:
但是16G也是杯水车薪啊,再找找其它方法。
4、移动映像到local
看看local空着的60G+,能利用一下,可以把35G的虚机映像迁移过来。
①在数据中心→存储→local添加“磁盘映像”:
②再到虚机硬件中移动存储到local:
③迁移过程我都没关虚机,勾选了删除源,迁移后硬盘的前缀由local-lvm变为local:
刷新UI后local-lvm占用变小了:
140-119=21G,为什么不是35G+?遗留一个问题,知晓的朋友请指点。
5、合并local和local-lvm
还有一个办法是合并local和local-lvm,相当于2个小水池打通为1个稍大一点儿的水池,能更加充分利用剩余空间。这与移动镜像的效果是差不多的。
结论:
PVE存储满,可以删除虚机、移动镜像、合并存储、重装虚机等,但都是亡羊补牢的小打小闹,根本方法还是得扩容硬盘,后悔当时只买256G了,等差不多满了考虑用960G的替换。
后续安装PVE要作好磁盘空间规划,虚机空间能扩容但难以缩容,故需先分小容量,按需扩容。