便宜、可靠的高可用性解决方案?

Cre*_*hal 2 high-availability drbd

我们正在寻找一种方法来提高我们的一个服务器(Apache/MySQL/Virtualmin 设置)的可靠性。到目前为止,在过去的六个月里,我们已经对那台服务器进行了各种可能的 clusterfuck(DNS 故障、DDOS、Dom0 故障、网络中断、DomU 故障……;在美好的第 2 天),而所有问题都得到了解决在不到一天的时间里,它仍然令人担忧——该主机上大约有 50 个客户网站,每次服务器宕机时它们都会让我们感到窒息(服务器的可用性仍然超过合同保证的 99%,但是……你请记住服务器有 5 次停机,而不是 360 天)。

到目前为止的计划:

  1. 备份 DNS 服务器(应该不是什么大问题)
  2. 服务器本身的高可用性设置。这里的问题是数据复制到辅助主机。

主机将位于不同的(Hetzner,顺便说一句)数据中心,因此我们的带宽相当有限(100 MBit 上行链路,并且至少应该为实际用户留下一些带宽......)并且数据加密更多或少一个固定的要求。

DRBD 本身在 WAN 上的扩展性很差,也不提供加密。DRBD 代理声称可以解决带宽问题(但不是加密问题,据我所知),但从我读到的内容来看,它实在是太贵了,每年 5000 美元太多了(我很确定这不仅仅是什么我们正在通过该服务器赚钱)。

另一方面,根据我的个人经验,OpenVPN/SSH 隧道不够可靠,无法保证我们不会有错误警报触发不必要的故障转移(更不用说降低硬盘性能的开销)。

那么......有什么替代方案?还是我只是忽略了什么?

编辑:澄清一下,我更喜欢文件系统/块设备级别的复制。应用程序级复制是可能的,但我宁愿运行一个复制解决方案,而不是为每个应用程序运行一个。

the*_*bit 5

您似乎对 DRBD 复制有些困惑。我认为这是因为它不适合您的需求。它复制块设备并且非常占用带宽(尽管链接压缩可能会减轻很多)。看看你是否对更高级别的复制不满意——比如数据库的 MySQL 复制机制和文件系统的lsyncd之类的东西。

将它与来自linux-ha项目的东西粘合在一起,或者结合一些监控设置半自动或手动故障转移机制肯定是一些工作,但从长远来看应该会给你你想要的。

当然,您仍然需要一个用于流量的加密隧道,但我不明白您不愿意使用 OpenVPN - 因为隧道只是为了备份/备用系统而存在,您将有一个见证人(在一个具有自动故障转移的 HA 设置)或独立于隧道存在的监控系统(在具有监控的设置中),您不会在隧道中断时进行任何故障切换​​,并且只会在中断时收到警报以修复隧道(这是当然是必要的,否则您将失去故障转移到最新备用系统的能力)。