Accesso ai volumi NVMe per un target E-Series dall'host - Linux (NVMe su RoCE)
È possibile configurare l'i/o diretto alla destinazione del dispositivo in base al sistema operativo in uso (e al metodo multipathing interno).
Per RHEL 9, RHEL 10, SLES 15 e SLES 16 una soluzione di multipathing NVMe nativa gestisce i percorsi fisici sottostanti al singolo dispositivo NVMe apparente visualizzato dall'host. Pertanto, indirizziamo l'I/O direttamente al dispositivo NVMe dell'host anziché a un dispositivo multipath come SCSI-based Device Mapper Multipath (DMMP). Le posizioni dei dispositivi NVMe sono dettagliate di seguito.
I dispositivi NVMe sono target di I/O
-
Immettere il seguente comando per individuare i volumi mappati su questo host da un array E-Series.
Il seguente comando fornisce la posizione di basso livello del dispositivo NVMe sul tuo host, il nome dell'array a cui è mappato il dispositivo, il nome del volume, l'NSID, l'ID univoco del volume, il controller proprietario corrente e la dimensione del volume.
# nvme netapp smdevices /dev/nvme0n1, Array Name creG63-FN, Volume Name 1, NSID 1, Volume ID 00001b7f606ec75100a0980000ed289e, Controller B, 1.10TB /dev/nvme0n2, Array Name creG63-FN, Volume Name 2, NSID 2, Volume ID 0000128a6a0d045500a0980000ed27f4, Controller A, 536.87GB /dev/nvme0n3, Array Name creG63-FN, Volume Name 3, NSID 3, Volume ID 00001b81606ec75b00a0980000ed289e, Controller B, 536.87GB /dev/nvme0n4, Array Name creG63-FN, Volume Name 4, NSID 4, Volume ID 0000128c6a0d045700a0980000ed27f4, Controller A, 214.75GB
-
Eseguire I/O sui collegamenti in
/dev/disk/by-id/nvme-eui.[Volume ID#].I collegamenti in
/dev/disk/by-id/nvme-eui.[Volume ID#]sono deterministici e non cambieranno. Evitate di utilizzare la posizione del dispositivo NVMe di basso livello(/dev/nvme[subsys#]n[id#])poiché è soggetta a modifiche. Il collegamento tra queste due posizioni può essere trovato utilizzando il seguente comando:# ls /dev/disk/by-id/ -l lrwxrwxrwx 1 root root 13 May 19 15:07 nvme-eui.0000128a6a0d045500a0980000ed27f4 -> ../../nvme0n2 lrwxrwxrwx 1 root root 13 May 19 15:07 nvme-eui.0000128c6a0d045700a0980000ed27f4 -> ../../nvme0n4 lrwxrwxrwx 1 root root 13 May 19 15:07 nvme-eui.00001b7f606ec75100a0980000ed289e -> ../../nvme0n1 lrwxrwxrwx 1 root root 13 May 19 15:07 nvme-eui.00001b81606ec75b00a0980000ed289e -> ../../nvme0n3
-
Per visualizzare i percorsi verso i dispositivi NVMe, utilizzare il
nvme list-subsyscomando.Le operazioni di I/O eseguite `/dev/disk/by-id/nvme-eui.[uuid#]`verranno passate direttamente attraverso `/dev/nvme[subsys#]n[id#]``che ha tutti i percorsi virtualizzati al di sotto di esso utilizzando la soluzione di multipathing NVMe nativa.
# nvme list-subsys /dev/nvme0n1 nvme-subsys0 - NQN=nqn.1992-08.com.netapp:EF80.600a098000ed28cb0000000062b24855 hostnqn=nqn.2014-08.org.nvmexpress:uuid:5257c202-9d94-ea11-b761-00000000003c \ +- nvme0 tcp traddr=10.10.10.101,trsvcid=4420,src_addr=10.10.10.100 live non-optimized +- nvme1 tcp traddr=10.10.10.11,trsvcid=4420,src_addr=10.10.10.100 live non-optimized +- nvme2 tcp traddr=10.10.20.201,trsvcid=4420,src_addr=10.10.20.200 live optimized +- nvme3 tcp traddr=10.10.20.21,trsvcid=4420,src_addr=10.10.20.200 live optimized +- nvme4 tcp traddr=10.10.20.39,trsvcid=4420,src_addr=10.10.20.200 live non-optimized +- nvme5 tcp traddr=10.10.20.31,trsvcid=4420,src_addr=10.10.20.200 live non-optimized +- nvme6 tcp traddr=10.10.10.49,trsvcid=4420,src_addr=10.10.10.100 live optimized +- nvme7 tcp traddr=10.10.10.41,trsvcid=4420,src_addr=10.10.10.100 live optimized -
Facoltativo - Per visualizzare le informazioni sul percorso per il failover nativo tramite i comandi legacy Device Mapper Multipath (DMMP), utilizzare il comando
multipath -ll.#multipath -ll
Per visualizzare le informazioni sul percorso tramite i comandi DMMP legacy, è necessario impostare quanto segue nel /etc/multipath.conffile:defaults { enable_foreign nvme }Esempio di output
eui.0000a0335c05d57a00a0980000a5229d [nvme]:nvme0n9 NVMe,Netapp E- Series,08520001 size=4194304 features='n/a' hwhandler='ANA' wp=rw |-+- policy='n/a' prio=50 status=optimized | `- 0:0:1 nvme0c0n1 0:0 n/a optimized live `-+- policy='n/a' prio-10 status=non-optimized `- 0:1:1 nvme0c1n1 0:0 n/a non-optimized live
Questo comando funziona solo su RHEL 9 o versioni precedenti e SLES 16 o versioni precedenti.
Con l'I/O in esecuzione sui dispositivi NVMe, "creare i filesystem".