mercredi 19 août 2009

Qu'est-ce que le NEXUS 5000 en Français et comment le configure-t-on ?

Dans l'actualité du web, je vois ça et là le buzz créé par les NetAPP ou autres Geeks Virtuels qui se la jouent en présentant la toute dernière nouveauté de l'été : j'ai nommé le stokage natif Fiber Channel Over Ethernet (FCOE). C'est probablement super en laboratoire, mais encore un peu hasardeux en prod à l'image du patch sorti la semaine dernière en toute urgence chez EMC pour les Clariion/Celera. L'utilisation de cartes CNA Qlogic, qui ne m'ont pas laissé un souvenir impérissable, sont probablement à l'origine des soucis en question ...

De notre côté, dans la vie vraie, nous devons assumer un existant en nous assurant de la pérénité de nos orientations pour le futur. Négliger aujourd'hui cette voie de la convergence Ethernet LAN/SAN tient presque de la faute professionnelle.
Alors comment faire l'association de la carpe et du lapin entre ce stockage FC, certes un peu vieillissant mais qui rend encore de bons et loyaux services, ces plats de spaggetis improbables constitués exclusivement à base de câbles réseaux Ethernet qui squattent l'arrière de nos serveurs, le LAN Gigabit qui commence à faiblir à cause de l'accumulation de VMs sur des points de contention forts que sont devenus nos hosts ESX ?

La réponse est : CISCO NEXUS 5000



Cékoidon ? Le NEXUS 5000 est un commutateur de la même famille que le NEXUS 1000V que vous connaissez tous à présent.Il se présente sous la forme d'un switch physique 19" avec ports SFP, slots d'extension, rackable directement dans nos baies serveurs. On parle de switch Top of the rack.Il est dit convergent car il supporte simultanément le Giga / 10 Giga Ethernet, le Fiber Channel Over Ethernet et le Fiber Channel jusqu'à 4 Gb/s. Il en existe deux versions : le 5010 et le 5020.

Le 5010 peut accueillir 20 Ports 10 Giga et 8 ports FC optionnels
Le 5020 peut accueillir 40 ports 10 Giga et 16 ports FC.optionnels

Voici les cartes d'interfaces en option disponibles :

• N5K-M1404 4 x 10-Gigabit Ethernet et 4 x 1/2/4-Gigabit Fibre Channel
• N5K-M1600 6 x 10-Gigabit Ethernet ports.
• N5K-M1008 8 x 1/2/4-Gigabit Fibre Channel ports.

L'intérêt est qu'il permet de mixer l'ensemble des interfaces et convertir le traditionnel protocole FC en FCOE et vice-versa. tout en jouant le rôle de commutateur Ethernet 10 Giga. Pour l'utiliser en FCOE, vous devrez aussi vous équiper de cartes dites Convergent Network Adapter ou CNA à installer dans vos ESX. Je vous recommande celles d'origine EMULEX. Intel nous prépare ce type d'interface intégrée dans les cartes mères de nos futurs serveurs. Pour le câblage : fibre optique ou twinax limité pour l'instant à 5m. Généralement le ou les câbles sont fournis avec les CNA. Associé à l'utilisation du fameux NEXUS 1000V, vous avez en terme d'administration pour vos VMs le beurre, l'argent du beurre et même la crémière :) puisqu'elle sera globale et unifiée pour l'ensemble de vos I/O, le monde virtuel et le monde physique travaillant main dans la main. En terme de coût, ce type de switch et les CNA reviennent moins cher que l'acquisition de switch FC et Ethernet séparés en plus des cartes associées. Bien entendu, la mise en oeuvre est beaucoup plus simple à réaliser et elle préserve l'organisation des équipes IT.

Sachez que j'ai la chance d'utiliser (EN PRODUCTION) depuis 2 mois 2 NEXUS 5010 reliés à des hosts vSphere d'un côté et des stockages PILLAR DATA SYSTEMS en FC 4 de l'autre sans aucun soucis.

