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