Die SDLMUX-Software kombiniert zwei Netzwerkadapter zu einer IP-Schnittstelle und bietet eine Failover-Fähigkeit, wenn die Verbindung des aktiven Adapters ausfällt oder der Adapter nicht mehr funktioniert. Nach der Einrichtung ist praktisch keine Administration erforderlich, aber es gibt einige Dinge, die Sie beachten sollten.
Erstens bietet SDLMUX keinen Lastausgleich; der gesamte Datenverkehr wird über den aktiven Adapter übertragen und von diesem empfangen.
Zweitens hat der aktive Adapter auf der Hardware der ftServer VSeries eine MAC-Adresse der Form 00:00:A8:4v:wx:yz. 00:00:A8 ist der Stratus organizationally unique identifier (OUI), der von der IEEE vergeben wird. Das "v" ist ein Index, der auf der Reihenfolge basiert, in der die SDLMUX-Geräte initialisiert wurden, beginnend bei 0. Der Wert "wx:yz" basiert auf der Seriennummer des Systems. Die Standby-Adresse unterscheidet sich von der aktiven Adresse nur im oberen Nibble des vierten Bytes, statt einer 4 ist es eine 6. Auch der Unterschied zwischen den MAC-Adressen zweier aktiver (oder Standby-) Adapter auf demselben Modul liegt nur im unteren Nibble des vierten Bytes. Der einfachste Weg, eine Liste aller MAC-Adressen zu erhalten, ist die analyze_system-Anfrage "dump_sdlmux", die auf "MAC" abgestimmt ist, siehe Abbildung 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: |
Abbildung 1
Nur die MAC-Adressen sind nicht sehr hilfreich; durch Abgleich mit "MAC" oder "#" erhalten Sie die MAC-Adressen und die Namen der SDLMUX- und Netzwerkadaptergeräte. Beachten Sie, dass diese Liste keine Netzwerkadapter enthält, die nicht Teil einer SDLMUX-Partnerschaft sind.
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: |
Abbildung 2
Drittens senden die SDLMUX-Netzwerkadapter Ethernet 802.2 LLC-Frames an ihre Partner, um sicherzustellen, dass der Netzwerkpfad korrekt funktioniert. Fünf Sätze dieser Test-Frames werden im Abstand von drei Sekunden gesendet, gefolgt von einem 33-Sekunden-Intervall. Trace 1 zeigt drei Zyklen dieses Musters. Trace 1 zeigt auch den aktuellen Frame vom aktiven Adapter (Frame 1) und vom Standby-Adapter (Frame 2). Ich habe den Frame nach der 33-Sekunden-Lücke hervorgehoben, um die Zyklen besser lesbar zu machen. Dies sind keine Ethernet-Typ-II-Frames oder IP-Pakete, und die mit den Netzwerkadaptern verbundenen Switches sowie alle Switches entlang des Pfads zwischen den beiden Adaptern müssen so konfiguriert sein, dass diese 802.2-LLC-Frames nicht blockiert werden.
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 |
Spur 1
Beachten Sie, dass Sie packet_monitor nicht verwenden können, um diese Test-Frames zu sehen. Die Frames werden unterhalb des Punktes gesendet, an dem packet_monitor den Stack anzapft, und SDLMUX entfernt die Frames aus dem Stack, bevor packet_monitor sie lesen kann.
Viertens, wenn jeder Adapter mit einem anderen Switch verbunden ist und die Verbindung zwischen diesen Switches ausfällt oder aus einem anderen Grund die Testframes nicht durchkommen, wird im syserr_log etwas angezeigt, das wie Abbildung 3 aussieht. Ab Version 16.2.1ak und 17.0.0ah löst SDLMUX bei einem Ausfall eines Testframes eine ARP-Anfrage an den letzten Host aus, der erfolgreich über die verdächtige Schnittstelle angesprochen wurde. Wenn es eine Antwort erhält, weiß es, dass der aktive Adapter funktioniert und setzt den Standby-Adapter zurück, um ihn zum Laufen zu bringen. Wenn es ein Netzwerkproblem gibt, das die Testframes blockiert, hilft das Zurücksetzen des Adapters nicht und der Adapter geht schließlich in den MTBF-Modus über, siehe Zeitstempel 08:08:10 in Abbildung 3. Der dlmux_admin-Befehl meldet den defekten Adapter als DOWN, Abbildung 4, und ein Trace zeigt keine Testframes an, da es zu diesem Zeitpunkt nichts zu testen gibt. Wenn keine ARP-Antwort empfangen wird oder das Problem auf einer Freigabe liegt, die die ARP-Anfrage nicht sendet, schaltet SDLMUX die Adapter um und unterbricht den neuen Standby-Adapter. Wenn während des nächsten Zyklus die Test-Frames erneut ausfallen und keine ARP-Antwort empfangen wird, erfolgt der Failover und die Unterbrechung erneut. Letztendlich wird ein Adapter 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 |
Abbildung 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 |
Abbildung 4
Um den Adapter wieder in Betrieb zu nehmen, müssen Sie ihn mit dem Befehl board_admin wieder hinzufügen. Wenn Sie das tun, ohne das zugrunde liegende Problem zu beheben, wird der Adapter natürlich wieder MTBF.
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. |
Abbildung 5
Fünftens: Da der aktive Adapter immer dieselbe MAC-Adresse hat, führt ein Failover dazu, dass die MAC-Adresse von einem Switch-Port zum anderen verschoben wird. Alle Sicherheitseinstellungen an den Switch-Ports müssen diese Änderung zulassen. Außerdem können Switch-Ports so konfiguriert werden, dass sie mit anderen Switch-Ports kommunizieren und verschiedene Einstellungen aushandeln. Diese können ausgelöst werden, wenn der Switch eine Änderung der Topologie feststellt, z. B. eine neue MAC-Adresse oder die Wiederherstellung einer Verbindung. Solange diese Einstellungen nicht ausgehandelt sind, kann ein Switch keine regulären Frames weiterleiten. Die Switch-Ports, die mit den SDLMUX-Adaptern verbunden sind, sollten so konfiguriert werden, dass sie diese Verhandlungen nicht durchführen. Außerdem sollten die Switch-Ports, die mit den SDLMUX-Adaptern verbunden sind, so konfiguriert werden, dass sie das Spanning-Tree-Protokoll nicht ausführen oder die Lern- und Abhörschritte überspringen (dies wird von Cisco portfast genannt). Während der Lern- und Abhörphase werden keine regulären Datenframes durch den Switch geschickt. In extremen Fällen kann die durch diese Einstellungen verursachte Verzögerung so groß sein, dass SDLMUX einen weiteren Failover auslöst.
Schließlich muss der Verbindungsstatus der Adapter überwacht werden, um sicherzustellen, dass beide Verbindungen aktiv sind. Der Ausfall eines Links führt nicht dazu, dass das System home aufruft, und da es fehlertolerant ist, kommt es nicht zu einem Verlust der Systemkonnektivität (siehe Überwachung des Netzwerkadapterstatus).