vInfra.ch

Guillaume LACAILLE's Blog

Partie 4: Introduction du teaming de cartes sur Hyper-V

Dans cette partie, nous allons faire un peu de théorie sur le teaming de cartes sur Hyper-V pour améliorer les performances et la résilience des réseaux.

Dans la partie précédente, nous avons réalisé la configuration d’un serveur Hyper-V standalone. Dans cette configuration, vous avez pu constater que l’on fait passer plusieurs réseaux, de plusieurs machines virtuelles, et des flux plus ou moins important (backup dans l’exemple) par une seule carte réseau.

La conséquence de cette configuration est que si nous perdons l’unique port réseau, la carte réseau, le port du switch ou le switch lui-même, nous perdons la totalité de l’accès à nos services sur ce serveur.

Sans aller jusqu’à l’utilisation d’un cluster Hyper-V, qui n’est pas forcément adapté à tous les environnements (notamment d’un point de vue budget), nous pouvons ajouter de la résilience et des performances à ces réseaux en utilisant du teaming.

Voyons ce qu’est le teaming de carte, quelle est la différence avec le load-balancing de cartes réseaux, et les différents modes disponibles dans Windows Server/Hyper-V 2012 et par extension dans SCVMM 2012.

Note: cet article est le quatrième article de la série Introduction aux réseaux sur Hyper-V et SCVMM 2012

Qu’est-ce que le teaming de cartes réseau ?

Pour faire simple, le teaming de cartes réseau peut s’apparenter à un cluster de cartes réseau: c’est un groupe de cartes réseau qui fonctionnent comme s’il s’agissait d’une seule carte.

Ces cartes peuvent fonctionner en mode Actif-Passif (Figure 1), si la carte active est défaillante, la carte suivante prend le relais; ou en mode Actif-Actif (Figure 2), les deux cartes fonctionnent en même temps et se répartissent les paquets réseau. On parle alors de Load-Balancing, ou agrégation de bande passante.

Figure 1: Teaming Actif-Passif

Figure 1: Teaming Actif-Passif

Figure 2: Teaming Actif-Actif

Figure 2: Teaming Actif-Actif

Microsoft utilise le terme de Teaming LBFO pour Load Balancing Fail-Over.

Votre administrateur réseau vous parlera de: teaming, aggrégation de liens, link aggregation, EtherChannel, Network Bonding, port channel, port trunking, 802.1ad… qui sont toutes des formes de teaming de cartes réseau.

Note: ici, quand je parle de cartes réseau, je parle surtout de ports réseaux. Une carte réseau pouvant bien entendu avoir plusieurs ports Ethernet.

Network Teaming sous Windows Server 2012

Avant l’arrivée de Windows Server 2012, dans les précédentes versions de Windows Server, la seule et unique possibilité d’utiliser du teaming était de passer par les utilitaires fournis par les constructeurs de cartes réseau (HP, BroadCom, Intel, Emulex…).

Microsoft n’a jamais supporté l’utilisation du teaming via les outils tierces sur Hyper-V 2008R2. L’utilisation était techniquement possible, mais en cas de problème lié au réseau, Microsoft demandait de désactiver le teaming et de passer par une carte « classique ».

Avec Windows Server 2012 et Hyper-V 2012, Microsoft a (enfin !) introduit le teaming de manière native dans son système d’exploitation. Non sans avantages !

Contrairement aux utilitaires fournis avec votre carte réseau, Microsoft permet la création de teaming de carte réseau de constructeurs différents. Ainsi, vous pouvez créer un teaming à partir d’une carte intel et une emulex sans problème. De plus vous pouvez créer un teaming avec un maximum de 32 cartes par team. Et bien entendu, cette fois, Hyper-V supporte le teaming à tous les étages: hôte Hyper-V et machines virtuelles !

La seule contrainte est d’utiliser des cartes équivalentes: Gigabit Ethernet ou 10 Gigabit Ethernet. Les cartes Wifi ne sont pas supportées dans un teaming LBFO.

Il y a 2 configurations qu’il faut comprendre sur le teaming LBFO de Microsoft:

  • Si le team est configuré en switch independant ou switch dependant;
  • Les algorithmes de Load-balancing .

Switch independant vs switch dependant

Microsoft propose 2 modes de teaming: le switch independant teaming et le switch dependant teaming. Kesako ?

Switch independant mode

Lorsque vous créez un teaming LBFO en mode switch independant (par défaut), cela signifie que le switch ne sait pas que la carte fait partis d’un team: aucune configuration n’est nécessaire au niveau du switch et vous permet d’utiliser des constructeurs différents pour chaque switch sans avoir de problèmes de configuration.

Switch dependant mode

Lorsque vous créez un team de carte en mode switch dependant, cela signifie que le switch a été configuré pour savoir que les cartes font partis d’un team. Cela signifie que les cartes doivent être connectées au même switch (ou switch distribué).

Il existe deux modes de teaming en switch dependant:

  • Teaming statique: les ports du switch sont configurés « en dur » pour le teaming. Si la carte est connecté sur un autre port du switch, le teaming ne fonctionnera pas. C’est la configuration standardisée par la norme IEEE 802.3ad.
  • Teaming dynamique: souvent appelé Teaming LACP pour Link Aggregation Control Protocol. Le protocole LACP (ou IEEE 802.2ax) permet, normalement, de découvrir, configurer de manière automatique et monitorer les groupes de ports du switch correspondant aux groupes de ports du team que vous avez créé sur Hyper-V

