Re: [FRnOG] [TECH] Hyperviseur linux KVM et configuration réseau

2013-06-04 Par sujet François Lacombe
Bonjour,

Merci pour cette réponse.

Le 4 juin 2013 01:29, Emmanuel Thierry m...@sekil.fr a écrit :
 Peut être que FRsAG serait plus approprié pour cette question !

Certainement mais je ne connais pas assez bien cette liste.
Peut-être y ferais-je tomber un mail dans la journée.

 Et… la question ? :D
 Bon, plus sérieusement le macvtap est du genre capricieux. Je me suis 
 plusieurs fois cassé les dents dessus si bien que je suis systématiquement 
 revenu à un bridge regroupant l'interface physique et les interfaces des VMs. 
 On perd en performances mais on a exactement les mêmes fonctionnalités, c'est 
 quasiment invisible du point de vue de la VM.

Justement, c'est une question de performance et de propreté, en plus
d'être un objet dont je ne comprends pas le fonctionnement et que je
souhaite creuser.
Le moins qu'on puisse dire c'est que c'est capricieux en effet.
De quoi cela vient-il ? Des interfaces des VM (pilotes, ...), du
matériel du DC, de l'host ?

un $ip link show macvtap0 me donne bien les infos attendues 3: macvtap0@eth0...

 Par ailleurs le plus sûr sur les interfaces macvtap est de rester en mode 
 bridge ou private comme indiqué dans la doc.
Je suis en mode bridge avec l'eth0 de mon host, je n'ai rien testé
d'autre, je pourrai donner ma configuration xml libvirt dans la
soirée.

 Tu parles de routage entre les deux switchs (auquel cas jouer avec le 
 forwarding) ou bien de relier les deux switchs sur un même L2 ?
De routage.
J'ai plusieurs réseaux /24 et je souhaiterais régir les échanges entre
ces réseaux en utilisant iptables sur l'host.
Sur ESXi, je n'avais qu'à mettre une VM disposant d'une patte sur tous
les réseaux pour établir le lien entre eux (un routeur quoi). Ici
c'est différent, tout peut se passer sur l'host normalement.

 Dans le second cas tu ne peux pas relier directement les bridges entre eux. 
 Concrètement tu ne peux pas attacher un switch sur un autre. Par contre ce 
 qui doit marcher c'est de créer une paire de veth et d'ajouter chaque 
 extrémité à un bridge:
 # ip l add type veth
 # brctl addif virbr1 veth0
 # brctl addif virbr2 veth1
 # ip l set veth0 up
 # ip l set veth1 up
Ça c'est intéressant oui. Je regarderai ce que ca donne chez moi.

A noter que sur cette page : http://libvirt.org/firewall.html il y a
un petit soucis
Partie type=routed, les 2 premières règles iptables laissent entendre
qu'on autorise * vers vibr0 et vibr0 vers * pour peu qu'on ai les
bonnes adresses source/dest.
Dans la pratique ces règles sont systématiquement écrites de vibrX
vers vibrY ou vibrY vers vibrX. Si je met * comme forward device
(une feinte pour que libvirt écrive les règles iptables comme dans
l'exemple de la doc), cela ne fonctionne pas.
Si par contre je met vibrY en forward device de vibrX alors les deux
peuvent communiquer. C'est pas satisfaisant pour autant : j'ai 3 /24
:)

 Il faut voir ce que libvirt t'a généré comme config réseau. Peut être faire 
 des tests sans faire intervenir libvirt (simplement jouer à créer des 
 interfaces macvtap) peut aider au déboggage.
En effet, d'autant que j'ai une surcouche à libvirt pour la gestion : archipel.
Il laisse libre accès à la config xml, on peut vérifier ce qu'il fait
mais j'avoue me perdre des fois dans certaines options.

 Depuis quand un cahier des charges s'immisce dans les détails technique 
 plutôt que de rester dans le pur fonctionnel ? ;)
Le CdC recommande un truc propre, pour y répondre on utilise macvtap
et non un bridge. En raccourcissant ça donne ce que j'ai dit hier soir
:)


Cordialement,


François Lacombe
@InfosReseaux


---
Liste de diffusion du FRnOG
http://www.frnog.org/


Re: [FRnOG] [TECH] Hyperviseur linux KVM et configuration réseau

