Tâche #2986
Distribution EOLE - Scénario #9185: implémenter l'Ethernet bonding
gestion du bonding
Description
sur nos serveurs eolebase2.2 nous gérons le bonding (agrégation de liens avec haute disponibilité).
Nous avons pour cela ajouté deux variables :
- bonding_actif :
valeurs possibles : oui/non
commentaire : "Bonding Actif (oui/non). Utilise les paramètres de eth0 pour activer bond0."
- bonding_mode :
valeurs possibles : 0 à 6
commentaire : "Type de bonding: 0 : Round Robin , équilibrage de charge | 1 : Active - passive | 2 : Balance xor | 3 : Broadcast | 4 : 802.3ad | 5 : balance-tlb | 6 : balance-alb"
NB : je ne suis pas un expert du bonding mais en général on utilise la valeur 5 pour ce qui nous concerne
Lorsqu'on l'active :
- cela crée une interface virtuelle bond0 qui porte l'adresse IP ; les deux cartes eth0 et eth1 (en plus de la bond0) sont visibles sans adresse IP dans un ifconfig
- tout fichier de configuration (notamment les régles firewall) faisant référence à un ethX doit remplacer ethX par le bonding correspondant
En 2.3 il est possible de choisir le nombre d'interfaces ce qui n'est pas notre cas en 2.2.
La gestion du bonding - si elle est intégrée - devra prendre en compte le nombre d'interfaces.
En 2.2 nous sommes donc partis du principe que bond0 :
- est l'agrégation de eth0 et eth1
- l'adresse ip affectée sur l'interface est celle d'eth0 s'il n'y a pas de bonding et celle de bond0 s'il y en a.
Nous avons patché (en PJ) /etc/network/interfaces pour activer cette gestion au cas ou vous souhaiteriez l'intégrer en 2.3 mais cela n'est pas intégrable tel quel du fait qu'on peut choisir le nb d'interfaces en 2.3...
Related issues
Associated revisions
Implémentation du bonding
ref #2986
Implémentation du bonding
ref #2986
Ajout dépendance au paquet ifenslave pour la gestion du bonding
ref #2986 @10m
On ne teste pas les interfaces de bonding en preservice, elles sont
montées dynamiquement
ref #2986 @1h
Traitement du bonding avant l'application des paramètres du noyau
ref #2986 @1h
Support des alias sur les interfaces bonding
ref #2986 @30m
Support des VLAN sur les interfaces bonding
ref #2986 @30m
Adaptation du diagnose au bonding
ref #2986 @30m
On ne décharge le module bonding que si il est chargé
ref #2986 @10m
fix erreur bonding si carte en mode "manuel"
Ref: #2986 @30m
History
#1 Updated by Olivier JANVOIS over 11 years ago
- File active_bonding.py View added
- File interfaces.patch View added
J'ai oublié : en prereconf on appelle le script active_bonding.py (en PJ)
#2 Updated by Joël Cuissinat over 11 years ago
- Assigned To set to Luc Bourdot
#3 Updated by Luc Bourdot over 11 years ago
A tester pour avis
#4 Updated by Joël Cuissinat over 11 years ago
- Assigned To changed from Luc Bourdot to Fabrice Barconnière
- Target version set to Mises à jour 2.3.5 RC
- Estimated time set to 2.00 h
#5 Updated by Joël Cuissinat over 11 years ago
- Target version changed from Mises à jour 2.3.5 RC to Mises à jour 2.3.6 RC
#6 Updated by Joël Cuissinat about 11 years ago
- Target version changed from Mises à jour 2.3.6 RC to Mises à jour 2.3.7 RC
#7 Updated by Joël Cuissinat almost 11 years ago
- Target version changed from Mises à jour 2.3.7 RC to Mises à jour 2.3.8
#8 Updated by Luc Bourdot over 10 years ago
- Due date set to 01/25/2013
- Start date changed from 02/29/2012 to 01/21/2013
#9 Updated by Luc Bourdot over 10 years ago
- Due date deleted (
01/25/2013) - Status changed from Nouveau to A étudier
- Target version changed from Mises à jour 2.3.8 to 189
- Start date deleted (
01/21/2013) - Distribution changed from EOLE 2.3 to EOLE 2.4
#10 Updated by Luc Bourdot over 10 years ago
- Assigned To deleted (
Fabrice Barconnière)
#11 Updated by Emmanuel GARETTE over 9 years ago
La résolution de la demande #6951 permettra de travailler plus facilement sur le bonding, l'ensemble des modifications ont été faite pour le permettre.
#12 Updated by Luc Bourdot about 9 years ago
- Tracker changed from Evolution to Bac à idée
- Target version deleted (
189)
#13 Updated by Emmanuel GARETTE almost 9 years ago
- Parent task set to #9185
#14 Updated by Joël Cuissinat almost 9 years ago
- Status changed from A étudier to Nouveau
- Estimated time deleted (
2.00 h)
#15 Updated by Joël Cuissinat almost 9 years ago
- Estimated time set to 8.00 h
- Remaining (hours) set to 8.0
#16 Updated by Fabrice Barconnière almost 7 years ago
- Status changed from Nouveau to En cours
- Start date set to 11/15/2016
#17 Updated by Fabrice Barconnière almost 7 years ago
- Description updated (diff)
- Assigned To set to Fabrice Barconnière
#18 Updated by Fabrice Barconnière almost 7 years ago
- % Done changed from 0 to 10
Ce n'est pas vraiment évident de trouver la bonne façon de faire :
- ajout de variables pour chaque interface
- activer_bonding_eth (oui/non) : utiliser cette interface pour du bonding
- la variable zone_is_bridge_eth n'est plus utile (à désactiver) mais pb car utilisée par des calculs
- bonding_master_eth (oui/non) : définition des paramètres IP sur cette interface
- désactivée si activer_bonding_eth à non
- nom_zone_eth sera le nom du master bonding de cette interface
- si non, désactiver toutes les variables de définition des paramètres IP de cette interface + ssh_eth + admin_eth + alias_eth + vlan_eth
- bonding_mode_eth : mode de fonctionnement du bonding
- désactivée si bonding_master_eth à non
- valid_enum ['balance-rr', 'active_backup', 'balance-xor', 'broadcast', '802.3ad', 'balance-tlb', 'balance-alb']
- activer_bonding_eth (oui/non) : utiliser cette interface pour du bonding
- Adapter master_network_interfaces.py pour la génération du fichier interfaces
- Exemple :
* Définition des slaves auto ens4 iface ens0 inet manual bond-master bond0 bond-primary ens4 --> BON-PRIMARY SI ACTIVE-BACKUP sinon pas de ligne bond-mode active-backup auto ens5 iface ens5 inet manual bond-master bond0 bond-primary ens4 --> BON-PRIMARY SI ACTIVE-BACKUP sinon pas de ligne bond-mode active-backup * Définition du maître auto bond0 iface bond0 inet static address 192.168.0.1 netmask 255.255.255.03 network 192.168.0.0 gateway 192.168.0.1 slaves none --> NONE si mode ACTIVE-BACKUP sinon liste des slaves bond_mode active-backup bond_miimon 100 bond_downdelay 200 bond_updelay 200
- Exemple :
#19 Updated by Emmanuel GARETTE almost 7 years ago
J'ai en tête un approche un peu différente.
"Interface X" correspondrait au bond, dedans il y aurait les variables :
- activer_bonding_eth
- phys_interfaces (une multi avec toutes les interfaces physiques)
- bonding_mode_eth
Cette solution a l'avantage d'être compatible avec les ssh_*, admin_*, era, ...
#20 Updated by équipe eole Academie d'Orléans-Tours almost 7 years ago
bonjour,
je ne veux pas jouer les rabat-joie mais le ticket a 4 ans et nous n'utilisons plus cette fonctionnalité :-\
Du coup je ne sais pas si ça vaut le coup que vous passiez du temps là dessus (pour nous en tout cas...).
Olivier
#21 Updated by Fabrice Barconnière almost 7 years ago
La fonctionnalité demandée dans #17788 (valid_enum sur une multi isolée) est nécessaire pour la construction du dictionnaire.
#22 Updated by Fabrice Barconnière almost 7 years ago
- % Done changed from 10 to 50
Construction du dictionnaire avec l'approche d'Emmanuel.
#23 Updated by Fabrice Barconnière almost 7 years ago
- % Done changed from 50 to 80
- Remaining (hours) changed from 8.0 to 6.0
#24 Updated by Fabrice Barconnière almost 7 years ago
Disponibles sur les branches issue/2986 des projets eole-common et creole.
Les variables nom_carte_eth sont devenues des multi. Si plusieurs valeurs, ça devient du bonding.
Dans l'état actuel, le serveur s'instancie et semble fonctionnel avec une seule valeur dans nom_carte_eth (bonding désactivé).
Avec plusieurs valeurs (bonding activé), le serveur s'instancie, le template interfaces semble correctement généré mais l'interface bond0 reste DOWN. Malgré le chargement manuel du module bonding.
La commande ip link set bond0 up reste sans effet.
#25 Updated by Fabrice Barconnière almost 7 years ago
- File config.eol.bond-eolebase added
- File config.eol.bond-amon added
- % Done changed from 80 to 100
- Remaining (hours) changed from 6.0 to 0.5
- Testé sur un aca.eolebase 2.6.0 + Maj-Auto -D => OK avec ce config.eol
- 4 interfaces réseau sur academie
- Testé sur un aca.eolebase 2.6.0 + Maj-Auto -D + apt-eole install eole-amon-all (=Amon 2.6.1) => OK avec ce config.eol
- 2 interfaces réseau sur academie
- 2 interfaces réseau sur admin1
- 2 interfaces réseau sur pedago1
- 2 interfaces réseau sur dmz1
#26 Updated by Fabrice Barconnière almost 7 years ago
- Status changed from En cours to Résolu
#27 Updated by Scrum Master almost 7 years ago
- Status changed from Résolu to Fermé
- Remaining (hours) changed from 0.5 to 0.0