La virtualisation à la portée de tous

Gazette Linux n°144 — November 2007

Edgar Howell

Adaptation française : Deny

Relecture de la version française : Deny

Article paru dans le n°144 de la Gazette Linux de novembre 2007.

Article publié sous Open Publication License. La Linux Gazette n'est ni produite, ni sponsorisée, ni avalisée par notre hébergeur principal, SSC, Inc.


Table des matières

Introduction
Le contexte
Terminologie
Installation
Un exemple Debian©
Les additions client
Accès à distance
Sécurité
Utilisation dans la pratique
Rumeur
Prochainement
Problèmes de client
Avantages et inconvénients
Une VM non VirtualBox
Évaluation subjective

Introduction

Récemment, j'ai finalement trouvé le temps d'examiner un élément qui à l'origine avait attiré mon attention grâce à une annonce dans une publication locale au début de l'année : VirtualBox d'Innotek©. En bref, c'est un produit exceptionnel qui mérite d'être pris en compte par quiconque s'intéressant en quelque façon à la virtualisation.

Le contexte

Pendant longtemps, VMWare a été la référence en matière de virtualisation. Il y a de cela un an environ, j'ai essayé leur VMPlayer et ce qu'il était capable de faire était très impressionnant, mais un OS (operating system, système d'exploitation) exécuté sous ce dernier était notablement plus lente qu'en natif avec le matériel. À mon avis, il pouvait émuler n'importe quel environnement, mais à un prix considérable.

Xen a été l'« autre » rival pendant un moment. Quand je l'ai essayé, il m'a semblé s'adresser seulement aux serveurs. Et on supposait que des modifications étaient requises pour les deux systèmes d'opération.

VirtualBox, à mon avis, est dans un sens à mi-chemin entre les deux. En ignorant l'option des « additions client », (guest additions), il n'a pas besoin de modifier l'un ou l'autre OS. Il fournit plutôt une couche logicielle qui rend disponible une configuration de machine en particulier et qui peut contrôler des instructions « dangereuses » et les corriger à la volée de telle sorte que l'OS dans la VM (virtual machine, machine virtuelle) peut s'exécuter sans modification antérieure. En raison de cette correction, ceci doit seulement être fait une fois. D'après mon expérience, cela semble fonctionner plutôt bien.

Terminologie

Typiquement, le terme « hôte » se rapporte à une combinaison d'un système d'exploitation et d'un PC ou tout autre ordinateur (c'est-à-dire, logiciel + matériel), comme pour le nom d'un hôte GNU/Linux dans un réseau. Mais dans le contexte de virtualisation :

  • « Hôte » est l'OS interagissant immédiatement avec le matériel sous lequel, dans ce cas, VirtualBox a été installé ;

  • « Client » est l'OS installé dans cet environnement et accédant au matériel virtuel rendu disponible par VirtualBox s'exécutant sous le contrôle de l'hôte.

La documentation de VirtualBox parle de deux états, Éteint et Enregistré. C'est une simplification qui pourrait poser certains problèmes à ceux qui ne sont pas coutumiers du double amorçage :

  • « Enregistré » est probablement l'état le plus intéressant. Quand vous indiquez à VirtualBox d'enregistrer l'état de l'ordinateur, c'est en grande partie comme utiliser la partition swap pour enregistrer l'état actuel d'un OS pour accélérer un redémarrage ultérieur après un arrêt.

  • « Powered off » a précisément le même effet que débrancher la fiche d'alimentation d'un matériel : la mémoire tampon ne sera pas vidée, vous perdrez quasi certainement des données, lors du redémarrage vous passerez par la procédure fsck. Ceci peut se comprendre dans certaines situations comme quand vous ratez une installation que vous souhaitiez refaire de toute façon.

En ces occasions —plutôt rares— où vous ne souhaiteriez pas enregistrer l'état actuel de l'ordinateur de l'OS client, selon toute probabilité, vous voudrez user du redémarrage que vous emploieriez normalement, que ce soit via une interface graphique (GUI, graphical user interface) ou en tant que root : shutdown -h now. Ceci mène à l'état « powered off », mais sans perte de données.

