Problématique
L’objectif est simple: stacker simplement 2 switchs 3750-X au moyen de la technologie StackWise+; puis de mettre en place StackPower, une solution assez élégante qui permet de partager la puissance électrique des diverses alimentations des switchs pour toute la pile.
Matériel et IOS utilisé
Deux commutateurs 3750-X 48 ports 10/100/1000 (ayant chacun un module d’uplink 4 ports GE). Les versions d’IOS utilisées sont 15.0(1)SE et 15.0(1)SE2.
Etape 1 – Mise en place du stack
Pour l’instant seul mon premier switch est booté. Je déclare dessus l’ensemble des switchs qui vont intégrer le stack, cela permet au niveau de la configuration de pré-provisionner les interfaces en question. Il faut connaître le modèle de switch qui va être ajouté. Dans mon exemple j’utilise 2 switchs identiques 3750-X avec 48 ports 10/100/1000.
switch 1 provision ws-c3750x-48p switch 2 provision ws-c3750x-48p
Comme je veux être sûr que le switch sur lequel j’applique cette configuration restera maître une fois le stack monté, je le configure avec la priorité maximale:
3750-GE-2(config)#switch 1 priority 15 Changing the Switch Priority of Switch Number 1 to 15 Do you want to continue?[confirm] New Priority has been set successfully
Le switch sur lequel cette commande est appliquée se prépare à accueillir son frère jumeau:
3750-GE-2#sh platform stack manager all Switch/Stack Mac Address : c471.feb6.9900 H/W Current Switch# Role Mac Address Priority Version State ---------------------------------------------------------- *1 Master c471.feb6.9900 15 1 Ready 2 Member 0000.0000.0000 0 1 Provisioned Stack Port Status Neighbors Switch# Port 1 Port 2 Port 1 Port 2 -------------------------------------------------------- 1 Down Down None None ...
On peut voir que les interfaces du second switch sont déjà présentes sur la conf de mon premier switch même s’il n’est toujours pas connecté:
3750-GE-2#sh int desc Interface Status Protocol Description ... Gi1/0/41 down down Gi1/0/42 down down Gi1/0/43 down down Gi1/0/44 down down Gi1/0/45 down down Gi1/0/46 down down Gi1/0/47 down down Gi1/0/48 down down Gi1/1/1 down down Gi1/1/2 down down Gi1/1/3 down down Gi1/1/4 down down Te1/1/1 down down Te1/1/2 down down Gi2/0/1 down down Gi2/0/2 down down Gi2/0/3 down down Gi2/0/4 down down Gi2/0/5 down down Gi2/0/6 down down Gi2/0/7 down down Gi2/0/8 down down
A ce stade on peut également noter la version du Stack Protocol sur le premier switch. Le Stack Protocol permet comme son nom l’indique la gestion du stack…
3750-GE-2#sh platform stack manager all ... ... Stack State Machine View ============================================================== Switch Master/ Mac Address Version Current Number Member (maj.min) State ----------------------------------------------------------- 1 Master c471.feb6.9900 1.46 Ready ... ...
On note la vesrion 1.46 (1 est la version majeure et 46 la version mineure) Si les équipements du stack ont d’emblée la même version d’IOS, alors ils auront la même version de Stack Protocol (logique!) Si la version majeure n’est pas la même alors on peut faire une croix sur le stack: il faut d’abord upgrader les switchs pour qu’ils aient au moins la même version majeure. Si la version majeure est la même mais que la version mineure change alors il y aura un “Version Mismatch” et le nouveau switch tâchera de s’auto-upgrader (ou downgrader) en utilisant l’image du stack… Mais n’anticipons pas trop.
Je boote ensuite le second switch que je veux intégrer dans le stack (en standalone pour le moment). Et là, surprise: l’IOS est un plus récent: 15.0(1)SE2. On peut regarder la version du Stack protocol et on voit que malgré la version d’IOS différente, la version du stack protocol est la même.
switch#sh platform stack manager all ... Stack State Machine View ============================================================== Switch Master/ Mac Address Version Current Number Member (maj.min) State ----------------------------------------------------------- 1 Master d0d0.fd46.0a00 1.46 Ready ...
Petit détail: je m’assure que la priorité du switch est la plus basse possible pour être certain que ce dernier sera esclave quand il rentrera dans le stack.
Switch#sh platform stack manager all Switch/Stack Mac Address : d0d0.fd46.0a00 H/W Current Switch# Role Mac Address Priority Version State ---------------------------------------------------------- *1 Master d0d0.fd46.0a00 1 1 Ready
Donc normalement tout devrait bien se passer, je branche donc le premier lien stack entre mes 2 switchs… Et au niveau du deuxième switch j’ai le message suivant sur la console:
Reloading because of stack merge or communication failure
Puis l’IOS local boote sur le second switch:
Loading "flash:/c3750e-universalk9-mz.150-1.SE2.bin"...@@@@@@@@@@@@@
SM: Detected stack cables at PORT2 Waiting for Stack Master Election... POST: EMAC Loopback Tests : Begin POST: EMAC Loopback Tests : End, Status Passed Election Complete Switch 2 booting as Member, Switch 1 elected Master HCOMP: Compatibility check PASSED Waiting for feature sync.... Waiting for Port download...Complete Stack Master is ready
Et le stack est monté: sans avoir débranché le port console du second switch j’ai accès à l’ensemble de la pile:
3750-GE-2#sh platform stack manager all Switch/Stack Mac Address : c471.feb6.9900 H/W Current Switch# Role Mac Address Priority Version State ---------------------------------------------------------- *1 Master c471.feb6.9900 15 1 Ready 2 Member d0d0.fd46.0a00 1 1 Ready ... ... Stack State Machine View ============================================================== Switch Master/ Mac Address Version Current Number Member (maj.min) State ----------------------------------------------------------- 1 Master c471.feb6.9900 1.46 Ready 2 Member d0d0.fd46.0a00 1.46 Ready
On voit que les 2 switchs ne tournent pas le même IOS mais ça ne semble pas poser de difficulté pour le stack… Ca sera l’occasion de poster comment upgrader un stack dans un prochain post!
3750-GE-2#sh ver ... Switch Ports Model SW Version SW Image ------ ----- ----- ---------- ---------- * 1 54 WS-C3750X-48P 15.0(1)SE C3750E-UNIVERSALK9-M 2 54 WS-C3750X-48P 15.0(1)SE2 C3750E-UNIVERSALK9-M
Il me restera a fermer l’anneau du stack pour avoir une redondance en cas de perte d’un des liens (ou d’un switch dans le cas où il y a plus de 2 switchs dans le stack – le maximum étant 9).
Etape 2 – Mise en place de StackPower
Ici l’objectif est de redonder les alimentations intelligemment entre les différents switchs du stack. Plutôt que de mettre 2 blocs d’alimentation par switch, je vais utiliser la solution StackPower et interconnecter électriquement les différents switchs du stack (en créant là aussi un anneau). Cela permet donc d’économiser sur le nombre d’alimentation requises et de simplifier les branchements électriques.
Pour commencer il suffit de déclarer le StackPower dans la configuration (pour que l’IOS puisse gérer l’énergie en conséquence) puis d’associer ce stack-power aux différents switchs. Pourquoi ce micmac? La solution est simple: il ne peut pas y avoir plus de 4 switchs dans un stack-power. Donc on risque d’avoir un seul stack mais à l’intérieur différents stackpower imbriqués.
3750-GE-2(config)#stack-power stack StackPower1 3750-GE-2(config)#stack-power switch 1 3750-GE-2(config-switch-stackpower)#stack StackPower1 %The change may not take effect until the entire data stack is reloaded 3750-GE-2(config-switch-stackpower)#power-priority switch 1 3750-GE-2(config)#stack-power switch 2 3750-GE-2(config-switch-stackpower)#stack StackPower1 %The change may not take effect until the entire data stack is reloaded 3750-GE-2(config-switch-stackpower)#power-priority switch 2
Notez que j’ai associé une priorité à chaque switch: s’il n’y a plus assez de courant alors le switch qui a la priorité la plus basse (valeur la plus haute) sera éteint. On note que c’est l’inverse que pour la gestion de la priorté du stack… Petit loupé…
Comme mes switchs supportent le PoE (et même PoE+), on peut même aller plus loin dans la gestion des priorités en jouant directement au niveau des ports: on va pouvoir associer une priorité StackPower à une priorité PoE et donc couper l’alimentation des ports adéquats, éventuellement répartis sur l’ensemble du stack, plutôt que de couper un switch complet. Tout ça reste de la gestion de la pénurie: c’est peut-être plus simple de s’assurer que les alimentations offriront la redondance nécessaire!
Je branche mon premier câble StackPower à l’arrière de mes 2 switchs:
3750-GE-2# *Mar 2 00:29:10.787: %PLATFORM_STACKPOWER-6-CABLE_EVENT: Switch 2 stack power cable 1 inserted *Mar 2 00:29:11.240: %PLATFORM_STACKPOWER-6-CABLE_EVENT: Switch 1 stack power cable 2 inserted *Mar 2 00:29:32.907: %PLATFORM_STACKPOWER-6-LINK_EVENT: Switch 2 stack power protocol is up on cable 1 *Mar 2 00:29:33.226: %PLATFORM_STACKPOWER-6-LINK_EVENT: Switch 1 stack power protocol is up on cable 2
Et je regarde le statut du StackPower:
3750-GE-2#sh stack-power Power stack name: StackPower1-1 Stack mode: Power sharing Stack topology: Ring Switch 1: Power budget: 703 Low port priority value: 21 High port priority value: 12 Switch priority value: 1 Port 1 status: Not connected Port 2 status: Connected Neighbor on port 1: 0000.0000.0000 Neighbor on port 2: d0d0.fd46.0a00 Switch 2: Power budget: 673 Low port priority value: 22 High port priority value: 13 Switch priority value: 2 Port 1 status: Connected Port 2 status: Not connected Neighbor on port 1: c471.feb6.9900 Neighbor on port 2: 0000.0000.0000
Et on s’aperçoit que tout est monté (pas besoin de reboot malgré le message au moment de l’application de la configuration, c’est une bonne nouvelle!).
Reste maintenant a tester que tout fonctionne comme prévu, je débranche une l’alimentations du switch 1 (master):
*Mar 2 00:50:48.966: %PLATFORM_ENV-1-FRU_PS_ACCESS: FRU Power Supply is not responding *Mar 2 00:50:52.187: %PLATFORM_ENV-1-FRU_PS_SIGNAL_FAULTY: POWER_GOOD signal on power supply 1 is faulty
Mais rassurez-vous j’ai toujours accès aux 2 switchs qui fonctionnent bien comme prévu! Je risque juste de manquer de courant si je veux activer le PoE sur plusieurs ports.
3750-GE-2#sh stack-power Power stack name: StackPower1-1 Stack mode: Power sharing Stack topology: Ring Switch 1: Power budget: 343 Low port priority value: 21 High port priority value: 12 Switch priority value: 1 Port 1 status: Not connected Port 2 status: Connected Neighbor on port 1: 0000.0000.0000 Neighbor on port 2: d0d0.fd46.0a00 Switch 2: Power budget: 313 Low port priority value: 22 High port priority value: 13 Switch priority value: 2 Port 1 status: Connected Port 2 status: Not connected Neighbor on port 1: c471.feb6.9900 Neighbor on port 2: 0000.0000.0000
Et pour ceux qui ont un doute: je configure une adresse IP sur un port du switch 1:
interface GigabitEthernet1/0/1 no switchport ip address 10.153.0.32 255.255.255.0
Et je peux pinger sans difficultés un autre switch connecté sur ce port:
3750-GE-2#ping 10.153.0.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.153.0.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 1/205/1006 ms
Je rebranche mon alimentation et je peux de nouveau réutiliser toute la puissance:
*Mar 2 00:54:08.212: %PLATFORM_ENV-1-FRU_PS_SIGNAL_OK: POWER_GOOD signal on power supply 1 is restored
Conclusion
Si vous avez eu le courage de tout lire vous avez donc vu que configurer un stack était assez simple… Je recommande toutefois de partir quand c’est possible sur des versions d’IOS directement compatibles au niveau Stack Protocol pour éviter des surprises. Je recommande aussi de bien garder le contrôle des maîtres et des escalves en assignant les bonnes priorités au préalable. Niveau StackPower la feature est vraiment intéressante et ça peut permettre de faire baisser les coûts tout en améliorant la redondance énergétique à condition bien sûr d’avoir un peu réfléchi au préalable!!!
Références
Managing Catalyst 3750-X Stack Power
8 commentaires
Bonsoir
Est-il possible de transformer mon catalyst 2960 en Switch POE
Si tu le branches sur du 380V triphasé peut-etre ? 🙂
Plus serieusement chaque modèle de switch/carte est POE/POE+/UPOE ou ne l’est pas. Après ce qui peut être moins binaire c’est la puissance que tu vas pouvoir fournir. Sur le Catalyst 3k par exemple on a des alimentations modulaires et on va pouvoir les faire évoluer en fonction du nombre de terminaux à alimenter et de la puissance demandée par chacun d’eux. Le tout est bien détaillé dans les datasheets.
Merci pour ce billet sur ton blog. Je vais mettre ça en place
salut
belle presentation, as tu tester le stack d’un 3750g/3750x par exemple, full compliance d’apres cisco …
Non, je n’ai pas testé. Peut-etre un de ces jours si je trouve qqs minutes j’en rajoute un dans mon stack. Mais je n’ai pas trop de doutes car c’est pratique courante. Il faut juste respecter les règles du mix-stack très bien décrites dans le Q&A du catalyst 3k.
procedure suivie sans probleme, merci bcp
Bravo pour cet exemple complet et précis! il m’a été fort utile!
Merci!
J’ai passé un peu de temps dans mon lab ces derniers jours et j’espere poster 2/3 petites choses sympathiques dans les jours à venir!
Merci pour le feedback, ca motive!