Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Zugriff auf Ihre SageMaker HyperPod Clusterknoten
Sie können über AWS Systems Manager (SSM) auf Ihren InServiceCluster zugreifen, indem Sie den AWS CLI Befehl aws ssm start-session mit dem SageMaker HyperPod Cluster-Hostnamen im Format von sagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id] ausführen. Sie können die Cluster-ID, die Instanz-ID und den Namen der Instanzgruppe von der SageMaker HyperPod Konsole aus abrufen oder indem Sie describe-cluster und list-cluster-nodes die AWS CLIBefehle für SageMaker HyperPod ausführen. Wenn Ihre Cluster-ID beispielsweise aa11bbbbb222, der Clusterknotenname controller-group und die Clusterknoten-ID i-111222333444555aa lautet, sollte der SSM-Befehl start-session wie folgt lauten.
Anmerkung
Wenn Sie Benutzern Zugriff auf HyperPod Clusterknoten gewähren, können sie benutzerverwaltete Software auf den Knoten installieren und ausführen. Stellen Sie sicher, dass Sie das Prinzip der geringsten Berechtigung für Benutzer beibehalten.
Wenn Sie noch keine Einrichtung vorgenommen habenAWS Systems Manager, folgen Sie den Anweisungen unterEinrichtung AWS Systems Manager und Ausführung als für die Cluster-Benutzerzugriffskontrolle.
$aws ssm start-session \ --target sagemaker-cluster:aa11bbbbb222_controller-group-i-111222333444555aa\ --regionus-west-2Starting session with SessionId: s0011223344aabbccddroot@ip-111-22-333-444:/usr/bin#
Beachten Sie, dass Sie dadurch zunächst als Root-Benutzer verbunden werden. Bevor Sie Aufträge ausführen, wechseln Sie zum ubuntu-Benutzer, indem Sie den folgenden Befehl ausführen.
root@ip-111-22-333-444:/usr/bin#sudo su - ubuntuubuntu@ip-111-22-333-444:/usr/bin#
Erweiterte Einstellungen für die praktische Verwendung von HyperPod Clustern finden Sie in den folgenden Themen.
Themen
Zusätzliche Tipps für den Zugriff auf Ihre SageMaker HyperPod Clusterknoten
Verwenden Sie das von bereitgestellte easy-ssh.sh Skript, HyperPod um den Verbindungsvorgang zu vereinfachen
Um aus dem vorherigen Prozess einen einzeiligen Befehl zu machen, stellt das HyperPod Team das easy-ssh.shdescribe-cluster und die Informationen, die für die Ausführung des SSM-Befehls benötigt werden, list-cluster-nodes befiehlt und analysiert. Die folgenden Beispielbefehle veranschaulichen die Ausführung des easy-ssh.sh
$chmod +x easy-ssh.sh$./easy-ssh.sh -c<node-group> <cluster-name>Cluster id:<cluster_id>Instance id:<instance_id>Node Group:<node-group>Add the following to your ~/.ssh/config to easily connect:$cat <<EOF >> ~/.ssh/config Host<cluster-name>User ubuntu ProxyCommand sh -c "aws ssm start-session --target sagemaker-cluster:<cluster_id>_<node-group>-<instance_id>--document-name AWS-StartSSHSession --parameters 'portNumber=%p'" EOF Add your ssh keypair and then you can do: $ ssh<cluster-name>aws ssm start-session --target sagemaker-cluster:<cluster_id>_<node-group>-<instance_id>Starting session with SessionId: s0011223344aabbccddroot@ip-111-22-333-444:/usr/bin#
Beachten Sie, dass Sie dadurch zunächst als Root-Benutzer verbunden werden. Bevor Sie Aufträge ausführen, wechseln Sie zum ubuntu-Benutzer, indem Sie den folgenden Befehl ausführen.
root@ip-111-22-333-444:/usr/bin#sudo su - ubuntuubuntu@ip-111-22-333-444:/usr/bin#
Richten Sie den einfachen Zugriff mit SSH ein, indem Sie den HyperPod Rechenknoten als Remote-Host verwenden
Um den Zugriff auf den Rechenknoten mithilfe von SSH von einem lokalen Computer aus weiter zu vereinfachen, gibt das easy-ssh.sh Skript einen Codeausschnitt zur Einrichtung des HyperPod Clusters als Remote-Host aus, wie im vorherigen Abschnitt gezeigt. Das Code-Snippet wird automatisch generiert, damit Sie es direkt zur ~/.ssh/config-Datei auf Ihrem lokalen Gerät hinzufügen können. Das folgende Verfahren zeigt, wie Sie den einfachen Zugriff mit SSH über den SSM-Proxy einrichten, sodass Sie oder Ihre Clusterbenutzer direkt eine Verbindung ssh zum Clusterknoten herstellen können. HyperPod <cluster-name>
-
Fügen Sie auf Ihrem lokalen Gerät den HyperPod Rechenknoten mit einem Benutzernamen als Remote-Host zur
~/.ssh/configDatei hinzu. Der folgende Befehl zeigt, wie der automatisch generierte Codeausschnitt aus demeasy-ssh.sh-Skript an die~/.ssh/config-Datei angefügt wird. Stellen Sie sicher, dass Sie es aus der automatisch generierten Ausgabe deseasy-ssh.sh-Skripts kopieren, das die richtigen Clusterinformationen enthält.$cat <<EOF >> ~/.ssh/config Host<cluster-name>UserubuntuProxyCommand sh -c "aws ssm start-session --target sagemaker-cluster:<cluster_id>_<node-group>-<instance_id>--document-name AWS-StartSSHSession --parameters 'portNumber=%p'" EOF -
Fügen Sie auf dem HyperPod Clusterknoten den öffentlichen Schlüssel auf Ihrem lokalen Gerät zur
~/.ssh/authorized_keysDatei auf dem HyperPod Clusterknoten hinzu.-
Drucken Sie den öffentlichen Schlüsseldatei auf Ihrem lokalen Computer.
$cat ~/.ssh/id_rsa.pubDies sollte Ihren Schlüssel zurückgeben. Kopieren Sie die Ausgabe dieses Befehls.
(Optional) Wenn Sie keinen öffentlichen Schlüssel haben, erstellen Sie einen, indem Sie den folgenden Befehl ausführen.
$ssh-keygen -t rsa -q -f "$HOME/.ssh/id_rsa" -N "" -
Stellen Sie eine Verbindung zum Clusterknoten her und wechseln Sie zum Benutzer, um den Schlüssel hinzuzufügen. Der folgende Befehl ist ein Beispiel für den Zugriff als
ubuntu-Benutzer. Ersetzen Sieubuntudurch den Benutzernamen, für den Sie den einfachen Zugriff mit SSH einrichten möchten.$./easy-ssh.sh -c<node-group> <cluster-name>$sudo su -ubuntuubuntu@ip-111-22-333-444:/usr/bin# -
Öffnen Sie die
~/.ssh/authorized_keys-Datei und fügen Sie den öffentlichen Schlüssel am Ende der Datei hinzu.ubuntu@ip-111-22-333-444:/usr/bin#vim ~/.ssh/authorized_keys
-
Nachdem Sie die Einrichtung abgeschlossen haben, können Sie als Benutzer eine Verbindung zum HyperPod Clusterknoten herstellen, indem Sie einen vereinfachten SSH-Befehl wie folgt ausführen.
$ssh<cluster-name>ubuntu@ip-111-22-333-444:/usr/bin#
Sie können den Host auch für die Remote-Entwicklung von einer IDE auf Ihrem lokalen Gerät aus verwenden, z. B. Visual Studio Code Remote – SSH
Richten Sie über den Amazon FSx Shared Space eine Mehrbenutzerumgebung ein
Sie können den Amazon FSx Shared Space verwenden, um eine Mehrbenutzerumgebung in einem Slurm-Cluster auf zu verwalten. SageMaker HyperPod Wenn Sie Ihren Slurm-Cluster FSx während der HyperPod Cluster-Erstellung mit Amazon konfiguriert haben, ist dies eine gute Option, um Workspace für Ihre Cluster-Benutzer einzurichten. Erstellen Sie einen neuen Benutzer und richten Sie das Home-Verzeichnis für den Benutzer im FSx gemeinsamen Amazon-Dateisystem ein.
Tipp
Damit Benutzer über ihren Benutzernamen und dedizierte Verzeichnisse auf Ihren Cluster zugreifen können, sollten Sie sie auch mit IAM-Rollen oder Benutzern verknüpfen, indem Sie sie gemäß den Anweisungen in Option 2 von Schritt 5 unter dem Verfahren So aktivieren Sie die Unterstützung von „Ausführen als“ für verwaltete Linux- und macOS-Knoten im AWS Systems Manager-Benutzerhandbuch.https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html Siehe auch Einrichtung AWS Systems Manager und Ausführung als für die Cluster-Benutzerzugriffskontrolle.
Um eine Mehrbenutzerumgebung einzurichten und gleichzeitig einen Slurm-Cluster zu erstellen SageMaker HyperPod
Das SageMaker HyperPod Serviceteam stellt ein Skript add_users.sh
-
Bereiten Sie eine Textdatei mit dem Namen vor
shared_users.txt, die Sie im folgenden Format erstellen müssen. Die erste Spalte ist für Benutzernamen, die zweite Spalte für eindeutige Benutzer IDs und die dritte Spalte für die Benutzerverzeichnisse im FSx gemeinsamen Amazon-Bereich.username1,uid1,/fsx/username1 username2,uid2,/fsx/username2 ... -
Stellen Sie sicher, dass Sie die
add_users.shDateien shared_users.txtund in den S3-Bucket für HyperPod Lifecycle-Skripte hochladen. Während die Clustererstellung, die Clusteraktualisierung oder die Cluster-Softwareaktualisierung läuft, liestadd_users.shdie Daten in shared_users.txtund richtet die Benutzerverzeichnisse ordnungsgemäß ein.
Um neue Benutzer zu erstellen und sie zu einem bestehenden Slurm-Cluster hinzuzufügen, der auf läuft SageMaker HyperPod
-
Führen Sie auf dem Hauptknoten den folgenden Befehl aus, um ein Skript zu speichern, das beim Erstellen eines Benutzers hilft. Stellen Sie sicher, dass Sie dies mit Sudo-Berechtigungen ausführen.
$cat > create-user.sh<< EOL #!/bin/bash set -x # Prompt user to get the new user name. read -p "Enter the new user name, i.e. 'sean': " USER # create home directory as /fsx/<user> # Create the new user on the head node sudo useradd \$USER -m -d /fsx/\$USER --shell /bin/bash; user_id=\$(id -u \$USER) # add user to docker group sudo usermod -aG docker \${USER} # setup SSH Keypair sudo -u \$USER ssh-keygen -t rsa -q -f "/fsx/\$USER/.ssh/id_rsa" -N "" sudo -u \$USER cat /fsx/\$USER/.ssh/id_rsa.pub | sudo -u \$USER tee /fsx/\$USER/.ssh/authorized_keys # add user to compute nodes read -p "Number of compute nodes in your cluster, i.e. 8: " NUM_NODES srun -N \$NUM_NODES sudo useradd -u \$user_id \$USER -d /fsx/\$USER --shell /bin/bash; # add them as a sudoer read -p "Do you want this user to be a sudoer? (y/N): " SUDO if [ "\$SUDO" = "y" ]; then sudo usermod -aG sudo \$USER sudo srun -N \$NUM_NODES sudo usermod -aG sudo \$USER echo -e "If you haven't already you'll need to run:\n\nsudo visudo /etc/sudoers\n\nChange the line:\n\n%sudo ALL=(ALL:ALL) ALL\n\nTo\n\n%sudo ALL=(ALL:ALL) NOPASSWD: ALL\n\nOn each node." fi EOL -
Führen Sie das Skript mit dem folgenden Befehl aus. Sie werden aufgefordert, den Namen eines Benutzers und die Anzahl der Rechenknoten hinzuzufügen, auf die der Benutzer zugreifen kann.
$bash create-user.sh -
Testen Sie den Benutzer, indem Sie die folgenden Befehle ausführen.
$sudo su -<user>&& ssh $(srun hostname) -
Fügen Sie die Benutzerinformationen zur
shared_users.txt-Datei hinzu, sodass der Benutzer auf allen neuen Rechenknoten oder neuen Clustern erstellt wird.
Richten Sie eine Mehrbenutzerumgebung ein, indem Sie HyperPod Cluster in Active Directory integrieren
In praktischen Anwendungsfällen werden HyperPod Cluster in der Regel von mehreren Benutzern verwendet: Forschern für maschinelles Lernen (ML), Softwareingenieuren, Datenwissenschaftlern und Clusteradministratoren. Sie bearbeiten ihre eigenen Dateien und führen ihre eigenen Aufträge aus, ohne sich gegenseitig bei der Arbeit zu beeinträchtigen. Um eine Mehrbenutzerumgebung einzurichten, verwenden Sie den Linux-Benutzer- und Gruppenmechanismus, um mithilfe von Lebenszyklusskripten statisch mehrere Benutzer für jede Instance zu erstellen. Der Nachteil dieses Ansatzes besteht jedoch darin, dass Sie Benutzer- und Gruppeneinstellungen über mehrere Instances im Cluster hinweg duplizieren müssen, um bei Aktualisierungen wie dem Hinzufügen, Bearbeiten und Entfernen von Benutzern eine konsistente Konfiguration über alle Instances hinweg zu gewährleisten.
Um dieses Problem zu lösen, können Sie Lightweight Directory Access Protocol (LDAP) und LDAP