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:
-
NVMe
sobre 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”. -
NVMe
sobre 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/testnqn
Copy 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_host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configure un
namespace
:mkdir namespaces/10 cd namespaces/10
# mkdir namespaces/10 # cd namespaces/10
Copy 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_path
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Habilitar el espacio de nombres:
echo 1 > enable
# echo 1 > enable
Copy 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/1
Copy 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_traddr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Establezca
RDMA
como tipo de transporte:echo rdma > addr_trtype echo 4420 > addr_trsvcid
# echo rdma > addr_trtype # echo 4420 > addr_trsvcid
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Establezca la familia de direcciones para el puerto:
echo ipv4 > addr_adrfam
# echo ipv4 > addr_adrfam
Copy 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/testnqn
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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"
# 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
nvmetcli
como usuario root.
Procedimiento
Instale el paquete
nvmetcli
:yum install nvmetcli
# yum install nvmetcli
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Descargue el archivo
rdma.json
wget 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.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Edite el archivo
rdma.json
y cambie el valor detraddr
por 172.31.0.202. Configure el objetivo cargando el archivo de configuración del objetivo NVMe:
nvmetcli restore rdma.json
# nvmetcli restore rdma.json
Copy 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
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)
#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 clear
Copy 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-cli
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Cargue el módulo
nvme-rdma
si no está cargado:modprobe nvme-rdma
# modprobe nvme-rdma
Copy 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 nvme
Copy 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