为 drbd 或 drbd 替代方案添加网络容错功能

为 drbd 或 drbd 替代方案添加网络容错功能

我使用 drbd 已经有一年左右了,现在我都快要抓狂了。每次出现网络故障(在我工作的环境中,这种情况很常见,令人失望),一对关键服务器就会发生脑裂,我必须手动干预。背景情况是,这些服务器采用主从配置,在将文件分发到世界各地的其他服务器之前,它们会对文件执行哈希操作。它们每 2-5 分钟接收一次新文件,并且两者必须始终保持同步,以便在服务发生故障转移时,另一台服务器不会提供过时的数据。虽然这对服务器尚未投入生产,但它令人沮丧,因为每次出现网络问题时,它都会导致一个节点上出现过时的数据。(令人担忧的是,这种情况频繁发生)

如何让 drbd 每次出现网络问题时都不会发生脑裂?或者自动恢复?这是我的 drbd 资源的配置。我通过 cman 堆栈对其进行控制。

resource foo {
    handlers {
            split-brain "/usr/local/bin/notify-split-brain.sh root";
    }
    protocol C;
    meta-disk internal;
    device /dev/drbd0;
    net {
            after-sb-0pri discard-younger-primary;
            after-sb-1pri discard-secondary;
            after-sb-2pri disconnect;
    }
    on nodea {
            disk /dev/sdb;
            address x.x.x.1:7789;
    }
    on nodeb {
            disk /dev/sdb;
            address x.x.x.2:7789;
    }
}

这是在 CentOS Linux 版本 7.2.1511(核心)上运行的。

相关内容