Надежность в масштабируемых наборах виртуальных машин Azure

Масштабируемые наборы виртуальных машин Azure — это вычислительный ресурс Azure, который можно использовать для создания группы экземпляров виртуальных машин и управления ими. Число экземпляров виртуальных машин может автоматически увеличиваться или уменьшаться в зависимости от спроса или по определенному расписанию. Масштабируемые наборы виртуальных машин помогают сделать приложения высокодоступными и устойчивыми путем распределения виртуальных машин в нескольких зонах доступности и доменах сбоя.

При использовании Azure надежность является общей ответственностью. Корпорация Майкрософт предоставляет ряд возможностей для поддержки устойчивости и восстановления. Вы несете ответственность за понимание того, как работают эти возможности во всех используемых вами службах, а также за выбор возможностей, необходимых для достижения бизнес-целей и целей бесперебойной работы.

В этой статье описывается, как обеспечить устойчивость масштабируемых наборов виртуальных машин к различным потенциальным сбоям и проблемам, в том числе временным сбоям, сбоям зоны доступности, сбоям регионов, перенастройке виртуальной машины и обслуживанию служб. В нем также описывается, как использовать резервные копии для восстановления из других типов проблем, а также выделяет ключевые сведения о соглашении об уровне обслуживания масштабируемых наборов виртуальных машин (SLA).

Это важно

При рассмотрении надежности масштабируемого набора и его виртуальных машин необходимо также учитывать надежность дисков, сетевой инфраструктуры и приложений, работающих на виртуальных машинах. Повышение устойчивости только виртуальных машин может иметь ограниченный эффект, если другие компоненты не являются одинаково устойчивыми. В зависимости от требований к устойчивости может потребоваться внести изменения конфигурации в нескольких областях.

Рекомендации по развертыванию в производственной среде

Платформа Azure Well-Architected предоставляет рекомендации по надежности, производительности, безопасности, затратам и операциям. Сведения о том, как эти области влияют друг на друга и способствуют надежному решению масштабируемых наборов виртуальных машин, см. в статье " Рекомендации по архитектуре" для виртуальных машин Azure и масштабируемых наборов в Well-Architected Framework.

Обзор архитектуры надежности

Масштабируемый набор группирует несколько экземпляров виртуальных машин вместе и применяет централизованную конфигурацию, правила автомасштабирования и последовательное обновление.

Масштабируемые наборы поддерживают два разных режима оркестрации:

  • Гибкие масштабируемые наборы (рекомендуется) обеспечивают большую гибкость для развертывания отдельных экземпляров виртуальных машин и управления ими.
  • Универсальные масштабируемые наборы развертывают виртуальные машины с идентичной конфигурацией и управляют ими как группу.

Распространение домена сбоя

Домены сбоя — это группы изоляции сбоя в центре обработки данных. Каждый домен сбоя похож на стойку сервера, которая представляет собой набор аппаратных узлов, делящих общие источник питания, сеть, систему охлаждения и график обслуживания платформы. Поскольку экземпляры виртуальных машин каждого набора масштабирования равномерно распределены по нескольким доменам сбоя, запланированный или незапланированный сбой, который происходит в одном домене, скорее всего, не влияет на экземпляры виртуальных машин в других.

При развертывании масштабируемого набора можно управлять количеством доменов сбоя виртуальных машин. В большинстве сценариев используйте максимальное поведение распространения , которое использует как можно больше доменов сбоя. Дополнительные сведения см. в разделе "Выбор нужного количества доменов сбоя" для масштабируемых наборов виртуальных машин.

В регионах с зонами доступности каждая зона имеет отдельный набор доменов сбоя. При создании масштабируемого набора зон экземпляры распределяются по доменам сбоя в каждой зоне, которую использует масштабируемый набор.

Балансировка нагрузки

Масштабируемые наборы могут интегрироваться со службами балансировки нагрузки Azure, включая Azure Load Balancer и Шлюз приложений Azure. Когда масштабируемый набор добавляет или удаляет экземпляры, встроенная интеграция подсистемы балансировки нагрузки автоматически обновляет конфигурацию подсистемы балансировки нагрузки. Дополнительные сведения см. в разделе "Сеть для масштабируемых наборов виртуальных машин".

