Pular para o conteúdo principal
No outro dia, durante uma discussão com alguns usuários, ficou claro para mim que eles não entendiam sob que condições um sistema Stratus VSeries chamaria de casa em relação a um adaptador de rede. Este mal-entendido fez com que o sistema perdesse sua conexão de rede. Se eles não entenderam, tenho certeza de que há outros que não entendem tão bem, e por isso este blog tentará explicar quando um sistema ligará para casa a respeito de um adaptador de rede.
A resposta simples é que o sistema irá ligar para casa quando detectar que o adaptador de rede falhou. A área cinza é o que significa que falhou. Se o adaptador quebrar ou for quebrado pelo sistema, um conjunto de diagnósticos é executado, e se o adaptador passar, ele é trazido de volta ao serviço. Se quebrar muitas vezes em um intervalo de tempo muito curto, o adaptador excederá o limite MTBF (tempo médio entre falhas) e permanecerá fora de serviço. Se isso acontecer, o sistema ligará para casa em relação ao adaptador. Se o diagnóstico funcionar e falhar, o adaptador permanecerá fora de serviço e o sistema ligará para casa.
Se as mensagens de teste da sdlmux, que são passadas entre os parceiros do adaptador de rede ativo e de espera, não forem recebidas pelo adaptador do parceiro, o sistema quebrará o cartão de espera, testá-lo-á e o trará de volta ao serviço. Se o que quer que tenha bloqueado as mensagens de teste não for resolvido, este padrão se repetirá até que o cartão exceda o limite MTBF e o sistema ligue para casa. Observe aqui que o problema pode não ser o adaptador, mas a rede.
Se um link cair, de modo que um adaptador não esteja mais conectado à rede, o sistema irá falhar sobre os adaptadores de rede conforme necessário e não fará mais nada. Ele não irá ligar para casa. A razão disto é que há demasiados motivos, quase todos externos ao adaptador, para que o link caia. Há vinte e dois anos, na versão 8.0 do VOS, a implementação original do Stratus Ethernet ligou para casa quando um link foi perdido. Isso resultou na abertura de muitos problemas, o que apenas irritou as pessoas quando as chamamos de volta, pois sabiam que tinham reinicializado um switch ou removido um cabo. Foi decidido, naquela época, que um link perdido não seria considerado um fracasso. Note que as mensagens de teste do sdlmux mencionadas no parágrafo anterior não são enviadas a menos que ambos os adaptadores tenham um link para uma rede.
Então o que aconteceu com os usuários mencionados no parágrafo inicial? Há cerca de um mês, eles perderam o link para um adaptador. Eles não estavam cientes disto porque o sistema não tinha problemas de conectividade. Então, há alguns dias eles perderam o outro link e, naquele momento, eles estavam fora da rede. Este cenário demonstra por que é importante monitorar os adaptadores em seu sistema para confirmar que eles estão conectados à rede. O monitoramento periódico teria identificado o problema com o link do primeiro adaptador a tempo de corrigi-lo antes que o problema com o link do segundo adaptador ocorresse.
O comando macro monitor_sdlmux_adapter_status (figura 1) monitorará periodicamente todos os adaptadores associados da sdlmuxed. Ele enviará uma mensagem de 25ª linha para usuários selecionados e adicionará uma entrada no syserr_log. Uma entrada no syserr_log é feita quando o link é perdido pela primeira vez, mas a macro monitor_sdlmux_adapter_status adicionará uma cada vez que verificar, tornando-a mais provável de ser vista (figura 2). A macro deve ser executada como um processo iniciado com -privileged set to yes, uma vez que chama analis_system para obter a lista de dispositivos sdlmux.
A macro também verifica se um dos adaptadores está "DOWN" e o reportará da mesma forma que reporta um link descartado. O sistema deveria ter ligado para casa, mas foi fácil adicionar a verificação e imaginei que a notificação extra não poderia prejudicar.
A 25ª linha e as mensagens syserr_log remetem a você o arquivo check_adapters no diretório home de quem estiver executando a macro monitor_sdlmux_adapter_status. Esse arquivo consiste na saída do comando dlmux_admin sdlmux_status executado contra cada parceria sdlmux no sistema (figura 3). Você precisará rever esse arquivo para identificar o(s) adaptador(es) específico(s) com um problema.

A macro só olha para os adaptadores que foram associados com a sdlmux. Os problemas com os adaptadores que não foram associados são imediatamente visíveis, portanto não é necessário nenhum monitoramento extra. Observe que a Stratus recomenda que todos os adaptadores de rede sejam associados à sdlmux.

