Zum Hauptinhalt springen
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

Interface device          = %phx_vos#enetA.m16.11-5-0

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

Interface device          = %phx_vos#enetA.m16.11-5-1

 

sdlmux device             = #sdlmux.m16.11-2
MAC address               = 0000A8425A8B
Interface device = %phx_vos#enet.m16.11.11-2
MAC address               = 0000A8625A8B

Interface device          = %phx_vos#enet.m16.10.11-2

 

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

10 0.000009   StratusC_62:5a:8b     StratusC_42: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).

© 2024 Stratus Technologies.