Como o mdadm reconhece qual dispositivo é o correto para sincronizar outras pessoas com

5

Imagine que você tenha o mdadm raid1 com 2 discos.

Em seguida, você desliga o servidor, divide os discos em uma máquina diferente e inicializa os dois, para que eles se tornem um pouco inconsistentes

Agora você desativa essas duas caixas e coloca os discos de volta na máquina original e inicializa-os.

Como o mdadm descobre qual desses dois discos está correto e qual deles está "errado" que seria sincronizado com o correto?

É possível até mesmo especificar isso? O que realmente aconteceria se você fizesse isso, os discos seriam sincronizados automaticamente ou a matriz seria interrompida?

    
por Petr 22.02.2015 / 14:10

1 resposta

7

Nesse cenário, cada disco alegaria que o outro disco falhou.

O resultado depende de como exatamente você está montando discos, mas essencialmente, ele irá com um disco e ignorará o outro; ou pode montar o outro como um ataque separado, que lhe dá um cérebro dividido.

Eu fiz uma experiência com dispositivos de loop, onde eu primeiro alterei o loop1 e depois mudei o loop2, então o loop2 foi o mais "recente", mas foi ignorado:

# mdadm --assemble /dev/md42 /dev/loop1 /dev/loop2
mdadm: ignoring /dev/loop2 as it reports /dev/loop1 as failed
mdadm: /dev/md42 has been started with 1 drive (out of 2).

E se você fizer o contrário, apenas ignora o outro disco:

# mdadm --assemble /dev/md42 /dev/loop2 /dev/loop1
mdadm: ignoring /dev/loop1 as it reports /dev/loop2 as failed
mdadm: /dev/md42 has been started with 1 drive (out of 2).

O que me leva a acreditar que apenas fica com o disco que encontrou primeiro. Portanto, é perfeitamente possível que, após uma reinicialização, você de repente veja o outro lado do RAID. Isso é muito ruim.

Não sincroniza automaticamente, ignora o outro disco completamente:

# cat /proc/mdstat 
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] 
md42 : active raid1 loop1[0]
      102272 blocks super 1.2 [2/1] [U_]

Você nunca quer estar nesta situação, então você deve evitá-lo (não provocá-lo de propósito, movendo os discos da maneira que você descreveu). Conflitos como esses devem ser resolvidos manualmente.

    
por 22.02.2015 / 15:23

Tags