Руководство по Создание и развертывание виртуальных машин высокого уровня доступности с помощью Azure CLITutorial: Create and deploy highly available virtual machines with the Azure CLI

В этом руководстве показано, как повысить доступность и надежность решений виртуальных машин в Azure с помощью групп доступности.In this tutorial, you learn how to increase the availability and reliability of your Virtual Machine solutions on Azure using a capability called Availability Sets. При развертывании виртуальных машин в Azure группа доступности распределяет их между несколькими изолированными аппаратными кластерами.Availability sets ensure that the VMs you deploy on Azure are distributed across multiple isolated hardware clusters. Таким образом, в случае сбоя оборудования или программного обеспечения в Azure затрагивается только группа виртуальных машин, а общее решение остается доступным для использования.Doing this ensures that if a hardware or software failure within Azure happens, only a subset of your VMs is impacted and that your overall solution remains available and operational.

Из этого руководства вы узнаете, как выполнять следующие задачи:In this tutorial, you learn how to:

  • "Создать группу доступности"Create an availability set
  • Создание виртуальной машины в группе доступностиCreate a VM in an availability set
  • Проверка доступных размеров виртуальных машин.Check available VM sizes

При работе с этим руководством используется интерфейс командной строки (CLI) в Azure Cloud Shell, который всегда обновлен до последней версии.This tutorial uses the CLI within the Azure Cloud Shell, which is constantly updated to the latest version. Чтобы открыть Cloud Shell, выберите Попробовать в верхнем углу любого блока кода.To open the Cloud Shell, select Try it from the top of any code block.

Если вы решили установить и использовать интерфейс командной строки локально, то для работы с этим руководством вам понадобится Azure CLI 2.0.30 или более поздней версии.If you choose to install and use the CLI locally, this tutorial requires that you are running the Azure CLI version 2.0.30 or later. Чтобы узнать версию, выполните команду az --version.Run az --version to find the version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.If you need to install or upgrade, see Install Azure CLI.

Обзор высокого уровня доступности в AzureHigh Availability in Azure overview

Высокий уровень доступности в Azure можно обеспечить различными способами.High availability in Azure can be created in many different ways. У вас есть два варианта: группы доступности и зоны доступности.Two options that you have are availability sets and availability zones. Если вы используете группы доступности, виртуальные машины будут защищены от сбоев, которые могут произойти в центре обработки данных.By using availability sets, your VMs will be protected from failures that may happen within a datacenter. Сюда входят сбои оборудования и сбои программного обеспечения Azure.This includes hardware failures and Azure software failures. Если вы используете зоны доступности, виртуальные машины будут размещены в физически отделенной инфраструктуре без общих ресурсов и, следовательно, будут защищены от сбоев всего центра обработки данных.By using availability zones, your VMs will be placed on physically separate infrastructure with no shared resources, and will therefore be protected from entire datacenter failures.

Если требуется развернуть надежные решения на основе виртуальных машин в Azure, используйте группы доступности или зоны доступности.Use Availability Sets or Availability Zones when you want to deploy reliable VM-based solutions within Azure.

Обзор групп доступностиAvailability set overview

Группа доступности — это логическая группа функций, которые можно использовать в Azure, чтобы гарантировать изоляцию ресурсов виртуальной машины во время развертывания в центре обработки данных Azure.An Availability Set is a logical grouping capability that you can use in Azure to ensure that the VM resources you place within it are isolated from each other when they are deployed within an Azure datacenter. Azure гарантирует, что виртуальные машины, размещенные в группе доступности, выполняются на нескольких физических серверах, в вычислительных стойках, в пределах единиц хранения и сетевых коммутаторов.Azure ensures that the VMs you place within an Availability Set run across multiple physical servers, compute racks, storage units, and network switches. В случае сбоя оборудования или программного обеспечения в Azure затрагивается только подмножество виртуальных машин, а приложение продолжает работать и остается доступным для клиентов.If a hardware or Azure software failure occurs, only a subset of your VMs are impacted, and your overall application stays up and continues to be available to your customers. Группы доступности — это важный элемент при создании надежных облачных решений.Availability Sets are an essential capability when you want to build reliable cloud solutions.

