Risoluzione dei problemi relativi alla data science virtual machine di Azure

Questo articolo illustra come trovare e correggere errori o errori che possono verificarsi quando si usa la macchina virtuale di data science di Azure.

Ubuntu

Correzione della GPU nel chip GPU NVIDIA A100 - Serie NDasrv4 di Azure

La macchina virtuale serie ND A100 v4 è un'aggiunta di punta alla famiglia gpu di Azure. Gestisce il training di Deep Learning di fascia alta e strettamente accoppiato, con scalabilità orizzontale e scalabilità orizzontale dei carichi di lavoro HPC.

Grazie alla sua architettura unica, richiede una configurazione diversa per i carichi di lavoro a richiesta elevata, per trarre vantaggio dall'accelerazione GPU usando framework TensorFlow o PyTorch.

Stiamo creando un supporto predefinito per le GPU ND A100. Nel frattempo, la GPU può gestire Ubuntu se si aggiunge NVIDIA Fabric Manager e si aggiornano i driver. Seguire questa procedura nel terminale:

  1. Aggiungere il repository NVIDIA per installare o aggiornare i driver. Per istruzioni dettagliate, vedere questa risorsa

  2. [FACOLTATIVO] È anche possibile aggiornare i driver CUDA da tale repository

  3. Installare i driver NVIDIA Fabric Manager:

    sudo apt-get install cuda-drivers-460
    sudo apt-get install cuda-drivers-fabricmanager-460
    
  4. Riavviare la macchina virtuale (per preparare i driver)

  5. Abilitare e avviare il servizio NVIDIA Fabric Manager appena installato:

    sudo systemctl enable nvidia-fabricmanager
    sudo systemctl start nvidia-fabricmanager
    

Eseguire questo esempio di codice per verificare che la GPU e i driver funzionino:

systemctl status nvidia-fabricmanager.service

Questo screenshot mostra il servizio Fabric Manager in esecuzione:

Screenshot che mostra il servizio Fabric Manager in esecuzione.

La connessione all'ambiente desktop non riesce

Se è possibile connettersi alla DSVM tramite il terminale SSH, ma non è possibile connettersi tramite x2go, x2go potrebbe avere l'impostazione del tipo di sessione errata. Per connettersi all'ambiente desktop DSVM, impostare il tipo di sessione nelle preferenze x2go/sessione/sessione su XFCE. Altri ambienti desktop non sono attualmente supportati.

I tipi di carattere sembrano errati durante la connessione a DSVM con x2go

Un'impostazione specifica della sessione x2go può causare un errore di alcuni tipi di carattere quando ci si connette a x2go. Prima di connettersi alla DSVM, deselezionare la casella di controllo "Imposta dpi di visualizzazione" nella scheda "Input/Output" della finestra di dialogo delle preferenze di sessione.

Richiesta di password sconosciuta

È possibile impostare l'impostazione Tipo di autenticazione DSVM su Chiave pubblica SSH. Questa opzione è consigliata anziché l'autenticazione della password. Non si riceve una password se si usa la chiave pubblica SSH. In alcuni scenari, tuttavia, alcune applicazioni richiedono ancora una password. Eseguire sudo passwd <user_name> per creare una nuova password per un utente specifico. Con sudo passwdè possibile creare una nuova password per l'utente radice.

L'esecuzione di questo comando non modifica la configurazione SSH e i meccanismi di accesso consentiti rimangono invariati.

Richiesta di password durante l'esecuzione del comando sudo

Quando si esegue un comando in un sudo computer Ubuntu, è possibile che venga visualizzata una richiesta di immettere ripetutamente la password per verificare di essere l'utente connesso. Si tratta del comportamento predefinito di Ubuntu previsto. Tuttavia, in alcune situazioni, un'autenticazione ripetuta non è necessaria e piuttosto fastidiosa.

Per disabilitare la riautenticazione per la maggior parte dei casi, è possibile eseguire questo comando in un terminale:

echo -e "\n$USER ALL=(ALL) NOPASSWD: ALL\n" | sudo tee -a /etc/sudoers