Installation

C'est un logiciel de qualité professionnelle avec la documentation correspondante. L'installation est extrêmement claire. C'est vrai pour VirtualBox lui-même et pour l'installation de systèmes virtuels par son entremise. Il fonctionne tel que la documentation le décrit, et il est plutôt facile à utiliser. Pas besoin de commentaires, hormis que vous devriez vous assurer de laisser assez d'espace dans la partition où votre hôte réside.

Voici quelques statistiques provenant d'un portable :

Partitions de l'hôte :


Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda12            27774776  21330516   5033356  81% /
tmpfs                   518276         0    518276   0% /lib/init/rw
udev                     10240       116     10124   2% /dev
tmpfs                   518276         0    518276   0% /dev/shm
/dev/sda9              4814936    109892   4460456   3% /shareEXT2
total 14488176

Ordinateurs clients disponibles dans la partition root :


-rw------- 1 web web   13634048 2007-09-06 11:30 Borland.vdi
-rw------- 1 web web 1844457984 2007-09-18 10:50 Debian-4.0a.vdi
-rw------- 1 web web 2926592512 2007-09-13 17:17 Debian-4.0.vdi
-rw------- 1 web web 2346725888 2007-09-26 14:19 Debian-4.0-xfce.vdi
-rw------- 1 web web 2905618944 2007-09-08 20:36 Fedora-Core-6.vdi
-rw------- 1 web web      12800 2007-09-09 08:08 Knoppix-5.1.1.vdi
-rw------- 1 web web 2422223360 2007-09-05 12:04 Kubuntu.vdi
-rw------- 1 web web 2775593472 2007-09-10 12:58 Mandriva.vdi

D'ailleurs, ce qui précède sont simplement des « disques virtuels » et ils ne reflètent pas, par exemple, les ISO de Debian  Xfce© et de Knoppix© prenant également place dans une partition de presque 30 Go. D'après mon expérience antérieure, j'ai attribué à chaque ordinateur 3 Go à employer dynamiquement si nécessaire, non utilisé et formaté au début du disque.

Un exemple Debian©

Voici deux captures d'écran de l'installation d'une Debian© basée sur XFCE sous VirtualBox.

Voici ce que montre l'affichage lors de l'utilisation d'une VM telle qu'elle est démarrée par VirtualBox.

On peut voir un peu de la fenêtre VirtualBox, le client Debian© lui-même, et aux extrémités gauche et droite la barre des tâches de l'hôte Debian©, que j'ai déplacé ici seulement en raison des proportions de l'affichage du portable.

Et il est ici en plein-écran.

Il n'y a pas une grande différence : au moins sur le portable, le plein-écran ne fait pas beaucoup plus que de cacher tout ce que la VM offre d'intéressant ainsi que la barre des tâches de l'hôte. En particulier, la barre des tâches de VirtualBox avec les boutons pour éteindre la VM n'est plus visible.

Les additions client

Les fameuses « Additions client » installent du code dans l'OS client pour en améliorer le comportement. Innotek© recommande de les installer et j'approuve.

Les améliorations majeures sont :

  • La coordination de temps sur la VM et l'hôte Il n'est absolument pas nécessaire que la VM affiche l'heure correcte— en effet, la VM de IBM-DOS©/Borland© affichée dans la fenêtre de VirtualBox de la première capture d'écran ci-dessus ne parvient pas même à présenter l'année correcte ! —cela semble souhaitable.

  • Partage de répertoires entre la VM et l'hôte. La documentation de VirtualBox se référe à des « dossiers partagés », mais ce sont des répertoires et ils sont très utiles si vous devez déplacer des données d'un environnement à un autre.

  • Suppression de la « capture du mouvement souris » À l'origine, une VM VirtualBox ne permettra pas de déplacer le curseur de la souris en dehors du secteur qu'elle occupe dans l'affichage. Si vous avez plus d'une VM active à l'affichage en même temps, ceci peut être une particularité (supplantée par la clé d'« hôte » selon la documentation). Je préfère utiliser les espaces de travail, les bureaux ou toute autre IHM de terminaux virtuels, quelque soit son nom, pour héberger une ou plusieurs VM actives simultanément (comme sur la partie inférieure de l'extrême gauche de la barre des tâches de l'hôte Debian©, au-dessus).

