Capítulo 13. Visão geral da NVMe sobre dispositivos de tecido
Non-volatile Memory Express (NVMe)
é uma interface que permite que o utilitário de software hospedeiro se comunique com as unidades de estado sólido.
Use os seguintes tipos de transporte de tecido para configurar NVMe
sobre dispositivos de tecido:
-
NVMe
sobre tecidos usandoRemote Direct Memory Access (RDMA)
. Para informações sobre como configurar o NVMe/RDMA, ver Seção 13.1, “NVMe sobre tecidos usando RDMA”. -
NVMe
sobre tecidos usandoFibre Channel (FC)
. Para informações sobre como configurarFC-NVMe
, ver Seção 13.2, “NVMe sobre tecidos usando FC”.
Ao utilizar FC e RDMA, o acionamento em estado sólido não precisa ser local para seu sistema; ele pode ser configurado remotamente através de um controlador FC ou RDMA.
13.1. NVMe sobre tecidos usando RDMA Copiar o linkLink copiado para a área de transferência!
Em NVMe/RDMA
setup, NVMe
target e NVMe
initiator está configurado.
Como administrador do sistema, complete as tarefas nas seções seguintes para distribuir o NVMe
sobre tecidos usando RDMA
(NVMe/RDMA
):
13.1.1. Estabelecimento de um alvo NVMe/RDMA usando configfs Copiar o linkLink copiado para a área de transferência!
Use este procedimento para configurar um alvo NVMe/RDMA
usando configfs
.
Pré-requisitos
-
Verifique se você tem um dispositivo de bloqueio para atribuir ao subsistema
nvmet
.
Procedimento
Criar o 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 Substituir testnqn pelo nome do subsistema.
Permitir que qualquer anfitrião se conecte a este alvo:
echo 1 > attr_allow_any_host
# echo 1 > attr_allow_any_host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Configurar um
namespace
:mkdir namespaces/10 cd namespaces/10
# mkdir namespaces/10 # cd namespaces/10
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Substitua 10 pelo número do namespace
Estabeleça um caminho para o dispositivo
NVMe
:#echo -n /dev/nvme0n1 > device_path
#echo -n /dev/nvme0n1 > device_path
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Habilite o espaço de nomes:
echo 1 > habilitar
# echo 1 > habilitar
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Criar um diretório com uma porta
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 Mostrar o endereço IP de mlx5_ib0:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Defina o endereço de transporte para a meta:
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 Definir
RDMA
como o 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 Defina a família de endereços para o porto:
echo ipv4 > addr_adrfam
# echo ipv4 > addr_adrfam
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Criar um elo 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
Etapas de verificação
Verifique se o alvo
NVMe
está escutando na porta determinada e pronto para pedidos de conexão: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 adicionais
-
A página do homem
nvme
.
13.1.2. Estabelecendo o alvo NVMe/RDMA usando nvmetcli Copiar o linkLink copiado para a área de transferência!
Use o site nvmetcli para editar, visualizar e iniciar a meta NVMe
. O nvmetcli
fornece uma linha de comando e uma opção de shell interativa. Use este procedimento para configurar o alvo NVMe/RDMA
por nvmetcli
.
Pré-requisitos
-
Verifique se você tem um dispositivo de bloqueio para atribuir ao subsistema
nvmet
. -
Executar as operações do
nvmetcli
como usuário root.
Procedimento
Instale o pacote
nvmetcli
:yum instalar nvmetcli
# yum instalar nvmetcli
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Baixe o arquivo
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 o arquivo
rdma.json
e altere o valortraddr
para 172.31.0.202. Configure o alvo carregando o arquivo de configuração do alvo NVMe:
nvmetcli restore rdma.json
# nvmetcli restore rdma.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Se o nome do arquivo de configuração do alvo NVMe não for especificado, o nvmetcli
usa o arquivo /etc/nvmet/config.json
.
Etapas de verificação
Verifique se o alvo
NVMe
está escutando na porta determinada e pronto para pedidos de conexão:#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) Limpar o alvo atual da NVMe:
nvmetcli clear
# nvmetcli clear
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Recursos adicionais
-
A página do homem
nvmetcli
. -
A página do homem
nvme
.
13.1.3. Configuração de um cliente NVMe/RDMA Copiar o linkLink copiado para a área de transferência!
Use este procedimento para configurar um cliente NVMe/RDMA
usando a ferramenta de linha de comando de gerenciamento NVMe (nvme-cli
).
Procedimento
Instale a ferramenta
nvme-cli
:yum instalar nvme-cli
# yum instalar nvme-cli
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Carregue o módulo
nvme-rdma
se não estiver carregado:modprobe nvme-rdma
# modprobe nvme-rdma
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Descubra os subsistemas disponíveis na meta
NVMe
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Conectar com os subsistemas descobertos:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Substituir testnqn pelo nome do sub-sistema
NVMe
.Substituir 172.31.0.202 pelo endereço IP de destino.
Substituir 4420 pelo número da porta.
Etapas de verificação
Liste os dispositivos NVMe que estão atualmente conectados:
lista nvme
# lista nvme
Copy to Clipboard Copied! Toggle word wrap Toggle overflow (Opcional) Desconectar do alvo:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Recursos adicionais
-
A página do homem
nvme
. - Nvme-cli Repositório Github