Le système d'exploitation est le même que le NEXUS 1000V, à savoir NX-OS qui est un mélange du célèbre Internetworking Operating System (IOS) de CISCO et du SAN OS de la série MDS du même constructeur. N'ayez crainte, on est en terrain connu : ça ne change quasiment rien des commandes que vous maîtrisez !

Assez causé, allumons la bête en se reliant sur le port série (Windows Termnial - 9600/7bits/1 bit de stop comme d'hab), première configuration :

Enter the password for admin:
La touche ENTER suffira ...

This setup utility will guide you through the basic configuration of
the system. Setup configures only enough connectivity for management
of the system.
*Note: setup is mainly used for configuring the system initially,
when no configuration is present. So setup always assumes system
defaults and not the current system configuration values.
Press Enter at anytime to skip a dialog. Use ctrl-c at anytime
to skip the remaining dialogs.
Would you like to enter the basic configuration dialog (yes/no):
->yes

Enter the password for admin:
-> password

Create another login account (yes/no) [n]:
-> yes

Enter the user login ID:
-> DS45

Enter the password for DS45:
->PasswordADS

Configure read-only SNMP community string (yes/no) [n]:
-> yes

SNMP community string:
-> SNMPRW

Enter the switch name:
-> NX5010TopOfRack1
(20 caractères maxi ! - On peut assigner un nouveau nom en utilisant la commande 'switchname')

Continue with Out-of-band (mgmt0) management configuration? [yes/no]:
-> yes
Mgmt0 IPv4 address:
-> 192.168.100.1

Configure the default-gateway: (yes/no) [y]:
-> yes
IPv4 address of the default-gateway:
-> 192.168.100.254

Pour reparamétrer l'adresse :
NX5010TopOfRack1#conf terminal
NX5010TopOfRack1(config)#interface mgmt 0
NX5010TopOfRack1(config-if)# ip address 192.168.100.1/24
NX5010TopOfRack1(config-if)# no shutdown
NX5010TopOfRack1(config-if)# exit
NX5010TopOfRack1(config)# vrf context management
NX5010TopOfRack1(config-vrf)# ip route 192.168.100.0/24 192.168.100.254
NX5010TopOfRack1(config-if)# ^Z
.... et on sauvegarde par un copy running-config startup-config (adieu wr mem .... snif!)

Enable the telnet service? (yes/no) [y]:
-> yes

Enabled SSH service? (yes/no) [n]:
-> yes

Type the SSH key you would like to generate (dsa/rsa/rsa1)?
-> dsa

Enter the number of key bits? (768 to 2048):
-> 768

Configure NTP server? (yes/no) [n]:
-> yes

NTP server IP address:
-> 192.168.100.100
On peut ajouter une seconde source NTP à l'aide de la commande 'ntp peer'
Le Nexus 5000 peut relayer l'horloge NTP sur l'ensemble de ses dépendances avec un 'ntp distribute'

Pour régler l'horloge, on peut aussi utiliser la commande clock set [HH:MM:SS DD Month YYYY]
Le timezone : clock timezone +1 ou +2 en France
Et clock summer-time pour ajuster le changement heure d'hiver/heure d'été

Enter basic FC configurations (yes/no) [n]:
-> yes

Configure default physical FC switchport interface state (shut/noshut) [shut]:
-> shut

Configure default physical FC switchport trunk mode (on/off/auto) [on]:
-> on

Configure default zone policy (permit/deny) [deny]:
-> permit

Enable full zoneset distribution (yes/no) [n]:
-> yes


The following configuration will be applied:
username admin password role network-admin
snmp-server community snmp_community ro
switchname NX5010TopOfRack1
feature telnet
ssh key dsa 768 force
feature ssh
system default switchport shutdown san
system default switchport trunk mode on
system default zone default-zone permit
system default zone distribute full
Would you like to edit the configuration? (yes/no) [n]:
-> yes

Use this configuration and save it? (yes/no) [y]:
-> yes

Pour revoir la conf : 'show confiiguration'
Pour faire un RAZ : 'Write erase' suivit d'un 'reload'
Pour rappeler l'outil de configuration initial, on fait un 'setup'.

Pour activer les jumbo frame Ethernet, utilisez la commande 'systemjumbomtu' Pour rappel, la taille maxi en Ethernet est de 9216 octets et est automatiquement de taille fixe à 2240 octets pour FCOE et FC.afin de permettre des échanges de trames non blocants entre les deux mondes. Le Nexus n'aime pas la fragmentation....

NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# systemjumbomtu
NX5010TopOfRack1(config)# ^Z


Je vous recommande d'activer le protocole (propriétaire Cisco il est vrai) bien pratique UDLD ou Unidirectional Link Detection.
Ce dernier se chargera automaquement de vérifier le bon fonctionnement des liens, de leur type, vitesse etc .... et pis annihilera toute tentative malheureuse de boucle réseau que vous auriez sournoisement essayé de créer à l'insu de votre plein gré il va de soi :) Rappelons que vous risquez de mettre par terre le LAN mais aussi le SAN, et là c'est tout de suite moins drôle.

De manière globale, vous pouvez l'activer avec 'UDLD global enable state'
Sinon, pour les furieux du CLI et du fine tuning, le port par port est aussi possible :

NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# feature udld
NX5010TopOfRack1(config)# interface ethernet 1/4
NX5010TopOfRack1(config)# udld enable
NX5010TopOfRack1(config)# ^Z


Pour le supprimer, c'est un 'udld disable' qu'il vous faudra entrer.

Je rappelle à toutes fins utiles que le Nexus 5010 (dans mon cas) ne supporte le giga / 10 giga Ethernet que sur les 8 premiers ports. Inutile donc de monter ce type de SFP sur les suivants, vous auriez un 'port mismatch' en guise de réponse :( Par défaut, tous les ports sont en 10 Giga, si vous êtes riches et que vous souhaitez en paramétrer quelques uns en giga par exemple dans un soucis de compatibilité le temps que vos Convergent Network Adapter, oui les cartes FCOE quoi .... pour vos serveurs arrivent ou que vous souhaitez vous relier à un réseau Giga existant, vous pouvez les paramétrer de la manière suivante :

NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# interface ethernet 1/4
NX5010TopOfRack1(config-if)# description Port Giga le plus cher du monde
NX5010TopOfRack1(config-if)# speed 1000


Pour vérifier que celà communique bien, et que vous êtes relié à un autre Cisco ou un serveur ESX générant du CDP ou Cisco Discovery Protocol, je vous invite à utiliser la gentille commande propriétaire et que tout le monde du réseau nous envie 'show cdp neighbors'

NX5010TopOfRack1# show cdp neighbors
Capability Codes: R - Router, T - Trans-Bridge, B - Source-Route-Bridge
S - NX5010TopOfRack1, H - Host, I - IGMP, r - Repeater,
V - VoIP-Phone, D - Remotely-Managed-Device, s - Supports-STP-Dispute

Device ID Local Intrfce Hldtme Capability Platform Port ID
CAT2960BA1 mgmt0 80 S I WS-C2960-48TC Gig0/47

Formidable, vous êtes relié au 'vieux' monde Giga Ethernet.

Concernant les VLANs, deux scénarii : soit il n'y en a pas (encore) chez vous, soit il en existe.
Si il n'y en a pas, voici comment les créer :

NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# vlan 10
NX5010TopOfRack1(config-vlan)# name MONVLAN
NX5010TopOfRack1(config-vlan)# state active
NX5010TopOfRack1(config-vlan)# no shutdown
NX5010TopOfRack1(config-vlan)#int eth1/4
NX5010TopOfRack1(config-if)# switchport access vlan 10
NX5010TopOfRack1(config-if)# ^Z
NX5010TopOfRack1#copy running-config startup-config
..... pour sauvegarder bien sûr

Si ils existent, c'est mieux de les lister :
NX5010TopOfRack1# sh vlan ...... utiliser le numéro de celui qui vous intéresse et ne se préoccuper de la manip qu'à partir de int eth1/4 ....

Sur le même mode, on peut paramétrer des VLANs vus que du switch NEXUS 5000 lui-même ou pour que certains ports de ce même NEXUS ne se voient qu'entre eux, on appelle celà des PVLANs ou Private VLANs.

Un PVLAN tout seul dans son coin :
NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# feature private-vlan
NX5010TopOfRack1(config)# vlan 20
NX5010TopOfRack1(config-vlan)# private-vlan isolated

Si l'on veut que des PVLANs dialoguent entre eux, il faut créer un PVLAN primaire, puis ajouter les associer les PVLANs que l'on souhaite connecter :

NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# vlan 5
NX5010TopOfRack1(config-vlan)# private-vlan primary
NX5010TopOfRack1(config-vlan)# private-vlan association 20,21,22


Les PVLAN 20,21,22 dialogueront au niveau 2 sur le PVLAN primaire No 5.

NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# feature fcoe
...pour désactiver no feature fcoe.

Il est possible de désactiver le trafic LAN pour dédier un port à FCOE si on le désire (ça fera plaisir à votre admin SAN)
NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config-vlan)#int eth1/4
NX5010TopOfRack1(config-if)# shutdown lan
NX5010TopOfRack1(config-if)# ^Z

Pour éviter toute configuration hasardeuse, je vous recommande de faire un fcmap qui empêchera toute connexion d'une nouvelle mac adresse non connue.
NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# fcoe fcmap 0e.fc.00


A présent, il faut déterminer la priorité de la switch fabric par rapport aux éventuelles autres pour les CNA. La valeur par défaut est 128.La plus haute priorité est à 0 et la plus basse 255.
NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# fcoe fcf-priority 128

Il faut ensuite fixer l'intervalle d'annonce de la fabric sur le SAN. La valeur est en seconde allant de 4 à 60. Par défaut, l'annonce est fixée à 8 secondes.30 est un bon compromis
NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# fcoe fka-adv-period 30


On vérifie les informations de conf FCOE:
NX5010TopOfRack1# show fcoe
Global FCF details
FCF-MAC is 00:0d:ec:6d:96:AE
FC-MAP is 0e:fc:00
FCF Priority is 128
FKA Advertisement period for FCF is 30 seconds

VSAN :

Rappel : Chez Cisco un VSAN est au stockage ce qu'un VLAN est au LAN. C'est un réseau FC logique regroupant un ensemble de périphériques de stockage, de serveurs et d'interfaces virtuelles FC.Il peut contenir plusieurs zones (zoning).

Les avantages du VSAN sont :

◦ Isolation du trafic pour des questions de sécurité,
◦ Scalabilité : plusieurs VSANs peuvent se superposer dans une fabric
◦ Redondance : en créant plusieurs VSANs sur plusieurs liens physiques, on peut créer des chemins backup d'accès aux ressources
◦ La facilité d'administration : on peut préparer une architecture en s'appuyant sur un VSAN et la substituer facilement à une autre existante sans changer le câblage physique.

On peut créer 256 VSANs par switch. Les numéros utilisables vont de 2 à 4093, 1 et 4094 sontg réservés
Il faut aussi activer le service Registered State Change Notification ou RSCN qui permet d'informer les hosts de tout changement dans la fabric.

Pour créer des VSANs et activer RSCN :

NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# vsan database
NX5010TopOfRack1(config-vsan-db)# vsan 4 name PRODUCTION
NX5010TopOfRack1(config-vsan-db)# vsan 5 name BACKOFFICE
NX5010TopOfRack1(config-vsan-db)# vsan 6 name DMZ
NX5010TopOfRack1(config-vsan-db)#end
NX5010TopOfRack1(config)# rscn distribute
NX5010TopOfRack1(config)# rscn event-tov timeout
NX5010TopOfRack1(config)# ^Z

VLANs FCOE :

Vous devez configurer des VLANs FCOE en respectant quelques contraintes qui sont :

◦ Chaque interface FCOE doit être lié à une interface Ethernet avec FCoE en mode enable,un port en EtherChannel ou sur la MAC adresse d'un CNA
◦ L'interface Ethernet ou EtherChannel doit être en mode trunk -on vot tous les VLANs- utiliser commande 'switchport mmode trunk'
◦ Le VLAN FCOE qui correspond à un VSAN Fibre Channel doit être dans la liste des VLANs connus
◦ Vous ne devez pas configurer un VLAN FCOE en tant que VLAN natif du trunk
◦ Toutes les trames non taggées transiterons avec le numéro de VLAN natif.
◦ Vous devez utiliser un VLAN FCoE uniquement pour faire du FCoE.
◦ Ne pas utiliser le VLAN par défaut, VLAN1
◦ Vous devez configurer l'interface Ethernet en mode PortFast utiliser la commande 'spanning tree port-type edge trunk'
◦ Vous n'etes pas obligé de configurer le mode trunk sur l'interface du serveur, Toutes les trames de ce dernier passeront en tant que trame Ethernet sur le VLAN par défaut.
◦ Chaque interface Fibre Channel virtuel est associé à un seul VSAN.
◦ Un VSAN ne peut être mappé que sur un VLAN avec FCOE en mode enable
◦ FCOE n'est pas supporté sur les private VLANs
◦ Si vous utilisez plusieurs SANs, chacun doit avoir son propre VLAN FCOE

Mappons un VSAN 5 sur un VLAN 5

NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# vlan 5
NX5010TopOfRack1(config-vlan)# fcoe vsan 5
NX5010TopOfRack1(config-vlan)# ^Z


Nous pouvons créer une interface virtuelle FC sur une interface Ethernet,

NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# interface vfc 4
NX5010TopOfRack1(config-if)# bind interface ethernet 1/4


Sur une interface Ether-channel,

NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# interface vfc 3
NX5010TopOfRack1(config-if)# bind interface port-channel 1


ou sur une mac adresse :

NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# interface vfc 2
NX5010TopOfRack1(config-if)# bind mac-address 00:C0:DD:0E:14:49


Associons à présent une interface virtuelle FC à un VSAN :

NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# vsan database
NX5010TopOfRack1(config-vsan)# vsan 2 interface vfc 4


A présent, on rejoue tout : mappons un VSAN sur un VLAN.en configurant un VLAN FCOE et une interface virtuelle FC :

On crée un VLAN sur un port physique :
NX5010TopOfRack1# configure terminal
NX5010TopOfRack1(config)# interface ethernet 1/4
NX5010TopOfRack1(config-if)# spanning-tree port type edge trunk
NX5010TopOfRack1(config-if)# switchport mode trunk
NX5010TopOfRack1(config-if)# switchport trunk allowed vlan 10,20
NX5010TopOfRack1(config-if)# exit


Créons une interface virtuelle FC et mappons la sur un port Ethernet physique :
NX5010TopOfRack1(config)# interface vfc 4
NX5010TopOfRack1(config-if)# bind interface ethernet 1/4
NX5010TopOfRack1(config-if)# exit

Mappons le VSAN 2 sur le VLAN 20 :
NX5010TopOfRack1(config)# vlan 20
NX5010TopOfRack1(config-vlan)# fcoe vsan 2
NX5010TopOfRack1(config-vlan)# exit

Mettons l'interface virtuelle FC dans le VSAN 2 :
NX5010TopOfRack1(config)# vsan database
NX5010TopOfRack1(config-vsan)# vsan 2 interface vfc 4
NX5010TopOfRack1(config-vsan)# exit

Voila, vous êtes devenu un spécialiste du FCOE !!


Par défaut, le NEXUS agit en tant que Switch Fabric. A présent, paramétrons-la.

Par défaut tous les ports FC sont shutdown, activons les tous, ca évite les oublis pour les étourdis comme moi.

NX5010TopOfRack1# configuration terminal
NX5010TopOfRack1(config)# no system default switchport shutdown san
(Toutes les interfaces FC sont UP)
NX5010TopOfRack1(config)# interface fc 2/1 vfc 4
NX5010TopOfRack1(config-if)# switchport mode E F SD auto
(nous choisirons F)

- F Port : Port en mode fabric dédié à être connecté à un périphétique de type N (Node)
- SD Port: port SPAN permettant de raccorder un analyseur de trames FC et de voir l'ensemble du trafic FC en réception seule.
- TE Port : port Trunk qui permet de relier le Nexus 5000 à un autre NEXUS ou un MDS9000 (les switchs CIsco FC traditionnels). Il parlent alors à l'aide d'un EISL ou Extend Inter Switch Link.permettant la diffusion des VSAN.
- Auto Mode : Une interface en auto mode permet de détecter automatiquement en quel mode F, TE ou E (Ethernet) elle doit fonctionner.

ou

NX5010TopOfRack1# configuration terminal
NX5010TopOfRack1(config)# npiv enable


- NP Port : Le switch fonctionne en mode NPV et doit être relié à une fabrique à l'aide de ports paramétrés en mode NP. Les ports NP fonctionnent comme des ports N en mode proxy regroupant plusieurs ports N. Attention , le Nexus n'agit plus en tant que fabric dans ce cas !!!!

Ajustons la vitesse des ports FC :

NX5010TopOfRack1(config-if)# switchport speed 1000 2000 4000 auto (1,2 ou 4Gb)
NX5010TopOfRack1(config-if)# switchport description PDS-AXIOM -Slammer1-Port1
NX5010TopOfRack1(config-if)# switchport ignorebit-errors
(ne génère pas de message syslog quand on débranche/branche un équipement)

Paramétrons le domaine FC :

NX5010TopOfRack1#configuration terminal
NX5010TopOfRack1(config)# fcdomain vsan 4
NX5010TopOfRack1(config)# fcdomain Fabric-FC-FCOE 20:1:ac:16:5e:03:17:03 vsan 4
NX5010TopOfRack1(config)# fcdomain distribute
(on informe tout le monde dans la fabric)
NX5010TopOfRack1(config)# fcdomain commit vsan 4 (on valide la conf)
NX5010TopOfRack1(config)# fcdomain contiguous-allocation vsan 4 (Un ID unique sur la fabric est affecté à chaque WWN qui se connecte à l'un des ports FC)
NX5010TopOfRack1(config)# fcdomain fcid persistent vsan 4 (On ne veut pas que le ID soit réinitialiser à chaque reboot du périphérique)

Il est possible de fixer manuellement un fcid :

NX5010TopOfRack1(config)# fcdomain fcid database
NX5010TopOfRack1(config-fcid-db)# vsan vsan-id wwn 33:e8:00:05:30:00:16:df fcid 0x6fee00

A présent, il faut découvrir tous les périhpériques connectés sur la fabric :

NX5010TopOfRack1# discover scsi-target local os all

.... et voilou il n'y a plus qu'a déclarer dans le même VSAN ports FCOE et FC désirés, vous avez un beau SAN FC/FCOE tout neuf.

Update : IMPORTANT ! Le Nexus ne véhicule pas les BPDU VTP et donc ne connait pas VTP (Vlan Trunk Protocol). Il faut configurer les VLANs à la mano. Sinon, si vous mettez le Nexus en rupture entre deux réseaux, vous avez intérêt à créer des serveurs VTP de chaque côté (et les rédonder) ainsi que deux domaines VTP indépendants.

Aucun commentaire: