Introduction à la virtualisation

Vous avez une idée ? Trouvez gratuitement des développeurs sur Codeur.com !

Recevez des devis (gratuit)

logo © Sun Microsystems

La virtualisation, c’est à dire faire tourner plusieurs machines virtuelles sur une seule machine physique, éventuellement avec un système d’exploitation différent de celui de votre PC, est un sujet dans le vent.

logo © Citrix Systems

Pourtant, je pense que beaucoup ne l’ont pas encore essayé.

Je ne vais pas ici expliquer en détail ce qu’est la virtualisation, ou les différents moyens d’y arriver.

On parle ici de faire tourner un 2ème (ou plus) système d’exploitation dans votre PC.

Quel intérêt ?

  • faire des essais : vous pouvez tout modifier, tout casser… votre PC hôte reste parfait et stable. Vous pouvez recommencer à zéro à tout moment. Quand vous avez fini vos essais, vous supprimer simplement la machine virtuelle. Pendant ce temps, votre PC est toujours utilisable, sans être impacté
  • essayer des versions instables, en développement, etc : vous êtes en Ubuntu 9.10 et vous voulez tester la prochaine version 10.04 RC ? ou pire, il y a 1 ou 2 mois, la version alpha ? … c’est risqué de basculer tout votre PC sur une version instable ! En cas de problèmes vous pouvez perdre vos données, ou simplement ne plus savoir lancer un de vos programmes à cause d’un bug non encore résolu
  • essayer des Systèmes d’Exploitations : envie de tester Debian ? BSD ? Solaris ? Chrome OS ? … même Windows est virtualisable (mais attention à la licence, qui doit être valide et permettre la virtualisation…)… mais pas envie de devoir repartitionner votre disque dur pour libérer 6 ou 10 GB de place ? … La virtualisation vous aidera ! Pas besoin de repartitionner (ok, il faut quand même la place sur le disque dur, mais une partition existante est suffisante). Une fois vos essais terminés, libérer la place en supprimant votre machine virtuelle
  • utiliser simultanément plusieurs OS : vous travaillez (évidemment) toujours en Linux, mais vous devez obligatoirement utiliser un programme n’existant que pour Windows ? (ou que pour une ancienne version de Windows) Le Dual Boot, c’est bien, mais c’est très pénible de devoir rebooter son PC juste pour aller chercher une info dans un programme dans ce 2ème OS… Aucun problème ! Virtualiser Windows (avec la licence…) sous Ubuntu 😉
  • réduire le nombre de machines : permettre de virtualiser, par exemple, un Windows sur un PC Linux (ou l’inverse) vous permettra de ne conserver qu’une seule machine, mais aussi un seul écran, clavier, souris, sans même avoir besoin d’un switch. En serveurs, regrouper sur un gros serveur, plusieurs serveurs qui n’étaient utilisés qu’à 10 à 15% est aussi doublement intéressant : économie d’achat et de maintenance, mais aussi réduction de la consommation électrique
  • besoin de sécurité : Si vous voulez isoler complètement le programme sensible en lui créant un environnement virtualisé. C’est utilisé aussi pour les serveurs. Certains programmes de virtualisation sont plus adaptés aux serveurs que d’autres.
  • duplicier ou déployer rapidement des machines virtuelles : vous pouvez installer et sauver une configuration type (OS, programmes, configuration) et  utiliser ensuite cette image comme base pour vos développements prochains

