BereitstellungNVMe//TCPfür Linux - FSx für ONTAP

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.

BereitstellungNVMe//TCPfür Linux

FSxfür ONTAP unterstützt das Blockspeicherprotokoll Non-Volatile Memory Express over TCP (NVMe/TCP). MitNVMe/verwenden Sie dasTCP, ONTAP CLI um Namespaces und Subsysteme bereitzustellen und dann die Namespaces Subsystemen zuzuordnen, ähnlich wie bei i die Bereitstellung und Zuordnung zu Initiatorgruppen (LUNsIGroups) erfolgt. SCSI DasNVMe/TCP-Protokoll ist auf Dateisystemen der zweiten Generation mit 6 oder weniger Hochverfügbarkeitspaaren (HA) verfügbar.

Anmerkung

FSxVerwenden Sie für ONTAP Dateisysteme die SCSI i-Endpunkte SVM von an für die I- SCSI und NVMe TCP /-Blockspeicherprotokolle.

Die Konfiguration vonNVMe/TCPauf Ihrem Amazon FSx for umfasst drei Hauptschritte NetApp ONTAP, die in den folgenden Verfahren behandelt werden:

  1. Installieren und konfigurieren Sie den NVMe Client auf dem Linux-Host.

  2. Konfigurieren Sie NVMe auf den DateisystemenSVM.

    • Erstellen Sie einen NVMe Namespace.

    • Erstellen Sie ein NVMe Subsystem.

    • Ordnen Sie den Namespace dem Subsystem zu.

    • Fügen Sie den Client dem NQN Subsystem hinzu.

  3. Mounten Sie ein NVMe Gerät auf dem Linux-Client.

Bevor Sie beginnen

Bevor Sie mit der Konfiguration Ihres Dateisystems fürNVMe/beginnenTCP, müssen Sie die folgenden Punkte abgeschlossen haben.

  • Erstellen Sie ein ONTAP Dateisystem FSx für. Weitere Informationen finden Sie unter Dateisysteme erstellen.

  • Erstellen Sie eine EC2 Instanz, auf der Red Hat Enterprise Linux (RHEL) 9.3 im selben VPC Dateisystem ausgeführt wird. Dies ist der Linux-Host, auf dem Sie Ihre Dateidaten mitNVMe/TCPfür Linux konfigurieren NVMe und darauf zugreifen.

    Wenn sich der Host auf einem anderen Server befindet, können SieVPC, abgesehen vom Umfang dieser Verfahren, VPC Peering verwenden oder anderen AWS Transit Gateway Benutzern VPCs Zugriff auf die SCSI i-Endpunkte des Volumes gewähren. Weitere Informationen finden Sie unter Zugreifen auf Daten von außerhalb der Bereitstellung 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 fsxadmin Rechten, die Sie für den Zugriff auf verwenden werden. ONTAP CLI Weitere Informationen finden Sie unter ONTAPRollen und Benutzer.

  • Der Linux-Host, für den Sie das Dateisystem konfigurieren NVMe und den Sie FSx für den Zugriff auf das ONTAP Dateisystem verwenden, befindet sich im selben VPC und AWS-Konto.

  • Wir empfehlen, dass sich die EC2 Instance in derselben Availability Zone wie das bevorzugte Subnetz Ihres Dateisystems befindet.

Wenn auf Ihrer EC2 Instance ein anderes Linux AMI als RHEL 9.3 läuft, 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-SystemeAMIs.

Installieren und konfigurieren Sie NVMe auf dem Linux-Host

So installieren Sie den NVMe-Client
  1. Stellen Sie über einen SSH Client eine Connect zu Ihrer Linux-Instance her. Weitere Informationen finden Sie unter Connect zu Ihrer Linux-Instance von Linux oder macOS aus mithilfe vonSSH.

  2. Installieren Sie nvme-cli mit dem folgenden Befehl:

    ~$ sudo yum install -y nvme-cli
  3. Laden Sie das nvme-tcp Modul auf den Host:

    $ sudo modprobe nvme-tcp
  4. Rufen Sie den NVMe qualifizierten Namen (NQN) des Linux-Hosts mit dem folgenden Befehl ab:

    $ cat /etc/nvme/hostnqn nqn.2014-08.org.nvmexpress:uuid:9ed5b327-b9fc-4cf5-97b3-1b5d986345d1

    Notieren Sie die Antwort zur Verwendung in einem späteren Schritt.

