Les ordinateurs virtuels

Présentation de la virtualisation d'ordinateurs

Document odt : Fiche savoirs : les ordinateurs virtuels

La virtualisation d'ordinateur consiste à faire fonctionner un ou plusieurs systèmes d'exploitation (système invité - Guest) sur un même ordinateur physique (système Hôte - host).

Quand on virtualise un système d'exploitation Serveur, ils sont aussi appelés serveur privé virtuel (Virtual Private Server ou VPS).

Emulation : l'émulation (en informatique) consiste à substituer un élément de matériel informatique – tel un terminal informatique, un ordinateur ou une console de jeux – par un logiciel. l'objectif est de chercher à imiter le comportement physique d'un matériel par un logiciel. L'émulateur reproduit le comportement d'un modèle dont on connait précisément les caractéristiques. Virtualisation : la virtualisation consiste à faire fonctionner un ou plusieurs systèmes d'exploitation comme un simple logiciel sur un même ordinateur. Source Wikipedia

Virtualisation sur poste de travail

Le logiciel de virtualisation est généralement assez lourd, gourmand en ressources et s'exécute sur l'OS hôte. Il permet :

de lancer un ou plusieurs OS invités.

La machine virtualise ou/et émule le matériel pour les OS invités, ces derniers croient dialoguer directement avec ledit matériel.

Cette solution isole bien les OS invités, mais elle a un coût en performance.

Plusieurs OS hétérogènes peuvent s'exécuter sur une même machine grâce à une isolation complète.

Les cartes réseaux virtuelles sont émuler sur une seule carte réseau réelle.

Exemples de solution : logiciels Parallels (Parallels Desktop, Parallels Server), Oracle VM VirtualBox (libre), logiciels VMware (VMware Player, VMware Workstation), logiciels libres (QEMU : émulateur de plateformes x86, PPC, Sparc, et bochs : émulateur de plateforme x86).

Ce type de virtualisation est aussi appelé Hyperviseur de type 2 (Hosted).

Virtualisation sur ordinateur serveur

Il s'agit d'OS spécifiques conçus pour la virtualisation. On les appelle hyperviseur. Ils sont caractérisés par :

un noyau système très léger et optimisé pour gérer les accès des noyaux d'OS invités à l'architecture matérielle sous-jacente.

Si les OS invités fonctionnent en ayant conscience d'être virtualisés et sont optimisés pour ce fait, on parle alors de para-virtualisation (Hyper-V de Microsoft et qui augmente les performances sur ESX de VMware par exemple).

Actuellement l’hyperviseur est la méthode de virtualisation d'infrastructure la plus performante en permettant plus de flexibilité dans le cas de la virtualisation dans un DATACENTER.

Exemple de solution : Citrix Xen Server (libre), VMware ESX, Microsoft Hyper-V , Parallels Server Bare Metal, KVM (libre), Proxmox (basé sur KVM)

Remarque : Hyper-V est maintenant intégré à Windows depuis la version 8

Ce type de virtualisation est aussi appelé Hyperviseur de type 1 (Natif).

Les conteneurs

Une autre solution de virtualisation consiste à utiliser l'isolation comme méthode de cloisonnement au niveau du système d'exploitation de type Linux.

LXC, contraction de l’anglais Linux Containers est un système de virtualisation utilisé pour faire fonctionner des environnements Linux isolés les uns des autres dans des conteneurs :

chaque conteneur partage le même noyau que l'OS et une plus ou moins grande partie du système hôte,

un conteneur ne contient donc pas le système d'exploitation complet mais s'appuie sur l'OS linux existant ,

chaque conteneur apporte une virtualisation de l'environnement d'exécution et non pas une virtualisation de l'ordinateur

Proxmox propose la création de conteneurs LXC.

Le logiciel libre Docker s'appuie sur les conteneurs LXC pour automatiser le déploiement d'applications dans des conteneurs logiciels. Docker permet d'empaqueter une application et ses dépendances dans un conteneur isolé, qui pourra être exécuté sur n'importe quel serveur Linux.

Pour en savoir

Emulation :

http://www.tomshardware.fr/articles/Emulation-tuto,2-809.html

https://bellard.org/jslinux/

https://jeux.developpez.com/tutoriels/programmer-emulateur-console/