你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

排查在 Azure Stack Edge Pro GPU 中部署 VM 的问题

适用于:Yes for Pro GPU SKUAzure Stack Edge Pro - GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro RYes for Mini R SKUAzure Stack Edge Mini R

本文介绍如何排查在 Azure Stack Edge Pro GPU 设备上部署虚拟机时出现的常见错误。 本文提供相关指导,助你调查导致 VM 预配超时的最常见问题,以及在创建网路接口和 VM 过程中出现的各种问题。

若要诊断 VM 预配失败,请查看故障虚拟机的来宾日志。 有关收集 VM 来宾日志并将其包含在支持包中的步骤,请参阅在 Azure Stack Edge Pro 上收集 VM 的来宾日志

如需相关指导以在部署 VM 之前排查会导致 VM 映像上传失败的问题,请参阅排查在 Azure Stack Edge Pro GPU 中上传虚拟机映像的问题

VM 预配超时

本部分介绍如何排查导致 VM 预配超时的最常见原因。

当 VM 预配超时时,你会看到以下错误:

Screenshot of the error displayed in the Azure portal when VM provisioning times out in Azure Stack Edge.

以下问题是导致 VM 预配超时的主要原因:

分配给 VM 的 IP 已在使用中

错误说明:分配给 VM 的静态 IP 地址已在使用中,VM 预配失败。 如果部署 VM 的子网已在使用分配的 IP 地址,即会发生此错误。 通过 Azure 门户部署 VM 时,该过程会检查设备中现有的 IP 地址,但无法检查其他亦可能存在于子网中的服务或虚拟机的 IP 地址。

建议解决方案:使用未在使用中的静态 IP 地址,或使用 DHCP 服务器提供的动态 IP 地址。

检查 IP 地址是否重复:

  • 在使用同一网络的任何设备上运行以下 ping 和 Test-NetConnection (tnc) 命令:

    ping <IP address>
    tnc <IP address>
    tnc <IP address> -CommonTCPPort “RDP”
    

如果收到响应,则表示你分配给新 VM 的 IP 地址已在使用中。

VM 映像未经正确准备

错误说明:若要准备将在 Azure Stack Edge Pro GPU 设备上使用的 VM 映像,请务必遵循特定工作流。 你必须在 Azure 中创建第 1 代虚拟机,自定义 VM,通用化 VHD,然后下载该虚拟机的 OS VHD。 准备使用的映像必须是第 1 代固定(类型)VHD,并且文件名扩展名为“vhd”。

有关要求的概述,请参阅为 Azure Stack Edge Pro GPU 设备创建自定义 VM 映像。 有关解决 VM 映像问题的指导,请参阅排查在 Azure Stack Edge Pro GPU 中上传虚拟机映像的问题

建议解决方案:完成用于准备 VM 映像的工作流。 如需指导,请参阅以下文章之一:

无法从来宾 VM 访问网关和 DNS 服务器

错误说明:如果在 VM 部署期间无法访问默认网关和 DNS 服务器,则 VM 预配将超时,VM 部署将失败。

建议解决方案:验证是否可以从 VM 访问默认网关和 DNS 服务器。 然后再次部署 VM。

若要验证可以从 VM 访问默认网关和 DNS 服务器,请执行以下步骤:

  1. 连接到 VM

  2. 运行以下命令:

    ping <default gateway IP address>
    ping <DNS server IP address>
    

    若要查找默认网关和 DNS 服务器的 IP 地址,请转到设备的本地 UI。 选择相关端口,并查看网络设置。

    Screenshot of the Network page for an Azure Stack Edge device with Network settings for Port 2 displayed.

cloud init 问题 (Linux VM)

错误说明:cloud init 未运行,或者运行 cloud init 时出现问题。 cloud-init 可用于在首次启动 Linux VM 时自定义该 VM。 有关详细信息,请参阅 Azure 中虚拟机的 cloud-init 支持

建议解决方案:查找运行 cloud init 时发生的问题:

  1. 连接到 VM

  2. 检查以下日志文件中出现的 cloud init 错误:

    • /var/log/cloud-init-output.log
    • /var/log/cloud-init.log
    • /var/log/waagent/log

