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 no RHEL7

Summary: A especificação de interface do controlador de host de memória não volátil (NVMHCI) ou NVM Express [NVMe] é uma especificação para acessar unidades de estado sólido ...

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

O que é NVMe?

A especificação de interface do controlador de host de memória não volátil (NVMHCI) ou NVM Express [NVMe], é uma especificação para acessar as unidades estado sólido (SSDs) conectadas por meio do barramento PCI Express (PCIe). NVM é um acrônimo para memória não volátil, como usado em SSDs.  O NVMe define a interface de registro otimizada, o conjunto de comandos e o conjunto de recursos para SSDs PCIe. O NVMe concentra-se em padronizar as SSDs PCIe e melhorar o desempenho

Os dispositivos SSD PCIe projetados com base na especificação NVMe são PCIeSSD baseados em NVMe. Para obter mais detalhes sobre o NVMe, consulte o link http://www.nvmexpress.org/. Os dispositivos NVMe utilizados atualmente são compatíveis com NVMe 1.0c

A seguir, analisaremos a compatibilidade do RHEL 7 com os dispositivos NVMe.

Cause

Nenhuma informação sobre a causa está disponível.

Resolution

NOTA: Atualmente, a DELL oferece compatibilidade com os dispositivos NVMe com driver out of box RHEL 7 (baseados em fornecedor)

Veja a seguir a lista do que está sendo abordado:


 

NVMe - recursos compatíveis

O driver do NVMe expõe os seguintes recursos

  • Operações básicas de E/S
  • Hot-plug
  • Compatibilidade com inicialização [UEFI e preexistente]

A tabela a seguir lista os recursos compatíveis do driver RHEL 7 [out of Box] para NVMe em máquinas 12 G e 13 G

 
Geração E/S básica Hot-plug Inicialização do UEFI Inicialização de preexistente
13 G Sim Sim Sim Não
12 G Sim Sim Não Não
Tabela 1: Suporte a driver RHEL 7


NVMe device Listando o dispositivo e seus recursos

1) liste as informações do sistema operacional RHEL 7

[root@localhost ~] # uname-a

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

2) obter os detalhes do dispositivo usando o utilitário lspci

a) damos suporte a unidades NVMe baseadas em Samsung. Primeiro, obtenha o ID do slot PCI usando o seguinte comando

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

45:00.0 Non-Volatile Memory Controller: Samsung Electronics Co Ltd NVMe SSDs Controller 171X (Rev 03)

47:00.0 Non-Volatile Memory Controller: Samsung Electronics Co Ltd NVMe SSDs Controller 171X (Rev 03)

b) o ID do slot será listado como mostrado na seção abaixo [Figura 1]. Aqui "45:00.0" e "47:00.0" são os slots em que as unidades estão conectadas.  lspci listando o ID a do slot a

) Use o ID do slot e use as seguintes opções de lspci para obter os detalhes do dispositivo, as capacidades e o driver correspondente

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

45:00.0 não-volátil Memory Controller: Subsistema do Samsung Electronics Co Ltd NVMe SSDs Controller 171X (Rev 03) (PROG-se 02)

:
Slot físico 800 GB XS1715io de SSD flash NVMe Dell
25

indicadores: Bus Master, Fast devsel, latência 0, irq 76

Memory at d47fc000 (64 bits, non-prefetch) [size = 16K]

recursos: Recursos: [c0] Power Management versão 3 C8 MSI Enable — Count = 1/32 Mascarable + 64 bits +

recursos: E0 MSI-X: Habilitar + Count = 129 mascarados-

recursos: Recursos: [70] Express Endpoint, MSI 00 [40] informações específicas do fornecedor: Len = 24 <? >

recursos: Recursos: [100] Geração de relatórios de erros avançados [180] recursos de #19

: [150] informações específicas do fornecedor: ID = 0001 Rev = 1 Len = 02C <? >

Driver do kernel em uso: nvme


a seguir [Figura 2] mostra o dispositivo Samsung nvme e os detalhes do dispositivo listados. Ele mostra também o nome do driver ' nvme ' neste caso para este dispositivo

SLN312382_en_US__3i-2_png-550x0
Figura 2: lspci listando os detalhes do dispositivo nvme

Verificação do MaxPayLoad

Verifique o valor de MaxPayload executando os seguintes comandos. Ele deve defini-lo como 256 bytes [figura. 3]

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

45:00.0 Non-Volatile Memory Controller: Samsung Electronics Co Ltd NVMe SSDs Controller 171X (Rev 03)

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

