A queda de energia é o pesadelo silencioso de qualquer administrador de sistemas. Um segundo de instabilidade na rede elétrica pode corromper metadados críticos, desincronizar espelhos e transformar um array RAID saudável em um caos de volumes offline. A sensação é de pânico imediato: a luz voltou, mas os dados não estão acessíveis. A maioria dos donos de pequenas empresas e agências digitais acredita que o RAID protege contra tudo, mas a verdade técnica é mais dura: RAID não é backup e, sob estresse elétrico, ele pode se tornar o vetor da sua própria destruição.

Quando o servidor reinicia após um blackouts, o sistema operacional pode não detectar o problema imediatamente. Os discos aparecem como online, mas o volume lógico (LVM, ZFS ou mdadm) permanece inacessível. Tentar montar a partição manualmente ou forçar o start do array sem entender a causa raiz é a decisão que transforma um incidente menor em uma catástrofe de perda de dados. Neste guia técnico, vamos dissecar o processo de recuperação, explicando como avaliar a integridade dos discos e quais comandos utilizar para reconstruir volume de forma segura, minimizando riscos para sua infraestrutura. ## Sintomas Iniciais e Diagnóstico Antes de qualquer ação corretiva, você precisa entender o estado atual do seu storage. A queda de energia causa efeitos variados dependendo do tipo de controladora (hardware vs. software) e da volatilidade do cache. Se você estiver utilizando uma controladora RAID com bateria (BBU) ou supercapacitor, é possível que os dados tenham sido escritos no disco antes do corte, mas o estado do array foi marcado como "degradado" ou "suicida". Os primeiros sinais incluem logs do kernel mostrando erros I/O, discos desaparecendo e reaparecendo na lista do sistema, ou o serviço de monitoramento alertando sobre latência aumentada. Verifique imediatamente os logs do sistema de arquivos e as mensagens do kernel usando comandos como `dmesg` ou `journalctl -k`. Procure por mensagens de "I/O error", "resetting link" ou "disk failure". É crucial diferenciar entre um disco fisicamente danificado e um disco que apenas perdeu a sincronização. Uma queda de energia pode fazer com que o cabeçote de leitura/gravação retorne à posição de park (home position) mais lentamente do que o esperado, ou causar um erro de verificação CRC temporário. Se você iniciar uma reconstrução (rebuild) prematuramente em um disco com defeito físico latente, você estará submetendo os outros discos do array a uma carga de leitura massiva, aumentando drasticamente a probabilidade de falha catastrófica durante o processo. ## O Erro Fatal: Tentar Reconstruir às Cegas A tentação de clicar no botão "Rebuild" ou executar `mdadm --assemble` é forte. Muitos administradores iniciam essa prática por pressão do negócio, pois a aplicação está parada e os usuários estão reclamando. No entanto, forçar o array RAID sem validação prévia é uma das causas mais comuns de perda definitiva de dados. Se você possui um RAID 5 ou 6, a reconstrução exige leitura intensa de todos os discos restantes para calcular paridades e preencher os dados do disco substituto. Se um dos discos restantes tiver setores ruins (bad blocks) não mapeados, o processo de rebuild falhará e o volume será desmontado ou marcado como corrompido. Em alguns casos, a falha ocorre no meio do processo, e os dados parciais já escritos no novo disco são inúteis sem o contexto completo da paridade, que foi perdida. Além disso, controladoras RAID de entrada (entry-level) muitas vezes não têm cache protegido por bateria. Isso significa que os dados que estavam em RAM foram perdidos. Tentar "salvar" o array pode sobrescrever esses metadados perdidos com informações inconsistentes, tornando a recuperação forense muito mais difícil ou impossível. A regra de ouro é: nunca assuma que o hardware está íntegro apenas porque ele está ligado. ## Integridade dos Metadados: O Coração do Problema Para recuperar dados após uma interrupção brusca, você precisa entender onde eles estão armazenados lógicamente. Em soluções de software como Linux MD RAID (mdadm), os metadados contêm informações sobre a ordem dos discos, o nível do RAID, o tamanho dos chunks e o estado da sincronização. Existem dois formatos principais: 0.90, 1.0 e 1.x. A queda de energia pode corromper o cabeçalho (superblock) desses metadados. Se o superblock estiver corrompido, o sistema não consegue identificar quais discos pertencem a qual array. É aqui que a confusão acontece: você vê vários discos disponíveis, mas não sabe como agrupá-los. Verificar a integridade dos metadados envolve analisar o conteúdo de cada disco. Ferramentas como `mdadm --examine` permitem inspecionar os superblocks sem montar o volume. Você deve comparar os valores de "Raid Level", "Device Number" e "State" entre todos os discos. Se um disco mostrar um estado inconsistente ou um número de dispositivo duplicado, ele pode ser a origem do problema. Em arrays ZFS, a situação é diferente; o pool pode estar importável, mas com flags de corrupção. O ZFS foi projetado para lidar com isso melhor que o mdadm, mas ainda exige que você importe o pool com sinalizadores específicos de segurança (como `-o readonly`) para evitar escrita acidental. ## Como Recuperar Dados com Segurança A recuperação não é um único comando, mas um fluxo de trabalho cuidadoso. O objetivo principal não é apenas "ligar o servidor", mas garantir que a consistência dos dados seja preservada antes de qualquer operação de escrita. Siga esta ordem lógica para minimizar o risco de disk failure secundária. 1. **Imagem Forense (Se possível):** Se os dados forem críticos e você tiver espaço em outro storage, crie uma imagem bit-a-bit (`dd`) de cada disco do array. Trabalhe sempre sobre a imagem, nunca no disco original. Isso cria um ponto de restauração seguro caso o próximo passo corrompa algo. 2. **Verificação de Saúde Física:** Utilize ferramentas SMART (`smartctl -a /dev/sdX`) para verificar a contagem de setores reatribuídos e erros de leitura. Um disco com alta contagem de "Reallocated_Sector_Ct" deve ser substituído antes de qualquer rebuild. 3. **Análise de Metadados:** Use `mdadm --examine --scan` para gerar a linha de configuração do array. Compare-a com a configuração original conhecida (se houver backup do `/etc/mdadm/mdadm.conf`). 4. **Montagem em Modo Leitura-Apenas:** Se o array montar, monte-o imediatamente como somente leitura (`ro`). Copie os dados mais críticos para outro local seguro. Apenas após ter uma cópia íntegra dos dados essenciais tente montar em modo de leitura/gravação. 5. **Reparo Condicional:** Se o array estiver "dirty" (sujo), significa que a sincronização foi interrompida. Você pode tentar limpá-lo com `echo clean > /sys/block/mdX/md/sync_action` (no Linux) antes de iniciar o rebuild. Isso evita que o sistema tente recalculpar paridades desnecessariamente, economizando tempo e reduzindo o estresse nos discos. | Ação | Risco | Recomendação | | :--- | :--- | :--- | | Montar sem verificar SMART | Alto | Verificar saúde do disco primeiro. | | Forçar montagem (`force`) | Crítico | Usar apenas como último recurso forense. | | Rebuild com disco defeituoso | Extremo | Substituir disco antes de iniciar rebuild. | | Montagem Read-Only | Baixo | Recomendado para extração inicial de dados. | ## Prevenção: Hardware e Configuração A melhor estratégia para lidar com quedas de energia é evitar que elas afetem a consistência dos dados. Para empresas que não podem parar, a infraestrutura deve ser resiliente por design. O uso de nobreaks (UPS) com comunicação serial ou USB é obrigatório em qualquer servidor sério. O software de gerenciamento do UPS (como NUT - Network UpTime) deve estar configurado para monitorar o nível da bateria e realizar um shutdown gracioso (`shutdown -h now`) quando a energia atingir um limite crítico, garantindo que todos os discos estejam desmontados antes do corte total. Além disso, considere o uso de cache escrito com confirmação (write-back) apenas se houver proteção de energia garantida. Para ambientes sem bateria de backup confiável, configure o cache como write-through (write-through). Isso garante que cada gravação seja fisicamente confirmada no disco antes de ser considerada completa, aumentando ligeiramente a latência, mas eliminando o risco de perda de dados em caso de queda súbita. Para soluções de software, considere migrar para sistemas de arquivos resilientes como ZFS ou Btrfs. Eles possuem checksums em todos os dados e metadados, permitindo detectar e corrigir silenciosamente corrupção (bit rot) e lidam melhor com interrupções inesperadas do que ext4 ou XFS tradicionais, que dependem de journaling mas podem exigir longos tempos de fsck após crashes. ## Perguntas Frequentes

