NVMeProvisionnage/ TCP pour Linux - FSx pour ONTAP

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

NVMeProvisionnage/ TCP pour Linux

FSxpour ONTAP prend en charge le protocole de stockage par blocs Non-Volatile Memory Express over TCP (NVMe/TCP). AvecNVMe/TCP, vous utilisez le ONTAP CLI pour provisionner des espaces de noms et des sous-systèmes, puis vous mappez les espaces de noms aux sous-systèmes, de la même manière que vous les mettez en service et LUNs les mappez aux groupes d'initiateurs (igroups) pour i. SCSI Le TCP protocoleNVMe/est disponible sur les systèmes de fichiers de deuxième génération dotés de 6 paires de haute disponibilité (HA) ou moins. .

Les exemples présentés dans ces procédures montrent comment configurer le stockage NVMe par TCP blocs sur votre système FSx de ONTAP fichiers et sur le client Linux, et comment utiliser la configuration suivante :

  1. Installez et configurez le NVMe client sur l'hôte Linux.

  2. Configurez NVMe sur le système de fichiersSVM.

    • Créez un NVMe espace de noms.

    • Créez un NVMe sous-système.

    • Mappez l'espace de noms au sous-système.

    • Ajoutez le client NQN au sous-système.

  3. Montez un NVMe appareil sur le client Linux.

  • Vous avez déjà créé un système FSx de ONTAP fichiers for. Pour de plus amples informations, veuillez consulter Création d'un i SCSI LUN.

  • Créez une EC2 instance exécutant Red Hat Enterprise Linux (RHEL) 9.3, qui sera l'hôte Linux sur lequel vous allez configurerNVMe.

  • L'hôte Linux possède des groupes VPC de sécurité configurés pour autoriser le trafic entrant et sortant, comme décrit dans. Contrôle d'accès au système de fichiers avec Amazon VPC

  • Vous connaissez les informations d'identification de l'ONTAPutilisateur doté de fsxadmin privilèges que vous utiliserez pour accéder au ONTAPCLI.

  • L'hôte Linux que vous allez configurer NVMe et que vous utiliserez pour accéder au système de ONTAP fichiers FSx for se trouve dans le même emplacement VPC et Compte AWS.

    Au-delà des exemples présentés dans cette rubrique, si l'hôte est situé dans un autreVPC, vous pouvez utiliser le VPC peering ou accorder AWS Transit Gateway à d'autres personnes l'VPCsaccès aux points de SCSI terminaison i du volume. Pour de plus amples informations, veuillez consulter Accès aux données depuis l'extérieur du déploiement VPC.

    Si vous utilisez une EC2 instance exécutant un Linux différent de AMI celui utilisé dans ces procédures et exemples, certains utilitaires installés sur l'hôte sont peut-être déjà installés et vous pouvez utiliser des commandes différentes pour installer les packages requis. Hormis l'installation des packages, les commandes utilisées dans cette section sont valides pour les autres EC2 systèmes LinuxAMIs.

  • Nous recommandons que l'EC2instance se trouve dans la même zone de disponibilité que le sous-réseau préféré de votre système de fichiers.

Installation et configuration NVMe sur l'hôte Linux

Pour installer le client NVMe
  1. Connectez-vous à votre instance Linux à l'aide d'un SSH client. Pour plus d'informations, voir Se connecter à votre instance Linux depuis Linux ou macOS à l'aide deSSH.

  2. Installez nvme-cli à l’aide de la commande suivante:

    ~$ sudo yum install -y nvme-cli
  3. Chargez le nvme-tcp module sur l'hôte :

    $ sudo modprobe nvme-tcp
  4. Obtenez le nom NVMe qualifié (NQN) de l'hôte Linux à l'aide de la commande suivante :

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

    Enregistrez la réponse pour une utilisation ultérieure.

Configuration NVMe sur le système FSx de ONTAP fichiers for

Pour configurer NVMe sur le système de fichiers

Connectez-vous au système de ONTAP fichiers NetApp ONTAP CLI on the FSx for sur lequel vous souhaitez créer le ou les NVMe appareils.

  1. Pour y accéder NetApp ONTAPCLI, établissez une SSH session sur le port de gestion du système de NetApp ONTAP fichiers Amazon FSx for en exécutant la commande suivante. Remplacez management_endpoint_ip par l'adresse IP du port de gestion du système de fichiers.

    [~]$ ssh fsxadmin@management_endpoint_ip

    Pour de plus amples informations, veuillez consulter Gestion des systèmes de fichiers à l'aide de la ONTAP CLI.

  2. Créez un nouveau volume sur le volume SVM que vous utilisez pour accéder à l'NVMeinterface.

    ::> vol create -vserver fsx -volume nvme_vol1 -aggregate aggr1 -size 1t [Job 597] Job succeeded: Successful
  3. Créez l'espace de NVMe noms à l'rhelaide de la vserver nvme namespace create NetApp ONTAPCLIcommande. Un espace de noms correspond aux initiateurs (clients) et contrôle quels initiateurs (clients) ont accès aux appareils. NVMe

    ::> vserver nvme namespace create -vserver fsx -path /vol/nvme_vol1/rhel -size 100g -ostype linux Created a namespace of size 100GB (107374182400).
  4. Créez le NVMe sous-système à l'aide de la vserver nvme subsystem create NetApp ONTAPCLIcommande.

    ~$ vserver nvme subsystem create -vserver fsx -subsystem rhel -ostype linux
  5. Mappez l'espace de noms au sous-système que vous venez de créer.

    ::> vserver nvme subsystem map add -vserver fsx -subsystem rhel -path /vol/nvme_vol1/ns_1
  6. Ajoutez le client au sous-système à l'aide de NQN celui que vous avez récupéré précédemment.

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

    Si vous souhaitez que les périphériques mappés à ce sous-système soient accessibles à plusieurs hôtes, vous pouvez spécifier plusieurs noms d'initiateurs séparés par une virgule. Pour plus d'informations, voir vserver nvme subsystem host add dans la documentation. NetApp ONTAP

  7. Vérifiez que l'espace de noms existe à l'aide de la commande 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: rhel 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. Utilisez la network interface show -vservercommande pour récupérer les adresses des interfaces de stockage par blocs SVM dans lesquelles vous avez créé vos NVMe appareils.

    ::> network interface show -vserver svm_name -data-protocol nvme 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.

    Notez que le iscsi_1 LIF est utilisé à la fois pour i SCSI et/. NVMe TCP Dans cet exemple, l'adresse IP de iscsi_1 est 172.31.16.19 et iscsi_2 est 172.31.26.134.

