Capítulo 13. Visión general de los dispositivos NVMe sobre tejido


Non-volatile Memory Express (NVMe) es una interfaz que permite a las utilidades de software del host comunicarse con las unidades de estado sólido.

Utilice los siguientes tipos de transporte de tejido para configurar NVMe sobre dispositivos de tejido:

Cuando se utiliza FC y RDMA, la unidad de estado sólido no tiene que estar localizada en el sistema; puede configurarse de forma remota a través de un controlador FC o RDMA.

13.1. NVMe sobre tejidos utilizando RDMA

En la configuración de NVMe/RDMA, se configura el objetivo NVMe y el iniciador NVMe.

Como administrador del sistema, complete las tareas de las siguientes secciones para desplegar el NVMe sobre tejidos utilizando RDMA (NVMe/RDMA):

13.1.1. Configuración de un objetivo NVMe/RDMA mediante configfs

Utilice este procedimiento para configurar un objetivo NVMe/RDMA utilizando configfs.

Requisitos previos

  • Verifique que tiene un dispositivo de bloque para asignar al subsistema nvmet.

Procedimiento

  1. Cree el subsistema nvmet-rdma:

    # modprobe nvmet-rdma
    
    # mkdir /sys/kernel/config/nvmet/subsystems/testnqn
    
    # cd /sys/kernel/config/nvmet/subsystems/testnqn
    Copy to Clipboard Toggle word wrap

    Sustituya testnqn por el nombre del subsistema.

  2. Permitir que cualquier host se conecte a este objetivo:

    # echo 1 > attr_allow_any_host
    Copy to Clipboard Toggle word wrap
  3. Configure un namespace:

    # mkdir namespaces/10
    
    # cd namespaces/10
    Copy to Clipboard Toggle word wrap

    Sustituya 10 por el número de espacio de nombres

  4. Establezca una ruta de acceso al dispositivo NVMe:

    #echo -n /dev/nvme0n1 > device_path
    Copy to Clipboard Toggle word wrap
  5. Habilitar el espacio de nombres:

    # echo 1 > enable
    Copy to Clipboard Toggle word wrap
  6. Cree un directorio con un puerto NVMe:

    # mkdir /sys/kernel/config/nvmet/ports/1
    
    # cd /sys/kernel/config/nvmet/ports/1
    Copy to Clipboard Toggle word wrap
  7. Muestra la dirección IP de mlx5_ib0:

    # ip addr show mlx5_ib0
    
    8: mlx5_ib0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 4092 qdisc mq state UP group default qlen 256
        link/infiniband 00:00:06:2f:fe:80:00:00:00:00:00:00:e4:1d:2d:03:00:e7:0f:f6 brd 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
        inet 172.31.0.202/24 brd 172.31.0.255 scope global noprefixroute mlx5_ib0
           valid_lft forever preferred_lft forever
        inet6 fe80::e61d:2d03:e7:ff6/64 scope link noprefixroute
           valid_lft forever preferred_lft forever
    Copy to Clipboard Toggle word wrap
  8. Establezca la dirección de transporte para el objetivo:

    # echo -n 172.31.0.202 > addr_traddr
    Copy to Clipboard Toggle word wrap
  9. Establezca RDMA como tipo de transporte:

    # echo rdma > addr_trtype
    
    # echo 4420 > addr_trsvcid
    Copy to Clipboard Toggle word wrap
  10. Establezca la familia de direcciones para el puerto:

    # echo ipv4 > addr_adrfam
    Copy to Clipboard Toggle word wrap
  11. Crear un enlace suave:

    # ln -s /sys/kernel/config/nvmet/subsystems/testnqn   /sys/kernel/config/nvmet/ports/1/subsystems/testnqn
    Copy to Clipboard Toggle word wrap

Pasos de verificación

  • Comprueba que el destino NVMe está escuchando en el puerto indicado y está preparado para recibir peticiones de conexión:

    # dmesg | grep "enabling port"
    [ 1091.413648] nvmet_rdma: enabling port 1 (172.31.0.202:4420)
    Copy to Clipboard Toggle word wrap

Recursos adicionales

  • La página de manual nvme.

13.1.2. Configuración del objetivo NVMe/RDMA mediante nvmetcli

Utilice el nvmetcli para editar, ver e iniciar el objetivo NVMe. El nvmetcli proporciona una línea de comandos y una opción de shell interactiva. Utilice este procedimiento para configurar el objetivo NVMe/RDMA mediante nvmetcli.

Requisitos previos

  • Verifique que tiene un dispositivo de bloque para asignar al subsistema nvmet.
  • Ejecute las operaciones de nvmetcli como usuario root.