2013-06-04 Par sujet Emmanuel Thierry

Le 4 juin 2013 à 11:05, François Lacombe a écrit :

 Bonjour,
 
 Merci pour cette réponse.
 
 Le 4 juin 2013 01:29, Emmanuel Thierry m...@sekil.fr a écrit :
 
 Et… la question ? :D
 Bon, plus sérieusement le macvtap est du genre capricieux. Je me suis 
 plusieurs fois cassé les dents dessus si bien que je suis systématiquement 
 revenu à un bridge regroupant l'interface physique et les interfaces des 
 VMs. On perd en performances mais on a exactement les mêmes fonctionnalités, 
 c'est quasiment invisible du point de vue de la VM.
 
 Justement, c'est une question de performance et de propreté, en plus
 d'être un objet dont je ne comprends pas le fonctionnement et que je
 souhaite creuser.
 Le moins qu'on puisse dire c'est que c'est capricieux en effet.
 De quoi cela vient-il ? Des interfaces des VM (pilotes, ...), du
 matériel du DC, de l'host ?

Du noyau...
A vrai dire les VMs n'ont pas grand chose à voir là dedans. Le gros du boulot 
est fait dans le noyau de l'hôte. Pour preuve, tu peux tout à fait créer une 
interface macvtap sans la mettre dans une VM.


 
 Tu parles de routage entre les deux switchs (auquel cas jouer avec le 
 forwarding) ou bien de relier les deux switchs sur un même L2 ?
 De routage.
 J'ai plusieurs réseaux /24 et je souhaiterais régir les échanges entre
 ces réseaux en utilisant iptables sur l'host.
 Sur ESXi, je n'avais qu'à mettre une VM disposant d'une patte sur tous
 les réseaux pour établir le lien entre eux (un routeur quoi). Ici
 c'est différent, tout peut se passer sur l'host normalement.

Je confirme, tu fais ça sur l'hôte. Si tu es joueur tu peux aussi faire ça sur 
l'hôte dans un netnamespace distinct (si tu es joueur).
A vrai dire cela marche très bien si tu le fais hors de libvirt. Ensuite 
trouver les paramètres du xml qui te généreront la conf que tu veux c'est une 
autre affaire...


 
 Depuis quand un cahier des charges s'immisce dans les détails technique 
 plutôt que de rester dans le pur fonctionnel ? ;)
 Le CdC recommande un truc propre, pour y répondre on utilise macvtap
 et non un bridge. En raccourcissant ça donne ce que j'ai dit hier soir
 :)

Mettre son eth0 sur un bridge n'est pas propre ? Tiens, j'apprends des choses ! 
;)

Cordialement
Emmanuel Thierry


---
Liste de diffusion du FRnOG
http://www.frnog.org/


Re: [FRnOG] [TECH] Hyperviseur linux KVM et configuration réseau

2013-06-04 Par sujet Cédric Tabary
 Disposant actuellement d'un serveur dédié muni de l'hyperviseur VMWare
 ESXi 4.1, je souhaite depuis le début de l'année monter en compétence
 sur la technologie KVM/Qemu sous Debian.

Mon but n'est pas de te décourager, mais d'après mon expérience avec
des ESXi (4.x/5) et KVM (Debian5/6) bien chargés en IO disque et
réseau tu vas sérieusement perdre en performance et en fiabilité en
passant sur KVM. Maintenant je ne connais pas tes motivations, ton
infra et le type de trafic/ressources, peut être que cela a du sens
dans ton cas.

Cela dit ça m'intéresserai d'avoir un retour d'expérience sur Debian
7, le kernel 3.2 arrange peut être bien les choses ?

Cordialement


---
Liste de diffusion du FRnOG
http://www.frnog.org/


Re: [FRnOG] [TECH] Hyperviseur linux KVM et configuration réseau

2013-06-04 Par sujet Wallace
Le 04/06/2013 11:57, Cédric Tabary a écrit :
 Disposant actuellement d'un serveur dédié muni de l'hyperviseur VMWare
 ESXi 4.1, je souhaite depuis le début de l'année monter en compétence
 sur la technologie KVM/Qemu sous Debian.
 Mon but n'est pas de te décourager, mais d'après mon expérience avec
 des ESXi (4.x/5) et KVM (Debian5/6) bien chargés en IO disque et
 réseau tu vas sérieusement perdre en performance et en fiabilité en
 passant sur KVM. Maintenant je ne connais pas tes motivations, ton
 infra et le type de trafic/ressources, peut être que cela a du sens
 dans ton cas.

 Cela dit ça m'intéresserai d'avoir un retour d'expérience sur Debian
 7, le kernel 3.2 arrange peut être bien les choses ?



