Maniatux's Blog

Welcome to the internet

Virtualization

Pour la virtualisation, ce sera CentOS

Rédigé par Xavier - - Aucun commentaire

Suite à mon article précédent, j'étais parti sur une solution Proxmox pour mon hyperviseur. Cependant je me suis rapidement énervé sur l'applet VNC en Java qui permet d'avoir l'affichage des machines virtuelles. Il est lent (impossible d'attraper le grub d'une VM), rigide, et fait régulièrement planter Firefox. Ragequit.

C'est donc CentOS 6.2 x86_64 qui est venu remplacer Proxmox sur l'ordinateur. La console distante virt-manager est sur mon notebook en archlinux. Les deux semblent plutôt bien se marier puisque je n'ai eu que 3 crashs en un weekend (ce qui est un miracle pour virt-manager).

J'ai actuellement deux VM (je vous laisse deviner d'où viennent les noms) :

  • Shadowbroker : serveur mail (Postfix + dovecot) sur CentOS 6
  • Harbinger : serveur jabber (prosody) sur Debian Squeeze

La mise en place du serveur mail sous CentOS est intéressante à faire, notamment à cause de SELinux que j'ai choisi de ne pas désactiver cette fois. Cela fera l'objet d'un article très prochainement.

Quelle solution KVM choisir ?

Rédigé par Xavier - - Aucun commentaire

Mon ancien ordinateur portable Dell Inspiron 9400 va être recyclé en serveur de virtualisation, et j'ai bien entendu choisi une solution Linux-KVM. En effet bien que je ne sois pas contre VMware ESXi, que je considère comme le meilleur produit existant actuellement, je préfère explorer quelque chose de moins connu qui sera donc plus instructif.

Ma problématique est de choisir l'OS qui sera utilisé pour faire fonctionner l'hyperviseur. J'en ai retenu deux :

  • CentOS
  • Proxmox

CentOS s'installe en mode texte avec l'hyperviseur et le daemon libvirt. On peut ensuite y connecter une console Virt-Manager depuis un autre poste. L'inconvénient est que Virt-manager est tout sauf fiable : c'est rigide, bugué, grandement variable selon les versions, et pas disponible sur Windows. L'avantage est qu'en partant d'une solution comme CentOS on a une certaine liberté sur le choix des composants. On sait aussi que les mises à jour offrent des améliorations dans la virtualisation du fait du travail de Red Hat.

Proxmox offre une console en web donc indépendante de l'OS, et en pratique bien plus fiable et complète que Virt-manager. L'inconvénient est qu'une solution tout-en-un offre moins de souplesse dans le choix des composants ou leur modification. On ne sait pas également comment évolue le produit, si les mises à jour se contentent de corriger les bugs, ou si elles apportent des améliorations de performances et l'introduction de nouveautés comme sur CentOS / RedHat.

Je pense retenir Proxmox, les OS invités seront sûrement des debian ce qui permettra d'utiliser les containers OpenVZ et économiser des ressources par rapport à KVM.

Proxmox Virtual Environment 2.0

Rédigé par Xavier - - Aucun commentaire

Proxmox VE - Virtual Environment - est une solution de virtualisation bare metal orientée entreprise prête à l'emploi, basée sur l'hyperviseur Linux-KVM et les containers OpenVZ. Sa particularité est de proposer une console graphique en web pour administrer le tout. La version 2 est actuellement en beta, mais sa sortie finale est prévue d'ici le mois de Mars (2012 Q1 d'après la roadmap).

Caractéristiques

L'entreprise Proxmox qui développe Proxmox VE met son produit à disposition gratuitement sous licence libre. Parallèlement à cela ils proposent du support payant (forums, assistance, requêtes aux développeurs...) et une solution de sécurisation de messagerie (mail gateway) payante, même si il existe une version free avec moins de fonctionnalités.

Proxmox VE permet de faire simplement un cluster avec plusieurs serveurs physiques, et depuis la version 2.0 la HA, High Availability (haute disponibilité) est possible. Il est donc envisageable d'assurer la continuité de service même en cas de panne matérielle. L'entreprise Proxmox dispose de certifications avec plusieurs constructeurs (la liste est visible dans leurs brochures commerciales).

Proxmox VE se base sur Debian 6.0 Squeeze amd64, avec un kernel "based on RHEL6x" et lui ajoute un dépôt permettant d'avoir l'interface web de configuration mais aussi une version de qemu à jour. Le fonctionnement en cluster fait appel au système de fichiers pmxcfs (Proxmox Cluster file system).

