ProvisioningNVMe/TCPper 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à.

ProvisioningNVMe/TCPper Linux

FSxper ONTAP supporta il protocollo di storage a blocchi Non-Volatile Memory Express over TCP (NVMe/TCP). ConNVMe/TCP, si usa ONTAP CLI per fornire namespace e sottosistemi e quindi mappare i namespace ai sottosistemi, in modo analogo al modo in cui LUNs vengono assegnati e mappati ai gruppi di iniziatori (igroup) per i. SCSI Il TCP protocolloNVMe/è disponibile sui file system di seconda generazione con 6 o meno coppie ad alta disponibilità (HA).

Nota

FSxper i ONTAP file system utilizza gli SCSI endpoint SVM an's i per i protocolli di storage a blocchi i SCSI eNVMe//TCP.

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

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

  2. Configura NVMe sul file systemSVM.

    • Crea un NVMe namespace.

    • Crea un sottosistemaNVMe.

    • Mappa lo spazio dei nomi sul sottosistema.

    • Aggiungere il client al sottosistemaNQN.

  3. Monta un NVMe dispositivo sul client Linux.

Prima di iniziare

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

  • Create un ONTAP file system FSx for. Per ulteriori informazioni, consulta Creazione di file system.

  • Crea un'EC2istanza che esegua Red Hat Enterprise Linux (RHEL) 9.3 nello VPC stesso file system. Questo è l'host Linux su cui configurerete NVMe e accederete ai dati dei file usandoNVMe/TCPper Linux.

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

  • Configura i gruppi di VPC sicurezza 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 privilegi che utilizzerai per accedere a. ONTAP CLI Per ulteriori informazioni, consulta ONTAP ruoli e utenti.

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

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

Se l'EC2istanza esegue un sistema Linux AMI diverso dalla RHEL 9.3, alcune delle utilità utilizzate in queste procedure ed esempi potrebbero essere già installate e potreste utilizzare comandi diversi per installare i pacchetti richiesti. Oltre all'installazione dei pacchetti, i comandi usati in questa sezione sono validi per altri EC2 sistemi Linux. AMIs

Installazione e configurazione NVMe sull'host Linux

Per installare il NVMe client
  1. Connect alla propria istanza Linux utilizzando un SSH client. Per ulteriori informazioni, consulta Connect alla tua istanza Linux da Linux o macOS utilizzando. 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. Ottenete il nome NVMe qualificato (NQN) dell'host Linux utilizzando il seguente comando:

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

    Registrate la risposta per utilizzarla in un passaggio successivo.

Configura NVMe sul ONTAP file system FSx for

Per configurare NVMe sul file system

Connect al ONTAP file system NetApp ONTAP CLI on the FSx for su cui intendi creare il/i NVMe dispositivo/i.

  1. Per accedere a NetApp ONTAPCLI, stabilisci una SSH sessione sulla porta di gestione di Amazon FSx for NetApp ONTAP file system eseguendo il comando seguente. 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 la ONTAP CLI.

  2. Crea un nuovo volume su SVM quello che stai utilizzando per accedere all'NVMeinterfaccia.

    ::> vol create -vserver fsx -volume nvme_vol1 -aggregate aggr1 -size 1t [Job 597] Job succeeded: Successful
  3. Crea lo spazio NVMe dei nomi ns_1 usando il vserver nvme namespace create NetApp ONTAPCLIcomando. Un namespace mappa gli 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 NVMe sottosistema utilizzando il comando. vserver nvme subsystem create NetApp ONTAPCLI

    ~$ vserver nvme subsystem create -vserver fsx -subsystem sub_1 -ostype linux
  5. Mappa lo spazio dei nomi sul sottosistema appena creato.

    ::> vserver nvme subsystem map add -vserver fsx -subsystem sub_1 -path /vol/nvme_vol1/ns_1
  6. Aggiungi il client al sottosistema utilizzando quello NQN che hai 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 i dispositivi mappati su questo sottosistema disponibili a più host, è possibile specificare più nomi di iniziatori in un elenco separato da virgole. Per ulteriori informazioni, consulta vserver nvme subsystem host add nei Documenti. NetApp ONTAP

  7. Conferma che lo spazio dei nomi 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. Usa il network interface show -vservercomando per recuperare gli indirizzi delle interfacce di archiviazione a blocchi per il dispositivo SVM in cui hai creato i tuoi 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

    Viene utilizzato iscsi_1 LIF sia per i SCSI che per/. NVMe TCP

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

NVMeMonta un dispositivo sul tuo client Linux

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

  1. Alla scoperta dei NVMe nodi

  2. Partizionamento del dispositivo NVMe

  3. Montaggio del NVMe dispositivo sul client

Queste sono trattate nelle seguenti procedure.

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

    Nota

    iscsi_1e iscsi_2 LIFs vengono utilizzati sia per l'i che per SCSI l'NVMearchiviazione.

    ~$ 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 GB/s (~625 MB/s) per il tuo NVMe dispositivo di file rispetto al client EC2 singolo Amazon, segui le procedure descritte nella sezione Larghezza di banda di rete delle EC2 istanze Amazon nella Amazon Elastic Compute Cloud User Guide for Linux Instances per stabilire sessioni aggiuntive.

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

    ~$ sudo nvme connect-all -t tcp -w client_IP -a iscsi_1 -l 1800
  4. Utilizzate il comando seguente per verificare che lo NVMe stack abbia identificato e unito le sessioni multiple e configurato il multipathing. Il comando restituisce Y se la configurazione ha avuto esito positivo.

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

    ~$ 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 vengano creati e rilevati 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 Linux in uso.

  7. Verifica che lo stato del controller di ogni percorso sia attivo e abbia lo stato di multipathing Asymmetric Namespace Access () corretto: 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

    In questo esempio, lo NVMe stack ha rilevato automaticamente l'alternativa del file system, 172.31.26.134. LIF iscsi_2

  8. Verifica che il NetApp plug-in visualizzi i valori corretti per ogni dispositivo del 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 sia presente il percorso del tuo device_namenvme2n1.

    ~$ ls /dev/mapper/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à a seconda delle dimensioni del NVMe dispositivo (100 GiB in questo esempio).

    ~$ sudo fdisk /dev/mapper/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. Il partition_name ha 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 utilizzando /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 NVMe dispositivo sul client Linux
  1. Creazione di una directory directory_path come punto di montaggio per il 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, sostituisci username con il nome utente del proprietario.

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

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

    Avete creato e montato con successo un NVMe dispositivo sul vostro client Linux.