四时宝库

程序员的知识宝库

PVE local-lvm空间将满,虚机硬盘无法缩容怎么办?

这是一次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要作好磁盘空间规划,虚机空间能扩容但难以缩容,故需先分小容量,按需扩容。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接