Dopo aver riavviato il terminale, sudo non chiederà un altro accesso e considererà l'autenticazione dall'accesso alla sessione come sufficiente.

Non è possibile usare Docker come utente nonroot

Per usare Docker come utente nonroot, l'utente deve appartenere al gruppo Docker. Il getent group docker comando restituisce un elenco di utenti che appartengono a tale gruppo. Per aggiungere l'utente al gruppo Docker, eseguire sudo usermod -aG docker $USER.

I contenitori Docker non possono interagire con l'esterno tramite la rete

Per impostazione predefinita, Docker aggiunge nuovi contenitori alla cosiddetta "rete bridge": 172.17.0.0/16. La subnet della rete bridge potrebbe sovrapporsi alla subnet della DSVM o a un'altra subnet privata presente nella sottoscrizione. In questo caso, non è possibile alcuna comunicazione di rete tra l'host e il contenitore. Inoltre, non è possibile raggiungere le applicazioni Web eseguite nel contenitore e il contenitore non può aggiornare i pacchetti da apt.

Per risolvere il problema, è necessario riconfigurare Docker per usare uno spazio indirizzi IP per la rete bridge che non si sovrappone ad altre reti della sottoscrizione. Ad esempio, se si aggiunge

"default-address-pools": [
        {
            "base": "10.255.248.0/21",
            "size": 21
        }
    ]

al /etc/docker/daemon.json file JSON, Docker assegna un'altra subnet alla rete bridge. È necessario modificare il file con sudo, ad esempio eseguendo sudo nano /etc/docker/daemon.json.

Dopo la modifica, eseguire service docker restart per riavviare il servizio Docker. Per determinare se le modifiche sono state applicate, è possibile eseguire docker network inspect bridge. Valore in Gestione indirizzi IP. Config.Subnet deve corrispondere al pool di indirizzi specificato in precedenza.

GPU non disponibili nel contenitore Docker

La risorsa Docker installata nella DSVM supporta le GPU per impostazione predefinita. Tuttavia, tale supporto richiede determinati prerequisiti.

  • Le dimensioni della macchina virtuale della DSVM devono includere almeno una GPU.
  • Quando si avvia il contenitore Docker con docker run, è necessario aggiungere un parametro --gpus , --gpus allad esempio .
  • Le dimensioni delle macchine virtuali che includono GPU NVIDIA A100 richiedono l'installazione di altri pacchetti software, in particolare NVIDIA Fabric Manager. Questi pacchetti potrebbero non essere preinstallati nell'immagine.

Finestre

Macchina virtuale generazione 2 (generazione 2) non funzionante

Quando si tenta di creare una macchina virtuale per l'analisi scientifica dei dati basata sulla macchina virtuale generazione 2 (generazione 2), l'operazione ha esito negativo.

Al momento, microsoft gestisce e fornisce immagini per data science Macchine virtuali (DSVM) basate su Windows 2019 Server, solo per le DSVM di seconda generazione. La seconda generazione non è ancora supportata, ma è prevista per supportarli in futuro.

Accesso a SQL Server

Quando si tenta di connettersi all'istanza di SQL Server preinstallata, è possibile che si verifichi un errore di accesso non riuscito. Per connettersi correttamente all'istanza di SQL Server, è necessario eseguire il programma a cui connettersi, ad esempio SQL Server Management Studio (SSMS) in modalità amministratore. La modalità amministratore è necessaria perché dal comportamento predefinito di DSVM solo gli amministratori possono connettersi.

Hyper-V non funziona

Come previsto, Hyper-V non funziona inizialmente in Windows. Per ottenere prestazioni ottimali, alcuni servizi sono stati disabilitati. Per abilitare Hyper-V:

  1. Aprire la barra di ricerca nella DSVM di Windows
  2. Digitare "Servizi",
  3. Impostare tutti i servizi Hyper-V su "Manuale"
  4. Impostare "Gestione macchine virtuali Hyper-V" su "Automatico"

La schermata finale sarà simile alla seguente:

Screenshot che mostra il servizio Hyper-V in esecuzione.