Accès à distance

L'accès à distance est très facile et peut être un moyen d'obtenir beaucoup plus de l'utilisation de vos vieux portables ou PC. Tout ce dont vous avez besoin est d'un ordinateur hôte assez puissant pour prendre en charge deux utilisateurs, ce qui est le cas de la plupart des PC actuels. Vous pouvez démarrer une machine virtuelle via l'interface graphique de l'hôte ou employer ssh—vous avez besoin de toute façon d'un accès à distance—comme dans le cas suivant d'un PC sous Knoppix© via le réseau local vers le portable :

Une fois que la machine virtuelle fonctionne (une question de quelques secondes, si on en a précédemment fini avec « état enregistré »), vous pouvez vous y connecter avec la commande affichée dans la petite fenêtre du fond :

À présent, les temps de réponse sont seulement limités par le réseau. L'accès Internet est disponible si la VM est connectée via l'hôte. Le seul avertissement et qu'il est très facile d'oublier d'éteindre la VM correctement ; terminer toutes les connexions de la VM sans faire ceci conduit à l'état « abandonné », de possible perte de données et l'inévitable fsck retardant le redémarrage.

Sécurité

N'ayant pas la prétention d'être un expert en sécurité, j'hésite à donner des suggestions, seulement les conseils suivants.

Dans la mesure où l'on fait confiance à Innotek© ou que l'on a examiné le code source, VirtualBox semble améliorer la sécurité. Grâce au NAT (network address translation, traduction d'adresses de réseau) vers l'extérieur, il devrait seulement identifier des réponses— non des requêtes de connexion—depuis l'extérieur de l'hôte ; ce qui est plutôt le comportement d'un pare-feu paranoïaque.

VirtualBox supporte les instantanés, ainsi une fois l'installation effectuée, il est possible de redémarrer la machine virtuelle depuis un instantané, supprimant de ce fait d'éventuelles modifications dans l'environnement a peu près aussi efficacement qu'utiliser un cédérom live tel que Knoppix © pour parcourir Internet.

Pour améliorer encore la sécurité, on peut supprimer nombre de logiciels depuis l'hôte. Après tout, il fonctionne seulement comme un intermédiaire, il n'a pas vraiment besoin d'un navigateur, par exemple.

Cependant, gardez à l'esprit la raison pour laquelle IP-Cop refuse de partager un disque dur avec n'importe quel autre OS : plus il y a de logiciels sur le matériel, plus s'accroît le risque d'échec quelque part.

Et si quelqu'un d'une façon ou d'une autre peut être capable de s'introduire dans votre hôte avec des privilèges suffisants, il pourrait aisément s'envoyer à lui-même la totalité de votre VM afin de la consulter déconnecté pendant ses loisirs !

Utilisation dans la pratique

Depuis l'installation initiale de VirtualBox avec un hôte Debian 4.0® et, entre autre, un client Debian 4.0® début août, j'ai effectué facilement 80—90% de mon accès Internet dans cet environnement avec un portable. En de rares occasions, il y a eu des entrées/sorties sur le disque que l'hôte a attribué à VirtualBox, continuant parfois pendant une minute ou davantage. Mais « l'expérience Internet » n'a pas été notablement affectée. Je suis encore satisfait des temps de réponse pour accéder à la BBC et CNN.

Le peu d'Internet que j'avais effectué en dehors de cet environnement s'est fait avec Mandriva® démarré nativement depuis une autre partition pour du courrier électronique. Il était tout a fait facile de copier mes signets depuis Firefox vers la partition des « dossiers partagés » et ensuite depuis cette dernière vers le répertoire Iceweasel (Cela provient de Debian®, ne me demandez pas pourquoi) dans la VM. Et à travers le réseau vers l'autre ordinateur, naturellement.

Pour ce qu'il vaut, le client « Borland » affiché dans la fenêtre VirtualBox ci-dessus a été créé avec des disquettes sur un PC et envoyé via le réseau local vers le portable qui n'a pas de lecteur de disquette !

Rumeur

Peu après avoir commencé à essayer VirtualBox, j'en ai parlé à un collègue qui débute sous Linux. Récemment, il m'a dit qu'il appréciait de travailler avec une interface graphique (Wimp, window, icon, menu, pointing device, fenêtres, icônes, menus, souris/OS), qu'il avait essayé sous Ubuntu® et Knoppix.®

Il a précisé qu'une fois les « additions clients » installées, la coordination de temps est moins coûteuse que sous VMWare (qu'il a employé maintes fois) où ceci est supposé être un problème connu.

