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

排查 Azure Stack Edge Pro GPU 上的 GPU VM 的 GPU 扩展问题

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

本文提供了指导,以解决导致 GPU VM 上的 GPU 扩展在 Azure Stack Edge Pro GPU 设备上安装失败的最常见问题。

有关安装步骤,请参阅安装 GPU 扩展

在低于 2205 的版本中,Linux GPU 扩展将安装旧的签名密钥:缺少签名和/或必需的密钥

错误说明:Linux GPU 扩展安装旧的签名密钥,导致无法阻止下载所需的 GPU 驱动程序。 在这种情况下,Linux VM 的 syslog 中会出现以下错误:

/var/log/syslog and /var/log/waagent.log 
May  5 06:04:53 gpuvm12 kernel: [  833.601805] nvidia:module verification failed: signature and/or required key missing- tainting kernel 

建议的解决方法:可以使用两种选项缓解此问题

  • 选项 1:将 Azure Stack Edge 2205 更新应用于设备

  • 选项2:创建 NCasT4_v3 系列大小的 GPU 虚拟机后,在安装扩展之前手动安装新的签名密钥,然后按照更新 CUDA Linux GPG 存储库密钥 | NVIDIA 技术博客中的步骤设置所需的签名密钥

    下面是在 Ubuntu 1804 虚拟机上安装签名密钥的示例:

    $ sudo apt-key adv --fetch-
    keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub 
    

无法在 Windows 2016 VHD 上安装 GPU 扩展

错误说明:这是低于 2205 的版本中的已知问题。 GPU 扩展需要 TLS 1.2。 在这种情况下,可能会看到以下错误消息:

Failed to download https://go.microsoft.com/fwlink/?linkid=871664 after 10 attempts. Exiting!

其他详细信息:

  • 检查来宾日志中的关联错误。 若要收集来宾日志,请参阅在 Azure Stack Edge Pro GPU 设备上收集 VM 的来宾日志
  • 在 Linux VM 上,查看 /var/log/waagent.log/var/log/azure/nvidia-vmext-status
  • 在 Windows VM 上,在 C:\Packages\Plugins\Microsoft.HpcCompute.NvidiaGpuDriverWindows\1.3.0.0\Status 中查找错误状态。
  • 查看 C:\WindowsAzure\Logs\WaAppAgent.txt 中的完整执行日志。

如果在包下载过程中安装失败,则此错误表示 VM 无法访问公用网络来下载驱动程序。

建议的解决方法:使用以下步骤在 Windows 2016 VM 上启用 TLS 1.2,然后部署 GPU 扩展

  1. 在 VM 中运行以下命令以启用 TLS 1.2:

    sp hklm:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 SchUseStrongCrypto 1
    
  2. 部署模板 addGPUextensiontoVM.json 以在现有 VM 上安装扩展。 可以手动安装扩展,也可以从 Azure 门户安装扩展。

    注意

    扩展部署是一个长时间运行的作业,大约需要 10 分钟才能完成。

在 RHEL 7 上手动安装 Nvidia 驱动程序

错误说明:在 RHEL 7 VM 上安装 GPU 扩展时,安装可能会由于证书轮换问题和驱动版本不兼容而失败

建议的解决方法:在这种情况下,可以使用两种选项

  • 选项 1:解决证书轮换问题,然后安装低于 510 版本的 Nvidia 驱动程序

    1. 若要解决证书轮换问题,请运行以下命令:

      $ sudo yum-config-manager --add-repo  https://developer.download.nvidia.com/compute/cuda/repos/rhel7/$arch/cuda-rhel7.repo
      
    2. 安装低于 510 版本的 Nvidia 驱动程序。

  • 选项 2:部署 GPU 扩展。 部署 ARM 扩展时使用以下设置:

    settings": { 
    "isCustomInstall": true, 
    "InstallMethod": 0, 
    "DRIVER_URL": "  https://developer.download.nvidia.com/compute/cuda/11.4.4/local_installers/cuda-repo-rhel7-11-4-local-11.4.4_470.82.01-1.x86_64.rpm", 
    "DKMS_URL" : "  https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm", 
    "LIS_URL": "  https://aka.ms/lis", 
    "LIS_RHEL_ver": "3.10.0-1062.9.1.el7" 
    } 
    

VM 的大小不是 GPU VM 的大小

错误说明:GPU VM 的大小必须为 Standard_NC4as_T4_v3 或 Standard_NC8as_T4_v3 的大小。 如果使用任何其他 VM 的大小,将无法附加 GPU 扩展。

建议的解决方案:用 Standard_NC4as_T4_v3 或 Standard_NC8as_T4_v3 VM 的大小创建一个 VM。 有关详细信息,请参阅 GPU VM 支持的 VM 大小。 有关指定大小的信息,请参阅创建 GPU VM

不支持映像 OS

错误说明:GPU 扩展不支持 VM 映像上安装的操作系统。

建议的解决方案:准备具有 GPU 扩展支持的操作系统的新 VM 映像。

扩展参数不正确

错误说明:在 Linux VM 上部署 GPU 扩展时使用了不正确的扩展设置。

建议的解决方案:在部署 GPU 扩展之前编辑参数文件。 有关详细信息,请参阅安装 GPU 扩展

下载包时 VM 扩展安装失败

错误说明:扩展预配在扩展安装期间或启用状态期间失败。

  1. 检查来宾日志中的关联错误。 若要收集来宾日志,请参阅在 Azure Stack Edge Pro 上收集 VM 的来宾日志

    在 Linux VM 上:

    • /var/log/waagent.log/var/log/azure/nvidia-vmext-status 中查找。

    在 Windows VM 上:

    • C:\Packages\Plugins\Microsoft.HpcCompute.NvidiaGpuDriverWindows\1.3.0.0\Status 中查找错误状态。
    • 查看完整的执行日志:C:\WindowsAzure\Logs\WaAppAgent.txt

    如果在包下载过程中安装失败,则此错误表示 VM 无法访问公用网络来下载驱动程序。

建议的解决方案:

  1. 在连接到 Internet 的端口上启用计算。 若要获取指导,请参阅创建 GPU VM

  2. 在门户中停止 VM,以解除分配 VM。 若要停止 VM,请转到“虚拟机”>“概述”,然后选择 VM。 然后,在 VM 属性页上,选择“停止”

  3. 创建新 VM。

VM 扩展失败,出现错误 dpkg is used/yum lock is used (Linux VM)

错误说明:Linux VM 上的 GPU 扩展部署失败,因为另一个进程正在使用 dpkg 或另一个进程创建了 yum lock

建议的解决方案:若要解决此问题,请执行以下步骤:

  1. 若要了解锁的应用进程,请搜索 \var\log\azure\nvidia-vmext-status 日志中的错误,例如“dpkg 由另一个进程使用”或“另一个应用持有 yum lock”。

  2. 等待进程完成,或结束进程。

  3. 再次安装 GPU 扩展

  4. 如果扩展部署再次失败,请创建新的 VM,并确保在你安装 GPU 扩展之前锁不存在。

后续步骤

收集来宾日志并创建支持包