針對 Azure 資料科學虛擬機器 的問題進行疑難解答

本文說明如何在使用 Azure 資料科學虛擬機器 時發現並更正您可能遇到的錯誤或失敗。

Ubuntu

修正 NVIDIA A100 GPU 晶片上的 GPU - Azure NDasrv4 系列

ND A100 v4 系列虛擬機是 Azure GPU 系列的旗艦新增專案。 其會處理高端深度學習訓練,並緊密結合、相應增加和相應放大 HPC 工作負載。

由於其獨特的架構,因此需要針對高需求工作負載設定不同的設定,才能使用 TensorFlow 或 PyTorch 架構從 GPU 加速中獲益。

我們正在建置 ND A100 機器 GPU 的現成支援。 同時,如果您新增 NVIDIA Fabric 管理員並更新驅動程式,您的 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(s)

DSVM 上安裝的 Docker 資源預設支援 GPU。 不過,該支援需要特定必要條件。

  • DSVM 的 VM 大小必須至少包含一個 GPU。
  • 當您使用 docker run啟動 Docker 容器時,您必須新增 --gpus 參數:例如 --gpus all
  • 包含 NVIDIA A100 GPU 的 VM 大小需要安裝其他軟體套件,特別是 NVIDIA Fabric 管理員。 這些套件可能不會預安裝於映像中。

Windows

虛擬機第 2 代 (第 2 代) 無法運作

當您嘗試根據虛擬機第 2 代 (Gen 2) 建立 資料科學 VM 時,它會失敗。

目前,我們會根據 Windows 2019 Server 維護並提供 資料科學虛擬機器 (DSVM) 的映像,僅適用於第 1 代 DSVM。 尚未支援 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 虛擬機管理] 設定為 [自動]

您的最終畫面看起來應該像這樣:

顯示執行中 Hyper-V 服務的螢幕快照。