

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.

# Provisionnement de NVMe /TCP pour Linux
<a name="provision-nvme-linux"></a>

FSx car ONTAP prend en charge le Non-Volatile Memory Express via TCP (NVMe/TCP) block storage protocol. With NVMe/TCP, vous utilisez le ONTAP CLI pour provisionner des espaces de noms et des sous-systèmes, puis mapper les espaces de noms aux sous-systèmes, de la même manière que LUNs sont provisionnés et mappés aux groupes d'initiateurs (igroups) pour iSCSI. Le protocole NVMe /TCP est disponible sur les systèmes de fichiers de deuxième génération dotés de 6 paires de [haute disponibilité (](HA-pairs.md)HA) ou moins.

**Note**  
FSx pour les systèmes de fichiers ONTAP, utilisez les points de terminaison iSCSI d'une SVM pour les protocoles de stockage par blocs NVMe iSCSI et /TCP.

Le processus de configuration de NVMe /TCP sur votre Amazon FSx pour NetApp ONTAP comporte trois étapes principales, qui sont décrites dans les procédures suivantes :

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

1. Configurez NVMe sur la SVM du système de fichiers.
   + 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 NQN du client au sous-système.

1. Montez un NVMe appareil sur le client Linux.

## Avant de commencer
<a name="nvme-tcp-linux-byb"></a>

Avant de commencer le processus de configuration de votre système de fichiers pour NVMe /TCP, vous devez avoir effectué les étapes suivantes.
+ Créez un système de fichiers FSx pour ONTAP. Pour de plus amples informations, veuillez consulter [Création de systèmes de fichiers](creating-file-systems.md).
+ Créez une EC2 instance exécutant Red Hat Enterprise Linux (RHEL) 9.3 dans le même VPC que le système de fichiers. Il s'agit de l'hôte Linux sur lequel vous allez configurer NVMe et accéder aux données de vos fichiers à l'aide de NVMe /TCP pour Linux.

  Au-delà de ces procédures, si l'hôte est situé dans un autre VPC, vous pouvez utiliser le peering VPC ou accorder un autre VPCs accès aux points de AWS Transit Gateway terminaison iSCSI du volume. Pour de plus amples informations, veuillez consulter [Accès aux données depuis l'extérieur du VPC de déploiement](supported-fsx-clients.md#access-from-outside-deployment-vpc).
+ Configurez les groupes de sécurité VPC de l'hôte Linux pour autoriser le trafic entrant et sortant, comme décrit dans. [Contrôle d'accès au système de fichiers avec Amazon VPC](limit-access-security-groups.md)
+ Obtenez les informations d'identification pour ONTAP utilisateur doté de `fsxadmin` privilèges que vous utiliserez pour accéder au ONTAP CLI. Pour de plus amples informations, veuillez consulter [ONTAPrôles et utilisateurs](roles-and-users.md).
+ L'hôte Linux que vous allez configurer NVMe et utiliser pour accéder au système de fichiers FSx for ONTAP se trouve dans le même Compte AWS VPC et.
+ Nous recommandons que l' EC2 instance se trouve dans la même zone de disponibilité que le sous-réseau préféré de votre système de fichiers.

Si votre EC2 instance exécute une AMI Linux différente de RHEL 9.3, certains des utilitaires utilisés dans ces procédures et exemples 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 Linux AMIs.

