我们目前正在将我们的单个 Linux 服务器移动到其他几个物理 Linux 服务器,并希望借此机会提供更多的故障转移选项。
备份很好,我们“真的”不需要 HA,但是,如果我们要花大约 1 天的时间来更换硬件/从备份中恢复,那就有点太多了。如果出现任何真正严重的硬件故障(如果没有其他事情需要等待 DNS 更改),停机一到三个小时是“可以接受的”。
我们目前在一台机器上运行了一堆 KVM 虚拟化映像,用于 apache(多个主机名)、mysql 和 exim。该机器有多个外部 IP(每个虚拟映像一个),我认为如果出现问题,这将是最大的问题之一。如果出现硬件故障,需要联系我们的托管机构 (Hetzner) 将这些 IP 重新配置到不同的服务器(我们目前有第二台机器,它对虚拟机映像进行快照,并对虚拟机进行基于文件系统的 rsync 备份)。
我们计划在 2-3 台可用的物理机器(不包括备份)上运行 apache + mysql + exim。
我应该如何设置才能最大限度地减少停机时间什么时候会出现硬件故障吗?
仍然虚拟化?存储使用 DRDB?Web 服务器使用 nginx 代理/HAproxy?不使用一堆外部 IP 来提供各种服务?HA?故障转移?冗余以提高性能?
答案1
我认为在您的环境中,减少停机时间的最佳解决方案是以下
- 使用故障转移 IP -http://wiki.hetzner.de/index.php/Failover/en
- 创建 2 个指向不同物理服务器的 MX 记录
- 对于 MySQL,使用主从或主主复制(取决于您的应用程序)
- 对于 http,请使用 haproxy/nginx
有了这样的设置,停机时间将为 10-20 分钟(在迁移故障转移 IP 期间)。当然,如果您的唯一一个节点发生故障;)