Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Create and access a list of your products

NVMe in RHEL7

Summary: NVM Express [NVMe], o NVMHCI (Non-Volatile Memory Host Controller Interface Specification), è una specifica per l'accesso a unità SSD

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

Che cosa si intende per NVMe?

NVM Express [NVMe], o NVMHCI (Non-Volatile Memory Host Controller Interface Specification), è una specifica per l'accesso a unità SSD (Solid-State Drive) collegate tramite il bus PCI Express (PCIe). L'acronimo NVM utilizzato nelle unità SSD sta per non-volatile memory, ovvero memoria non volatile.  La specifica NVMe definisce un'interfaccia di registrazione ottimizzata, un set di comandi e un set di funzionalità per le unità SSD PCIe. NVMe nasce con l'obiettivo di standardizzare le unità SSD PCIe e migliorarne le prestazioni

Le unità SSD PCIe progettate in base alla specifica NVMe sono SSD PCIe basate su NVMe. Per maggiori dettagli su NVMe, consultare il link http://www.nvmexpress.org/. I dispositivi NVMe utilizzati attualmente sono conformi a NVMe 1.0c

Di seguito parleremo del supporto dei dispositivi NVMe in RHEL 7.

Cause

Le informazioni di nessuna causa sono disponibili.

Resolution

NOTA: Attualmente DELL supporta i dispositivi NVMe con driver RHEL 7 integrato [in base al fornitore]

Questo l'elenco degli argomenti trattati:


 

NVMe: funzionalità supportate

Il driver NVMe presenta le seguenti funzionalità

  • Operazioni I/O di base
  • Hot-plug
  • Supporto dell'avvio [UEFI e legacy]

La seguente tabella elenca le funzionalità supportate dal driver RHEL 7 [integrato] per NVMe su macchine di dodicesima (12G) e tredicesima generazione (13G)

 
Generazione Operazioni I/O di base Hot-plug Avvio UEFI Avvio legacy
13G No
12G No No
Tabella 1. Supporto di RHEL 7 driver


Dispositivo NVMe Elenco del device e delle relative funzionalità

1) elencare le informazioni sul sistema operativo RHEL 7

[root@localhost ~] # uname-a

Linux localhost. localdomain 3.10.0-123.El7.x86_64 #1 SMP lun maggio 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux

2) ottenere i dettagli del dispositivo utilizzando l'utility lspci

a) supportiamo le unità NVMe basate su Samsung. Per prima cosa, ottenere l'ID slot PCI utilizzando il seguente comando

[root@localhost ~] # lspci | grep-i Samsung

45:00.0 controller di memoria non volatile: Samsung Electronics Co Ltd NVMe SSD controller 171X (rev 03)

47:00.0 controller di memoria non volatile: Samsung Electronics Co Ltd NVMe SSD controller 171X (rev 03)

b) l'ID slot sarà elencato come mostrato nella seguente [fig 1]. Qui "45:00.0" e "47:00.0" indicano gli slot a cui sono collegate le unità.  lspci elencando l'ID slot

a) utilizzare l'ID slot e utilizzare le seguenti opzioni di lspci per ottenere i dettagli del device, le funzionalità e il driver corrispondente

[root@localhost ~] # lspci-s 45:00.0-v

45:00.0 controller di memoria non volatile: Samsung Electronics Co Ltd NVMe SSD controller 171X (rev 03) (PROG-if 02)

sottosistema: Dell slot fisici NVMe XS1715 SSD Express Flash

: 25

flag: bus master, Fast DEVSEL, latenza 0, IRQ 76

memoria a d47fc000 (64 bit, non prelettura) [size = 16K]

funzionalità: Capabilities: [c0] Power Management version 3 C8 MSI Enable-Count = 1/32 maskable + 64bit +

funzionalità: E0 MSI-X: Enable + count = 129 Masked-

funzionalità: Capabilities: [70] Express Endpoint, MSI 00 [40] informazioni specifiche del vendor: Len = 24 <?