Quelle limitation ?

  • d’abord, la logique dit que, 2 systèmes d’exploitation, ça demande plus de place, de mémoire et de puissance cpu qu’un seul ! Donc, pour virtualiser, il vous faut une machine relativement puissante
    Attention, je n’ai PAS dit qu’il fallait un Dual cpu Hexa-Core Hyperthreading avec 16 GB de mémoire ! 😉 Mais faire de la virtualisation sur un Pentium 3 avec 256 MB de mémoire… non, là non…
  • le processeur : sans entrer dans la technique, certains processeurs ont des instructions spéciales pour gérer la virtualisation. Ce n’est en général pas une obligation, mais ça améliore nettement les performances.
    Remarque : je pense que ces instructions sont indispensables pour virtualiser Windows car il n’est pas possible de l’adapter (car le code source n’est pas disponible) pour tourner sans ces instructions de virtualisation

    • les AMD ont les instructions AMD-V depuis les AMD 64 (donc, tous les cpu AMD actuels, Athlon 64, X2 et Phenom)
    • les Intel haut de gamme, ou récents, ont les instructions Intel-VT (précédemment, Intel réservait ces instructions à quelques cpu relativement chers)
  • la mémoire : 2 OS, donc vous doublez l’occupation mémoire ! Donc, 512 MB… c’est juste pour essayer mais ce sera très lent ! 1GB me semble le minimum. L’idéal étant 3 ou 4 GB
  • disque dur : là, c’est rarement un problème ! Un OS occupe entre 1 et 10 GB (plus vos données, mais ça c’est le même avec tout OS) et vu la taille des disques durs actuels (de 160 GB sur un petit portable, à 1,5 TB, voir 2 TB pour les disques SATA 3,5″ récents) vous aurez certainement une partition avec 10 GB de libre pour créer votre machine virtuelle
  • l’accès aux ressources depuis l’ OS virtualisé : Il y a des limitations, parfois des différences entre version gratuite ou payante de certains virtualisateurs. Disons que l’accélération graphique 3D n’est pas souvent supportée, et l’accès aux ports USB parfois
  • les OS virtualisés : Presque tout est virtualisable ! Mais parfois c’est explicitement interdit par la licence de l’ OS que vous souhaitez virtualiser (exemple connu : les Vista Basic et Premium ne peuvent légalement pas tourner dans une machine virtuelle !). Et n’oubliez pas, si cet OS n’est pas en licence libre, vous DEVEZ avoir une licence en ordre pour virtualiser cet OS (mais ça, c’est votre problème)…
  • le cpu : Il faut évidemment que l’OS que vous voulez virtualiser, tourne sur votre processeur ! Je suppose que vous avez un x86, càd un Intel ou AMD ? … donc Android natif, prévu pour cpu ARM ne tournera pas (mais il existe des versions Android x86)
  • 32 ou 64 bits : La limite est celle de votre OS de base, sur votre PC hôte. Evidemment, si votre processeur est un 32 bits, vous ne pourrez pas virtualiser un OS 64 bits (logique non ?). Et si vous avez un cpu 64 bits, pour virtualiser un OS 64 bits, il faut que vous ayez installer un OS 64 bits (ex : AMD 64 bits avec Ubuntu 32 bits = virtualisation 32 bits uniquement). Actuellement, les OS 64 bits sont très bien supportés : on trouve maintenant tous les softs en 64 bits, y compris Flash, etc. Donc pas de raison de rester en 32 bits si votre cpu est un 64 ! 😉
  • cpu multi-core : Il me semble que les virtualisateurs actuels ne permettent pas (à moins que certaines versions payantes ?) de faire tourner une machine virtuelle sur plusieurs coeurs. Si j’ai un Ubuntu sur un Quad Core, et que je virtualise un Solaris, Ubuntu pourra utiliser les 4 coeurs, mais le Solaris virtualisé, un seul. Malgré tout, un Dual Core, au minimum, est largement conseillé ! Un cpu mono-coeur devra être partager entre les 2 OS (réel et virtuel), et tous les programmes… ça va être pénalisant (càd … lent)

Le choix du programme de virtualisation ?

Personnellement, j’en ai retenu 2 :

  • Xen, qui semble plutôt conçu pour être géré en ligne de commande, semble très bien adapté aux serveurs : par exemple pour mettre « bind » dans une machine virtuelle pour améliorer la sécurité, ou pour séparer totalement des parties de serveurs utilisées par différents clients.
  • VirtualBox qui est le plus facile pour virtualiser un OS en version Desktop. VirtualBox se contrôle avec une interface graphique très conviviale.

C’est un choix personnel. Ça ne veut pas dire que les autres sont moins bien ! C’est juste ce que je les trouve intéressant pour mon usage, en tenant compte de la machine que j’ai, et aussi que je n’ai malheureusement pas le temps de tout tester 😉

Arnaud me fait remarquer qu’il existe VMWare, très performant et très utilisé en environnement professionnel. Exact. Il est bien possible que je teste WMWare prochainement, mais j’ai préféré commencer par VirtualBox et Xen qui sont tous deux disponibles sous licence GPL, et donc aussi très souvent directement disponibles dans votre distribution.

Ma machine personnelle ?

  • cpu AMD Phenom(tm) II X4 955 Processor : c’est donc un Quad Core récent, avec les instructions de virtualisation AMD-V
  • 4 GB de mémoire DDR3 : c’est très correct pour virtualiser. Je peux sans problème utiliser 1 GB pour une machine virtuelle
  • 1,5 TB de disque dur SATA : largement assez ! Il me suffit de quelques dizaines de GB dans une partition pour créer plusieurs machines virtuelles
  • carte graphique : chipset ATI intégré sur la carte mère, reconnu comme « VGA compatible controller: ATI Technologies Inc RS880 [Radeon HD 4200] ». Ce n’est clairement pas une machine de jeux ! Mais c’est suffisant pour mon utilisation et de toute façon, je ne compte pas virtualiser des jeux

