Recuperação de Dados ZFS: Um Guia para RAIDZ1, RAIDZ2, RAIDZ3 e Stripe
Neste artigo, revisamos procedimentos para recuperação de dados de arrays RAIDZ1, RAIDZ2, RAIDZ3 e ZFS Stripe criados no sistema operacional TrueNAS SCALE. Demonstramos a sequência de ações em caso de falha de hardware no servidor e a metodologia para restaurar o acesso ao pool de dados quando um ou mais discos falham ou os dados são excluídos acidentalmente do array.

- Capacidades do TrueNAS SCALE
- Método 1. Recuperação automática de arrays ZFS
- Método 2. Recuperando RAIDZ com discos ausentes
- Método 3. Recuperação de arquivos excluídos
- Conclusão
- Perguntas e respostas
- Comentários
Além de falhas de hardware, abordamos a recuperação após exclusão de um dataset inteiro, corrupção do pool, falha crítica do sistema operacional, dano ao sistema de arquivos ZFS, erros ao adicionar novos discos, comportamento incorreto do controlador e inicialização acidental de discos em outro sistema.
A recuperação de dados é demonstrada no Linux Ubuntu, mas também é possível em ambientes Windows e macOS.
Data Recovery from ZFS RAIDZ1, RAIDZ2, RAIDZ3, and Stripe Arrays
Capacidades do TrueNAS SCALE
TrueNAS é um sistema operacional aberto para construção de armazenamento em rede, baseado em Linux e utilizando o sistema de arquivos ZFS. Fornece proteção de dados, verificação de integridade, gerenciamento eficiente de discos e suporta execução de máquinas virtuais.
A plataforma suporta vários tipos de RAID, incluindo RAIDZ, que combina desempenho e tolerância a falhas. O TrueNAS SCALE permite escalabilidade horizontal ao combinar múltiplos nós em um cluster, preservando as principais funcionalidades do ZFS: autocorreção, snapshots, compressão, deduplicação e criptografia.

O sistema é compatível com os protocolos SMB, NFS, iSCSI e S3 e também permite a execução de containers e Kubernetes, tornando-se uma solução versátil para armazenamento e processamento de dados em diversos ambientes.
RAIDZ é um array de discos redundante no ZFS com paridade distribuída. O uso de blocos de tamanho variável otimiza gravações e permite correção automática de erros durante leituras.
Ao recuperar um array degradado (resilvering), a carga nos discos remanescentes aumenta significativamente. Portanto, o RAIDZ é mais adequado para ambientes com requisitos moderados de tolerância a falhas ou para discos de menor capacidade onde o tempo de rebuild do array é reduzido.
| Categoria | Capacidades |
|---|---|
| Tipo de sistema | NAS/servidor de código aberto baseado em Linux |
| Sistema de arquivos | Suporte a ZFS |
| RAID | RAIDZ1, RAIDZ2, RAIDZ3, Stripe, Mirror |
| Escalabilidade | Horizontal (Scale-out) |
| Virtualização | Suporte a KVM (máquinas virtuais) |
| Containers | Kubernetes, Docker (via Apps) |
| Protocolos de rede | SMB, NFS, FTP, iSCSI |
| Gerenciamento | Interface web (GUI) |
| Segurança | Criptografia de dados, controle de acesso, ACL |
| Backup | Snapshots, Replicação, Rsync |
| Serviços em nuvem | Integração com AWS, Google Cloud, Azure |
| Monitoramento | Alertas, logs, estatísticas |
| Plugins / Apps | Extensibilidade via catálogo de aplicações |
| Alta disponibilidade | Suporte a cluster (HA) |
| Suporte a GPU | Sim (para containers e VMs) |
Método 1. Recuperação automática de arrays ZFS
Em caso de falha de componentes de hardware do servidor (fonte de alimentação, placa-mãe ou controlador de discos), o acesso direto aos dados a partir do sistema operacional torna-se impossível.
Essas situações também ocorrem quando o servidor não inicializa devido a um erro crítico durante uma atualização do TrueNAS SCALE ou quando a partição do sistema é danificada.
Mesmo que arquivos e discos não estejam fisicamente danificados, o acesso a um array RAIDZ pode ser perdido e as ferramentas padrão do ZFS podem não detectar os discos ou permitir a importação do pool. Nesses casos, softwares especializados, como o Hetman RAID Recovery, permitem acesso seguro aos dados e recuperação das informações.
Neste exemplo demonstramos o processo de recuperação automatizada em um computador executando Ubuntu.
Primeiro, desligue o servidor e remova cuidadosamente todos os discos que faziam parte do array.

Conecte-os a uma estação de trabalho: a opção ideal é diretamente à placa-mãe via cabos SATA para máxima velocidade e estabilidade de transferência de dados. Se a placa-mãe não dispuser de portas livres, podem ser usadas docas USB externas ou adaptadores USB-para-disco.

