规模集与可用区的高可用性

You plan to deploy several Azure virtual machines.

You need to ensure that the services running on the virtual machines are available if a single data center fails.

Solution: You deploy the virtual machines to two or more scale sets.

Does this meet the goal?

中文答案和解答

好的,我们来分析这个问题。

中文答案:

不满足。


解答 (Explanation):

这个解决方案不一定能实现目标。仅仅将虚拟机部署到两个或多个规模集(Scale Sets)并不能保证在单个数据中心发生故障时服务的可用性。

关键问题在于这些规模集(Scale Sets)是如何部署的。

  • 失败的场景:如果您将这两个规模集都部署在同一个可用区 (Availability Zone) 内,那么当该可用区(它代表一个或多个数据中心)发生故障时,您所有的虚拟机和规模集都会同时变得不可用。这样就无法实现目标。

  • 正确的解决方案:要确保在单个数据中心发生故障时服务仍然可用,您必须将资源部署到多个可用区 (Availability Zones)。可用区是 Azure 区域内物理上独立的位置,每个区域都有自己独立的电源、冷却和网络。

正确的做法应该是以下两种之一:

  1. 最佳实践:部署一个虚拟机规模集,并将其配置为跨越多个可用区(例如,区域中的区域 1、2 和 3)。这样,Azure 会自动将该规模集中的虚拟机实例分布到这些物理上隔离的数据中心,从而实现高可用性。
  2. 替代方案:部署两个或多个虚拟机规模集,但要确保将每个规模集分别部署到不同的可用区。例如,规模集A部署在区域1,规模集B部署在区域2。

总结:

实现目标的关键技术是可用区 (Availability Zones),而不是规模集 (Scale Sets) 的数量。因为该解决方案没有提及跨可用区进行部署,所以它不能保证满足目标。