funzionalità >: Capabilities: [100] Advanced Error Reporting [180] #19

funzionalità: [150] informazioni specifiche del vendor: ID = 0001 Rev = 1 Len = 02C <? >

driver del kernel in uso: nVMe


il seguente [fig 2] Mostra il dispositivo Samsung nVMe e i dettagli del dispositivo elencati. Mostra anche il nome del driver ' nVMe ' in questo caso per questo dispositivo

SLN312382_en_US__3i-2_png-550x0
Figura 2: lspci elenco nVMe dettagli dispositivo

Controllo di MaxPayLoad

I seguenti comandi consentono di controllare il valore di MaxPayLoad. Deve essere impostato su 256 byte [fig. 3]

[root@localhost Home] # lspci | grep-i Samsung

45:00.0 controller di memoria non volatile: Samsung Electronics Co Ltd NVMe SSD controller 171X (rev 03)

[root@localhost Home] # lspci-VVV-s 45:00.0

SLN312382_en_US__4i-4_png-550x0
Figura 3: MaxPayLoad impostato su 256 byte


Driver NVMe  Elencare le informazioni sul driver

1) utilizzare il comando modinfo per elencare i dettagli del Diver

[root@localhost ~] # modinfo nVMe

nomefile:       filename:     /lib/modules/3.10.0-123.el7.x86_64/extra/nvme/nvme.ko        0,8-licenza di dell 1.17

:        

Autore GPL:         Samsung Electronics Corporation

srcVersion:    

Alias AB81DD9D63DD5DADDED9253:          PCI: v0000144Dd0000A820sv * SD * BC * SC * i *

dipende:       

vermagic:       vermagic:     3.10.0-123.el7.x86_64 SMP mod_unload modversions           nvme_major
: interno:
          use_threaded_interrupts: int

di seguito [fig 4] Mostra i dettagli del driver NVMe NVMe. Ko

SLN312382_en_US__5i-5_png-550x0
Figura 4: Visualizzazione delle informazioni sul driver con modinfo 
 

Nodo del dispositivo NVMe e convenzioni di denominazione

1) cat/proc/partitions Visualizza il nodo Device di nVMe.

a) l'esecuzione del comando seguente elenca il device nVMe come nvme0n1 e nvme1n1

[root@localhost ~] # cat/proc/partitions

major minor #blocks nome

259 0 781412184 nvme0n1

8 0 1952448512 SDA

8 1 512000 sda1

8 2 1951935488 sda2

11 0 1048575 SR0

253 0 52428800 DM-0

253 1 16523264 DM-1

253 2 1882980352 DM-2

259 3 390711384 nvme1n1

partizione del dispositivo utilizzando gli strumenti di partizionamento (fdisk, parted)

b) che esegue nuovamente il seguente comando, elenca il device nVMe insieme alle partizioni

[root@localhost ~] # cat/proc/partitions

major minor #blocks Name

259 0 781412184 nvme0n1

259 1 390705068 nvme0n1p1

259 2 390706008 nvme0n1p2

8 0 1952448512 SDA

8 1 512000 sda1

8 2 1951935488 sda2

11 0 1048575 SR0

253 0 52428800 DM-0

253 1 16523264 DM-1

253 2 1882980352 DM-2

259 3 390711384 nvme1n1

259 4 195354668 nvme1n1p1

259 5 195354712 nvme1n1p2 
 

Convenzioni di denominazione:

Nella seguente figura [Fig. 5] viene spiegata la convenzione di denominazione dei nodi di dispositivi 

Il numero subito dopo la stringa "nvme" indica il numero del dispositivo

Esempio:

nvme0n1: in questo caso il numero del dispositivo è 0

Le partizioni vengono aggiunte dopo il nome del dispositivo con il prefisso 'p' 

Esempio:

nvme0n1p1: partizione 1

nvme1n1p2: partizione 2 

Esempio:

