Title: La virtualisation open source qui roxx subtitle: ; Proxmox Date: 2012-09-04 20:00 Modified: 2012-09-04 20:00 Category: Système Tags: debian, proxmox, linux, virtualisation keywords: debian, proxmox, linux, virtualisation Slug: virtualisation-opensource-qui-roxx-proxmox Authors: Victor Status: published
[TOC]
Comme je l'ai dit dans un précédent article sur la virtualisation, je trouve cette manière de fonctionner sur un serveur particulièrement intéressante.
Comme je l'ai également dit à la fin de cet article, j'utilise pour ma part un outil de virtualisation open source nommé proxmox.
Proxmox est un packaging disponibles pour de nombreuses versions de linux/unix, mais il existe une distribution basée sur debian et maintenue par Proxmox, que j'utilise pour sa simplicité et sa compatibilité. (Au moins, pas besoin de se demander si tel ou tel module noyau fonctionnera ou pas une fois installé le package proxmox...)
Donc, la distribution debian Proxmox vous permet, une fois installée, de virtualiser via 2 techniques, OpenVZ et KVM, et de gérer toutes vos machines simplement via une interface web, de les sauvegarder en masse de manière programmée, tout en ayant un panel d'outils en ligne de commande sympathiques pour faire tout et n'importe quoi.
Il est également possible de mettre en place un cluster entre plusieurs Proxmox, d'accéder aux VM via l'interface web avec une applet Java, etc etc.
Je vais donc détailler dans cet articles les fonctionnalités de Proxmox, parce que j'ai bien envie d'en parler :)
Avec proxmox, vous êtes automatiquement lié à différentes interfaces "bridgées". Ou plutôt, des interfaces de pont en français. En gros, un switch virtuel dans le serveur.
C'est assez classique des hyperviseur, mais ça vaut le coup de le rappeller. Ca permet de lier les interfaces réseau des VM aux interfaces réseau physiques de l'hyperviseur, pour par exemple leur donner accès à Internet.
Ca permet également de créer des interfaces bridgés pour créer un réseau interne dans le serveur, permettant de joindre en interne toutes les VM. Totalement étanche à l'extérieur, ça ouvre des possibilités intéressantes en matière de service sécurisés :-)
L'utilisation de ce service permet vraiment de configurer tout et n'importe quoi de manière très simple. En effet vous pouvez ajouter de nombreuses interfaces à un bridge, par exemple des tap/tun pour openVPN, des interfaces dummy ou même d'autre bridges !
De plus, vous pouvez grâce à iptables créer des règles spécifique sur cette interface, pour la rendre totalement étanche, comme un vrai switch physique.
C'est sur ce principe qu'est basé le système réseau de proxmox, et il est vraiment très simple à utiliser et à exploiter.
Bon, soit vous êtes admin système et vous avez compris le titre, soit non. Dans mon métier, on aime les trucs binaires !
La virtualisation Open VZ va en fait consister à se servir du noyau système de l'hyperviseur pour faire fonctionner les machines virtuelles.
Cela a plusieurs effets, positifs comme négatifs.
En fait, vos machines virtuelles vont tourner en utilisant les ressources de base de l'hyperviseur. Contrairement à d'autres type de virtualisation, un OpenVZ va ainsi partager ses ressources directement avec l'hyperviseur.
Concrètement, si cela permet d'utiliser différentes distributions linux dans vos machines virtuelles, vous ne pourrez pas utiliser de Windows. Toutes vos distributions seront basées sur le noyau de l'hyperviseur, c'est à dire un noyau linux.
Installer un système Open VZ revient à choisir un "template", sorte d'image d'un véritable système d'exploitation, qui va être utilisé pour simuler ce système à destination de la machine virtuelle. De cette façon, du point de vue de la machine, le système sera correct et normal.
Ensuite, en se basant sur ce template, l'hyperviseur va réaliser un gros "Chroot". Pour les néophytes ayant la flemme de lire wikipédia, l'hyperviseur va créer un dossier ayant une arborescence linux classique, puis va lancer la VM comme un processus classique en lui disant que son dossier racine / va être l'arborescence précedemment créée.
En conséquence, tout les processus lancées dans la VM seront vus depuis l'hyperviseur, alors que la VM sera une machine à part entière.
Ben non, ça amène pas mal d'avantages intéressants.
Il y a surement plein d'autres choses, mais globalement c'est déjà des points très intéressants, selon les usages qu'on en a.
Par contre, comme d'habitude, il y a aussi quelques inconvénients. Le noyaux étant émulé, il y a des choses qui ne fonctionnent pas dans le CT.
Bref, il y a du pour et du contre. Perso, sauf pour certains usages très précis (IPSec ou tomcat avec Java...), je n'utilise que des CT sous OpenVZ. Optimisées et ultra rapides, ça serait vraiment dommage de s'en passer.
Bon, si vous tenez vraiment à faire tourner tomcat, à utiliser IPSec, voir à installer un client NTP. Ou pire, que vous n'aimez pas OpenVZ ou que vous tenez à utiliser Windows (ouh ! Haro !), proxmox n'a pas mis tous les oeufs dans le même panier et propose un deuxième système de virtualisation open source, j'ai nommé KVM.
Une machine KVM est cette fois une véritable machine virtuelle, complètement indépendante de l'hyperviseur. Elle possède son propre noyau, ses propres interfaces réseaux et sa carte graphique, un disque dur bien défini, etc.
Vous pouvez donc tout à fait l'utiliser pour faire tourner un système Windows si vous le souhaitez.
Cette technique de virtualisation est robuste, mais aucun des avantages d'OpenVZ ne peut être appliqué à elle. En contrepartie, la plupart des inconvénients d'OpenVZ n'a pas de prise sur une KVM :-)
Etant une "vraie" machine, une KVM va pouvoir utiliser ses propres modules noyaux (bonjour, IPSec), ainsi qu'une machine virtuelle java. On l'installe depuis une image iso classique, comme n'importe quel système d'exploitation.
Pour ma part, je ne m'éteindrai pas trop dessus, car je n'utilise les KVM que si mon besoin ne peut vraiment pas se poser sur OpenVZ.
KVM est certes plus complet, mais par rapport à OpenVZ, le fait d'avoir une vraie machine à émuler est aussi beaucoup plus lourd. Ca demande plus de ressource à l'hyperviseur, c'est bien plus long à éteindre et démarrer qu'un containeur, on est obligé d'y accéder via SSH ou avec les outils proxmox, ...
Bref :-)
Bon, je ne vous ferait pas plein de screens super bô de l'interface web de gestion proxmox.
Accessible nativement en https (c'est le bien), elle permet de quasiment tout gérer pour vos tâches quotidienne.
GLobalement, avec simplement l'interface web, vous faites tourner tout un tas de machines virtuelles seulement en cliquant 2 ou 3 fois, depuis une interface web sécurisée.
En rajoutant un peu de ssh et de ligne de commande, vous avez un service pro, redondé, sécurisé, permettant de lancer votre propre service de VPS dans votre salon si vous avez envie ! Après bien sûr, à vous de négocier votre bande passante avec votre FAI (ainsi qu'avec ses Conditions Générales de Vente)
A plus petite échelle (la mienne par exemple) vous pouvez simplement sauvegarder et redémarrer votre serveur web que vous avez pris 3 jours de temps libre à configurer aux petits oignons. (Enfin, surtout le serveur courriel en fait...), et ce même si votre serveur maison claque brusquement.
Auneffet, ce en quoi je crois, j'en parle. Simple et efficace :-)
Maintenant, ce long article servant d'introduction à d'autres prévus sur la configuration de proxmox, j'espère que vous l'aurez apprécié.
Désolé, c'est long. Mais c'est bon aussi ;-)