Observe que, quando conectados por meio de docas externas, a velocidade de varredura pode ser menor; portanto, para grandes volumes de dados é preferível usar portas internas.
Após a conexão, verifique se os discos aparecem no Ubuntu no utilitário Discos, mas não os inicialize se o sistema solicitar essa ação.

Imediatamente após a verificação, inicie o Hetman RAID Recovery para executar a montagem automática do array.
A característica principal do Hetman RAID Recovery é a análise profunda dos metadados do ZFS. O software não requer um sistema operacional ou controlador funcional — ele lê as informações de serviço diretamente dos discos e reconstrói automaticamente a estrutura do pool.
Como o ZFS armazena todos os dados críticos de configuração do array dentro do próprio pool, a integridade lógica dos arquivos é preservada mesmo se o ambiente original do servidor estiver completamente indisponível. Como resultado, o usuário obtém acesso aos dados em uma forma familiar, sem dependência do sistema original.
Este artigo demonstra várias configurações de array:
- RAIDZ1 em três discos,
- RAIDZ2 em quatro,
- RAIDZ3 em cinco,
- e Stripe em dois discos.

Examinaremos o algoritmo de recuperação em detalhe para um array RAIDZ1 de três discos em uma situação de falha completa de hardware do servidor ou erro crítico após atualização do TrueNAS SCALE.
É importante notar que esta abordagem é universal e também pode ser aplicada a configurações RAIDZ2, RAIDZ3 e Stripe.
Após iniciar o Hetman RAID Recovery, ele escaneia automaticamente todos os dispositivos conectados. O programa lê os metadados de serviço do ZFS, analisa a configuração dos grupos de vdevs virtuais e, com base nos dados obtidos, reconstrói o modelo correto de RAIDZ1.
A janela de trabalho exibe os discos detectados e as estruturas lógicas montadas — você pode imediatamente continuar trabalhando com eles: executar análise detalhada, visualizar a estrutura de dados ou recuperar arquivos necessários.

Selecione o RAIDZ1 necessário na lista de arrays reconstruídos e inicie o modo de Análise rápida para determinar rapidamente a estrutura dos dados.

Após a conclusão da análise, o sistema de arquivos recuperado com a hierarquia completa de diretórios e arquivos será exibido na janela principal. Selecione os objetos desejados e clique em Recuperar.

No passo seguinte, especifique uma pasta para salvar os dados — preferencialmente em uma mídia separada com espaço livre suficiente.

Confirme o início do processo, especifique o caminho de destino final e clique em Recuperar novamente para iniciar a cópia. Após a conclusão da operação, clique em Concluir.
Como resultado, os dados do pool ZFS RAIDZ1 serão recuperados e estarão disponíveis para uso normal.

Método 2. Recuperando RAIDZ com discos ausentes
Agora considere o caso de falha de um ou mais discos em um array RAIDZ.
A arquitetura RAIDZ fornece tolerância a falhas dependendo do tipo de array:
- RAIDZ1 tolera a perda de um disco.
- RAIDZ2 tolera a perda de dois discos.
- RAIDZ3 tolera a perda de três discos.
No caso de Stripe não há redundância, portanto a falha de qualquer disco leva à perda completa de dados.

Se não for possível conectar todos os discos, você pode criar uma imagem do disco ausente e usá-la juntamente com os demais discos para a recuperação.
Graças aos mecanismos de paridade distribuída e verificações de integridade de dados, softwares especializados como o Hetman RAID Recovery podem reconstruir blocos perdidos e restaurar o acesso às informações se o número de discos falhos não exceder o nível permitido para o tipo específico de RAIDZ.
Se esse limite for excedido, a estrutura lógica do array fica comprometida e métodos de software padrão tornam-se ineficazes. Nesses casos, a recuperação só é possível com equipamentos profissionais em laboratórios especializados.
Garanta que a mídia de destino possua espaço livre suficiente para armazenar os dados recuperados e remova cuidadosamente os discos do servidor, conectando-os a um computador via portas SATA ou uma dock station externa. É importante evitar qualquer gravação nesses discos, pois isso pode causar perda irreversível de dados.

