Proxmox Backup Server sobre LXC com Armazenamento NFS em TrueNAS

Se você acha que precisa de uma VM inteira só pra rodar backup, pare agora. Esse é o tipo de decisão que infla seu cluster sem necessidade.
Montar o Proxmox Backup Server (PBS) dentro de um contêiner LXC no Proxmox VE é uma das formas mais eficientes de aproveitar hardware existente sem desperdiçar recursos com overhead de virtualização. E se você delegar o armazenamento real para um Dataset do TrueNAS exposto via NFS, ganha o melhor dos dois mundos: computação leve no host + ZFS robusto no storage.
Neste artigo vamos do zero ao datastore funcionando: criar o Dataset no TrueNAS, configurar o share NFS, montar no host Proxmox, criar o LXC, passar o bind mount para dentro do container, instalar o PBS via script e finalmente criar o datastore apontando para o NFS.
Sem enrolação.
Criar o Dataset no TrueNAS
Na interface web do TrueNAS, vá em Datasets e crie um novo dentro do Pool desejado. Recomendações:
- Nome:
pbs-datastore(ou o que preferir) - Dataset Preset:
Multiprotocol - Create NFS Share: ✅ marcado
- Create SMB Share: ❌ desmarcado

Expanda as opções avançadas e configure:
- ACL Type:
SMB/NFSv4 - ACL Mode:
Passthrough

Permissões do Dataset
O PBS dentro do LXC escreve como backup:backup (UID/GID 34:34). Para que o NFS não rejeite as escrituras, precisamos alinhar as permissões.
Em Datasets → pbs-datastore → Permissions → Edit
Clique no botão Set ACL e cancele o diálogo de “Select a preset ACL”:

Em Access Control List, clique em + Add Item, selecione o usuário backup e aplique com Save Access Control List:

Ajustes no Share NFS
Em Shares → Unix Shares (NFS), selecione o share criado e edite. Vá em Advanced Options e configure:
- Mapall User:
backup - Mapall Group:
backup

Verifique se o serviço NFS está ativo em System Settings → Services e configurado para iniciar no boot. Se tiver firewall no TrueNAS, abra as portas NFS (2049, além de 111 e as do mountd se usar NFSv3).
Montar o NFS no Host Proxmox
Existem dois caminhos: adicionar como Storage pela GUI do Proxmox (Datacenter → Storage → Add → NFS) ou montar manualmente via /etc/fstab. Para passar limpo para um LXC como bind mount, a segunda opção é mais limpa.
No host Proxmox:
mkdir -p /mnt/pbs-nfs
Edite /etc/fstab e adicione:
# NFS PBS
10.10.0.2:/mnt/tank/pbs-datastore /mnt/pbs-nfs nfs defaults,noatime,nofail,nfsvers=4 0 0
Substitua 10.10.0.2 pelo IP do TrueNAS e /mnt/tank/pbs-datastore pela rota real do Dataset.
Monte e valide:
systemctl daemon-reload
mount -a
df -h /mnt/pbs-nfs
Criar o LXC para PBS
Pela GUI do Proxmox, crie um container com:
- Template:
debian-13-standard - Hostname:
pbs - Unprivileged container: ✅
- Disk:
8 GB(suficiente — os backups vivem no NFS) - CPU:
2 cores - RAM:
2048 MB(PBS usa bastante memória ao verificar chunks) - Network: IP estática recomendada
Não inicie o container ainda. Primeiro precisamos editar a configuração para adicionar o bind mount.
Adicionar o ponto de montagem via .conf
Anote o CTID (exemplo: 200) e edite:
nano /etc/pve/lxc/200.conf
Adicione ao final:
mp0: /mnt/pbs-nfs,mp=/mnt/datastore,backup=0,shared=1
mp0: índice do mount point/mnt/pbs-nfs: rota no host (nosso NFS montado)mp=/mnt/datastore: rota dentro do LXC onde aparecerábackup=0: excluir do backup do próprio LXCshared=1: indicar ao Proxmox que o storage é compartilhado
Salve e inicie o container:
pct start 200
pct enter 200
Dentro do container, verifique:
ls -la /mnt/datastore
df -h /mnt/datastore
Se o NFS aparecer montado, está tudo certo.
Script de Instalação do PBS
Dentro do LXC, ao invés de copiar comandos um a um, automatizamos com um script seguindo a documentação oficial do Proxmox.
Crie o arquivo:
nano install-pbs.sh
Com este conteúdo:
#!/bin/bash
set -e
echo "=== Instalação do Proxmox Backup Server ==="
echo "[1/4] Baixando chave do repositório..."
wget https://enterprise.proxmox.com/debian/proxmox-archive-keyring-trixie.gpg \
-O /usr/share/keyrings/proxmox-archive-keyring.gpg
echo "[2/4] Criando arquivo de repositório..."
cat > /etc/apt/sources.list.d/proxmox.sources << 'EOF'
Types: deb
URIs: http://download.proxmox.com/debian/pbs
Suites: trixie
Components: pbs-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF
echo "[3/4] Atualizando cache e instalando PBS..."
apt update
apt upgrade -y
apt install -y proxmox-backup-server
echo "[4/4] Removendo repositório Enterprise..."
rm -f /etc/apt/sources.list.d/pbs-enterprise.sources
echo ""
echo "=== Instalação concluída com sucesso ==="
Salve e execute:
chmod +x install-pbs.sh
./install-pbs.sh
Em poucos minutos o PBS estará rodando na porta 8007.
Criar o Datastore dentro do PBS
Acesse a interface web em https://<ip-do-lxc>:8007 e faça login com root@pam e a senha root do LXC.
Vá em Datastore → Add Datastore:
- Name:
truenas-nfs - Backing Path:
/mnt/datastore(a rota do bind mount dentro do LXC — que na realidade é o NFS do TrueNAS) - GC Schedule:
daily - Prune Schedule:
daily

Confirme e o PBS criará a estrutura de diretórios (.chunks/, vm/, ct/, etc.) diretamente sobre o Dataset do TrueNAS.
Conclusão
Com essa arquitetura você tem o melhor de três mundos: Proxmox VE para virtualização, PBS para backups com deduplicação e incrementais eficientes, e TrueNAS como camada de armazenamento robusta com ZFS, snapshots nativos e replicação. Tudo dentro de um LXC leve que consome recursos mínimos no host.
Próximos passos recomendados:
- Configure jobs de verificação semanais — o PBS precisa validar chunks periodicamente
- Ative snapshots ZFS do Dataset no TrueNAS — segunda linha de defesa contra corrupção silenciosa
- Replicação para um TrueNAS secundário — regra 3-2-1: 3 cópias, 2 mídias, 1 offsite
Backup sem redundância real é só otimismo disfarçado de procedimento. Resolva isso de uma vez.