O RAID 1 se recupera automaticamente após queda de energia?

Não há garantia de "auto-recuperação". O RAID 1 (espelhamento) mantém duas cópias dos dados. Se a queda ocorrer durante uma escrita, um dos discos pode ter dados antigos e o outro dados novos ou corrompidos. O sistema tentará montar o volume, mas pode haver inconsistência. Em muitos casos, o sistema operacional montará apenas um dos discos ou exigirá intervenção manual para verificar a integridade do sistema de arquivos antes de permitir escrita.

Posso usar o mesmo disco falho para reconstruir outro array?

Não recomende isso. Um disco que falhou devido a uma queda de energia pode ter danos físicos latentes, como setores ruins ou falhas na placa de controle do disco. Se você tentar usá-lo em outro array, a probabilidade de nova falha é alta. O ideal é testar o disco extensivamente com ferramentas de diagnóstico e substituí-lo se houver qualquer sinal de degradação.

O que significa "Array Degraded"?

Significa que o array está funcionando, mas com redundância reduzida ou nula. Em um RAID 5, se um disco falha, o array continua operando calculando dados faltantes a partir da paridade. No entanto, se outro disco falhar durante esse estado, todos os dados serão perdidos. É um estado de emergência que exige substituição imediata do disco defeituoso.

Como saber se meus metadados estão corrompidos?

