Erste Schritte mit EFA und MPI für HPC-Workloads auf Amazon EC2
Dieses Tutorial unterstützt Sie beim Starten eines EFA- und MPI-konformen Instance-Clusters für HPC-Workloads.
Aufgaben
- Schritt 1: Vorbereiten einer EFA-aktivierten Sicherheitsgruppe
- Schritt 2: Starten einer temporären Instance
- Schritt 3: Installieren der EFA-Software
- Schritt 4: (Optional) Open MPI 5 aktivieren
- Schritt 5: (Optional) Installieren von Intel MPI
- Schritt 6: Ptrace-Schutz aktivieren
- Schritt 7. Bestätigen der Installation
- Schritt 8: Ihre HPC-Anwendung installieren
- Schritt 9: Ein EFA-fähiges AMI erstellen
- Schritt 10: EFA-fähige Instances in einer Cluster-Placement-Gruppe starten
- Schritt 11: Beenden der temporären Instance
- Schritt 12: Passwortloses SSH aktivieren
Schritt 1: Vorbereiten einer EFA-aktivierten Sicherheitsgruppe
Ein EFA erfordert eine Sicherheitsgruppe, die allen ein- und ausgehenden Datenverkehr von und zur Sicherheitsgruppe zulässt. Mit dem folgenden Verfahren wird eine Sicherheitsgruppe erstellt, die den gesamten ein- und ausgehenden Datenverkehr der Gruppe sowie eingehenden SSH-Datenverkehr von jeder IPv4-Adresse zwecks SSH-Konnektivität zulässt.
Wichtig
Diese Sicherheitsgruppe dient nur zu Testzwecken. Für Produktionsumgebungen sollten Sie eine Regel für eingehenden SSH-Datenverkehr erstellen, die Datenverkehr nur von der IP-Adresse zulässt, von der aus Sie eine Verbindung herstellen, z. B. die IP-Adresse Ihres Computers oder einen Bereich von IP-Adressen im lokalen Netzwerk.
Weitere Szenarien finden Sie unter Sicherheitsgruppenregeln für verschiedene Anwendungsfälle.
So erstellen Sie eine EFA-fähige Sicherheitsgruppe:
Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/
. -
Wählen Sie im Navigationsbereich Security Groups (Sicherheitsgruppen) und anschließend Create Security Group (Sicherheitsgruppe erstellen) aus.
-
Führen Sie im Fenster Create Security Group Folgendes aus:
-
Geben Sie für Security group name (Name der Sicherheitsgruppe) einen beschreibenden Namen für die Sicherheitsgruppe ein, wie etwa
EFA-enabled security group
. -
(Optional:) Geben Sie unter Description (Beschreibung) eine kurze Beschreibung der Sicherheitsgruppe ein.
-
Wählen Sie bei VPC die VPC aus, in der Sie Ihre EFA-fähigen Instances starten möchten.
-
Wählen Sie Sicherheitsgruppe erstellen aus.
-
-
Wählen Sie die von Ihnen erstellte Sicherheitsgruppe aus und kopieren Sie dann auf der Registerkarte Details die Security group ID (Sicherheitsgruppen-ID).
-
Bei noch ausgewählter Sicherheitsgruppe wählen Sie Actions (Aktionen), Edit inbound rules (Eingangsregeln bearbeiten) aus und gehen dann folgendermaßen vor:
-
Wählen Sie Regel hinzufügen aus.
-
Wählen Sie für Type (Typ) die Option All traffic (Gesamter Datenverkehr) aus.
-
Wählen Sie bei Source type (Quellentyp) Custom (Benutzerdefiniert) aus und fügen Sie die Sicherheitsgruppen-ID, die Sie kopiert hatten, ins Feld ein.
-
Wählen Sie Regel hinzufügen aus.
-
Wählen Sie unter Typ die Option SSH aus.
-
Wählen Sie unter Source (Quelle) die Option Anywhere-IPv4 (Alle IPv4) aus.
-
Wählen Sie Save rules (Regeln speichern) aus.
-
-
Bei noch ausgewählter Sicherheitsgruppe wählen Sie Actions (Aktionen), Edit outbound rules (Ausgangsregeln bearbeiten) aus und gehen dann folgendermaßen vor:
-
Wählen Sie Regel hinzufügen aus.
-
Wählen Sie für Type (Typ) die Option All traffic (Gesamter Datenverkehr) aus.
-
Wählen Sie bei Destination type (Zieltyp) Custom (Benutzerdefiniert) aus und fügen Sie die Sicherheitsgruppen-ID, die Sie kopiert hatten, ins Feld ein.
-
Wählen Sie Save rules (Regeln speichern) aus.
-
Schritt 2: Starten einer temporären Instance
Starten Sie eine temporäre Instance, die Sie verwenden können, um die EFA-Softwarekomponenten zu installieren und zu konfigurieren. Sie können mit dieser Instance ein EFA-aktiviertes AMI erstellen, von dem Sie Ihre EFA-aktivierten Instances starten können.
So starten Sie eine temporäre Instance
Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/
. -
Wählen Sie im Navigationsbereich Instances und dann Instances starten aus, um den Launch Instance Wizard zu öffnen.
-
(Optional) Geben Sie im Bereich Name and tags (Name und Tags) einen Namen für die Instance an, z. B.
EFA-instance
. Der Name wird der Instance als Ressourcen-Tag (Name=
) zugewiesen.EFA-instance
-
Wählen Sie im Bereich Application and OS Images (Anwendungs- und Betriebssystem-Images) ein AMI für eines der unterstützten Betriebssysteme aus.
-
Wählen Sie im Bereich Instance type (Instance-Typ) einen supported instance type (unterstützten Instance-Typ) aus.
-
Wählen Sie im Bereich Key pair (Schlüsselpaar) das Schlüsselpaar aus, das für die Instance verwendet werden soll.
-
Wählen Sie im Bereich Network settings (Netzwerkeinstellungen) Edit (Bearbeiten) aus und führen Sie dann Folgendes aus:
-
Wählen Sie unter Subnetz das Subnetz aus, in dem die Instance gestartet werden soll. Wenn Sie kein Subnetz auswählen, können Sie die Instance nicht für EFA aktivieren.
-
Wählen Sie bei Firewall (security groups) Firewall (Sicherheitsgruppen) Select existing security group (Vorhandene Sicherheitsgruppe auswählen) und dann die Sicherheitsgruppe aus, die Sie im vorherigen Schritt erstellt haben.
-
Erweitern Sie den Abschnitt Erweiterte Netzwerkkonfiguration.
Wählen Sie für Netzwerkschnittstelle 1 Netzwerkkartenindex = 0, Geräteindex = 0 und Schnittstellentyp = EFA mit ENA aus.
(Optional) Wenn Sie einen Instance-Typ mit mehreren Karten verwenden, z. B.
p4d.24xlarge
oderp5.48xlarge
, wählen Sie für jede weitere erforderliche Netzwerkschnittstelle die Option Netzwerkschnittstelle hinzufügen, wählen Sie für Netzwerkkartenindex den nächsten ungenutzten Index aus und wählen Sie dann Geräteindex = 1 und Schnittstellentyp = EFA mit ENA oder Nur-EFA aus.
-
-
Konfigurieren Sie im Bereich Storage (Speicher) die Volumes nach Bedarf.
-
Wählen Sie im Bereich Summary (Zusammenfassung) rechts Launch instance (Instance starten) aus.
Anmerkung
Erwägen Sie, die Verwendung von IMDSv2 für die temporäre Instance sowie für das AMI, das Sie in Schritt 9 erstellen, vorzuschreiben, sofern Sie nicht bereits IMDSv2 als Standard für das Konto festgelegt haben. Weitere Informationen zur IMDSv2-Konfiguration finden Sie unter Konfigurieren von Instance-Metadatenoptionen für neue Instances.
Schritt 3: Installieren der EFA-Software
Installieren Sie den EFA-fähigen Kernel, die EFA-Treiber, Libfabric und den Open MPI-Stack, der zur Unterstützung von EFA auf Ihrer temporären Instance erforderlich ist.
Die Schritte unterscheiden sich abhängig davon, ob Sie EFA mit Open MPI, Intel MPI oder mit Open MPI und Intel MPI verwenden möchten.
So installieren Sie die EFA-Software
-
Stellen Sie eine Verbindung zu der Instance her, die Sie gestartet haben. Weitere Informationen finden Sie unter Herstellen einer Verbindung zu Ihrer Linux-Instance mit SSH.
-
Um sicherzustellen, dass alle Ihre Softwarepakete aktuell sind, führen Sie ein schnelles Softwareupdate auf Ihrer Instance aus. Dieser Vorgang kann einige Minuten dauern.
-
Amazon Linux 2023, Amazon Linux 2, RHEL 8/9, Rocky Linux 8/9
$
sudo yum update -y -
Ubuntu und Debian
$
sudo apt-get update && sudo apt-get upgrade -y -
SUSE Linux Enterprise
$
sudo zypper update -y
-
-
Starten Sie die Instance neu und stellen Sie die Verbindung zur Instance wieder her.
-
Laden Sie die EFA-Software-Installationsdateien herunter. Die Software-Installationsdateien sind in einer komprimierten Tarball-Datei (
.tar.gz
) verpackt. Laden Sie die neueste stabile Version mit dem folgenden Befehl herunter.$
curl -O https://efa-installer.amazonaws.com/aws-efa-installer-1.37.0.tar.gzSie erhalten die neueste Version auch, indem Sie anstelle der Versionsnummer im vorangegangenen Befehl
latest
eingeben. (Optional) Überprüfen Sie die Authentizität und Integrität der EFA-Tarball-Datei (
.tar.gz
).Diese Vorgehensweise wird empfohlen, um die Identität des Software-Publishers zu überprüfen und sicherzustellen, dass die Datei seit ihrer Veröffentlichung nicht verändert oder beschädigt wurde. Wenn Sie die Tarball-Datei nicht überprüfen möchten, überspringen Sie diesen Schritt.
Anmerkung
Wenn Sie die Tarball-Datei lieber mit einer MD5- oder SHA256-Prüfsumme überprüfen möchten, finden Sie Informationen unter Überprüfen des EFA-Installationsprogramms mithilfe einer Prüfsumme.
-
Laden Sie den öffentlichen GPG-Schlüssel herunter und importieren Sie ihn in Ihren Schlüsselbund.
$
wget https://efa-installer.amazonaws.com/aws-efa-installer.key && gpg --import aws-efa-installer.keyDer Befehl sollte einen Schlüsselwert zurückgeben. Notieren Sie sich den Schlüsselwert. Sie benötigen ihn im nächsten Schritt.
-
Überprüfen Sie den Fingerabdruck des GPG-Schlüssels. Führen Sie den folgenden Befehl aus und geben den Schlüsselwert aus dem vorherigen Schritt an.
$
gpg --fingerprintkey_value
Der Befehl sollte einen Fingerabdruck zurückgeben, der mit
4E90 91BC BB97 A96B 26B1 5E59 A054 80B1 DD2D 3CCC
identisch ist. Wenn der Fingerabdruck nicht übereinstimmt, führen Sie das EFA-Installationsskript nicht aus und wenden Sie sich an den AWS Support. -
Laden Sie die Signaturdatei herunter und überprüfen Sie die Signatur der EFA-Tarball-Datei.
$
wget https://efa-installer.amazonaws.com/aws-efa-installer-1.37.0.tar.gz.sig && gpg --verify ./aws-efa-installer-1.37.0.tar.gz.sigDas folgende Beispiel zeigt eine Ausgabe.
gpg: Signature made Wed 29 Jul 2020 12:50:13 AM UTC using RSA key ID DD2D3CCC gpg: Good signature from "Amazon EC2 EFA <ec2-efa-maintainers@amazon.com>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 4E90 91BC BB97 A96B 26B1 5E59 A054 80B1 DD2D 3CCC
Wenn das Ergebnis
Good signature
enthält und der Fingerabdruck mit dem Fingerabdruck übereinstimmt, der im vorherigen Schritt zurückgegeben wurde, fahren Sie mit dem nächsten Schritt fort. Wenn nicht, führen Sie das EFA-Installationsskript nicht aus und wenden Sie sich an den AWS Support.
-
-
Extrahieren Sie die Daten aus der komprimierten
.tar.gz
-Datei und wechseln Sie in das extrahierte Verzeichnis.$
tar -xf aws-efa-installer-1.37.0.tar.gz && cd aws-efa-installer -
Installieren Sie die EFA-Software. Führen Sie je nach Anwendungsfall einen der folgenden Schritte durch.
Anmerkung
EFA unterstützt NVIDIA GPUDirect unter SUSE Linux nicht. Wenn Sie SUSE Linux verwenden, müssen Sie zusätzlich
--skip-kmod
festlegen, um die Installation von kmod zu verhindern. Standardmäßig erlaubt SUSE Linux keine externen Kernelmodule. -
Wenn das EFA-Installationsprogramm Sie auffordert, die Instance neu zu starten, tun Sie dies und stellen Sie dann erneut eine Verbindung mit der Instance her. Melden Sie sich andernfalls von der Instance ab und wieder an, um die Installation abzuschließen.
Schritt 4: (Optional) Open MPI 5 aktivieren
Anmerkung
Führen Sie diesen Schritt nur aus, wenn Sie Open MPI 5 verwenden wollen.
Ab EFA 1.30.0 sind sowohl Open MPI 4 als auch Open MPI 5 standardmäßig installiert. Alternativ können Sie wählen, nur Open MPI 4 oder Open MPI 5 zu installieren.
Wenn Sie sich in Schritt 3: EFA-Software installieren für die Installation von Open MPI 5 entschieden haben und diese Software verwenden möchten, müssen Sie die folgenden Schritte ausführen, um sie zu aktivieren.
So aktivieren Sie Open MPI 5
-
Fügen Sie Open MPI 5 zur Umgebungsvariablen PATH hinzu.
$
module load openmpi5 -
Stellen Sie sicher, dass Open MPI 5 für die Verwendung aktiviert ist.
$
which mpiccDer Befehl sollte das Open-MPI-5-Installationsverzeichnis zurückgeben –
/opt/amazon/openmpi5
. -
(Optional) Gehen Sie wie folgt vor, um sicherzustellen, dass Open MPI 5 bei jedem Start der Instance zur Umgebungsvariablen PATH hinzugefügt wird:
Wenn Sie Open MPI 5 aus der Umgebungsvariablen PATH entfernen müssen, führen Sie den folgenden Befehl aus und entfernen Sie den Befehl aus den Shell-Startup-Skripten.
$
module unload openmpi5
Schritt 5: (Optional) Installieren von Intel MPI
Wichtig
Führen Sie diesen Schritt nur aus, wenn Sie vorhaben, Intel MPI zu verwenden. Wenn Sie vorhaben, nur Open MPI zu verwenden, überspringen Sie diesen Schritt.
Intel MPI erfordert eine zusätzliche Einrichtung und Konfiguration der Umgebungsvariablen.
Voraussetzung
Stellen Sie sicher, dass der Benutzer, der die folgenden Schritte ausführt, über sudo-Berechtigungen verfügt.
So installieren Sie Intel MPI
-
Gehen Sie wie folgt vor, um das Intel MPI-Installationsskript herunterzuladen
-
Besuchen Sie die Intel-Website
. -
Wählen Sie im Abschnitt Intel MPI Library (Intel-MPI-Bibliothek) auf der Website den Link für Intel MPI Library for Linux, Offline-Installationsprogramm aus.
-
-
Führen Sie das Skript für die Installation aus, das Sie im vorherigen Schritt heruntergeladen haben.
$
sudo bashinstallation_script_name
.sh -
Wählen Sie im Installationsprogramm Accept & install (Akzeptieren und installieren) aus.
-
Lesen Sie das Intel-Verbesserungsprogramm durch, wählen Sie die entsprechende Option und dann Begin Installation (Mit der Installation beginnen) aus.
-
Nach abgeschlossener Installation wählen Sie Schließen aus.
-
Standardmäßig verwendet Intel MPI seine eingebettete (interne) Libfabric. Sie können Intel MPI so konfigurieren, dass stattdessen die Libfabric verwendet wird, die im EFA-Installationsprogramm enthalten ist. Typischerweise wird das EFA-Installationsprogramm mit einer neueren Version von Libfabric als Intel MPI ausgeliefert. In einigen Fällen ist Libfabric, die mit dem EFA-Installationsprogramm geliefert wird, leistungsfähiger als Intel MPI. Führen Sie je nach Shell einen der folgenden Schritte aus, um Intel MPI für die Verwendung von Libfabric zu konfigurieren, die mit dem EFA-Installationsprogramm geliefert wird.
-
Fügen Sie Ihrem Shell-Skript den folgenden Quell-Befehl hinzu, um das
vars.sh
-Skript aus dem Installationsverzeichnis zum Einrichten der Compiler-Umgebung bei jedem Start der Instance zu beziehen. Führen Sie je nach Shell einen der folgenden Schritte durch. -
Wenn EFA aufgrund einer Fehlkonfiguration nicht verfügbar ist, verwendet Intel MPI standardmäßig den TCP/IP-Netzwerk-Stack, was zu einer langsameren Anwendungsleistung führen kann. Sie können dies verhindern, indem Sie
I_MPI_OFI_PROVIDER
aufefa
setzen. Dies führt dazu, dass Intel MPI mit dem folgenden Fehler fehlschlägt, wenn EFA nicht verfügbar ist:Abort (XXXXXX) on node 0 (rank 0 in comm 0): Fatal error in PMPI_Init: OtherMPI error, MPIR_Init_thread (XXX)........: MPID_Init (XXXX)..............: MPIDI_OFI_mpi_init_hook (XXXX): open_fabric (XXXX)............: find_provider (XXXX)..........: OFI fi_getinfo() failed (ofi_init.c:2684:find_provider:
Führen Sie je nach Shell einen der folgenden Schritte durch.
-
Standardmäßig gibt Intel MPI keine Debugging-Informationen aus. Sie können verschiedene Ausführlichkeitsstufen angeben, um die Debugging-Informationen zu steuern. Mögliche Werte (in der Reihenfolge der bereitgestellten Details) sind:
0
(Standard),1
,2
,3
,4
,5
. Level1
und höher drucktlibfabric version
undlibfabric provider
. Verwenden Sielibfabric version
, um zu überprüfen, ob Intel MPI die interne Libfabric verwendet oder die Libfabric, die mit dem EFA-Installationsprogramm geliefert wird. Wenn es die interne Libfabric verwendet, wird der Version einimpi
angehängt. Verwenden Sielibfabric provider
, um zu überprüfen, ob Intel MPI EFA oder das TCP/IP-Netzwerk verwendet. Wenn es EFA verwendet, ist der Wertefa
. Wenn es TCP/IP verwendet, ist der Werttcp;ofi_rxm
.Um Debugging-Informationen zu aktivieren, führen Sie je nach Shell einen der folgenden Schritte durch.
-
Standardmäßig verwendet Intel MPI den gemeinsam genutzten Speicher des Betriebssystems (
shm
) für die Kommunikation innerhalb des Knotens und verwendet Libfabric (ofi
) nur für die Kommunikation zwischen Knoten. Im Allgemeinen bietet diese Konfiguration die beste Leistung. In einigen Fällen kann die Intel-MPI-shm-Fabric jedoch dazu führen, dass bestimmte Anwendungen auf unbestimmte Zeit hängen bleiben.Um dieses Problem zu lösen, können Sie Intel MPI zwingen, Libfabric sowohl für die Kommunikation innerhalb von Knoten als auch zwischen Knoten zu verwenden. Führen Sie dazu je nach Shell einen der folgenden Schritte aus.
Anmerkung
Der EFA-Libfabric-Anbieter verwendet den gemeinsam genutzten Speicher des Betriebssystems für die Kommunikation innerhalb des Knotens. Das bedeutet, dass die Einstellung von
I_MPI_FABRICS
aufofi
zu einer ähnlichen Leistung führt wie die Standardkonfigurationshm:ofi
. -
Melden Sie sich von der Instance ab. Melden Sie sich anschließend wieder an.
Wenn Sie Intel MPI nicht mehr verwenden möchten, entfernen Sie die Umgebungsvariablen aus den Shell-Startupskripts.
Schritt 6: Ptrace-Schutz aktivieren
Um die Leistung Ihrer HPC-Anwendung zu verbessern, verwendet Libfabric den lokalen Speicher der Instance für die Kommunikation zwischen Prozessen, wenn die Prozesse auf derselben Instance ausgeführt werden.
Das Shared Memory Feature verwendet Cross Memory Attach (CMA), das mit Ptrace-Schutz nicht unterstützt wird. Wenn Sie eine Linux-Distribution verwenden, beider standardmäßig Ptrace-Schutz aktiviert hat, z. B. Ubuntu, müssen Sie ihn deaktivieren. Wenn für Ihre Linux-Distribution standardmäßig kein Ptrace-Schutz aktiviert ist, überspringen Sie diesen Schritt.
So deaktivieren Sie den Ptrace-Schutz
Führen Sie eine der folgenden Aufgaben aus:
-
Führen Sie den folgenden Befehl aus, um den Ptrace-Schutz vorübergehend zu deaktivieren.
$
sudo sysctl -w kernel.yama.ptrace_scope=0 -
Um den Ptrace-Schutz dauerhaft zu deaktivieren, fügen Sie
kernel.yama.ptrace_scope = 0
zu/etc/sysctl.d/10-ptrace.conf
hinzu und starten Sie die Instance neu.
Schritt 7. Bestätigen der Installation
So bestätigen Sie die erfolgreiche Installation
-
Bestätigen Sie durch Ausführen des folgenden Befehls, dass MPI erfolgreich installiert wurde:
$
which mpicc-
Für Open MPI muss der zurückgegebene Pfad
/opt/amazon/
enthalten -
Für Intel MPI muss der zurückgegebene Pfad
/opt/intel/
enthalten. Wenn Sie nicht die erwartete Ausgabe erhalten, stellen Sie sicher, dass Sie dasvars.sh
-Skript für Intel MPI bezogen haben.
-
-
Um zu überprüfen, ob die EFA-Softwarekomponenten und Libfabric erfolgreich installiert wurden, führen Sie den folgenden Befehl aus.
$
fi_info -p efa -t FI_EP_RDMDer Befehl muss Informationen zu den Libfabric-EFA-Schnittstellen zurückgeben. Das folgende Beispiel zeigt die Befehlsausgabe.
provider: efa fabric: EFA-fe80::94:3dff:fe89:1b70 domain: efa_0-rdm version: 2.0 type: FI_EP_RDM protocol: FI_PROTO_EFA
Schritt 8: Ihre HPC-Anwendung installieren
Installieren Sie die HPC-Anwendung auf der temporären Instance. Der Installationsvorgang unterscheidet sich je nach spezifischer HPC-Anwendung. Weitere Informationen finden Sie unter Software auf Ihrer AL2-Instance verwalten im Benutzerhandbuch für Amazon Linux 2.
Anmerkung
In der Dokumentation Ihrer HPC-Anwendung finden Sie Installationsanweisungen.
Schritt 9: Ein EFA-fähiges AMI erstellen
Nachdem Sie die erforderlichen Softwarekomponenten installiert haben, erstellen Sie ein AMI, das Sie erneut verwenden können, um Ihre EFA-fähigen Instances zu starten.
So erstellen Sie ein AMI aus Ihrer temporären Instance:
Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/
. -
Wählen Sie im Navigationsbereich Instances aus.
-
Wählen Sie die temporäre Instance aus, die Sie erstellt haben, und wählen Sie anschließend Actions (Aktionen), Image und Create Image (Image erstellen) aus.
-
Gehen Sie bei Create Image (Image erstellen) wie folgt vor:
-
Geben Sie unter Image name (Image-Name) einen beschreibenden Namen für das AMI ein.
-
(Optional:) Geben Sie bei Image description (Image-Beschreibung) eine kurze Beschreibung des Zwecks des AMI ein.
-
Wählen Sie Create Image (Image erstellen) aus.
-
-
Wählen Sie im Navigationsbereich die Option AMIs.
-
Suchen Sie das AMI, das Sie erstellt haben, in der Liste. Warten Sie, bis der Status von
pending
zuavailable
wechselt, bevor Sie mit dem nächsten Schritt fortfahren.
Schritt 10: EFA-fähige Instances in einer Cluster-Placement-Gruppe starten
Starten Sie die EFA-aktivierten Instances unter Verwendung des EFA-aktiviertenAMI, das Sie in Schritt 7 erstellt haben, in einer Cluster Placement-Gruppe. Starten Sie dann die EFA-aktivierte Sicherheitsgruppe, die Sie in Schritt 1 erstellt haben.
Anmerkung
-
Es ist keine absolute Voraussetzung, Ihre EFA-aktivierten Instances in einer Cluster-Platzierungsgruppe zu starten. Wir empfehlen allerdings, Ihre EFA-Instances in einer Cluster-Placement-Gruppe zu starten, da die Instances dadurch in einer Gruppe mit niedriger Latenz in einer einzelnen Availability Zone gestartet werden.
-
Um die Verfügbarkeit von Kapazitäten sicherzustellen, wenn Sie die Instances Ihres Clusters skalieren, können Sie eine Kapazitätsreservierung für Ihre Cluster-Placement-Gruppe erstellen. Weitere Informationen finden Sie unter Kapazitätsreservierungen in Cluster-Placement-Gruppen erstellen.
So starten Sie eine Instance
Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/
. -
Wählen Sie im Navigationsbereich Instances und dann Instances starten aus, um den Launch Instance Wizard zu öffnen.
-
(Optional) Geben Sie im Bereich Name and tags (Name und Tags) einen Namen für die Instance an, z. B.
EFA-instance
. Der Name wird der Instance als Ressourcen-Tag (Name=
) zugewiesen.EFA-instance
-
Wählen Sie im Bereich Application and OS Images (Anwendungs- und Betriebssystem-Images) My AMIs (Meine AMIs) und dann das AMI aus, das Sie im vorherigen Schritt erstellt haben.
-
Wählen Sie im Bereich Instance type (Instance-Typ) einen supported instance type (unterstützten Instance-Typ) aus.
-
Wählen Sie im Bereich Key pair (Schlüsselpaar) das Schlüsselpaar aus, das für die Instance verwendet werden soll.
-
Wählen Sie im Bereich Network settings (Netzwerkeinstellungen) Edit (Bearbeiten) aus und führen Sie dann Folgendes aus:
-
Wählen Sie unter Subnetz das Subnetz aus, in dem die Instance gestartet werden soll. Wenn Sie kein Subnetz auswählen, können Sie die Instance nicht für EFA aktivieren.
-
Wählen Sie bei Firewall (security groups) Firewall (Sicherheitsgruppen) Select existing security group (Vorhandene Sicherheitsgruppe auswählen) und dann die Sicherheitsgruppe aus, die Sie im vorherigen Schritt erstellt haben.
-
Erweitern Sie den Abschnitt Erweiterte Netzwerkkonfiguration.
Wählen Sie für Netzwerkschnittstelle 1 Netzwerkkartenindex = 0, Geräteindex = 0 und Schnittstellentyp = EFA mit ENA aus.
(Optional) Wenn Sie einen Instance-Typ mit mehreren Karten verwenden, z. B.
p4d.24xlarge
oderp5.48xlarge
, wählen Sie für jede weitere erforderliche Netzwerkschnittstelle die Option Netzwerkschnittstelle hinzufügen, wählen Sie für Netzwerkkartenindex den nächsten ungenutzten Index aus und wählen Sie dann Geräteindex = 1 und Schnittstellentyp = EFA mit ENA oder Nur-EFA aus.
-
-
(Optional) Konfigurieren Sie im Bereich Storage (Speicher) die Volumes nach Bedarf.
-
Wählen Sie im Bereich Advanced details (Erweiterte Details) bei Placement group name (Placement-Gruppen-Name) die Cluster-Placement-Gruppe aus, in der die Instances gestartet werden sollen. Wenn Sie eine neue Cluster-Placement-Gruppe erstellen müssen, wählen Sie Create new placement group (Neue Placement-Gruppe erstellen).
-
Geben Sie im Bereich Summary (Zusammenfassung) rechts bei Number of instances (Anzahl der Instances) die Anzahl EFA-fähiger Instances ein, die Sie starten möchten, und wählen Sie dann Launch instance (Instance starten).
Schritt 11: Beenden der temporären Instance
An diesem Punkt benötigen Sie die temporäre Instance, die Sie in Schritt 2 gestartet haben, nicht mehr. Sie können die Instance beenden, damit keine weiteren Kosten dafür anfallen.
So beenden Sie die temporäre Instance:
Öffnen Sie die Amazon EC2-Konsole unter https://console.aws.amazon.com/ec2/
. -
Wählen Sie im Navigationsbereich Instances aus.
-
Wählen Sie die temporäre instance aus, die Sie erstellt haben, und wählen Sie anschließend Aktionen, Instance-Zustand und Instance beenden (löschen) aus.
-
Wenn Sie zur Bestätigung aufgefordert werden, wählen Sie Beenden (löschen) aus.
Schritt 12: Passwortloses SSH aktivieren
Damit Ihre Anwendungen auf allen Instances in Ihrem Cluster ausgeführt werden können, müssen Sie passwortlosen SSH-Zugriff vom Führungsknoten auf die Mitgliedsknoten aktivieren. Der Führungsknoten ist die Instance, von der aus Sie die Anwendungen ausführen. Die verbleibenden Instances im Cluster sind die Mitgliedsknoten.
So aktivieren Sie passwortloses SSH zwischen den Instances im Cluster:
-
Wählen Sie eine Instance im Cluster als Führungsknoten aus und stellen Sie eine Verbindung zu ihr her.
-
Deaktivieren Sie
strictHostKeyChecking
und aktivieren SieForwardAgent
für den Führungsknoten. Öffnen Sie~/.ssh/config
mit dem bevorzugten Texteditor und fügen Sie Folgendes hinzu.Host * ForwardAgent yes Host * StrictHostKeyChecking no
-
Generieren Sie ein RSA-Schlüsselpaar.
$
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsaDas Schlüsselpaar wird im
$HOME/.ssh/
-Verzeichnis erstellt. -
Ändern Sie die Berechtigungen des privaten Schlüssels auf dem Führungsknoten.
$
chmod 600 ~/.ssh/id_rsa chmod 600 ~/.ssh/config -
Öffnen Sie
~/.ssh/id_rsa.pub
mit Ihrem bevorzugten Texteditor und kopieren Sie den Schlüssel. -
Gehen Sie für jeden Mitgliedsknoten im Cluster wie folgt vor:
-
Stellen Sie eine Verbindung mit der Instance her.
-
Öffnen Sie
~/.ssh/authorized_keys
mit Ihrem bevorzugten Texteditor und fügen Sie den öffentlichen Schlüssel hinzu, den Sie zuvor kopiert haben.
-
-
Um zu testen, ob das passwortlose SSH wie erwartet funktioniert, stellen Sie eine Verbindung zum Leaderknoten her und führen Sie den folgenden Befehl aus.
$
sshmember_node_private_ip
Sie sollten eine Verbindung zum Mitgliedsknoten herstellen können, ohne zur Eingabe eines Schlüssels oder Passworts aufgefordert zu werden.