在Proxmox中,我们使用LVM为我们的虚拟机(LVM精简configuration)创build光盘(逻辑卷)。
最近我们发现,即使所有的虚拟机光盘几乎都是空的,我们的卷组也快满了。
问题在于,一些LVM分区显示了大得多的映射大小,即df所报告的存储在VM磁盘上的实际大小的数据。
例如,我们有100 GB逻辑卷的虚拟机。 虚拟机内的光盘使用情况仅显示3.2 GB的空间:
#> df Filesystem Size Used Avail Use% Mounted on /dev/mapper/pve-vm--3011--disk--1 99G 3.2G 91G 4% / ...
但主机上的逻辑卷显示它使用39.8 GB:
#> lvdisplay --- Logical volume --- LV Path /dev/pve/vm-3011-disk-1 LV Name vm-3011-disk-1 VG Name pve LV UUID oleKd5-O2o4-c4CE-5vzn-bXRC-TXwF-lzApmW LV Write Access read/write LV Creation host, time carol, 2016-08-16 09:03:54 +0200 LV Pool name vm-hdd LV Status available # open 1 LV Size 100.00 GiB Mapped size 39.83% Current LE 25600 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 251:28 ...
所以实际上使用的空间比真正需要的多十倍以上。
任何想法是什么原因? 我怀疑LVM是否保留了VM中文件系统所触及的所有扩展。 有什么办法可以防止这种情况发生,或者说有没有使用空间?
弄清楚了。 你必须使用fstrim 。
通过在VM内部运行,我能够回收未使用的空间:
fstrim -v /
基于使用fstrim增加精简池LV中的可用空间一节中介绍的解决scheme: http : //man7.org/linux/man-pages/man7/lvmthin.7.html