Назад | Перейти на главную страницу

LVM: отображаемый размер логических томов намного больше, чем используемое файловой системой дисковое пространство

В Proxmox мы используем LVM для создания дисков (логических томов) для наших виртуальных машин (тонкое предоставление LVM).

Недавно мы обнаружили, что наша группа томов почти заполнена, даже когда все диски виртуальных машин почти пусты.

Проблема в том, что некоторые разделы LVM показывают гораздо больший отображаемый размер, чем реальный размер данных, хранящихся на диске виртуальной машины, как сообщает df.

Например, у нас есть ВМ с логическим томом 100 ГБ. Использование диска внутри виртуальной машины показывает, что используется только 3,2 ГБ:

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

но логический том на хосте показывает, что он использует 39,8 ГБ:

  #> 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 сохраняет выделенные все экстенты, когда-либо задействованные файловой системой в виртуальной машине. Есть ли способ предотвратить это или вернуть неиспользованное пространство?

Догадаться. Вы должны использовать fstrim.

Я смог освободить неиспользуемое пространство, запустив это внутри виртуальной машины:

    fstrim -v /

На основе решения, описанного в разделе Использование fstrim для увеличения свободного места в LV тонкого пула Вот: http://man7.org/linux/man-pages/man7/lvmthin.7.html