3
Como substituir discos especiais (log, cache e SpecialDev) de uma zpool
Daniel Sato edited this page 2025-10-15 12:34:20 -03:00

Cenário: Falha de um NVMe no seu Pool

Dispositivos a serem substituídos:

Special: -Part-Special

Logs: -Part-Log

Cache: -Part-Cache

O Novo Disco:

Você deve ter um novo NVMe de substituição, de capacidade igual ou superior. Assumimos que ele está fisicamente instalado e foi particionado de forma idêntica ao NVMe falho.

Referência: http://gitea.fixfibra.net.br:3000/daniel.sato/Proxmox-8/wiki/Como-particionar-disco-para-usar-como-Log%2FCache%2FSpecial-Dev

Vamos chamar o novo disco e suas partições de:

Novo NVMe ID: /dev/

Novas Partições: /dev/-Part-Log, /dev/-Part-Cache, /dev/-Part-Special

Substituição de um Disco NVMe Particionado

Como você está substituindo um disco físico inteiro que contém várias partições usadas por diferentes classes do ZFS, você terá que executar o comando zpool replace separadamente para cada partição/vdev, seguindo a ordem lógica: Special, Logs e, por último, Cache.

Passo 1: Preparação e Identificação

Verifique a Falha:

O seu zpool status agora deve mostrar o pool como DEGRADED, e o disco falho () deve estar marcado como FAULTED ou UNAVAIL.

Remoção e Instalação Física:

Remova o NVMe falho e instale o novo NVMe em sua baia.

Particionamento:

Use uma ferramenta como fdisk ou gdisk para replicar o esquema de particionamento do disco NVMe falho no novo disco, garantindo que as partições tenham os tamanhos corretos para Part-Log (logs), Part-Cache (cache) e Part-Special (special).

Identificação do Novo Disco:

Verifique os novos caminhos persistentes das partições (ex: em /dev/disk/by-id/ ou /dev/disk/by-uuid/).

Antigo falho (Exemplo): -Part-Special

Novo (Exemplo): /dev/-Part-Special

Passo 2: Substituir o VDEV Special

O vdev special é um componente resiliente (mirror-2), portanto, os dados podem ser copiados do outro disco.

zpool replace meu_pool <old-nvme>-Part-Special /dev/<new-nvme>-Part-Special

Acompanhe:

zpool status meu_pool. 

O resilvering iniciará para esta partição.

Aguarde até que o resilvering esteja 100% concluído para a partição special.

Passo 3: Substituir o VDEV Logs (SLOG)

O vdev logs (SLOG) também é um componente resiliente (mirror-1) e, portanto, a substituição segue o mesmo padrão de zpool replace.

zpool replace meu_pool <old-nvme>-Part-Log /dev/<new-nvme>-Part-Log

Acompanhe:

zpool status meu_pool. 

Aguarde a conclusão.

Passo 4: Substituir o VDEV Cache (L2ARC)

Os dispositivos de cache (L2ARC) são diferentes: eles não são resilientes e o ZFS não armazena dados críticos neles. Se um cache falhar, o ZFS simplesmente para de usá-lo e o pool não entra em estado DEGRADED (apenas a performance pode cair).

Remoção (Detach/Remove):

Primeiro, você deve remover o dispositivo de cache falho do pool.

zpool remove meu_pool <old-nvme>-Part-Cache

Adição (Add):

Depois, adicione a nova partição de cache.

zpool add meu_pool cache /dev/<new-nvme>-Part-Cache

Não há resilvering para cache. Ele será preenchido lentamente com o uso normal.

Passo 5: Verificação Final

Verifique o status do pool uma última vez para confirmar que todos os novos dispositivos estão ONLINE e que o pool está ONLINE e HEALTHY.

zpool status meu_pool

Sua nova estrutura deve mostrar os IDs do novo NVMe no lugar das partições falhas, com todos os vdevs em bom estado!