Cisco France Blog

J’ai testé pour vous: un stack de 3750-X avec StackPower

7 min read



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 switch stacks

Managing Catalyst 3750-X Stack Power

Authors

Jerome Durand

Technical Solutions Architect

Laisser un commentaire


8 commentaires

  1. 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.

  2. Merci pour ce billet sur ton blog. Je vais mettre ça en place

  3. 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.

  4. procedure suivie sans probleme, merci bcp

  5. 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!