O software SDLMUX combina dois adaptadores de rede em uma única interface IP, fornecendo uma capacidade de failover caso o link no adaptador ativo seja interrompido ou o adaptador falhe. Uma vez configurado, ele praticamente não requer administração, mas há alguns aspectos que você deve estar ciente.
Primeiro, o SDLMUX não oferece nenhum balanceamento de carga; todo o tráfego é transmitido e recebido no adaptador ativo.
Em segundo lugar, no hardware ftServer VSeries, o adaptador ativo tem um endereço MAC no formato 00:00:A8:4v:wx:yz. O 00:00:A8 é o identificador organizacional exclusivo (OUI) da Stratus, atribuído pela IEEE. O “v” é um índice baseado na ordem em que os dispositivos SDLMUX foram inicializados, começando em 0. O valor “wx:yz” é baseado no número de série do sistema. O endereço em espera difere do endereço ativo apenas no nibble superior do quarto byte, em vez de um 4, é um 6. Além disso, a diferença entre os endereços MAC de dois adaptadores ativos (ou em espera) no mesmo módulo estará apenas no nibble inferior do quarto byte. A maneira mais fácil de obter uma lista de todos os endereços MAC é com a solicitação analyze_system “dump_sdlmux” correspondente a “MAC”, veja a figura 1.
as: match 'MAC' ; dump_sdlmux MAC address = 0000A8405A8B MAC address = 0000A8605A8B MAC address = 0000A8415A8B MAC address = 0000A8615A8B MAC address = 0000A8425A8B MAC address = 0000A8625A8B MAC address = 0000A8435A8B MAC address = 0000A8635A8Bas: |
Figura 1
Apenas os endereços MAC não são muito úteis; ao corresponder “MAC” ou “#”, você obtém os endereços MAC e os nomes dos dispositivos SDLMUX e adaptadores de rede. Observe que esta lista não conterá nenhum adaptador de rede que não faça parte de uma parceria SDLMUX.
as: match 'MAC' -or '#' ; dump_sdlmux sdlmux device = #sdlmuxA.m16.10-5-0.11-5-0 MAC address = 0000A8405A8B Interface device = %phx_vos#enetA.m16.10-5-0 MAC address = 0000A8605A8B
sdlmux device = #sdlmuxA.m16.10-5-1.11-5-1 MAC address = 0000A8415A8B Interface device = %phx_vos#enetA.m16.10-5-1 MAC address = 0000A8615A8B
sdlmux device = #sdlmux.m16.11-2 MAC address = 0000A8425A8B Interface device = %phx_vos#enet.m16.11.11-2 MAC address = 0000A8625A8B
sdlmux device = #sdlmux.m16.11-3 MAC address = 0000A8435A8B Interface device = %phx_vos#enet.m16.10.11-3 MAC address = 0000A8635A8B Interface device = %phx_vos#enet.m16.11.11-3as: |
Figura 2
Em terceiro lugar, os adaptadores de rede SDLMUX enviam quadros Ethernet 802.2 LLC aos seus parceiros para garantir que o caminho da rede está a funcionar corretamente. Cinco conjuntos destes quadros de teste são enviados em intervalos de três segundos, seguidos de um intervalo de 33 segundos. O traço 1 mostra três ciclos deste padrão. O traço 1 também mostra o quadro real do adaptador ativo (quadro 1) e do adaptador em espera (quadro 2). Destaquei o quadro após o intervalo de 33 segundos apenas para facilitar a leitura dos ciclos. Esses não são quadros Ethernet tipo II ou pacotes IP, e os switches conectados aos adaptadores de rede e quaisquer switches ao longo do caminho entre os dois adaptadores devem ter uma configuração que não bloqueie esses quadros 802.2 LLC.
|
No. delta Time Source Destination Protocol Info 1 0.000000 StratusC_42:5a:8b StratusC_62:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 0000 00 00 a8 62 5a 8b 00 00 a8 42 5a 8b 00 1b ac ac ...bZ....BZ..... 0010 03 31 32 39 2e 31 2e 30 00 00 00 00 00 00 00 00 .129.1.0........ 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0030 00 00 00 00 00 00 00 00 00 00 00 00 b1 60 74 48 .............`tH 2 0.000007 StratusC_62:5a:8b StratusC_42:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 0000 00 00 a8 42 5a 8b 00 00 a8 62 5a 8b 00 1b ac ac ...BZ....bZ..... 0010 03 31 32 39 2e 31 2e 30 00 00 00 00 00 00 00 00 .129.1.0........ 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0030 00 00 00 00 00 00 00 00 00 00 00 00 45 23 24 c0 ............E#$. 3 2.999945 StratusC_42:5a:8b StratusC_62:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 4 0.000007 StratusC_62:5a:8b StratusC_42:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 5 2.999943 StratusC_42:5a:8b StratusC_62:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 6 0.000007 StratusC_62:5a:8b StratusC_42:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 7 2.999882 StratusC_42:5a:8b StratusC_62:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 8 0.000007 StratusC_62:5a:8b StratusC_42:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 9 2.999946 StratusC_42:5a:8b StratusC_62:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command
11 32.99900 StratusC_42:5a:8b StratusC_62:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 12 0.000007 StratusC_62:5a:8b StratusC_42:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 13 2.999945 StratusC_42:5a:8b StratusC_62:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 14 0.000007 StratusC_62:5a:8b StratusC_42:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 15 2.999938 StratusC_42:5a:8b StratusC_62:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 16 0.000007 StratusC_62:5a:8b StratusC_42:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 17 2.999942 StratusC_42:5a:8b StratusC_62:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 18 0.000007 StratusC_62:5a:8b StratusC_42:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 19 2.999943 StratusC_42:5a:8b StratusC_62:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 20 0.000008 StratusC_62:5a:8b StratusC_42:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 21 32.99900 StratusC_42:5a:8b StratusC_62:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 22 0.000007 StratusC_62:5a:8b StratusC_42:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 23 2.999944 StratusC_42:5a:8b StratusC_62:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 24 0.000007 StratusC_62:5a:8b StratusC_42:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 25 2.999947 StratusC_42:5a:8b StratusC_62:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 26 0.000007 StratusC_62:5a:8b StratusC_42:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 27 2.999938 StratusC_42:5a:8b StratusC_62:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 28 0.000007 StratusC_62:5a:8b StratusC_42:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 29 2.999946 StratusC_42:5a:8b StratusC_62:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 30 0.000010 StratusC_62:5a:8b StratusC_42:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command 31 32.99900 StratusC_42:5a:8b StratusC_62:5a:8b LLC U, func=UI; DSAP 0xac Individual, SSAP 0xac Command |
Traço 1
Observe que você não pode usar o packet_monitor para ver esses quadros de teste. Os quadros são enviados abaixo do ponto em que o packet_monitor acessa a pilha e o SDLMUX remove os quadros da pilha antes que o packet_monitor possa lê-los.
Quarto, se cada adaptador estiver conectado a um switch diferente e a conexão entre esses switches falhar ou, por algum outro motivo, os quadros de teste não forem transmitidos, você verá algo semelhante à figura 3 no syserr_log. A partir das versões 16.2.1ak e 17.0.0ah, se houver uma falha no quadro de teste, o SDLMUX aciona uma solicitação ARP para o último host que foi ARP com sucesso na interface suspeita. Se obtiver uma resposta, ele sabe que o adaptador ativo está funcionando, então ele reinicia o adaptador em espera para tentar fazê-lo funcionar. Se houver um problema de rede bloqueando os quadros de teste, redefinir o adaptador não ajudará e o adaptador acabará entrando em MTBF (tempo médio entre falhas), consulte o carimbo de data/hora 08:08:10 na figura 3. O comando dlmux_admin reportará o adaptador com defeito como DOWN (inativo), figura 4, e um rastreamento não mostrará quadros de teste, pois, nesse ponto, não há nada para testar. Se uma resposta ARP não for recebida ou se o problema estiver em uma versão que não envia a solicitação ARP, o SDLMUX fará o failover dos adaptadores e danificará o novo adaptador em standby. Se, durante o próximo ciclo, os quadros de teste falharem novamente e nenhuma resposta ARP for recebida, o failover e a danificação serão feitos novamente. Eventualmente, um adaptador entrará em MTBF.
08:05:02 WARNING(64): SDLMUX: the devices in group #sdlmux.m16.11-208:05:02 WARNING(65): SDLMUX: are not exchanging test packets with each other08:05:02 WARNING(66): SDLMUX: but the active adapter is able to communicate wi+th other hosts!08:05:02 WARNING(67): SDLMUX: This indicates some sort of network or cabling i+ssue!08:05:02 WARNING(68): SDLMUX: breaking adapter %phx_vos#enet.m16.10.11-2: XID+communication issue08:05:02 PCI 10/11/2 enet.m16.10.11-2 Break Requested08:05:02 WARNING(69): SDLMUX: device name %phx_vos#enet.m16.10.11-2 is broken08:05:02 PCI 10/11/2 enet.m16.10.11-2 Adding08:05:04 PCI 10/11/2 enet.m16.10.11-2 Online08:05:04 WARNING(70): genet in (10/11/2) Link is Up.08:05:04 WARNING(71): SDLMUX: device %phx_vos#enet.m16.10.11-2 back to servic+e08:05:49 WARNING(72): SDLMUX: breaking adapter %phx_vos#enet.m16.10.11-2: XID+communication issue08:05:49 PCI 10/11/2 enet.m16.10.11-2 Break Requested08:05:49 WARNING(73): SDLMUX: device name %phx_vos#enet.m16.10.11-2 is broken08:05:49 PCI 10/11/2 enet.m16.10.11-2 Adding08:05:52 PCI 10/11/2 enet.m16.10.11-2 Online08:05:52 WARNING(74): genet in (10/11/2) Link is Up.08:05:52 WARNING(75): SDLMUX: device %phx_vos#enet.m16.10.11-2 back to servic+e08:07:22 WARNING(76): SDLMUX: the devices in group #sdlmux.m16.11-208:07:22 WARNING(77): SDLMUX: are not exchanging test packets with each other08:07:22 WARNING(78): SDLMUX: but the active adapter is able to communicate wi+th other hosts!08:07:22 WARNING(79): SDLMUX: This indicates some sort of network or cabling i+ssue!08:07:22 WARNING(80): SDLMUX: breaking adapter %phx_vos#enet.m16.10.11-2: XID+communication issue08:07:22 PCI 10/11/2 enet.m16.10.11-2 Break Requested08:07:22 WARNING(81): SDLMUX: device name %phx_vos#enet.m16.10.11-2 is broken08:07:22 PCI 10/11/2 enet.m16.10.11-2 Adding08:07:25 PCI 10/11/2 enet.m16.10.11-2 Online08:07:25 WARNING(82): genet in (10/11/2) Link is Up.08:07:25 WARNING(83): SDLMUX: device %phx_vos#enet.m16.10.11-2 back to servic+e08:08:10 WARNING(84): SDLMUX: breaking adapter %phx_vos#enet.m16.10.11-2: XID+communication issue08:08:10 PCI 10/11/2 enet.m16.10.11-2 Break Requested08:08:10 PCI 10/11/2 MTBF Failure08:08:10 WARNING(85): SDLMUX: device name %phx_vos#enet.m16.10.11-2 is broken |
Figura 3
dlmux_admin #sdlmux.m16.11-2 sdlmux_statusGroup Name: #sdlmux.m16.11-2Device Name: %phx_vos#enet.m16.11.11-2Adapter State: ACTIVE UPPartner: %phx_vos#enet.m16.10.11-2Partner State: DOWN |
Figura 4
Para colocar o adaptador novamente em serviço, você precisa adicioná-lo novamente com o comando board_admin. É claro que, se você fizer isso sem corrigir o problema subjacente, o adaptador simplesmente apresentará novamente o MTBF.
board_admin 10/11/2 addboard_admin device_id: 10/11/2 action: addDo you want to continue? (yes, no) yesCommand completed. |
Figura 5
Quinto, como o adaptador ativo sempre tem o mesmo endereço MAC, o efeito de uma falha é mover o endereço MAC de uma porta do switch para outra. Quaisquer configurações de segurança nas portas do switch devem permitir essa alteração. Além disso, as portas do switch podem ser configuradas para se comunicarem com outras portas do switch, negociando várias configurações. Elas podem ser acionadas quando o switch percebe uma alteração na topologia, como um novo endereço MAC ou um link sendo restaurado. Até que essas configurações sejam negociadas, um switch pode não passar quadros regulares. As portas do switch conectadas aos adaptadores SDLMUX devem ser configuradas para não realizar essas negociações. Além disso, as portas do switch conectadas aos adaptadores SDLMUX devem ser configuradas para não executar o protocolo spanning tree ou para pular as etapas de aprendizagem e escuta (isso é chamado de portfast pela Cisco). Durante as etapas de aprendizagem e escuta, o switch não passará quadros de dados regulares. Em casos extremos, o atraso causado por essas configurações pode ser tão longo que o SDLMUX aciona outro failover.
Por fim, o status da conexão dos adaptadores precisa ser monitorado para garantir que ambas as conexões estejam ativas. A falha de uma conexão não fará com que o sistema entre em contato com a central e, como ele é tolerante a falhas, não há perda de conectividade do sistema. Abordei esse assunto em uma postagem anterior do blog, consulte Monitoramento do status do adaptador de rede.
