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

排查 Azure 数据科学 虚拟机的问题

本文介绍如何查找和使用 Azure 数据科学 虚拟机时可能会遇到的错误或故障。

Ubuntu

解决 NVIDIA A100 GPU 芯片中的 GPU 问题 - Azure NDasrv4 系列

ND A100 v4 系列虚拟机是 Azure GPU 系列的旗舰补充。 它处理高端深度学习训练,并紧密耦合、纵向扩展和横向扩展 HPC 工作负载。

由于其独特的体系结构,它需要为高需求工作负荷设置不同的设置,以便从使用 TensorFlow 或 PyTorch 框架的 GPU 加速中获益。

我们正在为 ND A100 计算机 GPU 构建现装支持。 同时,如果添加 NVIDIA Fabric Manager 并更新驱动程序,GPU 可以处理 Ubuntu。 在终端执行以下步骤:

  1. 添加 NVIDIA 存储库以安装或更新驱动程序 - 查找此资源的分步说明

  2. [可选]还可以从该存储库更新 CUDA 驱动程序

  3. 安装 NVIDIA Fabric Manager 驱动程序:

    sudo apt-get install cuda-drivers-460
    sudo apt-get install cuda-drivers-fabricmanager-460
    
  4. 重新启动 VM(准备驱动程序)

  5. 启用并启动新安装的 NVIDIA Fabric Manager 服务:

    sudo systemctl enable nvidia-fabricmanager
    sudo systemctl start nvidia-fabricmanager
    

运行此代码示例,验证 GPU 和驱动程序是否正常工作:

systemctl status nvidia-fabricmanager.service

此屏幕截图显示了正在运行的 Fabric Manager 服务:

显示正在运行的 Fabric Manager 服务的屏幕截图。

无法连接到桌面环境

如果可以通过 SSH 终端连接到 DSVM,但无法通过 x2go 进行连接,x2go 可能具有错误的会话类型设置。 若要连接到 DSVM 桌面环境,请将 x2go/session 首选项/会话中的会话类型设置为 XFCE。 目前不支持其他桌面环境。

使用 x2go 连接到 DSVM 时,字体看起来错误

连接到 x2go 时,特定的 x2go 会话设置可能会导致某些字体看起来不正确。 连接到 DSVM 之前,请取消检查会话首选项对话框的“输入/输出”选项卡中的“设置显示 DPI”检查框。

提示输入的密码未知

可以将 DSVM 身份验证类型 设置设置为 SSH 公钥。 建议不要使用密码身份验证。 如果使用 SSH 公钥,则不会收到密码。 但是,在某些情况下,某些应用程序仍请求密码。 运行 sudo passwd <user_name> 以为特定用户创建新密码。 使用 sudo passwd,可以为根用户创建一个新密码。

运行此命令不会更改 SSH 配置,并且允许的登录机制保持不变。

运行 sudo 命令时提示输入密码

在 Ubuntu 计算机上运行 sudo 命令时,可能会收到重复输入密码的请求,以验证你是否是登录用户。 这是预期的默认 Ubuntu 行为。 但是,在某些情况下,不需要重复身份验证,而是令人恼火。

若要对大多数情况禁用重新身份验证,可以在终端中运行以下命令:

echo -e "\n$USER ALL=(ALL) NOPASSWD: ALL\n" | sudo tee -a /etc/sudoers

重启终端后,sudo 不会要求另一个登录,它将会话登录中的身份验证视为足够。

不能将 docker 用作非根用户

若要将 docker 用作非根用户,用户需要 docker 组中的成员身份。 该 getent group docker 命令返回属于该组的用户的列表。 若要将用户添加到 docker 组,请运行 sudo usermod -aG docker $USER

Docker 容器无法通过网络与外部交互

默认情况下,Docker 将新的容器添加到所谓的“网桥网络”: 172.17.0.0/16 该网桥网络的子网可与 DSVM 的子网或订阅中拥有的另一个专用子网重叠。 在这种情况下,主机和容器之间没有网络通信。 此外,无法访问容器中运行的 Web 应用程序,并且容器无法从 apt 更新包。

若要解决此问题,必须重新配置 Docker,使其网桥网络使用 IP 地址空间,该网络不会与订阅的其他网络重叠。 例如,如果添加

"default-address-pools": [
        {
            "base": "10.255.248.0/21",
            "size": 21
        }
    ]

/etc/docker/daemon.json如果为 JSON 文件,Docker 会将另一个子网分配给网桥网络。 必须使用 sudo 编辑文件,例如,通过运行 sudo nano /etc/docker/daemon.json

更改后,运行 service docker restart 以重启 Docker 服务。 若要确定更改是否生效,可以运行 docker network inspect bridge。 IPAM 下 的值。Config.Subnet 应与前面指定的地址池相对应。

docker 容器中的 GPU 不可用

默认情况下,DSVM 上安装的 Docker 资源支持 GPU。 但是,该支持需要某些先决条件。

  • DSVM 的 VM 大小必须至少包含一个 GPU。
  • 使用 Docker 容器 docker run启动时,必须添加 --gpus 参数:例如 --gpus all
  • 包含 NVIDIA A100 GPU 的 VM 大小需要安装其他软件包,尤其是 NVIDIA Fabric Manager。 这些包可能未预安装在映像中。

Windows

虚拟机第 2 代 (Gen 2) 无法工作

尝试基于虚拟机第 2 代(第 2 代)创建数据科学 VM 时,它将失败。

目前,我们仅针对第 1 代 DSVM 维护和提供基于 Windows 2019 Server 的 数据科学 虚拟机(DSVM)的映像。 尚不支持第 2 代,但我们计划在近期支持它们。

访问 SQL Server

尝试连接到预安装的 SQL Server 实例时,可能会遇到“登录失败”错误。 若要成功连接到 SQL Server 实例,必须在管理员模式下运行要连接到的程序,例如 SQL Server Management Studio (SSMS)。 管理员模式是必需的,因为 DSVM 默认行为只有管理员可以连接。

Hyper-V 不起作用

与预期行为一样,Hyper-V 最初在 Windows 上不起作用。 为了获得最佳性能,我们禁用了某些服务。 若要启用 Hyper-V:

  1. 请在 Windows DSVM 中打开搜索栏
  2. 键入“服务”,
  3. 将所有 Hyper-V 服务设置为“手动”
  4. 将“Hyper-V 虚拟机管理”设置为“自动”

最终屏幕应如下所示:

显示正在运行的 Hyper-V 服务的屏幕截图。