Масштабируемые наборы включают множество других элементов управления и возможностей, влияющих на развертывание, масштабирование, распространение и обновление экземпляров. Дополнительные сведения см. в разделе "Масштабируемые наборы виртуальных машин".

Устойчивость к временным сбоям

Временные ошибки являются короткими, периодическими сбоями в компонентах. Они часто происходят в распределенной среде, такой как облачная платформа, и являются обычной частью операций. Временные ошибки исправляют себя через короткий период времени. Важно, чтобы приложения могли обрабатывать временные ошибки, обычно повторяя затронутые запросы.

Все облачные приложения должны следовать рекомендациям по обработке временных ошибок Azure при обмене данными с любыми размещенными в облаке API, базами данных и другими компонентами. Дополнительные сведения см. в Рекомендациях по обработке временных сбоев.

Приложения, выполняемые на виртуальных машинах, должны реализовать соответствующие стратегии обработки ошибок, чтобы гарантировать, что любые временные прерывания в службе не влияют на рабочую нагрузку.

Устойчивость к проблемам инстанции

Если масштабируемый набор инициирует задачу создания или удаления экземпляра виртуальной машины, операция может завершиться ошибкой. Чтобы автоматически повторить неудачные задачи по созданию или удалению экземпляра виртуальной машины, рекомендуется использовать отказоустойчивую функцию создания и удаления для масштабируемых наборов виртуальных машин (предварительная версия).

Могут возникнуть проблемы во время работы экземпляров. Например, экземпляр может не откликаться из-за аварийного завершения приложения или нехватки ресурсов. Используйте автоматическое восстановление экземпляра для отслеживания работоспособности приложения и автоматического перезапуска, повторного создания экземпляра или замены экземпляра виртуальной машины при необходимости.

Устойчивость к сбоям зоны доступности

Зоны доступности — это физически отдельные группы центров обработки данных в регионе Azure. При сбое одной зоны службы могут переключиться на одну из оставшихся зон.

Масштабируемые наборы виртуальных машин поддерживают зоны доступности в охватывающих зоны и зональных конфигурациях.

Если вы не указываете зоны доступности для масштабируемого набора, он будет незональным или региональным. В этом сценарии экземпляры могут размещаться в любой зоне в пределах региона и могут неравномерно распределяться или находиться в одной и той же зоне. При использовании незонального масштабируемого набора совместное размещение дисков в той же зоне гарантируется для дисков Ценовой категории "Ультра" и "Премиум" версии 2. Совместное размещение предоставляется по мере возможностей для дисков Premium v1 и не гарантируется для дисков в варианте Standard SKU, включая твердотельные накопители (SSD) и жесткие диски (HDD). Если какая-либо зона в регионе терпит отказ, ваш масштабируемый набор может испытать простой.

Требования

  • Поддержка региона: Вы можете развертывать масштабируемые наборы, охватывающие зоны, и зональные масштабируемые наборы в любом регионе, поддерживающем зоны доступности.

    Однако некоторые типы и размеры виртуальных машин доступны только в определенных регионах или определенных зонах в пределах региона. Чтобы проверить, какие регионы и зоны поддерживают необходимые типы виртуальных машин, используйте следующие ресурсы:

    Если определенный номер SKU виртуальной машины недоступен в любой из зон, которые вы выбираете для масштабируемого набора, масштабируемый набор может быть не в состоянии масштабироваться в соответствии с требованиями к емкости.

  • Выделенные узлы: Развертывания выделенного узла Azure не поддерживают объединение зон или зональные наборы для масштабирования.

  • Типы: Поддержка зоны доступности доступна для всех типов масштабируемых наборов, включая гибкие и универсальные масштабируемые наборы.

