O conjunto de documentação deste produto faz o possível para usar uma linguagem imparcial. Para os fins deste conjunto de documentação, a imparcialidade é definida como uma linguagem que não implica em discriminação baseada em idade, deficiência, gênero, identidade racial, identidade étnica, orientação sexual, status socioeconômico e interseccionalidade. Pode haver exceções na documentação devido à linguagem codificada nas interfaces de usuário do software do produto, linguagem usada com base na documentação de RFP ou linguagem usada por um produto de terceiros referenciado. Saiba mais sobre como a Cisco está usando a linguagem inclusiva.
A Cisco traduziu este documento com a ajuda de tecnologias de tradução automática e humana para oferecer conteúdo de suporte aos seus usuários no seu próprio idioma, independentemente da localização. Observe que mesmo a melhor tradução automática não será tão precisa quanto as realizadas por um tradutor profissional. A Cisco Systems, Inc. não se responsabiliza pela precisão destas traduções e recomenda que o documento original em inglês (link fornecido) seja sempre consultado.
Este documento descreve como resolver problemas de comandos/registros para problemas especificamente relacionados a problemas de empilhamento de porta/cabo e recarregamentos silenciosos.
Coletar e analisar registros úteis (para cada ASIC e núcleo). Há três principais:
show platform hardware fed switch active fwd-asic register read register-name <name>
O primeiro bit nos informa se o básico está disponível ou não. É definido como 0x1. Se estiver definido como 0x0, há problemas de encaminhamento. Os contadores de erro ou a caixa não podem recuperar pacotes corretamente.
Switch#sh platform hardware fed switch active fwd-asic register read register-name SifInfo For asic 0 core 0 Module 0 - SifInfo[0][0] available : 0x1 <---- should be 0x1 indicating balloting is completed headerVersion : 0x0 nodeAllLinksAvailable : 0x1 nodeId : 0x4 <---- asic ID (unique across all asics in the stack) numNodes : 0x8 <---- how many asics are there in whole stack serdesSpeed : 0x2 sifAllLinksAvailable : 0x1 sifSupStall : 0x0 wrappedAtRac0 : 0x0 <---- If a single stack port is down, 3 of 6 should wrap w/ value wrappedAtRac1 : 0x0 of 0x1. Will appears in groups for 0, 2 and 4 or 1, 3 and 5. wrappedAtRac2 : 0x0 wrappedAtRac3 : 0x0 wrappedAtRac4 : 0x0 wrappedAtRac5 : 0x0
Observação: cada cabo de pilha tem seis anéis de rack (controle de acesso ao anel), três de saída/três de entrada a 40Gig cada. WrappedAtRac de zero a cinco corresponde se algum link da pilha está inoperante ou não. Se tudo estiver bem, ele será mostrado como 0x0 (seis links por asic, três de saída, três de entrada). Por exemplo, números ímpares são de saída e números pares são de entrada ou vice-versa).
Para verificar em detalhes cada um dos Racs, os aspectos críticos a serem verificados são exibidos; bits ative/linkOk/syncOk que nos dizem se o Rac específico se vinculou ou não (se OK então é mostrado como 0x1).
Switch#sh plat hardware fed sw active fwd-asic register read register-name SifRacStatus For asic 0 core 0 Module 0 - SifRacStatus[0][0] active : 0x1 <---- available : 0x1 copyOk : 0x1 disabled : 0x0 insertOk : 0x1 linkOk : 0x1 <---- messageOk : 0x1 noDataOnRing : 0x0 pcsAlignmentOk : 0x1 pcsCodewordSync : 0xf reOrderOk : 0x1 slapId : 0x0 stripOk : 0x1 syncOk : 0x1 <---- toPbcOk : 0x1 transmitOk : 0x1
Veja se o Rac está desligado ou não. Verifique o parâmetro greenPowerDisable. Mostra 0x0 para todos os Racs (pelo menos para a plataforma Nyquist). Há algumas exceções em que se espera ver o desligamento de Racs ou o parâmetro greenPowerDisable mostrado como 0x1 devido à limitação de HW no próprio cabo da pilha, como o switch 3650, que é a caixa de extremidade inferior. Em seguida, o cabo da pilha suporta apenas dois Racs por asic. Os dois Racs restantes são desligados.
Switch#sh plat hardware fed sw active fwd-asic register read register-name SifRacControl For asic 0 core 0 Module 0 - SifRacControl[0][0] copyEn : 0x1 deployToken : 0x0 disablePmaChecks : 0x0 forceSync : 0x0 greenPowerDisable : 0x0 <---- init : 0x0 initRacInfoLinkedList : 0x0 insertEn : 0x1 messageEn : 0x1 reOrderEn : 0x1 stripEn : 0x1 toPbcEn : 0x1 transmitEn : 0x1
Isso é disparado porque há uma alteração de link no sistema (situação Ativo/Inativo). A interrupção é tratada no nível do software. Ele é processado para ver se há alguma alteração relacionada ao link e depois é publicado (log gerado).
Switch#sh plat hardware fed sw active fwd-asic register read register-name SifExceptionInterruptA4 For asic 0 core 0 Module 0 - SifExceptionInterruptA4[0][0] sifRac0LinkOkChange : 0x0 sifRac0LinkedListSpill : 0x0 sifRac0SyncOkChange : 0x1 sifRac0TransitFifoSpill : 0x0 sifRac1LinkOkChange : 0x0 sifRac1LinkedListSpill : 0x0 sifRac1SyncOkChange : 0x1 sifRac1TransitFifoSpill : 0x0 sifRac2LinkOkChange : 0x0 sifRac2LinkedListSpill : 0x0 sifRac2SyncOkChange : 0x1 sifRac2TransitFifoSpill : 0x0 sifRac3LinkOkChange : 0x0 sifRac3LinkedListSpill : 0x0 sifRac3SyncOkChange : 0x1 sifRac3TransitFifoSpill : 0x0 sifRac4LinkOkChange : 0x0 sifRac4LinkedListSpill : 0x0 sifRac4SyncOkChange : 0x1 sifRac4TransitFifoSpill : 0x0 sifRac5LinkOkChange : 0x0 sifRac5LinkedListSpill : 0x0 sifRac5SyncOkChange : 0x1 sifRac5TransitFifoSpill : 0x0
Esta é a interrupção de hardware que nos fornece detalhes quando a votação é feita (votação = processo de inicialização básica). Após a conclusão de A8, o sistema verifica se o bit básico disponível está definido corretamente. Caso contrário, a votação é executada novamente.
Observação: quando o número máximo é atingido, o switch é recarregado com algum erro, dizendo HW available bit was not set or Balloting did not complete.
Switch#sh plat hardware fed sw active fwd-asic register read register-name SifExceptionInterruptA8 For asic 0 core 0 Module 0 - SifExceptionInterruptA8[0][0] sifBallotDone : 0x0 sifBallotOverallTimerExpires : 0x0 sifBallotPerStateTimerExpires : 0x0 sifBallotSpeedChangeNeeded : 0x0 sifBallotStart : 0x1 sifDebugSent : 0x0 sifEastNeighborChange : 0x1 sifMessageReceiveBufferCreditsEmpty : 0x0 sifMessageReceived : 0x1 sifMessageSent : 0x1 sifNodeIdChanged : 0x1 sifOob3in2DropCntOverflow : 0x0 sifOobFlushDropCntOverflow : 0x0 sifOobStackSifCreditDropCntOverflow : 0x0 sifOobStackSifMtuDropCntOverflow : 0x0 sifOobSupSifMtuDropCntOverflow : 0x0 sifRacInfoLinkedListInitDone0 : 0x1 sifRacInfoLinkedListInitDone1 : 0x1 sifRacInfoLinkedListInitDone2 : 0x1 sifRacInfoLinkedListInitDone3 : 0x1 sifRacInfoLinkedListInitDone4 : 0x1 sifRacInfoLinkedListInitDone5 : 0x1 sifSegmentBuffer0LinkedListSpill : 0x0 sifSegmentBuffer1LinkedListSpill : 0x0 sifSegmentBufferLinkedListInitDone0 : 0x1 sifSegmentBufferLinkedListInitDone1 : 0x1 sifStackTopologyChange : 0x1 sifUnmappedDestIndex : 0x0 sifWestNeighborChange : 0x1
O próximo comando exibe contadores SIF que envolvem mensagens SDP e mensagens de gerenciamento SIF. Concentre-se nas mensagens com falha, se houver.
Switch#show platform software sif switch active r0 counters Stack Interface (SIF) Counters ------------------------------ Stack Discovery Protocol (SDP) Messages --------------------------------------- Message Tx Success Tx Fail Rx Success Rx Fail ------------------------------------------------------------------------------ Discovery 0 0 0 0 Neighbor 0 0 0 0 Forward 455966 0 1355818 107 --------------------------------------- SIF Management Messages ----------------------- Message Success Fail -------------------------------------------------- Link Status 16 0 Link Management 0 0 Chassis Num 1 0 Topo Change 3 0 Active Declare 1 0 Template set 2 0
Há um comando adicional que pode ser executado e exibe informações somente quando uma interrupção ultrapassa o limite. O comando é.show platform software sif switch active R0 exceptions Esta é a saída quando não há problemas presentes nas Interrupções:
Switch#
Switch#show platform software sif switch active R0 exceptions
Switch#
Quando há interrupções, a saída é semelhante ao próximo script. Lembre-se de que interrupções são esperadas em alguns cenários (inicialização, conexão/desconexão e assim por diante); portanto, se houver um problema real e interrupções contínuas, execute o comando repetidamente por um período de segundos/minutos.
Switch#show platform software sif switch active r0 exceptions
*******************************
Asicnum: 0
SIF INT : SIFEXCEPTIONINTERRUPTA1_SIFRAC5PMARECEIVEFIFOSPILL3_FIELD_IDX
Occurred count: 1
First Time: Fri May 18 08:03:23 2018
Last Time: Fri May 18 08:03:23 2018
---------------------------------
SIF INT : SIFEXCEPTIONINTERRUPTA1_SIFRAC5PMARECEIVEFIFOSPILL2_FIELD_IDX
Occurred count: 1
First Time: Fri May 18 08:03:23 2018
Last Time: Fri May 18 08:03:23 2018
---------------------------------
SIF INT : SIFEXCEPTIONINTERRUPTA1_SIFRAC5PMARECEIVEFIFOSPILL1_FIELD_IDX
Occurred count: 1
First Time: Fri May 18 08:03:23 2018
Last Time: Fri May 18 08:03:23 2018
---------------------------------
SIF INT : SIFEXCEPTIONINTERRUPTA1_SIFRAC5PMARECEIVEFIFOSPILL0_FIELD_IDX
Occurred count: 1
First Time: Fri May 18 08:03:23 2018
Last Time: Fri May 18 08:03:23 2018
Esta tabela detalha as exceções SIF mais comuns de
show platform software sif switch active R0 exceptions:
Nº da Exceção | NomeCampo | Severity | Uso | Descrição |
0 | sifRac{0:5}PmaTransmitFifoSpill{0:3} | principal | Estatística | Isso é acionado se o FIFO push-pull entre o relógio do sistema e o relógio serdes transbordar. Isso não pode ocorrer. Se o fizer, é provável que seja um indicador de que o relógio Serdes foi desativado (por programação ou um Serdes defeituoso.) Se isso não se deve a um problema de programação, é um problema importante. Mas o SIF se autorrecupera. E o resultado final de um pequeno problema é um segmento perdido ou, em casos extremos, uma reinicialização. Se este não foi um problema pequeno, e ainda está ocorrendo, então após o processamento deste CHEFE, ele é acionado novamente, informando que a condição ainda está ocorrendo neste ponto. Este link de transmissão está em um brinde. |
1 | sifRac{0:5}PmaReceiveFifoSpill{0:3} | principal | Estatística | Isso é acionado se o FIFO push-pull entre o relógio do sistema e o relógio serdes transbordar. Isso não pode ocorrer. Se o fizer, é provável que seja um indicador de que o relógio Serdes foi desativado (por programação ou um Serdes defeituoso.) Se isso não se deve a um problema de programação, é um problema importante. Mas o SIF se autorrecupera. E o resultado final de um pequeno problema é um segmento perdido ou, em casos extremos, uma reinicialização. Se este não foi um problema pequeno, e ainda está ocorrendo, então após o processamento deste CHEFE, ele é acionado novamente, informando que a condição ainda está ocorrendo neste ponto. Este link de transmissão está em um brinde. |
2 | sifRac{0:5}SerdesLossOfLock{0:3} | principal | Estatística | A ser usado em correlação com sifRac{0:5}PmaReceiveFifoSpill{0:3} para informar sobre a condição dos relógios Serdes recebidos com condição de operação normal. Se eles estiverem fora das especificações, o temporizador de densidade ociosa não poderá compensar a diferença. Em geral, este é um verificador de problemas para garantir que a suposição de que o receptor Serdes está funcionando corretamente é realmente verdade. |
3 | sifRac{0:5}PerdaRelógioDeBloqueio{0:3} | principal | Estatística | A ser usado em correlação com sifRac{0:5}PmaReceiveFifoSpill{0:3} para informar sobre a condição dos relógios Serdes recebidos com condição de operação normal. Se eles estiverem fora das especificações, o temporizador de densidade ociosa não poderá compensar a diferença. Em geral, este é um verificador de problemas para garantir que a suposição de que o receptor Serdes está funcionando corretamente é realmente verdade. |
4 | sifRac{0:5}syncOkChange | menor | Monitor | Indicação de oscilação de enlace |
sifRac{0:5}linkOkChange | menor | Monitor | Indicação de oscilação de enlace | |
sifRac{0:5}linkedListSpill | principal | Monitor | As listas vinculadas de rac que fazem parte do algoritmo de reordenação excederam o máximo de entradas possível. Isso é realmente ruim e significa que a reordenação agora é de segmentos de dados de queda traseira e mensagens OOB neste RAC. Isso não pode ocorrer, a menos que a pilha esteja configurada incorretamente ou que a lista vinculada tenha experimentado um erro de software. Consulte as Exceções 9 e 10. | |
sifRac{0:5}trânsitoFifoSpill | principal | Estatística | O trafficFifo responsável por mover dados através do SIF para outros nós despejou isso provavelmente devido a uma configuração incorreta do IdleDensityTimer w.r.t. para o deslocamento real do relógio Serdes ppm (partes por milhão) para esse switch versus seu vizinho. | |
5 | sifRac{0:5}missingToken | principal | Estatística | O shell de concha Stack foi perdido, corrompido, reimplantado e assim por diante. Isso é provavelmente uma indicação de que um bit acertado na pilha atingiu um SifTokenDesc. É muito improvável que isso aconteça. O SIF pode ser configurado para lidar com isso de diferentes maneiras. Refaça a votação e comece novamente, reimplante um token ou permita que o SIF seja reimplantado. |
sifRac{0:5}DuplicarToken | principal | Estatística | ||
sifRac{0:5}tokenDeployed | informação | Estatística | ||
6 | sifRac{0:5}RwCrcErrorCntOverflow | menor | Estatística | Provavelmente todos os indicadores do cabo da pilha ou da caixa vizinha estão comprometidos. Este detalhe foi quebrado em grande parte para depuração. Durante a operação normal, syncOkChange e linkOkChange são tudo o que você precisa saber. Na coleta de LONG-TERM-BER, você precisa monitorar e contá-los quando os contadores rolarem para a contagem adequada de erros de bit. É possível que quando um invalidRw ou pcsCodeWordError estiver presente, o CRC não esteja verificado. Dessa forma, você pode somar todos esses registros para BER. |
sifRac{0:5}DataCrcErrorCntOverflow | menor | Estatística | ||
sifRac{0:5}InvalidRwErrorCntOverflow | menor | Estatística | ||
sifRac{0:5}PcsCodeWordErrorCntOverflow | menor | Estatística | ||
7 | sifRac{0:5}RdispErrorCntOverflow | menor | Estatística | |
sifRac{0:5}PrbsUnLockErrorCntOverflow | informação | Estatística | Exiba estatísticas para uso na ajuda a encontrar a melhor configuração das macros IBM HSS para encontrar a programação ideal. | |
sifRac{0:5}PrbsBitErrorCntOverflow | informação | Estatística | ||
sifRac{0:5}ErrorCaptureCntOverflow | informação | Laboratório | Exiba estatísticas para capturar a forma de ringWords com erro para inspeção para ver o que está acontecendo na Pilha. | |
8 | sifRacInfoLinkedListInitDone{0:5} | informação | Monitor | A inicialização de hardware da lista vinculada de RAC foi concluída. |
sifDroppedSegmentCntOverflow | informação | Estatística | ||
sifPbcInconsistencySopEopCntOverflow | informação | Estatística | Pior cenário possível. Verifique a chegada de dados conforme o formulário de protocolo do PBC. | |
sifPbcErrorCntOverflow | informação | Estatística | ||
sifSupInconsistencySopEopCntOverflow | informação | Estatística | Pior cenário possível. Verifique a chegada de dados conforme o formulário de protocolo do SUP (OOBM). | |
sifSupErrorCntOverflow | informação | Estatística | ||
sifReordenarEstouroCntSopEopInconsistente | informação | Estatística | Indicação de que o indicador de segmento ausente foi sobreposto. | |
sifDebugSent | informação | Laboratório | Exiba a indicação para inserção de Segmentos de depuração na pilha. | |
sifMessageSent | informação | Laboratório | Devido à natureza automatizada do OOBM, eles são realmente úteis apenas em situações de laboratório. | |
sifMessageReceived | informação | Laboratório | ||
sifMessageDropped | informação | Laboratório | ||
sifMessageReceiveBufferCreditsEmpty | menor | Monitor | Atualize os créditos se isso for acionado. O nível de crédito é monitorado ativamente para que isso não aconteça. | |
sifUnmappedDestIndex | menor | Estatística | Durante Copy/Strip, não foi possível mapear destIndex e um portCopy foi definido como '0' e portStrip definido como '1'. Isso indica um problema de configuração. | |
sifSegmentBuffer{0:1}linkedListSpill | principal | Monitor | As listas vinculadas de segmento que fazem parte da reordenação excederam o máximo de entradas possível. Essa é uma indicação de que a reordenação agora é de segmentos de dados de queda traseira e mensagens OOB. Isso não pode ocorrer, a menos que a pilha esteja configurada incorretamente ou que a lista vinculada tenha sofrido um erro de software. Consulte as Exceções 9 e 10. | |
sifSegmentBufferLinkedListInitDone{0:1] | informação | Monitor | A inicialização de HW da lista vinculada de segmentos foi concluída. | |
sifBallotDone | informação | Monitor | A votação da indicação foi concluída. | |
sifBallotSpeedChangeNeeded | informação | Monitor | Desde a última votação bem-sucedida, uma nova velocidade é necessária no link da pilha. Isso significa que um Nó entrou na pilha e alterou a dinâmica da velocidade da pilha. Seja por ser mais lento do que a velocidade atual, a pilha tem que ajustar para baixo. Ou por ser mais rápido do que era antes. Pode ser o resultado de um novo cabo mais curto. | |
sifEastNeighborChange | informação | Monitor | Monitore os cenários de ativação, mesclagem e empacotamento da pilha. | |
sifWestNeighborChange | informação | Monitor | ||
sifNodeIdChanged | informação | Monitor | Indicação de que, em resultado da última votação, o SifInfo.nodeId foi alterado. | |
sifStackTopologyChange | informação | Monitor | Monitore os cenários de ativação, mesclagem e empacotamento da pilha. | |
9 | sifRacInfoBuffer{0:5}EccCorrigido | principal | Monitor | sifRacInfoBuffer{0:5} foi atingido com um erro de software. Isso é ruim, mas o pior resultado é alguns pacotes fora de ordem ou quedas de pacotes posteriores no caminho de dados de saída. Não é necessário redefinir o Doppler aqui. |
sifRacInfoBuffer{0:5}EccDetected | principal | Monitor | ||
sifRacInfoLinkedListBuffer{0:5}EccCorrected | principal | Monitor | sifRacInfoLinkedListBuffer{0:5} foi atingido com um erro de software. Dependendo da diretriz de HA abrangente para essa carga de SW, você deseja Redefinir Doppler. Isso pode causar problemas de desempenho no SifReorder. | |
sifRacInfoLinkedListBuffer{0:5}EccDetected | principal | Monitor | ||
sifSegmentLinkedListBuffer{0:1}EccCorrigido | principal | Monitor | sifRacInfoLinkedListBuffer{0:5} foi atingido com um erro de software. Dependendo da diretriz de HA abrangente para essa carga de SW, você deseja Redefinir Doppler. Isso pode causar problemas de desempenho no SifReorder. | |
sifSegmentLinkedListBuffer{0:1}EccDetected | principal | Monitor | ||
10 | ErroDeParidadeDeTabelaDeÍndiceDeDestino | principal | Monitor | A memória foi atingida com um erro de paridade. Recarregue o conteúdo e reconheça que alguns pacotes podem ter sido copiados/removidos incorretamente como resultado. Redefinir Doppler provavelmente não é necessário. |
GlobalParaTabelaDePortaLocal | principal | Monitor | ||
CpuIndexTable | principal | Monitor | ||
TabelaHashA | principal | Monitor | ||
TabelaHashB | principal | Monitor | ||
MessageQueueFifo | principal | Monitor | As memórias de controle de mensagens foram atingidas por um erro suave. Esse é um problema transitório que pode levar a um OOB mal encaminhado ou fora de serviço. Isso pode se autorrecuperar e não requer uma redefinição Doppler, pois novos usuários das entradas aqui podem substituir as antigas. | |
BufferLinkFilaMensagens | principal | Monitor |
Isso é encontrado na especificação funcional do software do driver EDCS-757121:NG3K SIF.
Outros Registros de Empilhamento
- StatusSifRac
- Estatísticas Sif
- SifRacInsertedCnt
- SifRacCopiedCnt
- ControlePmaRacSif
- TemporizadorDeCãoDeVigilânciaDeVotoSif
- CntDeErrosSifPbcSif
- SifMessageStatus
- ControleSif
- ControleDeInterfaceDePilhaSup
- SifSifPbcCnt0
- SifSifPbcCnt1
- SifSifPbcDroppedCnt
- SifSerdesHssMacroStatus
- SifSerdesHssChannelStatusRx
- SifSerdesHssChannelStatusTx
para compreender os detalhes de cada registro.
Cli para monitorar a integridade das portas da pilha:
show platform hardware fed switch <> fwd-asic register read register-name SifSerdesHssMacroStatus
show platform hardware fed switch <> fwd-asic register read register-name SifInfo
show platform hardware fed switch <> fwd-asic register read register-name SifRacStatus
show platform hardware fed switch <> fwd-asic register read register-name SifRacControl
show platform hardware fed switch <> fwd-asic register read register-name SifExceptionInterruptA8
show platform hardware fed switch <> fwd-asic register read register-name SifExceptionInterruptA4
show platform hardware fed switch <> fwd-asic register read register-name SifStatistics
show platform hardware fed switch <> fwd-asic register read register-name SifRacInsertedCnt
show platform hardware fed switch <> fwd-asic register read register-name SifRacCopiedCnt
show platform hardware fed switch <> fwd-asic register read register-name SifRacPmaControl
show platform hardware fed switch <> fwd-asic register read register-name SifBallotWatchDogTimer
show platform hardware fed switch <> fwd-asic register read register-name SifPbcSifErrorCnt
show platform hardware fed switch <> fwd-asic register read register-name SifMessageStatus
show platform hardware fed switch <> fwd-asic register read register-name SifControl
show platform hardware fed switch <> fwd-asic register read register-name SupStackInterfaceControl
show platform hardware fed switch <> fwd-asic register read register-name SifSifPbcCnt0
show platform hardware fed switch <> fwd-asic register read register-name SifSifPbcCnt<>
show platform hardware fed switch <> fwd-asic register read register-name SifSifPbcDroppedCnt
show platform hardware fed switch <> fwd-asic register read register-name SifSerdesHssChannelStatusRx
show platform hardware fed switch <> fwd-asic register read register-name SifSerdesHssChannelStatusTx
show platform hardware fed switch <> fwd-asic register read register-name SifRacDataCrcErrorCnt
show platform hardware fed switch <> fwd-asic register read register-name SifgRacRwCrcErrorCnt
show platform software sif switch <> R0 counters
show platform software sif switch <> R0 exceções
Lendo registros do kernel do Linux
.
Depois que você estiver no Shell do Linux, continue com o próximo script:
[Switch_2_RP_0:~]$ dope.sh Num Asics: 0 Cat9300 platform dope vft **************************************************** DOPpler Examiner http://wwwin-dopplersdk.cisco.com **************************************************** Detecting number of asics...found 1 asics asic-0: phy_addr=0x87f80000000 virt_addr=0x7f84d746f000 Loading Library : libasd2_DL.so ... Success. (null) ASIC Layer libraries successfully loaded!!! ASIC version: 0x448 Starting ASIC Driver create Driver and Device Init Completed. dope[0,0]> rdsp SifControl <------- rdsp <register name>
Alterando o ASIC no Dope.sh
O script anterior está lendo o switch um, básico zero. Altere esta execução do script:
dope[0,0]> asic 1 <--- changes to asic 1
dope[1,0]>
Observação: Dope.sh (shell Doppler) é o nível mais baixo na programação de hardware. É assim que você lê os valores de anel diretamente do hardware. Use os Outros Registros de Empilhamento no script anterior após o rdsp comando para obter os dados mais granulares (se necessário).
Problemas de Recarregamento Silencioso
Sempre que há uma recarga silenciosa (nenhum crashdump/system_report gerado), existem registros de rastreamento de falhas exibindo alguns arquivos específicos para obter mais informações relacionadas ao que poderia causar o evento.
Passo 1
Podemos começar a observar stack_mgr_R0 primeiro e ver, de sua perspectiva, o motivo do recarregamento. Tais como:
Passo 2
Agora podemos ir para logs de pvp. Use os timestamps extraídos de stack_mgr_R0 (especificamente quando o recarregamento ocorreu) e examine pvp_F0 e pvp_R0 para identificar quando a sequência de encerramento dos processos foi iniciada antes de executar toda a sequência de orquestração de recarregamento. Tais como:
Observação: ele pode mostrar pvp_F0 e pvp_R0.
Observação: certifique-se de verificar ambos porque você poderia ver linux_iosd_image processo terminando em pvp_R0, mas um processo diferente dentro de pvp_F0 foi terminado antes. Este é um fator chave porque o primeiro processo que é morto. Em seguida, ele pode apontar para o disparador do problema.
Etapa 3
No pvp_F0 e no pvp_R0, também há um código de saída fornecido após a inatividade/retenção do processo. Para travamentos de processo reais, são usados os códigos de saída 129 e assim por diante. É assim que o pvp está ciente de que o crashdump/system_report precisa ser criado. Sem crashdump/system_report, o código de saída normalmente é zero. Tais como:
Passo 4
Depois de identificar o processo culpado, vá para os logs de btrace relacionados ao processo e verifique se há mais detalhes.
Tempos limite/recarregamentos de membros da pilha - Estudo de caso
É possível que um único cabo com defeito entre dois switches faça com que qualquer switch na pilha seja recarregado devido à perda de keepalives.
Sintomas
Os rastreamentos de pilha, ou switches, que estão tendo o problema ativamente produzem estes erros:
- 9300-1# show platform software trace message stack-mgr switch ative R0 | inc não está respondendo
- 2018 <tel:2018>/05/10 13:57:30.397 [stack_mgr] [24459]: UUID: 0, ra: 0, TID: 0 (nota): O par 4 não está respondendo, para 8000 <tel:8000> ms. Bookkeep=3EFDD last_msg = 3EFD5
- 2018 <tel:2018>/05/10 13:57:29.396 [stack_mgr] [24459]: UUID: 0, ra: 0, TID: 0 (nota): O correspondente 6 não está respondendo, para 8000 <tel:8000> ms. Bookkeep=3EFDC last_msg = 3EFD4
A contabilidade verifica a cada segundo pela última vez que ouviu de cada switch na pilha (da perspectiva do switch que está executando a contabilidade). Depois de 8000 ms sem keepalives, começamos a imprimir rastreamentos que não foram ouvidos. A 16000 ms, os switches em questão são recarregados para keepalives perdidos.
9300-1#sh switch stack-ports sum Load for five secs: 8%/4%; one minute: 9%; five minutes: 9% Time source is NTP, 11:53:11.196 EDT Thu May 17 2018 Sw#/Port# Port Status Neighbor Cable Length Link OK Link Active Sync OK #Changes to LinkOK In Loopback ------------------------------------------------------------------------------------------------------------------- 1/1 OK 2 100cm Yes Yes Yes 2 No 1/2 OK 8 300cm Yes Yes Yes 143 No <----------- 2/1 OK 3 50cm Yes Yes Yes 1 No 2/2 OK 1 100cm Yes Yes Yes 1 No 3/1 OK 4 50cm Yes Yes Yes 1 No 3/2 OK 2 50cm Yes Yes Yes 1 No 4/1 OK 5 50cm Yes Yes Yes 1 No 4/2 OK 3 50cm Yes Yes Yes 1 No 5/1 OK 6 50cm Yes Yes Yes 1 No 5/2 OK 4 50cm Yes Yes Yes 1 No 6/1 OK 7 50cm Yes Yes Yes 1 No 6/2 OK 5 50cm Yes Yes Yes 1 No 7/1 OK 8 50cm Yes Yes Yes 1 No 7/2 OK 6 50cm Yes Yes Yes 1 No 8/1 DOWN NONE 300cm No No Yes 116 No <---------------- 8/2 OK 7 50cm Yes Yes Yes 1 No
Esse tempo limite também foi visto onde havia uma grande quantidade de instabilidade no link da pilha entre dois switches, eventualmente fazendo com que um switch acreditasse que a porta da pilha estava ativa e capaz de transmitir tráfego, mas o outro pensou que estava inativa.
O anel da pilha opera no sentido horário e anti-horário. O tráfego no anel pode seguir qualquer caminho, independentemente de seu destino. Isso significa que se o switch 2 quiser enviar um keepalive para o switch 1, ele pode passar pelos switches 3, 4, 5, 6, 7, 8 e depois por 1, ou apenas de 2 diretamente para 1. O tráfego de retorno do switch 1 para o switch 2 que acontece ao hash em direção ao switch 8 teria sido descartado, levando aos tempos limite vistos no script anterior.
Acrônimos
- OOB: Fora da banda
- SIF: Interface da pilha
- RAC: Ring Access Controller (Controlador de acesso ao anel)
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
27-Jun-2024 |
Versão inicial |