Monter un NVMe appareil sur votre client Linux

Découvrez les SCSI nœuds i cibles
  1. Sur votre client Linux, utilisez la commande suivante pour découvrir les SCSI nœuds i cibles, en utilisant iscsi_1 l'adresse IP pour iSCSI_1_IP et l'adresse IP du client pour IP du client. Notez que iscsi_1 et iscsi_2 LIF sont utilisés à la fois pour i SCSI et pour le NVMe stockage.

    ~$ 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. (Facultatif) Vous pouvez établir des sessions supplémentaires avec le système de fichiers. Amazon EC2 a une limite de bande passante de 5 Go/s (~625 Mo/s) pour le trafic à flux unique, mais vous pouvez créer plusieurs sessions pour augmenter le débit de votre système de fichiers à partir d'un seul client. Pour plus d'informations, consultez la section Bande passante du réseau des EC2 instances Amazon dans le guide de l'utilisateur Amazon Elastic Compute Cloud pour les instances Linux.

  3. Connectez-vous aux initiateurs cibles avec un délai de perte du contrôleur d'au moins 1800 secondes, en utilisant à nouveau iscsi_1 l'adresse IP pour iSCSI_1_IP et l'adresse IP du client pour IP du client. Vos NVMe appareils sont présentés sous forme de disques disponibles.

    ~$ ~$ sudo nvme connect-all -t tcp -w client_IP -a iscsi_1 -l 1800
  4. Utilisez la commande suivante pour vérifier que la NVMe pile a identifié et fusionné les multiples sessions et configuré le multiacheminement.

    ~$ cat /sys/module/nvme_core/parameters/multipath Y
  5. Vérifiez que le paramètre NVMe -oF model est défini sur (NetApp ONTAP Controlleret que l'équilibrage de charge iopolicy est défini surround-robin) pour que les ONTAP espaces de noms respectifs soient correctement reflétés sur l'hôte.

    ~$ 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. Vérifiez que les espaces de noms sont créés et correctement découverts sur l'hôte :

    ~$ 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

    Le nouveau périphérique dans la sortie est/dev/nvme2n1. Ce schéma de dénomination peut varier en fonction de votre installation Linux.

  7. Vérifiez que l'état du contrôleur de chaque chemin est actif et qu'il est correct ANA :

    ~$ 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

    Notez que la NVMe pile a automatiquement découvert l'alternative de votre système de fichiersLIF, iscsi_2, 172.31.26.134.

  8. Vérifiez que le NetApp plug-in affiche les valeurs correctes pour chaque périphérique d'espace de ONTAP noms :

    ~$ 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
Pour partitionner l'appareil
  1. Utilisez la commande suivante pour vérifier que le chemin d'accès à votre nom_appareil nvme2n1 est présent.

    ~$ ls /dev/mapper/nvme2n1 /dev/nvme2n1
  2. Partitionnez le disque en utilisantfdisk. Vous allez entrer une invite interactive. Entrez les options dans l'ordre indiqué. Notez que la Last sector valeur varie en fonction de la taille de votre NVMe appareil (100 GiB dans cet exemple). Vous pouvez créer plusieurs partitions en utilisant une valeur inférieure au dernier secteur (20971519dans cet exemple).

    ~$ sudo fdisk /dev/mapper/nvme2n1

    L'invite fsdisk interactive démarre.

    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.

    Une fois entréew, votre nouvelle partition /dev/nvme2n1 est disponible. Le partition_name a le format <device_name><partition_number>. 1a été utilisé comme numéro de partition dans la fdisk commande de l'étape précédente.

  3. Créez votre système de fichiers en utilisant /dev/nvme2n1 comme chemin.

    ~$ sudo mkfs.ext4 /dev/nvme2n1

    Le système répond avec le résultat suivant :

    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
Pour monter le NVMe périphérique sur le client Linux
  1. Créer un annuaire directory_path comme point de montage de votre système de fichiers sur l'instance Linux.

    ~$ sudo mkdir /directory_path/mount_point
  2. Montez le système de fichiers à l'aide de la commande suivante.

    ~$ sudo mount -t ext4 /dev/nvme2n1 /directory_path/mount_point
  3. (Facultatif) Vous pouvez transférer la propriété du répertoire de montage à votre utilisateur. Remplacez username par votre nom d'utilisateur.

    ~$ sudo chown username:username /directory_path/mount_point
  4. (Facultatif) Vérifiez que vous pouvez lire et écrire des données dans le système de fichiers.

    ~$ echo "Hello world!" > /directory_path/mount_point/HelloWorld.txt ~$ cat directory_path/HelloWorld.txt Hello world!

    Vous avez créé et monté avec succès un NVMe appareil sur votre client Linux.