As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Provisionamento de NVMe/TCP para Linux
O FSx para ONTAP é compatível com o protocolo de armazenamento em bloco Non-Volatile Memory Express over TCP (NVMe/TCP). Com o NVMe/TCP, você usa a CLI do ONTAP para provisionar namespaces e subsistemas e, em seguida, mapear os namespaces para subsistemas, da mesma forma que as LUNs são provisionadas e mapeadas para grupos de iniciadores (igroups) para iSCSI. O protocolo NVMe/TCP está disponível em sistemas de arquivos de segunda geração com até 6 pares de alta disponibilidade (HA).
nota
Os sistemas de arquivos do FSx para ONTAP usam endpoints iSCSI da SVM para protocolos de armazenamento em blocos iSCSI e NVMe/TCP.
O processo de configuração do NVMe/TCP em seu Amazon FSx para NetApp ONTAP tem três etapas principais, que são abordadas nos procedimentos a seguir:
Instale e configure o cliente NVMe no host Linux.
Configure o NVMe na SVM do sistema de arquivos.
Crie um namespace NVMe.
Crie um subsistema NVMe.
Mapeie o namespace para o subsistema.
Adicione o NQN do cliente ao subsistema.
Monte um dispositivo NVMe no cliente Linux.
Antes de começar
Antes de iniciar o processo de configuração do sistema de arquivos para NVMe/TCP, você precisa concluir os itens a seguir.
Crie um sistema de arquivos do FSx para ONTAP. Para obter mais informações, consulte Criar sistemas de arquivos.
Crie uma instância do EC2 executando o Red Hat Enterprise Linux (RHEL) 9.3 na mesma VPC do sistema de arquivos. Esse é o host Linux no qual você configurará o NVMe e acessará os dados do arquivo usando o NVMe/TCP para Linux.
Adicionalmente ao escopo destes procedimentos, se o host estiver localizado em outra VPC, você poderá usar o emparelhamento de VPC ou o AWS Transit Gateway para permitir que outras VPCs tenham acesso aos endpoints de iSCSI do volume. Para obter mais informações, consulte Acesso a dados de fora da VPC de implantação.
Configure os grupos de segurança de VPC do host do Linux para permitir tráfego de entrada e saída, conforme descrito em Controle de acesso ao sistema de arquivos com a Amazon VPC.
Obtenha as credenciais do usuário do ONTAP com privilégios
fsxadminque você usará para acessar a CLI do ONTAP. Para obter mais informações, consulte Usuários e perfis do ONTAP.O host do Linux que você vai configurar para NVMe e usar para acessar o sistema de arquivos do FSx para ONTAP está localizado na mesma VPC e Conta da AWS.
Recomendamos que a instância do EC2 esteja na mesma zona de disponibilidade da sub-rede preferencial do seu sistema de arquivos.
Se sua instância do EC2 executar uma AMI do Linux que não seja do RHEL 9.3, alguns dos utilitários usados nesses procedimentos e exemplos poderão já estar instalados e talvez você use comandos diferentes para instalar os pacotes necessários. Além de instalar pacotes, os comandos usados nesta seção são válidos para outras AMIs do Linux do EC2.
Tópicos
Instalar e configurar NVMe no host Linux
Para instalar o cliente NVMe
-
Conecte-se à instância do Linux usando um cliente SSH. Para obter mais informações, consulte Conectar-se à instância do Linux usando um cliente SSH.
-
Instale o
nvme-cliusando o comando a seguir:~$sudo yum install -y nvme-cli -
Carregue o módulo
nvme-tcpno host:$sudo modprobe nvme-tcp -
Obtenha o NVMe Qualified Name (NQN) do host Linux usando o seguinte comando:
$cat /etc/nvme/hostnqnnqn.2014-08.org.nvmexpress:uuid:9ed5b327-b9fc-4cf5-97b3-1b5d986345d1Registre a resposta para uso em uma etapa posterior.
Configurar o NVMe no sistema de arquivos do FSx para ONTAP
Para configurar o NVMe no sistema de arquivos
Conecte-se à CLI do NetApp ONTAP no sistema de arquivos do FSx para ONTAP no qual você planeja criar os dispositivos NVMe.
Para acessar a CLI do ONTAP, estabeleça uma sessão SSH na porta de gerenciamento do sistema de arquivos do Amazon FSx para NetApp ONTAP ou a SVM executando o comando a seguir. Substitua
pelo endereço IP da porta de gerenciamento do sistema de arquivos.management_endpoint_ip[~]$ssh fsxadmin@management_endpoint_ipPara obter mais informações, consulte Como gerenciar sistemas de arquivos com a CLI do ONTAP.
-
Crie um novo volume no SVM que você está usando para acessar a interface NVMe.
::>vol create -vserver fsx -volume nvme_vol1 -aggregate aggr1 -size 1t[Job 597] Job succeeded: Successful Crie o namespace NVMe
ns_1usando o comandovserver nvme namespace createda CLI do NetApp ONTAP. Um namespace mapeia para iniciadores (clientes) e controla quais iniciadores (clientes) têm acesso aos dispositivos NVMe. ::>vserver nvme namespace create -vserver fsx -path /vol/nvme_vol1/ns_1 -size 100g -ostype linuxCreated a namespace of size 100GB (107374182400).-
Crie o subsistema NVMe usando o comando
vserver nvme subsystem createda CLI do NetApp ONTAP. ~$vserver nvme subsystem create -vserver fsx -subsystem sub_1 -ostype linux -
Mapeie o namespace para o subsistema que acaba de criar.
::>vserver nvme subsystem map add -vserver fsx -subsystem sub_1 -path /vol/nvme_vol1/ns_1 Adicione o cliente ao subsistema usando o NQN que você recuperou anteriormente.
::>vserver nvme subsystem host add -subsystem sub_1 -host-nqn nqn.2014-08.org.nvmexpress:uuid:ec21b083-1860-d690-1f29-44528e4f4e0e -vserver fsxSe quiser disponibilizar os dispositivos mapeados para esse subsistema a vários hosts, você pode especificar vários nomes de iniciadores em uma lista separada por vírgula. Para obter mais informações, consulte vserver nvme subsystem host add
na documentação do NetApp ONTAP. -
Confirme a existência do namespace usando o comando vserver nvme namespace show
: ::>vserver nvme namespace show -vserver fsx -instanceVserver Name: fsx Namespace Path: /vol/nvme_vol1/ns_1 Size: 100GB Size Used: 90.59GB OS Type: linux Comment: Block Size: 4KB State: online Space Reservation: false Space Reservations Honored: false Is Read Only: false Creation Time: 5/20/2024 17:03:08 Namespace UUID: c51793c0-8840-4a77-903a-c869186e74e3 Vdisk ID: 80d42c6f00000000187cca9 Restore Inaccessible: false Inconsistent Filesystem: false Inconsistent Blocks: false NVFail: false Node Hosting the Namespace: FsxId062e9bb6e05143fcb-01 Volume Name: nvme_vol1 Qtree Name: Mapped Subsystem: sub_1 Subsystem UUID: db526ec7-16ca-11ef-a612-d320bd5b74a9 Namespace ID: 00000001h ANA Group ID: 00000001h Vserver UUID: 656d410a-1460-11ef-a612-d320bd5b74a9 Vserver ID: 3 Volume MSID: 2161388655 Volume DSID: 1029 Aggregate: aggr1 Aggregate UUID: cfa8e6ee-145f-11ef-a612-d320bd5b74a9 Namespace Container State: online Autodelete Enabled: false Application UUID: - Application: - Has Metadata Provisioned: true 1 entries were displayed. Use o comando network interface show -vserver
para recuperar os endereços das interfaces de armazenamento em bloco da SVM na qual você criou seus dispositivos NVMe. ::>network interface show -vserversvm_name-data-protocol nvme-tcpLogical Status Network Current Current Is Vserver Interface Admin/Oper Address/Mask Node Port Home ----------- ---------- ---------- ------------------ ------------- ------- ----svm_nameiscsi_1 up/up 172.31.16.19/20 FSxId0123456789abcdef8-01 e0e true iscsi_2 up/up 172.31.26.134/20 FSxId0123456789abcdef8-02 e0e true 2 entries were displayed.nota
A LIF
iscsi_1é usada tanto para iSCSI quanto para NVMe/TCP.Neste exemplo, o endereço IP de iscsi_1 é 172.31.16.19 e de iscsi_2 é 172.31.26.134.
Monte um dispositivo NVMe no cliente Linux.
O processo de montagem do dispositivo NVMe no cliente Linux envolve três etapas:
Descobrir os nós NVMe
Particionar o dispositivo NVMe
Montar o dispositivo NVMe no cliente
Isso é abordado nos procedimentos a seguir.
Para descobrir os nós NVMe de destino
No cliente Linux, use o comando a seguir para descobrir os nós NVMe de destino. Substitua
pelo endereço IP deiscsi_1_IPiscsi_1epelo endereço IP do cliente.client_IPnota
As LIFs
iscsi_1eiscsi_2são usadas para armazenamento iSCSI e NVMe.~$sudo nvme discover -t tcp -wclient_IP-aiscsi_1_IPDiscovery Log Number of Records 4, Generation counter 11 =====Discovery Log Entry 0====== trtype: tcp adrfam: ipv4 subtype: current discovery subsystem treq: not specified portid: 0 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.656d410a146011efa612d320bd5b74a9:discovery traddr: 172.31.26.134 eflags: explicit discovery connections, duplicate discovery information sectype: none =====Discovery Log Entry 1====== trtype: tcp adrfam: ipv4 subtype: current discovery subsystem treq: not specified portid: 1 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.656d410a146011efa612d320bd5b74a9:discovery traddr: 172.31.16.19 eflags: explicit discovery connections, duplicate discovery information sectype: none-
(Opcional) Para promover um throughput maior do que o máximo de 5 GBps (~625 MBps) de cliente único do Amazon EC2 para seu dispositivo NVMe de arquivos, siga os procedimentos descritos em Largura de banda da rede de instâncias do Amazon EC2 no Guia do usuário do Amazon Elastic Compute Cloud para instâncias Linux para estabelecer sessões adicionais.
-
Faça login nos iniciadores de destino com um tempo limite de perda do controlador de pelo menos 1.800 segundos, mais uma vez usando o endereço IP do
iscsi_1parae o endereço IP do cliente paraiscsi_1_IP. Seus dispositivos NVMe serão apresentados como discos disponíveis.client_IP~$sudo nvme connect-all -t tcp -wclient_IP-aiscsi_1-l 1800 Use o comando a seguir para verificar se a pilha NVMe identificou e mesclou as várias sessões e configurou o multipathing. Se a configuração tiver sido bem-sucedida, o comando retornará
Y.~$cat /sys/module/nvme_core/parameters/multipathYUse os comandos a seguir para verificar se a configuração
modelde NVMe-oF está definida comoNetApp ONTAP Controllere o balanceamento de carga deiopolicyestá definido comoround-robinpara os respectivos namespaces do ONTAP para distribuir a E/S em todos os caminhos disponíveis~$cat /sys/class/nvme-subsystem/nvme-subsys*/modelAmazon Elastic Block Store NetApp ONTAP Controller~$cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicynuma round-robinUse o comando a seguir para verificar se os namespaces foram criados e descobertos corretamente no host:
~$sudo nvme listNode Generic SN Model Namespace Usage Format FW Rev --------------------- --------------------- -------------------- ---------------------------------------- ---------- -------------------------- ---------------- -------- /dev/nvme0n1 /dev/ng0n1 vol05955547c003f0580 Amazon Elastic Block Store 0x1 25.77 GB / 25.77 GB 512 B + 0 B 1.0 /dev/nvme2n1 /dev/ng2n1 lWB12JWY/XLKAAAAAAAC NetApp ONTAP Controller 0x1 107.37 GB / 107.37 GB 4 KiB + 0 B FFFFFFFFO novo dispositivo na saída é
/dev/nvme2n1. Esse esquema de nomenclatura pode ser diferente dependendo da instalação do Linux.Verifique se o estado do controlador de cada caminho está ativo e com o status correto de multipathing do Acesso assimétrico a namespace (ANA):
~$nvme list-subsys /dev/nvme2n1nvme-subsys2 - NQN=nqn.1992-08.com.netapp:sn.656d410a146011efa612d320bd5b74a9:subsystem.rhel hostnqn=nqn.2014-08.org.nvmexpress:uuid:ec2a70bf-3ab2-6cb0-f997-8730057ceb24 iopolicy=round-robin \ +- nvme2 tcp traddr=172.31.26.134,trsvcid=4420,host_traddr=172.31.25.143,src_addr=172.31.25.143 live non-optimized +- nvme3 tcp traddr=172.31.16.19,trsvcid=4420,host_traddr=172.31.25.143,src_addr=172.31.25.143 live optimizedNeste exemplo, a pilha NVMe descobriu automaticamente a LIF alternativa do seu sistema de arquivos,
iscsi_2, 172.31.26.134.-
Verifique se o plug-in NetApp exibe os valores corretos para cada dispositivo de namespace do ONTAP:
~$sudo nvme netapp ontapdevices -o columnDevice Vserver Namespace Path NSID UUID Size ---------------- ------------------------- -------------------------------------------------- ---- -------------------------------------- --------- /dev/nvme2n1 fsx /vol/nvme_vol1/ns_1 1 0441c609-3db1-4b0b-aa83-790d0d448ece 107.37GB
Para particionar o dispositivo
-
Use o comando a seguir para verificar se o caminho para device_name
nvme2n1está presente.~$ls /dev/mapper/nvme2n1/dev/nvme2n1 Particione o disco usando
fdisk. Você inserirá um prompt interativo. Insira as opções na ordem mostrada. Você pode criar várias partições usando um valor menor que o último setor (20971519, neste exemplo).nota
O valor de
Last sectorterá variações, dependendo do tamanho do seu dispositivo NVMe (100 GB, neste exemplo).~$sudo fdisk /dev/mapper/nvme2n1O prompt interativo
fsdiské iniciado.Welcome to fdisk (util-linux 2.37.4). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0x66595cb0. Command (m for help):nPartition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p):pPartition number (1-4, default 1):1First sector (256-26214399, default 256): Last sector, +sectors or +size{K,M,G,T,P} (256-26214399, default 26214399):20971519Created a new partition 1 of type 'Linux' and of size 100 GiB. Command (m for help):wThe partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.Após inserir
w, sua nova partição/dev/nvme2n1fica disponível. Opartition_nametem o formato<device_name><partition_number>.1foi usado como o número da partição no comandofdiskna etapa anterior.-
Crie seu sistema de arquivos usando
/dev/nvme2n1como caminho.~$sudo mkfs.ext4 /dev/nvme2n1O sistema responde com a seguinte saída:
mke2fs 1.46.5 (30-Dec-2021) Found a dos partition table in /dev/nvme2n1 Proceed anyway? (y,N)yCreating filesystem with 26214400 4k blocks and 6553600 inodes Filesystem UUID: 372fb2fd-ae0e-4e74-ac06-3eb3eabd55fb Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Allocating group tables: done Writing inode tables: done Creating journal (131072 blocks): done Writing superblocks and filesystem accounting information: done
Para montar o dispositivo NVMe no cliente Linux
-
Crie um diretório
directory_pathcomo ponto de montagem do sistema de arquivos na instância Linux.~$sudo mkdir /directory_path/mount_point -
Monte o sistema de arquivos usando o comando a seguir.
~$sudo mount -t ext4 /dev/nvme2n1 /directory_path/mount_point -
(Opcional) Se você quiser dar a um usuário específico a propriedade do diretório de montagem, substitua
pelo nome de usuário do proprietário.username~$sudo chownusername:username/directory_path/mount_point -
(Opcional) Verifique se pode ler e gravar dados no sistema de arquivos.
~$echo "Hello world!" > /directory_path/mount_point/HelloWorld.txt~$catdirectory_path/HelloWorld.txtHello world!Você criou e montou com êxito um dispositivo NVMe no cliente Linux.