Como recuperar ZVOLs e contêineres LXC de um array RAIDZ no Proxmox VE
Neste artigo, examinaremos o processo de recuperação de máquinas virtuais armazenadas como dispositivos de bloco ZVOL e contêineres LXC a partir de uma matriz de software RAIDZ baseada no sistema de arquivos ZFS, criada na versão 9.1.1 do Proxmox Virtual Environment.

- Como o ZFS Funciona no Proxmox
- Como Conectar os Discos do Servidor a um Computador
- Como Recuperar Dados do RAIDZ no Proxmox VE
- Conclusão
- Perguntas frequentes
- Comentários
Analisaremos os cenários de perda de dados mais comuns. Entre eles estão a exclusão acidental de arquivos importantes dentro do sistema convidado ou a exclusão equivocada da própria máquina virtual ou do dataset do contêiner. Também consideraremos a recuperação de dados em caso de problemas de hardware, como danos à matriz causados por falha de unidade ou por uma falha geral do servidor. Abordaremos ainda falhas de software, por exemplo, uma queda do hipervisor Proxmox VE causada por atualizações com falha, erros críticos ou corrupção da partição do sistema.
Mostraremos como remover corretamente os discos de uma matriz com falha, conectá-los diretamente a um PC em funcionamento, montar automaticamente a matriz RAIDZ e recuperar seus dados.
Nosso software especializado permite recuperar dados de quaisquer sistemas de arquivos convidados para Windows, Linux e macOS sem problemas.
Proxmox ZFS Data Recovery: Recover ZVOLs, VMs and LXC Containers
Como o ZFS Funciona no Proxmox
O sistema de arquivos ZFS em um ambiente Proxmox difere fundamentalmente de soluções tradicionais, como o Ext4. Em vez de criar um diretório padrão e colocar arquivos de discos virtuais convencionais nele, o ZFS é integrado de forma estreita ao hipervisor no nível de gerenciamento de armazenamento. Isso proporciona alto desempenho e confiabilidade, mas altera completamente a abordagem de armazenamento e recuperação de dados.
- Para máquinas virtuais completas, o Proxmox não utiliza os conhecidos arquivos de imagem qcow2 ou RAW. O sistema cria dispositivos de bloco dedicados especiais para elas, chamados ZVOL. O software de recuperação de dados os vê não como arquivos separados em uma pasta, mas como unidades físicas completas. Essa abordagem permite que o hipervisor trabalhe de forma mais eficiente com snapshots e alocação de recursos do servidor.
- Para contêineres LXC leves, é usada uma abordagem um pouco diferente. Em vez de criar discos virtuais, o Proxmox implanta cada contêiner em seu próprio dataset ZFS isolado, conhecido como subvolume. Ao analisar a matriz, esses datasets aparecerão como pastas comuns com uma hierarquia padrão de diretórios do sistema Linux no interior, da qual os arquivos necessários podem ser extraídos diretamente.
| Característica | Máquinas Virtuais (ZVOL) | Contêineres LXC (subvolume) |
|---|---|---|
| Método de armazenamento | Dispositivos de bloco ZVOL dedicados | Datasets ZFS separados |
| Organização dos dados | Os dados são armazenados como um dispositivo de bloco que opera como uma unidade independente | Os dados são organizados como um sistema de arquivos com uma hierarquia de diretórios Linux |
| Formato do disco virtual | Não são usados arquivos de imagem qcow2 ou RAW padrão — em seu lugar, são criados ZVOLs | Não é necessário um arquivo separado de disco virtual |
| Como aparecem durante a recuperação | Como um único dispositivo de bloco, semelhante a uma unidade física | Como pastas com arquivos e subpastas |
| Acesso aos arquivos | O conteúdo do dispositivo de bloco deve ser analisado para determinar a estrutura do sistema de arquivos | A estrutura de diretórios pode ser navegada, e os arquivos necessários podem ser extraídos diretamente |
| Especificidades do uso do ZFS | Gerenciamento eficiente de armazenamento em bloco e suporte a snapshots | Armazenamento isolado do sistema de arquivos de cada contêiner |
| Objeto principal de recuperação | Discos virtuais e dados dentro de ZVOLs | Arquivos, pastas e dados de contêineres LXC |
Como Conectar os Discos do Servidor a um Computador
Antes de iniciar a recuperação por software, precisamos conectar corretamente os discos do servidor a um computador em funcionamento. A opção mais confiável é uma conexão direta por meio dos conectores SATA da placa-mãe.
Como estamos lidando com unidades de servidor, elas podem usar a interface SAS. Nesse caso, é necessário instalar um controlador SAS apropriado para lê-las em um computador padrão. Adaptadores USB externos ou dock stations também podem ser usados, mas deve-se observar que a velocidade de leitura de matrizes grandes via USB será significativamente menor.
Ao conectar as unidades, é importante lembrar o número mínimo de discos necessário para trabalhar com matrizes RAIDZ1. Como essa arquitetura de matriz reserva espaço para um bloco de paridade, o software pode reconstruir completamente os dados mesmo que uma unidade física esteja ausente.
No nosso caso, o pool original consistia em três unidades. Portanto, para extrair com sucesso todos os dados, será suficiente conectar apenas duas unidades em funcionamento ao computador.