Konfigurieren Sie NVMe im ONTAP Dateisystem FSx für

Um NVMe im Dateisystem zu konfigurieren

Connect zu NetApp ONTAP CLI dem FSx ONTAP Dateisystem her, auf dem Sie die NVMe Geräte erstellen möchten.

  1. Um auf die zuzugreifen NetApp ONTAPCLI, richten Sie eine SSH Sitzung auf dem Management-Port des Amazon FSx for NetApp ONTAP Dateisystems ein, indem Sie den folgenden Befehl ausführen. management_endpoint_ipErsetzen Sie es durch die IP-Adresse des Management-Ports des Dateisystems.

    [~]$ ssh fsxadmin@management_endpoint_ip

    Weitere Informationen finden Sie unter Verwaltung von Dateisystemen mit der ONTAP CLI.

  2. Erstellen Sie ein neues Volume auf demSVM, das 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
  3. Erstellen Sie den NVMe Namespace ns_1 mit dem vserver nvme namespace create NetApp ONTAPCLIBefehl. Ein Namespace ist Initiatoren (Clients) zugeordnet und steuert, welche Initiatoren (Clients) Zugriff auf Geräte haben. NVMe

    ::> vserver nvme namespace create -vserver fsx -path /vol/nvme_vol1/ns_1 -size 100g -ostype linux Created a namespace of size 100GB (107374182400).
  4. Erstellen Sie das NVMe Subsystem mit dem Befehl. vserver nvme subsystem create NetApp ONTAPCLI

    ~$ vserver nvme subsystem create -vserver fsx -subsystem sub_1 -ostype linux
  5. 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
  6. Fügen Sie den Client mithilfe des zuvor abgerufenen dem Subsystem NQN hinzu.

    ::> vserver nvme subsystem host add -subsystem sub_1 -host-nqn nqn.2014-08.org.nvmexpress:uuid:ec21b083-1860-d690-1f29-44528e4f4e0e -vserver fsx

    Wenn 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 Dokumenten. NetApp ONTAP

  7. Bestätigen Sie mit dem folgenden Befehl, dass der Namespace existiert: vserver nvme namespace show

    ::> vserver nvme namespace show -vserver fsx -instance Vserver 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.
  8. Verwenden Sie den network interface show -vserverBefehl, um die Adressen der Blockspeicherschnittstellen abzurufen, für die SVM Sie Ihre NVMe Geräte erstellt haben.

    ::> network interface show -vserver svm_name -data-protocol nvme-tcp Logical Status Network Current Current Is Vserver Interface Admin/Oper Address/Mask Node Port Home ----------- ---------- ---------- ------------------ ------------- ------- ---- svm_name iscsi_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

    Der iscsi_1 LIF wird sowohl für i SCSI als auch fürNVMe/verwendetTCP.

    In diesem Beispiel ist die IP-Adresse von iscsi_1 172.31.16.19 und iscsi_2 ist 172.31.26.134.

NVMeMounten Sie ein Gerät auf Ihrem Linux-Client

Das Mounten des NVMe Geräts auf Ihrem Linux-Client umfasst drei Schritte:

  1. Die NVMe Knoten entdecken

  2. Partitionierung des Geräts NVMe

  3. Das NVMe Gerät auf dem Client montieren

Diese werden in den folgenden Verfahren behandelt.

