私のDebian 8.9 DRBD 8.4.3セットアップは、どういうわけか2つのノードがネットワーク経由で接続できなくなった状態になりました。単一のリソースr1
を複製する必要がありますが、両方のノードのdrbdadm down r1; drbadm up r1
の直後に、それらの/proc/drbd
は次のように状況を記述します。
最初のノード(接続状態は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
2つのノードは、/etc/drbd.d/r1.res
で引用されたIPアドレスを介して相互にpingできます。netstat
は、両方が引用されたポートでリッスンしていることを示しています。
2つのノードが Connected になり、DRBDを介して再度複製できるようにするには、どうすれば(さらに診断して)この状況から抜け出すことができますか?
ところで、抽象化のレベルが高い場合、この問題は現在systemctl start drbd
で立ち往生しているために終了しないdrbdadm wait-connect all
によって明らかになります(/lib/systemd/system/drbd.service
で示唆されているように)。
状況は明らかにスプリットブレインのケースによって引き起こされました。
drbd.service
(Sudo journalctl -u drbd
)の最近のジャーナルエントリのみを調査したため、これに気づかなかったが、問題は明らかに他のカーネルログおよび少し前の(Sudo journalctl | grep Split-Brain
)で報告された。
これにより、スプリットブレインを手動で解決すると( here または here のように)、問題のある状況が次のように解決されました。
スプリットブレインの犠牲者(DRBDリソースがr1
であると想定):
drbdadm disconnect r1
drbdadm secondary r1
drbdadm connect --discard-my-data r1
スプリットブレインの生存者について:
drbdadm disconnect r1
drbdadm primary r1
drbdadm connect r1