Поделиться через


Исправлена ошибка AllocationFailed или ZonalAllocationFailed при создании, перезапуске или изменении размера Масштабируемых наборов виртуальных машин в Azure

Предупреждение

Если масштабируемый набор виртуальных машин Microsoft Azure входит в кластер Azure Service Fabric, не следуйте инструкциям по устранению неполадок. Это руководство может привести к потере данных и необратимому повреждению кластера в этом сценарии. Дополнительные сведения см. в статье "Можно ли использовать масштабируемые наборы больших виртуальных машин" в кластере Service Fabric?

В этой статье приведены сведения о следующих статьях:

  • Ошибки AllocationFailed или ZonalAllocationFailed в Microsoft Azure Масштабируемые наборы виртуальных машин.
  • Как избежать сбоев выделения.
  • Причины сбоев выделения.
  • Как устранять неполадки выделения при возникновении.

Сведения об устранении неполадок выделения для стандартных виртуальных машин см. в статье "Устранение неполадок выделения при создании, перезапуске или изменении размера виртуальных машин в Azure".

Симптом

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

  • Создание масштабируемого набора виртуальных машин.
  • Перезапустите остановленный (освобожденный) экземпляр виртуальной машины масштабируемого набора.
  • Изменение размера масштабируемого набора.

Ниже приведен пример сообщения об ошибке выделения.

Код ошибки: AllocationFailed или ZonalAllocationFailed.

Сообщение об ошибке 1. Сбой выделения. В этом регионе недостаточно емкости для запрошенного размера виртуальной машины. Дополнительные сведения об улучшении вероятности успешного распределения см. в https://aka.ms/allocation-guidanceстатье .

Сообщение об ошибке 2. Сбой выделения. Виртуальные машины с приведенными ниже ограничениями не могут быть выделены, так как условие является слишком строгим. Удалите некоторые ограничения и повторите попытку. Применяются ограничения:

  • Availability zone
  • Размер виртуальной машины

Сообщение об ошибке 3. Сбой выделения. Если вы пытаетесь добавить новую виртуальную машину или обновить или изменить размер существующей виртуальной машины в масштабируемом наборе виртуальных машин с одной группой размещения, обратите внимание, что такое распределение ограничивается одним кластером и его емкости может быть недостаточно. Дополнительные сведения о повышении вероятности успешного распределения см. в https://aka.ms/allocation-guidanceстатье .

Как избежать сбоев выделения

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

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

    1. В портал Azure найдите и выберите масштабируемые наборы виртуальных машин.

    2. Выберите имя масштабируемого набора.

    3. В области меню выберите "Конфигурация".

    4. В заголовке overprovisioning задайте для включения перепровернутые значения On.

    5. Выберите Сохранить.

    Узнайте больше о перепроизбыточении.

  • Включение больших масштабируемых наборов. Большие Масштабируемые наборы виртуальных машин определяются как масштабируемые наборы, которые могут масштабироваться до более чем 100 экземпляров виртуальных машин. Эта возможность устанавливается свойством масштабируемого набора (singlePlacementGroup=false). То, что делает большой масштабируемый набор специальным, не является количеством экземпляров виртуальных машин, но число групп размещения, которые он содержит. Группа размещения похожа на группу доступности Azure с собственными доменами сбоя и доменами обновления. Если singlePlacementGroup задано значение false, у вас больше шансов на успешное выделение, так как развертывания могут распространяться по нескольким кластерам при развертывании в качестве многоуровневой группы. Дополнительные сведения о работе с большими масштабируемыми наборами виртуальных машин, в частности о том, как преобразовать существующий масштабируемый набор для охвата нескольких групп размещения.

    Примечание.

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

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

Другие советы

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

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

Причина

Регион или зона не имеют достаточной емкости ядра для запрошенного номера SKU.

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

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

Решение для причины 1

Попробуйте одно из следующих действий:

  • Попытайтесь переместить масштабируемый набор в другой кластер в одном регионе с достаточной емкостью.

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

    1. В портал Azure найдите и выберите масштабируемые наборы виртуальных машин.

    2. Выберите имя масштабируемого набора.

    3. Выберите Остановить.

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

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

    См. статью "Создание большого масштабируемого набора".