若要检查导致 cloud init 运行失败的最常见问题,请执行以下步骤:

  1. 确保 VM 映像是基于 cloud init 创建。 运行以下命令:

    cloud-init --version

    该命令应返回 cloud init 版本号。 如果映像并非基于 cloud init 创建,则该命令将不会返回版本信息。

    若需帮助以获取 cloud init 选项,请运行以下命令:

    cloud-init --help

  2. 确保已将数据源设置为 Azure 的 cloud init 实例能够成功运行。

    当数据源被设置为 Azure 时,cloud init 日志中的条目将如下所示。

    Illustration of a cloud-init log entry for a VM image with the Data Source set to Azure. The identifying text is highlighted.

    若数据源未设置为 Azure,则可能需要修改 cloud init 脚本。 有关详细信息,请参阅深入了解 cloud-init

预配标志设置有误 (Linux VM)

错误说明:若要在 Azure 中成功部署 Linux VM,则必须在映像上禁用预配,且必须启用 cloud init 以进行预配。 并且,为标准 VM 映像正确配置设置这些值的预配标志。 如果使用自定义 VM 映像,则需要确保其正确无误。

建议解决方案:确保 /etc/waagent.conf 文件中的预配标志具有以下值:

功能 所需的值
启用设置 Provisioning.Enabled=n
依靠 cloud-init 进行预配 Provisioning.UseCloudInit=y

连接到启用了 SRIOV 的虚拟交换机的主网络接口

错误说明: 附加到单个根 I/O 虚拟化(SRIOV)接口的主网络接口启用了虚拟交换机会导致网络流量绕过 hyper-v,因此主机无法从 VM 接收 DHCP 请求,从而导致预配超时。

建议解决方案:

  • 连接 VM 主网络接口到虚拟交换机,而无需启用加速网络。

  • 在 Azure Stack Edge Pro 1 设备上,在端口 1 到端口 4 上创建的虚拟交换机不会启用加速网络。 在端口 5 或端口 6 上,虚拟交换机默认启用加速网络。

  • 在 Azure Stack Edge Pro 2 设备上,在端口 1 或端口 2 上创建的虚拟交换机不会启用加速网络。 在端口 3 或端口 4 上,虚拟交换机默认启用加速网络。

网络接口创建问题

本部分提供相关指导,助你排查在 VM 部署过程中导致网络接口创建失败的问题。

NIC 创建超时

错误说明:未在允许的超时期间内,在 VM 上成功创建网络接口。 此故障可能是由环境中的 DHCP 服务器问题所导致。

若要验证是否已成功创建网络接口,请执行以下步骤:

  1. 在 Azure 门户中,转到设备的 Azure Stack Edge 资源(前往“Edge 服务”>“虚拟机”)。 然后选择“部署”,并导航到 VM 部署。

  2. 如果未成功创建网络接口,你将看到以下错误。

    Screenshot of the error displayed in the Azure portal when network interface creation fails during VM deployment on an Azure Stack Edge device.

建议的解决方案:再次创建 VM,并为其分配静态 IP 地址。

VM 创建问题

本部分介绍创建 VM 期间发生的常见问题。

内存不足,无法创建 VM

错误说明:若因内存不足而导致 VM 创建失败时,你将看到以下错误。

Screenshot of the error displayed in the Azure portal when VM creation fails on an Azure Stack Edge device.

建议的解决方案:检查设备上可用的内存,并根据 VM 大小做出相应选择。 有关详细信息,请参阅 Azure Stack Edge 上支持的虚拟机大小

可用于部署 VM 的内存受以下多重因素约束:

建议解决方案:

  • 使用需要较少内存的 VM 大小。
  • 在部署新 VM 之前,关闭门户中未使用的所有 VM。
  • 删除不再使用的所有 VM。

GPU 数量不足,无法创建 GPU VM

若尝试在已启用 Kubernetes 的 GPU 设备上部署 VM,你将无法使用 GPU,VM 预配亦会失败并出现以下错误:

Screenshot of the error displayed in the Azure portal when creation of a GPU VM fails because of no available GPUs on an Azure Stack Edge device.

可能的原因:如果在创建 VM 之前已经启用 Kubernetes,则 Kubernetes 将会使用所有可用的 GPU,从而导致你无法创建与 GPU 同等大小的 VM。 你能够创建的与 GPU 同等大小的 VM 数同于可用的 GPU 数。 而你的 Azure Stack Edge 设备可以配备 1 或 2 个 GPU。

建议解决方案:如需了解已配置 Kubernetes 的 1 GPU 或 2 GPU 设备上的 VM 部署选项,请参阅 GPU VM 和 Kubernetes

后续步骤