Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

NVMe sur RHEL7

Summary: NVM Express (NVMe) ou Non-Volatile Memory Host Controller Interface (NVMHCI) est une spécification permettant à un ordinateur d’accéder aux disques SSD.

This article may have been automatically translated. If you have any feedback regarding its quality, please let us know using the form at the bottom of this page.

Article Content


Symptoms

Qu’est-ce que le NVMe ?

NVM Express (NVMe) ou Non-Volatile Memory Host Controller Interface (NVMHCI) est une spécification permettant à un ordinateur d’accéder aux disques SSD (Solid State Drive) connectés via le bus PCI Express (PCIe). NVM est l’acronyme de non-volatile memory (mémoire non volatile), la mémoire utilisée dans les disques SSD.  La spécification NVMe définit une interface de registre optimisée, un ensemble de commandes et un ensemble de fonctionnalités pour les disques SSD PCIe. Elle a été conçue pour normaliser les SSD PCIe et améliorer leurs performances.

Les appareils SSD PCIe conçus sur la base de la spécification NVMe sont des SSD PCIe NVMe. Pour plus d’informations sur la spécification NVMe, consultez la page http://www.nvmexpress.org/. Les appareils NVMe utilisés actuellement sont compatibles avec la spécification NVMe 1.0c.

Nous traitons ci-dessous de la prise en charge des appareils NVMe dans RHEL 7.

Cause

Aucune information sur les raisons n’est disponible.

Resolution

Remarque : Actuellement, DELL prend en charge les appareils NVMe avec le pilote RHEL 7 OOB [pilote du fournisseur].

Voici la liste des éléments abordés :


 

NVMe : fonctionnalités prises en charge

Le pilote NVMe permet de bénéficier des fonctionnalités suivantes :

  • Opérations d’E/S de base
  • Enfichage à chaud
  • Prise en charge du démarrage [UEFI et hérité]

Le tableau suivant répertorie les fonctionnalités prises en charge par le pilote RHEL 7 (OOB) pour la spécification NVMe sur les machines 12G et 13G.

 
Génération Basic IO Enfichage à chaud Démarrage en mode UEFI Démarrage en mode hérité
13 G Oui Oui Oui Aucune
12 G Oui Oui Aucune Aucune
Tableau 1 : Prise en charge des pilotes RHEL 7


Périphérique NVMe Recensement du périphérique et de ses fonctions

1) répertoriez les informations RHEL 7 OS

[root@localhost ~] # uname-a

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

2) obtenir les détails du périphérique à l’aide de l’utilitaire lspci

a) que nous prenons en charge des lecteurs NVMe basés sur Samsung. Commencez par obtenir l’ID de logement PCI à l’aide de la commande suivante

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

45 : contrôleur de mémoire non volatile 00.0 : Contrôleur SSD Samsung Electronics Co Ltd NVMe 171X (rév. 03)

47:00.0 non volatile contrôleur de mémoire : Samsung Electronics Co S.a. contrôleur SSD NVMe 171X (rév. 03)

b) l’ID de logement est répertorié comme indiqué dans la figure ci-dessous [Fig. 1]. Dans cet exemple, « 45:00.0 » et « 47:00.0 » sont les emplacements sur lesquels les disques sont connectés.  lspci répertoriant l’ID

de logement a, utilisez l’ID de logement et utilisez les options lspci suivantes pour obtenir les détails du périphérique, les fonctionnalités et le pilote correspondant

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

45:00.0 contrôleur de mémoire non volatile :
Sous-système Samsung Electronics Co Ltd NVME SSD 171X (rév. 03) (Prog-if 02)
: Emplacement physique Dell Express Flash NVMe XS1715 SSD 800 Go

: 25

Balises : Bus Master, Fast devsel, latence 0, IRQ 76

Memory at d47fc000 (64-bit, non-fetchable) [size = 16k]

Capacity : Capabilities: [c0] Power Management version 3 C8 MSI Enable-Count = 1/32 MASKABLE + 64 bits +

capacité : E0 MSI-X : Enable + Count = 129 Masked-

Capacity : Capabilities: [70] Express Endpoint, MSI 00 [40] informations spécifiques au fournisseur : NBCAR = 24 <? >

fonctionnalités : Capabilities: [100] Advanced Error Reporting [180] #19

fonctionnalités : [150] informations spécifiques au fournisseur : ID = 0001 rév. = 1 Len = 59c <? >

pilote de noyau en cours d’utilisation : nVMe


les versions ci-dessous [Fig. 2] affichent le périphérique nVMe nVMe et les détails du périphérique répertoriés. Il indique également le nom du pilote’nVMe’dans ce cas pour ce périphérique,

SLN312382_en_US__3i-2_png-550x0
figure 2 : lspci liste des détails du périphérique nVMe

Vérification de la charge utile maximum

Vérifiez la valeur de la charge utile maximum en exécutant les commandes suivantes. Il doit être défini sur 256 octets [Fig. 3]

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

45 : contrôleur de mémoire non volatile 00.0 : Samsung Electronics Co VAJ NVMe SSD contrôleur 171X (rév. 03)

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

