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.
Greifen Sie auf Ihre SageMaker HyperPod Clusterknoten zu
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 ausführensagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]
. 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
aus den AWS CLI Befehlen für ausführen SageMaker HyperPod. Wenn Ihre Cluster-ID beispielsweise lautetaa11bbbbb222
, lautet der Clusterknotenname und die Clusterknoten-ID lauteti-111222333444555aa
, sollte der SSM start-session
Befehl wie folgt lauten. controller-group
Anmerkung
Wenn Sie es noch nicht eingerichtet haben AWS Systems Manager, folgen Sie den Anweisungen unterEinrichtung AWS Systems Manager und „Run As“ für die Cluster-Benutzerzugriffskontrolle.
$
aws ssm start-session \ --target sagemaker-cluster:
aa11bbbbb222
_controller-group
-i-111222333444555aa
\ --regionus-west-2
Starting session with SessionId: s0011223344aabbccdd
root@ip-111-22-333-444:/usr/bin#
Beachten Sie, dass Sie dadurch zunächst als Root-Benutzer verbunden werden. Bevor Sie Jobs ausführen, wechseln Sie zum ubuntu
Benutzer, indem Sie den folgenden Befehl ausführen.
root@ip-111-22-333-444:/usr/bin#
sudo su - ubuntu
ubuntu@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.sh
describe-cluster
und die für die Ausführung des Befehls erforderlichen Informationen list-cluster-nodes
befiehlt und analysiert. SSM Die folgenden Beispielbefehle zeigen, wie das 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 Jobs ausführen, wechseln Sie zum ubuntu
Benutzer, indem Sie den folgenden Befehl ausführen.
root@ip-111-22-333-444:/usr/bin#
sudo su - ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
Richten Sie den Computer für einen einfachen Zugriff ein, SSH indem Sie den HyperPod Rechenknoten als Remote-Host verwenden
Um den Zugriff auf den Rechenknoten über einen lokalen Computer weiter zu vereinfachen, gibt das easy-ssh.sh
Skript einen Codeausschnitt zur Einrichtung des HyperPod Clusters als Remote-Host SSH 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 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 der Datei auf Ihrem lokalen Gerät den HyperPod Rechenknoten mit einem Benutzernamen als Remote-Host
~/.ssh/config
hinzu. Der folgende Befehl zeigt, wie der automatisch generierte Codeausschnitt aus demeasy-ssh.sh
Skript an die Datei angehängt wird.~/.ssh/config
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>
Userubuntu
ProxyCommand 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_keys
Datei auf dem HyperPod Clusterknoten hinzu.-
Drucken Sie die Datei mit dem öffentlichen Schlüssel auf Ihrem lokalen Computer aus.
$
cat ~/.ssh/id_rsa.pub
Dies 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 ""
-
Connect zum Clusterknoten her und wechseln Sie zu dem Benutzer, um den Schlüssel hinzuzufügen. Der folgende Befehl ist ein Beispiel für den Zugriff als
ubuntu
Benutzer. Ersetzenubuntu
Sie es durch den Benutzernamen, für den Sie den einfachen Zugriff einrichten möchtenSSH.$
./easy-ssh.sh -c
<node-group> <cluster-name>
$
sudo su -
ubuntu
ubuntu@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 Remoteentwicklung von einem 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 ihre dedizierten Verzeichnisse auf Ihren Cluster zugreifen können, sollten Sie sie auch IAM Rollen oder Benutzern zuordnen, indem Sie sie wie in Option 2 von Schritt 5 unter dem Verfahren So aktivieren Sie die Unterstützung für verwaltete Linux- und macOS-Knoten unter Aktivieren von Run As-Unterstützung für verwaltete Knoten unter Aktivieren von Run As-Unterstützung für verwaltete Knoten unter Linux und macOS aktivieren im AWS Systems Manager Benutzerhandbuch kennzeichnen. Siehe auch Einrichtung AWS Systems Manager und „Run As“ für die Cluster-Benutzerzugriffskontrolle.
So richten Sie beim Erstellen eines Slurm-Clusters eine Umgebung mit mehreren Benutzern ein 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.sh
Dateien shared_users.txt
und in den S3-Bucket für HyperPod Lifecycle-Skripte hochladen. Während der Clustererstellung, der Clusteraktualisierung oder der Cluster-Softwareupdate werden die Benutzerverzeichnisse ordnungsgemäßadd_users.sh
eingelesen shared_users.txt
und eingerichtet.
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 bei der Erstellung 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 der
shared_users.txt
Datei die Benutzerinformationen 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 Jobs aus, ohne sich gegenseitig bei der Arbeit zu beeinträchtigen. Um eine Mehrbenutzerumgebung einzurichten, verwenden Sie den Linux-Benutzer- und Gruppenmechanismus, um mithilfe von Lifecycle-Skripten statisch mehrere Benutzer für jede Instanz zu erstellen. Der Nachteil dieses Ansatzes besteht jedoch darin, dass Sie Benutzer- und Gruppeneinstellungen für mehrere Instanzen im Cluster duplizieren müssen, um bei Aktualisierungen, wie dem Hinzufügen, Bearbeiten und Entfernen von Benutzern, eine einheitliche Konfiguration für alle Instanzen aufrechtzuerhalten.
Um dieses Problem zu lösen, können Sie Lightweight Directory Access Protocol (LDAP)