Erstellen eines freigegebenen Pools von Data Science Virtual Machine-Instanzen
In diesem Artikel erfahren Sie, wie Sie einen freigegebenen Pool von Data Science Virtual Machine-Instanzen (DSVMs) für ein Team erstellen. Die Verwendung eines freigegebenen Pools bietet wichtige Vorteile:
- Bessere Ressourcennutzung
- Einfachere Freigabe und Zusammenarbeit
- Effektiveres Management von DSVM-Ressourcen
Zum Erstellen eines DSVM-Pools können Sie zahlreiche Methoden und Technologien verwenden. Die Schwerpunkte dieses Artikels liegen auf Pools für interaktive virtuelle Computer (Virtual Machines, VMs). Eine alternative verwaltete Computeinfrastruktur beinhaltet auch Azure Machine Learning Compute. Weitere Informationen finden Sie unter Erstellen eines Computeclusters.
Interaktiver VM-Pool
Ein Pool interaktiver VM, der von einem gesamten KI/Data Science-Team gemeinsam genutzt wird, bietet Benutzern eine Möglichkeit, sich bei einer verfügbaren DSVM-Instanz anzumelden, anstatt für jede Gruppe von Benutzern eine dedizierte Instanz zu haben. Dieser Ansatz bietet eine bessere Verfügbarkeit und eine effektivere Ressourcenauslastung.
Sie verwenden die Technologie der VM-Skalierungsgruppen von Azure, um einen interaktiven VM-Pool zu erstellen. Verwenden Sie Skalierungsgruppen, um eine Gruppe von identischen virtuellen Computern mit Lastenausgleich und automatischer Skalierung zu erstellen und zu verwalten.
Der Benutzer meldet sich bei der IP-Adresse oder DNS-Adresse des Hauptpools an. Die Skalierungsgruppe leitet die Sitzung automatisch an eine verfügbare DSVM in der Skalierungsgruppe weiter. Da Benutzer unabhängig von dem virtuellen Computer, bei dem sie sich anmelden, eine konsistente und vertraute Umgebung wünschen, stellen alle Instanzen der VM im Skalierungssatz ein freigegebenes Netzlaufwerk bereit. Dies ähnelt einer Azure Files-Freigabe oder einer NFS-Freigabe (Network File System). Der freigegebene Arbeitsbereich des Benutzers wird normalerweise im freigegebenen und in alle Instanzen eingebundenen Dateispeicher.
Eine Azure Resource Manager-Beispielvorlage, mit der eine Skalierungsgruppe mit Ubuntu-DSVM-Instanzen erstellt wird, finden Sie auf GitHub. Ein Exemplar der Parameterdatei für die Azure Resource Manager-Vorlage wird am gleichen Ort bereitgestellt.
Geben Sie Werte für die Parameterdatei in der Azure-CLI an, um die Skalierungsgruppe mit der Azure Resource Manager-Vorlage zu erstellen:
az group create --name [[NAME OF RESOURCE GROUP]] --location [[ Data center. For eg: "West US 2"]
az deployment group create --resource-group [[NAME OF RESOURCE GROUP ABOVE]] --template-uri https://raw.githubusercontent.com/Azure/DataScienceVM/master/Scripts/CreateDSVM/Ubuntu/dsvm-vmss-cluster.json --parameters @[[PARAMETER JSON FILE]]
Bei diesen Befehlen wird davon ausgegangen, dass Sie folgendes haben:
- Eine Kopie der Parameterdatei mit den für Ihre Instanz der Skalierungsgruppe angegebenen Werten
- Die Anzahl der VM-Instanzen
- Zeiger auf die Azure Files-Freigabe
- Anmeldeinformationen für das in jede VM eingebundene Speicherkonto
Die Befehle verweisen lokal auf die Parameterdatei. Sie können Parameter auch inline übergeben, oder zu deren Eingabe im Skript auffordern.
Die vorangegangene Vorlage ermöglicht den SSH- und den JupyterHub-Port von der Front-End-VM-Skalierungsgruppe zum Back-End-Pool der Ubuntu-DSVM-Instanzen. Als Benutzer können Sie sich bei der VM über eine Secure Shell (SSH) oder über JupyterHub auf dem normalen Weg anmelden. Weil die VM-Instanzen dynamisch zentral hoch- und herunterskaliert werden können, muss jeder Zustand in der bereitgestellten Azure Files-Freigabe gespeichert werden. Der gleiche Ansatz kann zum Erstellen eines Pools von Windows-DSVM-Instanzen verwendet werden.
Das Skript, das Azure Files einbindet, steht auch auf GitHub im „Azure DataScienceVM“-Repository zur Verfügung. Das Skript bindet die Azure Files-Freigabe am angegebenen Bereitstellungspunkt in der Parameterdatei ein. Zudem erstellt das Skript auch Softlinks auf das eingebundene Laufwerk im Startverzeichnis des ursprünglichen Benutzers. Ein benutzerspezifisches Notebook-Verzeichnis in der Azure Files-Freigabe ist mit dem Verzeichnis $HOME/notebooks/remote
verknüpft, sodass Benutzer auf ihre Jupyter Notebook-Instanzen zugreifen, sie ausführen und speichern können. Sie können die gleiche Konvention verwenden, wenn Sie weitere Benutzer auf der VM erstellen, um den Jupyter-Arbeitsbereich der einzelnen Benutzer auf die Azure Files-Freigabe zu verweisen.
VM-Skalierungsgruppen unterstützen die automatische Skalierung. Sie können Regeln dazu festlegen, wann weitere Instanzen erstellt und wann Instanzen herunterskaliert werden sollen. Beispielsweise können Sie die Anzahl der Instanzen auf null herunterskalieren, um Kosten für die Nutzung der Cloudhardware zu sparen, wenn die VMs überhaupt nicht verwendet werden. Die VM-Skalierungsgruppen enthalten Dokumentationsseiten mit ausführlicher Beschreibung der Schritte für die automatische Skalierung.