多站点高可用性


15

我们需要一个高度可用的SaaS应用程序。我们已经有一个昂贵且维护良好的Hyper-V故障转移群集,但是如今托管该群集的数据中心发生了五个小时的断电,这使我们完全脱机。所以现在我们想知道更好的方法是否是在两个单独的数据中心使用服务器。假设我们在这两个站点之间完成了所有后端文件复制和数据复制,我们想知道如何处理前端路由-难怪我们如何解决该问题,我们总是在负载均衡器不断完善的情况下单点故障。

所以问题是……我们如何在两个托管站点之间设置负载平衡,以使负载平衡器不是单点故障?有没有办法使用两个单独的负载均衡器,每个站点一个?我们是否应该考虑循环DNS?

Answers:


14

要正确执行此操作,您需要具备:

  • 两个数据中心中的两个单独的实例(您已经确定)
  • 两个数据中心之间的同步(已经确定)
  • 发生故障时将客户端从一个重定向到另一个的方法

有两种常见的方法可以做到这一点。一个简单,一个...不。

域名解析

轮循DNS并不是您想要的,因为您很可能希望所有请求都发送到主DC,而第二个DC仅在第一个DC的停机期间使用。

不过,您可以做的是将DNS的TTL设置为非常低的TTL(例如30秒或5分钟),这意味着,如果DC确实出现故障,您只需在5分钟左右的时间内更新DNS,您的客户将指向您的其他DC。

这意味着,由于您的两个DC具有不同的IP布局,因此您需要在数据中心的设置中对此进行调整。

BGP协议

基本上,如果您要问这个问题,那么这是您无法企及的。简而言之,您的IP地址保持不变,但是它们已从一个数据中心“移动”到另一个数据中心。这涉及昂贵的路由器,昂贵的IP范围,以及对本地注册的AS编号和IP范围的昂贵订阅。

BGP路由器停止在主要数据中心发布广告,并开始在辅助数据中心发布广告。然后,Internet在脱机数据中心周围路由,并将流量发送到新的DC。


如果您是使用ESXi和vSphere虚拟化的,则VMWare拥有一个相当不错的产品,我们曾经对其进行过试用,称为VMWare Site Recovery Manager,它基本上可以为您完成所有工作。它使您的VM配置保持同步,并在第一个站点离线时在第二个站点上启动它们。虽然这是一大笔钱。


即使使用SRM,您仍然需要整理复制内容以及某种IP故障转移。
EEAA

是的,尽管esxi5确实有新的非San复制产品。我没有研究太多。
马克·亨德森

哦是的 我记得有听到过这样的话。
EEAA 2012年

1

您需要对负载均衡器进行负载均衡。

可以使用DNS轮询做到这一点,但是这种方法存在许多问题。您无法控制缓存条目的时间超过所需时间的客户端,也不能强制流量流向特定位置。

您也可以使用全局服务器负载平衡(GSLB)进行此操作。这是利用DNS的更高级方法,可让您从Internet看到多个数据中心。简而言之,您可以设置某种机制将流量分成多个切片,然后使用DNS来选择一个切片。我们使用DNS解析器的哈希值,该哈希值配置为对客户端进行查找。其他人则使用地理位置来路由到“最近的”数据中心。如果该数据中心或群集出现单点故障,则需要添加某种机制以快速从GSLB中删除IP。

http://www.eukhost.com/web-hosting/kb/global-server-load-balancing/

最后,一些真正高级的人使用Anycast DNS解决了这个问题。这再次尝试利用“最接近的”数据中心方法。任播您的服务意味着您将需要消除任何“状态充实”。这可能很难证明。


看来这种方法仍然有单点故障,即您提供的链接中描述的“主服务器”。
迈克

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.