Соображения

  • Распространение домена сбоя: Если ваш масштабируемый набор использует зоны доступности, необходимо выбрать один из конкретных подходов к распространению домена сбоя. Рекомендуем использовать режим максимального распределения, который задействует как можно больше доменов сбоя, для большинства рабочих нагрузок. Дополнительные сведения см. в разделе "Выбор нужного количества доменов сбоя" для масштабируемых наборов виртуальных машин.

  • Балансировка зоны:Балансировка зоны определяет, распределяются ли экземпляры виртуальных машин в масштабируемом наборе равномерно между заданными зонами. Масштабируемый набор считается сбалансированным, если каждая зона имеет одинаковое количество виртуальных машин, плюс или минус одну виртуальную машину. Вы можете задать режим балансировки зоны в лучшем или строгом режиме. Этот параметр определяет, может ли масштабируемый набор масштабироваться неравномерно, в том числе в сценариях сбоя зоны.

  • Группы размещения: Для универсальных масштабируемых наборов при настройке нескольких групп размещения Azure развертывает несколько групп размещения в каждой зоне, которую использует масштабируемый набор.

Себестоимость

Разница в стоимости между набором, распространяющимся на зоны, зональным и незональным масштабируемыми наборами с одинаковым числом и типом экземпляров виртуальных машин отсутствует.

Настройка поддержки зоны доступности

В этом разделе объясняется, как настроить поддержку зоны доступности для масштабируемого набора.

  • Создайте межзональный или зональный масштабируемый набор. При создании нового масштабируемого набора можно настроить зоны доступности. Дополнительные сведения см. в разделе "Создание масштабируемого набора виртуальных машин", использующего зоны доступности.

    Замечание

    При выборе используемых зон доступности вы фактически выбираете логическую зону доступности. При развертывании других компонентов рабочей нагрузки в другой подписке Azure они могут использовать другой номер логической зоны доступности для доступа к той же физической зоне доступности. Дополнительные сведения см. в разделе "Физические и логические зоны доступности".

  • Преобразуйте существующие наборы масштабирования для использования зон доступности. Для использования зон доступности можно преобразовать существующий незональный (региональный) масштабируемый набор. Дополнительные сведения см. в разделе Обновление масштабируемых наборов для добавления зон доступности.

  • Измените конфигурацию зоны доступности для уже существующего набора масштабирования. Вы можете добавить зоны в существующий масштабируемый набор, но не удаляйте зоны. Дополнительные сведения см. в разделе Обновление масштабируемых наборов для добавления зон доступности.

    Это важно

    При расширении масштабируемого набора на дополнительные зоны исходные экземпляры виртуальных машин не сразу переносятся или изменяются. При горизонтальном масштабировании новые экземпляры создаются и распределяются равномерно по выбранным зонам доступности. Если вам нужны данные из исходных экземпляров, вы сами несете ответственность за перенос данных в экземпляры в новых зонах. При масштабировании в наборе масштабирования сначала удаляются все региональные экземпляры. Затем экземпляры удаляются на основе политики масштабирования масштабируемого набора. Дополнительную информацию можно найти в разделе "Как вручную сбалансировать масштабируемый набор".

Планирование ресурсов и управление ими

Чтобы подготовиться к отказу зоны доступности, рассмотрите избыточное резервирование количества экземпляров виртуальных машин в наборе на масштабирование. Этот подход позволяет решению терпеть некоторые потери емкости и продолжать работать без снижения производительности и гарантирует, что остальные зоны имеют достаточную емкость для обработки полной рабочей нагрузки. Дополнительные сведения см. в статье "Управление емкостью с помощью избыточного выделения ресурсов".

Поведение, когда все зоны работоспособны

В этом разделе описывается, что ожидать, когда масштабируемые наборы настроены с поддержкой зоны доступности и все зоны доступности работают.

  • Маршрутизация трафика между зонами: Вы несете ответственность за маршрутизацию трафика между виртуальными машинами в масштабируемом наборе, включая виртуальные машины, которые находятся в разных зонах доступности. К общим подходам относятся Load Balancer и Шлюз приложений, обеспечивающие встроенную интеграцию с масштабируемыми наборами. Дополнительные сведения см. в разделе "Сеть для масштабируемых наборов виртуальных машин".

  • Репликация данных между зонами: Вы несете ответственность за любую репликацию данных, которая должна происходить между виртуальными машинами, в том числе между виртуальными машинами в разных зонах доступности. Базы данных и другие аналогичные приложения с отслеживанием состояния, которые выполняются на виртуальных машинах, часто предоставляют возможности репликации данных.