Se não houver portas disponíveis suficientes, a solução ideal é criar imagens virtuais de algumas das unidades. Você pode conectar algumas unidades físicas diretamente e usar cópias exatas bit a bit das outras, montadas diretamente na interface do utilitário.
O software reconhece essas imagens como dispositivos físicos completos e as utiliza automaticamente para reconstruir a estrutura da matriz. Esse método garante a segurança dos dados originais, uma vez que a análise posterior é realizada em cópias virtuais. Depois que todos os componentes do pool forem conectados fisicamente ou montados como imagens, o Hetman RAID Recovery lerá automaticamente os metadados do ZFS e exibirá a matriz montada na janela principal, fornecendo acesso à análise e ao salvamento de arquivos.
Para criar uma imagem, inicie o Hetman RAID Recovery, selecione a unidade necessária na lista e clique em Salvar disco.

Na janela que aparecer, especifique o local de salvamento do arquivo.
Observe que o tamanho da imagem será igual à capacidade total da unidade de origem, independentemente de quanto espaço esteja realmente utilizado. Portanto, certifique-se com antecedência de que a unidade de destino tenha espaço livre suficiente.
Após salvar a imagem, vá ao menu principal e selecione Montar disco.

Na lista de tipos, selecione Imagens de disco bruto e carregue o seu arquivo.

Ele aparecerá na lista de dispositivos ao lado das unidades conectadas fisicamente. Se houver várias unidades com problemas, repita este procedimento para cada uma.
Depois que todos os componentes do pool forem conectados fisicamente ou montados como imagens, o Hetman RAID Recovery lerá automaticamente os metadados do ZFS e exibirá a matriz montada na janela principal, fornecendo acesso à análise e ao salvamento de arquivos.

Como Recuperar Dados do RAIDZ no Proxmox VE
MÉTODO 1. Recuperação Automática de Dados
Após conectar fisicamente as unidades ao computador, inicie o Hetman RAID Recovery.
O utilitário começará automaticamente a analisar todos os dispositivos conectados e ler os metadados de serviço do sistema de arquivos ZFS. Com base nesses dados, o programa reconstruirá de forma independente a matriz RAIDZ danificada. Esse processo é totalmente automático e permite recuperar o acesso aos dados mesmo após uma falha fatal do hipervisor Proxmox ou uma falha completa de hardware do servidor.

Na janela principal, você verá todas as matrizes detectadas. Selecione o pool montado e inicie o modo Fast Scan para uma análise rápida da estrutura de armazenamento.

Após a conclusão da análise, o sistema de arquivos recuperado será exibido na janela principal. Aqui é importante entender como o programa rotula os diferentes tipos de ambientes virtuais do Proxmox. Dispositivos de bloco de máquinas virtuais completas serão exibidos com o identificador vm e a palavra disk no nome, e serão marcados como volumes ZVOL. Os datasets isolados dos seus contêineres LXC serão mostrados pelo programa como pastas comuns com a palavra subvol.

Para recuperar automaticamente os dados de um contêiner, basta localizar a pasta com o número correspondente do seu LXC e abri-la.
Como os contêineres são armazenados como datasets de sistema de arquivos, dentro dessa pasta você verá a hierarquia padrão de diretórios do sistema Linux. Você pode navegar facilmente entre os diretórios e procurar os arquivos de usuário, bancos de dados ou configurações necessários. Selecione os objetos que deseja salvar e clique no botão Recuperação na barra de ferramentas.

No passo seguinte, o programa solicitará que você especifique um caminho para salvar os arquivos. Certifique-se de escolher uma unidade separada com espaço livre suficiente para evitar sobrescrever os dados originais nos discos do seu servidor. Confirme o início do processo de cópia e o utilitário transferirá com segurança os arquivos selecionados do contêiner para sua unidade local.

Após a conclusão da operação, todos os dados recuperados estarão totalmente prontos para uso posterior, sem necessidade de montagem ou de quaisquer outras ações adicionais.
MÉTODO 2. Trabalhando com Máquinas Virtuais (ZVOL)
A recuperação de dados de máquinas virtuais completas requer uma abordagem diferente. Como o Proxmox as armazena não como arquivos comuns, mas como dispositivos de bloco ZVOL dedicados, o programa trabalhará com elas pelo mesmo princípio usado para unidades físicas. Para extrair dados do sistema operacional convidado, precisamos exportar esse dispositivo de bloco, montá-lo e analisá-lo.

