DRBD 配置可自动解决任何裂脑问题

DRBD 配置可自动解决任何裂脑问题

我正在运行 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;

以及on-suspended-primary-outdated force-secondary其他一些组合。

但我总是发现集群进入不良状态并且无法从裂脑中恢复的情况。通常我会进入StandAlone节点和辅助force-io-failures节点(因此在主节点再次发生故障后,即使连接了辅助节点,该节点也无法工作)。

考虑到我高度重视服务正常运行时间而不是避免数据丢失,我还能做些什么来提高此设置的稳健性?

答案1

过去,我曾多次尝试设置类似的集群。直到我了解到 DRBD 在设计上存在缺陷,并以“裂脑”作为其第二个名称。在 DRBD9 中,情况有所好转(仅与 8.xx 相比,后者是一场噩梦),但它仍然无法用于生产。我只看到一个解决方案 - 节省您的时间并迁移到更可靠的系统。例如,Ceph。

相关内容