跨多个数据中心托管的网站和数据库

跨多个数据中心托管的网站和数据库

我们的托管服务提供商最近发生了一次重大数据中心故障。他们失去了光纤连接,导致断网 9 小时,我们的大多数客户都无法连接。

这导致我们考虑将我们的网站托管在两个独立的数据中心。

该网站是一个带有 Sql 2008 数据库的 asp.net 网站。我读过几篇有关循环 IP、任播 IP 等的文章。

这对我来说是新的恐怖,所以我完全不知道从哪里开始。

我有一些问题:

  1. 我们如何才能将数据库托管在两个数据中心并保持同步
  2. 1 个数据中心是否必须充当主数据中心?
  3. 我希望所有用户都转到数据中心 1,但如果 1 不可用,我希望流量移动到数据中心 2。如何实现?

这些只是一些开始的问题。如果有人能给我概述如何解决这个问题,或者给我指出一些有用的资源,我将不胜感激。

答案1

说实话,这很难实现。

SQL Server 在镜像和群集的高延迟链接(本例中的高延迟> = 1Ms)下表现不佳,而这两种方法是唯一可以保证数据最新的方法。如果出现任何延迟,您需要切换到复制或日志传送。否则,您的数据库在读写速度方面将受到严重影响。

就任播而言,这需要非常强大的 DNS 网络。有 DNS 提供商可以为您做到这一点。

对于 DNS 循环/故障转移,这通常被认为是一种非常糟糕的故障转移方法,但是如果您与客户签订的 SLA 可以容纳它,那么它可能“足够好”。如果您的 TTL 较低(例如,5-30 分钟),那么您可以进入并翻转 DNS 记录以指向您的第二个数据中心,然后您的大多数客户端将在 <30 分钟内恢复在线(尽管那里有很多损坏的 DNS 缓存器,因此您的里程可能会有所不同)。

另一种选择是使用内置于 SAN 和虚拟机管理程序中的某种形式的高可用性。VMWare 的 SRM 就是一个不错的选择。如果您的 SAN 可以对 iSCSI LUN 进行块级复制,并且您拥有经过适当许可的 VMWare 集群,那么当 VMWare 检测到主站点已脱机时,它就可以启动您的灾难站点。由于 vSphere 5 在 vCPU 和 vRAM 分配数量方面取得了巨大进步,因此现在即使是大型 SQL 服务器也可以实现这一点。但是,这需要在资金和基础设施方面进行巨额投资。

相关内容