Configuração de host NVMe-of para Oracle Linux 8,10 com ONTAP
As configurações de host SAN NetApp dão suporte ao protocolo NVMe over Fabrics (NVMe-of) com acesso a namespace assimétrico (ANA). Em ambientes NVMe-of, o ANA é equivalente a multipathing de acesso de unidade lógica assimétrica (ALUA) em ambientes iSCSI e FCP. A ANA é implementada usando o recurso multipath NVMe no kernel.
Use o suporte e os recursos a seguir com a configuração de host NVMe-of para Oracle Linux 8,10. Você também deve rever as limitações conhecidas antes de iniciar o processo de configuração.
-
Suporte disponível:
-
Suporte para NVMe em TCP (NVMe/TCP) e NVMe em Fibre Channel (NVMe/FC). Isso dá ao plug-in NetApp no pacote nvme-cli nativo a capacidade de exibir informações do ONTAP para namespaces NVMe/FC e NVMe/TCP.
Dependendo da configuração do host, você configura o NNNMe/FC, o NVMe/TCP ou os dois protocolos.
-
Executando o tráfego NVMe e SCSI simultaneamente no mesmo host. Por exemplo, você pode configurar o dm-multipath para dispositivos SCSI
mpath
para LUNs SCSI e usar o multipath NVMe para configurar dispositivos de namespace NVMe-of no host.
Para obter detalhes adicionais sobre as configurações suportadas, consulte o "Ferramenta de Matriz de interoperabilidade do NetApp".
-
-
Caraterísticas disponíveis:
-
O recurso multipath NVMe no kernel é habilitado para namespaces NVMe por padrão no Oracle Linux 8,10. Não é necessário configurar definições explícitas.
-
-
Limitações conhecidas:
-
A inicialização DE SAN usando o protocolo NVMe-of não é atualmente suportada.
-
O suporte ao utilitário de host NetApp sanlun não está disponível para NVMe-of em um host Oracle Linux 8,10. Em vez disso, você pode confiar no plug-in NetApp incluído no pacote nativo
nvme-cli
para todos os transportes NVMe-of.
-
Validar versões de software
Valide as versões mínimas de software suportadas para o Oracle Linux 8,10.
-
Instale o Oracle Linux 8,10 GA no servidor. Depois que a instalação estiver concluída, verifique se você está executando o kernel especificado do Oracle Linux 8,10 GA:
uname -r
5.15.0-206.153.7.1.el8uek.x86_64
-
Instale o
nvme-cli
pacote:rpm -qa|grep nvme-cli
nvme-cli-1.16-9.el8.x86_64
-
No host Oracle Linux 8,10, verifique a
hostnqn
string em/etc/nvme/hostnqn
:cat /etc/nvme/hostnqn
nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a
-
Verifique se
hostnqn
no host Oracle Linux 8,10 correspondehostnqn
ao subsistema correspondente no array ONTAP:vserver nvme subsystem host show -vserver vs_coexistence_LPE36002
Mostrar exemplo
Vserver Subsystem Priority Host NQN ------- --------- -------- ------------------------------------------------ vs_coexistence_LPE36002 nvme regular nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a nvme1 regular nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a nvme2 regular nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a nvme3 regular nqn.2014-08.org.nvmexpress:uuid:edd38060-00f7-47aa-a9dc-4d8ae0cd969a 4 entries were displayed.
Se as hostnqn
strings não corresponderem, use ovserver modify
comando para atualizar ahostnqn
cadeia de carateres no subsistema de matriz ONTAP correspondente para corresponder àhostnqn
cadeia de carateres/etc/nvme/hostnqn
do host. -
Se você pretende executar o tráfego coexistente NVMe e SCSI no mesmo host, o NetApp recomenda o uso do multipath NVMe no kernel para namespaces ONTAP e
dm-multipath
para LUNs ONTAP, respetivamente. Isso deve excluir os namespaces do ONTAPdm-multipath
e impedirdm-multipath
de reivindicar os dispositivos de namespace do ONTAP:-
Adicione a
enable_foreign
configuração ao/etc/multipath.conf
arquivo:# cat /etc/multipath.conf defaults { enable_foreign NONE }
-
Reinicie o
multipathd
daemon para aplicar a nova configuração:systemctl restart multipathd
-
Configurar o NVMe/FC
Você pode configurar o NVMe/FC com adaptadores Broadcom/Emulex FC ou Marvell/Qlogic FC. Para NVMe/FC configurado com um adaptador Broadcom, é possível habilitar solicitações de e/S de tamanho 1 MB.
Configurar o NVMe/FC para um adaptador Broadcom/Emulex.
-
Verifique se você está usando o modelo de adaptador suportado:
-
cat /sys/class/scsi_host/host*/modelname
LPe36002-M64 LPe36002-M64
-
cat /sys/class/scsi_host/host*/modeldesc
Emulex LPe36002-M64 2-Port 64Gb Fibre Channel Adapter Emulex LPe36002-M64 2-Port 64Gb Fibre Channel Adapter
-
-
Verifique se você está usando o firmware Broadcom recomendado e o driver da
lpfc
caixa de entrada:-
cat /sys/class/scsi_host/host*/fwrev
14.4.317.10, sli-4:6:d 14.4.317.10, sli-4:6:d
-
cat /sys/module/lpfc/version
0:14.2.0.13
Para obter a lista atual de versões de firmware e drivers de adaptador suportados, consulte "Ferramenta de Matriz de interoperabilidade do NetApp".
-
-
Verifique se
lpfc_enable_fc4_type
está definido como "3":cat /sys/module/lpfc/parameters/lpfc_enable_fc4_type
-
Verifique se as portas do iniciador estão ativas e em execução e se você pode ver os LIFs de destino:
-
cat /sys/class/fc_host/host*/port_name
0x100000109bf0449c 0x100000109bf0449d
-
cat /sys/class/fc_host/host*/port_state
Online Online
-
cat /sys/class/scsi_host/host*/nvme_info
Mostrar exemplo
NVME Initiator Enabled XRI Dist lpfc0 Total 6144 IO 5894 ELS 250 NVME LPORT lpfc0 WWPN x100000109bf0449c WWNN x200000109bf0449c DID x061500 ONLINE NVME RPORT WWPN x200bd039eab31e9c WWNN x2005d039eab31e9c DID x020e06 TARGET DISCSRVC ONLINE NVME RPORT WWPN x2006d039eab31e9c WWNN x2005d039eab31e9c DID x020a0a TARGET DISCSRVC ONLINE NVME Statistics LS: Xmt 000000002c Cmpl 000000002c Abort 00000000 LS XMIT: Err 00000000 CMPL: xb 00000000 Err 00000000 Total FCP Cmpl 000000000008ffe8 Issue 000000000008ffb9 OutIO ffffffffffffffd1 abort 0000000c noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000 FCP CMPL: xb 0000000c Err 0000000c NVME Initiator Enabled XRI Dist lpfc1 Total 6144 IO 5894 ELS 250 NVME LPORT lpfc1 WWPN x100000109bf0449d WWNN x200000109bf0449d DID x062d00 ONLINE NVME RPORT WWPN x201fd039eab31e9c WWNN x2005d039eab31e9c DID x02090a TARGET DISCSRVC ONLINE NVME RPORT WWPN x200cd039eab31e9c WWNN x2005d039eab31e9c DID x020d06 TARGET DISCSRVC ONLINE NVME Statistics LS: Xmt 0000000041 Cmpl 0000000041 Abort 00000000 LS XMIT: Err 00000000 CMPL: xb 00000000 Err 00000000 Total FCP Cmpl 00000000000936bf Issue 000000000009369a OutIO ffffffffffffffdb abort 00000016 noxri 00000000 nondlp 00000000 qdepth 00000000 wqerr 00000000 err 00000000 FCP CMPL: xb 00000016 Err 00000016
-
Configure o NVMe/FC para um adaptador Marvell/QLogic.
O driver nativo da caixa de entrada qla2xxx incluído no kernel Oracle Linux 10 GA tem as correções mais recentes. Essas correções são essenciais para o suporte ao ONTAP. |
-
Verifique se você está executando o driver de adaptador e as versões de firmware compatíveis:
cat /sys/class/fc_host/host*/symbolic_name
QLE2772 FW:v9.15.00 DVR:v10.02.09.100-k QLE2772 FW:v9.15.00 DVR:v10.02.09.100-k
-
Verifique se
ql2xnvmeenable
está definido como "1". Isso permite que o adaptador Marvell funcione como um iniciador NVMe/FC:cat /sys/module/qla2xxx/parameters/ql2xnvmeenable
Ativar tamanho de e/S 1MB (opcional)
O ONTAP relata um MDTS (MAX Data Transfer Size) de 8 nos dados do controlador de identificação. Isso significa que o tamanho máximo da solicitação de e/S pode ser de até 1MBMB. Para emitir solicitações de e/S de tamanho 1 MB para um host NVMe/FC Broadcom, você deve aumentar lpfc
o valor lpfc_sg_seg_cnt
do parâmetro para 256 do valor padrão 64.
Essas etapas não se aplicam a hosts Qlogic NVMe/FC. |
-
Defina
lpfc_sg_seg_cnt
o parâmetro como 256:cat /etc/modprobe.d/lpfc.conf
options lpfc lpfc_sg_seg_cnt=256
-
Execute o
dracut -f
comando e reinicie o host. -
Verifique se o valor esperado de
lpfc_sg_seg_cnt
é 256:cat /sys/module/lpfc/parameters/lpfc_sg_seg_cnt
Configurar o NVMe/TCP
O protocolo NVMe/TCP não suporta a auto-connect
operação. Em vez disso, você pode descobrir os subsistemas e namespaces NVMe/TCP executando as operações NVMe/TCP connect
ou connect-all
manualmente.
-
Verifique se a porta do iniciador pode buscar os dados da página de log de descoberta nas LIFs NVMe/TCP suportadas:
nvme discover -t tcp -w <host-traddr> -a <traddr>
Mostrar exemplo
# nvme discover -t tcp -w 192.168.6.1 -a 192.168.6.24 Discovery Log Number of Records 20, Generation counter 45 =====Discovery Log Entry 0====== trtype: tcp adrfam: ipv4 subtype: unrecognized treq: not specified portid: 6 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:discovery traddr: 192.168.6.25 sectype: none =====Discovery Log Entry 1====== trtype: tcp adrfam: ipv4 subtype: unrecognized treq: not specified portid: 1 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:discovery traddr: 192.168.5.24 sectype: none =====Discovery Log Entry 2====== trtype: tcp adrfam: ipv4 subtype: unrecognized treq: not specified portid: 4 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:discovery traddr: 192.168.6.24 sectype: none =====Discovery Log Entry 3====== trtype: tcp adrfam: ipv4 subtype: unrecognized treq: not specified portid: 2 trsvcid: 8009 subnqn: nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:discovery traddr: 192.168.5.25 sectype: none =====Discovery Log Entry 4====== trtype: tcp adrfam: ipv4 subtype: nvme subsystem treq: not specified portid: 6 trsvcid: 4420 subnqn: nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:subsystem.nvme_tcp_4 traddr: 192.168.6.25 sectype: none =====Discovery Log Entry 5====== trtype: tcp adrfam: ipv4 subtype: nvme subsystem treq: not specified portid: 1 trsvcid: 4420 subnqn: nqn.1992-08.com.netapp:sn.e6c438e66ac211ef9ab8d039eab31e9d:subsystem.nvme_tcp_4 ..........
-
Verifique se todas as outras combinações de LIF de destino de iniciador NVMe/TCP podem obter com êxito os dados da página de log de descoberta:
nvme discover -t tcp -w <host-traddr> -a <traddr>
Mostrar exemplo
# nvme discover -t tcp -w 192.168.6.1 -a 192.168.6.24 # nvme discover -t tcp -w 192.168.6.1 -a 192.168.6.25 # nvme discover -t tcp -w 192.168.5.1 -a 192.168.5.24 # nvme discover -t tcp -w 192.168.5.1 -a 192.168.5.25
-
Execute o
nvme connect-all
comando em todas as LIFs de destino do iniciador NVMe/TCP compatíveis nos nós:nvme connect-all -t tcp -w <host-traddr> -a <traddr> -l <ctrl_loss_timeout_in_seconds>
Mostrar exemplo
# nvme connect-all -t tcp -w 192.168.5.1 -a 192.168.5.24 -l -1 # nvme connect-all -t tcp -w 192.168.5.1 -a 192.168.5.25 -l -1 # nvme connect-all -t tcp -w 192.168.6.1 -a 192.168.6.24 -l -1 # nvme connect-all -t tcp -w 192.168.6.1 -a 192.168.6.25 -l -1
A NetApp recomenda definir ctrl-loss-tmo
a opção como "-1" para que o iniciador NVMe/TCP tente se reconetar indefinidamente no caso de uma perda de caminho.
Validar o NVMe-of
Para dar suporte à operação correta de LUNs ONTAP, verifique se o status multipath NVMe no kernel, o status ANA e os namespaces ONTAP estão corretos para a configuração NVMe-of.
-
Verifique se o multipath NVMe no kernel está habilitado:
cat /sys/module/nvme_core/parameters/multipath
Y
-
Verifique se as configurações NVMe-of (como modelo definido como "controlador NetApp ONTAP" e balanceamento de carga iopolicy definido como "round-robin") para os respetivos namespaces ONTAP são exibidos corretamente no host:
-
cat /sys/class/nvme-subsystem/nvme-subsys*/model
NetApp ONTAP Controller NetApp ONTAP Controller
-
cat /sys/class/nvme-subsystem/nvme-subsys*/iopolicy
round-robin round-robin
-
-
Verifique se os namespaces são criados e descobertos corretamente no host:
nvme list
Mostrar exemplo
Node SN Model --------------------------------------------------------- /dev/nvme0n1 814vWBNRwf9HAAAAAAAB NetApp ONTAP Controller /dev/nvme0n2 814vWBNRwf9HAAAAAAAB NetApp ONTAP Controller /dev/nvme0n3 814vWBNRwf9HAAAAAAAB NetApp ONTAP Controller Namespace Usage Format FW Rev ----------------------------------------------------------- 1 85.90 GB / 85.90 GB 4 KiB + 0 B FFFFFFFF 2 85.90 GB / 85.90 GB 24 KiB + 0 B FFFFFFFF 3 85.90 GB / 85.90 GB 4 KiB + 0 B FFFFFFFF
-
Verifique se o estado do controlador de cada caminho está ativo e tem o status ANA correto:
NVMe/FCnvme list-subsys /dev/nvme0n1
Mostrar exemplo
nvme-subsys0 - NQN=nqn.1992- 08.com.netapp: 4b4d82566aab11ef9ab8d039eab31e9d:subsystem.nvme\ +- nvme1 fc traddr=nn-0x2038d039eab31e9c:pn-0x203ad039eab31e9c host_traddr=nn-0x200034800d756a89:pn-0x210034800d756a89 live optimized +- nvme2 fc traddr=nn-0x2038d039eab31e9c:pn-0x203cd039eab31e9c host_traddr=nn-0x200034800d756a88:pn-0x210034800d756a88 live optimized +- nvme3 fc traddr=nn-0x2038d039eab31e9c:pn-0x203ed039eab31e9c host_traddr=nn-0x200034800d756a89:pn-0x210034800d756a89 live non-optimized +- nvme7 fc traddr=nn-0x2038d039eab31e9c:pn-0x2039d039eab31e9c host_traddr=nn-0x200034800d756a88:pn-0x210034800d756a88 live non-optimized
NVMe/TCPnvme list-subsys /dev/nvme0n1
Mostrar exemplo
nvme-subsys0 - NQN=nqn.1992- 08.com.netapp: sn.e6c438e66ac211ef9ab8d039eab31e9d:subsystem.nvme_tcp_4 \ +- nvme1 tcp traddr=192.168.5.25 trsvcid=4420 host_traddr=192.168.5.1 src_addr=192.168.5.1 live optimized +- nvme10 tcp traddr=192.168.6.24 trsvcid=4420 host_traddr=192.168.6.1 src_addr=192.168.6.1 live optimized +- nvme2 tcp traddr=192.168.5.24 trsvcid=4420 host_traddr=192.168.5.1 src_addr=192.168.5.1 live non-optimized +- nvme9 tcp traddr=192.168.6.25 trsvcid=4420 host_traddr=192.168.6.1 src_addr=192.168.6.1 live non-optimized
-
Verifique se o plug-in NetApp exibe os valores corretos para cada dispositivo de namespace ONTAP:
Colunanvme netapp ontapdevices -o column
Mostrar exemplo
Device Vserver Namespace Path NSID UUID Size -------------- ------------------------ ----------------------------- ---- ------------------------------------- --------- /dev/nvme0n1 vs_coexistence_QLE2772 /vol/fcnvme_1_1_0/fcnvme_ns 1 159f9f88-be00-4828-aef6-197d289d4bd9 10.74GB /dev/nvme0n2 vs_coexistence_QLE2772 /vol/fcnvme_1_1_1/fcnvme_ns 2 2c1ef769-10c0-497d-86d7-e84811ed2df6 10.74GB /dev/nvme0n3 vs_coexistence_QLE2772 /vol/fcnvme_1_1_2/fcnvme_ns 3 9b49bf1a-8a08-4fa8-baf0-6ec6332ad5a4 10.74GB
JSONnvme netapp ontapdevices -o json
Mostrar exemplo
{ "ONTAPdevices" : [ { "Device" : "/dev/nvme0n1", "Vserver" : "vs_coexistence_QLE2772", "Namespace_Path" : "/vol/fcnvme_1_1_0/fcnvme_ns", "NSID" : 1, "UUID" : "159f9f88-be00-4828-aef6-197d289d4bd9", "Size" : "10.74GB", "LBA_Data_Size" : 4096, "Namespace_Size" : 2621440 }, { "Device" : "/dev/nvme0n2", "Vserver" : "vs_coexistence_QLE2772", "Namespace_Path" : "/vol/fcnvme_1_1_1/fcnvme_ns", "NSID" : 2, "UUID" : "2c1ef769-10c0-497d-86d7-e84811ed2df6", "Size" : "10.74GB", "LBA_Data_Size" : 4096, "Namespace_Size" : 2621440 }, { "Device" : "/dev/nvme0n4", "Vserver" : "vs_coexistence_QLE2772", "Namespace_Path" : "/vol/fcnvme_1_1_3/fcnvme_ns", "NSID" : 4, "UUID" : "f3572189-2968-41bc-972a-9ee442dfaed7", "Size" : "10.74GB", "LBA_Data_Size" : 4096, "Namespace_Size" : 2621440 },
Problemas conhecidos
A configuração de host NVMe-of para Oracle Linux 8,10 com versão ONTAP tem o seguinte problema conhecido:
ID de erro do NetApp | Título | Descrição |
---|---|---|
CONTAPEXT-1082 |
Os hosts NVMe-of do Oracle Linux 8,10 criam PDCs duplicados |
Em hosts NVMe-of do Oracle Linux 8,10, PDCs (Persistent Discovery Controllers) são criados usando a |