如何使我的Windows Azure应用程序能够抵御Azure数据中心的灾难性事件?

时间:2011-05-19 10:50:15

标签: azure cloud reliability

AFAIK亚马逊AWS提供所谓的“区域”和“可用区域”,以降低部分或完全数据中心中断的风险。看起来如果我在两个“区域”中有我的应用程序的副本,并且一个“区域”关闭,我的应用程序仍然可以继续工作,好像什么也没发生。

Windows Azure有类似内容吗?如何使用Windows Azure解决数据中心灾难性中断的风险?

3 个答案:

答案 0 :(得分:6)

在单个数据中心内,您的Windows Azure应用程序具有以下优势:

  • 超越一个计算实例,您的VM分为不同物理区域的故障域。这样,即使整个服务器机架发生故障,您仍然可以在其他地方运行计算机。
  • 使用Windows Azure存储和SQL Azure,存储是三重复制的。这不是最终复制 - 当写入调用返回时,至少已写入一个副本。

好的,这很简单。如果数据中心消失怎么办?以下功能将帮助您在应用程序中构建DR:

  • 对于SQL Azure,您可以设置数据同步。此工具将SQL Azure数据库与另一个SQL Azure数据库(可能在另一个数据中心)或本地SQL Server数据库同步。更多信息here。由于此功能仍被视为预览功能,因此您必须here进行设置。
  • 对于Azure存储(表,blob),您需要处理到第二个数据中心的复制,因为今天没有内置工具。例如,这可以通过每小时提取数据并将其复制到其他位置的存储帐户的后台任务来完成。 编辑:根据Ryan的回答,有blob和表格的数据地理复制。但是:除了在12月的this blog post中提及,并且可能在PDC,这不是现场。
  • 对于计算可用性,您可以设置流量管理器以跨数据中心进行负载平衡。此功能目前在CTP中 - 访问Windows Azure portal的Beta区域进行注册。

请注意,对于DR,无论是在云端还是内部部署,都会产生额外成本(例如数据中心之间的带宽,辅助数据中心中重复数据的存储成本以及其他数据中心中的Compute实例)。

与内部部署环境一样,DR需要仔细考虑并实施。

答案 1 :(得分:3)

大卫的答案非常好,但有一件事不正确。对于Windows Azure blob和表,您的数据实际上在地理上复制在子区域(例如,北美和南美)之间。这是一个异步过程,其目标是大约10分钟滞后。此过程也不受您的控制,纯粹是因为数据中心丢失。总的来说,当您使用Windows Azure blob和表格时,您的数据在2个不同的数据中心中被复制6次(令人印象深刻,没有?)。

如果数据中心丢失,他们会将您的DNS翻转blob和表存储到其他子区域,您的帐户将再次在线显示。这仅适用于blob和表(不是队列,不是SQL Azure等)。

因此,对于真正的灾难恢复,您可以使用Data Sync for SQL Azure和Traffic Manager进行计算(假设您在另一个子区域中运行热备份)。如果数据中心丢失,流量管理器将路由到新的子区域,您也可以在那里找到您的数据。

答案 2 :(得分:0)

您未考虑的一个失败是能够跨数据中心复制错误。在这种情况下,您可能需要考虑在负载平衡或故障转移方案中将Azure PAAS作为HP Cloud产品的一部分运行。