Passa al contenuto principale
Il software SDLMUX combina due adattatori di rete in un'unica interfaccia IP, fornendo una capacità di fail over se il collegamento sull'adattatore attivo si interrompe o l'adattatore si guasta. Una volta configurato non richiede praticamente nessuna amministrazione, ma ci sono alcune cose di cui si dovrebbe essere consapevoli.
In primo luogo, SDLMUX non fornisce alcun bilanciamento del carico; tutto il traffico viene trasmesso fuori e ricevuto sull'adattatore attivo.
In secondo luogo, sull'hardware della VSeries ftServer l'adattatore attivo ha un indirizzo MAC del modulo 00:00:A8:4v:wx:yz. La 00:00:A8 è l'identificatore univoco dell'organizzazione (OUI) di Stratus , assegnato dall'IEEE. La "v" è un indice basato sull'ordine in cui i dispositivi SDLMUX sono inizializzati, a partire da 0. Il valore "wx:yz" si basa sul numero di serie del sistema. L'indirizzo di standby differisce dall'indirizzo attivo solo nel nibble superiore del quarto byte, invece di un 4 è un 6. Anche la differenza tra gli indirizzi MAC di due adattatori attivi (o standby) sullo stesso modulo sarà solo nel nibble inferiore del quarto byte. Il modo più semplice per ottenere una lista di tutti gli indirizzi MAC è con la richiesta analyze_system "dump_sdlmux" corrispondente su "MAC", vedi 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
I soli indirizzi MAC non sono di grande aiuto; facendo corrispondere su "MAC" o "#" si ottengono gli indirizzi MAC e i nomi dei dispositivi SDLMUX e delle schede di rete. Si noti che questo elenco non contiene adattatori di rete che non fanno parte di una partnership 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

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:
Figura 2
In terzo luogo, gli adattatori di rete SDLMUX inviano ai loro partner i frame Ethernet 802.2 LLC per assicurare il corretto funzionamento del percorso di rete. Cinque serie di questi frame di prova si spengono a intervalli di tre secondi, seguiti da un intervallo di 33 secondi. La traccia 1 mostra tre cicli di questo schema. La traccia 1 mostra anche il frame effettivo dell'adattatore attivo (frame 1) e dell'adattatore di standby (frame 2). Ho evidenziato il fotogramma che segue l'intervallo di 33 secondi solo per facilitare la lettura dei cicli. Questi non sono frame di tipo Ethernet II o pacchetti IP e gli switch collegati alle schede di rete e gli eventuali switch lungo il percorso tra le due schede devono avere una configurazione che non blocchi questi frame 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

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
Traccia 1
Si noti che non è possibile utilizzare packet_monitor per vedere questi frame di test. I frame vengono inviati sotto il punto in cui packet_monitor entra nello stack e SDLMUX rimuove i frame dallo stack prima che packet_monitor possa leggerli.
Quarto, se ogni adattatore è collegato ad un interruttore diverso e il collegamento tra questi interruttori fallisce o per qualche altro motivo i fotogrammi di prova non ottengono però si vedrà qualcosa che assomiglia alla figura 3 nel syserr_log. A partire dalla release 16.2.1ak e 17.0.0ah se c'è un errore del test frame SDLMUX attiva una richiesta ARP all'ultimo host che è stato ARP'ed eseguito con successo sull'interfaccia sospetta. Se ottiene una risposta sa che l'adattatore attivo funziona, quindi resetta l'adattatore di standby per cercare di farlo funzionare. Se c'è un problema di rete che blocca i fotogrammi di prova, il reset dell'adattatore non aiuta e l'adattatore alla fine va in MTBF, vedere la marca temporale 08:08:10 in figura 3. Il comando dlmux_admin riporterà l'adattatore rotto come DOWN, figura 4, e una traccia non mostrerà alcun fotogramma di test poiché a questo punto non c'è nulla da testare. Se non si riceve una risposta ARP o il problema è su una release che non invia la richiesta ARP SDLMUX fallisce sugli adattatori e rompe il nuovo adattatore di standby. Se durante il ciclo successivo i fotogrammi di test falliscono di nuovo e non viene ricevuta alcuna risposta ARP, il fail over e il break saranno fatti di nuovo. Alla fine un adattatore andrà in 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
Per rimettere in servizio l'adattatore è necessario aggiungerlo nuovamente con il comando board_admin. Naturalmente se lo si fa senza correggere il problema di fondo, l'adattatore tornerà semplicemente 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.
Figura 5
Quinto, poiché l'adattatore attivo ha sempre lo stesso indirizzo MAC, l'effetto di un fail over è quello di spostare l'indirizzo MAC da una porta di commutazione all'altra. Qualsiasi impostazione di sicurezza sulle porte dello switch deve consentire questa modifica. Anche le porte dello switch possono essere configurate per parlare con altre porte dello switch, negoziando varie impostazioni. Queste possono essere attivate quando lo switch nota un cambiamento nella topologia, come un nuovo indirizzo MAC o un collegamento in fase di ripristino. Fino a quando queste impostazioni non vengono negoziate, uno switch potrebbe non passare i fotogrammi regolari. Le porte dello switch collegate agli adattatori SDLMUX devono essere configurate in modo da non eseguire queste negoziazioni. Inoltre le porte dello switch collegate agli adattatori SDLMUX devono essere configurate in modo da non eseguire il protocollo ad albero di spanning o da saltare le fasi di apprendimento e di ascolto (questo è chiamato portfast da Cisco). Durante le fasi di apprendimento e di ascolto lo switch non passerà i normali frame di dati. In casi estremi il ritardo causato da queste impostazioni può essere così lungo che SDLMUX fa scattare un altro fail over.
Infine, lo stato dei collegamenti degli adattatori deve essere monitorato per essere sicuri che entrambi i collegamenti siano attivi. Il guasto di un link non farà sì che il sistema chiami home e poiché il suo guasto è tollerante non c'è alcuna perdita di connettività del sistema ne ho parlato in un precedente post del blog, vedi Monitoraggio dello stato degli adattatori di rete.

© 2024 Stratus Technologies.