OVH Cloud OVH Cloud

[gentoo-user-fr] ifenslave ou ifenslave ?

8 réponses
Avatar
Yoann Pannier
Bonjour,

Pour obtenir /sbin/ifenslave afin de pouvoir faire du bonding, vaut-il
mieux utiliser le paquet net-misc/ifenslave ou bien directement le
ifenslave.c contenu dans les sources du noyau ?

--
Yoann Pannier

--
gentoo-user-fr@gentoo.org mailing list

8 réponses

Avatar
Christophe Garault
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Yoann Pannier a écrit :

Bonjour,

Pour obtenir /sbin/ifenslave afin de pouvoir faire du bonding,
vaut-il mieux utiliser le paquet net-misc/ifenslave ou bien
directement le ifenslave.c contenu dans les sources du noyau ?



Je n'ai pas encore d'expérience réelle avec le bonding (c'est dans la
looooongue todoliste) mais je crois que tu auras moins d'emmerdes à
choisir le ifenslave du noyal:
Cf. le bonding.txt :

1.2 Install ifenslave Control Utility
- -------------------------------------

The ifenslave user level control program is included in the
kernel source tree, in the file Documentation/networking/ifenslave.c.
It is generally recommended that you use the ifenslave that
corresponds to the kernel that you are using (either from the same
source tree or supplied with the distro), however, ifenslave
executables from older kernels should function (but features newer
than the ifenslave release are not supported). Running an ifenslave
that is newer than the kernel is not supported, and may or may not
work.

Maintenant je serais ravi que tu nous/me tiennes au courant. ;)

- --
Christophe Garault
Take your marks:
Gen too three: Emerge!

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFCfRx6J5Nh3YMYAQsRAr8vAJ4y1lR/+0iTLcqH6v5Ch9fLb5/sOgCfVKIQ
4FJVXRN+ufG+HUChrktpZjI =2RfP
-----END PGP SIGNATURE-----

--
mailing list
Avatar
Yoann Pannier
Christophe Garault wrote, On 05/07/2005 09:52 PM:
je crois que tu auras moins d'emmerdes à
choisir le ifenslave du noyal:
Cf. le bonding.txt :



Yep, j'avais négligé ce passage dans la doc.

Maintenant je serais ravi que tu nous/me tiennes au courant. ;)



Depuis que j'ai mis les mains la-dedans, j'ai trouvé quelques docs et
howto qui divergent légèrement de ce que j'ai fait en aveugle (cad sans
autre doc que celle du kernel).

Elles divergent notament par l'utilisation d'un baselayout en ~arch (qui
supporte la configuration du bonding dans /etc/conf.d/net) ou par
l'initialisation de l'interface bond0 dans local.start plutôt que
/etc/conf.d/net:postup() (appel a ifenslave).

Mais comme je ne veut pas d'un baselayout en ~arch et que je trouve
l'utilisation de postup() plus propre, voilà ce que ça donne :

-------0) garder la doc sous le coude

# cat /usr/src/linux/Documentation/networking/bonding.txt

-------1) compiler en module le support bonding du noyau

# grep BONDING /usr/src/linux/.config
CONFIG_BONDING=m

-------2) compiler l'ifenslave.c fourni avec les sources du noyau actif
(ça devrait marcher avec un ifenslave plus vieux, mais pas plus récent
que ce noyau)

# cd /usr/src/linux/Documentation/networking/
# gcc -Wall -Wstrict-prototypes -O -I/usr/src/linux/include
ifenslave.c -o ifenslave
# cp ifenslave /sbin/ifenslave

-------3) ajouter alias et options pour le module

# cat /etc/modules.d/bonding
alias bond0 bonding
options bond0 miimon0 mode=1

# modules-update

-------4) configurer l'interface bond0, lui attacher eth0 et eth1 via
ifenslave.

# grep -Ev "^ *$|^#" /etc/conf.d/net
iface_bond0="10.0.11.130 broadcast 10.0.11.255 netmask 255.255.255.128"
gateway="bond0/10.0.11.254"
postup() {
if [[ ${IFACE} == bond0 ]]; then
/sbin/ifenslave bond0 eth0
/sbin/ifenslave bond0 eth1
fi
}

-------5) mettre en place le script de start/stop net.bond0

# ll /etc/init.d/net.bond0
lrwxrwxrwx 1 root root 8 May 5 06:31 /etc/init.d/net.bond0 -> net.eth0*

-------6) faire en sorte que bond0 soit activée au boot

# ll /etc/runlevels/default/net.bond0
lrwxrwxrwx 1 root root 21 May 5 06:33 /etc/runlevels/default/net.bond0
-> /etc/init.d/net.bond0*

Et voilà, ça devrait être tout, on peut faire du tuning sur les
paramètres du modules biensûr, et utiliser un autre mode que le 1 (backup).

--
Yoann Pannier

--
mailing list
Avatar
Christophe Garault
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Yoann Pannier a écrit :

Mais comme je ne veut pas d'un baselayout en ~arch et que je trouve
l'utilisation de postup() plus propre, voilà ce que ça donne :



Super merci.


-------0) garder la doc sous le coude



Comme tout ce qui est évident, ça va encore mieux en le disant.

# cd /usr/src/linux/Documentation/networking/ # gcc -Wall
-Wstrict-prototypes -O -I/usr/src/linux/include ifenslave.c -o
ifenslave # cp ifenslave /sbin/ifenslave