De nos tests entre une machine hôte (live usb) et une machine virtuelle
par dessus de la virtu, ESX 4/5 on perd 10% de performance disque, KVM
12%, Xen 3% testé sur Debian 7 kernel branche 3.4 pour les tests Kvm et
Xen. Ce sont des moyennes des pertes en débit, IO ou temps de traitement
qu'on déroule dans les tests.

Ces tests on les fait depuis 2009 pour voir les évolutions du kernel sur
Xen et KVM, Esx on le test quand y a une nouvelle version vu qu'on sait
qu'on utilisera pas cette techno.
Je précise qu'on a une infra de virtualisation qui utilise les disques
locaux en réplication comme la techno Vmware VSA, ESX est optimisé pour
du SAN pas pour du local, KVM on a jamais trouvé pourquoi ça coinçait.
Par contre les tests on les fait sans réplication pour considérer la
perte de la couche de virtualisation sur une machine.




signature.asc
Description: OpenPGP digital signature


Re: [FRnOG] [TECH] Hyperviseur linux KVM et configuration réseau

2013-06-04 Par sujet Cédric Tabary
 De nos tests entre une machine hôte (live usb) et une machine virtuelle
 par dessus de la virtu, ESX 4/5 on perd 10% de performance disque, KVM
 12%, Xen 3% testé sur Debian 7 kernel branche 3.4 pour les tests Kvm et
 Xen. Ce sont des moyennes des pertes en débit, IO ou temps de traitement
 qu'on déroule dans les tests.

Je suis étonné des 3% de perte avec Xen, je suppose que tes tests sont
faits en paravirtualisation (kernel guest xen) ?

Cédric


---
Liste de diffusion du FRnOG
http://www.frnog.org/


Re: [FRnOG] [TECH] Hyperviseur linux KVM et configuration réseau

2013-06-04 Par sujet Pierre `Sn4kY` DOLIDON

Certainement.
Aucun intérêt de virtualiser des linux avec Xen si c'est pour utiliser 
qemu...


[troll] Xen c'est tellement mieux ;) [/troll]

Le 04/06/2013 14:13, Cédric Tabary a écrit :

De nos tests entre une machine hôte (live usb) et une machine virtuelle
par dessus de la virtu, ESX 4/5 on perd 10% de performance disque, KVM
12%, Xen 3% testé sur Debian 7 kernel branche 3.4 pour les tests Kvm et
Xen. Ce sont des moyennes des pertes en débit, IO ou temps de traitement
qu'on déroule dans les tests.

Je suis étonné des 3% de perte avec Xen, je suppose que tes tests sont
faits en paravirtualisation (kernel guest xen) ?

Cédric


---
Liste de diffusion du FRnOG
http://www.frnog.org/



---
Liste de diffusion du FRnOG
http://www.frnog.org/


Re: [FRnOG] [TECH] Hyperviseur linux KVM et configuration réseau

2013-06-04 Par sujet Cédric Tabary
Le 4 juin 2013 14:18, Pierre `Sn4kY` DOLIDON sn...@sn4ky.net a écrit :
 Certainement.
 Aucun intérêt de virtualiser des linux avec Xen si c'est pour utiliser
 qemu...

Tout dépend du pourquoi de la virtualisation.

Pour migrer une vieille slackware avec un kernel 2.4, une pelletée de
debian 5, et d'éventuels windows (le service comptable a toujours un
ou 2 windows sous le coude), esxi est presque parfait, et kvm une
catastrophe (au moins 80% de perte chez moi), Xen est probablement
entre les deux.

 [troll] Xen c'est tellement mieux ;) [/troll]

On est que mardi :)
mais dans le cas idéal où tu as des vm récentes avec le kernel qui va
bien pour la paravirtualisation on est d'accord.

Cédric


---
Liste de diffusion du FRnOG
http://www.frnog.org/


