容错域是可用性区域或硬件节点数据中心内的故障隔离组,共享相同的电源、网络、冷却和平台维护计划。 位于不同容错域上的虚拟机(VM)实例不太可能受到同一计划内或计划外中断的影响。
可以指定实例在区域或区域中跨容错域的分布方式。 可用的容错域配置选项因规模集使用的业务流程模式以及 规模集是否使用可用性区域而异。
支持的容错域配置
容错域分布有两种类型:max 和 fixed。
下表汇总了不同业务流程模式和部署类型支持 platformFaultDomainCount 的值:
| 业务流程模式 | 部署类型 | 支持的值 | 默认值 |
|---|---|---|---|
| 均匀 | 区域或跨域 | 1, 5 | 1 |
| 均匀 | 区域(非分区的) | 1, 2, 3, 4, 5 | 5 |
| 灵活 | 区域或跨域 | 1 | 1 |
| 灵活 | 区域(非分区的) | 1, 2, 3 | 1 |
最大分布
Azure 尽可能多地将规模集的 VM 实例分散到尽可能多的容错域中。 它可能使用大于或少于五个容错域。
将 platformFaultDomainCount 设置为 1,以实现最大分布。
查看规模集的 VM 实例时,您只能看到一个故障域。 这是预期的行为。 分布是隐式的。
注释
建议对大多数规模集使用最大分布(platformFaultDomainCount = 1),因为它在大多数情况下提供最佳分布。 如果需要将实例分散到不同的硬件隔离单元,建议配置最大分布并使用多个可用性区域。 Azure 将实例分散到每个区域中的容错域。
固定分布
规模集使用固定分布时,Azure 会将 VM 实例分散到指定的容错域数。 如果规模集无法分配满足指定容错域计数的 VM,请求将失败。
将 platformFaultDomainCount 设置为大于 1 的值以实现固定扩展。
可以根据业务流程模式和部署类型选择特定数量的容错域。
统一编排模式
具有统一业务流程的规模集支持不同的容错域配置,具体取决于部署类型:
区域或跨区域规模集: 默认使用最大分布(
platformFaultDomainCount = 1)。 可以选择使用五个platformFaultDomainCount = 5容错域()配置固定分布。区域(非区域)规模集: 默认情况下,对五个容错域使用固定分布(
platformFaultDomainCount = 5)。 可以选择配置最大分布(platformFaultDomainCount = 1)。还可以考虑将规模集容错域的数量调整为与托管磁盘容错域的数量保持一致(例如
platformFaultDomainCount = 2)。 当整个磁盘容错域出现故障时,这种对齐方式有助于防止仲裁丢失。 容错域计数可以设置为小于或等于每个区域中可用托管磁盘容错域的数量。 请参阅 可用性集文档 ,了解按区域排序的托管磁盘容错域数。
灵活的编排模式
具有灵活业务流程的规模集支持不同的容错域配置,具体取决于部署类型:
区域或跨区域规模集:仅支持最大分布(
platformFaultDomainCount = 1)。区域(非区域性)规模集:默认使用最大分布(
platformFaultDomainCount = 1)。 可以选择配置容错域计数2或3。
故障域和工具
可以使用标准 Azure 部署工具和 API 配置容错域。
REST API
通过设置属性 properties.platformFaultDomainCount配置规模集的容错域分布。 请参阅 虚拟机规模集的 REST API 文档。
Azure CLI
重要
如果未指定业务流程模式,则使用 PowerShell 和 Azure CLI 创建的 VM 规模集默认为灵活业务流程模式。
通过设置 --platform-fault-domain-count 参数配置规模集的容错域分布。 请参阅 虚拟机规模集的 Azure CLI 文档。
以下示例演示如何使用 Azure CLI 部署具有不同配置的规模集:
使用三个区域的跨区域灵活规模集,每个区域内实现最大扩展分布:
az vmss create \ --resource-group myResourceGroup \ --name myScaleSet \ --orchestration-mode Flexible \ --image Ubuntu2204 \ --admin-username azureuser \ --zones 1 2 3 \ --generate-ssh-keys区域(单区域)灵活规模集,最大分布:
az vmss create \ --resource-group myResourceGroup \ --name myScaleSet \ --orchestration-mode Flexible \ --image Ubuntu2204 \ --admin-username azureuser \ --zones 1 \ --generate-ssh-keys
注释
对于跨区域和区域灵活虚拟机规模集部署,容错域计数会自动设置为 1(最大分布),并且无法配置为其他值。
具有固定分布的非区域性灵活规模集:
az vmss create \ --resource-group myResourceGroup \ --name myScaleSet \ --orchestration-mode Flexible \ --image Ubuntu2204 \ --admin-username azureuser \ --platform-fault-domain-count 3 \ --generate-ssh-keys具有最大分布的非区域性统一规模集:
az vmss create \ --resource-group myResourceGroup \ --name myScaleSet \ --orchestration-mode Uniform \ --image Ubuntu2204 \ --admin-username azureuser \ --platform-fault-domain-count 1 \ --generate-ssh-keys
创建和配置所有的规模集资源和 VM 需要几分钟时间。
实例视图 API
将 虚拟机 - 实例视图 REST API 与灵活的业务流程模式规模集配合使用时,VM 实例分布在配置的容错域中,但此信息不会通过 API 公开。 API 响应不包括容错域或更新域信息。 此行为的设计方式与返回这些属性的统一业务流程模式不同。
后续步骤
- 详细了解 Azure 环境的可用性和冗余功能