install c'est bien aussi hein. ;)


-------3) ajouter alias et options pour le module

# cat /etc/modules.d/bonding alias bond0 bonding options bond0
miimon0 mode=1



Les options viennent de la doc?

-------4) configurer l'interface bond0, lui attacher eth0 et eth1
via ifenslave.

# grep -Ev "^ *$|^#" /etc/conf.d/net iface_bond0="10.0.11.130
broadcast 10.0.11.255 netmask 255.255.255.128"
gateway="bond0/10.0.11.254" postup() { if [[ ${IFACE} == bond0 ]];
then /sbin/ifenslave bond0 eth0 /sbin/ifenslave bond0 eth1 fi }



Nous voilà dans le vif du sujet!

Et voilà, ça devrait être tout, on peut faire du tuning sur les
paramètres du modules biensûr, et utiliser un autre mode que le 1
(backup).



Merci infiniment pour ce retour d'expérience. Peux-tu nous indiquer
quel est le type des cartes réseaux? Est-ce obligatoirement le même
pour les deux? J'ai toujours eu peur qu'avec deux drivers différents
on en viennent à s'arracher les cheveux.

- --
Christophe Garault
Take your marks:
Gen too three: Emerge!


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFCgzzPJ5Nh3YMYAQsRAgRMAJ9Z9bvpOAFFamNHzz1elT12seNDxQCfYK+Z
2w9ER7KoUiIU0kr/yQAV9Uw =EtbT
-----END PGP SIGNATURE-----

--
mailing list
Avatar
Yoann Pannier
Christophe Garault wrote, On 05/12/2005 01:23 PM:
Yoann Pannier a écrit :
# cp ifenslave /sbin/ifenslave





install c'est bien aussi hein. ;)



Méh-euh

miimon0 mode=1





Les options viennent de la doc?



Yep, elles y sont toutes expliquées avec moulte détails.

En loccurence, bond0 contient 2 cartes 1G dont une est active et l'autre
attend que le premier lien tombe, le tombage du lien étant détecté au
pire en 100ms.

Pour situer, l'architecture construite correspond (à peu de chose près)
au schéma de l'exemple 1 de la partie 2 de la section High Availability
dans la doc du kernel (2 machines, 2 switchs).

Merci infiniment pour ce retour d'expérience.



De rien.

Peux-tu nous indiquer quel est le type des cartes réseaux?



Même pas en rêve !

Bon d'accord, ce sont des e1000 :)

Est-ce obligatoirement le même
pour les deux? J'ai toujours eu peur qu'avec deux drivers différents
on en viennent à s'arracher les cheveux.



La doc parle de charger *les* drivers des cartes, ne dit pas qu'il faut
que ce soient les même cartes, et évoque même le cas où il y a une carte
1G et une autre en 100M. Donc ça devrait être OK, mais je n'ai pas
cherché a le vérifier. Je pense que ce doit être comparable avec du
softRAID sur des disques de type différents (que j'ai pas essayé de
faire non plus).

Mais il y a des pré-requis (le support MII par exemple).

--
Yoann Pannier

--
mailing list
Avatar
Christophe Garault
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Yoann Pannier a écrit :


Pour situer, l'architecture construite correspond (à peu de chose
près) au schéma de l'exemple 1 de la partie 2 de la section High
Availability dans la doc du kernel (2 machines, 2 switchs).



Gniii, mais de quelle doc parles-tu?


Mais il y a des pré-requis (le support MII par exemple).



Ok je vais regarder celà.

- --
Christophe Garault
Take your marks:
Gen too three: Emerge!



-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFCg1hxJ5Nh3YMYAQsRAoNbAJ9678asy4tYK2rnr5WFlp81Kb8ZhwCdHVcy
fZ0Kp+vyOknVXibfnc/3Brc =csyo
-----END PGP SIGNATURE-----

--
mailing list
Avatar
Yoann Pannier
Christophe Garault wrote, On 05/12/2005 03:21 PM:
Pour situer, l'architecture construite correspond (à peu de chose
près) au schéma de l'exemple 1 de la partie 2 de la section High
Availability dans la doc du kernel (2 machines, 2 switchs).





Gniii, mais de quelle doc parles-tu?



/usr/src/linux-2.6.11-gentoo-r6/Documentation/networking/bonding.txt
(ligne 815).

--
Yoann Pannier

--
mailing list
Avatar
Christophe Garault
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Yoann Pannier a écrit :

/usr/src/linux-2.6.11-gentoo-r6/Documentation/networking/bonding.txt



Houla là, mais je suis garé où moi aujourd'hui ?!?

- --
Christophe Garault
Take your marks:
Gen too three: Emerge!

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFCg2LgJ5Nh3YMYAQsRAuVlAJ9BsBwTscqMsZKl+ZgVvbMmYkKbrQCaAn5L
c+r88ub4np8DmP5/EInQBQg =Gkyp
-----END PGP SIGNATURE-----

--
mailing list
Avatar
Yoann Pannier
Christophe Garault wrote, On 05/12/2005 03:21 PM:
Yoann Pannier a écrit :
Mais il y a des pré-requis (le support MII par exemple).





Ok je vais regarder celà.



Normalement le module détecte ce genre de problèmes au chargement.

Et puis, si quand tu débranche un des cables, la machine répond
toujours, c'est que ça le fait ! ;)

--
Yoann Pannier

--
mailing list