Du bon usage de la virtualisation de serveurs Pascal Mouret DOSI Campus Luminy Université de la Méditerranée
24 novembre 2011JRES Toulouse2/42 Introduction ● 3 axes majeurs de changement ● Temps ● Argent ● Disponibilité ● Questions induites : ● Comment répartir les services/applications ? ● Comment gérer efficacement un parc de serveurs ? ● Comment optimiser et garantir le fonctionnement de la nouvelle infrastructure ?
24 novembre 2011JRES Toulouse3/42 Plan ● La virtualisation de serveurs ● Mise en place de serveurs virtuels ● Administration centralisée ● Retours sur l'exploitation ● Conclusion ● Mise en place de serveurs virtuels ● Administration centralisée ● Retours sur l'exploitation ● Conclusion
24 novembre 2011JRES Toulouse4/42 La virtualisation de serveurs La virtualisation Virtualisation multiforme ● virtualisation de serveurs / SE ● virtualisation applicative ● virtualisation de disques ● virtualisation d'applications ● virtualisation de postes de travail
24 novembre 2011JRES Toulouse5/42 La virtualisation de serveurs Deux grandes catégories HyperviseursIsolateurs de contexte Matériel OS hôte Contexte Appli-cations Contexte Appli-cations Matériel OS hôte VM Appli-cations VM Appli-cations OS invité Hyperviseur
24 novembre 2011JRES Toulouse6/42 La virtualisation de serveurs Deux grandes catégories + Légèreté + Optimisation des ressources + Rapidité - Homogénéité forcée - Séparation des VM pas totale Linux-Vserver, OpenVZ, LXC Isolateurs de contexte Matériel OS hôte Contexte Appli-cations Contexte Appli-cations
24 novembre 2011JRES Toulouse7/42 La virtualisation de serveurs Les hyperviseurs Hyperviseurs type I + Performances - Installation système spécifique - Coût Microsoft HyperV, Citrix XenServer, VMWare ESXi ! Paravirtualisation (HyperV) Matériel VM Appli-cations VM Appli-cations OS invité Hyperviseur
24 novembre 2011JRES Toulouse8/42 La virtualisation de serveurs Les hyperviseurs + Facilité de mise en oeuvre - Performances Microsoft VirtualPC / VirtualServer, Oracle VirtualBox, Parallels Desktop, VMWare Player Hyperviseurs type II Matériel OS hôte VM Appli-cations VM Appli-cations OS invité Hyperviseur
24 novembre 2011JRES Toulouse9/42 La virtualisation de serveurs Sur le campus de Luminy Isolation de contexte : OpenVZ (Proxmox VE) ● Environnement homogène Linux ● Performances ● Simplicité ● Coût ● Principe (on aime bien le logiciel libre)
24 novembre 2011JRES Toulouse10/42 Plan ● La virtualisation de serveurs ● Mise en place de serveurs virtuels ● Administration centralisée ● Retours sur l'exploitation ● Conclusion
24 novembre 2011JRES Toulouse11/42 Contrôleur de domaine (Samba) Mise en place de serveurs virtuels DHCP Netdisco (web) Pages perso + phpmyadmin (web + bd) LDAP Contrôleur de domaine (Samba) CMS (web + bd) GLPI (web + bd) NTP phpldapadmin (web) + ● Comment répartir au mieux ces applications/services ? ● Liens entre applis ● Niveaux de sécurité ● Applications similaires
24 novembre 2011JRES Toulouse12/42 Contrôleur de domaine (Samba) Mise en place de serveurs virtuels DHCP Netdisco (web) Pages perso + phpmyadmin (web + bd) LDAP Contrôleur de domaine (Samba) CMS (web + bd) GLPI (web + bd) NTP phpldapadmin (web) + ● Comment répartir au mieux ces applications/services ? ● Serveurs d'infra Contrôleur de domaine (Samba) DHCP LDAP Contrôleur de domaine (Samba)
24 novembre 2011JRES Toulouse13/42 Mise en place de serveurs virtuels Services partiellement liés Web Bdd Répartition de charge
24 novembre 2011JRES Toulouse14/42 Mise en place de serveurs virtuels Services partiellement liés Web Répartition de charge Bdd Répartition de charge
24 novembre 2011JRES Toulouse15/42 Mise en place de serveurs virtuels ● On regroupe les applications similaires ● On sépare : ● services/applications indépendant(e)s ● applications de niveaux de sécurité différents ● services nécessitant une liaison Haute Dispo ● services utilisés par plusieurs applications différentes et s'adressant à une même catégorie d'utilisateurs
24 novembre 2011JRES Toulouse16/42 Plan ● La virtualisation de serveurs ● Mise en place de serveurs virtuels ● Administration centralisée ● Retours sur l'exploitation ● Conclusion
24 novembre 2011JRES Toulouse17/42 Administration centralisée ● Simplicité ● Harmonisation ● Complétude ➔ Automatisation ?
24 novembre 2011JRES Toulouse18/42 Administration centralisée
24 novembre 2011JRES Toulouse19/42 Administration centralisée - Puppet ● Existe depuis 2005 ● Ecrit en Ruby ● Version courante : 2.6 ● Nouvelle version : 2.7 (depuis juin 2011) ● License GPLv2 jusqu'à 2.6.x ● License Apache 2.0 depuis 2.7.x ● Linux, MacOS X, Windows (>=2.6)
24 novembre 2011JRES Toulouse20/42 Administration centralisée - Puppet Fonctionnement général Client Agent Client Agent Serveur Master Xml-rpc / REST via https L'agent se connecte au master Echange de certificats Récupération du catalogue
24 novembre 2011JRES Toulouse21/42 Administration centralisée - Puppet Fonctionnement général Client Agent Serveur Master # puppet agent --server mon_serveur --wait-for-cert 30 --test # puppet agent --server mon_serveur # puppet cert --list # puppet cert --sign fqdn_de_l_agent
24 novembre 2011JRES Toulouse22/42 Administration centralisée - Puppet ● Principe déclaratif ● Ressources ● État à atteindre ● Ordre de déclaration sans importance ● Idempotence
24 novembre 2011JRES Toulouse23/42 Administration centralisée - Puppet Configuration file { 'cron' : path => '/etc/cron.d/puppet', ensure => present, source => 'puppet://files/puppet.cron' } package {ntp : ensure => present } Ressource = description + provider Manifest
24 novembre 2011JRES Toulouse24/42 Administration centralisée - Puppet Configuration package {ntp : ensure => present } ● Providers ● Yum sous Fedora / RedHat ● Apt sous Debian / Ubuntu ● Msi sous Windows ●.... ● Puppet auto-sélectionne le provider
24 novembre 2011JRES Toulouse25/42 Administration centralisée - Puppet Configuration file { '/etc/ssh/sshd_config' : ensure => present, source => 'puppet:///sshd_config', } service {ssh : ensure => running } before => Service[ssh] notify => Service[ssh] ● Lien entre ressources ● Ordonnancement ● Ordonnancemt + rafraichissement ● Catalogue ● Graphe acyclique
24 novembre 2011JRES Toulouse26/42 if $operatingsystem == 'debian' { $sambaclient='samba-client' } elsif $operatingsystem == 'redhat' { $sambaclient='smbclient' } else { fail("Je ne connais pas cet OS") } package {$sambaclient : ensure => present } Administration centralisée - Puppet Configuration ● Variables ● Conditions ● Faits (facter) ● Gabarits (ERB)
24 novembre 2011JRES Toulouse27/42 Administration centralisée - Puppet Configuration package {ntp : ensure => present } class {'timezone': } class {'nfs::ve' : mounts => ['personnels','etudiants'] } ● Classes ● Modules
24 novembre 2011JRES Toulouse28/42 Administration centralisée - Puppet Configuration node wperso { # declaration des ressources } node default { # declaration des ressources } wperso monster0
24 novembre 2011JRES Toulouse29/42 Administration centralisée - Puppet Organisation /etc/puppet site.pp templates files modules manifests nfs... templates files manifests init.pp Class nfs { # définition } ve.pp Class nfs::ve ($mounts){ # définition }
24 novembre 2011JRES Toulouse30/42 Administration centralisée - Puppet Les ressources augeas computer cron exec file filebucket group host k5login mailalias maillist mcx mount nagios_... notify package resources schedule selboolean selmodule service ssh_authorized_key sshkey stage tidy user yumrepo zfs zone zpool
24 novembre 2011JRES Toulouse31/42 Administration centralisée - Puppet Avantages Gestion d'une machine virtuelle grandement facilitée : ● création de la VM ● installation du SE ● installation de Puppet ● démarrage initial de l'agent Puppet Gestion d'une machine virtuelle grandement facilitée : ● création de la VM ● installation du SE (OpenVZ) ● installation de Puppet ● démarrage initial de l'agent Puppet
24 novembre 2011JRES Toulouse32/42 Administration centralisée - Puppet Avantages ● Endroit unique où faire évoluer les configurations ● Garantie que des machines à vocation identique ont une config identique
24 novembre 2011JRES Toulouse33/42 Administration centralisée - Puppet A manipuler avec précaution Serveur Puppet stratégique : ● Confidentialité ● Toute config, bonne ou mauvaise, est appliquée rapidement sur tout le parc !! ● Toujours tester au préalable ● node test inherits cible { # définition des ressources à tester }
24 novembre 2011JRES Toulouse34/42 Administration centralisée - Puppet A manipuler avec précaution ● Ne plus configurer directement les machines ● toujours dans le master Puppet !! ● Toute modification locale est susceptible d'être « annulée » par l'exécution suivante de l'agent !
24 novembre 2011JRES Toulouse35/42 Administration centralisée - Puppet Perspectives ● Sécurité (dans une certaine mesure) ● Administration d'un parc de machines (salles pédagogiques / postes de travail) ● Administration d'un parc d'équipements réseau (depuis v2.7)
24 novembre 2011JRES Toulouse36/42 Plan ● La virtualisation de serveurs ● Mise en place de serveurs virtuels ● Administration centralisée ● Retours sur l'exploitation ● Conclusion
24 novembre 2011JRES Toulouse37/42 Retours sur l'exploitation ● Séparation entre la puissance de calcul et l'espace de stockage encore plus cruciale ● Point faible : hôte ● Au niveau sécurité ● Au niveau performances – Disques (moins si stockage séparé) – Réseau ● Agrégation de liens
24 novembre 2011JRES Toulouse38/42 Retours sur l'exploitation ● (Notre) hôte idéal ? ● Disques rapides, pas forcément gros ● SAS 10Ktr/mn voire 15Ktr/mn ● Bonne CPU ● (bi) quad-core standard ● Beaucoup de mémoire ● 16 à 48 Go
24 novembre 2011JRES Toulouse39/42 Retours sur l'exploitation ● Plus il y a d'hôtes et de machines virtuelles, et moins on sait où est quoi ● Supervision indispensable ● Orchestration ?
24 novembre 2011JRES Toulouse40/42 Plan ● La virtualisation de serveurs ● Mise en place de serveurs virtuels ● Administration centralisée ● Retours sur l'exploitation ● Conclusion
24 novembre 2011JRES Toulouse41/42 Conclusion La virtualisation : ● Apporte beaucoup de souplesse ● Facilite grandement l'exploitation ● Nouveaux usages, nouveaux outils ● Administration centralisée ● Puppet ● Supervision, orchestration
24 novembre 2011JRES Toulouse42/42 C'est fini Merci
24 novembre 2011JRES Toulouse Le campus de Luminy ● 7000 étudiants et personnels ● Infrastructure virtuelle : 33 VM installées sur 6 hôtes openvz/proxmox + 2 répartiteurs de charge ● Principaux services offerts (étudiants + personnels) : ● Compte et espace de stockage (samba, ldap, nfs, cups), accès unifié depuis tous les postes Windows, Linux et MacOS X, accès extérieur sécurisé + synchronisation des données (ssh, unison), pages web + bases de données personnelles (apache, php, perl, mysql, phpmyadmin), serveurs web ufr (apache, drupal), dns cache, dhcp, ntp, interfaces de gestion (demandes d'installation de logiciels,...)
24 novembre 2011JRES Toulouse Pour en savoir plus ● Sur les différents points abordés ● ● Sur Puppet en particulier ● ● Pour partager des modules (classes) Puppet ●