Диски VM на ZFS-хранилище в Proxmox VE — это не файлы на файловой системе, а отдельные ZFS-тома (zvol), каждый подключается гостю как блочное устройство. Контейнеры хранятся иначе — через subvol, обычный датасет. Подключается пул как хранилище через /etc/pve/storage.cfg:

zfspool: vmdata
    pool tank/vmdata
    content rootdir,images
    sparse

Опция sparse — это и есть thin-provisioning: резервирование места под том не равно его номинальному размеру. Создал диск на 100 ГБ — тонкий том займёт ровно столько, сколько гость реально записал.

Выигрыш всплывает при бэкапах. vzdump в режиме snapshot опирается на снапшот-возможности самого хранилища — на ZFS это штатный zfs snapshot, создающийся за миллисекунды без копирования блоков. На LVM-thin или qcow2 тот же режим либо недоступен, либо требует CoW-оверлея, который растёт и давит на I/O гостя всё время бэкапа. С ZFS VM на мгновение приостанавливается только ради консистентности, а архив собирается уже с замороженного состояния.

Минус один: thin-provisioning не отменяет контроль свободного места в пуле. Заполнится tank под завязку — гости начнут получать IO-ошибки, сколько бы места ни показывал zfs list для конкретного тома. zpool list стоит проверять так же регулярно, как место на обычных дисках.

#proxmox #zfs