Поведение во время сбоя зоны

В этом разделе описывается, чего ожидать, когда наборы масштабирования настроены с поддержкой зон доступности и в их зонах возможен сбой.

  • Обнаружение и ответ: Вы несете ответственность за обнаружение потери зоны доступности и решение о том, как реагировать.

    Для масштабируемых наборов зон все экземпляры виртуальных машин в затронутой зоне могут быть недоступны. Инстанции в работоспособных зонах остаются в рабочем состоянии.

    Для наборов виртуальных машин на зональном уровне, развернутых в затронутой зоне, все экземпляры виртуальных машин могут оказаться недоступными. Вам нужно спланировать реагирование на сбой зоны. Например, можно перенаправить трафик в другой масштабируемый набор в другой зоне или регионе.

  • Активные запросы: Все активные запросы или другие действия, возникающие на виртуальных машинах в затронутой зоне доступности, скорее всего, будут прекращены.

  • Ожидаемая потеря данных: Зональные диски виртуальных машин могут быть недоступны во время сбоя зоны.

    Если вы используете диски с зональной избыточностью (ZRS), и сбой затрагивает вашу виртуальную машину, вы можете принудительно отключить диски ZRS от вышедшей из строя виртуальной машины. Этот подход позволяет подключить диски ZRS к другой виртуальной машине.

  • Ожидаемое время простоя: Все виртуальные машины в затронутой зоне остаются недоступными до восстановления зоны доступности. При использовании масштабируемых наборов, охватывающих зону, виртуальные машины, расположенные в здоровых зонах, продолжают работать.

  • Перенаправка трафика: Вы несете ответственность за перенаправку трафика на другие виртуальные машины в здоровых зонах.

    Если вы настраиваете подсистему балансировки нагрузки, устойчивую к зонам, которая проверяет работоспособность, подсистема балансировки нагрузки обычно обнаруживает неудачные виртуальные машины и может направлять трафик к другим экземплярам виртуальных машин в работоспособных зонах.

  • Замена экземпляра: Масштабируемые наборы виртуальных машин не гарантируют автоматическое добавление новых экземпляров в здоровые зоны.

    Если у вас есть масштабируемый набор зон, можно масштабировать, чтобы добавить дополнительные экземпляры. Если сбой зоны ограничен определенными наборами серверов в пределах зоны, операция горизонтального масштабирования может добавлять здоровые экземпляры в ту же зону или добавлять экземпляры в другие зоны. Однако если масштабируемый набор использует строгую балансировку зоны, масштабируемый набор блокирует операции масштабирования, вызывающие дисбаланс.

    Подсказка

    Рекомендуется настроить правила автомасштабирования на основе использования ЦП или памяти. Правила автомасштабирования позволяют масштабируемой группе реагировать на потерю экземпляров виртуальных машин в зоне путем масштабирования, чтобы добавить новые экземпляры в оставшиеся операционные зоны.

Восстановление зоны

Когда зона находится в состоянии работоспособности, виртуальные машины в зоне перезапускаются. Вы несете ответственность за любые процедуры восстановления зоны и синхронизацию данных, которые требуются для ваших нагрузок.

При добавлении временных экземпляров в набор масштабирования во время сбоя зоны, после восстановления зоны, может потребоваться уменьшить набор до исходной емкости.

Тестирование на сбои в зоне

Azure Chaos Studio можно использовать для имитации потери виртуальных машин в одной или нескольких зонах доступности в рамках эксперимента. Chaos Studio предоставляет встроенные ошибки для масштабируемых наборов, включая возможность завершения работы виртуальных машин в определенных зонах. Эти возможности можно использовать для имитации сбоев на уровне зоны и тестирования процессов переключения на резервные ресурсы.

