Post on 02-Aug-2020
KVM - Retour d'expériences
Jacquelin Charbonnel
Journées ARAMIS - Lyon, juin 2012
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 2 / 48
Plan
● KVM pour un laboratoire
● KVM pour la Plateforme en Ligne pour les Mathématiques
● Exemple : plateforme d'hébergement web
● Le projet PLACO
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 3 / 48
KVM pour un laboratoire
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 4 / 48
● LAREMA
● laboratoire de mathématiques
● une demi-centaine d'utilisateurs
● une dizaine de serveurs physiques
● hyperviseurs
● serveurs applicatifs interactifs
● serveurs d'infrastructures (NFS, LDAP, DNS, DHCP, ntp)
● serveurs de calcul
● serveur de sauvegarde
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 5 / 48
● 2 hyperviseurs
● KVM sous CentOS 6
● une quinzaine de VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
hyperviseur KVM hyperviseur KVM
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 6 / 48
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 7 / 48
Candidats à la virtualisation
● messagerie SMTP+IMAP (postfix+dovecot)
● web + webmail (apache, squirrelmail, roundcube)
● firewall + reverse proxy + MX principal (iptables, apache, postfix)
● monitoring (icinga)
– monitoring des ressources du laboratoire– monitoring des ressources de la DSI
● serveurs ssh
– tunnels pour les chercheurs du labo – tunnels pour les chercheurs de la fédération des Pays de Loire
● divers
– générateur d'images LTSP
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 8 / 48
Jugés non virtualisables
● serveurs applicatifs
– pour raison de performance● serveur de sauvegarde
– pour raison d'isolation● serveur de calcul
– pour raison de performance (à approfondir)● serveurs d'infrastructure : nfs, ntp, ldap, dhcp, dns
– services utilisés par les hyperviseurs
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 9 / 48
Principe #1 : couches de serveurs
● 2 couches de serveurs
● les hyperviseurs appartiennent à la couche #1
● les VM appartiennent à la couche #2
● principe :
● la couche #1 ne doit pas utiliser les services de la couche #2– un hyperviseur ne doit pas dépendre de services hébergés sur une quelconque VM
● pourquoi ?
● écarter les interdépendances (bloquantes au démarrage)
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 10 / 48
Principe #2 : les data
● data = homedir, mailboxes, htdocs, etc.
● aucun gros volume de données sur disques virtuels (containers)
● data exportées par NFS depuis un serveur physique dédié
● pourquoi ?
● 1 gros disque = 1 gros fichier sur l'hyperviseur (plusieurs Go)
– lourd à copier, sauvegarder, déplacer, comparer
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 11 / 48
Principe #2 : les data
● data exportées par NFS depuis un serveur physique dédié
VM
VM
VM
VM
VM
VM
VM
VM
VM
NFSNFS
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 12 / 48
Principe #3 : les VM
les VM sont présentes sur chacun des 2 hyperviseurs
● VM non attachées à l'hyperviseur (déplaçables)
● chaque VM est
– en production sur 1 host– en backup sur l'autre
pourquoi ?
● PRA simple
● équilibrage de charge (manuel) des VM en production
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 13 / 48
Principe #4 : les containers
● container = disque de VM
● les containers sont sur LVM sur l'hyperviseur
● pourquoi ?
● bénéficier des snapshots au niveau du fs
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
LVMLVM
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 14 / 48
Backups
● backups des data
● backup des systèmes des VM
● backup des containers
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 15 / 48
Backup des data
● backup du serveur NFS
● intégré au système de backup général
● archivage daily, weekly, monthly
VM
VM
VM
VM
VM
VM
VM
VM
VM
NFSNFS
backup + archivage
VM
VM
VM
VM
VM
VM
VM
VM
VM
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 16 / 48
Backup des data
● backup du serveur NFS
VM
VM
VM
VM
VM
VM
VM
VM
VM
NFSNFS
backup + archivage
VM
VM
VM
VM
VM
VM
VM
VM
VM
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 17 / 48
Backup des systèmes
● systèmes sauvegardes via chaque VM
● intégré au système de backup général des serveurs
● archivage daily, weekly, monthly
VM
VM
VM
VM
VM
VM
VM
VM
VM
rsync (backup + archivage) rsync (backup + archivage)
VM
VM
VM
VM
VM
VM
VM
VM
VM
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 18 / 48
Backup des containers
● sauvegardés 1 fois par mois
● sur le second host
● sans archivage
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
LVMLVM
rsync (mensuel)
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 19 / 48
Backup des containers
processus :
● pause de toutes les VM (virsh suspend)
● snapshot LVM du LV contenant les disques (lvcreate --snapshot)
● redémarrage de toutes les VM (virsh resume)
● rsync des disques du snapshot sur l'autre hyperviseur (rsync)
● suppression du snapshot LVM (lvremove)
● rsync des définitions de VM (.xml)
mo
ins d
'1 s e
c
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 20 / 48
Reprise d'activités
● démarrer la VM sur l'autre hyperviseur
● restauration du dernier backup du système (backup)
● reboot
VM
VM
VM
VM
VM
VM
VM
VM
VM
NFSNFS
VM
VM
VM
VM
VM
VM
VM
VM
VM
rsync (restauration)
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 21 / 48
La PLM
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 22 / 48
● Plate-forme en ligne pour les mathématiques
● infrastructure répartie géographiquement
● utilisée par 61 laboratoires (2168 utilisateurs)
● 4 sites techniques (Bordeaux, Lille, Angers et Lyon)
● 8 hyperviseurs sous CentOS 6
● 50 VM
Les services
● serveurs de licences logicielles
● proxy de consultation des revues scientifiques en ligne
● un annuaire de la communauté mathématique française
● gestion de noms de domaine (math.cnrs.fr, resinfo.org, etc.)
● messagerie (@math.cnrs.fr)
● outils de production et d'organisation personnelle (webmail, agenda, carnet d'adresses)
● serveurs interactifs, de calcul
● outils de travail collaboratif (hébergement web, listes de diffusion, partages réseaux, subversion, web-conférence)
Historique
● initialement sous VMware server 1.x
● 2009-2011 : migration vers KVM
● 2012 : normalisation de l'infrastructure
Pourquoi migrer, pourquoi KVM ?
● VMware 1.x
● fin de vie de VMware Server 1.x (2009)
● 1 petit bug jamais résolu au niveau des snapshots
● VMware 2.x
● pas de console native
– console via un navigateur web● KVM
● opensource
● bien supporté par RedHat (-> natif dans CentOS)
● communauté très active, développement rapide
Bilan
● meilleures performances
● installation + facile
● intégré à la distribution CentOS
● rien à recompiler à chaque nouveau kernel
● pas de tools à installer sur les VM
2012 : la normalisation
● simplifier au maximum
● supprimer les dépendances entre sites
● dissocier les fonctions
● virtualisation
● stockage
● backup et archivage
● sur chaque site :
● banaliser les hyperviseurs
● support d'un nombre quelconque d'hyperviseurs
2012 : la normalisation
● 1 site =
● n hyperviseurs banalisés
● 1 serveur NFS
● 1 serveur pour PRA (miroir du serveur NFS)
● 1 vrai réseau interne privé physique
● 1 VM =
● 1 interface réseau interne NATée (ntp, dns, dhcp, NFS, log, ssh d'admin, system update)
● 1 interface publique si le service rendu est public
● déplaçable d'un hyperviseur à l'autre
● configuration gérée par Puppet
● 1 nouveau site pour le backup délocalisé (Grenoble)
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 30 / 48
site de la PLM
VM
VM
VM
VM
VM
hyperviseur KVM
serveur NFS serveur NFS miroir
VM
VM
VM
hyperviseur KVM
VM
VMVM
VM
VM
VM
VM
hyperviseur KVM
NAT
réseau interne
réseau public
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 31 / 48
Principe #1 : les data
● data = homedir, mailboxes, htdocs, etc.
● aucun gros volume de données dans les containers
● exportées via NFS depuis un serveur physique dédié
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
NFS
VM
VM
VM
VM
VM
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 32 / 48
Principe #2 : VM et containers
les VM et leurs containers sont sur LVM exporté par NFS
VM non attachée à l'hyperviseur (déplaçable)
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
NFS
VM
VM
VM
VM
VM
NFS
LVMLVM LVM
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 33 / 48
Trafic NFS
● pour minimiser le trafic NFS
● pas de log en local sur les VM
● pour minimiser le trafic NFS
● pas de log en local sur les VM
● pour minimiser le trafic NFS
● pas de log en local sur les VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
syslog
VM
VM
VM
VM
VM
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 34 / 48
Backups
● backups des data
● backup des systèmes des VM
● backup des containers
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 35 / 48
VM
VM
VM
VM
VM
Backup data + backup systèmes
VM
VM
VM
VM
VM
backupPC
● backup du serveur NFS (backupPC)
VM
VM
VM
VM
VM
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 36 / 48
VM
VM
VM
VM
VM
Backup des containers
NFS
VM
VM
VM
VM
VM
DRBD
● miroir avec DRBD
VM
VM
VM
VM
VM
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 37 / 48
containers
VM
VM
VM
VM
VM
Plan de Reprise d'Activité
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
data
DRBD
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 38 / 48
VM
VM
VM
Plan de Reprise d'Activité
NFS
VM
VM
VM
VM
VM
DRBD
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 39 / 48
Exemple : l'hébergement web
ou comment la virtualisation peut améliorer les perfs
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 40 / 48
● 70 sites web
● sites statiques, CMS (SPIP, drupal, etc.)
● quelques sites gourmands en ressources
● générateurs d'images à la volée
● quelques sites très fréquentés
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 41 / 48
Architecture initiale
● 1 front-end + 1 back-end
● 1 site = 1 virtual host
● 10 disques virtuels de 4Go
http ssh
http
apache / mysql / sshd
/home1/home2/home3
/htdocs1/htdocs2/htdocs3/htdocs4/htdocs5
rprox
nagios
cms
apachehttp ssh
apache
hyperviseur VMware
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 42 / 48
Architecture initiale
● monolithique : 1 site peut impacter la performance des autres
● gros disques virtuels (4Go) : lourd à gérer
http ssh
http
apache / mysql / sshd
/home1/home2/home3
/htdocs1/htdocs2/htdocs3/htdocs4/htdocs5
rprox
nagios
cms
apachehttp ssh
apache
hyperviseur VMware
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 43 / 48
Achitecture actuelle
● RAM de chaque webxx : 2Go
● granularité CPU / IO / RAM
● plusieurs versions possibles (php, etc.)
ssh
hyperviseur KVM
sshd
rprox
web01
cms
apache web02
web03
web04
web05
httphttp
db
DRBD
apache
mysql
/home/htdocs
/htdocs
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 44 / 48
Le projet PLACO
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 45 / 48
Architecture de PLACO
● générateur de plates-formes collaboratives
● les services :
● listes de diffusion (sympa)
● environnement personnel (horde)
– agenda, carnet d'adresse, webmail
● hébergement web (apache)
● partage réseau (apache webdav)
● versionning (subversion)
● base d'authentification unique : OpenLDAP
● 2 hyperviseurs possibles : Xen et KVM
● 2 OS possible : Debian et CentOS
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 46 / 48
Plateforme collaborative générée
hyperviseur Xen ou KVM
rprox
web
apache ldap
subversion
sympahttp
http
dbapache
mysql
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 47 / 48
Mode d'emploi
● installer le générateur# wget --no-check-certificate -P /tmp https://svn.math.cnrs.fr/placodev/tags/stable/install.sh
# . /tmp/install.sh
● créer une plate-forme minimale (annuaire+reverse proxy)
# placosh init_platform
● personnaliser (ajout de guests)# placosh install_web_hosting
# placosh install_sympa
# placosh install_svn
...
hyperviseur Xen ou KVM
rprox
web
apache ldap
subversion
sympahttp
http
dbapache
mysql
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 KVM : retours d'expérience 48 / 48
En savoir plus...
http://placodev.mathrice.fr