Donc, une très bonne machine pour faire de la virtualisation, à l’exception des jeux ce qui n’est de toute façon pas mon but 😉

Cela ne constitue pas une obligation ! Rien ne vous empêche de faire de la virtualisation avec un Dual Core et 1GB de mémoire 😉

Conclusion

Les PC actuels sont en général assez puissants, avec assez de mémoire, pour faire de la virtualisation. Les programmes actuels facilitent grandement les choses sans devoir nécessairement bricoler en ligne de commande avec d’obscures paramètres ou fichiers de configuration.

Alors ? Qu’attendez-vous ?

La virtualisation est là pour vous aider, pour vous faire découvrir plein de choses…

  • Envie de tester Ubuntu 10.10 (les Suricates rebelles…) dés la 1ère version Alpha 1 … Virtualisez !
    Ne prenez pas le risque de basculer votre environnement de travail sur une version de développement
  • Envie d’acheter une tablette PC (genre iPad, mais moins fermé 😉 ) fin d’année … mais que choisir ? Une tablette en Windows ? Ubuntu Netbook Remix ? Android ? Google Chrome OS ? Meego ? … et bien… Virtualisez !
    Essayez ceux que vous ne connaissez pas dans une machine virtuelle ! Vous pouvez même choisir des options réduites, moins de mémoire, peu de cpu, pour simuler le fait que votre futur SmartPhone ou Tablette PC n’aura pas 4 GB, ni un cpu à 3 Ghz 😉
  • Vous êtes en Windows mais voulez essayer Ubuntu ? Oui on peut essayer en bootant sur le Live CD… mais ce n’est pas très convivial de rebooter sans arrêt pour passer de Windows à Ubuntu. Là aussi… Virtualisez !
    La plupart des softs de virtualisation ont une version Windows. Installez votre Ubuntu dans une machine virtuelle et essayer à l’aise 😉
  • Vous êtes en Ubuntu ? … c’est très bien … moi aussi 🙂 … Mais il n’y a pas qu’Ubuntu sur terre ! Essayez les BSD  (leur installation est bien plus conviviale qu’il y a 3 ou 4 ans). Essayez une Mandriva, Debian, CentOS, Open-SuSE ! Encore une fois… Virtualisez !
    Découvrez, comparez, testez d’autres distributions…
  • Vous tenez un blog ou un site technique ? Vous avez souvent des documentations d’installations à faire, des tests de distributions ou de programmes, des didacticiels à écrire ? … Virtualisez !
    Vous pouvez faire tous les essais, passer d’un sujet à l’autre, sans bloquer votre PC avec un soft, un OS précis.
    Avez-vous déjà essayé de faire une copie d’écran lors du boot de votre PC ? Une copie d’écran de Grub ? … et bien, si vous bootez cet OS dans une machine virtuelle, vous pourrez faire ces copies d’écran, même en cours de démarrage ! Même en cours d’arrêt de l’ OS… C’est votre système d’exploitation hôte qui fera la copie de la fenêtre dans la quelle tourne votre OS virtualisé 😉

La virtualisation vous ouvre plein de portes, de possibilités… Utilisez là ! … Virtualisez !

Ce n’est pas si difficile que ça. C’est à votre portée, et presque certainement dans les capacités de votre PC actuel 😉

La mise en pratique très prochainement. Je commencerai par tester VirtualBox 🙂

L'équipe de WebActus.net vous propose tous les jours des articles sur l'univers des startups, du e-commerce et du growth hacking.
  • Bon article qui, je l’espere, va donné envie a certains de s’essayer a d’autres OS, notamment des OS libres^^

    perso j’utilise VMware avec workstation ou vmplayer et c’est vraiment bien!! je travaille au quotidien dessus sur freebsd alors que j’ai Xp sur le pc meme.
    Une excellente alternative pour bidouiller 😀

  • Merci Arnaud.
    VMWare est en effet un des softs que je voudrais tester. C’est intéressant, mais aussi il est très utilisé en milieu professionnel. Le connaitre est un plus 😉

    C’est bien possible que je le teste également, quand j’aurai un peu de temps, après avoir essayé VirtualBox et Xen 😉

  • Inspiré par le commentaire d’Arnaud, j’ai complété mon article 😉

  • Pingback: Ubuntu : Installer VirtualBox 4.0 Beta | WebActus()

Rejoignez la communauté Webactus

Recevez régulièrement les meilleures actus et ressources

Pas de spam, vous pouvez vous désabonner à tous moment.