Azure Data Science Virtual Machine 的已知问题和故障排除方法

本文可帮助你查找和更正使用 Azure Data Science Virtual Machine 时可能遇到的错误或失败。

Ubuntu

无法连接到桌面环境

如果可以通过 SSH 终端(而不是 x2go)连接到 DSVM,则可能是在 x2go 中设置了错误的会话类型。 要连接到 DSVM 的桌面环境,您需要将 x2go/session preferences/session 中的会话类型设置为 XFCE。 目前不支持其他桌面环境。

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

如果连接到 x2go 时某些字体看起来错误,这可能与 x2go 中的会话设置相关。 连接到 DSVM 之前,请取消选中会话首选项对话框的“输入/输出”选项卡中的“设置显示 DPI”复选框。

提示输入的密码未知

如果创建 DSVM 时将“设置身份验证类型”为“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 run 启动 docker 容器时,需要添加 --gpus 参数,例如 --gpus all
  • 包含 NVIDIA A100 GPU 的 VM 大小需要安装其他软件包,尤其是 NVIDIA Fabric Manager。 这些包可能尚未预安装在你的映像中。

Windows

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

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

当前,我们仅针对第 1 代虚拟机,基于 Windows 2019 Server 维护和提供数据科学 VM 的映像。 尚不支持 Gen 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 虚拟机管理”设置为“自动”

最终屏幕应如下所示:

Enable Hyper-V