Устойчивость к сбоям на уровне региона

Масштабируемые наборы — это ресурсы с одним регионом. Если регион недоступен, все наборы масштабирования в этом регионе также недоступны.

Индивидуальные решения для нескольких регионов для повышения устойчивости

Можно развернуть несколько масштабируемых наборов в разных регионах, но необходимо реализовать репликацию, балансировку нагрузки и процессы отработки отказа. Например, можно разместить одинаковые наборы масштабирования в нескольких регионах и использовать Azure Front Door или Диспетчер трафика Azure с проверками работоспособности для маршрутизации трафика. Вы несете ответственность за репликацию состояния с помощью механизмов приложений или управляемых служб данных.

Резервное копирование и восстановление

Azure Backup обеспечивает встроенную поддержку резервного копирования виртуальных машин. Azure Backup создает резервные копии и управляет резервными копиями и обеспечивает согласованную с приложениями защиту для всей виртуальной машины, включая все подключенные диски. Решение резервного копирования виртуальных машин с помощью Azure Backup идеально подходит, если требуется координированное резервное копирование нескольких дисков или резервных копий с поддержкой приложений. Однако для рабочих нагрузок базы данных рекомендуется использовать решения резервного копирования для конкретного приложения, обеспечивающие защиту, согласованную с транзакциями, и более быстрые варианты восстановления.

С помощью Azure Backup для виртуальных машин можно настроить частоту резервного копирования, длительность хранения и конфигурацию хранилища в соответствии с вашими потребностями. Дополнительные сведения см. в статье Azure Backup для виртуальных машин.

Резервное копирование также поддерживает диски, подключенные к виртуальным машинам. Дополнительные сведения см. в разделе Общие сведения о резервном копировании дисков Azure.

Для большинства решений не следует полагаться исключительно на резервные копии. Вместо этого используйте другие возможности, описанные в этом руководстве, для поддержки требований к устойчивости. Однако резервные копии защищают от некоторых рисков, которые другие методы не обеспечивают. Дополнительные сведения см. в статье "Что такое избыточность, репликация и резервное копирование?".

Устойчивость к перенастройке виртуальной машины

Масштабируемые наборы позволяют управлять применением изменений конфигурации к виртуальным машинам, таким как изменение номера SKU виртуальной машины, изменение образа, который использует каждая виртуальная машина, и добавление или удаление расширений виртуальной машины. Вы можете управлять режимом политики обновления, который определяет, как применяются обновления. Дополнительные сведения см. в разделе "Режимы политики обновления" для масштабируемых наборов виртуальных машин.

Для некоторых типов обновлений требуется повторное создание или повторное развертывание экземпляра. Чтобы исключить определенные экземпляры из автоматических обновлений, рассмотрите возможность использования защиты экземпляров. Можно исключить экземпляры, содержащие состояние, которое необходимо сохранить или настроить, которые нельзя реплицировать в других экземплярах.

Устойчивость к обслуживанию служб

Azure периодически выполняет обновления для повышения надежности, производительности и безопасности инфраструктуры узлов для виртуальных машин. Масштабируемые наборы предоставляют несколько способов анализа и контроля планового обслуживания.

Соглашение об уровне обслуживания

Соглашение об уровне обслуживания (SLA) для служб Azure описывает ожидаемую доступность каждой службы и условия, которые должно соответствовать вашему решению для достижения этого ожидания доступности. Для получения дополнительной информации см. Соглашения об уровне обслуживания для онлайн-сервисов.

Масштабируемые наборы виртуальных машин используют соглашение об уровне обслуживания доступности для виртуальных машин. Вы можете достичь более высокого процента времени простоя для виртуальных машин с помощью масштабируемого набора, соответствующего обоим из следующих критериев:

  • Масштабируемый набор содержит два или более экземпляра.
  • Набор масштабирования распределяет данные экземпляры между двумя или более количеством зон доступности.