Procedimiento

  1. Instale el paquete nvmetcli:

    # yum install nvmetcli
    Copy to Clipboard Toggle word wrap
  2. Descargue el archivo rdma.json

    # wget http://git.infradead.org/users/hch/nvmetcli.git/blob_plain/0a6b088db2dc2e5de11e6f23f1e890e4b54fee64:/rdma.json
    Copy to Clipboard Toggle word wrap
  3. Edite el archivo rdma.json y cambie el valor de traddr por 172.31.0.202.
  4. Configure el objetivo cargando el archivo de configuración del objetivo NVMe:

    # nvmetcli restore rdma.json
    Copy to Clipboard Toggle word wrap
Nota

Si no se especifica el nombre del archivo de configuración del destino NVMe, nvmetcli utiliza el archivo /etc/nvmet/config.json.

Pasos de verificación

  • Comprueba que el destino NVMe está escuchando en el puerto indicado y está preparado para recibir peticiones de conexión:

    #dmesg | tail -1
    [ 4797.132647] nvmet_rdma: enabling port 2 (172.31.0.202:4420)
    Copy to Clipboard Toggle word wrap
  • (Opcional) Borra el objetivo NVMe actual:

    # nvmetcli clear
    Copy to Clipboard Toggle word wrap

Recursos adicionales

  • La página de manual nvmetcli.
  • La página de manual nvme.

13.1.3. Configuración de un cliente NVMe/RDMA

Utilice este procedimiento para configurar un cliente NVMe/RDMA utilizando la herramienta de línea de comandos de gestión de NVMe (nvme-cli).

Procedimiento

  1. Instale la herramienta nvme-cli:

    # yum install nvme-cli
    Copy to Clipboard Toggle word wrap
  2. Cargue el módulo nvme-rdma si no está cargado:

    # modprobe nvme-rdma
    Copy to Clipboard Toggle word wrap
  3. Descubre los subsistemas disponibles en el objetivo NVMe:

    # nvme discover -t rdma -a 172.31.0.202 -s 4420
    
    Discovery Log Number of Records 1, Generation counter 2
    =====Discovery Log Entry 0======
    trtype:  rdma
    adrfam:  ipv4
    subtype: nvme subsystem
    treq:    not specified, sq flow control disable supported
    portid:  1
    trsvcid: 4420
    subnqn:  testnqn
    traddr:  172.31.0.202
    rdma_prtype: not specified
    rdma_qptype: connected
    rdma_cms:    rdma-cm
    rdma_pkey: 0x0000
    Copy to Clipboard Toggle word wrap
  4. Conecta con los subsistemas descubiertos:

    # nvme connect -t rdma -n testnqn -a 172.31.0.202 -s 4420
    
    # lsblk
    NAME                         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda                            8:0    0 465.8G  0 disk
    ├─sda1                         8:1    0     1G  0 part /boot
    └─sda2                         8:2    0 464.8G  0 part
      ├─rhel_rdma--virt--03-root 253:0    0    50G  0 lvm  /
      ├─rhel_rdma--virt--03-swap 253:1    0     4G  0 lvm  [SWAP]
      └─rhel_rdma--virt--03-home 253:2    0 410.8G  0 lvm  /home
    nvme0n1
    
    #cat /sys/class/nvme/nvme0/transport
    rdma
    Copy to Clipboard Toggle word wrap

    Sustituya testnqn por el nombre del subsistema NVMe.

    Sustituya 172.31.0.202 por la dirección IP de destino.

    Sustituya 4420 por el número de puerto.

Pasos de verificación

  • Enumera los dispositivos NVMe que están conectados actualmente:

    # lista nvme
    Copy to Clipboard Toggle word wrap
  • (Opcional) Desconéctese del objetivo:

    # nvme disconnect -n testnqn
    NQN:testnqn disconnected 1 controller(s)
    
    # lsblk
    NAME                         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda                            8:0    0 465.8G  0 disk
    ├─sda1                         8:1    0     1G  0 part /boot
    └─sda2                         8:2    0 464.8G  0 part
      ├─rhel_rdma--virt--03-root 253:0    0    50G  0 lvm  /
      ├─rhel_rdma--virt--03-swap 253:1    0     4G  0 lvm  [SWAP]
      └─rhel_rdma--virt--03-home 253:2    0 410.8G  0 lvm  /home
    Copy to Clipboard Toggle word wrap

Recursos adicionales

Volver arriba
Red Hat logoGithubredditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar. Explore nuestras recientes actualizaciones.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

Theme

© 2025 Red Hat