LVM:逻辑卷映射大小远大于文件系统使用的磁盘空间

LVM:逻辑卷映射大小远大于文件系统使用的磁盘空间

在 Proxmox 中,我们使用 LVM 为我们的虚拟机创建磁盘(逻辑卷)(LVM 精简配置)。

最近我们发现,即使所有 VM 磁盘都几乎为空,我们的卷组也几乎已满。

问题是一些 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 中触及的所有扩展区的分配。有什么方法可以防止这种情况或收回未使用的空间吗?

答案1

明白了。你必须使用fstrim

我可以通过在 VM 内部运行以下命令来回收未使用的空间:

    fstrim -v /

根据章节中描述的解决方案使用 fstrim 增加精简池 LV 中的可用空间这里:http://man7.org/linux/man-pages/man7/lvmthin.7.html

相关内容