Рассмотрим стандартное решение на основе виртуальной машины, которое может включать четыре внешних веб-сервера и две внутренние виртуальные машины, содержащие базу данных.Let’s consider a typical VM-based solution where you might have four front-end web servers and use two back-end VMs that host a database. С помощью Azure вы можете определить 2 группы доступности перед развертыванием виртуальных машин: группу доступности для веб-уровня и группу доступности для уровня базы данных.With Azure, you’d want to define two availability sets before you deploy your VMs: one availability set for the “web” tier and one availability set for the “database” tier. Затем при создании виртуальной машины можно указать группу доступности в качестве параметра для команды az vm create. Azure автоматически изолирует виртуальные машины, созданные в группе доступности, в нескольких ресурсах физического оборудования.When you create a new VM you can then specify the availability set as a parameter to the az vm create command, and Azure automatically ensures that the VMs you create within the available set are isolated across multiple physical hardware resources. Если возникает проблема с физическим оборудованием, на котором запущены виртуальные машины сервера базы данных или веб-сервера, то другие экземпляры этих виртуальных машин по-прежнему работают, так как они используют другое оборудование.If the physical hardware that one of your Web Server or Database Server VMs is running on has a problem, you know that the other instances of your Web Server and Database VMs remain running because they are on different hardware.

Обзор зоны доступностиAvailability zone overview

Зоны доступности являются предложением, обеспечивающим высокий уровень доступности и защищающим приложения и данные от сбоев центров обработки данных.Availability Zones is a high-availability offering that protects your applications and data from datacenter failures. Зоны доступности — уникальные физические расположения в пределах одного региона Azure.Availability Zones are unique physical locations within an Azure region. Каждая зона состоит из одного или нескольких центров обработки данных, оснащенных независимыми системами электроснабжения, охлаждения и сетевого взаимодействия.Each zone is made up of one or more datacenters equipped with independent power, cooling, and networking. Чтобы обеспечить отказоустойчивость, во всех включенных регионах используются минимум три отдельные зоны.To ensure resiliency, there is a minimum of three separate zones in all enabled regions. Физическое разделение зон доступности в пределах региона защищает приложения и данные от сбоев центров обработки данных.The physical separation of Availability Zones within a region protects applications and data from datacenter failures. Избыточные между зонами службы реплицируют приложения и данные в зонах доступности, чтобы обеспечить защиту от возникновения единых точек отказа.Zone-redundant services replicate your applications and data across Availability Zones to protect from single-points-of-failure. Благодаря зонам доступности Azure предлагает наилучшее в отрасли соглашение об уровне обслуживания с гарантией времени непрерывной работы 99,99 % для виртуальных машин.With Availability Zones, Azure offers an industry-best 99.99% VM uptime SLA.

Как и в случае с группами доступности, рассмотрим стандартное решение на основе виртуальной машины, которое может включать четыре внешних веб-сервера и две внутренние виртуальные машины, содержащие базу данных.Similar to availability sets, let’s consider a typical VM-based solution where you might have four front-end web servers and use two back-end VMs that host a database. Как и в случае с группами доступности, необходимо будет развернуть виртуальные машины в двух отдельных зонах доступности: одна зона доступности для уровня Интернета, другая — для уровня базы данных.Similar to availability sets, you’ll want to deploy your VMs in two separate availability zones: one availability zone for the “web” tier and one availability zone for the “database” tier. Затем при создании виртуальной машины и указании зоны доступности в качестве параметра для команды az vm create Azure автоматически изолирует созданные виртуальные машины в совершенно разных зонах доступности.When you create a new VM and specify the availability zone as a parameter to the az vm create command, Azure automatically ensures that the VMs you create are isolated across entirely different availability zones. Если возникает проблема во всем центре обработки данных, где запущены виртуальные машины сервера базы данных или веб-сервера, то другие экземпляры этих виртуальных машин будут по-прежнему работать, так как они используют совершенно другие центры обработки данных.If the entire datacenter that one of your Web Server or Database Server VMs is running on has a problem, you know that the other instances of your Web Server and Database VMs remain running because they are running on completely separate datacenters.

"Создать группу доступности"Create an availability set

