Limpeza de dados e reparo de um espelho RAID1?

1

No Linux, se eu tiver um software RAID1 espelhamento /dev/md1 com N ≥ 1 dispositivos ativos, quais são as semânticas do comando repair ?

echo "repair" >/sys/block/md1/md/sync_action

Estou correto em assumir que

  • no caso de 1 dispositivo ativo, o comando repair não faz nada,
  • no caso de dois dispositivos ativos, o comando repair pesquisa discrepâncias de dados e sobrescreve dados incompatíveis de um dos dispositivos com os dados incompatíveis do segundo dispositivo, e
  • no caso de 3 (ou mais) dispositivos ativos, o comando repair procura discrepâncias de dados, descobre (se possível) ou decide quais conteúdos de dados são mais predominantes e com esses dados substitui os dados não correspondentes em outros dispositivos?

Eu li Documentação / admin-guide / md.rst e até Documentation/device-mapper/dm-raid.txt da documentação do kernel Linux, mas atualmente não são muito informativos. Eu também tentei entender os drivers /md/raid1.c mas não é muito bem comentado e eu não tenho conhecimento dos componentes internos do kernel Linux para entendê-lo.

    
por jotik 04.04.2017 / 12:38

1 resposta

2

Se o código não foi alterado, o RAID1 de 3 vias não oferecerá uma recuperação inteligente / melhor comparável às scrubs do BTRFS / ZFS.

Do blog do desenvolvedor principal do mdraid:

It is my position that if there is an inconsistency that needs to be corrected then it should be corrected in a simple predictable way and that any extra complexity is unjustified. For RAID1, that means copying to first block over all the others

Dê também uma olhada aqui . Um resumo:

It has already read all blocks and now compares them to see if they are the same. If not it copies the first to any that are different.

    
por 04.04.2017 / 13:39