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


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

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

Примечание.

В контексте Масштабируемые наборы виртуальных машин "виртуальная машина" в этих сообщениях об ошибках ссылается на экземпляр в определенном масштабируемом наборе виртуальных машин.

Симптомы

Вы увидите ошибки VMExtensionProvisioningError, VMExtensionHandlerNonTransientError или VMExtensionProvisioningTimeout, как показано в следующих примерах:

'statusMessage': '{\\'status\\':\\'Failed\\',\\'error\\':{\\'code\\':\\'ResourceOperationFailure\\',\\'message\\':\\'The resource operation completed with terminal provisioning state 'Failed'.\\',\\'details\\':[{\\'code\\':\\'VMExtensionProvisioningError\\',\\'message\\':\\'Multiple VM extensions failed to be provisioned on the VM. Please see the VM extension instance view for other failures.

{'status': 'Failed','error': {'code':'VMExtensionHandlerNonTransientError','message': 'The handler for VM extension type 'Microsoft.EnterpriseCloud.Monitoring.OmsAgentForLinux' has reported terminal failure for VM extension 'OmsAgentForLinux' with error message: '[ExtensionOperationError] Non-zero exit code: 10

'statusMessage': '{\\'status\\':\\'Failed\\',\\'error\\':{\\'code\\':\\'ResourceOperationFailure\\',\\'message\\':\\'The resource operation completed with terminal provisioning state 'Failed'.\\',\\'details\\':[{\\'code\\':\\'VMExtensionProvisioningTimeout\\',\\'message\\':\\'Provisioning of VM extension configure-settings has timed out. Extension provisioning has taken too long to complete.

Причина

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

Дополнительные сведения о сбое расширения

Чтобы начать устранение этой ошибки, сначала следует определить, какие расширения и экземпляры затронуты. Для этого выполните следующую команду интерфейса командной строки Azure (Azure CLI):

az vmss list-instances --resource-group MyResourceGroup --name MyVmss --query "[].{instanceId:instanceId, extension:resources[].id, extProvisioningState:resources[].provisioningState}"

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

Снимок экрана: выходные данные с выделенными идентификаторами экземпляров.

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

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

Снимок экрана: выходные данные с состоянием подготовки и соответствующими именами расширений.

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

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

Чтение журналов на затронутых экземплярах

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

  • Windows Масштабируемые наборы виртуальных машин: C:\WindowsAzure\logs\plugins\ExtensionName\Extension.log
  • Масштабируемые наборы виртуальных машин Linux: /var/log/plugins/ExtensionName/Extension.log

Убедитесь, что сбой расширения соответствует рекомендациям

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

Переустановка расширения

  1. В колонке "Расширения" масштабируемого набора виртуальных машин выберите расширение с ошибками подготовки.

  2. Нажмите кнопку Удалить.

    Снимок экрана: колонка расширений с выделенной кнопкой удаления

  3. В колонке "Расширения" нажмите кнопку "Добавить".

  4. Выберите и повторно установите то же расширение.

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

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