Durante o planejamento da configuração do meu RAID em um Synology Disk Station, li bastante sobre vários tipos de RAID, sendo esta uma ótima leitura: Níveis de RAID e a importância do URE (Unrecoverable Read Error) .
No entanto, uma coisa ainda não está clara para mim:
Vamos ter dois cenários:
- Um array é um RAID 1 de 2 drives
- Um array é um RAID 5 de 3 drives
As mesmas suposições para ambos os cenários:
- Vamos ter 100.000 arquivos no array RAID
- Uma unidade falha (precisa de substituição)
- Acontece que há um setor defeituoso (URE) durante a reconstrução da matriz
O que acontece? O RAID é reconstruído com 99.999 arquivos funcionando bem e 1 arquivo perdido? Ou vou perder todos os 100.000 arquivos?
Se a resposta exigir o conhecimento do tipo de sistema de arquivos, vamos supor que seja BTRFS ou ZFS o sistema de arquivos.
A resposta curta é que depende.
Na situação que você descreve (um disco defeituoso + alguns setores ilegíveis em outro disco), alguns controladores RAID corporativos destruirão todo o array alegando que sua integridade está comprometida e, portanto, a única ação segura é restaurar a partir do backup.
Alguns outros controladores (mais notavelmente do LSI) perfurarão o array , marcando alguns LBAs como ilegíveis, mas continuando com a reconstrução. Se os LBAs ilegíveis estiverem efetivamente em espaço livre, nenhum dado real será perdido, portanto, esse é o melhor cenário. Se eles afetarem dados já escritos, algumas informações (esperançosamente de pouco valor) serão inevitavelmente perdidas.
O Linux MDADM é muito versátil, com as versões mais recentes tendo uma "área de remapeamento" dedicada para um array tão perfurado. Além disso, pode-se sempre usar
dd
ouddrescue
primeiro copiar a unidade com setores ilegíveis para um novo disco e usar esse disco para remontar a matriz (com alguma perda de dados, é claro).BTRFS e ZFS, por serem mais integrados com a camada de alocação de blocos, podem detectar se os dados perdidos estão em espaço vazio ou alocado, com relatórios detalhados dos arquivos afetados.