Installation

Vous devez commencer par télécharger l'ISO d'installation à cette adresse. Le processus est simple et ne demande que d'entrer un mot de passe root et de spécifier une adresse IP fixe. Le disque dur entier est automatiquement utilisé et formaté pour recevoir Proxmox. Après avoir démarré le système, vous pouvez lancer une mise à jour pour être certain d'avoir les dernières versions des composants. Vous pouvez le faire sur la machine même, ou par accès SSH de la manière suivante :

# apt-get update
# apt-get dist-upgrade

Découverte de l'interface

L'adresse IP de votre serveur Proxmox s'affiche lorsque celui-ci a fini de booter. Il y a également l'adresse de l'interface d'administration, elle est de la forme https et contient le FQDN ou l'adresse IP suivie du port 8006. Par exemple : https://10.40.1.17:8006

Cette vue affiche les principales informations de votre infrastructure : serveurs, authentification, configuration. Tout comme sur vSphere, le cadre du bas affiche les logs à la volée ce qui vous permet de connaître précisément les résultats de vos opérations sur l'hyperviseur. Dans le menu "storage" (stockage) vous pouvez voir vos différents périphériques : disque local, partage NFS, iSCSI. Stocker ses VM sur un support réseau permet de mettre en place la High Availability. La liste des serveurs à gauche permet d'accéder à une configuration individuelle : paramètres IP, nom d'hôte, etc.

Pour découvrir l'interface plus en détail et apprendre à mettre en place une machine virtuelle, Proxmox a créé une chaîne Youtube avec des tutoriels video. Voir les vidéos.

Virtualisation KVM vs container OpenVZ

Pour connaître le fonctionnement théorique de la virtualisation et des containers, je vous renvoie à cet ancien article dans lequel j'explique les différences entre les deux à l'aide de schémas.

OpenVZ est la solution la plus performante, puisqu'il n'y a aucune couche d'émulation et un seul kernel pour tous les systèmes invités. Il n'y a en pratique aucune perte de performance ou elle s'élève à seulement 2 ou 3%. Il faut cependant que le système invité soit de type Linux, puisqu'il sera dépourvu de kernel et utilisera celui de l'hôte. Pour cela, Proxmox VE utilise des templates (modèles). Il y a par exemple un template pour Debian Squeeze, qui va juste demander à l'utilisateur d'entrer un mot de passe root, les paramètres IP et l'installation se fera ensuite automatiquement. Le boot est presque instantané.

