Skip to main content

Пропадает место на zfs

Проблема: в хранилище на zfs ProxMox осталось мало места, хотя суммарно все диски виртуальных машин меньше того, что отображается в интерфейсе.

Это свойство zfs, она заранее резервирует дополнительное место.

Посмотреть можно командой:

[root@hv1 ~]# zfs list -o space
NAME                     AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
zdata/vm-130-disk-1      9.55T  3.99T      607M   1.80T          2.18T         0B

Расшифровка колонок:
    NAME — имя пула (dataset или zvol).
    AVAIL — доступный объём свободного пространства в пуле, которое можно использовать (примерно, без учёта резерва).
    USED — общее пространство, занимаемое dataset’ом или томом (включая данные, снэпшоты, метаданные и т.п.).
    USEDSNAP — объём, занимаемый снэпшотами, относящимися к этому dataset’у или тому.
    USEDDS — пространство, которое занимает сам dataset (данные без учёта снэпшотов).
    USEDREFRESERV — пространство, занятое «зарезервированным» объёмом, выделенным специально для этого dataset’а (например, через параметр refreservation).
    USEDCHILD — объём, занимаемый dataset’ами-потомками (например, вложенными файловыми системами или zvol’ами) внутри данного dataset’а.

Видно, что при реальном размере диска в 1.8 ТБ, общий занимаемый объем - 4 ТБ. 
Из него 670 МБ - снапшоты и 2.18 ТБ - резерв

Уменьшить резерв в данном случае до 100 ГБ можно командой:



zfs set refreservation=100G zdata/vm-130-disk-1

Проверить:




Оптимальное значение USEDREFRESERV — это либо 0, чтобы экономить место, либо размер логического тома, если нужна жёсткая гарантия места.