SLN312382_en_US__4i-4_png-550x0
Figura 3: MaxPayload definido para 256 bytes


Driver do NVMe  Listar as informações do driver

1) Use o comando modinfo para listar os detalhes do Diver

[root@localhost ~] # modinfo nvme

filename:       nome do arquivo:     /lib/modules/3.10.0-123.el7.x86_64/extra/nvme/nvme.ko        0,8-licença do Dell 1,17

:        Autor da GPL

:         Samsung Electronics Corporation

srcVersion:     Alias do AB81DD9D63DD5DADDED9253

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

depende:       

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

Parm:           use_threaded_interrupts: int

a seção abaixo [Figura 4] mostra detalhes do driver nvme nvme. ko

SLN312382_en_US__5i-5_png-550x0
Figura 4: Informações do driver de listagem do modinfo 
 

Convenções de nomenclatura e nó de dispositivo NVMe

1) o cat/proc/partitions exibe o nó do dispositivo de nvme.

a) a execução do comando a seguir lista o dispositivo nvme como nvme0n1 e nvme1n1

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

principal menor #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

particionar o dispositivo usando as ferramentas de particionamento (fdisk, parte)

b) executando o comando a seguir novamente, lista o dispositivo nvme juntamente com as partições

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

maior secundário #blocks nome

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 
 

Convenções de nomenclatura:

A figura abaixo [Fig. 5] explica a convenção de nomenclatura dos nós de dispositivo 

O número logo após a cadeia de caracteres "nvme" é o número do dispositivo

Exemplo:

nvme0n1 – Aqui o número do dispositivo é 0

As partições são anexadas após o nome do dispositivo com o prefixo "p" 

Exemplo:

nvme0n1p1 – partição 1

nvme1n1p2 – partição 2 

Exemplo:

nvme0n1p1 – partição 1 do dispositivo 0

nvme0n1p2 – partição 2 do dispositivo 0

nvme1n1p1 – partição 1 do dispositivo 1

nvme1n1p2 – partição 2 do dispositivo 1 Convenções de nomenclatura de nó de dispositivo


Formatação com xfs e montagem do dispositivo

1) o comando a seguir formata a partição nvme 1 no dispositivo 1 para 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 = log interno bsize = 4096 Blocks = 23847, Version = 2

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

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

2) monte o dispositivo em um ponto de montagem e liste o mesmo

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

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

/dev/nvme1n1p1 no/mnt Type XFS (RW, relatime, seclabel, attr2, inode64, NoQuota)

usando o utilitário ledmon para gerenciar os LEDs do backplane para o dispositivo nvme

ledmon e ledctl são dois utilitários para Linux que podem ser usados para controlar o status do LED nos backplanes da unidade.  Normalmente, os LEDs de backplane de unidade são controlados por uma controladora de RAID de hardware (PERC), mas ao usar RAID de software no Linux (mdadm) para SSD PCIE NVMe, o daemon ledmon monitorará o status do array de unidade e atualizará o status dos LEDs da unidade.

Para leitura adicional, verifique o link https://www.Dell.com/support/article/SLN310523/



Instalar e usar o utilitário ledmon/ledctl

1) instalando utilitários OpenIPMI e ledmon/ledctl:

Execute os seguintes comandos para instalar OpenIPMI e ledmon

[root@localhost ~] # yum instalar OpenIPMI

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

2) usar os utilitários do ledmod/ledctl

que executam o ledctl e o ledmon simultaneamente, o ledmon eventualmente sobregravará as configurações de ledctl

a) iniciará e verificará o status do IPMI, conforme mostrado no [figura. 6] usando o seguinte comando

[root@localhost ~] # systemctl Start IPMI

SLN312382_en_US__7i-7_png-550x0
Figura 6: Início e status do IPMI
 

a)      Inicie o ledmod

[root@localhost ~]# ledmon

b)      [Fig. 7] mostra o status do LED após a execução do ledmon para o estado de funcionamento do dispositivo


SLN312382_en_US__8i-8_png-550x0
Figura 7: Status de LED após a execução do ledmon para o estado de funcionamento do dispositivo (verde)

a) o comando abaixo piscará o LED da unidade [no nó do dispositivo/dev/nvme0n1]

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

abaixo os LEDs da unidade [no nó do dispositivo/dev/nvme0n1 e/dev/nvme1n1]

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

e o comando a seguir desligará o LED de localização

[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.