Hoje tive um problema com o DRBD8. Após uma queda de luz inesperada, o DRBD não sincronizava mais em ambos os lados. Na verdade, nem conseguia estabelecer comunicação, ficando como Secondary/Unknown e vice-versa (dependendo do lado). No /var/log/syslog, era possível ver:
Nov 3 15:26:17 base01-dmz kernel: drbd0: helper command: /sbin/drbdadm split-brain
Nov 3 15:26:17 base01-dmz kernel: drbd0: helper command: /sbin/drbdadm split-brain minor-0 exit code 0
Assim, resolvi rodar um fsck em um dos lados (o que considero principal) para acabar com os erros. Isso funcionou. Mas, mesmo assim, o DRBD continuava a mostrar a situação anterior.
Depois de muito garimpar na Internet, tive que fazer um Frankenstein para obter a solução. Assim sendo, fiz o seguinte (com o módulo drbd carregado):
1. No lado considerado ruim, executei:
# drbdadm disconnect <recurso>
# drbdadm — –discard-my-data connect <recurso>
Obs: acima, onde parece haver 2 travessões (antes de “discard”), foi digitado traço-traço (duas vezes).
2. No lado considerado bom:
# drbdadm disconnect <recurso>
# drbdadm connect <recurso>
Caso você queira fazer isso com todos os recursos, use all como “recurso”.