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

В этой статье содержатся рекомендации по устранению ошибок 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) или Desired State Configuration (DSC), убедитесь, что вы выполняете все необходимые предварительные требования и рекомендации.

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

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

  2. Нажмите Удалить.

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

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

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

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

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