我们正在寻找一种方法来提高我们的一台服务器(Apache/MySQL/Virtualmin 设置)的可靠性。到目前为止,在过去的六个月里,我们遇到了各种可能出现的混乱情况(DNS 故障、DDOS、Dom0 故障、网络中断、DomU 故障……;在正常情况下,一天内会同时出现 2 次),虽然所有问题都在不到一天的时间内得到解决,但仍然令人担忧——该主机上有大约 50 个客户网站,每次服务器宕机时,他们都会让我们感到不安(服务器的可用性仍然超过合同保证的 99%,但是……您还记得服务器宕机 5 次,而不是 360 天的正常运行时间)。
目前的计划:
- 备份 DNS 服务器(应该不会有太大问题)
- 服务器本身的高可用性设置。这里的问题是将数据复制到辅助主机。
主机会位于不同的(顺便说一下,是 Hetzner)数据中心,因此我们的带宽会相当有限(100 MBit 上行链路,并且至少应该有一些带宽留给实际用户……)并且数据加密或多或少是一个固定要求。
DRBD 本身在 WAN 上的扩展性很差,也不提供加密。DRBD 代理声称可以解决带宽问题(但据我所知,不是加密问题),但据我所知,它实在是太贵了,每年 5000 美元太贵了(我很确定这比我们使用该服务器的收入还要多)。
另一方面,从我的个人经验来看,OpenVPN/SSH 隧道不够可靠,无法保证我们不会有错误警报触发不必要的故障转移(更不用说开销会进一步降低硬盘性能)。
那么... 有什么替代方案吗?还是我只是忽略了某些东西?
编辑:澄清一下,我更喜欢文件系统/块设备级别的复制。应用程序级别的复制是可能的,但我宁愿运行一个复制解决方案,而不是为每个应用程序运行一个。
答案1
您似乎对 DRBD 复制有些抵触。我认为这是因为它不符合您的需求。它复制块设备,占用大量带宽(尽管链接压缩可能会大大缓解这种情况)。看看您是否更喜欢更高级别的复制 - 例如MySQL 复制机制对于数据库和类似的东西同步对于文件系统。
用来自linux-ha项目或设置半自动或手动故障转移机制并结合一些监控肯定需要一些工作,但从长远来看应该可以满足您的要求。
当然,您仍然需要一个加密的隧道来传输流量,但我不明白您为什么不愿意使用 OpenVPN - 因为隧道只是为了备份/备用系统而存在,并且您将拥有一个见证人(在具有自动故障转移功能的 HA 设置中)或一个监控系统(在具有监控功能的设置中),它独立于隧道的存在,您不会在隧道中断时进行任何故障转移,只会在中断时收到警报以修复隧道(这当然是必要的,否则您将失去将故障转移到最新备用系统的能力)。