nvme0n1p1: partizione 1 del dispositivo 0

nvme0n1p2: partizione 2 del dispositivo 0

nvme1n1p1: partizione 1 del dispositivo 1

nvme1n1p2: partizione 2 del dispositivo 1 Convenzioni di denominazione del nodo del dispositivo


Formattazione con xfs e montaggio del dispositivo

1) il seguente comando Formatta la partizione 1 nVMe sul Device 1 in XFS

[root@localhost ~] # mkfs. xfs/dev/nvme1n1p1

meta-data =/dev/nvme1n1p1 iSize = 256 agcount = 4, agsize = 12209667 BLKS

= sectsz = 512 attr = 2, projid32bit = 1

= CRC = 0

Data = bsize = 4096 Blocks = 48838667, imaxpct = 25

= = 0 sWidth = 0 BLKS

Naming = versione 2 bsize = 4096 ASCII-ci = 0 ftype = 0

log = registro interno bsize = 4096 Blocks = 23847, Version = 2

= sectsz = 512 = 0 blks, Lazy-Count = 1

realtime = None extsz = 4096 Blocks = 0, rtextents = 0

2) montare il dispositivo su un punto di montaggio e elencare lo stesso

[root@localhost ~] # mount/dev/nvme1n1p1/mnt/

[root@localhost ~] # Mount | grep-i nVMe

/dev/nvme1n1p1 su/mnt Type XFS (RW, relatime, seclabel, attr2, inode64, noquote,

utilizzando l'utility ledmon per gestire i LED del backplane per nVMe Device ledmon

e ledctl sono due utility per Linux che possono essere utilizzate per controllare lo stato dei LED sui backplane delle unità.  Normalmente i LED del backplane dell'unità sono controllati da un controller RAID hardware (PERC), ma quando si utilizza software RAID on Linux (mdadm) per NVMe PCIE SSD, il daemon ledmon monitorerà lo stato dell'array di unità e aggiornerà lo stato dei LED delle unità.

Per ulteriori letture, consultare il link https://www.dell.com/support/article/SLN310523/



Installazione e uso dell'utilità ledmon/ledctl

1) installazione di OpenIPMI e ledmon/ledctl Utilities:

eseguire i seguenti comandi per installare OpenIPMI e ledmon

[root@localhost ~] # yum install OpenIPMI

[root@localhost ~] # yum install ledmon-0,79-3.EL7.x86_64. rpm

2) utilizzare le utility ledmod/ledctl

in cui è in corso simultaneamente ledctl e ledmon, ledmon eseguirà l'override delle impostazioni ledctl

a), avviare e verificare lo stato di IPMI, come mostrato nella [fig. 6], utilizzando il seguente comando

[root@localhost ~] # systemctl Start IPMI

SLN312382_en_US__7i-7_png-550x0
Figura 6: Avvio e stato di IPMI
 

a)      Avviare ledmon

[root@localhost ~]# ledmon

b)      La [Fig. 7] mostra lo stato dei LED di funzionamento del dispositivo dopo l'esecuzione di ledmon


SLN312382_en_US__8i-8_png-550x0
Figura 7. Stato LED dopo l'esecuzione di ledmon per lo stato di funzionamento del dispositivo (verde)

a) il comando riportato di seguito lampeggerà l'unità LED [sul nodo del dispositivo/dev/nvme0n1]

[root@localhost ~] # ledctl locate =/dev/nvme0n1 sotto il comando lampeggerà

entrambi i LED delle unità [sul nodo device/dev/nvme0n1 e/dev/nvme1n1]

[root@localhost ~] # ledctl locate = {/dev/nvme0n1/dev/nvme1n1}

e il seguente comando disattiverà il LED locate

[root@localhost ~] # ledctl locate_off =/dev/nvme0n1

Affected Products

Servers
Article Properties
Article Number: 000137207
Article Type: Solution
Last Modified: 06 Apr 2021
Version:  3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.