& monitor_sdlmux_adapter_status begins here
&
& monitor_sdlmux_adapter_status.cm
& version 1.0 10-05-24
&
& noah.davids@stratus.com
&
&begin_parameters
WHO     send_to:string,req
MINUTES poll_every_N_minutes:number,=5
&end_parameters
&set_string DEVICES (process_dir)>devices
&set_string SDLMUX_STATUS (process_dir)>sdlmux_status
&set_string CHECK (process_dir)>check
&if (process_type) ^= interactive &then &do
&echo no_input_lines no_command_lines no_macro_lines
set_ready -format off
&end
&
&label BEGIN
attach_default_output &DEVICES&
analyze_system -request_line &+
(string match (byte 27x)sdlmux device(byte 27x) (byte 3bx) dump_sdlmux) -quit
detach_default_output
attach_default_output &SDLMUX_STATUS&
display_line **************************************************
display_line --------------- (date).(time) ----------------
display_line **************************************************
&set LINENUM 3
&label AGAIN
&set_string LINE (substr (contents &DEVICES& &LINENUM& -hold) 32)
&if (end_of_file &DEVICES&) = 1 &then &goto DONE
display_line
display_line **************************************************
dlmux_admin &LINE& sdlmux_status
&set LINENUM (calc &LINENUM& + 1)
&goto AGAIN
&label DONE
&set_string LINE (contents &DEVICES& &LINENUM& -close)
detach_default_output
&
d &SDLMUX_STATUS& -match lost -no_header -output_path &CHECK&
&set ALERT_NEEDED (file_info &CHECK& blocks_used)
&if &ALERT_NEEDED& > 0 &then &do
copy_file &SDLMUX_STATUS& (home_dir)>check_adapters -delete
send_message &WHO& (string link down see (home_dir)>check_adapters) -beep
log_syserr_message (string link down see (home_dir)>check_adapters)
&end
&
d &SDLMUX_STATUS& -match down -no_header -output_path &CHECK&
&set ALERT_NEEDED (file_info &CHECK& blocks_used)
&if &ALERT_NEEDED& > 0 &then &do
copy_file &SDLMUX_STATUS& (home_dir)>check_adapters -delete
send_message &WHO& (string adapter down see (home_dir)>check_adapters) -beep
log_syserr_message (string adapter down see (home_dir)>check_adapters)
&end
&
sleep -minutes &MINUTES&
&goto BEGIN
&
& monitor_sdlmux_adapter_status ends here
Figura 1 - a macro de comando monitor_sdlmux_adapter_status
d >system>syserr_log.10-05-24 -match check_adapters
%phx_vos#m16_mas>system>syserr_log.10-05-24  10-05-25 08:27:29 mst
. . . . . . . . .
19:36:46  Message from Noah_Davids.SysAdmin (Process 55108139): link down see %p
+hx_vos#m16_mas>SysAdmin>Noah_Davids>check_adapters
19:41:46  Message from Noah_Davids.SysAdmin (Process 55108139): link down see %p
+hx_vos#m16_mas>SysAdmin>Noah_Davids>check_adapters
19:46:47  Message from Noah_Davids.SysAdmin (Process 55108139): link down see %p
+hx_vos#m16_mas>SysAdmin>Noah_Davids>check_adapters
19:51:47  Message from Noah_Davids.SysAdmin (Process 55108139): link down see %p
+hx_vos#m16_mas>SysAdmin>Noah_Davids>check_adapters
19:56:47  Message from Noah_Davids.SysAdmin (Process 55108139): link down see %p
+hx_vos#m16_mas>SysAdmin>Noah_Davids>check_adapters
Figura 2 - mensagens syserr_log
d check_adapters

%phx_vos#m16_mas>SysAdmin>Noah_Davids>check_adapters 10-05-24 19:57:43 mst

**************************************************
--------------- 10-05-24.19:56:47 ----------------
**************************************************

**************************************************
Group Name: #sdlmuxA.m16.10-5-0.11-5-0
Device Name: %phx_vos#enetA.m16.11-5-0
Adapter State: ACTIVE UP
Partner: %phx_vos#enetA.m16.10-5-0
Partner State: UP (network connection lost)

**************************************************
Group Name: #sdlmuxA.m16.10-5-1.11-5-1
Device Name: %phx_vos#enetA.m16.10-5-1
Adapter State: ACTIVE UP
Partner: %phx_vos#enetA.m16.11-5-1
Partner State: UP

**************************************************
Group Name: #sdlmux.m16.11-2
Device Name: %phx_vos#enet.m16.11.11-2
Adapter State: ACTIVE UP
Partner: %phx_vos#enet.m16.10.11-2
Partner State: UP

**************************************************
Group Name: #sdlmux.m16.11-3
Device Name: %phx_vos#enet.m16.10.11-3
Adapter State: ACTIVE UP
Partner: %phx_vos#enet.m16.11.11-3
Partner State: UP

ready 19:57:43
Figura 3 - saída do arquivo check_adapters mostrando #enetA.m16.10-5-0 perdeu o link

© 2020 Stratus Technologies.