ZFS ou LVM-thin no Proxmox: o que muda e como ver o seu
Não sabia se meu Proxmox usa ZFS ou LVM-thin. Como descobrir com pvesm status, o que cada um oferece, quanto de RAM o ZFS pede e quando vale trocar.
- Publicado
- Leitura
- 5 min
- Testado em
- Proxmox VE 9.2
Uma confissão: não sei se o SSD do meu Proxmox está em ZFS ou em LVM-thin. Instalei faz tempo, funciona, e nunca precisei saber. Até começar a planejar o cluster com dois nós, quando descobri que a replicação entre nós do Proxmox só funciona com ZFS.
Então fui atrás de entender a diferença de verdade e como descobrir o que cada instalação usa. Este post junta as duas coisas, com o que diz a documentação oficial do Proxmox.
Como descobrir o que você usa #
Comece por aqui, porque leva um minuto. No shell do host Proxmox:
pvesm status
O comando lista os storages, com o tipo de cada um. Na instalação padrão aparecem dois:
local, do tipodir, que guarda ISOs, templates e backups em/var/lib/vz;- o storage dos discos dos containers e VMs, que é
local-lvm(tipolvmthin) oulocal-zfs(tipozfspool).
Para ver a configuração completa:
cat /etc/pve/storage.cfg
Numa instalação com LVM, a documentação mostra este trecho:
lvmthin: local-lvm
thinpool data
vgname pve
content rootdir,images
E numa instalação com ZFS:
zfspool: local-zfs
pool rpool/data
sparse
content images,rootdir
Se aparecer lvmthin, é LVM-thin. Se aparecer zfspool, é ZFS. Na interface web, a mesma informação está em Datacenter > Storage.
Por que a maioria cai no LVM-thin #
O instalador do Proxmox usa ext4 por padrão. Escolhendo ext4 ou xfs, ele monta o disco com LVM: um grupo de volumes pve, com um volume para o sistema (root), um para swap e um pool data, que vira o local-lvm. O ZFS só entra se você escolher na hora da instalação.
Ou seja, quem clicou em “próximo” sem mexer no sistema de arquivos está com LVM-thin. É o meu palpite para o meu caso, mas vou conferir antes de afirmar.
O que é LVM-thin #
LVM-thin é thin provisioning: o disco de um container pode ser declarado maior do que o espaço que existe de verdade, porque o espaço só é ocupado quando os dados são gravados.
O que ele oferece, pela documentação:
- snapshots e clones eficientes;
- pouco uso de memória: não há cache próprio disputando RAM com os containers;
- simplicidade: não há nada para ajustar.
O que ele não oferece:
- checagem de integridade dos dados (detectar corrupção silenciosa);
- compressão nem replicação entre nós.
O que é ZFS #
ZFS é sistema de arquivos e gerenciador de volumes ao mesmo tempo. A lista de recursos é longa; os que mais importam num homelab:
- checksums em tudo: detecta corrupção silenciosa e, com redundância, corrige sozinho;
- snapshots baratos e rápidos;
- compressão transparente;
- RAID por software (espelho, RAID-Z) sem controladora;
- replicação entre nós do Proxmox, que exige ZFS local.
O custo é memória. A documentação do Proxmox diz que o ZFS depende muito de RAM e pede pelo menos 8 GB para começar, com a regra de 2 GiB de base mais 1 GiB por TiB de armazenamento.
O cache do ZFS (o ARC) usa memória do host. Desde o Proxmox VE 8.1, o instalador limita o ARC a 10% da memória, até 16 GiB, gravando isso em /etc/modprobe.d/zfs.conf. Para mudar o limite de forma permanente, a documentação mostra:
# /etc/modprobe.d/zfs.conf: limite de 8 GiB
options zfs zfs_arc_max=8589934592
Se a raiz do sistema estiver em ZFS, rode update-initramfs -u -k all depois e reinicie.
Lado a lado #
| LVM-thin | ZFS | |
|---|---|---|
| Padrão do instalador | Sim (com ext4 ou xfs) | Não, precisa escolher |
| Snapshots | Sim | Sim |
| Checagem de integridade | Não | Sim |
| Compressão | Não | Sim |
| Replicação entre nós | Não | Sim |
| RAID por software | Não (seria outro nível) | Sim |
| Uso de memória | Baixo | Alto (ARC) |
| Complexidade | Baixa | Maior |
Qual eu escolheria #
Para um nó, um disco e pouca memória, LVM-thin resolve bem. Um disco só não aproveita a redundância do ZFS, e a memória fica livre para os containers.
Para cluster com replicação, vários discos ou dados que precisam de integridade, ZFS é o caminho. A replicação do Proxmox só existe para ZFS local.
No meu caso, o ThinkCentre tem 24 GB de RAM, como contei no post sobre o M720q no homelab. Com o limite padrão de 10%, o ARC ficaria em cerca de 2,4 GB, o que cabe. O que me faz pensar em ZFS é o cluster: sem ele, não há replicação.
Trocar depois não é simples #
Não existe botão para converter um storage de LVM-thin para ZFS no mesmo disco. O caminho usual é:
- fazer backup de todos os containers e VMs;
- reinstalar o Proxmox escolhendo ZFS, ou criar o ZFS num disco novo;
- restaurar os backups no storage novo.
Num nó novo é bem mais fácil: basta escolher ZFS na instalação. É uma decisão para tomar antes de comprar a segunda máquina.
Resumindo #
- Descubra o seu com
pvesm status:lvmthinouzfspool. - LVM-thin é o padrão: simples, leve, com snapshots. Acompanhe o uso do pool.
- ZFS traz integridade, compressão e replicação, mas pede memória e cuidado com o hardware.
- Um nó e um disco: LVM-thin basta. Cluster com replicação: ZFS.
- Trocar depois é backup, reinstalação e restauração.
Na próxima vez que eu abrir o shell do Proxmox, o primeiro comando vai ser o pvesm status.