我正在运行 2 节点集群,其中 DRBD(主动/被动)由 drbd systemd 服务管理,还有一个小脚本,每当资源成为主要资源时就会安装卷。
我想以这样一种方式配置 DRBD,使其始终能够解决任何脑裂问题,并且始终至少有一个节点是主节点,并且只要两台机器都没有宕机,就能够在任何情况下提供服务。
我尝试了以下配置(其中pri-lost-after-sb
是 "reboot"
)
after-sb-0pri discard-younger-primary;
after-sb-1pri discard-secondary;
after-sb-2pri call-pri-lost-after-sb;
Run Code Online (Sandbox Code Playgroud)
和on-suspended-primary-outdated force-secondary
一些其他组合。
但我总是发现集群进入不良状态并且无法从裂脑中恢复的情况。通常我会进入StandAlone
节点并force-io-failures
辅助节点(因此,在主节点再次发生故障后,即使已连接,该辅助节点也将无法工作)。
考虑到我高度重视服务正常运行时间而不是避免数据丢失,我还能做些什么来提高此设置的稳健性吗?
drbd ×1