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


Устранение ошибки выделения при развертывании облачных служб (классических) в Azure

Внимание

Облачные службы (классическая версия) теперь устарела для всех клиентов с 1 сентября 2024 года. Все существующие запущенные развертывания будут остановлены и завершены корпорацией Майкрософт, и данные будут постоянно потеряны начиная с октября 2024 года. Для новых развертываний следует использовать Облачные службы Azure с расширенной поддержкой. Это новая модель развертывания на основе Azure Resource Manager.

Итоги

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

Если проблема Azure не устранена в этой статье, посетите форумы Azure на форумах Microsoft Q и A и Stack Overflow. Описание своей проблемы можно опубликовать на этих форумах или написать в Twitter (@AzureSupport). Также можно отправить запрос в службу поддержки Azure. Чтобы отправить такой запрос, на странице поддержки Azure щелкните Получить поддержку.

Общая информация — принцип выделения ресурсов

Серверы в центрах обработки данных Azure разделены на кластеры. Запрос о выделении новой облачной службы отправляется в несколько кластеров. Когда первый экземпляр развертывается в облачной службе (в тестовой или рабочей области), эта облачная служба прикрепляется к кластеру. Любые дальнейшие развертывания облачной службы происходят в одном кластере. В этой статье мы называем это состояние "закрепленным в кластере". На следующей схеме показан случай нормального выделения, который пытается выполнить в нескольких кластерах. Вторая схема иллюстрирует случай выделения, закрепленного в кластере 2, так как это место размещения существующей облачной службы CS_1.

Схема выделения ресурсов

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

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

Ошибка выделения прикрепленных ресурсов

Устранение ошибок выделения для облачных служб

Сообщение об ошибке

На портале Azure перейдите к облачной службе и на боковой панели выберите элемент Журналы операций (классические), чтобы просмотреть журналы.

Дополнительные решения для исключений см. в следующих следующих решениях:

Тип исключения Сообщение об ошибке Решение
FabricInternalServerError Операция завершилась сбоем с кодом ошибки InternalError и сообщением об ошибке "Сервер обнаружил внутреннюю ошибку. Повторите запрос. Устранение неполадок FabricInternalServerError
ServiceAllocationFailure Операция завершилась сбоем с кодом ошибки InternalError и сообщением об ошибке "Сервер обнаружил внутреннюю ошибку. Повторите запрос. Устранение неполадок ServiceAllocationFailure
LocationNotFoundForRoleSize Операция "{Operation ID}" завершилась ошибкой: "Запрошенный уровень виртуальной машины в настоящее время недоступен в регионе ({Region ID}) для этой подписки. Попробуйте другой уровень или развернитесь в другом расположении. Устранение неполадок LocationNotFoundForRoleSize
ConstrainedAllocationFailed Операция Azure "{Operation ID}" завершилась ошибкой с кодом Compute.ConstrainedAllocationFailed. Сведения: произошла ошибка выделения памяти; не удалось установить соответствие ограничениям в запросе. Запрошенное новое развертывание службы привязано к группе affinity, или оно предназначено для виртуальная сеть или существующего развертывания в этой размещенной службе. Любое из этих условий ограничивает новое развертывание использованием определенных ресурсов Azure. Повторите попытку позже или попробуйте уменьшить размер виртуальной машины или количество экземпляров ролей. Кроме того, при возможности удалите ограничения или попробуйте развернуть в другом регионе. Устранение неполадок ConstrainedAllocationFailed
OverConstrainedAllocationRequest Размер виртуальной машины (или сочетание размеров виртуальных машин), необходимых для этого развертывания, не может быть подготовлен из-за ограничений запросов на развертывание. Если возможно, попробуйте уменьшить ограничения в отношении привязок к виртуальной сети, выполнить развертывание в размещенной службе, в которой больше нет развертываний, и в другой территориальной группе или без использования территориальной группы либо выполнить развертывание в другом регионе. Устранение неполадок OverconstrainedAllocationRequest

Пример сообщения об ошибке:

Операция Azure "{идентификатор операции"} завершилась ошибкой с кодом Compute.ConstrainedAllocationFailed. Сведения: произошла ошибка выделения памяти; не удалось установить соответствие ограничениям в запросе. Запрошенное новое развертывание службы привязано к территориальной группе, предназначено для выполнения в виртуальной сети, или в этой размещенной службе уже существует развертывание. Любое из этих условий ограничивает новое развертывание использованием определенных ресурсов Azure. Повторите попытку позже или попробуйте уменьшить размер виртуальной машины или количество экземпляров ролей. Кроме того, по возможности удалите вышеупомянутые ограничения или попробуйте выполнить развертывание в другом регионе".

Распространенные проблемы

В этом разделе описаны распространенные сценарии выделения ресурсов, вызывающие прикрепление запросов о распределении к отдельному кластеру.

  • Развертывание в промежуточном слоте. Если в одном из слотов облачной службы имеется развертывание, вся облачная служба прикрепляется к определенному кластеру. Это означает, что если развертывание уже существует в рабочей области, то новое промежуточное развертывание может быть выделено только в том же кластере, что и рабочая область. Если кластер близок к заполнению, запрос может завершиться ошибкой.
  • Масштабирование. Для добавления новых экземпляров в существующую облачную службу требуется выделение ресурсов в том же кластере. Для мелких запросов масштабирования ресурсы обычно выделяются, но это происходит не всегда. Если кластер близок к заполнению, запрос может завершиться ошибкой.
  • Группа сходства . Структура в любом кластере в этом регионе может выделить новое развертывание в пустую облачную службу, если облачная служба не закреплена в группе сходства. Развертывания пытаются использовать ту же группу сходства в одном кластере. Если кластер близок к заполнению, запрос может завершиться ошибкой.
  • Виртуальная сеть группы affinity — старые виртуальная сеть были привязаны к группам сходства, а не к регионам, а облачные службы в этих виртуальная сеть будут закреплены в кластере группы сходства. Попытки развертывания в этой виртуальной сети происходят в закрепленном кластере. Если кластер близок к заполнению, запрос может завершиться ошибкой.

Решения

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

    • Разверните рабочую нагрузку в новую облачную службу.
    • Обновите запись CNAME или A таким образом, чтобы она направляла трафик в новую облачную службу.
    • После того как трафик, направляемый на старый сайт, станет нулевым, старую облачную службу можно будет удалить. В этом случае время простоя должно быть нулевым.
  2. Удаление рабочих и промежуточных слотов. Это решение сохраняет существующее доменное имя (DNS), но приводит к простою приложения.

    • Удалите рабочий и промежуточный слоты существующей облачной службы, чтобы облачная служба стала пустой.
    • Создайте в существующей облачной службе новое развертывание. Это решение повторно выполняет выделение для всех кластеров в регионе. Убедитесь, что облачная служба не привязана к группе сходства.
  3. Зарезервированный IP-адрес — это решение сохраняет существующий IP-адрес, но приводит к простою приложения.

    • Создайте адрес ReservedIP для существующего развертывания с помощью Powershell

      New-AzureReservedIP -ReservedIPName {new reserved IP name} -Location {location} -ServiceName {existing service name}
      
    • Следуйте инструкциям #2, чтобы указать новый зарезервированныйIP в CSCFG службы.

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

  5. Преобразование в региональный виртуальная сеть. См. инструкции по миграции из групп affinity в региональную виртуальная сеть (виртуальная сеть).