Virtualisation Les conteneurs – OpenVZ
Etat des lieux Depuis 2008, le nombre de machines virtuelles installées sur des serveur X86 a dépassé le nombre de serveurs physiques vendus au cours de l'année (IDC)
La virtualisation - Rappels Les différentes solutions de virtualisation Les machines virtuelles (Vmware, VirtualBox, …) Les hyperviseurs ou la para-virtualisation (Xen, HyperV Les conteneurs ou isolateurs (Zones Solaris, OpenVZ, LXC...)
Historique La virtualisation est assez ancienne (année 60 – IBM) mais elle est l'objet d'un regain d'intérêt depuis quelque temps Elle rencontre un plein succès depuis la montée en puissance des processeurs X86 et la mise sur le marché de la virtualisation matérielle
Les raisons du succès Nécessité de limiter les coûts Préoccupations écologiques Meilleure efficacité (de 5% à 60% de tx d'utilisation) – Jusqu'à 20 MV sur un serveur physique Déploiements et exploitation simplifiés Grande souplesse d'utilisation Environnement de test faciles à mettre en oeuvre Sauvegarde d'applications anciennes
Virtualisation et cloud computing Le Cloud Computing utilise la virtualisation Amazon EC2 utilise XEN OpenStack (KVM, XEN, VirtualBox) OpenNebula (KVM, XEN, VmWare) Eucalyptus (XEN)
Virtualisation des postes de travail VDI : Virtual Desktop Infrastructure La virtualisation commence à prendre en compte les postes de travail. Utilisation de virtualisation et de protocoles de bureau distants : ICA, RDP et NX SPICE (Redhat) protocole similaire aux précédents et utilisant la puissance du GPU du poste de travail pour libérer le CPU
Les machines virtuelles Isolation « parfaite » La machine guest ignore tout de la machine qui héberge (host): on utilise pour le guest un OS standard Entre 20 et 30 % de déperdition Exemple : Vmware, VirtualBox
La para-virtualisation La machine guest est adaptée pour obtenir un fonctionnement efficace Ou utilisation de des extension matérielles pour les processeurs Bonnes performances Exemple : XEN , HyperV
VMWARE – 1 Le plus plus ancien acteur : la référence Gamme Poste de travail VMWARE Player - gratuit VMWARE Workstation - payant Gamme Serveur VMWARE ESX 4.1 - 64 bits et ESXI (gratuit) – solutions « bare-metal » Server – s'installe sur un OS
VMWARE – 2 Utilise la virtualisation classique mais prend en compte également les extensions matérielles AMD et Intel Solution de migration à chaud (vmotion) Solution mature et offre complète Cout élevé Grand choix de machines virtuelles prêtes à l'emploi
Citrix/Xen Utilise la paravirtualisation Prend en compte les extensions matérielles de virtualisation Intel et AMD Bonnes performances XenServer 5.61 Notion de Dom0 : le domaine Hôte Et de DomU : les domaines utilisateurs ou Guest (Linux ou Windows)
Microsoft HyperV 2.0 Intégrée à Windows 2008 Server R2 Utilise la virtualisation matérielle Intel et AMD 1 seul CPU virtuel par VM Linux Migration à chaud entre machines d'un même cluster
VirtualBox - 1- Racheté par Sun puis par Oracle Fonctionne sur Windows, Linux et MAC/OS Pas encore aussi mature que les autres solutions au niveau serveur mais globalement efficace au niveau du poste de travail Gratuit Compatible avec les format de machines virtuelles Vmware
VirtualBox – 2 - Gère les snapshots imbriqués Guest : peut disposer de 32 processeurs Migration à chaud des machines virtuelles Support USB, ACPI et stockage ISCSI Accès distant avec le protocole VRDP Assistant de clonage de machines virtuelles
Les outils bare-metal À l'origine les outils de virtualisation s'installaient sur une machine déjà équipée d'un OS La plupart de solutions actuelles sont maintenant des solutions « bare-metal » qui comportent un OS minimal et s'installent très rapidement (15min) au prix d'un reformattage du disque
Les « provisionning » La facilité d'utilisation de la virtualisation et les besoins croissants en la matière ont pour effet de multiplier le nombre d'instances de machines virtuelles La phase d'installation a été industrialisée et les outils de provisionning permettent maintenant d'installer des machines virtuelles très rapidement en utilisant des images ISO sur disques, DHCP/PXE et/ou des modèles génériques
La gestion des machines virtuelles Des librairies comme libvirt permettent de gérer les machines virtuelles (Vmware ESX, KVM, OpenVZ, LXC, Xen, VirtualBox, HyperV, …) de facon homogène y compris le stockage SAN, ISCSI, NFS, FC, LVM Proposent de nombreux outils en ligne de commande (virt-install, virt-clone, virt-df, virt- image, virt-df, ) , des assistants p2v
Migration et p2v De nombreux éditeurs ont également mis en oeuvre des outils de migration Physical to Virtual (p2v), qui permettent de convertir une machine physique en machine virtuelle Vmware P2V Assistant Outils Xen
Images et sauvegarde La sauvegarde des images est bien sûr un problème fondamental Nécessité de faire des snapshots pour faire des sauvegardes image à chaud Attention au volumes (Liens Giga ou SAN)
Les conteneurs Permettent d'exécuter plusieurs instances d'un système d'exploitation (Unix la plupart de temps) appelées VPS (Virtal Private Server), VE (Virtual Environnment), conteneur ou isolateur Appelés encore isolateurs Quelques offres : Linux Vserver Zone Solaris BSD Jails OpenVZ LXC
Les conteneurs - 2 Très performant Très bonne scalability (capacité à monter en charge) Gestion dynamique de ressources Très haute densité Administration facile Un seul noyau
OpenVZ base de Virtuozzo : produit propriétaire vendu par SWsoft Licence GPL V2 OpenVZ comprend le noyau Linux et un jeu de commandes utilisateurs.
OpenVZ Migration à chaud des VE Utilisable avec toutes les distribution Utilise le système de fichier natif du HN (Hardware Node ou Hôte) Un seul noyau : celui du HN Paquetages noyau et outils pour Ubuntu Hardy, Debian, Centos, Redhat, Fedora, OpenSuse, ...
OpenVZ - les points forts Installation d'une machine virtuelle très simple à partir de templates et très rapide (1 mn) Démarrage très rapide d'une MV (qq. sec) Gestion optimale des ressources (mémoire et espace disque) => 120 VE avec Apache dans 768 Mo Overhead très réduit : de 1 à 2 % Très forte densité Adapté aux besoins des hébergeurs
OpenVZ – les limites Pas de montage de périphériques Isolation relativement limitée Utilisable avec Linux/Unix uniquement : les VE doivent doivent disposer d'un noyau compatible avec celui du HN => offre limitée (2.6.18, 2.6.32) Noyau patché nécessaire pour le HN (Hardware node) Configuration réseau parfois complexe
OpenVZ – Gestion des ressources OpenVZ permet de gérer les ressources : Processeur : utilisation des CPUunit et des User bean counter permettant d'affecter du temps processeur Mémoire Disque : quota définis sur le HN et quota dans le VE
OpenVZ – les templates permettent d'installer rapidement un VE Archives tar.gz de 40 à 250 Mo de l'architecture du VE Peuvent être récupérées sur le site OpenVZ (Ubuntu Hardy, Debian Etch, Centos 4 et 5, Suse, Fedora, ...) Peuvent être adaptées (debbootstap debian) debootstrap --arch i386 etch /var/lib/vz/private/101 http://debian.osuosl.org/debian/
Les interfaces réseau 2 types d'interface Venet : la plus simple, la plus sécurisée et la plus rapide mais ne dispose pas d'adresse MAC et ne recoit pas les broadcast – la configuration est stockée hors du SF de la machine Veth : bridgeable - -gère les broadcast - plus complexe – modifiable par le VE - à utiliser pour un serveur DHCP ou un serveur Samba
Installation Il faut un noyau compatible openvz et les outils Pour Ubuntu : apt-get install linux-openvz vzctl Pour Debian (google openvz debian squeeze) ajouter les dépots openvz installer le noyau et les outils
Création d'un VE Création de la machine virtuelle 101 à partir d'une template téléchargée # vzctl create 101 --ostemplate ubuntu-8.04-i386- minimal affectation nom et adresse IP # vzctl set 101 --ipadd 192.168.0.1 --hostname monVE --save lancement # vzctl start 101
Utilisation d'un VE Lancement d'une commande # vzctl exec 101 ps axf affectation mot de passe # vzctl set 101 --userpasswd guest:secret --save ouverture de session SSH # ssh guest@192.168.0.1 ou encore mode console # vzctl enter 101
Arrêt – suppression d'un VE Arrêt VE # vzctl stop 101 Effacement VE # vzctl destroy 101
Autres commandes Remarques : la configuration réseau du VE se fait depuis le host sans intervenir sur les fichiers du VE (/etc/hosts, ...) vzcalc, vzdqcheck, vzlist, vznetcfg, vzsplit vzcfgvalidate, vzdqdump, vzmemcheck, vzpid, vztop vzcpucheck, vzdqload, vzmigrate, vzps vzctl, vzdump, vznetaddbr, vzquota
Elements de configuration Les fichiers d'un VE se trouvent dans /var/lib/vz/VEID private : pour les fichiers de la machine virtuelle Le fichier de configuration se trouve dans /etc/vz/conf/VEID.conf
Liens La documentation est abondante http://wiki.openvz.org http://www.libresys.fr
Conclusion Produit très efficace Stable Bonne documentation Installation rapide et simple des VE Très bonnes performances Stable Bonne documentation Des templates standard existent sur le site openvz
Proxmox VE Proxmox Virtual Environnment Solution de virtualisation « bare-metal » Permet à partir d'un CD de mettre en place une solution de virtualisation open-source en quelques minutes Licence GPL V2 Basé sur Debian Etch 64 bits avec noyau 2.6.24 => processeurs 64 bits récents avec virtualisation hardware – image ISO 300 Mo Écrase le disque !!
Proxmox VE – suite Propose la virtualisation avec les conteneurs Openvz et KVM Interface web simple et efficace Console VNC/Java pour la virtualisation KVM Gestion simple de clusters Proxmox Sauvegarde et migration à chaud de machines virtuelles L'interface web ne gère qu'une interface Version 1.9 : gère le stockage ISCSI, LUN et NFS Version 2.0 annoncée T3 2011 - HD
LXC – 1 - Linux Containers Même principe de fonctionnement que OpenVZ S'intègre de facon plus naturelle qu'OpenVZ dans le kernel : ensemble de patch plus limités Choisi par par Debian et Ubuntu pour remplacer OpenVZ Couverture fonctionnelle non encore equivalente à celle d'OpenVZ
LXC – 2 - Installation plus complexe qu'OpenVZ Pas encore de limitation mémoire Limite disque avec LVM ou images disques Rechercher : lxc debian squeeze
Linux KVM - 1 basé sur QEMU (F. Belliard) Très utilisé dans l'industrie (kqemu) Module KVM permettant d'utiliser la virtualisation matérielle Nécessite les extension matérielles Intel VT et AMD SVM des processeurs 64 bits KVM partie intégrante du noyau Linux depuis le 2.6.20 Société Qumranet rachetée par RedHat Produit encore jeune mais avec en fort développement
Linux KVM – 2 Bonnes performances Licence GPL V2 Module kvm très simple (qq milliers de lignes) et peu intrusif pour le noyau => choix naturel pour la virtualisation Permet la paravirtualisation avec virtio depuis le noyau 2.6.25 => très bonnes performances E/S et réseau : utilisation de pilotes spécifiques (y compris pour Windows)
Linux KVM – 3 Fonctionne avec Windows, Linux, BSD, Solaris, ... Mis en oeuvre dans RedHat Enterprise Linux 5,4 RedHat a mis à disposition des pilotes virtuels pour Windows KSM : Kernel Sharable Memory – fusion de pages mémoire identiques => baisse de l'occupation mémoire En cours de développement : virtualisation imbriquée branchement d'interfaces réseau à chaud
KVM – Installation Le support de la virtualisation doit être activé dans le BIOS Installation des paquetages kvm et qemu Activation module kvm : modprobe kvm-amd ou kvm-intel Création fichier image qemu-img create fichier_image.img -f qcow2 6G Installation système kvm -m 256 -cdrom /dev/cdrom -boot d fichier_image.img
KVM - utilisation Démarrage kvm -m 256 fichier_image.img