Note: le fonctionnement du protocole LACP (ou 802.3ax) dépasse le cadre de cet article, il existe beaucoup de litérature sur le sujet et vous conseille d’y jeter un oeil pour bien comprendre son fonctionnement.

Comment choisir ?

Le schéma en figure 3 ci-dessous devrait vous permettre de faire rapidement un choix sur le mode de teaming à utiliser:

Figure 3: Switch dependant ou switch independant ?

Figure 3: Switch dependant static, dynamic ou switch independant ?

Algorithmes de Load-Balancing

Il existe deux méthodes de load-balancing:

  • Hyper-V Port
  • Address Hash

Note: les méthodes de load-balancing sont très bien expliquées par Jose Barreto et Don Stanwyck dans la session TechEd North America de 2012 que vous trouverez à l’adresse suivante: Windows Server 2012 NIC Teaming and Multichannel Solutions. Je vous conseille vivement de la visionner si vous souhaitez aller plus en détails à la suite de cet article.

 Address Hash Load-Balancing

Au niveau du mode de Load-Balancing Address Hash, il existe encore trois algorithmes qui permettent de distribuer les packets TCP/UDP:

  • MAC Address: chaque paquet est assigné en fonction de
    • l’addresse MAC source et destination uniquement.
  • 2-Tuple Hash: chaque paquet est assigné en fonction de
    • l’adresse IP source et destination.
  • 4-Tuple Hash: chaque paquet est assigné en fonction de
    • L’adresse IP source et destination;
    • Le port TCP/UDP source et destination.

Ce dernier algorithme, utilisé par défaut en mode Address Hash, ne fonctionne bien entendu que pour les flux TCP/IP ou UDP/IP. Un flux qui n’utilise ni TCP ni UDP, comme ICMP par exemple utilisera à défaut le mode 2-Tuple.

Plus le nombre de « Tuple » est élevé, plus la distribution des paquets entre les différentes cartes réseau est fine.

Switch independant – Address Hash

Lorsque vous configurez votre serveur Hyper-V en mode Switch Independant – Adress Hash, Hyper-V va distribuer les flux sortant sur toutes les cartes réseau. Cependant, comme le switch n’est pas « team-aware », l’adresse MAC de la carte virtuelle de la VM est présentée uniquement sur un port physique afin de permettre au switch de savoir où distribuer les paquets entrants.

La bande passante en sortie est au maximum l’agrégation de la bande passante de toutes les cartes du team. Par exemple 4*10Gb = 40 Gb en sortie en bande passante brute maximum.

La bande passante en entrée est au maximum la bande passante d’une seule carte physique du team.

Figure 4: Switch Independant - Hash Address

Figure 4: Switch Independant – Hash Address

Switch Independant – Hyper-V Port

Lorsque vous configurez votre serveur Hyper-V en mode Switch Independant – Hyper-V Port, Hyper-V vas faire un mapping entre les cartes virtuelles des machines virtuelles, et les ports physiques du team.

Pour chaque machine virtuelle, la bande passante en entrée et en sortie est au maximum la bande passante d’une seule carte physique du team.

Figure 5: Switch Independant - Hyper-V Port

Figure 5: Switch Independant – Hyper-V Port

Switch Dependant – Address Hash

Lorsque vous configurez votre serveur Hyper-V en mode Switch Dependant – Adress Hash, Hyper-V va distribuer les flux sortant sur toutes les cartes réseau. Contrairement au mode Switch Independant – Address Hash, le switch a connaissance du team et va distribuer les packets sur l’ensemble des cartes du team en fonction de son mécanisme de Load-Balancing (propre au switch et indépendant de votre configuration).

Pour chaque machine virtuelle, la bande passante en entrée et en sortie est au maximum la bande passante agrégée de l’ensemble des cartes du team. Par exemple: 4*10GB=40GB/s de bande passante brute maximum.

Figure 6: Switch Dependant - Address Hash

Figure 6: Switch Dependant – Address Hash

Switch Dependant – Hyper-V Port

Lorsque vous configurez votre serveur Hyper-V en mode Switch Independant – Hyper-V Port, Hyper-V vas faire un mapping entre les cartes virtuelles des machines virtuelles, et les ports physiques du team en sortie. Le switch ayant connaissance du teaming, les flux entrants vont être distribués à travers les différents cartes physique du team.

La bande passante en sortie est au maximum la bande passante d’une seule carte physique du team.

La bande passante en entrée est au maximum l’agrégation de la bande passante de toutes les cartes du team. Par exemple 4*10Gb = 40 Gb en sortie en bande passante brute maximum.

Figure 7: Switch Dependant - Hyper-V Port

Figure 7: Switch Dependant – Hyper-V Port

Comment choisir ?

Réponse de consultant: ça dépend ! Le choix va surtout s’effectuer en fonction du workload des machines virtuelles que vous allez héberger sur votre infrastructure. Le schéma en figure 8 devrait vous aider à faire le bon choix en fonction de votre mode de teaming:

Figure 8: Choix de l'algorithme de Load-Balancing

Figure 8: Choix de l’algorithme de Load-Balancing

Next step

Dans les prochains articles, nous verrons comment mettre en oeuvre le teaming LBFO sur Hyper-V sans l’utilisation de SCVMM, puis avec son utilisation.

, , , , , , , , , , , , ,

3 thoughts on “Partie 4: Introduction du teaming de cartes sur Hyper-V

Répondre à Série: Introduction aux réseaux sur Hyper-V et SCVMM 2012 | vInfra.ch Annuler la réponse.

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *