Estou usando VROC para CPU RAID com algumas unidades NVMe. Eu tenho uma matriz RAID 1 que parece estar tendo problemas. Em vez de aborrecê-lo com os detalhes, tenho uma pergunta mais geral.
Como o VROC (ou controlador RAID 1 em geral) lida com uma situação em que as unidades têm bits inconsistentes? Não há como saber qual é o correto, porque não há bit de paridade.
Como a maioria dos controladores RAID lida com isso?
Os controladores RAID nunca leem de ambas as unidades espelhadas para comparar os dados. Portanto, a resposta é - você terá uma leitura inconsistente que deve detectar e manipular no nível do sistema de arquivos. Sistemas de arquivos modernos como ZFS, BtrFS e até mesmo ReFS nascidos mortos têm opções para fazer hash de dados meta e reais.
As implementações clássicas de RAID1 não verificam ambos os espelhos para fins de comparação, nem durante a atividade normal nem no scrub. Por exemplo, o Linux MDRAID quase sempre lê a partir da primeira perna do espelho, enquanto alguns controladores de hardware usam uma abordagem round-robin.
Isso significa que um RAID1 clássico pode retornar dados inconsistentes, mesmo que exista uma boa versão em uma das pernas do espelho. Afinal, não usando a soma de verificação de dados, como um array RAID1 pode distinguir a cópia ruim da boa?
Os espelhos BTRFS e ZFS são uma questão totalmente diferente: usando a soma de verificação de dados, eles podem identificar (e corrigir) imediatamente os dados inválidos/corrompidos.