View a markdown version of this page

Provisioning NVMe/TCP per Linux - FSx per ONTAP

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Provisioning NVMe/TCP per Linux

FSx for ONTAP supporta il protocollo di storage a blocchi Non-Volatile Memory Express over TCP (NVMe/TCP). Con NVMe/TCP, si utilizza la ONTAP CLI per eseguire il provisioning di namespace e sottosistemi e quindi mappare gli spazi dei nomi ai sottosistemi, in modo simile al modo in cui i LUN vengono assegnati e mappati ai gruppi di iniziatori (igroup) per iSCSI. Il NVMe/TCP protocollo è disponibile sui file system di seconda generazione con 6 o meno coppie ad alta disponibilità (HA). Gestione delle coppie ad alta disponibilità (HA)

Nota

I file system FSx for ONTAP utilizzano gli endpoint iSCSI di un SVM sia per i protocolli iSCSI che per i protocolli di storage a blocchi. NVMe/TCP

Il processo di configurazione NVMe/TCP su Amazon FSx for NetApp ONTAP prevede tre passaggi principali, descritti nelle seguenti procedure:

  1. Installa e configura il client NVMe sull'host Linux.

  2. Configura NVMe sull'SVM del file system.

    • Crea uno spazio dei nomi NVMe.

    • Crea un sottosistema NVMe.

    • Mappa lo spazio dei nomi sul sottosistema.

    • Aggiungi il NQN del client al sottosistema.

  3. Monta un dispositivo NVMe sul client Linux.

Prima di iniziare

Prima di iniziare il processo di configurazione del file system per NVMe/TCP, è necessario completare i seguenti elementi.

  • Crea un file system FSx per ONTAP. Per ulteriori informazioni, consulta Creazione dei file system.

  • Crea un'istanza EC2 che esegue Red Hat Enterprise Linux (RHEL) 9.3 nello stesso VPC del file system. Questo è l'host Linux su cui configurerai NVMe e accederai ai dati dei tuoi file utilizzando Linux. NVMe/TCP

    Oltre all'ambito di queste procedure, se l'host si trova in un altro VPC, è possibile utilizzare il peering VPC o concedere AWS Transit Gateway ad altri VPC l'accesso agli endpoint iSCSI del volume. Per ulteriori informazioni, consulta Accesso ai dati dall'esterno del VPC di implementazione.

  • Configura i gruppi di sicurezza VPC dell'host Linux per consentire il traffico in entrata e in uscita come descritto in. Controllo degli accessi ai file system con Amazon VPC

  • Ottieni le credenziali per l'ONTAPutente con fsxadmin i privilegi che utilizzerai per accedere alla CLI. ONTAP Per ulteriori informazioni, consulta CON UN TOCCO ruoli e utenti.

  • L'host Linux che configurerai per NVMe e utilizzerai per accedere al file system FSx for ONTAP si trova nello stesso VPC e. Account AWS

  • È consigliabile che l'istanza EC2 si trovi nella stessa zona di disponibilità della sottorete preferita del file system.

Se la tua istanza EC2 esegue un'AMI Linux diversa da RHEL 9.3, alcune delle utilità utilizzate in queste procedure ed esempi potrebbero essere già installate e potresti utilizzare comandi diversi per installare i pacchetti richiesti. Oltre all'installazione dei pacchetti, i comandi usati in questa sezione sono validi per altre AMI Linux EC2.

Nota

Il failover automatico tra i file server NVMe/TCP si basa sul multipathing nativo NVMe, abilitato per impostazione predefinita su RHEL 9.3. Alcune altre distribuzioni e AMI Linux non abilitano il multipathing nativo NVMe per impostazione predefinita, nel qual caso il failover automatico tra i file server non è disponibile. Consulta la documentazione della tua distribuzione per confermare il supporto per il multipathing NVMe nativo e i passaggi per abilitarlo.

Installa e configura NVMe sull'host Linux