Antes de começar, feche todos os aplicativos que possam usar esses discos e desative temporariamente backups automáticos ou sincronizações. Se o sistema não montar o array, não inicialize os discos, não crie partições e não os formate.
Deixe-os no estado atual e prossiga diretamente para o procedimento de recuperação. Seguir essas recomendações aumenta significativamente as chances de recuperação bem-sucedida e segura dos dados, independentemente do tipo RAIDZ ou da configuração Stripe.
Se a arquitetura da sua estação de trabalho não permitir conectar todos os discos simultaneamente, a solução ideal é usar imagens de disco virtuais. Esse método envolve criar cópias bit a bit de cada disco para análise posterior.
Após montar a imagem do disco ausente, o Hetman RAID Recovery irá tratá-la como um dispositivo físico completo e, combinado com os discos disponíveis, reconstruirá automaticamente a estrutura do array. Essa abordagem permite iniciar a recuperação de dados mesmo quando as portas de conexão são insuficientes — preservando a segurança e integridade dos dados em todas as etapas.
Analisaremos o processo de recuperação usando como exemplo um RAIDZ3 em que três discos falharam simultaneamente.
Essa configuração de array oferece a possibilidade de recuperação dos dados mesmo em uma falha tão severa — realizamos esse procedimento com o Hetman RAID Recovery.
Imediatamente após a abertura, o software escaneia automaticamente todos os discos conectados, lê as informações de serviço e, com base nisso, reconstrói a estrutura original do array. A janela de trabalho exibe todos os discos físicos detectados e as configurações virtuais formadas, que podem ser usadas imediatamente. Selecione o RAIDZ3 encontrado e ative a Análise rápida.

Assim que a verificação for concluída, a janela de trabalho exibirá a estrutura completa do array reconstruído com todos os diretórios e arquivos.

Marque os itens necessários e clique em Recuperar. Em seguida, especifique a pasta para salvar e confirme a operação clicando em Recuperar novamente.

Quando a cópia for concluída — clique em Concluir.
Após completar todos os passos, os arquivos recuperados do array RAIDZ3 estarão plenamente utilizáveis em operação normal.

Método 3. Recuperação de arquivos excluídos
Por fim, consideramos um dos cenários mais comuns — exclusão acidental de arquivos de um array RAID.
Neste exemplo, recuperamos dados de um Stripe criado a partir de dois discos sob o sistema de arquivos ZFS.
A característica do Stripe é que os dados são distribuídos por todos os discos sem qualquer redundância. Isso significa que nenhum disco individual contém arquivos completos. Para uma recuperação bem-sucedida, todos os discos devem estar conectados simultaneamente e tratados como uma única estrutura lógica. Se um dos discos estiver ausente ou não conectado, o software não conseguirá ler os dados.

Antes de começar, assegure-se de que todos os discos estejam fisicamente conectados ao computador — diretamente via SATA à placa-mãe ou usando uma dock station externa.
É importante não gravar novos dados nesses discos nem inicializá-los no sistema para evitar sobrescrever os arquivos perdidos.

No Ubuntu, inicie o Hetman RAID Recovery.
O software irá escanear automaticamente todos os discos conectados, ler os metadados do ZFS e reconstruir a estrutura lógica do Stripe em conformidade. Na janela principal você verá os discos físicos e o array montado pronto para uso.

Em seguida, selecione o Stripe na lista de arrays detectados e inicie uma Análise completa. Uma análise completa é necessária porque, após a exclusão de arquivos no ZFS, somente uma análise profunda permite montar dados fragmentados e restaurar a estrutura de pastas correta.

Geralmente não são necessárias configurações adicionais; basta clicar em Avançar e aguardar o término do processo. Após a conclusão da análise, a janela principal exibirá a estrutura do array recuperada com todas as pastas e arquivos. Se necessário, utilize a visualização para verificar o conteúdo de documentos, imagens ou outros arquivos.
Selecione os arquivos e pastas desejados e clique em Recuperar.

Especifique o destino para os dados recuperados em uma mídia separada com espaço livre suficiente e confirme o início do processo clicando em Recuperar novamente.
Após a cópia ser concluída, clique em Concluir.

Como resultado, todos os arquivos serão recuperados e estarão disponíveis para uso normal.
Esse processo garante a segurança dos dados, permite a restauração de arquivos mesmo após exclusão acidental e preserva a estrutura do sistema de arquivos ZFS sem risco de danificar outros dados nos discos.
Conclusão
A recuperação de dados do sistema de arquivos ZFS e de arrays RAIDZ1, RAIDZ2, RAIDZ3 e Stripe é complexa, mas perfeitamente viável com a abordagem correta e compreensão da arquitetura dessas soluções. Graças aos mecanismos incorporados de integridade e verificação de erros, o ZFS fornece um alto nível de proteção, especialmente em configurações RAIDZ2 e RAIDZ3.
Mesmo assim, sistemas tão confiáveis não estão imunes à perda de dados por falhas de hardware, erros de usuário ou corrupção crítica do pool. A configuração menos protegida continua sendo o Stripe, onde a ausência de redundância implica perda total de dados se qualquer disco falhar.
O sucesso da recuperação depende de muitos fatores: tipo de RAID, número de discos falhos, condição do sistema de arquivos e rapidez das ações. Recomendações-chave são interromper imediatamente gravações no array afetado, realizar diagnóstico correto e usar software especializado ou serviços profissionais.
Portanto, para minimizar o risco de perda de dados, é importante não apenas saber como recuperar os dados, mas também implementar estratégias de backup antecipadamente e escolher o nível de RAID adequado conforme a criticidade das informações.