Sans doute plus intéressant, il a mentionné que RealPlayer sous VirtualBox assure la synchronisation entre le son et le fichier

Prochainement

Les éléments que VirtualBox supportent mais que j'ai pas encore eu la chance d'étudier sont :

  • Un pont sur l'hôte en même temps que le NAT. VirtualBox affiche 4 adaptateurs de réseau disponibles. Ainsi, il devrait être possible de connecter le client au réseau local en plus de son utilisation du NAT pour tirer profit de toute la connectivité dont l'hôte dispose.

  • CUPS pour une imprimante réseau. Puisqu'elle est probablement connectée, il serait très utile de pouvoir accéder à une imprimante réseau.

  • Accès à l'USB (Universal Serial Bus, Bus Série Universel). C'est disponible, simplement décrit comme dangereux, pour des raisons évidentes, et de ce fait cela ne fait pas partie de mes priorités immédiates.

  • Accès distant à l'USB. Il est encore disponible et devrait être plutôt utile dans l'environnement approprié mais à l'heure actuelle des dossiers partagés sont suffisants (veuillez vous référer ci-dessus).

Problèmes de client

La commande df ne fonctionne pas avec les dossiers partagés. C'est vraiment mineur puisque les informations nécessaires peuvent être obtenues depuis l'hôte.

vi ne peut écrire dans un dossier partagé sans un message d'erreur, cela semble fonctionner mais on ne peut lui faire confiance (il y a une erreur d'écriture dans le fichier swap). Il peut modifier un fichier en une longueur nulle. Je copie à présent un fichier localement pour le modifier et je le copie ensuite de nouveau pour le rendre disponible pour d'autres environnements.

cp fonctionne d'EXT2(second extended file system, second système de fichier étendu) vers EXT2, mais pas d'EXT2 EXT2 vers DOS (Disk Operating System, système d'exploitation à disque). Il n'est pas certain que cela soit seulement un bogue. Mais qui utilise DOS ?

Sous Mozilla Ctrl++ n'augmente pas la taille de la police mais cliquer avec la souris sur Affichage->Taille du texte->Plus grande fonctionne. Et Alt+-VZI fonctionne, alors pourquoi se plaindre ?

Avantages et inconvénients

En utilisant des instantanés, vous pouvez générer des « points de restauration » pour restaurer votre système après vos manipulations— apprendre par vous-même d'après vos essais et erreurs et à votre propre rythme.

Les dossiers partagés peuvent être extrêmement déroutant, particulièrement après le redémarrage d'un client ou d'un hôte, au moins durant la phase d'essai. Le redémarrage d'un hôte exige que le dispositif soit de nouveau monté postérieurement sur le point de montage si cela n'est pas fait de manière permanente dans le /etc/fstab de l'hôte. Lors du redémarrage du client, si un dossier partagé est défini par le paramètre -transient, il devra de nouveau être défini dans l'hôte et monté ensuite sur le client. L'ajouter dans le fichier /etc/fstab du client fonctionne correctement, tant que -transient n'est pas utilisé chez l'hôte. En bref : évitez -transient.

La barre des titres VirtualBox de la VM réduit trop l'« écran » pour afficher la barre des tâches « du fond » de la Debian®. Ceci est restitué par le mode plein-écran. Le mode plein-écran semble plus raisonnable de toute façon, à moins que vous teniez à avoir plusieurs machines virtuelles sur un affichage physique—dans ce cas, bonne chance !

Sur le portable, au moins, le mode plein-écran cache simplement le cadre de VirtualBox ; il n'augmente pas la taille de la fenêtre (VirtualBox semble maintenir le rapport de longueur et de largeur de l'affichage). Est-ce un bogue ou une fonctionnalité ?