Per installare il client NVMe
  1. Connettiti alla tua istanza Linux usando un client SSH. Per maggiori informazioni, consulta Connessione alla tua istanza Linux da Linux o macOS tramite SSH.

  2. Installa nvme-cli utilizzando il seguente comando:

    ~$ sudo yum install -y nvme-cli
  3. Carica il nvme-tcp modulo sull'host:

    $ sudo modprobe nvme-tcp
  4. Ottieni il nome qualificato NVMe (NQN) dell'host Linux utilizzando il seguente comando:

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

    Registra la risposta per utilizzarla in una fase successiva.

Configurare NVMe sul file system FSx for ONTAP

Per configurare NVMe sul file system

Connettiti all' NetApp ONTAP CLI sul file system FSx for ONTAP su cui intendi creare i dispositivi NVMe.

  1. Per accedere alla ONTAP CLI, stabilisci una sessione SSH sulla porta di gestione del file system Amazon FSx for NetApp ONTAP o SVM eseguendo il seguente comando. Sostituisci management_endpoint_ip con l'indirizzo IP della porta di gestione del file system.

    [~]$ ssh fsxadmin@management_endpoint_ip

    Per ulteriori informazioni, consulta Gestione dei file system con ONTAP CLI.

  2. Create un nuovo volume sull'SVM che state utilizzando per accedere all'interfaccia NVMe.

    ::> vol create -vserver fsx -volume nvme_vol1 -aggregate aggr1 -size 1t [Job 597] Job succeeded: Successful
  3. Create il namespace NVMe utilizzando il comando ONTAP CLIns_1. vserver nvme namespace create NetApp Uno spazio dei nomi viene mappato agli iniziatori (client) e controlla quali iniziatori (client) hanno accesso ai dispositivi 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. Crea il sottosistema NVMe utilizzando il comando ONTAP CLI. vserver nvme subsystem create NetApp

    ~$ vserver nvme subsystem create -vserver fsx -subsystem sub_1 -ostype linux
  5. Associa il namespace al sottosistema appena creato.

    ::> vserver nvme subsystem map add -vserver fsx -subsystem sub_1 -path /vol/nvme_vol1/ns_1
  6. Aggiungete il client al sottosistema utilizzando il NQN recuperato in precedenza.

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

    Se si desidera rendere disponibili i dispositivi mappati a questo sottosistema a più host, è possibile specificare più nomi di iniziatori in un elenco separato da virgole. Per ulteriori informazioni, vedere vserver nvme subsystem host add nei documenti ONTAP. NetApp

  7. Conferma che il namespace esista usando il comando: 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. Utilizzate il network interface show -vserver comando per recuperare gli indirizzi delle interfacce di storage a blocchi per l'SVM in cui avete creato i dispositivi NVMe.

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

    Il iscsi_1 LIF viene utilizzato sia per iSCSI che. NVMe/TCP

    In questo esempio, l'indirizzo IP di iscsi_1 è 172.31.16.19 e iscsi_2 è 172.31.26.134.

Monta un dispositivo NVMe sul tuo client Linux

Il processo di montaggio del dispositivo NVMe sul client Linux prevede tre passaggi:

  1. Alla scoperta dei nodi NVMe

  2. Partizionamento del dispositivo NVMe

  3. Montaggio del dispositivo NVMe sul client

Questi sono trattati nelle seguenti procedure.

