pour la communauté mathématique · 2012-07-25 · Jacquelin Charbonnel - Journées ARAMIS, Lyon,...
Transcript of pour la communauté mathématique · 2012-07-25 · Jacquelin Charbonnel - Journées ARAMIS, Lyon,...
Architecture de serveurs virtualiséspour la communauté mathématique
Jacquelin Charbonnel
Journées ARAMIS - Lyon, juin 2012version 1.1
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 Architecture de serveurs virtualisés pour la communauté mathématique 2 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 3 / 47
KVM pour un laboratoire
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 Architecture de serveurs virtualisés pour la communauté mathématique 4 / 47
● 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 Architecture de serveurs virtualisés pour la communauté mathématique 5 / 47
● 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 Architecture de serveurs virtualisés pour la communauté mathématique 6 / 47
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 Architecture de serveurs virtualisés pour la communauté mathématique 7 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 8 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 9 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 10 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 11 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 12 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 13 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 14 / 47
Backups
● backups des data
● backup des systèmes des VM
● backup des containers
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 Architecture de serveurs virtualisés pour la communauté mathématique 15 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 16 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 17 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 18 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 19 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 20 / 47
La PLM
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 Architecture de serveurs virtualisés pour la communauté mathématique 21 / 47
● 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 Architecture de serveurs virtualisés pour la communauté mathématique 29 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 30 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 31 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 32 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 33 / 47
Backups
● backups des data
● backup des systèmes des VM
● backup des containers
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 Architecture de serveurs virtualisés pour la communauté mathématique 34 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 35 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 36 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 37 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 38 / 47
Exemple : l'hébergement web
ou comment la virtualisation peut améliorer les perfs
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 Architecture de serveurs virtualisés pour la communauté mathématique 39 / 47
● 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 Architecture de serveurs virtualisés pour la communauté mathématique 40 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 41 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 42 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 43 / 47
Le projet PLACO
Jacquelin Charbonnel - Journées ARAMIS, Lyon, juin 2012 Architecture de serveurs virtualisés pour la communauté mathématique 44 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 45 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 46 / 47
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 Architecture de serveurs virtualisés pour la communauté mathématique 47 / 47
En savoir plus...
http://placodev.mathrice.fr