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