透明的地理灾难恢复网站故障转移

我们已经有负载均衡的web服务器。 即使中断不应该发生,他们这样做,有各种各样的原因。 (中央交换机故障,configuration错误的ISP路由器,骨干网故障,共享基础设施上的DOS攻击)我想把第二组服务器放在完全不同的地理位置,并且连接完全不同。 我可以用许多不同的技术来同步SQL服务器,所以这不是问题。 但是我不知道该怎么做的是当主服务器出现故障或无法访问时,透明地将现有的用户Web会话redirect到备份服务器。

AFAIK,处理这三个最常见的方式是:

  • DNS负载均衡,它使用非常低的TTL在最佳环境中智能地parsingDNS请求到服务器IP。
  • 智能redirect(Intelligent Redirection),它使用第三方网站将用户权限redirect到众所周知的二级DNS名称,如na1.mysite.com和eu.mysite.com。
  • 使用智能的最小代理服务器将请求转发到不同的站点,同时将代理服务器托pipe在云中的某处。

但是在发生站点故障的情况下,首先会使用户无法访问服务器,直到TTL导致客户端重新查询DNS并parsing到DR站点,或者导致过多的额外的DNS请求。 第二种方法仍然给我们留下了潜在的单点故障(尽pipe我可以看到多个Alogging被用于在环境之间复制主“login”angular色),但是当他们的站点目前正在使用下降。 如果云掉下来,第三个也不是多余的。 (因为他们有时不时)

从我对networking的了解,是不是有一种方法可以在2个不同地理位置的环境中为2台不同的服务器提供相同的重叠IP地址,并让IP数据包路由接pipe并将stream量路由到服务器接受请求? 这仅适用于IPv6吗? 这是什么叫,为什么DR站点故障切换目前使用这种技术? 更新:这被称为任播 我如何做到这一点? 这是值得的麻烦?

澄清:这个问题是特定于HTTP服务器的stream量,只允许服务中断长达60秒。 用户不需要closures浏览器,返回login页面或刷新任何内容。 移动用户无法接受每个页面请求的额外DNS查询。

我以前来过这里

几次。

以下是我过去的一些问题。

一般TL; DR是DNS不是一个解决scheme,由于许多原因,其中一些你已经确定。 其中一些是对上述链接问题的答案。

做地理弹性的唯一方法是使用BGP,将/ 23分成2 / 24s,由上游做广告,然后从那里做个别DNS。

然后你会得到他们之间同步的恼人的问题,但这是另一回事。

我可以用许多不同的技术来同步SQL服务器,所以这不是问题。

那么,这还不是你的问题。

如果您使用智能redirect,无论是通过更改主机名,或通过代理请求,那么你还有另一个问题。 “你把代理放在哪里,所以它不是一个SPOF”

否则,你将有N个地理上独立的站点,但有一个单点故障(代理/redirect引擎)。

我想,理论上你可以用MPLS代替你的位置在同一个L2networking上,但我不确定这将如何帮助提高故障恢复能力。

DNS本身不提供自动故障转移function。 但结合浏览器的客户端重试,它提供了一个免费的(在networking投资方面)和低延迟(〜1s)解决scheme。 请参阅下面的参考资料了解更多详

http://blog.engelke.com/2011/06/07/web-resilience-with-round-robin-dns/
多个数据中心和HTTPstream量:DNS循环是确保即时故障转移的唯一方法?