Introduction
Este documento descreve o que é um aborto de placa de rede de canal de fibra (FNIC) e fornece respostas para perguntas frequentes (FAQ).
O que é um aborto?
O Fibre Channel (FC) não tem meios de recuperação para quedas ou quadros corrompidos. A mensagem Abortar (ABTS) é enviada quando há problemas com uma troca. Um aborto é um serviço de nível de link que pode ser emitido pelo iniciador ou destino. A recuperação é realizada pela camada SCSI (Small Compute System Interface) com tempos limite de 60 a 120 segundos que dependem da configuração do sistema operacional.
![](/c/dam/en/us/support/docs/storage-networking/fiber-channel/214516-faq-fnic-aborts-00.png)
Onde a placa de rede se encaixa na pilha?
No caso do Linux/ESXi, o driver da FNIC está entre as bibliotecas de libfc fornecidas pelo fornecedor do sistema operacional (SO) e o hardware real. A camada SCSI envia a solicitação ao driver de placa de rede, o driver de placa de rede envia a solicitação scsi ao firmware. O firmware gera quadros Fibre Channel over Ethernet (FCoE) e envia no fio.
![](/c/dam/en/us/support/docs/storage-networking/fiber-channel/214516-faq-fnic-aborts-01.png)
O FNIC aborta o driver FNIC?
Não, abortos na FNIC não são necessariamente um problema de driver, mas são uma mensagem genérica de que o iniciador (ou destino) não recebeu um quadro dentro do período de tempo limite e a camada SCSI encerra a troca e tenta novamente.
O que pode causar abortos de FC?
Os abortos de FC podem ser causados por várias razões, como congestionamento, dispositivos de baixo desempenho (disco rígido, processador de armazenamento, links de baixa velocidade), problemas de firmware, problemas de driver, problemas de SO, perda de link, link inativo/ativo, etc.
Como abortos são mensagens genéricas, a primeira etapa é restringir o escopo do problema com questões como:
- Ele ocorre somente em um lado da matriz de armazenamento ou em ambos?
- Isso ocorre em um único host ou em vários hosts?
- Se vários hosts, o que é comum entre os hosts que têm um problema e o que é diferente dos hosts que não experimentam um problema?
- Ocorre quando se comunica com um destino de rede conectada ao armazenamento (SAN) específico ou com um número de unidade lógica (LUN) específico no destino da SAN?
- Há outros LUNs ou alvos de SAN que não apresentam um problema e, em caso afirmativo, quais são as diferenças com esses LUNs/alvos em funcionamento em relação ao alvo que não está funcionando?
- Há um padrão para quando o problema ocorre, como durante trabalhos semanais de backup?
As respostas a essas perguntas ajudam a isolar onde o problema pode residir e onde começar seu foco.
A causa mais comum de abortos é devido a problemas da camada 1 e é recomendável verificar todo o caminho do iniciador ao destino para quaisquer erros de interface, como erros de Verificação de Redundância Cíclica (CRC - Cyclic Redundancy Check) ou interfaces de oscilação.
O próximo motivo comum para abortos é devido à assinatura excessiva de links entre o iniciador/destino ou à assinatura excessiva de componentes no destino, como CPU e disco. É aí que uma boa linha de base de desempenho se torna útil.
O que esta mensagem de cancelamento indica que foi encontrada no log?
VMWare vmkernel log:
2017-07-27T14:54:10.590Z cpu6:33351)<7>fnic : 2 :: Abort Cmd called FCID 0x50a00, LUN 0xa TAG c8 flags 3
Neste exemplo, no 2017-07-27T14:54:10 UTC, um aborto foi chamado no vmhba2 para FCID 0x50a00 no LUN 0xa com a marca SCSI do SO do host 0xc8.
O LUN ID 0xA é convertido em decimal para determinar se o ID de LUN 10 foi o LUN com o qual o SO tentou se comunicar no storage.
A marca 0xc8 é a marca de E/S da camada scsi do host para a solicitação que pode ser usada para corresponder às entradas de log no adaptador VIC.
A instância do dispositivo 2 pode ser combinada até o número vmware vmhba com fnic-tracetool -i
/tmp # ./fnic-tracetool -i
HBA Device
--- ------
vmhba1 fnic1
vmhba2 fnic2
O FCID 0x50c00 pode ser combinado até um destino específico no banco de dados fcns nos switches de estrutura ascendente se a interconexão de estrutura for executada no modo de host final.
switch-A(nxos)# show fcns database fcid 0x50c00 detail vsan 1 ------------------------ VSAN:1 FCID:0x50c00 ------------------------ port-wwn (vendor) :50:00:00:00:ff:ff:ff:01 (EMC) node-wwn :50:00:00:00:ff:ff:ff:00 class :3 node-ip-addr :0.0.0.0 ipa :ff ff ff ff ff ff ff ff fc4-types:fc4_features :scsi-fcp:both 253 symbolic-port-name :SYMMETRIX::SAF- 3fB::FC::5876_272+::EMUL B80F0000 41234F44 94F360 07.27.15 11:14 symbolic-node-name :SYMMETRIX::FC::5876_272+ port-type :N port-ip-addr :0.0.0.0 fabric-port-wwn :20:1e:00:2a:6a:ea:00:00 hard-addr :0x000000 permanent-port-wwn (vendor) :50:00:00:00:ff:ff:ff:01 (EMC) connected interface :fc1/30
Registros do adaptador VIC
170727-14:54:10.590661 ecom.ecom_main ecom(4:0): abort called for exch abort called for exch 431b, status 3 rx_id 0s_stat 0x0xmit_recvd 0x0burst_offset 0x0sgl_err 0x0 last_param 0x0 last_seq_cnt 0x0tot_bytes_exp 0xa00h_seq_cnt 0x0exch_type 0x1s_id 0x36010fd_id 0x50c00 host_tag 0xc8
- s_stat 0x0 => Nenhum quadro é recebido
- exch_type 0x1 => O Exchange é Ingresso e está ativo
- Total de bytes esperados é => tot_bytes_exp 0xa00
- Recebido é => 0x0
- burst_offset é set => 0x0
- A marca de E/S da camada scsi do host para esta solicitação é => 0xc8
- ID de origem => 0x36010f
- ID de destino de destino => 0x50c00
- ID Seq => 0x0
- rx_id => 0
Status
-
Status 3 = comando write
-
Status 1 = comando read
Tipo de troca (exch_type):
========================
EXCH_NOT_IN_USE = 0,
EXCH_INITIATOR_INGRESS_ATIVE = 1
EXCH_TARGET_INGRESS_ATIVE = 2
EXCH_EGRESS_ATIVE = 3
EXCH_ABORTED = 4
EXCH_DEBUG = 5
Valores de status do Exchange(s_stat):
=================================
0x00 Nenhum quadro é recebido
0x01 Pelo menos um quadro recuperado
Sequência 0x02 ainda está ativa
0x04 sequência concluída
inicialização da sequência de transferência 0x08
A sequência de saída 0x10 está ativa
0x20 rsp para entrada de host e entrada de host enviada
Sequência de dados de troca 0x40 pendente
Qual é a diferença entre uma mensagem abort e FCPIO mismatch?
A incompatibilidade de FCPIO pode ocorrer quando nem todos os dados esperados são recebidos.
Total bytes xmit < expecte ddata length
160621-04:26:51.733255 ecom.ecom_main ecom(8:3): ox_id 41d4 rx_id 44b seq_cnt 7 seq_id 1 160621-04:26:52.066235 ecom.ecom_main ecom(8:1): fcpio_data_cnt_mismatch for exch 4202 status 1 rx_id5f7 s_stat 0x3 xmit_recvd 0x3000 burst_offset 0x3000 sgl_err 0x0 last_param 0x2800 last_seq_cnt 0x0 tot_bytes_exp 0x8000 h_seq_cnt 0x5 exch_type 0x0 s_id 0xab800 d_id 0xab800 host_tag 0x377
Informações Relacionadas