Re: [FRnOG] [TECH] Hyperviseur linux KVM et configuration réseau

2013-06-04 Par sujet Wallace
Le 04/06/2013 14:13, Cédric Tabary a écrit :
 Je suis étonné des 3% de perte avec Xen, je suppose que tes tests sont
 faits en paravirtualisation (kernel guest xen) ?


Non c'est bien en HVM, la para virt c'est pas assez souple pour du
hosting VPS où tu n'as pas forcément la main sur toutes les machines.
Je précise aussi que c'est du Xen et pas du XenServer où là les perfs
disques sont entre KVM et ESX, ils doivent ajouter des sur couches
pénalisantes.

Pour donner un panel de nos tests, sur les perfs disques et réseaux, Xen
est très bon, ESX sur les SAN y a pas photo, par contre niveau CPU il y
a pas mal de pertes liées à la consommation de l'hyperviseur quand
beaucoup de vm sont présentes.




signature.asc
Description: OpenPGP digital signature


Re: [FRnOG] [TECH] Hyperviseur linux KVM et configuration réseau

2013-06-03 Par sujet Emmanuel Thierry
Bonsoir,

Le 4 juin 2013 à 00:31, François Lacombe fl.infosrese...@gmail.com a écrit :

 Disposant actuellement d'un serveur dédié muni de l'hyperviseur VMWare
 ESXi 4.1, je souhaite depuis le début de l'année monter en compétence
 sur la technologie KVM/Qemu sous Debian.
 Donc migrer de ESXi vers KVM en tentant de reproduire à l'identique
 fonctionnellement mon infra me semblait être un bon défi pour cela.

Peut être que FRsAG serait plus approprié pour cette question !


 
 Deux problèmes distincts se présentent à nous :
 - l'utilisation de la fonctionnalité macvtap de l'hyperviseur pour
 permettre à nos VM d'accéder directement à Internet (via IP failover,
 classique). Ça se configure graphiquement sous vSphere quand on
 utilise ESXi. Sous Debian/libvirt c'est un peu plus confus.

Et… la question ? :D
Bon, plus sérieusement le macvtap est du genre capricieux. Je me suis plusieurs 
fois cassé les dents dessus si bien que je suis systématiquement revenu à un 
bridge regroupant l'interface physique et les interfaces des VMs. On perd en 
performances mais on a exactement les mêmes fonctionnalités, c'est quasiment 
invisible du point de vue de la VM.
Par ailleurs le plus sûr sur les interfaces macvtap est de rester en mode 
bridge ou private comme indiqué dans la doc.


 - La communication inter-vswitches sur l'host (les interfaces vibrX).
 La documentation disponible à cette adresse
 (http://wiki.libvirt.org/page/VirtualNetworking) évoque toujours des
 cas mono-vswitches alors que j'en ai au moins 2 à faire communiquer en
 local.

Tu parles de routage entre les deux switchs (auquel cas jouer avec le 
forwarding) ou bien de relier les deux switchs sur un même L2 ?
Dans le second cas tu ne peux pas relier directement les bridges entre eux. 
Concrètement tu ne peux pas attacher un switch sur un autre. Par contre ce qui 
doit marcher c'est de créer une paire de veth et d'ajouter chaque extrémité à 
un bridge:
# ip l add type veth
# brctl addif virbr1 veth0
# brctl addif virbr2 veth1
# ip l set veth0 up
# ip l set veth1 up


 
 Ces deux points ne semblent fonctionner que sur le papier de mon point
 de vue et je suis à court d'astuce pour triturer la doc d'une manière
 ou d'une autre.
 Dans le cas de macvtap, rien ne sort des VM et tout ICMP se solde par
 un Destination host unreachable envoyé par les interfaces mêmes des
 VM, invariablement.

Il faut voir ce que libvirt t'a généré comme config réseau. Peut être faire des 
tests sans faire intervenir libvirt (simplement jouer à créer des interfaces 
macvtap) peut aider au déboggage.


 Concernant macvtap, ne pas utiliser de bridge traditionnel est un
 élément du cahier des charges.

Depuis quand un cahier des charges s'immisce dans les détails technique plutôt 
que de rester dans le pur fonctionnel ? ;)

Cordialement
Emmanuel Thierry


---
Liste de diffusion du FRnOG
http://www.frnog.org/