我正在努力理解 Azure 中的故障/更新域的概念,我们将不胜感激。我在同一可用性集下配置了 2 个虚拟机,分别具有 2 个故障域和 2 个更新域:
Fault Domain Update Domain
server_iis1 0 0
server_iis2 1 1
据我所知,故障域实际上是一个机架,但是以下几点让我感到困惑:
如果我完全失去了故障域 0,那么 server_iis1 就消失了?server_iis1 的第二个实例所在的位置应该在机架故障(故障域 0)的情况下启动并运行,这将为我提供 99.95% 的 SLA?
同样,对于 server_iis2 ,如果我丢失了故障域 1,那么 server_iis2 应该如何启动并运行?
Server_iis1 和 Server_iis2 是完全不同的 2 个虚拟机,具有不同的数据和要服务的客户。
故障域旨在保护您的工作负载(在 vm 上运行的应用程序),以防出现意外的硬件故障。在上面的示例中,iis1 和 iis2 是两个独立的虚拟机,它们在同一个物理数据中心(可用区)中运行,但位于不同的故障域中。这意味着如果由于某种原因 vm 支持基础架构的某些物理组件发生故障(机架电源、交换机、物理主机等),另一个 iis vm 将保持运行,因为它位于不同的硬件集群(故障域)上在同一个数据中心。
对于许多人来说,一件不太清楚的事情是,您的应用程序必须足够智能,才能同时在两台机器上运行。如果我在 iis1 上有一个应用程序(excel 作为一个非常基本的示例(只是幽默我))和 iis2 上的另一个应用程序(powerpoint),如果 iis1 出现故障,您将无法访问该应用程序(excel),直到 vm 故障转移到另一个主机可能需要几分钟。iis2 反之亦然,如果它失败了,你就会输掉(powerpoint)。要真正使故障域正常工作,您需要在 iis1 和 iis2 上运行 excel 和 powerpoint,因此如果一个 vm 发生故障,另一个仍然可以为应用程序提供服务,当然您的应用程序需要足够智能来处理故障/故障转移。
Soooo 容错域可防止基础架构中出现意外的意外故障。
更新域旨在确保在维护时段(客户或 Microsoft 发起)期间,我们不会一次重新启动/更新所有计算机。
例如,如果我有 5 台前端 Web 服务器连接到 5 台后端服务器,我会将 5 台前端服务器放在同一个更新域中,这样它们就不会同时重新启动,从而确保我始终可以提供 Web 流量。这也适用于我的后端服务器。我会将它们放在一个更新域中,以确保它们永远不会同时重新启动。这样做可以确保我保持服务器运行,尽管在维护窗口期间降级。
可用性集确实提供了 99.95% 的 SLA。可用区提供 99.99% 的 SLA
将您的虚拟机部署到可用区会将您的虚拟机复制到另一个物理数据中心(区域)。如果出现故障,这种故障转移会自动发生,客户无需执行任何操作。
部署可用性区域成本更低的可用性集成本更高,因为您不仅拥有与区域之间的数据复制相关的虚拟机成本,而且我们谈论的是美元。
希望有帮助