Моя установка Debian 8.9 DRBD 8.4.3 каким-то образом перешла в состояние, когда два узла больше не могут соединяться по сети. Они должны копировать один ресурс r1
, но сразу после drbdadm down r1; drbadm up r1
на обоих узлах их /proc/drbd
опишите ситуацию следующим образом:
на 1-м узле (Состояние подключения либо WFConnection
или StandAlone
):
1: cs:WFConnection ro:Primary/Unknown ds:UpToDate/DUnknown C r-----
ns:0 nr:0 dw:0 dr:912 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:20
на 2-м узле:
1: cs:StandAlone ro:Secondary/Unknown ds:UpToDate/DUnknown r-----
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:48
Два узла могут пинговать друг друга по IP-адресам, указанным в /etc/drbd.d/r1.res
, и netstat
показывает, что оба прослушивают указанный порт.
Как я могу (провести дальнейшую диагностику и) выйти из этой ситуации, чтобы два узла стали Связано и снова реплицировать через DRBD?
Кстати, на более высоком уровне абстракции эта проблема в настоящее время проявляется в systemctl start drbd
никогда не выходит, видимо потому, что застревает в drbdadm wait-connect all
(как было предложено /lib/systemd/system/drbd.service
).
Ситуация, по всей видимости, была вызвана случаем расщепления мозга.
Я не заметил этого, потому что я проверял только последние записи журнала на предмет drbd.service
(sudo journalctl -u drbd
), но проблема, по-видимому, была обнаружена в других журналах ядра и немного раньше (sudo journalctl | grep Split-Brain
).
При этом, вручную решая разделенный мозг (как описано Вот или Вот) также разрешил неприятную ситуацию следующим образом.
На жертве с разделенным мозгом (при условии, что ресурс DRBD r1
):
drbdadm disconnect r1
drbdadm secondary r1
drbdadm connect --discard-my-data r1
О выжившем с разделенным мозгом:
drbdadm primary r1
drbdadm connect r1