排查 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:
- 请在 Windows DSVM 中打开搜索栏
- 键入“服务”,
- 将所有 Hyper-V 服务设置为“手动”
- 将“Hyper-V 虚拟机管理”设置为“自动”
最终屏幕应如下所示: