web-dev-qa-db-ja.com

LVM:論理ボリュームは、ファイルシステムがディスクスペースを使用するよりもはるかに大きいサイズでマップされます

Proxmoxでは、LVMを使用してVM(LVMシンプロビジョニング)のディスク(論理ボリューム)を作成します。

最近、すべてのVMディスクがほとんど空の場合でも、ボリュームグループがほぼいっぱいになっていることがわかりました。

問題は、一部のLVMパーティションは、dfによって報告されたVMディスクに保存されているデータの実際のサイズよりもはるかに大きなマップサイズを示すことです.

たとえば、100GBの論理ボリュームを持つVMがあります。VM内のディスク使用量は、3.2GBのスペースのみが使用されていることを示しています。

#> df
Filesystem                         Size  Used Avail Use% Mounted on
/dev/mapper/pve-vm--3011--disk--1   99G  3.2G   91G   4% /
...

しかし、ホスト上の論理ボリュームは、39.8GBを使用していることを示しています。

  #> 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
  ...

したがって、実際には、実際に必要なスペースの10倍以上のスペースが使用されます。

理由は何ですか? LVMは、VM内のファイルシステムがこれまでに触れたすべてのエクステントを割り当て続けていると思います。これを防ぐ方法、または未使用のスペースを取り戻す方法はありますか?

理解した。 fstrimを使用する必要があります。

これをVM内で実行することで、未使用のスペースを再利用できました。

    fstrim -v /

セクションで説明されているソリューションに基づいて、fstrimを使用してシンプールLVの空き領域を増やします: http://man7.org/linux /man-pages/man7/lvmthin.7.html