Virtual Machine Scale Sets VM 확장 프로비저닝 오류

이 문서에서는 가상 머신 확장 집합을 배포, 업데이트, 이미지 다시 설치, 시작 또는 확장하려고 할 때 나타나는 VMExtensionProvisioningError, VMExtensionHandlerNonTransientError 또는 VMExtensionProvisioningTimeout 오류를 해결하는 방법에 대한 지침을 제공합니다.

참고

Virtual Machine Scale Sets 컨텍스트에서 이러한 오류 메시지의 "VM"은 특정 가상 머신 확장 집합 내의 instance 나타냅니다.

증상

다음 예제 와 같이 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.

원인

VM 확장이 중단되었거나 프로비저닝 상태 중에 실패했습니다.

확장 실패에 대한 자세한 정보 가져오기

이 오류 해결을 시작하려면 먼저 영향을 받는 확장 및 instance 결정해야 합니다. 이렇게 하려면 다음 Azure CLI(Azure 명령줄 인터페이스) 명령을 실행합니다.

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

이 명령의 출력은 각 instance 확장의 프로비전 상태를 표시합니다. 다음 예제 출력은 이 확장 정보를 instance ID별로 그룹화하는 방법을 보여 둡니다.

instance ID가 강조 표시된 출력의 스크린샷

특정 instance 전용인 각 섹션 내에서 맨 위에 있는 "extProvisioningState" 목록에는 해당 instance 설치된 확장의 프로비전 상태가 표시됩니다. 이 목록 뒤에는 확장 이름이 동일한 순서로 표시되는 "확장" 목록이 표시됩니다.

예를 들어 다음 예제 출력에서 이 instance "Failed"의 첫 번째 프로비전 상태는 첫 번째 확장인 "customScript"에 해당합니다. 나열된 확장에 프로비전 상태를 일치시켜 이 예제에서 나열된 두 번째 및 세 번째 확장이 동일한 instance 성공적으로 프로비전되었는지 확인할 수도 있습니다.

프로비저닝 상태 및 일치하는 확장 이름을 보여 주는 출력의 스크린샷.

Virtual Machine Scale Set 스케일 아웃 시도

모든 instance 확장이 실패하지 않은 경우 Virtual Machine Scale Set에 새 인스턴스를 추가하고 확장 프로비저닝이 성공했는지 확인합니다. 성공하면 확장 프로비저닝에 실패한 인스턴스를 삭제합니다.

영향을 받은 인스턴스에 대한 로그 읽기

오류의 원인에 대한 자세한 정보를 얻으려면 영향을 받는 인스턴스에 로그인합니다. Virtual Machine Scale Set의 OS 및 영향을 받은 확장에 따라 적절한 로그로 이동하여 영향을 받은 시간 프레임을 검토합니다.

  • Windows Virtual Machine Scale Sets: C:\WindowsAzure\logs\plugins\ExtensionName\Extension.log
  • Linux Virtual Machine Scale Sets: /var/log/plugins/ExtensionName/Extension.log

실패한 확장이 모범 사례를 따르는지 확인합니다.

CSE(사용자 지정 스크립트 확장) 또는 DSC(Desired State Configuration)와 같이 확장을 사용자 지정할 수 있는 경우 필요한 모든 필수 구성 요소 및 권장 모범 사례를 따르고 있는지 확인합니다.

확장 다시 설치

  1. Virtual Machine Scale Set의 확장 블레이드에서 프로비저닝 오류가 있는 확장을 선택합니다.

  2. 제거를 클릭합니다.

    제거 단추가 강조 표시된 확장 블레이드의 스크린샷

  3. 확장 블레이드에서 추가를 클릭합니다.

  4. 동일한 확장을 선택하고 다시 설치합니다.

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.