Mar*_*náš 2 filesystems lvm thin-provisioning proxmox
在 Proxmox 中,我们使用 LVM 为 VM 创建磁盘(逻辑卷)(LVM 精简配置)。
最近我们发现我们的卷组几乎已满,即使所有虚拟机磁盘几乎都是空的。
问题是,某些 LVM 分区显示的映射大小比 df 报告的 VM 磁盘上存储的数据的实际大小大得多。
例如,我们有具有 100 GB 逻辑卷的 VM。VM 内的磁盘使用情况显示仅使用了 3.2 GB 空间:
#> df
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/pve-vm--3011--disk--1 99G 3.2G 91G 4% /
...
Run Code Online (Sandbox Code Playgroud)
但主机上的逻辑卷显示它使用 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
...
Run Code Online (Sandbox Code Playgroud)
因此,实际上使用的空间比实际需要的空间多了十倍以上。
知道原因是什么吗?我怀疑 LVM 会保留分配 VM 中文件系统曾经触及的所有范围。有什么办法可以防止这种情况或收回未使用的空间吗?
弄清楚了。你必须使用fstrim
.
我能够通过在虚拟机内运行以下命令来回收未使用的空间:
fstrim -v /
Run Code Online (Sandbox Code Playgroud)
基于使用 fstrim 增加精简池 LV 中的可用空间部分中描述的解决方案:http://man7.org/linux/man-pages/man7/lvmthin.7.html