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.
Provisioning NVMe/TCP pour Linux
FSx pour ONTAP prend en charge le protocole de stockage par blocs Non-Volatile Memory Express over TCP (NVMe/TCP). Avec NVMe/TCP, vous utilisez l'ONTAPinterface de ligne de commande 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 les LUN sont provisionnés et mappés aux groupes d'initiateurs (igroups) pour iSCSI. Le NVMe/TCP protocole 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.
Note
Les systèmes de fichiers FSx pour ONTAP utilisent les points de terminaison iSCSI d'une SVM pour les protocoles iSCSI et de stockage par blocs. NVMe/TCP
Le processus de configuration NVMe/TCP de votre Amazon FSx pour NetApp ONTAP comporte trois étapes principales, qui sont couvertes par les procédures suivantes :
Installez et configurez le client NVMe sur l'hôte Linux.
Configurez NVMe sur la SVM du système de fichiers.
Créez un espace de noms NVMe.
Créez un sous-système NVMe.
Mappez l'espace de noms au sous-système.
Ajoutez le NQN du client au sous-système.
Montez un périphérique NVMe sur le client Linux.
Avant de commencer
Avant de commencer le processus de configuration de votre système de fichiers pour NVMe/TCP, vous devez effectuer les étapes suivantes.
Créez un FSx pour le système de fichiers ONTAP. Pour plus d’informations, consultez Création de systèmes de fichiers.
Créez une instance EC2 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 en utilisant NVMe/TCP pour Linux.
Au-delà de la portée de ces procédures, si l'hôte se trouve dans un autre VPC, vous pouvez utiliser le peering VPC ou accorder AWS Transit Gateway à d'autres VPC l'accès aux points de terminaison iSCSI du volume. Pour plus d’informations, consultez Accès aux données depuis l'extérieur du VPC de déploiement.
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
Obtenez les informations d'identification de l'ONTAPutilisateur doté des
fsxadminprivilèges que vous utiliserez pour accéder à l'ONTAPinterface de ligne de commande. Pour plus d’informations, consultez AU ROBINET rôles et utilisateurs.L'hôte Linux que vous allez configurer pour NVMe et utiliser pour accéder au système de fichiers FSx pour ONTAP se trouve dans le même VPC et. Compte AWS
Nous recommandons que l'instance EC2 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 instance EC2 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. Outre l'installation de packages, les commandes utilisées dans cette section sont valides pour les autres AMI Linux EC2.
Note
Le basculement automatique entre vos serveurs de fichiers NVMe/TCP repose sur le multipathing NVMe natif, qui est activé par défaut sur RHEL 9.3. Certaines autres distributions Linux et AMI n'activent pas le multipathing NVMe natif par défaut, auquel cas le basculement automatique entre vos serveurs de fichiers n'est pas disponible. Consultez la documentation de votre distribution pour confirmer la prise en charge du multipathing NVMe natif et les étapes à suivre pour l'activer.
Rubriques
Installation et configuration de NVMe sur l'hôte Linux
Pour installer le client NVMe
-
Connectez-vous à votre instance Linux à l'aide d'un client SSH. Pour plus d'informations, consultez Connexion à votre instance Linux depuis Linux ou macOS via SSH.
-
Installez
nvme-clià l’aide de la commande suivante:~$sudo yum install -y nvme-cli -
Chargez le
nvme-tcpmodule sur l'hôte :$sudo modprobe nvme-tcp -
Obtenez le nom qualifié NVMe (NQN) de l'hôte Linux à l'aide de la commande suivante :
$cat /etc/nvme/hostnqnnqn.2014-08.org.nvmexpress:uuid:9ed5b327-b9fc-4cf5-97b3-1b5d986345d1Enregistrez la réponse pour une utilisation ultérieure.
Configuration de NVMe sur le système de fichiers FSx pour ONTAP
Pour configurer NVMe sur le système de fichiers
Connectez-vous à l'interface de ligne de commande NetApp ONTAP sur le système de fichiers FSx for ONTAP sur lequel vous prévoyez de créer le ou les périphériques NVMe.
Pour accéder à l'ONTAPinterface de ligne de commande, établissez une session SSH sur le port de gestion du système de fichiers ou de la SVM Amazon FSx for NetApp ONTAP en exécutant la commande suivante.
Remplacez-la par l'adresse IP du port de gestion du système de fichiers.management_endpoint_ip[~]$ssh fsxadmin@management_endpoint_ipPour plus d’informations, consultez Gestion des systèmes de fichiers à l'aide du AU ROBINET INTERFACE DE LIGNE DE COMMANDE (CLI).
-
Créez un nouveau volume sur la SVM que vous utilisez pour accéder à l'interface NVMe.
::>vol create -vserver fsx -volume nvme_vol1 -aggregate aggr1 -size 1t[Job 597] Job succeeded: Successful Créez l'espace de noms NVMe à l'
ns_1aide de la commande CLIvserver nvme namespace createNetApp ONTAP. Un espace de noms correspond aux initiateurs (clients) et contrôle quels initiateurs (clients) ont accès aux périphériques NVMe. ::>vserver nvme namespace create -vserver fsx -path /vol/nvme_vol1/ns_1 -size 100g -ostype linuxCreated a namespace of size 100GB (107374182400).-
Créez le sous-système NVMe à l'aide de la commande CLI
vserver nvme subsystem createNetApp ONTAP. ~$vserver nvme subsystem create -vserver fsx -subsystem sub_1 -ostype linux -
Associez 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 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 fsxSi vous souhaitez mettre les périphériques mappés à ce sous-système à la disposition de plusieurs hôtes, vous pouvez spécifier plusieurs noms d'initiateurs dans une liste séparée par des virgules. Pour plus d'informations, consultez la section vserver nvme subsystem host add
dans la NetApp documentation ONTAP. -
Vérifiez que l'espace de noms existe à l'aide de la vserver nvme namespace show
commande : ::>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. Utilisez la network interface show -vserver
commande pour récupérer les adresses des interfaces de stockage par blocs pour la SVM dans laquelle vous avez créé vos périphériques NVMe. ::>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.Note
Le
iscsi_1LIF est utilisé à la fois pour iSCSI et. NVMe/TCPDans cet exemple, l'adresse IP de iscsi_1 est 172.31.16.19 et iscsi_2 est 172.31.26.134.
Montez un périphérique NVMe sur votre client Linux
Le processus de montage du périphérique NVMe sur votre client Linux comporte trois étapes :
Découvrir les nœuds NVMe
Partitionnement du périphérique NVMe
Montage du périphérique NVMe sur le client
Ces questions sont abordées dans les procédures suivantes.
Pour découvrir les nœuds NVMe cibles
Sur votre client Linux, utilisez la commande suivante pour découvrir les nœuds NVMe cibles. Remplacez
pariscsi_1_IPiscsi_1l'adresse IP de etl'adresse IP du client.client_IPNote
iscsi_1et lesiscsi_2LIF sont utilisés à la fois pour le stockage iSCSI et NVMe.~$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-
(Facultatif) Pour transférer un débit supérieur au maximum de 5 Gbit/s (~ 625 Mbit/s) du client unique Amazon EC2 vers votre périphérique NVMe de fichiers, suivez les procédures décrites dans la section Bande passante réseau de l'instance Amazon EC2 du Guide de l'utilisateur Amazon Elastic Compute Cloud pour les instances Linux afin d'établir des sessions supplémentaires.
-
Connectez-vous aux initiateurs cibles avec un délai de perte du contrôleur d'au moins 1 800 secondes, en utilisant à nouveau
iscsi_1l'adresse IP deet l'adresse IP du client pour.iscsi_1_IPVos périphériques NVMe sont présentés comme des disques disponibles.client_IP~$sudo nvme connect-all -t tcp -wclient_IP-aiscsi_1-l 1800 Utilisez la commande suivante pour vérifier que la pile NVMe a identifié et fusionné les différentes sessions et configuré le multipathing. La commande est renvoyée
Ysi le multipathing NVMe natif est activé, ce qui est requis pour un basculement automatique et transparent entre vos serveurs de fichiers. Si la commande est renvoyéeNou si le fichier n'existe pas, cela signifie que le multipathing NVMe natif n'est pas activé sur votre noyau Linux et le basculement automatique entre vos serveurs de fichiers n'est pas disponible. Pour plus d'informations, consultez la note figurant dansAvant de commencer.~$cat /sys/module/nvme_core/parameters/multipathYUtilisez les commandes suivantes pour vérifier que le NVMe-oF paramètre
modelest défini surNetApp ONTAP Controlleret que l'équilibrage de chargeiopolicyest défini surround-robinpour les ONTAP espaces de noms respectifs afin de les distribuer I/O sur tous les chemins disponibles~$cat /sys/class/nvme-subsystem/nvme-subsys*/modelAmazon Elastic Block Store NetApp ONTAP Controller~$cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicynuma round-robinUtilisez la commande suivante pour vérifier que les espaces de noms sont créés et correctement découverts sur l'hôte :
~$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 FFFFFFFFLe nouvel appareil dans la sortie est
/dev/nvme2n1. Ce schéma de dénomination peut varier en fonction de votre installation Linux.Vérifiez que l'état du contrôleur de chaque chemin est actif et que le statut de multiacheminement ANA (Asymmetric Namespace Access) est correct :
~$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 optimizedDans cet exemple, la pile NVMe a automatiquement découvert le LIF alternatif de votre système de fichiers
iscsi_2, 172.31.26.134.-
Vérifiez que le NetApp plug-in affiche les valeurs correctes pour chaque périphérique d'ONTAPespace de noms :
~$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
Pour partitionner l'appareil
-
Utilisez la commande suivante pour vérifier que le chemin d'accès à votre device_name
nvme2n1est présent.~$ls /dev/nvme2n1/dev/nvme2n1 Partitionnez le disque à l'aide de
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 à celle du dernier secteur (20971519dans cet exemple).Note
La
Last sectorvaleur varie en fonction de la taille de votre périphérique NVMe (100 Go dans cet exemple).~$sudo fdisk /dev/nvme2n1L'invite
fsdiskinteractive 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):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.Après avoir saisi
w, votre nouvelle partition/dev/nvme2n1est disponible.partition_nameIl a le format<device_name><partition_number>.1a été utilisé comme numéro de partition dans lafdiskcommande de l'étape précédente.-
Créez votre système de fichiers en utilisant
/dev/nvme2n1comme chemin.~$sudo mkfs.ext4 /dev/nvme2n1Le système répond avec la sortie suivante :
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
Pour monter le périphérique NVMe sur le client Linux
-
Créez un répertoire
directory_pathcomme point de montage pour votre système de fichiers sur l'instance Linux.~$sudo mkdir /directory_path/mount_point -
Montez le système de fichiers à l'aide de la commande suivante.
~$sudo mount -t ext4 /dev/nvme2n1 /directory_path/mount_point -
(Facultatif) Si vous souhaitez attribuer à un utilisateur spécifique la propriété du répertoire de montage, remplacez-le
par le nom d'utilisateur du propriétaire.username~$sudo chownusername:username/directory_path/mount_point -
(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~$catdirectory_path/HelloWorld.txtHello world!Vous avez créé et monté avec succès un périphérique NVMe sur votre client Linux.