Надежность в Масштабируемые наборы виртуальных машин
В этой статье содержатся сведения о поддержке зон доступности для Масштабируемые наборы виртуальных машин.
Примечание.
Масштабируемые наборы виртуальных машин можно развернуть только в одном регионе. Если вы хотите развернуть виртуальные машины в нескольких регионах, см. раздел Виртуальные машины-Аварийное восстановление: отработка отказа между регионами.
Поддержка зоны доступности
Зоны доступности Azure — это по крайней мере три физически отдельные группы центров обработки данных в каждом регионе Azure. Центры обработки данных в каждой зоне оснащены независимой питанием, охлаждения и сетевой инфраструктурой. В случае сбоя локальной зоны зоны зоны создаются таким образом, чтобы при возникновении влияния одной зоны, региональных служб, емкости и высокой доступности поддерживались остальными двумя зонами.
Сбои могут варьироваться от сбоев программного обеспечения и оборудования до таких событий, как землетрясения, наводнения и пожары. Устойчивость к сбоям достигается с избыточностью и логической изоляцией служб Azure. Дополнительные сведения о зонах доступности в Azure см. в разделе "Регионы и зоны доступности".
Службы с поддержкой зон доступности Azure предназначены для обеспечения правильного уровня надежности и гибкости. Их можно настроить двумя способами. Они могут быть избыточными по зонам с автоматической репликацией между зонами или зональными экземплярами, закрепленными в определенной зоне. Эти подходы также можно объединить. Дополнительные сведения об зональной архитектуре, избыточной между зонами, см . в рекомендациях по использованию зональных зон и регионов.
С помощью Azure Масштабируемые наборы виртуальных машин вы можете создавать группу виртуальных машин с балансировкой нагрузки и управлять ими. Количество виртуальных машин может автоматически увеличиваться или уменьшаться в ответ на запрос или определенное расписание. Масштабируемые наборы обеспечивают высокий уровень доступности приложений и позволяют централизовать управление, настройку и обновление большого числа виртуальных машин. Для самого масштабируемого набора нет затрат. Вы платите только за каждый созданный экземпляр виртуальной машины.
Масштабируемые наборы виртуальных машин поддерживает как зональные, так и избыточные между зонами развертывания в пределах региона:
Зональное развертывание. При создании масштабируемого набора в одной зоне вы управляете тем, в какой зоне выполняются все виртуальные машины этого набора. Масштабируемый набор управляется и автоматически масштабируется только в пределах этой зоны.
Развертывание, избыточное между зонами. Масштабируемый набор, избыточный между зонами, позволяет создать единый масштабируемый набор в рамках нескольких зон. По умолчанию при создании виртуальных машин они равномерно распределяются по зонам.
Необходимые компоненты
Чтобы использовать зоны доступности, масштабируемый набор необходимо создать в поддерживаемом регионе Azure.
Все виртуальные машины , даже виртуальные машины с одним экземпляром, должны быть развернуты в масштабируемом наборе с помощью гибкого режима оркестрации для дальнейшего обеспечения защиты приложения для масштабирования и доступности.
SLA
Так как зоны доступности физически отделены и предоставляют различные источники питания, сеть и охлаждение — соглашения об уровне обслуживания увеличиваются. Дополнительные сведения см. в соглашениях об уровне обслуживания для Microsoft Online Services.
Создание масштабируемого набора виртуальных машин с включенными зонами доступности
Вы можете создать масштабируемый набор, использующий зоны доступности с одним из следующих методов:
Процесс создания масштабируемого набора, использующего зональное развертывание, аналогично описанному в статье о начале работы. При выборе поддерживаемого региона Azure можно создать масштабируемый набор в одной или нескольких из доступных зон, как показано в следующем примере:
Масштабируемый набор и вспомогательные ресурсы, такие как подсистема балансировки нагрузки Azure и общедоступный IP-адрес, создаются в одной зоне, указанной вами.
Поддержка зональной отработки отказа
Масштабируемые наборы виртуальных машин создаются с пятью доменами сбоя по умолчанию в регионах Azure без зон. Для регионов, поддерживающих развертывание зоны доступности Масштабируемые наборы виртуальных машин, и выбран этот параметр, значение по умолчанию для количества доменов сбоя равно 1 для каждой зоны. В этом случае FD=1 подразумевает, что экземпляры виртуальных машин, принадлежащие масштабируемому набору, распределяются по многим стоям на основе наилучших усилий. Дополнительные сведения см. в разделе "Выбор нужного количества доменов сбоя" для масштабируемого набора виртуальных машин.
Проектирование низкой задержки
Рекомендуется настроить Масштабируемые наборы виртуальных машин с избыточностью между зонами. Однако если приложение имеет строгие требования к низкой задержке, может потребоваться реализовать зональный для виртуальных машин масштабируемых наборов. При развертывании зональных масштабируемых наборов рекомендуется создать несколько виртуальных машин масштабируемого набора в нескольких зонах. Например, можно создать один экземпляр масштабируемых наборов, закрепленный в зоне 1 и один экземпляр, закрепленный в зоне 2 или 3. Кроме того, необходимо использовать подсистему балансировки нагрузки или другую логику приложения для направления трафика в соответствующие масштабируемые наборы во время сбоя зоны.
Внимание
Если вы откажетесь от развертывания с поддержкой зон, вы забыли о защите от изоляции базовых сбоев. Отказ от настройки зоны доступности принудительно зависит от ресурсов, которые не подчиняются размещению и разделению зон (включая базовые зависимости этих ресурсов). Эти ресурсы не должны быть ожидаемыми, чтобы выжить в сценариях уменьшения зоны. Решения, использующие такие ресурсы, должны определять стратегию аварийного восстановления и настраивать восстановление решения в другом регионе.
Методы безопасного развертывания
Чтобы обеспечить более полный контроль над развертыванием виртуальных машин, следует развернуть зональные, а не региональные виртуальные машины масштабируемого набора. Однако зональные виртуальные машины обеспечивают изоляцию зон, а не избыточность зон. Чтобы обеспечить полную избыточность зон с зональными виртуальными машинами, в разных зонах должно быть две или более виртуальных машин.
Кроме того, рекомендуется использовать параметр максимального распространения для виртуальных машин, избыточных между зонами. Дополнительные сведения см. в параметрах распространения.
Параметры распространения
При развертывании масштабируемого набора в одной или нескольких зонах доступности у вас есть следующие параметры распространения (начиная с API версии 2017-12-01):
Максимальное распространение (platformFaultDomainCount = 1). Максимальное распространение — это рекомендуемый вариант развертывания, так как он обеспечивает лучшее распространение в большинстве случаев. Если вы распределяете реплики между отдельными единицами изоляции оборудования, рекомендуется распространяться по зонам доступности и использовать максимальное распространение в каждой зоне.
Если выбрать максимальное распространение, масштабируемый набор распределяет виртуальные машины между максимальным количеством доступных доменов сбоя в каждой зоне. Это может быть больше или меньше пяти доменов сбоя на зону.
Примечание.
При максимальном распределении, независимо от количества доменов сбоя виртуальных машин, можно увидеть только один домен сбоя в представлении экземпляра масштабируемого набора виртуальных машин и метаданных экземпляра. Распределение в каждой зоне является неявным.
Статическое фиксированное распространение (platformFaultDomainCount = 5). При статической фиксированной распространении масштабируемый набор распределяет виртуальные машины ровно по пяти доменам сбоя на зону. Если масштабируемый набор не может найти пять отдельных доменов сбоя для каждой зоны для удовлетворения запроса на выделение, запрос завершается ошибкой.
Распространение в соответствии с доменами сбоя управляемых дисков (platformFaultDomainCount = 2 или 3) Можно рассмотреть возможность выравнивания количества доменов сбоя масштабируемого набора с числом доменов сбоя управляемых дисков. Это выравнивание может помочь предотвратить потерю кворума, если весь домен сбоя управляемых дисков исчезает. Число доменов сбоя может быть меньше или равно количеству доменов сбоя управляемых дисков, доступных в каждом из регионов. Дополнительные сведения о количестве доменов сбоя Управляемые диски по регионам см. в разделе [вставить здесь](ссылка здесь).
Балансировка зоны
Для масштабируемых наборов, развернутых в нескольких зонах (избыточном между зонами), можно выбрать баланс зоны или строгую балансировку зоны. Масштабируемый набор считается сбалансированным, если каждая зона имеет одинаковое количество виртуальных машин (плюс или минус одна виртуальная машина), как и все остальные зоны в масштабируемом наборе. Например:
Масштабируемый набор | Виртуальные машины в зоне 1 | Виртуальные машины в зоне 2 | Виртуальные машины в зоне 3 | Балансировка зоны |
---|---|---|---|---|
Сбалансированный масштабируемый набор | 2 | 3 | 3 | Этот масштабируемый набор считается сбалансированным. Существует только одна зона с другим числом виртуальных машин, и это только 1 меньше, чем другие зоны. |
Небалансированный масштабируемый набор | 1 | 3 | 3 | Этот масштабируемый набор считается несбалансируемым. Зона 1 имеет на 2 виртуальные машины меньшее, чем зоны 2 и 3. |
Виртуальные машины в масштабируемом наборе могут быть успешно созданы, но развертывание расширения на этих виртуальных машинах завершится сбоем. Виртуальные машины с сбоями расширения по-прежнему учитываются при определении баланса масштабируемого набора. Например, масштабируемый набор с 3 виртуальными машинами в зоне 1, 3 виртуальными машинами в зоне 2 и 3 виртуальными машинами в зоне 3 считается сбалансированным, даже если все расширения завершилось сбоем в зоне 1 и все расширения успешно выполнены в зонах 2 и 3.
При выборе наилучшей балансировки зон масштабируемый набор пытается выполнять горизонтальное увеличение или уменьшение масштаба виртуальных машин, поддерживая баланс. Однако, если по какой-то причине балансировка невозможна (например, если одна зона не работает, масштабируемый набор не может создать новую виртуальную машину в этой зоне), масштабируемый набор позволяет временной дисбаланс успешно масштабироваться в или вне. При последующих попытках горизонтального масштабирования масштабируемый набор добавляет виртуальные машины в зоны, которым требуется больше виртуальных машин для балансировки масштабируемого набора. Аналогичным образом при последующих попытках горизонтального уменьшения масштаба масштабируемый набор удаляет виртуальные машины из зон, где их должно быть меньше. При использовании строгой балансировки зон горизонтальное увеличение или уменьшение масштаба будет завершено с ошибкой, если оно приведет к несбалансированному состоянию.
Чтобы использовать баланс зоны оптимальной работы, установите zoneBalance
значение false. Этот zoneBalance
параметр используется по умолчанию в API версии 2017-12-01. Чтобы использовать строгий баланс зоны, задайте zoneBalance
значение true.
Поддержка перехода на зоны доступности
Сведения о повторном развертывании регионального масштабируемого набора в поддержку зоны доступности см. в статье "Миграция Виртуальные машины и Масштабируемые наборы виртуальных машин в поддержку зоны доступности".
Дополнительные рекомендации
Группы размещения
Внимание
Группы размещения применяются только к Масштабируемые наборы виртуальных машин, работающим в режиме универсальной оркестрации.
При развертывании масштабируемого набора виртуальных машин можно развернуть с одной или несколькими группами размещения для каждой зоны доступности. Для региональных масштабируемых наборов выбор состоит в наличии одной группы размещения в регионе или нескольких групп размещения в регионе. Если для свойства singlePlacementGroup
масштабируемого набора задано значение false, масштабируемый набор может состоять из нескольких групп размещения и имеет диапазон 0–1000 виртуальных машин. Если задано значение true по умолчанию, масштабируемый набор состоит из одной группы размещения и имеет диапазон 0–100 виртуальных машин. Для большинства рабочих нагрузок рекомендуется несколько групп размещения, что обеспечивает лучшее масштабирование. В версии API 2017-12-01 для масштабируемых наборов (однозонных и распределенных между зонами) по умолчанию используются несколько групп размещения, но для региональных масштабируемых наборов по умолчанию используется только одна.