排查 Azure Data Science Virtual Machine 的问题

本文介绍如何查找和更正使用 Azure Data Science Virtual Machine 时可能遇到的错误或失败。

Ubuntu

无法连接到桌面环境

如果你可以通过 SSH 终端连接到 DSVM,但无法通过 x2go 进行连接,则原因可能是 x2go 的会话类型设置有错误。 若要连接到 DSVM 桌面环境,请将 x2go/session preferences/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 将不要求再次登录,因为它认为会话登录过程中执行的身份验证足以满足安全要求。

无法以非 root 用户身份使用 docker

若要以非 root 用户身份使用 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 run 启动 docker 容器时,必须添加 --gpus 参数:例如 --gpus all
  • 包含 NVIDIA A100 GPU 的 VM 大小需要安装其他软件包,特别是 NVIDIA Fabric Manager。 这些包可能未预安装在你的映像中。

Windows

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

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

目前,我们仅针对第 1 代 DSVM 维护并提供基于 Windows 2019 Server 的 Data Science Virtual Machine (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 服务的屏幕截图。