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:
-
NVMesobre 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”. -
NVMesobre 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/testnqnCopy 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_hostCopy to Clipboard Copied! Toggle word wrap Toggle overflow Configurar um
namespace:mkdir namespaces/10 cd namespaces/10
# mkdir namespaces/10 # cd namespaces/10Copy 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_pathCopy to Clipboard Copied! Toggle word wrap Toggle overflow Habilite o espaço de nomes:
echo 1 > habilitar
# echo 1 > habilitarCopy 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/1Copy 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_traddrCopy to Clipboard Copied! Toggle word wrap Toggle overflow Definir
RDMAcomo o 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 Defina a família de endereços para o porto:
echo ipv4 > addr_adrfam
# echo ipv4 > addr_adrfamCopy 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/testnqnCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Etapas de verificação
Verifique se o alvo
NVMeestá 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
nvmetclicomo usuário root.
Procedimento
Instale o pacote
nvmetcli:yum instalar nvmetcli
# yum instalar nvmetcliCopy to Clipboard Copied! Toggle word wrap Toggle overflow Baixe o arquivo
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 o arquivo
rdma.jsone altere o valortraddrpara 172.31.0.202. Configure o alvo carregando o arquivo de configuração do alvo NVMe:
nvmetcli restore rdma.json
# nvmetcli restore rdma.jsonCopy 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
NVMeestá 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 clearCopy 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-cliCopy to Clipboard Copied! Toggle word wrap Toggle overflow Carregue o módulo
nvme-rdmase não estiver carregado:modprobe nvme-rdma
# modprobe nvme-rdmaCopy 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 nvmeCopy 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