解决PVE存储占用异常的问题
环境

背景
自己pve安装了ubuntu,硬盘分了256G,做一些计算和测试用。后面空间快满了,就大幅度清理了将近200G,ubuntu中显示占用硬盘30多G,但是发现PVE中存储空间还是占满的。

网上查了一下,原因是虚拟机中的系统删除文件,并不是真的删除了,而是做一个标记(类似软删除),此时文件其实还在,后面才会在底层清理(trim)。对于pve而言,它不知道虚拟机用的文件系统,也就更不会去清理了,所以会显示虚拟机中占用几十G,pve中上百G。
此外这个现象还会导致另一个比较严重的问题,那就是pve的备份。pve会将虚拟机中软删的数据也会一起备份,也就是本来你虚拟机就20G占用,但是pve备份还是将删除的文件也备份在内了,非常累浪费备份空间。
解决
1.修改硬盘配置
关闭虚拟机,在pve虚拟机的“硬件-硬盘”里开启SSD仿真、丢弃两个选项(丢弃是翻译过来的,其实本意是Trim,也就是ssd的块擦除)

开启虚拟机,进入ubuntu,输入指令启动ssd块清理
sudo fstrim -av
等待执行完就可以了,此后pve的占用就正常了
备注
此方法仅在当前环境成功,理论上linux都可以,操作前请注意风险,关键数据提前做好备份
