如何使用可用性集

本教程介绍如何使用称作“可用性集”的功能提高 Azure 上虚拟机解决方案的可用性和可靠性。 可用性集可确保在 Azure 上部署的 VM 能够跨多个隔离的硬件群集分布。 这样,就可以确保当 Azure 中发生硬件或软件故障时,只有一部分 VM 会受到影响,整体解决方案仍可使用和操作。

本教程介绍如何执行下列操作:

  • 创建可用性集
  • 在可用性集中创建 VM
  • 检查可用的 VM 大小

Note

在 Azure 中国区使用 Azure CLI 2.0 之前,请先运行 az cloud set -n AzureChinaCloud 来改变云环境。如果想切回国际版 Azure,请再次运行 az cloud set -n AzureCloud

如果选择在本地安装并使用 CLI,本教程要求运行 Azure CLI 2.0.4 或更高版本。 运行 az --version 即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI 2.0

可用性集概述

可用性集是一种逻辑分组功能,在 Azure 中使用它可以确保将 VM 资源部署在 Azure 数据中心后,这些资源相互隔离。 Azure 确保可用性集中部署的 VM 能够跨多个物理服务器、计算机架、存储单元和网络交换机运行。 如果出现硬件或 Azure 软件故障,只有一部分 VM 会受到影响,整体应用程序仍会保持运行,可供客户使用。 如果想要构建可靠的云解决方案,可用性集是一项关键功能。

假设某个基于 VM 的典型解决方案包含 4 个前端 Web 服务器,以及 2 个托管数据库的后端 VM。 在 Azure 中,需要在部署 VM 之前先定义两个可用性集:一个可用性集用于“Web”层,另一个可用性集用于“数据库”层。 创建新的 VM 时,可在 az vm create 命令中指定可用性集作为参数,Azure 会自动确保在可用性集中创建的 VM 在多个物理硬件资源之间保持独立。 如果运行某个 Web 服务器或数据库服务器 VM 的物理硬件有问题,可以确信 Web 服务器和数据库 VM 的其他实例会保持运行,因为它们位于不同的硬件上。

在 Azure 中部署基于 VM 的可靠解决方案时,使用可用性集。

创建可用性集

可使用 az vm availability-set create 创建可用性集。 在本示例中,将 myResourceGroupAvailability 资源组中名为 myAvailabilitySet 的可用性集的更新域数和容错域数均设置为 2。

创建资源组。

az group create --name myResourceGroupAvailability --location chinaeast
az vm availability-set create \
    --resource-group myResourceGroupAvailability \
    --name myAvailabilitySet \
    --platform-fault-domain-count 2 \
    --platform-update-domain-count 2

使用可用性集可跨容错域和更新域隔离资源。 容错域代表服务器、网络和存储资源的隔离集合。 前面的示例指出我们想要在部署 VM 时,将可用性集至少分布在两个容错域之间。 此外,还指出要将可用性集分布在两个更新域之间。 两个更新域确保当 Azure 执行软件更新时,VM 资源可以隔离,防止 VM 下面运行的所有软件同时更新。

在可用性集内创建 VM

必须在可用性集中创建 VM,确保它们正确地分布在硬件中。 创建后,无法将现有 VM 添加到可用性集中。

使用 az vm create 创建 VM 时,利用 --availability-set 参数指定可用性集,以指定该可用性集的名称。

for i in `seq 1 2`; do
   az vm create \
     --resource-group myResourceGroupAvailability \
     --name myVM$i \
     --availability-set myAvailabilitySet \
     --size Standard_DS1_v2  \
     --image Canonical:UbuntuServer:14.04.4-LTS:latest \
     --admin-username azureuser \
     --generate-ssh-keys \
     --no-wait
done 

现在,我们已在新建的可用性集中创建了两个虚拟机。 由于它们在同一可用性集中,Azure 会确保 VM 及其所有资源(包括数据磁盘)分布在隔离的物理硬件上。 这种分布方式有助于确保提高整体 VM 解决方案的可用性。

如果通过转到“资源组”>“我的资源组可用性”>“我的可用性集”在门户中查看可用性集,则应查看如何跨 2 个容错域和更新域分布 VM。

门户中的可用性集

检查可用的 VM 大小

稍后可向可用性集添加更多 VM,但需了解在硬件上可用的 VM 大小。 使用 az vm availability-set list-sizes 列出可用性集的硬件群集上所有可用的大小。

az vm availability-set list-sizes \
     --resource-group myResourceGroupAvailability \
     --name myAvailabilitySet \
     --output table  

后续步骤

在本教程中,你已学习了如何执行以下操作:

  • 创建可用性集
  • 在可用性集中创建 VM
  • 检查可用的 VM 大小

请转到下一教程,了解虚拟机规模集。