Tutoriel : Mettre en place du channel bondingDate de publication : 13/09/2005
Par
L'équipe Linux
Ce tutoriel vous présente le concept et l'installation du channel bonding, système de redondance de cartes réseaux.
1. Introduction 2. Installation 2.1. Prérequis 2.2. Les différents modes 2.2.0. Mode 0, l'équilibrage de charge 2.2.1. Mode 1, la sauvegarde active 2.2.2. Mode 2, la balance Xor 2.2.3. Mode 3, le broadcast 2.2.4. Mode 4, la norme 802.3ad 2.2.5. Mode 5, la balance TLB 2.2.6. Mode 6, la balance ALB 2.3. Mise en oeuvre 2.3.1. Présentation par un script 2.3.2. Fichiers de configuration automatique 2.4. Options du module bonding 2.5. Quelques exemples 3. Tableau récapitulatif des modes 4. Conclusion 1. Introduction
Le Channel bonding, aussi appelé Port trucking, permet d'appliquer une série de politiques prédéfinies sur un ensemble de liens réseaux regroupés en un seul.
Ce groupe d'interfaces réseaux vous donne la possibilité d'effectuer du load-balancing et surtout de la tolérance aux pannes. 7 modes de fonctionnements sont disponibles pour vous permettre d'allier nécessité et flexibilité. Nous allons étudier à travers cet article les possibilités offertes et leurs mises en application 2. Installation2.1. Prérequis
Deux prérequis apparaissent au niveau du switch réseau, où sont connectés les interfaces :
- support et configuration du mode "port truking" sur les ports utilisés - support de la norme IEEE 802.3ad Pour votre système linux, il vous faut: - Des cartes réseaux (compatibles ethtools et miitools de préférences). - Module bonding pour le kernel.
2.2. Les différents modes
Nous allons voir dans ce chapitre les différents modes proposés par le module bonding.
2.2.0. Mode 0, l'équilibrage de chargeGrâce l'équilibrage de charge, les paquets transitent sur une carte réseau active, puis sur une autre, séquentiellement. Le débit de la bande passante est augmenté. Si une des cartes réseaux vient à tomber en rade, l'équilibre de charge saute cette carte et continue à tourner de manière cyclique. 2.2.1. Mode 1, la sauvegarde activeCe mode est une simple redondance avec basculement. Une seule interface est active. Dès que sa panne est détectée, une autre interface est activée et prend le relais.
Votre bande passante ne change pas. 2.2.2. Mode 2, la balance XorUne interface est affectée à l'envoi vers une même adresse MAC.
Ainsi les transferts sont parallélisés et le choix de l'interface suit la règle : (Adresse MAC de la source XOR Adresse MAC de la destination) modulo nombre d'interfaces. 2.2.3. Mode 3, le broadcastAucune particularité dans ce cas, toutes les données sont transmises sur toutes les interfaces actives. Aucune autre règle. 2.2.4. Mode 4, la norme 802.3adLa norme 802.3ad permet l'aggrégation des liens, élargissant dynamiquement la bande passante. Les groupes sont créés dynamiquement sur la base d'un paramètrage commun. 2.2.5. Mode 5, la balance TLB"TLB" pour Traffic Load Balancing Le trafic sortant est distribué selon la charge courante (calculée relativement à la vitesse) de chaque interface. Le trafic entrant est reçu par l'interface courante. Si l'interface de réception devient inactive, une autre interface prend l'adresse MAC de l'interface inactive. 2.2.6. Mode 6, la balance ALB"ALB" pour Adaptive load balancing. C'est un mode étendu de la balance tlb, qui inclut du load balancing en réception. L'équilibrage de charge de réception est réalisé au niveau des réponses ARP. Le module intercepte les réponses ARP et change l'adresse MAC par celle d'une des interfaces. 2.3. Mise en oeuvre2.3.1. Présentation par un scriptvoyons un script minimal :
Voyons de plus près :
Chargement du module Deux options ont été inclues ici :mode et miimon Il est possible de mettre dans le fichier /etc/modules.conf le chargement du module bonding.
Ce premier exemple montre le cas d'un seul bonding. Il est en effet possible de mettre plusieurs bonding avec des modes différents.
Pour cela modifions le /etc/modules.conf en conséquence :
Ajout des interfaces dans bond0
La commande ifenslave nous permet d'ajouter à bond0 les interfaces ethernet(appelées alors interfaces esclaves). Lors de l'ajout de la première interface réseau dans bond0, ce dernier prend l'adresse MAC de cette interface. Les autres interfaces perdent alors leurs adresses MAC, recouvertes par celle de l'interface bond0. Pour enlever une interface, il suffit de lancer la commande :
Le module bonding redonne alors à ethX sa vraie adresse MAC.
Si on enlève la première adresse MAC (celle utilisée par bond0), alors bond0 récupère celle de eth1. 2.3.2. Fichiers de configuration automatiqueVoici les fichiers à modifier pour charger au démarage votre configuration
Sous Red-Hat/Suse
Dans /etc/sysconfig/network/, créé ifcfg-bond0 :
Préparez chaque interface réseau ethX
Il ne manque que les scripts dans /etc/sysconfig/network/script/
Sous debian
2.4. Options du module bondingVoici donc une série d'options pour le module bonding qui permet d'ajuster finement le fonctionnement de votre bonding.
2.5. Quelques exemplesUne simple redondance avec priorité sur eth1
Un équilibrage de charge avec vérification par requêtes ARP
3. Tableau récapitulatif des modes
4. Conclusion
La redondance des cartes réseaux est souvent perçue comme inutile et couteuse malgré une installation simple. Avec ces 7 modes de fonctionnements, vous avez la possibilité d'obtenir une interface réseau haute disponibilité, répondant même à des besoins précis pour le load-balancing. Alors pourquoi s'en priver? |
Copyright © 2006 L'équipe Linux. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.