我有几台服务器。我们想建立新的大服务(“大”这个词来自我的老板)。
我想使用两个 Cisco LoadBalancer ACE 4700,但是如果其中一个 ACE 发生故障,会发生什么情况?
所以我想在这两个设备之间设置 DNS 负载平衡。
我的目标是使用 DNS 防止一个负载均衡器发生故障。
怎么办?使用循环法是好主意还是坏主意?
答案1
我们使用 dnsmadeeasy.com 服务进行 DNS 负载平衡(共享是正确的词)和 DNS 故障转移。因此,我们为相同的 DNS 名称拥有多个记录,并且在 DNS made easy 中,您可以配置故障转移和监控,而且成本也不高。我们已经多次使用这项服务来节省开支。
问题在于:如果你在用户会话中使用会话持久性,不要使用 DNS 负载平衡。仅使用 DNS 故障转移,效果也很好。
回答 Ladadadada 的问题,你可以将 ttl 设置得很低。我们的 ttl 为 60 秒。
答案2
DNS 轮询负载平衡有利于分散负载,但它不是非常适合故障转移或冗余。这样做的原因是 DNS 记录会被缓存,通常会缓存几个小时。如果您的某个负载均衡器发生故障,50% 的用户将已经拥有该 IP 地址作为您域的结果,并将继续使用它,直到他们的缓存过期。
我知道 Cisco CSS 负载平衡器可以配置为冗余对,这样每个负载平衡器都可以监控另一个负载平衡器的运行状况。在任何给定时间,只有一个负载平衡器处理流量,但如果其中一个负载平衡器发生故障,另一个负载平衡器将立即接管。这种设置只需要一个 IP 地址。
我不知道 ACE 产品线的情况,但如果他们做不到同样的事情,我会感到惊讶。快速谷歌搜索显示它确实支持某种故障转移。
答案3
Cisco ACE 通常(据我所知)以主动-被动对的形式部署,因此如果其中一个发生故障,另一个应该接管。这与 DNS 无关(DNS 只是通过 ACE 提供的另一种服务)。如果两个 DNS 服务器都位于同一个数据中心(或可能是大都市数据中心),这将是合适的。
关于 ACE 需要记住一件事(我想这取决于您的部署),但如果您需要知道客户端 IP(也许您正在使用不同的客户端视图进行拆分 DNS),那么您将失去这种可见性,并且您需要将内部和外部客户端指向不同的(负载平衡/共享/冗余)服务器(这更接近 DNS 的最佳实践,因为您希望内部(递归、缓存)服务器与外部(权威)DNS 服务器分开。
动态 DNS 更新也是需要考虑的问题(您的集群状态如何?)
答案4
不要使用 DNS 负载平衡,因为它无法对某些设备的可用性(不可用性)做出反应。使用 VRRP 代替它(这两个负载平衡器将共享一个 IP,当主设备死机时,从设备将获取此 IP)并将 DNS 记录指向该虚拟 IP。