Вы можете создать группу доступности с помощью команды az vm availability-set create.You can create an availability set using az vm availability-set create. В этом примере число доменов обновления и сбоя равно 2 для группы доступности myAvailabilitySet в группе ресурсов myResourceGroupAvailability.In this example, the number of update and fault domains is set to 2 for the availability set named myAvailabilitySet in the myResourceGroupAvailability resource group.

Сначала создайте группу ресурсов с помощью команды az group create, а затем — группа доступности:First, create a resource group with az group create, then create the availability set:

az group create --name myResourceGroupAvailability --location eastus

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

Группы доступности позволяют изолировать ресурсы в доменах сбоя и обновления.Availability Sets allow you to isolate resources across fault domains and update domains. Домен сбоя представляет собой изолированную коллекцию ресурсов сервера, службы хранилища и сетевых ресурсов.A fault domain represents an isolated collection of server + network + storage resources. В приведенном выше примере группа доступности распределяется по крайней мере между двумя доменами сбоя во время развертывания виртуальных машин.In the preceding example, the availability set is distributed across at least two fault domains when the VMs are deployed. Группа доступности также распределяется между двумя доменами обновления.The availability set is also distributed across two update domains. Два домена обновления гарантируют изоляцию ресурсов виртуальной машины при обновлении программного обеспечения в Azure. Так все программное обеспечение виртуальной машины не будет обновляться одновременно.Two update domains ensure that when Azure performs software updates, the VM resources are isolated, preventing all the software that runs on the VM from being updated at the same time.

Создание виртуальных машин в группе доступностиCreate VMs inside an availability set

Чтобы виртуальные машины правильно распределялись по оборудованию, их нужно создать внутри группы доступности.VMs must be created within the availability set to make sure they are correctly distributed across the hardware. Существующую виртуальную машину невозможно добавить в группу доступности после создания.An existing VM cannot be added to an availability set after it is created.

При создании виртуальной машины с помощью команды az vm create можно использовать параметр --availability-set, чтобы указать имя группы доступности.When a VM is created with az vm create, use the --availability-set parameter to specify the name of the 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  \
     --vnet-name myVnet \
     --subnet mySubnet \
     --image UbuntuLTS \
     --admin-username azureuser \
     --generate-ssh-keys
done

Теперь в группе доступности есть две виртуальные машины.There are now two virtual machines within the availability set. Так как они находятся в одной группе доступности, Azure гарантирует распределение виртуальных машин и всех их ресурсов (включая диски данных) в изолированном физическом оборудовании,Because they are in the same availability set, Azure ensures that the VMs and all their resources (including data disks) are distributed across isolated physical hardware. за счет чего обеспечивается более высокий уровень доступности всего решения виртуальной машины.This distribution helps ensure much higher availability of the overall VM solution.

Распределение групп доступности можно просмотреть на портале. Выберите "Группы ресурсов" > myResourceGroupAvailability > myAvailabilitySet.The availability set distribution can be viewed in the portal by going to Resource Groups > myResourceGroupAvailability > myAvailabilitySet. Виртуальные машины распределяются между двумя доменами сбоя и обновления, как показано в следующем примере:The VMs are distributed across the two fault and update domains, as shown in the following example:

Группа доступности на портале

Знакомство с доступными размерами виртуальной машиныCheck for available VM sizes

В группу доступности можно добавить дополнительные виртуальные машины позднее, когда станут доступны нужные размеры виртуальных машин для оборудования.Additional VMs can be added to the availability set later, where VM sizes are available on the hardware. Выполните команду az vm availability-set list-sizes для получения списка всех доступных размеров в аппаратном кластере для группы доступности.Use az vm availability-set list-sizes to list all the available sizes on the hardware cluster for the availability set:

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

Дополнительная информацияNext steps

Из этого руководства вы узнали, как выполнить следующие задачи:In this tutorial, you learned how to:

  • "Создать группу доступности"Create an availability set
  • Создание виртуальной машины в группе доступностиCreate a VM in an availability set
  • Проверка доступных размеров виртуальных машин.Check available VM sizes

Перейдите к следующему руководству, чтобы узнать о масштабируемых наборах виртуальных машин.Advance to the next tutorial to learn about virtual machine scale sets.