Azure Data Science Virtual Machine の既知の問題とトラブルシューティング

この記事は、Azure Data Science Virtual Machine の使用時に発生する可能性のあるエラーや障害を見つけて修正するのに役立ちます。

Ubuntu

NVIDIA A100 GPU チップの GPU を修正する - Azure NDasrv4 シリーズ

ND A100 v4 シリーズの仮想マシンは、ハイエンドのディープ ラーニング トレーニングと密結合のスケールアップおよびスケールアウトの HPC ワークロード向けに設計された、Azure GPU ファミリに新たに追加された主力製品です。

異なるアーキテクチャにより、TensorFlow または PyTorch フレームワークを使用して GPU アクセラレーションを利用するには、要求の厳しいワークロードに対して異なるセットアップが必要です。

ND A100 マシン GPU の追加設定なしのサポートに向けて取り組んでいます。 その間、NVIDIA の Fabric Manager を追加し、ドライバーを更新することで、GPU を動作させることができます。

ターミナルで次の簡単な手順に従います。

  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

その後、nvidia-fabric-manager-status を実行している Fabric Manager サービスが表示されます。

デスクトップ環境への接続が失敗する

SSH ターミナルを使用して DSVM に接続できるが、x2go を使用して接続できない場合は、x2go で間違ったセッションの種類を設定している可能性があります。 DSVM のデスクトップ環境に接続するには x2go/session preferences/session でセッションの種類を XFCE に設定する必要があります。 その他のデスクトップ環境は現在サポートされていません。

x2go を使用して DSVM に接続するとフォントが正しく表示されない

x2go に接続し、一部のフォントが正しく表示されない場合は、x2go のセッション設定に関連している可能性があります。 DSVM に接続する前に、セッション設定ダイアログの [入力/出力] タブの [ディスプレイ DPI の設定] チェック ボックスをオフにします。

不明なパスワードの入力を求めるメッセージ

[認証の種類][SSH 公開キー] (パスワード認証を使用する場合に推奨) に設定する DSVM を作成すると、パスワードは指定されません。 ただしシナリオによって、一部のアプリケーションで引き続きパスワードの入力が求められる場合があります。 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 からパッケージを更新できません。

この問題を解決するには、サブスクリプションの他のネットワークと重複しないブリッジ ネットワークに IP アドレス空間を使用するように、Docker を再構成する必要があります。 たとえば、

"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 サイズには少なくとも 1 つの GPU を含める必要があります。
  • docker run で Docker コンテナーを起動する場合は、 --gpus パラメーター (例: --gpus all) を追加する必要があります。
  • NVIDIA A100 GPU を含む VM サイズには、追加のソフトウェア パッケージがインストールされている必要があります (特に NVIDIA Fabric Manager)。 これらのパッケージは、まだイメージにプレインストールされていない可能性があります。

Windows

仮想マシンの第 2 世代 (Gen 2) が動作していない

仮想マシンの第 2 世代 (Gen 2) に基づいて Data Science VM を作成しようとすると失敗します。

現時点では、第 1 世代の仮想マシンに対してのみ、Windows 2019 Server に基づいて Data Science 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 仮想マシンの管理" を "自動" に設定します

最後の画面は、次のようになります。

Hyper-V の有効化