Per scoprire i nodi NVMe di destinazione
  1. Sul tuo client Linux, usa il seguente comando per scoprire i nodi NVMe di destinazione. Sostituisci iscsi_1_IP con iscsi_1 l'indirizzo IP e client_IP l'indirizzo IP del client.

    Nota

    iscsi_1e iscsi_2 i LIF vengono utilizzati sia per lo storage iSCSI che per quello NVMe.

    ~$ 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. (Facoltativo) Per ottenere un throughput più elevato rispetto al massimo di 5 Gbps (~625 MBps) del dispositivo NVMe a file, segui le procedure descritte nella larghezza di banda di rete delle istanze di Amazon EC2 nella Amazon Elastic Compute Cloud User Guide for Linux Instances per stabilire sessioni aggiuntive.

  3. Accedere agli iniziatori di destinazione con un timeout di perdita del controller di almeno 1800 secondi, utilizzando nuovamente l'indirizzo IP iscsi_1 di iscsi_1_IP e l'indirizzo IP del client perclient_IP. I dispositivi NVMe vengono presentati come dischi disponibili.

    ~$ sudo nvme connect-all -t tcp -w client_IP -a iscsi_1 -l 1800
  4. Utilizzate il seguente comando per verificare che lo stack NVMe abbia identificato e unito le sessioni multiple e configurato il multipathing. Il comando restituisce Y se il multipathing NVMe nativo è abilitato, il che è necessario per il failover automatico e trasparente tra i file server. Se il comando ritorna N o il file non esiste, nel kernel Linux non è abilitato il multipathing NVMe nativo e il failover automatico tra i file server non è disponibile. Per ulteriori informazioni, vedere la nota in. Prima di iniziare

    ~$ cat /sys/module/nvme_core/parameters/multipath Y
  5. Utilizzate i seguenti comandi per verificare che l' NVMe-oF impostazione model sia impostata su NetApp ONTAP Controller e che il bilanciamento del carico iopolicy sia impostato su tutti i percorsi disponibili round-robin per ONTAP i rispettivi namespace I/O

    ~$ 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. Utilizzate il comando seguente per verificare che i namespace siano stati creati e scoperti correttamente sull'host:

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

    Il nuovo dispositivo nell'output è. /dev/nvme2n1 Questo schema di denominazione può variare a seconda dell'installazione di Linux.

  7. Verifica che lo stato del controller di ciascun percorso sia attivo e abbia lo stato di multipathing Asymmetric Namespace Access (ANA) corretto:

    ~$ 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 questo esempio, lo stack NVMe ha rilevato automaticamente il LIF alternativo del file system, 172.31.26.134. iscsi_2

  8. Verificate che il NetApp plug-in visualizzi i valori corretti per ogni dispositivo namespace: 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
Per partizionare il dispositivo
  1. Usa il comando seguente per verificare che il percorso del tuo device_name nvme2n1 sia presente.

    ~$ ls /dev/nvme2n1 /dev/nvme2n1
  2. Partiziona il disco usando. fdisk Inserirai un prompt interattivo. Inserisci le opzioni nell'ordine mostrato. È possibile creare più partizioni utilizzando un valore inferiore all'ultimo settore (20971519in questo esempio).

    Nota

    Il Last sector valore varierà in base alle dimensioni del dispositivo NVMe (100 GiB in questo esempio).

    ~$ sudo fdisk /dev/nvme2n1

    Viene avviato il prompt fsdisk interattivo.

    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.

    Dopo l'accessow, la nuova partizione /dev/nvme2n1 diventa disponibile. partition_nameHa il formato. <device_name> <partition_number> 1è stato utilizzato come numero di partizione nel fdisk comando del passaggio precedente.

  3. Crea il tuo file system usando /dev/nvme2n1 come percorso.

    ~$ sudo mkfs.ext4 /dev/nvme2n1

    Il sistema risponde con il seguente output:

    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
Per montare il dispositivo NVMe sul client Linux
  1. Crea una directory directory_path come punto di montaggio per il tuo file system sull'istanza Linux.

    ~$ sudo mkdir /directory_path/mount_point
  2. Monta il file system usando il seguente comando.

    ~$ sudo mount -t ext4 /dev/nvme2n1 /directory_path/mount_point
  3. (Facoltativo) Se desideri assegnare a un utente specifico la proprietà della directory di montaggio, sostituiscila username con il nome utente del proprietario.

    ~$ sudo chown username:username /directory_path/mount_point
  4. (Facoltativo) Verificate di poter leggere e scrivere dati nel file system.

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

    Hai creato e montato correttamente un dispositivo NVMe sul tuo client Linux.