KVM va au contraire émuler un ordinateur complet afin de rendre le système indépendant de l'hôte. Cette virtualisation est assurée par le processeur de l'hôte (grâce aux instructions Intel VT-x ou AMD-V) et par Qemu pour la création des périphériques complémentaires. Il est ainsi possible d'installer des systèmes non modifiés tels que Windows, et d'utiliser des périphériques VirtIO (qui ne sont pas réellement émulés mais partagés avec l'hôte). Par contre SPICE, solution de virtualisation desktop développée par RedHat, ne semble pas encore disponible mais prévu.

Installation d'un Windows Server 2008 virtualisé

Je dispose d'un exemplaire de Windows Server 2008 en image iso (msdnaa). La première chose à faire est de l'envoyer sur le serveur. Pour cela, cliquez sur l'espace de stockage de votre choix dans la colonne de gauche. Dans l'onglet "content" vous verrez un bouton upload vous permettant d'envoyer votre iso. Il est aussi possible de le faire par SSH. Voir le tutoriel vidéo.

L'étape suivante consiste à créer une nouvelle machine virtuelle et à entrer les paramètres adéquats. Il est judicieux de sélectionner VirtIO pour le stockage et la carte réseau. Vous aurez cependant besoin de récupérer le CDROM de pilotes pour Windows. Vous pouvez suivre le tutoriel vidéo à cette adresse.

Attention, pour que la console fonctionne, vous devez avoir le plugin Java installé dans votre navigateur.

Une fois Windows 2008 installé, vous devrez aller dans le gestionnaire de périphérique pour installer les pilotes de la carte réseau (ils sont sur le CDROM VirtIO). Votre serveur virtualisé est maintenant prêt à l'emploi !

Conclusion

KVM, Linux, OpenVZ, sont des produits libres très puissants que l'on apprécie de voir fonctionner ensemble une fois leur configuration réalisée. Proxmox VE fournit un système où tout est déjà intégré, prêt à l'emploi. L'interface de configuration rend accessible à tous les administrateurs la mise en place de cluster de virtualisation, et rend ainsi cette solution compétitive avec celles du monde propriétaire.

Alors que Virt-Manager, développé par RedHat, est limité à Linux et tend à crasher très souvent, l'interface Web de Proxmox est universelle, stable, et bien plus complète.

Proxmox VE 2.0 est très bon !

Pilotes VirtIO Windows (CDROM et Floppydisk)

Rédigé par Xavier - - Aucun commentaire

Un petit lien vers un serveur du projet Fedora proposant des pilotes VirtIO pour Windows (réseau et stockage). Ils sont disponibles en 32 et 64 bits, pour XP / 2003 / Vista / 2008 / Seven et ils sont signés. Cliquez sur le dossier ci-dessous :

Le fichier vfd peut être monté sur un lecteur de disquette (émulé) dans la VM, afin de charger les pilotes du périphérique de stockage VirtIO et de pouvoir ainsi installer Windows. Pour XP/2003 il faut faire F6 dès le début, tandis que Vista/2008/Seven il y a une option "charger un pilote" dans l'outil de partitionnement. Le fichier iso contient les pilotes réseau (netkvm), stockage (viostor), balloon, vioser, qui peuvent être installés bien plus tard.

Cet article me sert de marque-page car j'ai souvent besoin de ces pilotes et je ne les retrouve plus. Il semble que la disquette et l'iso permettent aussi d'automatiser l'installation de guest Windows, chose sur laquelle je reviendrais plus tard.

Aperçu de VMware ESXi : excellence

Rédigé par Xavier - - Aucun commentaire

VMware ESXi est l'hyperviseur historique aujourd'hui le plus utilisé en entreprise et l'un des plus efficaces. Leur expérience se ressent même dans les versions "light" de leurs produits destinées aux desktop.

VMware ESXi se présente sous forme d'un OS tenant dans une ISO de 200Mo à installer sur le serveur. Alors que la version 4 ne voulait pas fonctionner chez moi à cause des cartes réseau qui n'étaient pas détectées, avec la version 5 (sortie il y a peu) tout va bien. L'hyperviseur démarre sur une console graphique récapitulant les informations essentielles et permettant d'effectuer quelques réglages sommaires (adresse IP...).

Côté client il y a la console vsphere client à télécharger afin de pouvoir administrer l'hyperviseur. On remarque tout de suite qu'elle pèse très lourd, 350Mo, soit plus que l'hyperviseur lui même ! L'installation est donc très longue.

Par contre une fois la console lancée, on voit qu'on a à faire à quelque chose de très complet, très intuitif et très sérieux, par exemple le petit schéma sympathique qui détaille les éléments mis en œuvre pour la virtualisation. La création des machines virtuelles est simple.

Chose très appréciable : à la création d'une machine virtuelle il est possible de sélectionner une ISO qui n'est pas sur l'hyperviseur. J'ai donc pu aller chercher mon installation de Windows 2008 sur mon serveur FTP, alors que sur Hyper-V j'avais du l'envoyer sur le C$ de l'hôte.

L'installation de Windows 2008 fut rapide néanmoins j'ai eu beaucoup de mal avec le curseur de souris, subissant des mouvements par accroc et beaucoup beaucoup trop sensibles. Pas facile de cliquer sur un élément. Heureusement cela est résolu après l'installation des vmware tools. Il n'y a plus besoin de capturer le curseur et celui reste fluide.

On peut voir d'ailleurs que VMware a ses propres spécificités : son pilote graphique, qui supporte la 3D et les effets aero (dans la version desktop de vmware, si l'hôte le permet), sa carte réseau...

Je n'ai pas fait le tour des autres fonctionnalités comme le fonctionnement en cluster, l'import de serveur physique, mais VMware ESXi m'a semblé être la solution la plus performante, la plus soignée et la plus universelle. Malheureusement la console semble lourde et peu réactive, il y a parfois une latence entre le moment où l'on clique et celui où elle réagit. L'installation des OS Linux n'a pas posé de soucis, même avec les cartes réseau vmxnet.

Conclusion

VMware ESXi est complet, performant, bien pensé. C'est la solution que je retiens personnellement, même si cela ne signifie pas que les autres sont mauvaises. J'ai juste trouvé plein de petites choses sur ESXi (ou plutôt vsphere) qui le rendent idéal pour moi.