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.
Bereitstellung NVMe/TCP für Linux
FSx for ONTAP unterstützt das Non-Volatile Blockspeicherprotokoll Memory Express over TCP (NVMe/TCP). Mit verwenden Sie die ONTAP CLI NVMe/TCP, um Namespaces und Subsysteme bereitzustellen und die Namespaces dann Subsystemen zuzuordnen, ähnlich wie LUNs bereitgestellt und Initiatorgruppen (IGroups) für iSCSI zugeordnet werden. Das NVMe/TCP Protokoll ist auf Dateisystemen der zweiten Generation mit 6 oder weniger Hochverfügbarkeitspaaren (HA) verfügbar.
Anmerkung
FSx for ONTAP-Dateisysteme verwenden die iSCSI-Endpunkte einer SVM sowohl für iSCSI- als auch für Blockspeicherprotokolle. NVMe/TCP
Die Konfiguration NVMe/TCP auf Ihrem Amazon FSx for NetApp ONTAP umfasst drei Hauptschritte, die in den folgenden Verfahren behandelt werden:
Installieren und konfigurieren Sie den NVMe-Client auf dem Linux-Host.
Konfigurieren Sie NVMe auf der SVM des Dateisystems.
Erstellen Sie einen NVMe-Namespace.
Erstellen Sie ein NVMe-Subsystem.
Ordnen Sie den Namespace dem Subsystem zu.
Fügen Sie den Client-NQN dem Subsystem hinzu.
Mounten Sie ein NVMe-Gerät auf dem Linux-Client.
Bevor Sie beginnen
Bevor Sie mit der Konfiguration Ihres Dateisystems für beginnen NVMe/TCP, müssen Sie die folgenden Punkte abgeschlossen haben.
Erstellen Sie ein FSx for ONTAP-Dateisystem. Weitere Informationen finden Sie unter Erstellen von Dateisystemen.
Erstellen Sie eine EC2-Instance, auf der Red Hat Enterprise Linux (RHEL) 9.3 in derselben VPC wie das Dateisystem ausgeführt wird. Dies ist der Linux-Host, auf dem Sie NVMe konfigurieren und mithilfe von Linux auf Ihre Dateidaten zugreifen. NVMe/TCP
Wenn sich der Host in einer anderen VPC befindet, können Sie, abgesehen vom Umfang dieser Verfahren, VPC-Peering verwenden oder AWS Transit Gateway anderen VPCs Zugriff auf die iSCSI-Endpunkte des Volumes gewähren. Weitere Informationen finden Sie unter Zugreifen auf Daten von außerhalb der Bereitstellungs-VPC.
Konfigurieren Sie die VPC-Sicherheitsgruppen des Linux-Hosts so, dass eingehender und ausgehender Datenverkehr zugelassen wird, wie unter beschrieben. Dateisystem-Zugriffskontrolle mit Amazon VPC
Besorgen Sie sich die Anmeldeinformationen für den ONTAP Benutzer mit
fsxadminRechten, die Sie für den Zugriff auf die ONTAP CLI verwenden werden. Weitere Informationen finden Sie unter ONTAP Rollen und Benutzer.Der Linux-Host, den Sie für NVMe konfigurieren und den Sie für den Zugriff auf das Dateisystem FSx for ONTAP verwenden, befindet sich in derselben VPC und. AWS-Konto
Wir empfehlen, dass sich die EC2-Instance in derselben Availability Zone wie das bevorzugte Subnetz Ihres Dateisystems befindet.
Wenn Ihre EC2-Instance ein anderes Linux-AMI als RHEL 9.3 ausführt, sind einige der in diesen Verfahren und Beispielen verwendeten Dienstprogramme möglicherweise bereits installiert, und Sie können andere Befehle verwenden, um die erforderlichen Pakete zu installieren. Abgesehen von der Installation von Paketen gelten die in diesem Abschnitt verwendeten Befehle auch für andere EC2-Linux-AMIs.
Themen
Installieren und konfigurieren Sie NVMe auf dem Linux-Host
Um den NVMe-Client zu installieren
-
Stellen Sie mithilfe eines SSH-Clients eine Connect zu Ihrer Linux-Instance her. Weitere Informationen finden Sie unter Connect zu Ihrer Linux-Instance von Linux oder macOS aus mithilfe von SSH.
-
Installieren Sie
nvme-climit dem folgenden Befehl:~$sudo yum install -y nvme-cli -
Laden Sie das
nvme-tcpModul auf den Host:$sudo modprobe nvme-tcp -
Rufen Sie den NVMe Qualified Name (NQN) des Linux-Hosts mit dem folgenden Befehl ab:
$cat /etc/nvme/hostnqnnqn.2014-08.org.nvmexpress:uuid:9ed5b327-b9fc-4cf5-97b3-1b5d986345d1Notieren Sie die Antwort zur Verwendung in einem späteren Schritt.
Konfigurieren Sie NVMe auf dem Dateisystem FSx for ONTAP
Um NVMe auf dem Dateisystem zu konfigurieren
Stellen Sie Connect zur NetApp ONTAP CLI auf dem FSx for ONTAP-Dateisystem her, auf dem Sie die NVMe-Geräte erstellen möchten.
Um auf die ONTAP CLI zuzugreifen, richten Sie eine SSH-Sitzung auf dem Management-Port des Amazon FSx for NetApp ONTAP-Dateisystems oder der SVM ein, indem Sie den folgenden Befehl ausführen.
Ersetzen Sie es durch die IP-Adresse des Management-Ports des Dateisystems.management_endpoint_ip[~]$ssh fsxadmin@management_endpoint_ipWeitere Informationen finden Sie unter Verwaltung von Dateisystemen mit ONTAP CLI.
-
Erstellen Sie ein neues Volume auf der SVM, die Sie für den Zugriff auf die NVMe-Schnittstelle verwenden.
::>vol create -vserver fsx -volume nvme_vol1 -aggregate aggr1 -size 1t[Job 597] Job succeeded: Successful Erstellen Sie den NVMe-Namespace
ns_1mit demvserver nvme namespace createNetApp ONTAP CLI-Befehl. Ein Namespace ist Initiatoren (Clients) zugeordnet und steuert, welche Initiatoren (Clients) Zugriff auf NVMe-Geräte haben. ::>vserver nvme namespace create -vserver fsx -path /vol/nvme_vol1/ns_1 -size 100g -ostype linuxCreated a namespace of size 100GB (107374182400).-
Erstellen Sie das NVMe-Subsystem mit dem
vserver nvme subsystem createNetApp ONTAP CLI-Befehl. ~$vserver nvme subsystem create -vserver fsx -subsystem sub_1 -ostype linux -
Ordnen Sie den Namespace dem Subsystem zu, das Sie gerade erstellt haben.
::>vserver nvme subsystem map add -vserver fsx -subsystem sub_1 -path /vol/nvme_vol1/ns_1 Fügen Sie den Client mithilfe des zuvor abgerufenen NQN dem Subsystem hinzu.
::>vserver nvme subsystem host add -subsystem sub_1 -host-nqn nqn.2014-08.org.nvmexpress:uuid:ec21b083-1860-d690-1f29-44528e4f4e0e -vserver fsxWenn Sie die diesem Subsystem zugewiesenen Geräte mehreren Hosts zur Verfügung stellen möchten, können Sie mehrere Initiatornamen in einer durch Kommas getrennten Liste angeben. Weitere Informationen finden Sie unter vserver nvme subsystem
host add in den ONTAP Docs. NetApp -
Bestätigen Sie mit dem folgenden Befehl, dass der Namespace existiert: vserver nvme namespace show
::>vserver nvme namespace show -vserver fsx -instanceVserver Name: fsx Namespace Path: /vol/nvme_vol1/ns_1 Size: 100GB Size Used: 90.59GB OS Type: linux Comment: Block Size: 4KB State: online Space Reservation: false Space Reservations Honored: false Is Read Only: false Creation Time: 5/20/2024 17:03:08 Namespace UUID: c51793c0-8840-4a77-903a-c869186e74e3 Vdisk ID: 80d42c6f00000000187cca9 Restore Inaccessible: false Inconsistent Filesystem: false Inconsistent Blocks: false NVFail: false Node Hosting the Namespace: FsxId062e9bb6e05143fcb-01 Volume Name: nvme_vol1 Qtree Name: Mapped Subsystem: sub_1 Subsystem UUID: db526ec7-16ca-11ef-a612-d320bd5b74a9 Namespace ID: 00000001h ANA Group ID: 00000001h Vserver UUID: 656d410a-1460-11ef-a612-d320bd5b74a9 Vserver ID: 3 Volume MSID: 2161388655 Volume DSID: 1029 Aggregate: aggr1 Aggregate UUID: cfa8e6ee-145f-11ef-a612-d320bd5b74a9 Namespace Container State: online Autodelete Enabled: false Application UUID: - Application: - Has Metadata Provisioned: true 1 entries were displayed. Verwenden Sie den network interface show -vserver
Befehl, um die Adressen der Blockspeicherschnittstellen für die SVM abzurufen, auf der Sie Ihre NVMe-Geräte erstellt haben. ::>network interface show -vserversvm_name-data-protocol nvme-tcpLogical Status Network Current Current Is Vserver Interface Admin/Oper Address/Mask Node Port Home ----------- ---------- ---------- ------------------ ------------- ------- ----svm_nameiscsi_1 up/up 172.31.16.19/20 FSxId0123456789abcdef8-01 e0e true iscsi_2 up/up 172.31.26.134/20 FSxId0123456789abcdef8-02 e0e true 2 entries were displayed.Anmerkung
Die
iscsi_1LIF wird sowohl für iSCSI als auch verwendet. NVMe/TCPIn diesem Beispiel lautet die IP-Adresse von iscsi_1 172.31.16.19 und iscsi_2 ist 172.31.26.134.
Mounten Sie ein NVMe-Gerät auf Ihrem Linux-Client
Das Mounten des NVMe-Geräts auf Ihrem Linux-Client umfasst drei Schritte:
Entdecken Sie die NVMe-Knoten
Partitionierung des NVMe-Geräts
Mounten des NVMe-Geräts auf dem Client
Diese werden in den folgenden Verfahren behandelt.
Um die NVMe-Zielknoten zu entdecken
Verwenden Sie auf Ihrem Linux-Client den folgenden Befehl, um die Ziel-NVMe-Knoten zu ermitteln.
Ersetzeniscsi_1_IPiscsi_1Sie durch die IP-Adresse unddie IP-Adresse des Clients.client_IPAnmerkung
iscsi_1undiscsi_2LIFs werden sowohl für iSCSI- als auch für NVMe-Speicher verwendet.~$sudo nvme discover -t tcp -wclient_IP-aiscsi_1_IPDiscovery Log Number of Records 4, Generation counter 11 =====Discovery Log Entry 0====== trtype: tcp adrfam: ipv4 subtype: current discovery subsystem treq: not specified portid: 0 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.656d410a146011efa612d320bd5b74a9:discovery traddr: 172.31.26.134 eflags: explicit discovery connections, duplicate discovery information sectype: none =====Discovery Log Entry 1====== trtype: tcp adrfam: ipv4 subtype: current discovery subsystem treq: not specified portid: 1 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.656d410a146011efa612d320bd5b74a9:discovery traddr: 172.31.16.19 eflags: explicit discovery connections, duplicate discovery information sectype: none-
(Optional) Um Ihrem Datei-NVMe-Gerät einen höheren Durchsatz als den Amazon EC2 EC2-Einzelclient-Höchstwert von 5 Gbit/s (~625 MBps) zuzuweisen, folgen Sie den unter Netzwerkbandbreite der Amazon EC2 EC2-Instance im Amazon Elastic Compute Cloud-Benutzerhandbuch für Linux-Instances beschriebenen Verfahren, um zusätzliche Sitzungen einzurichten.
-
Melden Sie sich bei den Zielinitiatoren mit einem Timeout für den Controller-Verlust von mindestens 1800 Sekunden an. Verwenden Sie dabei erneut die IP-Adresse für
und die IP-Adresseiscsi_1_IPiscsi_1des Clients für.Ihre NVMe-Geräte werden als verfügbare Festplatten angezeigt.client_IP~$sudo nvme connect-all -t tcp -wclient_IP-aiscsi_1-l 1800 Verwenden Sie den folgenden Befehl, um zu überprüfen, ob der NVMe-Stack die mehreren Sitzungen identifiziert und zusammengeführt und Multipathing konfiguriert hat. Der Befehl kehrt zurück,
Ywenn die Konfiguration erfolgreich war.~$cat /sys/module/nvme_core/parameters/multipathYVerwenden Sie die folgenden Befehle, um zu überprüfen, ob die NVMe-oF Einstellung
modelround-robinfür die jeweiligen ONTAP Namespaces, um sie auf alle verfügbaren Pfade zu verteilen, I/O aufNetApp ONTAP Controllerund ob der Lastenausgleich aktiviertiopolicyist~$cat /sys/class/nvme-subsystem/nvme-subsys*/modelAmazon Elastic Block Store NetApp ONTAP Controller~$cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicynuma round-robinVerwenden Sie den folgenden Befehl, um zu überprüfen, ob die Namespaces auf dem Host erstellt und korrekt erkannt wurden:
~$sudo nvme listNode Generic SN Model Namespace Usage Format FW Rev --------------------- --------------------- -------------------- ---------------------------------------- ---------- -------------------------- ---------------- -------- /dev/nvme0n1 /dev/ng0n1 vol05955547c003f0580 Amazon Elastic Block Store 0x1 25.77 GB / 25.77 GB 512 B + 0 B 1.0 /dev/nvme2n1 /dev/ng2n1 lWB12JWY/XLKAAAAAAAC NetApp ONTAP Controller 0x1 107.37 GB / 107.37 GB 4 KiB + 0 B FFFFFFFFDas neue Gerät in der Ausgabe ist.
/dev/nvme2n1Dieses Benennungsschema kann je nach Ihrer Linux-Installation unterschiedlich sein.Stellen Sie sicher, dass der Controller-Status jedes Pfads aktiv ist und dass er den richtigen Multipathing-Status (Asymmetric Namespace Access, ANA) hat:
~$nvme list-subsys /dev/nvme2n1nvme-subsys2 - NQN=nqn.1992-08.com.netapp:sn.656d410a146011efa612d320bd5b74a9:subsystem.rhel hostnqn=nqn.2014-08.org.nvmexpress:uuid:ec2a70bf-3ab2-6cb0-f997-8730057ceb24 iopolicy=round-robin \ +- nvme2 tcp traddr=172.31.26.134,trsvcid=4420,host_traddr=172.31.25.143,src_addr=172.31.25.143 live non-optimized +- nvme3 tcp traddr=172.31.16.19,trsvcid=4420,host_traddr=172.31.25.143,src_addr=172.31.25.143 live optimizedIn diesem Beispiel hat der NVMe-Stack automatisch die alternative LIF Ihres Dateisystems erkannt, 172.31.26.134.
iscsi_2-
Stellen Sie sicher, dass das NetApp Plug-in die richtigen Werte für jedes Namespace-Gerät anzeigt: ONTAP
~$sudo nvme netapp ontapdevices -o columnDevice Vserver Namespace Path NSID UUID Size ---------------- ------------------------- -------------------------------------------------- ---- -------------------------------------- --------- /dev/nvme2n1 fsx /vol/nvme_vol1/ns_1 1 0441c609-3db1-4b0b-aa83-790d0d448ece 107.37GB
Um das Gerät zu partitionieren
-
Verwenden Sie den folgenden Befehl, um zu überprüfen, ob der Pfad zu Ihrem Gerätenamen vorhanden
nvme2n1ist.~$ls /dev/mapper/nvme2n1/dev/nvme2n1 Partitionieren Sie die Festplatte mit.
fdiskSie geben eine interaktive Eingabeaufforderung ein. Geben Sie die Optionen in der angegebenen Reihenfolge ein. Sie können mehrere Partitionen erstellen, indem Sie einen Wert verwenden, der kleiner als der letzte Sektor ist (20971519in diesem Beispiel).Anmerkung
Der
Last sectorWert hängt von der Größe Ihres NVMe-Geräts ab (100 GiB in diesem Beispiel).~$sudo fdisk /dev/mapper/nvme2n1Die
fsdiskinteraktive Eingabeaufforderung wird gestartet.Welcome to fdisk (util-linux 2.37.4). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0x66595cb0. Command (m for help):nPartition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p):pPartition number (1-4, default 1):1First sector (256-26214399, default 256): Last sector, +sectors or +size{K,M,G,T,P} (256-26214399, default 26214399):20971519Created a new partition 1 of type 'Linux' and of size 100 GiB. Command (m for help):wThe partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.Nach der Eingabe
wwird Ihre neue Partition/dev/nvme2n1verfügbar. Daspartition_namehat das Format<device_name><partition_number>.1wurde im vorherigen Schritt als Partitionsnummer imfdiskBefehl verwendet.-
Erstellen Sie Ihr Dateisystem mit
/dev/nvme2n1dem Pfad.~$sudo mkfs.ext4 /dev/nvme2n1Das System antwortet mit der folgenden Ausgabe:
mke2fs 1.46.5 (30-Dec-2021) Found a dos partition table in /dev/nvme2n1 Proceed anyway? (y,N)yCreating filesystem with 26214400 4k blocks and 6553600 inodes Filesystem UUID: 372fb2fd-ae0e-4e74-ac06-3eb3eabd55fb Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: done Writing inode tables: done Creating journal (131072 blocks): done Writing superblocks and filesystem accounting information: done
Um das NVMe-Gerät auf dem Linux-Client zu mounten
-
Erstellen Sie ein Verzeichnis
directory_pathals Bereitstellungspunkt für Ihr Dateisystem auf der Linux-Instance.~$sudo mkdir /directory_path/mount_point -
Mounten Sie das Dateisystem mit dem folgenden Befehl.
~$sudo mount -t ext4 /dev/nvme2n1 /directory_path/mount_point -
(Optional) Wenn Sie einem bestimmten Benutzer den Besitz des Mount-Verzeichnisses zuweisen möchten,
ersetzen Sie es durch den Benutzernamen des Besitzers.username~$sudo chownusername:username/directory_path/mount_point -
(Optional) Stellen Sie sicher, dass Sie Daten aus dem Dateisystem lesen und in das Dateisystem schreiben können.
~$echo "Hello world!" > /directory_path/mount_point/HelloWorld.txt~$catdirectory_path/HelloWorld.txtHello world!Sie haben erfolgreich ein NVMe-Gerät auf Ihrem Linux-Client erstellt und bereitgestellt.