Um die NVMe Zielknoten zu entdecken
  1. Verwenden Sie auf Ihrem Linux-Client den folgenden Befehl, um die NVMe Zielknoten zu ermitteln. Ersetzen iSCSI_1_IP mit seiner IP-Adresse und iscsi_1 client_IP die IP-Adresse des Clients.

    Anmerkung

    iscsi_1und iscsi_2 LIFs werden sowohl für i SCSI als auch für NVMe Speicher verwendet.

    ~$ sudo nvme discover -t tcp -w client_IP -a iscsi_1_IP
    Discovery 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
  2. (Optional) Um Ihrem NVMe Dateigerät einen höheren Durchsatz als den EC2 Amazon-Einzelclient-Höchstwert von 5 GB/s (~625 MB/s) zuzuweisen, folgen Sie den unter Netzwerkbandbreite von Amazon EC2 Instances im Amazon Elastic Compute Cloud-Benutzerhandbuch für Linux-Instances beschriebenen Verfahren, um zusätzliche Sitzungen einzurichten.

  3. Melden Sie sich bei den Zielinitiatoren mit einem Timeout für den Controller-Verlust von mindestens 1800 Sekunden an und verwenden Sie erneut die IP-Adresse für iscsi_1 iSCSI_1_IP und die IP-Adresse des Clients für client_IP. Ihre NVMe Geräte werden als verfügbare Festplatten angezeigt.

    ~$ sudo nvme connect-all -t tcp -w client_IP -a iscsi_1 -l 1800
  4. 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ückY, wenn die Konfiguration erfolgreich war.

    ~$ cat /sys/module/nvme_core/parameters/multipath Y
  5. Verwenden Sie die folgenden Befehle, um zu überprüfen, ob die Einstellung NVMe model -oF auf NetApp ONTAP Controller und der Lastausgleich round-robin für die jeweiligen iopolicy ONTAP Namespaces gesetzt sind, um die I/O auf alle verfügbaren Pfade zu verteilen

    ~$ cat /sys/class/nvme-subsystem/nvme-subsys*/model Amazon Elastic Block Store NetApp ONTAP Controller ~$ cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicy numa round-robin
  6. Verwenden Sie den folgenden Befehl, um zu überprüfen, ob die Namespaces auf dem Host erstellt und korrekt erkannt wurden:

    ~$ sudo nvme list Node 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 FFFFFFFF

    Das neue Gerät in der Ausgabe ist. /dev/nvme2n1 Dieses Benennungsschema kann je nach Ihrer Linux-Installation unterschiedlich sein.

  7. Stellen Sie sicher, dass der Controller-Status der einzelnen Pfade aktiv ist und den richtigen Multipathing-Status Asymmetric Namespace Access (ANA) hat:

    ~$ nvme list-subsys /dev/nvme2n1 nvme-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 optimized

    In diesem Beispiel hat der NVMe Stack automatisch die Alternative LIF Ihres Dateisystems, 172.31.26.134, erkannt. iscsi_2

  8. Stellen Sie sicher, dass das NetApp Plug-in die richtigen Werte für jedes Namespace-Gerät anzeigt: ONTAP

    ~$ sudo nvme netapp ontapdevices -o column Device 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
  1. Verwenden Sie den folgenden Befehl, um zu überprüfen, ob der Pfad zu Ihrem Gerätenamen vorhanden nvme2n1 ist.

    ~$ ls /dev/mapper/nvme2n1 /dev/nvme2n1
  2. Partitionieren Sie die Festplatte mit. fdisk Sie 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 sector Wert hängt von der Größe Ihres NVMe Geräts ab (100 GiB in diesem Beispiel).

    ~$ sudo fdisk /dev/mapper/nvme2n1

    Die fsdisk interaktive 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): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (256-26214399, default 256): Last sector, +sectors or +size{K,M,G,T,P} (256-26214399, default 26214399): 20971519 Created a new partition 1 of type 'Linux' and of size 100 GiB. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.

    Nach der Eingabe w wird Ihre neue Partition /dev/nvme2n1 verfügbar. Das Tool partition_name hat das Format <device_name><partition_number>. 1wurde im vorherigen Schritt als Partitionsnummer im fdisk Befehl verwendet.

  3. Erstellen Sie Ihr Dateisystem mit /dev/nvme2n1 dem Pfad.

    ~$ sudo mkfs.ext4 /dev/nvme2n1

    Das 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) y Creating 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
  1. Erstellen eines Verzeichnisses directory_path als Einhängepunkt für Ihr Dateisystem auf der Linux-Instance.

    ~$ sudo mkdir /directory_path/mount_point
  2. Mounten Sie das Dateisystem mit dem folgenden Befehl.

    ~$ sudo mount -t ext4 /dev/nvme2n1 /directory_path/mount_point
  3. (Optional) Wenn Sie einem bestimmten Benutzer den Besitz des Mount-Verzeichnisses übertragen möchten, ersetzen Sie username durch den Benutzernamen des Besitzers.

    ~$ sudo chown username:username /directory_path/mount_point
  4. (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 ~$ cat directory_path/HelloWorld.txt Hello world!

    Sie haben erfolgreich ein NVMe Gerät auf Ihrem Linux-Client erstellt und bereitgestellt.