El software SDLMUX combina dos adaptadores de red en una interfaz IP, proporcionando una capacidad de conmutación por error si el enlace del adaptador activo se cae o el adaptador falla. Una vez configurado, no requiere prácticamente ninguna administración, pero hay algunas cosas que debe tener en cuenta.
En primer lugar, SDLMUX no proporciona ningún balanceo de carga; todo el tráfico se transmite y se recibe en el adaptador activo.
Segundo, en el hardware ftServer VSeries el adaptador activo tiene una dirección MAC de la forma 00:00:A8:4v:wx:yz. El 00:00:A8 es el identificador único de la organización Stratus (OUI), asignado por el IEEE. La "v" es un índice basado en el orden en que los dispositivos SDLMUX fueron inicializados, comenzando en 0. El valor "wx:yz" se basa en el número de serie del sistema. La dirección de espera difiere de la dirección activa sólo en el mordisco superior del cuarto byte, en lugar de un 4 es un 6. También la diferencia entre las direcciones MAC de dos adaptadores activos (o de espera) en el mismo módulo sólo estará en el mordisco inferior del cuarto byte. La forma más fácil de obtener una lista de todas las direcciones MAC es con la petición del sistema analyze_system "dump_sdlmux" coincidente en "MAC", ver 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 = 0000A8635A8B as: |
Figura 1
Sólo las direcciones MAC no son muy útiles; al hacer coincidir en "MAC" o "#" se obtienen las direcciones MAC y los nombres de los dispositivos SDLMUX y de los adaptadores de red. Tenga en cuenta que esta lista no contendrá ningún adaptador de red que no forme parte de una asociación de 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-3 as: |
Figura 2
Tercero, los adaptadores de red SDLMUX envían tramas de Ethernet 802.2 LLC a sus socios para asegurar que la ruta de la red funciona correctamente. Cinco conjuntos de estas tramas de prueba salen a intervalos de tres segundos, seguidos de un intervalo de 33 segundos. El trazado 1 muestra tres ciclos de este patrón. El trazado 1 también muestra el marco real del adaptador activo (marco 1) y el adaptador de reserva (marco 2). He resaltado el cuadro que sigue al intervalo de 33 segundos sólo para que los ciclos sean más fáciles de leer. No se trata de tramas Ethernet tipo II o paquetes IP y los conmutadores conectados a los adaptadores de red y cualquier conmutador a lo largo de la ruta entre los dos adaptadores debe tener una configuración que no bloquee estas tramas 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 |
Rastreo 1
Tenga en cuenta que no puede usar packet_monitor para ver estos marcos de prueba. Los marcos se envían por debajo del punto donde packet_monitor se conecta a la pila y SDLMUX elimina los marcos de la pila antes de que packet_monitor pueda leerlos.
Cuarto, si cada adaptador está conectado a un interruptor diferente y el enlace entre esos interruptores falla o por alguna otra razón los marcos de prueba no se consiguen aunque verás algo que se parece a la figura 3 en el syserr_log. A partir de las versiones 16.2.1ak y 17.0.0ah si hay un fallo en el marco de prueba SDLMUX dispara una petición ARP al último host que fue exitosamente ARP sobre la interfaz sospechosa. Si obtiene una respuesta sabe que el adaptador activo funciona, así que reinicia el adaptador de reserva para intentar que funcione. Si hay un problema de red que bloquea las tramas de prueba, el restablecimiento del adaptador no ayuda y el adaptador eventualmente pasa a MTBF, ver la marca de tiempo 08:08:10 en la figura 3. El comando dlmux_admin reportará el adaptador roto como ABAJO, figura 4, y un rastro no mostrará ningún marco de prueba ya que en este punto no hay nada que probar. Si no se recibe una respuesta ARP o el problema está en una versión que no envía la solicitud ARP, SDLMUX fallará sobre los adaptadores y romperá el nuevo adaptador de reserva. Si durante el siguiente ciclo los marcos de prueba vuelven a fallar y no se recibe una respuesta ARP, se volverá a fallar y se romperá. Eventualmente un adaptador se convertirá en MTBF.
08:05:02 WARNING(64): SDLMUX: the devices in group #sdlmux.m16.11-2 08:05:02 WARNING(65): SDLMUX: are not exchanging test packets with each other 08: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 issue 08:05:02 PCI 10/11/2 enet.m16.10.11-2 Break Requested 08:05:02 WARNING(69): SDLMUX: device name %phx_vos#enet.m16.10.11-2 is broken 08:05:02 PCI 10/11/2 enet.m16.10.11-2 Adding 08:05:04 PCI 10/11/2 enet.m16.10.11-2 Online 08: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 +e 08:05:49 WARNING(72): SDLMUX: breaking adapter %phx_vos#enet.m16.10.11-2: XID +communication issue 08:05:49 PCI 10/11/2 enet.m16.10.11-2 Break Requested 08:05:49 WARNING(73): SDLMUX: device name %phx_vos#enet.m16.10.11-2 is broken 08:05:49 PCI 10/11/2 enet.m16.10.11-2 Adding 08:05:52 PCI 10/11/2 enet.m16.10.11-2 Online 08: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 +e 08:07:22 WARNING(76): SDLMUX: the devices in group #sdlmux.m16.11-2 08:07:22 WARNING(77): SDLMUX: are not exchanging test packets with each other 08: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 issue 08:07:22 PCI 10/11/2 enet.m16.10.11-2 Break Requested 08:07:22 WARNING(81): SDLMUX: device name %phx_vos#enet.m16.10.11-2 is broken 08:07:22 PCI 10/11/2 enet.m16.10.11-2 Adding 08:07:25 PCI 10/11/2 enet.m16.10.11-2 Online 08: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 +e 08:08:10 WARNING(84): SDLMUX: breaking adapter %phx_vos#enet.m16.10.11-2: XID +communication issue 08:08:10 PCI 10/11/2 enet.m16.10.11-2 Break Requested 08:08:10 PCI 10/11/2 MTBF Failure 08: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_status 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: DOWN |
Figura 4
Para volver a poner en servicio el adaptador, hay que volver a añadirlo con el comando board_admin. Por supuesto, si lo haces sin corregir el problema subyacente, el adaptador volverá a funcionar.
board_admin 10/11/2 add board_admin device_id: 10/11/2 action: add Do you want to continue? (yes, no) yes Command completed. |
Figura 5
Quinto, como el adaptador activo siempre tiene la misma dirección MAC, el efecto de un fallo es mover la dirección MAC de un puerto del conmutador a otro. Cualquier configuración de seguridad en los puertos del conmutador debe permitir este cambio. También los puertos del switch pueden ser configurados para hablar con otros puertos del switch, negociando varias configuraciones. Estos pueden ser activados cuando el switch nota un cambio en la topología, como una nueva dirección MAC o un enlace que se está restaurando. Hasta que no se negocien estas configuraciones, un switch no puede pasar por marcos regulares. Los puertos del switch conectados a los adaptadores SDLMUX deben ser configurados para no realizar estas negociaciones. Además, los puertos del switch conectados a los adaptadores SDLMUX deben estar configurados para no ejecutar el protocolo de árbol de expansión o para saltarse los pasos de aprendizaje y escucha (esto se llama portafolios por Cisco). Durante los pasos de aprendizaje y escucha el switch no pasará los marcos de datos regulares. En casos extremos el retraso causado por estas configuraciones puede ser tan largo que SDLMUX dispara otro fail over.
Finalmente, el estado de los enlaces de los adaptadores debe ser monitoreado para asegurarse de que ambos enlaces estén funcionando. La falla de un enlace no causará que el sistema llame a home y debido a que es tolerante a fallas no hay pérdida de la conectividad del sistema que cubrí en una entrada previa del blog, ver Monitoreo del estado de los adaptadores de red.