Questão do Drbd - é por design?

1

Na instalação do novo drbd (nenhum sistema de arquivos no drbd0, apenas sincronizado) Eu invalidei o estado "node2" e a sincronização completa foi iniciada:

root@node1:~# drbdadm invalidate-remote drbd0
root@node1:~# drbd-overview
 0:drbd0/0  SyncSource Secondary/Secondary UpToDate/Inconsistent
        [>....................] sync'ed:  0.2% (153188/153464)Mfinish: 1:04:59 speed: 40,180 (40,180) K/sec

e tendo o drbd0 sync de node1 para node2 em progresso eu configurei ele primário no node1 por um momento, criei ext4, e coloquei de volta em standby e então eu fui para o node2 (inconsitente) e o fiz como primário sem nenhum aviso (sic!)

root@node2:~# drbd-overview
 0:drbd0/0  SyncTarget Secondary/Secondary Inconsistent/UpToDate
        [====>...............] sync'ed: 26.7% (112500/153464)Mfinish: 0:47:58 speed: 40,000 (40,296) want: 74,040 K/sec
root@node2:~# drbdadm primary drbd0
root@node2:~# drbd-overview
 0:drbd0/0  SyncTarget Primary/Secondary Inconsistent/UpToDate
        [====>...............] sync'ed: 27.1% (111912/153464)Mfinish: 0:50:37 speed: 37,724 (40,252) want: 75,600 K/sec
root@node2:~#

em seguida, montei o ext4 do sistema de arquivos do dispositivo inconsistente sem problemas: root@node2:~# mount /dev/drbd0 /mnt

então nesse / mnt eu criei alguns milhares de pares de chaves rsa (o tempo todo em inconsistend drbd0 no node2 e sync de node1 em progres)

eu desmontei / mnt no node2 e montei no node1 e vejo todos os arquivos (sync node1- > node2 ainda em progresso) que criei no estado inconsistente drbd0 no node2.

em seguida, criei outros milhares de arquivos no node1 e remontei / mnt para node2 e vi todos os arquivos que foram criados no node1 e no node2 (durante a sincronização completa no drbd0 no node2 no porgress = estado inconsistente dele)

Eu verifiquei todas as somas de verificação de arquivos em cada etapa e todas estavam ok.

Como funciona? Isso é por design? Por que não houve estado de cérebro dividido quando eu ativei drbd0 no dispositivo inconsistente? Qual é o estado real do dispositivo drbd0 no nó inconsistente que pode ser usado como primário para leitura / gravação? A ressincronização foi feita nos dois sentidos: da sincronização completa node1-node2 (como o node2 foi invalidado na primeira etapa) e do nó inconsistente node2 - > node1 as mudanças / arquivos que criei quando montei lá?

Após a sincronização ser concluída, o status final é ok, mas ainda estou confuso ...

root@node2~# drbd-overview
 0:drbd0/0  Connected Primary/Secondary UpToDate/UpToDate /mnt ext4 148G 1.7G 145G 2%

agradeço antecipadamente por qualquer explicação,

Atenciosamente,

    
por DonJ 27.07.2017 / 11:17

1 resposta

1

Completamente por design. Quando você criou o nó com o Inconsistent disk primary, ele essencialmente lê e grava na rede para o par com o UpToDate disk.

Se você quebrasse a conexão de rede enquanto o disco Inconsistent fosse primário, as coisas teriam ido bem rápido para o sul. ; -)

O mesmo também se aplica se o disco falhar no nó primário. O DRBD alternará para diskless e, em seguida, enviará todas as leituras e gravações para o nó do mesmo nível (supondo que o par tenha um disco que é UpToDate . Isso pode ajudar a evitar uma interrupção do serviço devido à falha do disco local.

    
por 27.07.2017 / 18:10

Tags