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

    Sustituya testnqn por el nombre del subsistema.

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

    # echo 1 > attr_allow_any_host
  3. Configure un namespace:

    # mkdir namespaces/10
    
    # cd namespaces/10

    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
  5. Habilitar el espacio de nombres:

    # echo 1 > enable
  6. Cree un directorio con un puerto NVMe:

    # mkdir /sys/kernel/config/nvmet/ports/1
    
    # cd /sys/kernel/config/nvmet/ports/1
  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
  8. Establezca la dirección de transporte para el objetivo:

    # echo -n 172.31.0.202 > addr_traddr
  9. Establezca RDMA como tipo de transporte:

    # echo rdma > addr_trtype
    
    # echo 4420 > addr_trsvcid
  10. Establezca la familia de direcciones para el puerto:

    # echo ipv4 > addr_adrfam
  11. Crear un enlace suave:

    # ln -s /sys/kernel/config/nvmet/subsystems/testnqn   /sys/kernel/config/nvmet/ports/1/subsystems/testnqn

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)

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
  2. Descargue el archivo rdma.json

    # wget http://git.infradead.org/users/hch/nvmetcli.git/blob_plain/0a6b088db2dc2e5de11e6f23f1e890e4b54fee64:/rdma.json
  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
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)
  • (Opcional) Borra el objetivo NVMe actual:

    # nvmetcli clear

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
  2. Cargue el módulo nvme-rdma si no está cargado:

    # modprobe nvme-rdma
  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
  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

    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
  • (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

Recursos adicionales

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.

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.

© 2024 Red Hat, Inc.