La référence VBoxManage est très sympathique mais cela serait bien plus convivial si les commandes secondaires étaient réitérées à l'endroit où la commande est évoquée—cela éviterait nombre de paginations aller-retour.

Bien qu'il soit correct, VirtualBox n'est pas dans tous les cas le banc d'essai parfait. En raison de la configuration unique de machine qu'il rend disponible dans une VM, quelques possibilités sont exclues. Par exemple, le portable et le PC utilisés ici ont tout deux un accès WLAN (wireless local area network, réseau local sans fil) à Internet. Mais le NAT de VirtualBox transforme en réalité l'hôte en un pare-feu. Depuis une VM, il n'y a pas moyen d'apprendre comment gérer un WLAN ou comment établir une connexion avec un point d'accès.

Apparemment, il y a des situations parmi lesquelles VirtualBox échoue lamentablement. Fedora Core 2® sur le PC et le portable était tellement lente que cela n'en valait pas la peine, à la fois pendant l'installation et après. Je sais—observez la capture d'écran—FC 6 fait l'affaire et qui voudrait utiliser la 2. Mais quelque chose est capable de réellement dégrader les temps de réponse.

Et les tentatives pour créer une machine virtuelle n'étaient pas toutes réussies. Peut-être n'avais-je simplement pas assez de patience, mais quand le moniteur système affiche une escalade du processeur pendant une période considérable et que la commande ps aux identifie une VT sur l'hôte ...

Une VM non VirtualBox

Ainsi qu'il est mentionné ci-dessus, ce paquetage a plusieurs autres fonctionnalités que je n'ai simplement pas encore pu vérifier. Mais la capacité d'utiliser des VM depuis un autre environnement semble très intéressante. Ainsi, j'ai trouvé une VM sur Internet qui a été produit avec VMWare.

Après avoir dézippé le fichier et déplacé le VMDK (Virtual Machine Disk Format, Format de disque de machine virtuelle) dans le répertoire VDI, (Virtual Desktop Infrastructure, Virtualisation du poste de travail) et définit une VM avec celui-ci en tant que disque virtuel, voici ce qui a en a résulté :

Évaluation subjective

VirtualBox a largement dépassé mes attentes. Pourtant, certains points sont encore à revoir. Mais c'est un produit très abouti, un banc d'essai exceptionnel pour expérimenter et apprendre.

Il serait très intéressant de connaître les expériences de ceux qui expérimentent au coeur du processeur et des gens désireux de stabiliser des serveurs.

De toute façon, à mon avis, il n'y a aucune raison pour que quiconque aie peur d'examiner le monde de Linux, qu'il soit intéressé par une variété différente de distribution Linux ou en considérant qu'il veuille changer ses habitudes sans risque.

Edgar est consultant dans la région de Cologne et de Bonn (Allemagne). Son travail quotidien consiste à assister ses clients pour établir la paie, à maintenir d'anciens programmes IBM® en assembleur, quelques autres en COBOL à l'occasion et par ailleurs à utiliser QMF, PL/1 et DB/2 sous MVS.