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.
Standalone-Instanzen als AWS PCS Login-Knoten verwenden
Sie können unabhängige EC2 Instanzen einrichten, um mit dem Slurm-Scheduler eines AWS PCS Clusters zu interagieren. Dies ist nützlich, um Anmeldeknoten, Workstations oder dedizierte Workflow-Management-Hosts zu erstellen, die mit AWS PCS Clustern funktionieren, aber außerhalb des Managements betrieben werden. AWS PCS Zu diesem Zweck muss jede eigenständige Instanz:
-
Eine kompatible Slurm-Softwareversion installiert haben.
-
In der Lage sein, eine Verbindung zum AWS PCS Slurmctld-Endpunkt des Clusters herzustellen.
-
Sorgen Sie dafür, dass der Slurm Auth and Cred Kiosk Daemon (
sackd
) ordnungsgemäß mit dem Endpunkt und dem geheimen Schlüssel des Clusters konfiguriert ist. AWS PCS Weitere Informationen finden Sie unter sackdin der Slurm-Dokumentation.
Dieses Tutorial hilft Ihnen bei der Konfiguration einer unabhängigen Instanz, die eine Verbindung zu einem Cluster herstellt. AWS PCS
Inhalt
- Schritt 1 — Rufen Sie die Adresse und das Geheimnis für den AWS PCS Zielcluster ab
- Schritt 2 — Starten Sie eine EC2 Instanz
- Schritt 3 — Installieren Sie Slurm auf der Instanz
- Schritt 4 — Rufen Sie das Cluster-Geheimnis ab und speichern Sie es
- Schritt 5 — Konfigurieren Sie die Verbindung zum Cluster AWS PCS
- Schritt 6 — (Optional) Testen Sie die Verbindung
Schritt 1 — Rufen Sie die Adresse und das Geheimnis für den AWS PCS Zielcluster ab
Rufen Sie mithilfe des folgenden Befehls Details zum AWS PCS Zielcluster ab. AWS CLI Nehmen Sie vor der Ausführung des Befehls die folgenden Ersetzungen vor:
-
Ersetzen
region-code
mit dem AWS-Region Ort, an dem der Zielcluster ausgeführt wird. -
Ersetzen
cluster-ident
mit dem Namen oder der Kennung für den Zielcluster
aws pcs get-cluster --region
region-code
--cluster-identifiercluster-ident
Der Befehl gibt eine Ausgabe zurück, die der in diesem Beispiel ähnelt.
{ "cluster": { "name": "get-started", "id": "pcs_123456abcd", "arn": "arn:aws:pcs:us-east-1:111122223333:cluster/pcs_123456abcd", "status": "ACTIVE", "createdAt": "2024-09-23T21:03:52+00:00", "modifiedAt": "2024-09-23T21:03:52+00:00", "scheduler": { "type": "SLURM", "version": "23.11" }, "size": "SMALL", "slurmConfiguration": { "authKey": { "secretArn": "arn:aws:secretsmanager:us-east-1:111122223333:secret:pcs!slurm-secret-pcs_123456abcd-a12ABC", "secretVersion": "ef232370-d3e7-434c-9a87-ec35c1987f75" } }, "networking": { "subnetIds": [ "subnet-0123456789abcdef0" ], "securityGroupIds": [ "sg-0123456789abcdef0" ] }, "endpoints": [ { "type": "SLURMCTLD", "privateIpAddress": "10.3.149.220", "port": "6817" } ] } }
In diesem Beispiel hat der Cluster-Slurm-Controller-Endpunkt die IP-Adresse 10.3.149.220
und er läuft auf dem Port6817
. Der secretArn
wird in späteren Schritten verwendet, um das Clustergeheimnis abzurufen. Die IP-Adresse und der Port werden in späteren Schritten zur Konfiguration des sackd
Dienstes verwendet.
Schritt 2 — Starten Sie eine EC2 Instanz
Starten Sie eine EC2-Instance wie folgt:
-
Öffnen Sie die EC2Amazon-Konsole
. -
Wählen Sie im Navigationsbereich Instances und dann Instances starten aus, um den Launch Instance Wizard zu öffnen.
-
(Optional) Geben Sie im Abschnitt Name und Tags einen Namen für die Instance ein, z.
PCS-LoginNode
B. Der Name wird der Instance als Ressourcen-Tag (Name=PCS-LoginNode
) zugewiesen. -
Wählen Sie im Abschnitt Anwendungs- und Betriebssystemimages eine AMI für eines der Betriebssysteme aus, die von unterstützt werden AWS PCS. Weitere Informationen finden Sie unter Unterstützte Betriebssysteme.
-
Wählen Sie im Abschnitt Instanztyp einen unterstützten Instanztyp aus. Weitere Informationen finden Sie unter Unterstützte Instance-Typen.
-
Wählen Sie im Abschnitt key pair das SSH Schlüsselpaar aus, das für die Instance verwendet werden soll.
-
Gehen Sie im Abschnitt Netzwerkeinstellungen wie folgt vor:
-
Wählen Sie Edit (Bearbeiten) aus.
-
Wählen Sie den VPC Ihres AWS PCS Clusters aus.
-
Wählen Sie für Firewall (Sicherheitsgruppen) die Option Bestehende Sicherheitsgruppe auswählen aus.
-
Wählen Sie eine Sicherheitsgruppe aus, die den Datenverkehr zwischen der Instanz und dem Slurm-Controller des AWS PCS Zielclusters zulässt. Weitere Informationen finden Sie unter Anforderungen und Überlegungen zur Sicherheitsgruppe.
-
(Optional) Wählen Sie eine Sicherheitsgruppe aus, die eingehenden SSH Zugriff auf Ihre Instance ermöglicht.
-
-
-
-
Konfigurieren Sie im Bereich Speicher die Speichervolumes nach Bedarf. Stellen Sie sicher, dass ausreichend Speicherplatz für die Installation von Anwendungen und Bibliotheken konfiguriert ist, um Ihren Anwendungsfall zu unterstützen.
-
Wählen Sie unter Erweitert eine IAM Rolle aus, die den Zugriff auf das Clustergeheimnis ermöglicht. Weitere Informationen finden Sie unter Holen Sie sich das Geheimnis des Slurm-Clusters.
-
Wählen Sie im Übersichtsbereich die Option Launch instance aus.
Schritt 3 — Installieren Sie Slurm auf der Instanz
Wenn die Instanz gestartet wurde und aktiv wird, stellen Sie über Ihren bevorzugten Mechanismus eine Verbindung zu ihr her. Verwenden Sie das von bereitgestellte Slurm-Installationsprogramm AWS , um Slurm auf der Instanz zu installieren. Weitere Informationen finden Sie unter Slurm-Installationsprogramm.
Laden Sie das Slurm-Installationsprogramm herunter, dekomprimieren Sie es und verwenden Sie das installer.sh
Skript, um Slurm zu installieren. Weitere Informationen finden Sie unter Schritt 3 — Installieren Sie Slurm.
Schritt 4 — Rufen Sie das Cluster-Geheimnis ab und speichern Sie es
Diese Anweisungen erfordern die AWS CLI. Weitere Informationen finden Sie unter Installation oder Aktualisierung auf die neueste Version von AWS CLI im AWS Command Line Interface Benutzerhandbuch für Version 2.
Speichern Sie das Clustergeheimnis mit den folgenden Befehlen.
-
Erstellen Sie das Konfigurationsverzeichnis für Slurm.
sudo mkdir -p /etc/slurm
-
Rufen Sie das Clustergeheimnis ab, dekodieren Sie es und speichern Sie es. Bevor Sie diesen Befehl ausführen, ersetzen Sie
region-code
durch die Region, in der der Zielcluster ausgeführt wird, und ersetzensecret-arn
mit dem in Schritt 1 secretArn abgerufenen Wert.sudo aws secretsmanager get-secret-value \ --region
region-code
\ --secret-id'secret-arn'
\ --version-stage AWSCURRENT \ --query'SecretString'
\ --output text | base64 -d > /etc/slurm/slurm.keyWarnung
In einer Mehrbenutzerumgebung kann möglicherweise jeder Benutzer mit Zugriff auf die Instanz das Clustergeheimnis abrufen, wenn er auf den Instanz-Metadatenservice () IMDS zugreifen kann. Dies wiederum könnte es ihnen ermöglichen, sich als andere Benutzer auszugeben. Erwägen Sie, den Zugriff nur auf Root- oder Administratorbenutzer IMDS zu beschränken. Erwägen Sie alternativ, einen anderen Mechanismus zu verwenden, der sich nicht auf das Instanzprofil stützt, um den geheimen Schlüssel abzurufen und zu konfigurieren.
-
Legen Sie den Besitz und die Berechtigungen für die Slurm-Schlüsseldatei fest.
sudo chmod 0600 /etc/slurm/slurm.key sudo chown slurm:slurm /etc/slurm/slurm.key
Anmerkung
Der Slurm-Schlüssel muss dem Benutzer und der Gruppe gehören, unter denen der
sackd
Dienst ausgeführt wird.
Schritt 5 — Konfigurieren Sie die Verbindung zum Cluster AWS PCS
Gehen Sie wie folgt vor, um eine Verbindung zum AWS PCS Cluster herzustellen, indem Sie ihn sackd
als Systemdienst starten.
-
Richten Sie die Umgebungsdatei für den
sackd
Dienst mit dem folgenden Befehl ein. Bevor Sie den Befehl ausführen, ersetzen Sieip-address
andport
mit den in Schritt 1 von den Endpunkten abgerufenen Werten.sudo echo "SACKD_OPTIONS='--conf-server=
ip-address
:port
'" > /etc/sysconfig/sackd -
Erstellen Sie eine
systemd
Servicedatei für die Verwaltung dessackd
Prozesses.sudo cat << EOF > /etc/systemd/system/sackd.service [Unit] Description=Slurm auth and cred kiosk daemon After=network-online.target remote-fs.target Wants=network-online.target ConditionPathExists=/etc/sysconfig/sackd [Service] Type=notify EnvironmentFile=/etc/sysconfig/sackd User=slurm Group=slurm RuntimeDirectory=slurm RuntimeDirectoryMode=0755 ExecStart=/opt/aws/pcs/scheduler/slurm-23.11/sbin/sackd --systemd \$SACKD_OPTIONS ExecReload=/bin/kill -HUP \$MAINPID KillMode=process LimitNOFILE=131072 LimitMEMLOCK=infinity LimitSTACK=infinity [Install] WantedBy=multi-user.target EOF
-
Legen Sie den Besitz der
sackd
Servicedatei fest.sudo chown root:root /etc/systemd/system/sackd.service && \ sudo chmod 0644 /etc/systemd/system/sackd.service
-
Aktivieren Sie den
sackd
Dienst.sudo systemctl daemon-reload && sudo systemctl enable sackd
-
Starten Sie den Service
sackd
.sudo systemctl start sackd
Schritt 6 — (Optional) Testen Sie die Verbindung
Vergewissern Sie sich, dass der sackd
Dienst ausgeführt wird. Beispiel für eine Ausgabe folgt. Wenn es Fehler gibt, werden sie normalerweise hier angezeigt.
[root@ip-10-3-27-112 ~]# systemctl status sackd [x] sackd.service - Slurm auth and cred kiosk daemon Loaded: loaded (/etc/systemd/system/sackd.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2024-07-16 16:34:55 UTC; 8s ago Main PID: 9985 (sackd) CGroup: /system.slice/sackd.service └─9985 /opt/aws/pcs/scheduler/slurm-23.11/sbin/sackd --systemd --conf-server=10.3.149.220:6817 Jul 16 16:34:55 ip-10-3-27-112.ec2.internal systemd[1]: Starting Slurm auth and cred kiosk daemon... Jul 16 16:34:55 ip-10-3-27-112.ec2.internal systemd[1]: Started Slurm auth and cred kiosk daemon. Jul 16 16:34:55 ip-10-3-27-112.ec2.internal sackd[9985]: sackd: running
Vergewissern Sie sich, dass die Verbindungen zum Cluster funktionieren, indem Sie Slurm-Client-Befehle wie sinfo
und squeue
verwenden. Hier ist ein Beispiel für die Ausgabe vonsinfo
.
[root@ip-10-3-27-112 ~]# /opt/aws/pcs/scheduler/slurm-23.11/bin/sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST all up infinite 4 idle~ compute-[1-4]
Sie sollten auch in der Lage sein, Jobs einzureichen. Ein Befehl, der diesem Beispiel ähnelt, würde beispielsweise einen interaktiven Job auf einem Knoten im Cluster starten.
/opt/aws/pcs/scheduler/slurm-23.11/bin/srun --nodes=1 -p all --pty bash -i