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:
-
NVMesobre tejidos utilizandoRemote Direct Memory Access (RDMA). Para obtener información sobre cómo configurar NVMe/RDMA, consulte Sección 13.1, “NVMe sobre tejidos utilizando RDMA”. -
NVMesobre tejidos utilizandoFibre Channel (FC). Para obtener información sobre cómo configurarFC-NVMe, consulte Sección 13.2, “NVMe sobre tejidos utilizando FC”.
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 Copiar enlaceEnlace copiado en el portapapeles!
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 Copiar enlaceEnlace copiado en el portapapeles!
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
Cree el subsistema
nvmet-rdma:modprobe nvmet-rdma mkdir /sys/kernel/config/nvmet/subsystems/testnqn cd /sys/kernel/config/nvmet/subsystems/testnqn
# modprobe nvmet-rdma # mkdir /sys/kernel/config/nvmet/subsystems/testnqn # cd /sys/kernel/config/nvmet/subsystems/testnqnCopy to Clipboard Copied! Toggle word wrap Toggle overflow Sustituya testnqn por el nombre del subsistema.
Permitir que cualquier host se conecte a este objetivo:
echo 1 > attr_allow_any_host
# echo 1 > attr_allow_any_hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow Configure un
namespace:mkdir namespaces/10 cd namespaces/10
# mkdir namespaces/10 # cd namespaces/10Copy to Clipboard Copied! Toggle word wrap Toggle overflow Sustituya 10 por el número de espacio de nombres
Establezca una ruta de acceso al dispositivo
NVMe:#echo -n /dev/nvme0n1 > device_path
#echo -n /dev/nvme0n1 > device_pathCopy to Clipboard Copied! Toggle word wrap Toggle overflow Habilitar el espacio de nombres:
echo 1 > enable
# echo 1 > enableCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cree un directorio con un puerto
NVMe:mkdir /sys/kernel/config/nvmet/ports/1 cd /sys/kernel/config/nvmet/ports/1
# mkdir /sys/kernel/config/nvmet/ports/1 # cd /sys/kernel/config/nvmet/ports/1Copy to Clipboard Copied! Toggle word wrap Toggle overflow Muestra la dirección IP de mlx5_ib0:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Establezca la dirección de transporte para el objetivo:
echo -n 172.31.0.202 > addr_traddr
# echo -n 172.31.0.202 > addr_traddrCopy to Clipboard Copied! Toggle word wrap Toggle overflow Establezca
RDMAcomo tipo de transporte:echo rdma > addr_trtype echo 4420 > addr_trsvcid
# echo rdma > addr_trtype # echo 4420 > addr_trsvcidCopy to Clipboard Copied! Toggle word wrap Toggle overflow Establezca la familia de direcciones para el puerto:
echo ipv4 > addr_adrfam
# echo ipv4 > addr_adrfamCopy to Clipboard Copied! Toggle word wrap Toggle overflow Crear un enlace suave:
ln -s /sys/kernel/config/nvmet/subsystems/testnqn /sys/kernel/config/nvmet/ports/1/subsystems/testnqn
# ln -s /sys/kernel/config/nvmet/subsystems/testnqn /sys/kernel/config/nvmet/ports/1/subsystems/testnqnCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Pasos de verificación
Comprueba que el destino
NVMeestá escuchando en el puerto indicado y está preparado para recibir peticiones de conexión:dmesg | grep "enabling port"
# dmesg | grep "enabling port" [ 1091.413648] nvmet_rdma: enabling port 1 (172.31.0.202:4420)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Recursos adicionales
-
La página de manual
nvme.
13.1.2. Configuración del objetivo NVMe/RDMA mediante nvmetcli Copiar enlaceEnlace copiado en el portapapeles!
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
nvmetclicomo usuario root.
Procedimiento
Instale el paquete
nvmetcli:yum install nvmetcli
# yum install nvmetcliCopy to Clipboard Copied! Toggle word wrap Toggle overflow Descargue el archivo
rdma.jsonwget http://git.infradead.org/users/hch/nvmetcli.git/blob_plain/0a6b088db2dc2e5de11e6f23f1e890e4b54fee64:/rdma.json
# wget http://git.infradead.org/users/hch/nvmetcli.git/blob_plain/0a6b088db2dc2e5de11e6f23f1e890e4b54fee64:/rdma.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Edite el archivo
rdma.jsony cambie el valor detraddrpor 172.31.0.202. Configure el objetivo cargando el archivo de configuración del objetivo NVMe:
nvmetcli restore rdma.json
# nvmetcli restore rdma.jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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
NVMeestá 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)
#dmesg | tail -1 [ 4797.132647] nvmet_rdma: enabling port 2 (172.31.0.202:4420)Copy to Clipboard Copied! Toggle word wrap Toggle overflow (Opcional) Borra el objetivo NVMe actual:
nvmetcli clear
# nvmetcli clearCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Recursos adicionales
-
La página de manual
nvmetcli. -
La página de manual
nvme.
13.1.3. Configuración de un cliente NVMe/RDMA Copiar enlaceEnlace copiado en el portapapeles!
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
Instale la herramienta
nvme-cli:yum install nvme-cli
# yum install nvme-cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cargue el módulo
nvme-rdmasi no está cargado:modprobe nvme-rdma
# modprobe nvme-rdmaCopy to Clipboard Copied! Toggle word wrap Toggle overflow Descubre los subsistemas disponibles en el objetivo
NVMe:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Conecta con los subsistemas descubiertos:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
# lista nvmeCopy to Clipboard Copied! Toggle word wrap Toggle overflow (Opcional) Desconéctese del objetivo:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Recursos adicionales
-
La página de manual
nvme. - Nvme-cli Repositorio Github