Причина 2. Перезапуск частично остановленной (освобожденной) виртуальной машины

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

Решение для причины 2

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

  1. В портал Azure найдите и выберите масштабируемые наборы виртуальных машин.

  2. Выберите имя масштабируемого набора.

  3. В области меню выберите "Экземпляры".

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

  5. Выберите Остановить.

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

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

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

Решение для причины 3

Измените запрос на выделение с помощью предложений в этой статье. Затем повторите запрос, чтобы повысить вероятность успеха выделения.

Если вы используете более старые серии виртуальных машин или размеры (например, Dv1, DSv1, Av1, D15v2 или DS15v2), рассмотрите возможность перехода к более новым версиям. Ниже приведены рекомендации для определенных размеров виртуальных машин. Запрещено ли использовать другой размер виртуальной машины? Затем попробуйте развернуть в другом регионе в одном географическом регионе. Дополнительные сведения о доступных размерах виртуальных машин в каждом регионе доступны по адресу https://aka.ms/azureregions.

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

Если запрос на выделение велик (более 500 ядер), см. следующие разделы, чтобы разбить запрос на небольшие развертывания.

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

Ошибки выделения ресурсов для более старых размеров виртуальных машин

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

Ознакомьтесь со следующими рекомендациями:

Устаревшие ряды виртуальных машин или размер Рекомендуемый новый ряд виртуальных машин или размер Ссылка на блог
Серия Av1 Серия Av2 Новые размеры виртуальных машин серии A_v2
Серия Dv1 или DSv1 (с D1 по D5) Серия Dv3 или DSv3 Знакомство с новыми размерами виртуальных машин Dv3 и Ev3
Серия Dv1 или DSv1 (с D11 по D14) Серия Ev3 или ESv3
Серия D15v2 или DS15v2

Если вы используете модель развертывания Resource Manager для использования более крупных размеров виртуальных машин, рассмотрите возможность перехода на D16v3/DS16v3 или D32v3/DS32v3. Эти размеры предназначены для запуска на последнем оборудовании поколения.

Используете ли вы модель развертывания Resource Manager, чтобы убедиться, что экземпляр виртуальной машины изолирован от оборудования, выделенного для одного клиента? Затем попробуйте перейти к новым изолированным размерам виртуальных машин, E64i_v3 или E64is_v3, которые предназначены для запуска на последнем оборудовании поколения.

Теперь доступны новые изолированные размеры виртуальных машин

Справочная информация

Как выделяются ресурсы

Платформа Azure пытается разделить серверы центра обработки данных на кластеры. Как правило, он пытается выполнить запрос на выделение в нескольких кластерах. Но некоторые ограничения из запроса на выделение могут заставить платформу Azure попытаться выполнить запрос только в одном кластере ("закрепленном в кластере"). На схеме 1 ниже показано обычное выделение, которое выполняется в нескольких кластерах (кластер 1 по кластеру n). На схеме 2 выделение закреплено в кластере 2, так как этот кластер размещает существующую облачную службу (CS_1) или группу доступности.

Схема 1. Попытка выделения платформы Azure в нескольких кластерах. Схема 2. Выделение платформы Azure, закрепленное в одном кластере.

Причины возникновения ошибок выделения ресурсов

Если запрос на выделение закреплен в кластере, существует более высокий шанс найти бесплатные ресурсы, так как доступный пул ресурсов меньше. Что делать, если запрос на выделение закреплен в кластере, который не поддерживает тип запрошенного ресурса? Затем запрос завершится ошибкой, даже если кластер имеет бесплатные ресурсы. На схеме 3 ниже показано, где закрепленное выделение завершается ошибкой, так как единственный кандидат кластера не имеет свободных ресурсов. На схеме 4 показано, когда закрепленное выделение завершается ошибкой, так как единственный кандидат кластера не поддерживает запрошенный размер виртуальной машины, даже если кластер имеет свободные ресурсы.

Схемы сбоев выделения закреплены в кластерах. Схема 3 показывает, что бесплатные ресурсы недоступны. На схеме 4 показано, что размер не поддерживается.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.