Se o comando `mdadm --detail /dev/mdX` retornar erros ou se os discos não forem reconhecidos como parte de um array conhecido, há suspeita de corrupção. Use `mdadm --examine /dev/sdX` para ver os superblocks individuais. Se os valores de "Raid Level" ou "Device UUID" estiverem inconsistentes entre os discos, os metadados podem estar danificados.

Devo formatar o disco se ele não montar?

Absolutamente não. Formatar apagará todos os dados e metadados, tornando a recuperação muito mais difícil e cara. A formatação é uma etapa final, apenas quando você tem cópias de segurança ou decidiu que os dados não são recuperáveis.

## Conclusão A recuperação de dados após uma queda de energia exige calma, método e, acima de tudo, respeito pela integridade dos discos. O pânico leva a erros fatais, como forçar montagens ou iniciar reconstruções em hardware comprometido. Lembre-se: sua prioridade é preservar os dados existentes, não apenas restaurar a conectividade do servidor. Verifique a saúde física, analise metadados e utilize modos de leitura única para extração segura antes de qualquer tentativa de reparo. Investir em infraestrutura robusta, como nobreaks adequados e sistemas de arquivos resilientes, é muito mais barato do que o custo de uma recuperação de dados profissional ou da perda de informações críticas do seu negócio. Se você possui ambientes complexos ou dados sensíveis que não podem ser perdidos, contar com especialistas em infraestrutura e continuidade de negócios pode fazer a diferença entre um downtime de horas e uma perda definitiva de ativos. A Toda Solução oferece suporte especializado em infraestrutura crítica para garantir que sua operação continue firme, mesmo diante das intempéries.