O Raid 1, sendo um espelho, depende de todos os discos em um espelho serem cópias exatas um do outro. Pegue seu disco rígido aleatório e outro disco rígido aleatório, e você possivelmente possui dados diferentes, violando essa presunção. É por isso que a inicialização é necessária. Ele simplesmente copia o conteúdo da primeira unidade para outras pessoas. Observe que, em algumas condições, você pode evitar a inicialização das unidades - normalmente os dispositivos novos de fábrica já possuem zeros em todo o lugar, portanto, você pode simplesmente ignorar isso. A mdadm
opção --assume-clean
faz isso, mas avisa:
--assume-clean
Diga ao mdadm que a matriz já existia e é conhecida por estar limpa. Pode ser útil ao tentar se recuperar de uma falha grave, pois você pode ter certeza de que nenhum dado será afetado, a menos que você realmente grave na matriz. Também pode ser usado ao criar um RAID1 ou RAID10 se você deseja evitar a ressincronização inicial, no entanto, essa prática - embora normalmente segura - não é recomendada. Use isso apenas se você realmente souber o que está fazendo.
Se você não fizer isso, há uma discrepância entre as unidades e a leitura, não há como saber o que a unidade irá ler. Você deve estar bem seguro com um sistema de arquivos (mas observe abaixo), porque provavelmente escreverá antes de ler qualquer coisa desse dispositivo e depois estará claro.
Observe que pelo menos o Linux mdadm
inicializará a matriz em segundo plano. Felizmente, você pode criar um FS no primeiro segundo. O desempenho vai sofrer até que a inicialização seja concluída, mas é tudo.
Mas:
a) Ao executar mkfs
alguns utilitários, verifique se já existe algo nessa unidade. Embora isso atinja apenas algumas regiões conhecidas da unidade, ele é lido antes de você escrever qualquer coisa, colocando-o em perigo.
b) Se você fizer uma ressincronização periódica do seu array, o dispositivo RAID não saberá nada do seu FS. Ele simplesmente lê todos os blocos de cada dispositivo e os compara. E se você não estiver usando um FS de cópia na gravação (por exemplo, ZFS ou BTRFS) e nunca preencher seu FS, é perfeitamente plausível que um bloco fique não inicializado da perspectiva do FS por anos.
Por que sincronizar novamente com dispositivos RAID1?
Pelo mesmo motivo, você ressincroniza com dispositivos RAID5 ou qualquer outro nível (exceto RAID0). Ele lê todos os dados e compara / verifica as somas de verificação RAID (no RAID 5 ou 6). Se um pouco foi invertido de alguma forma (porque a memória HD ficou invertida espontaneamente, porque os celulares de você e seus cinco vizinhos apenas interferiram acidentalmente nessa região específica do prato, seja qual for), ele detectará inconsistência, mas não será capaz de ajudar você. Se, OTOH, um dos discos rígidos simplesmente reportar "Não consigo ler esse bloco", o que é mais provável em uma unidade com falha, você detectou uma falha mais cedo e reduziu o tempo em execução no modo degradado (contando de falha na unidade, não a partir de quando você a notar). O ataque não ajudará se uma unidade falhar e um mês depois a outra falhar se você não
RAID10
Agora, para o RAID10, todas as opções acima são válidas. Afinal, o RAID10 é apenas uma maneira inteligente de dizer 'estou colocando meus dois dispositivos RAID1 em um par RAID0'.
Embargo:
Tudo isso é um comportamento indefinido. Por que verifiquei no Linux, usando mdadm
, outras implementações de RAID de software podem se comportar de maneira diferente. Outras versões do kernel do Linux e / ou mdadm
ferramentas que eu estou usando também podem se comportar de maneira diferente.