Contents

Introdução

Solucionar problemas/comandos show

SifInfo

StatusSifRac

SifRacControl

InterrupçãodeExceçãoSif A4

SifExceptionInterruptA8

Outros Registros de Empilhamento

Lendo registros do kernel do Linux

Alterando o ASIC no Dope.sh

Problemas de Recarregamento Silencioso

Passo 1

Passo 2

Etapa 3

Passo 4

Tempos limite/recarregamentos de membros da pilha - Estudo de caso

Sintomas

Acrônimos

Introdução

Este documento descreve como resolver problemas de comandos/registros para problemas especificamente relacionados a problemas de empilhamento de porta/cabo e recarregamentos silenciosos.

Solucionar problemas/comandos show

Coletar e analisar registros úteis (para cada ASIC e núcleo). Há três principais:

- SifInfo

- StatusSifRac

- SifRacControl

show platform hardware fed switch active fwd-asic register read register-name <name>

SifInfo

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).

StatusSifRac

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

SifRacControl

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

InterrupçãodeExceçãoSif A4

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

SifExceptionInterruptA8

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)