**Topics**
+ [Avant de commencer](#nvme-tcp-linux-byb)
+ [Installation et configuration NVMe sur l'hôte Linux](#configure-nvme-on-rhel93)
+ [Configuration NVMe sur le système de fichiers FSx for ONTAP](#configure-nvme-on-svm)
+ [Monter un NVMe appareil sur votre client Linux](#add-nvme-on-rhel93-host)

## Installation et configuration NVMe sur l'hôte Linux
<a name="configure-nvme-on-rhel93"></a>

**Pour installer le NVMe client**

1. Connectez-vous à votre instance Linux à l'aide d'un client SSH. Pour plus d'informations, voir [Se connecter à votre instance Linux depuis Linux ou macOS à l'aide de SSH.](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-linux-inst-ssh.html)

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

   ```
   ~$ sudo yum install -y nvme-cli
   ```

1. Chargez le `nvme-tcp` module sur l'hôte :

   ```
   $ sudo modprobe nvme-tcp
   ```

1. 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 de fichiers FSx for ONTAP
<a name="configure-nvme-on-svm"></a>

**Pour configurer NVMe sur le système de fichiers**

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

1. Pour accéder au ONTAP CLI, établissez une session SSH sur le port de gestion du système de fichiers Amazon FSx for NetApp ONTAP ou de la SVM 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](managing-resources-ontap-apps.md#fsxadmin-ontap-cli). 

1. Créez un nouveau volume sur la SVM que vous utilisez pour accéder à l' NVMe interface.

   ```
   ::> vol create -vserver fsx -volume nvme_vol1 -aggregate aggr1 -size 1t
        [Job 597] Job succeeded: Successful
   ```

1. Créez l'espace de NVMe noms à l'`ns_1`aide de la [https://docs.netapp.com/us-en/ontap-cli-9141/vserver-nvme-namespace-create.html](https://docs.netapp.com/us-en/ontap-cli-9141/vserver-nvme-namespace-create.html) NetApp commande ONTAP CLI. 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/ns_1 -size 100g -ostype linux
   Created a namespace of size 100GB (107374182400).
   ```

1. Créez le NVMe sous-système à l'aide de la [https://docs.netapp.com/us-en/ontap-cli-9141/vserver-nvme-subsystem-create.html](https://docs.netapp.com/us-en/ontap-cli-9141/vserver-nvme-subsystem-create.html) NetApp commande ONTAP CLI.

   ```
   ~$ vserver nvme subsystem create -vserver fsx -subsystem sub_1 -ostype linux
   ```

1. Mappez l'espace de noms au sous-système que vous venez de créer.

   ```
   ::> vserver nvme subsystem map add -vserver fsx -subsystem sub_1 -path /vol/nvme_vol1/ns_1
   ```

1. Ajoutez le client au sous-système à l'aide du NQN que vous avez récupéré précédemment.

   ```
   ::> vserver nvme subsystem host add -subsystem sub_1 -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 dans une liste séparée par des virgules. Pour plus d'informations, voir [vserver nvme subsystem host add](https://docs.netapp.com/us-en/ontap-cli-9141/vserver-nvme-subsystem-host-add.html) dans la NetApp documentation ONTAP.

1. Vérifiez que l'espace de noms existe à l'aide de la [https://docs.netapp.com/us-en/ontap-cli-9141/vserver-nvme-namespace-show.html](https://docs.netapp.com/us-en/ontap-cli-9141/vserver-nvme-namespace-show.html)commande :

   ```
   ::> 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.
   ```

1. Utilisez la [https://docs.netapp.com/us-en/ontap-cli-9141/network-interface-show.html](https://docs.netapp.com/us-en/ontap-cli-9141/network-interface-show.html)commande pour récupérer les adresses des interfaces de stockage par blocs de la SVM dans laquelle vous avez créé vos NVMe appareils.

   ```
   ::> 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.
   ```
**Note**  
Le `iscsi_1` LIF est utilisé à la fois pour iSCSI et /TCP. NVMe

   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
<a name="add-nvme-on-rhel93-host"></a>

Le processus de montage de l' NVMe appareil sur votre client Linux comporte trois étapes :

1. Découvrir les NVMe nœuds

1. Partitionnement de l'appareil NVMe 

1. Montage de NVMe l'appareil sur le client

Ces questions sont abordées dans les procédures suivantes.

**Pour découvrir les NVMe nœuds cibles**

1. Sur votre client Linux, utilisez la commande suivante pour découvrir les NVMe nœuds cibles. Remplacez {{`iscsi_1_IP`}} par `iscsi_1` l'adresse IP et {{`client_IP`}} l'adresse IP du client.
**Note**  
`iscsi_1`et `iscsi_2` LIFs sont utilisés à la fois pour l'iSCSI et NVMe le 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
   ```

1. (Facultatif) Pour obtenir un débit supérieur à la limite maximale de 5 Gbit/s (\~625 MBps) fixée par Amazon à un EC2 seul client, suivez les procédures décrites dans la section [Bande passante du réseau d' EC2 instances Amazon](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html) dans le guide de l'utilisateur Amazon Elastic Compute Cloud pour les instances Linux afin d'établir des sessions supplémentaires. NVMe 

1. 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. {{`client_IP`}} 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
   ```

1. Utilisez la commande suivante pour vérifier que la NVMe pile a identifié et fusionné les multiples sessions et configuré le multiacheminement. La commande est renvoyée `Y` si la configuration a réussi.

   ```
   ~$ cat /sys/module/nvme_core/parameters/multipath
   Y
   ```

1. Utilisez les commandes suivantes pour vérifier que le paramètre NVMe -oF `model` est défini sur `NetApp ONTAP Controller` et que l'équilibrage de `round-robin` charge `iopolicy` est défini sur ONTAP espaces de noms pour distribuer les E/S sur tous les chemins disponibles

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

1. Utilisez la commande suivante pour vérifier 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.

1. Vérifiez que l'état du contrôleur de chaque chemin est actif et que le statut multivoie ANA (Asymmetric Namespace Access) est correct :

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

   Dans cet exemple, la NVMe pile a automatiquement découvert le LIF alternatif de votre système de fichiers`iscsi_2`, 172.31.26.134.

1. Vérifiez que le NetApp le plug-in affiche les valeurs correctes pour chaque ONTAP périphérique d'espace de 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
   ```

1. Partitionnez le disque en utilisant`fdisk`. Vous allez entrer une invite interactive. Entrez les options dans l'ordre indiqué. Vous pouvez créer plusieurs partitions en utilisant une valeur inférieure au dernier secteur (`20971519`dans cet exemple).
**Note**  
La `Last sector` valeur varie en fonction de la taille de votre NVMe appareil (100 GiB dans 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 que vous `w` êtes entrée, votre nouvelle `/dev/nvme2n1` partition est disponible. {{partition\_name}}Il a le format {{<device\_name>}}{{<partition\_number>}}. `1`a été utilisé comme numéro de partition dans la `fdisk` commande de l'étape précédente.

1. 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éez un répertoire {{directory\_path}} comme point de montage pour votre système de fichiers sur l'instance Linux.

   ```
   ~$ sudo mkdir /{{directory_path}}/{{mount_point}}
   ```

1. Montez le système de fichiers à l'aide de la commande suivante.

   ```
   ~$ sudo mount -t ext4 /dev/nvme2n1 /{{directory_path}}/{{mount_point}}
   ```

1. (Facultatif) Si vous souhaitez attribuer à un utilisateur spécifique la propriété du répertoire de montage, remplacez-le {{`username`}} par le nom d'utilisateur du propriétaire.

   ```
   ~$ sudo chown {{username}}:{{username}} /{{directory_path}}/{{mount_point}}
   ```

1. (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.