Proxmox - ZFS
Sobre
Olá! Visitante, reunimos aqui, informações sobre como adicionar um novo SSD NVME no mirror ZFS sem precisar reinstalar o Proxmox.
Caso
Meu servidor foi instalado com 2 NVME para o sistema Proxmox, um dos SSDs NVMe apresentou defeito em garantia, após a fábrica mandar outra unidade, para não precisar reinstalar todo o sistema novamente, adicionei a unidade nova ao ZFS. Então segue abaixo o que realizei para ter sucesso!
Adição de SSD NVMe em Mirror no Proxmox com ZFS (sem reinstalação)
Objetivo
Converter um pool ZFS existente (disco único) em um mirror utilizando um segundo SSD NVMe, sem perda de dados e mantendo o Proxmox funcional.
Cenário Inicial
- Proxmox instalado em ZFS (pool: rpool)
- 1 SSD NVMe em uso
- 1 SSD NVMe novo (sem partição)
Exemplo:
zpool status
pool: rpool state: ONLINE nvme-eui.e8238fa6bf530001001b448b4d16edd4-part3
Identificação dos Discos
Verificar discos e estrutura:
lsblk zpool status -P
Exemplo:
nvme1n1 → disco atual (com sistema) nvme0n1 → disco novo (vazio)
Confirmar via by-id:
ls -l /dev/disk/by-id/ | grep nvme
Etapa 1 - Clonar Tabela de Partições
Copiar layout do disco atual para o novo:
sgdisk -R=/dev/nvme0n1 /dev/nvme1n1 sgdisk -G /dev/nvme0n1
Explicação:
- -R → replica tabela GPT
- -G → gera novos GUIDs (evita conflito)
Etapa 2 - Validar Partições
lsblk
Esperado:
nvme0n1p1 BIOS nvme0n1p2 EFI nvme0n1p3 ZFS
Etapa 3 - Identificar discos via by-id
ls -l /dev/disk/by-id/ | grep nvme
Exemplo:
nvme-eui.e8238fa6bf530001001b448b4d16edd4 → disco atual nvme-eui.e8238fa6bf530001001b448b4fee1734 → disco novo
Etapa 4 - Criar Mirror no ZFS
zpool attach rpool \ /dev/disk/by-id/nvme-eui.e8238fa6bf530001001b448b4d16edd4-part3 \ /dev/disk/by-id/nvme-eui.e8238fa6bf530001001b448b4fee1734-part3
Etapa 5 - Acompanhar Resilver
zpool status
Exemplo:
mirror-0 nvme-eui...edd4-part3 nvme-eui...1734-part3
Etapa 6 - Configurar Boot no Novo Disco
Formatar partição EFI:
proxmox-boot-tool format /dev/nvme0n1p2
Inicializar boot:
proxmox-boot-tool init /dev/nvme0n1p2
Atualizar:
proxmox-boot-tool refresh
Observação Importante
Caso apareça erro:
has wrong filesystem (!= vfat)
Executar novamente:
proxmox-boot-tool init /dev/nvme0n1p2 proxmox-boot-tool refresh
Etapa 7 - Validar Boot
proxmox-boot-tool status
Esperado:
92F0-69FF → nvme0n1p2 C7B6-374D → nvme1n1p2
Etapa 8 - Validar ZFS
zpool status
Esperado:
mirror-0 nvme-eui...edd4-part3 nvme-eui...1734-part3
Resultado Final
- Pool ZFS em mirror
- Dados redundantes
- Boot redundante em ambos discos
- Sistema resiliente a falha de SSD
Teste Recomendado
1. Desligar o servidor
2. Remover um dos NVMe
3. Ligar e validar boot
4. Repetir com o outro disco
Boas Práticas
- Sempre usar /dev/disk/by-id no ZFS
- Nunca usar disco inteiro, sempre partição (p3)
- Validar GUID após clonagem
- Garantir ESP em todos os discos
Comandos Utilizados
zpool status zpool status -P lsblk fdisk -l sgdisk -R sgdisk -G zpool attach proxmox-boot-tool format proxmox-boot-tool init proxmox-boot-tool refresh blkid