排查 Azure 本地 Azure Arc VM 管理问题

适用于:Azure 本地版本 23H2

本文提供有关如何在 Azure 本地实例上收集日志并排查 Azure Arc 虚拟机(VM)问题的指导。 其中还列出了 Azure Arc VM 管理当前存在的限制和已知问题。

排查 Azure Arc VM 问题

本部分描述与 Azure Arc VM 管理相关的错误及建议的解决方法。

尝试启用来宾管理时失败

尝试运行命令以启用来宾管理时,会看到以下错误:

错误: Deployment failed. Correlation ID: aaaa0000-bb11-2222-33cc-444444dddddd. VM Spec validation failed for guest agent provisioning: Invalid managed identity. A system-assigned managed identity must be enabled in parent resource: Invalid Configuration

此失败是因为未为此 VM 创建托管标识。 启用来宾管理需要系统分配的托管标识。

解决方法:

按照以下步骤验证是否未为此 VM 创建托管标识,然后启用系统分配的托管标识。

  1. 在Azure 门户中,转到 VM。 浏览到“ 概述 ”页。 在“属性”选项卡上的“配置”下来宾管理应显示为“已禁用”。 从右上角选择 JSON 视图

    如何访问 JSON 视图的屏幕截图。

  2. 在参数下 Identitytype 应显示为 None.

    指示托管标识不存在的 JSON 视图的屏幕截图。

  3. 若要创建托管标识,请通过 RDP 连接到 Azure 本地计算机。 运行下面的命令:

    az extension add --name connectedmachine
    
  4. 验证是否已在系统上安装连接的计算机 CLI 扩展。 下面是已成功安装扩展的示例输出。 指示 connectedmachine 已安装版本 0.7.0。

    [v-hostl]: PS C:\Clusterstorage\lnfrastructure_l\ArcHci> az version
    {
    "azure-cli": "2.53.0",
    "azure-cli-core": "2.53.0",
    "azure-cli-telemetry": "1.1.0",
    "extensions": {
        "akshybrid": "0.1.1",
        "arcappliance"^ "1.0.2",
        "connectedk8s": "1.5.4",
        "connectedmachine": "0.7.0",
        "customlocation": "0.1.3",
        "hybridaks": "0.2.4",
        "k8s-extension": "1.4.5",
        "stack-hci-vm": "0.1.8"
        }
    }
    [v-hostl]: PS C:\ClusterStorage\Infrastructure_l\ArcHci>
        ```
    
  5. 运行以下命令,将系统托管标识分配给 VM。

    az connectedmachine update --ids "<Resource Manager ID for the VM>" --set identity.type="SystemAssigned"
    
  6. 转到Azure 门户并浏览到“概述”页。 JSON 视图应指示系统托管标识现在已分配给 VM。

    启用托管标识时 JSON 视图的屏幕截图。

从存储帐户部署 VM 映像失败

尝试从 Azure 本地存储帐户部署 VM 映像时,会看到以下错误:

错误: {"code":"moc-operator galleryimage serviceClient returned an error while reconciling: rpc error: code = Unknown desc = ===== RESPONSE ERROR (ErrorCode=AuthorizationPermissionMismatch) =====\nDescription=, Details: (none)\n","message":"moc-operator galleryimage serviceClient returned an error while reconciling: rpc error: code = Unknown desc = ===== RESPONSE ERROR (ErrorCode=AuthorizationPermissionMismatch) =====\nDescription=, Details: (none)\n"}

或者,你会看到此错误:

错误: {"code":"moc-operator galleryimage serviceClient returned an error while reconciling: rpc error: code = Unknown desc = ===== RESPONSE ERROR (ErrorCode=NoAuthenticationInformation) =====\nDescription=, Details: (none)\n","message":"moc-operator galleryimage serviceClient returned an error while reconciling: rpc error: code = Unknown desc = ===== RESPONSE ERROR (ErrorCode=NoAuthenticationInformation) =====\nDescription=, Details: (none)\n"}

失败的原因是创建映像的用户没有从存储帐户访问映像的适当权限。 用户必须在用于映像的存储帐户上具有 存储 Blob 数据参与者 角色。 有关详细信息,请参阅 分配 Azure 角色 以访问 Blob 数据。

解决方法:

存储 Blob 数据参与者 角色添加到需要从此存储帐户创建映像的用户。 添加角色后,请重试部署映像。

尝试从存储帐户部署 VM 映像时,也可能看到以下错误:

错误: {"code":"moc-operator galleryimage serviceClient returned an error while reconciling: rpc error: code = Unknown desc = ===== RESPONSE ERROR (ErrorCode=InvalidBlobType) =====\nDescription=The blob type is invalid for this operation.\nRequestId:5e74055f-e01e-0033-66eb-ff9734000000\nTime:2024-09-05T23:32:56.3001852Z, Details: (none)\n","message":"moc-operator galleryimage serviceClient returned an error while reconciling: rpc error: code = Unknown desc = ===== RESPONSE ERROR (ErrorCode=InvalidBlobType) =====\nDescription=The blob type is invalid for this operation.\nRequestId:5e74055f-e01e-0033-66eb-ff9734000000\nTime:2024-09-05T23:32:56.3001852Z, Details: (none)\n","additionalInfo":[{"type":"ErrorInfo","info":{"category":"Uncategorized","recommendedAction":"","troubleshootingURL":""}}]}

此失败是因为存储帐户中的 Blob 类型不正确。 图像的类型必须为 page blob 类型。

解决方法:

将映像上传到存储帐户, page blob format 然后重试部署映像。

确保用户具有正确的权限,并且 Blob 的格式正确。 有关详细信息,请参阅从Azure 存储帐户添加 VM 映像。

部署 Arc VM 失败

尝试在 Azure 本地部署 Arc VM 时,会看到以下错误:

错误: {"code":"ConflictingOperation","message":"Unable to process request 'Microsoft.AzureStackHCI/virtualMachineInstances'. There is already a previous running operation for resource '/subscriptions/<subscription ID>/resourceGroups/<Resource group name>/providers/Microsoft.HybridCompute/machines/<VM name>/providers/Microsoft.AzureStackHCI/virtualMachineInstances/default'. Please wait for the previous operation to complete."}

此失败是因为 SystemAssigned 托管标识对象不在资源类型下 Microsoft.HybridCompute/machines

解决方法:

在部署模板中验证:

托管 SystemAssigned 标识对象位于资源类型下 Microsoft.HybridCompute/machines ,不在资源类型下 Microsoft.AzureStackHCI/VirtualMachineInstances

部署模板应与提供的示例模板匹配。 有关详细信息,请参阅 Azure 本地创建 Arc 虚拟机中的示例模板。

删除存储路径失败

尝试删除 Azure 本地实例上的存储路径时,可能会看到类似于以下消息的错误。 资源编号和版本在方案中可能有所不同。

错误: "errorMessage" serviceClient returned an error during deletion: The storage container service returned an error during deletion: rpc error: code = Unknown desc = Container is in ACTIVE use by Resources [6:
- linux-cblmariner-0.2.0.10503
- windows-windows2019-0.2.0.10503
- windows-windows2022-0.2.0.10503
].
Remove all the Resources from this container, before trying to delete: In Use: Failed,

解决方法:

错误消息中列出的映像不同于典型工作负荷,这些工作负荷表示为 Azure 门户 和 CLI 上的 Azure 资源管理器 (ARM) 对象。 发生此错误的原因是这些映像直接下载到文件系统上,Azure 无法识别这些映像。

在尝试删除存储路径之前,请按照以下步骤操作:

  1. 删除要删除的存储路径上存在的关联工作负载和映像。 在图像名称上查找以下前缀:linux-cblmariner、、windows-windows2019windows-windows2022windows_k8saks-image-mergedlinux-K8s
  2. 在Azure 门户中提交支持票证。

无法识别 Azure CLI 安装

如果你的环境在安装 Azure CLI 后无法识别它,请运行以下代码块,将 Azure CLI 安装路径添加到环境路径。

        if ( -not( $env:PATH -like '*C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin*') ) {
            $env:PATH += "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin;"
            Write-Host "Updated path $env:PATH"
        }

后续步骤