![2 个服务器实现 HA 的最佳解决方案](https://linux22.com/image/556838/2%20%E4%B8%AA%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%9E%E7%8E%B0%20HA%20%E7%9A%84%E6%9C%80%E4%BD%B3%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88.png)
只是说我对服务器和数据库有一些了解,但还不足以实现所要求的内容,所以我只需要一些建议来帮助我:)
好的,我们有两台运行 Windows Server 2008 Standard SP2 的专用服务器,由于成本限制,我只会有两台服务器,没有其他的。
在我有足够的资金进行扩展之前,这些盒子上托管的服务将是 IIS7、Apache2、SQL Server 和 MySQL。
我没有负载平衡器,也无法更改服务器的 IP 配置,因此就平衡/集群而言,我唯一能做的就是使用低 TTL 循环 DNS,这样对吗?
至于 IIS 和 apache,我有一个使用 DFS 的域共享设置,两个 Web 服务器都使用它来存储文件,这又是一种可接受的方法吗?
到目前为止,我认为只要我找到更新 DNS 服务器的方法,将流量发送到正常工作的服务器,它就会起作用。
我一直在努力解决数据库问题,到目前为止,我已将它们设置为镜像,并且我可以从一个数据库故障转移到另一个数据库,这对于 SQL 来说工作正常,因为我可以在连接字符串中指定合作伙伴服务器,但这并不理想,因为它也是每个数据库的,我不想修改应用程序。
我不知道 mysql 连接字符串中的合作伙伴服务器。
有人能解释一下吗?我已经为此烦恼了好几天了!
谢谢。
答案1
我对你的环境的建议是,假设两台机器是相同的(一台是主机器,一台是热备用机器?)微软的集群服务/IP 故障转移或者添加第三台机器作为负载平衡器运行(这非常划算,而且使管理系统变得更容易)。
您可以获得基本的负载平衡和 HA 服务使用 HAProxy或通过适当配置PFSense 盒需要花费硬件和一些时间的成本。
如果无法实现上述任何一种解决方案,循环 DNS 会为您提供(贫民窟)负载平衡和有限的弹性,以防系统发生故障(指向“好”机器的客户端继续工作,而任何获得“死” IP 的客户端则无法工作)。
您还可以实现指向“主”服务器的单个 DNS 条目,并使用一些巧妙的脚本将其更改为在主服务器消失时指向“辅助”框。只要 DNS TTL 设置为,您的所有客户端就会处于困境之中。
上述两种解决方案都有各自的问题:指向宕机服务器的客户端将无法使用您的网站,直到他们的缓存清除“死”地址。如果宕机时间超过几秒钟,这两种方法都需要进行一些干预(从 DNS 中删除“死”服务器)。
如果宕机时间延长,您可能还需要采取措施将服务器“提升”为主服务器,但这在任何 HA 实施中都是一个问题。