Ao analisar o pool, localize o dispositivo de bloco ZVOL necessário e salve-o em seu computador usando a função Recuperação.

O utilitário exporta esse objeto no formato RAW. Esse formato é uma cópia exata, byte a byte, dos dados e não possui estrutura interna complexa nem compressão. Como resultado, oferece desempenho máximo e é o objeto mais conveniente para algoritmos de recuperação, que podem analisá-lo como um disco físico padrão.
O procedimento para montar o arquivo salvo é o mais simples possível. Abra a ferramenta de montagem de disco no menu superior do programa. Em seguida, localize o campo para imagens de disco padrão e selecione a opção RAW. Depois disso, na janela de busca, basta selecionar o arquivo salvo da sua máquina virtual. O programa o montará imediatamente e o exibirá na tela principal, preparando totalmente o disco virtual para a análise final.

Após a montagem bem-sucedida, o objeto aparecerá na lista de dispositivos como uma unidade padrão, pronta para uma análise detalhada do seu conteúdo interno. A escolha do modo de análise depende da natureza da perda de dados. Se os arquivos tiverem sido simplesmente excluídos por engano dentro do sistema convidado, o uso de Fast Scan será suficiente para exibir rapidamente a hierarquia de diretórios.
Em casos mais complexos, após formatação ou alteração da estrutura lógica de partições, deve-se usar Full Scan para uma busca aprofundada dos dados. Após a conclusão da análise, você poderá visualizar os arquivos encontrados, verificar sua integridade na janela de pré-visualização e salvar os dados necessários em um dispositivo de armazenamento seguro.

MÉTODO 3. Recuperação Após a Exclusão de uma Máquina Virtual
A exclusão de uma máquina virtual ou de um contêiner no Proxmox geralmente ocorre devido a um erro administrativo. No sistema de arquivos ZFS, isso faz com que o dispositivo de bloco ZVOL ou o dataset de subvolume desapareça instantaneamente. Como não há lixeira no sistema, o espaço liberado fica imediatamente disponível para novas gravações. No entanto, seus dados ainda permanecem fisicamente nos discos.
A regra principal nessa situação é parar o servidor imediatamente e interromper qualquer gravação na matriz para evitar a sobrescrita permanente dos dados.
Para recuperar os objetos perdidos, usaremos novamente o Hetman RAID Recovery.
Selecione o pool reconstruído e inicie o modo de análise profunda Full scan. Esse processo leva mais tempo porque o programa trabalha diretamente com setores de disco, procurando cuidadosamente componentes fragmentados do sistema de arquivos por suas assinaturas.

Após a conclusão da análise, os objetos encontrados serão exibidos na janela do programa.

Para localizar rapidamente o ZVOL necessário ou o dataset excluído, é conveniente usar a função de pesquisa. Se você estiver recuperando um contêiner LXC, procure por pastas nomeadas subvol e verifique seu conteúdo.

Para máquinas virtuais completas, o principal ponto de referência será o tamanho do volume ZVOL encontrado, especialmente se o nome original dele já não estiver preservado. Os arquivos encontrados em contêineres podem ser verificados imediatamente pela janela de pré-visualização.
Os volumes ZVOL detectados precisam apenas ser montados diretamente no programa para uma análise adicional do seu conteúdo.
Após verificar a integridade dos dados, selecione os itens necessários e clique no botão Recuperação. Especifique o caminho para um dispositivo de armazenamento separado e seguro, com espaço livre suficiente, e aguarde a conclusão do processo de cópia.

Conclusão
A recuperação de dados de uma matriz RAIDZ no Proxmox VE tem suas particularidades, porque o ZFS usa sua própria estrutura de armazenamento e gerenciamento de dados. Em tal ambiente, as máquinas virtuais podem usar ZVOL, que é apresentado como um dispositivo de bloco, enquanto os contêineres LXC são armazenados como datasets ZFS separados que contêm a estrutura de arquivos do contêiner.
No caso de dano ou perda de acesso ao RAIDZ, é importante não recriar a matriz, não formatar as unidades e não executar operações que possam sobrescrever os dados de serviço do ZFS. Para uma recuperação bem-sucedida, é necessário preservar a estrutura original da matriz e, sempre que possível, trabalhar com cópias das unidades.
Softwares especializados de recuperação de dados tornam possível analisar a estrutura ZFS, localizar discos virtuais ZVOL, sistemas de arquivos e dados de contêineres LXC, mesmo em situações em que o Proxmox VE ou a própria matriz RAIDZ já não fornecem acesso normal às informações.
Dessa forma, a abordagem correta de recuperação permite acessar tanto os dados de máquinas virtuais armazenadas em ZVOL quanto os arquivos e diretórios de contêineres LXC, preservando sua estrutura original. Isso é especialmente importante após falha de unidade, corrupção do pool ZFS, exclusão acidental de dados ou erros críticos do Proxmox VE.