SLN312382_en_US__4i-4_png-550x0
figure 3 : Charge utile maximum définie sur 256 octets


Pilote NVMe  Répertorier les informations sur les pilotes

1) utilisez la commande modinfo pour répertorier les informations Diver

[root@localhost ~] # modinfo nVMe

filename :       filename:     /lib/modules/3.10.0-123.el7.x86_64/extra/nvme/nvme.ko        0,8-licence Dell 1.17

:        

Auteur GPL :         Samsung Electronics Corporation

srcversion :    

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

dépend des éléments suivants :       

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

param :           use_threaded_interrupts : int

les informations ci-dessous [Fig. 4] affichent les détails du pilote nVMe. Ko,

SLN312382_en_US__5i-5_png-550x0
figure 4 : Modinfo répertoriant les informations relatives au pilote 
 

Nœud d’appareils NVMe et conventions de dénomination

1) cat/proc/partitions affiche le nœud du périphérique nVMe.

a) l’exécution de la commande suivante répertorie le périphérique nVMe en tant que nvme0n1 et nvme1n1

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

major minor #blocks name

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

partition du périphérique à l’aide de n’importe quel outil de partitionnement (fdisk, fait partie)

b) exécuter à nouveau la commande suivante : répertorie le périphérique nvme ainsi que les partitions

[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 
 

Conventions de dénomination :

La Figure 5 ci-dessous présente la convention de dénomination des nœuds d’appareils 

Le numéro qui suit immédiatement la chaîne « nvme » est le numéro de l’appareil.

Exemple :

nvme0n1 : ici, le numéro de périphérique est 0.

Les partitions sont ajoutées après le nom du périphérique, avec le préfixe « p » 

Exemple :

nvme0n1p1 : partition 1

nvme1n1p2 : partition 2 

Exemple :

nvme0n1p1 : partition 1 de l’appareil 0

nvme0n1p2 : partition 2 de l’appareil 0

nvme1n1p1 : partition 1 de l’appareil 1

nvme1n1p2 : partition 2 de l’appareil 1 Conventions de dénomination des nœuds d’appareils


Formatage avec xfs et montage de l’appareil

1) la commande suivante formate la partition nVMe 1 sur le périphérique 1 en 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

= sunit = 0 swidth = 0 blks

Naming = version 2 BSIZE = 4096 ASCII-ci = 0 ftype = 0

log = Internal log BSIZE = 4096 blocks = 23847, version = 2

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

Realtime = None extsz = 4096 blocks = 0, rtextents = 0

2) montez le périphérique à un point de montage et répertoriez les mêmes

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

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

/dev/nvme1n1p1 on type XFS (RW, relatime, seclabel, attr2, inode64, NoQuota)

à l’aide de l’utilitaire LEDMON pour gérer les voyants de fond de panier des périphériques nVMe

ledmon et ledctl sont deux utilitaires pour Linux qui peuvent être utilisés pour contrôler l’état des LED sur les fonds de panier de lecteur.  Normalement, les voyants du fond de panier de lecteur sont contrôlés par un contrôleur RAID matériel (PERC), mais lorsque vous utilisez le logiciel RAID sur Linux (mdadm) pour SSD PCIE NVMe, le processus ledmon surveille l’état de la matrice de disques et met à jour l’état des voyants du disque.

Pour des vérifications de lecture supplémentaires, le lien https://www.Dell.com/support/article/SLN310523/



Installation et utilisation de l’utilitaire ledmon/ledctl

1) installation des utilitaires OpenIPMI et ledmon/ledctl :

Exécutez les commandes suivantes pour installer OpenIPMI et ledmon

[root@localhost ~] # yum install OpenIPMI

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

2) Utilisez les utilitaires ledmod/ledctl

exécutant ledctl et ledmon simultanément, ledmon finira par remplacer les paramètres ledctl

a) et vérifiez l’état de l’IPMI, comme illustré dans la [Fig. 6] à l’aide de la commande suivante

[root@localhost ~] # systemctl Start IPMI

SLN312382_en_US__7i-7_png-550x0
figure 6 : Démarrage et état de l’IPMI
 

a)      Démarrez ledmod

[root@localhost ~]# ledmon

b)      La Figure 7 montre l’état de la LED après l’exécution de ledmon lorsque l’appareil fonctionne


SLN312382_en_US__8i-8_png-550x0
Figure 7 : État des VOYANTs après l’exécution de l’ledmon à l’état de fonctionnement du périphérique (vert)

a) la commande ci-dessous fait clignoter le voyant LED du lecteur [sur le nœud du périphérique/dev/nvme0n1]

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

ci-dessous clignote à la fois les voyants du lecteur [sur le nœud du périphérique/dev/nvme0n1 et/dev/nvme1n1]

[root@localhost ~] # ledctl Locate = {/dev/nvme0n1/dev/NVME1N1}

, la commande suivante désactive la LED Locate

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

Article Properties


Affected Product

Servers

Last Published Date

06 Apr 2021

Version

3

Article Type

Solution