Aller au contenu principal

Virtualisation

Définition

C'est une technologie (ou ensemble de logiciels) qui permet de lancer plusieurs systèmes d'exploitation invités sur un seul ordinateur physique, nommé hôte. Le logiciel émule le matériel et les ressources nécessaires (BIOS — le micrologiciel qui initialise le matériel au démarrage —, espace de stockage, clavier, souris, carte réseau, ports USB ...), afin que les machines invitées soient bernées et communiquent directement avec le matériel virtuel en pensant qu'elles ont réellement accès au matériel physique.

De façon à rendre la virtualisation plus performante, les instructions des systèmes invités ne sont généralement pas émulées en logiciel : grâce aux extensions matérielles de virtualisation du processeur (VT-x chez Intel, AMD-V chez AMD), la plupart des instructions s'exécutent directement sur le processeur physique. L'hyperviseur intervient seulement pour intercepter les opérations sensibles qui touchent directement le matériel (par exemple l'accès aux périphériques) et pour répartir le temps processeur et la mémoire centrale entre les différentes machines virtuelles (VM).

L'hyperviseur est le cerveau de la virtualisation ; il assume quelques rôles :

  • Contrôle l'UCT (CPU) et la mémoire centrale et les répartit entre les différents OS invités, en répartissant les ressources du serveur hôte vers les ordinateurs virtualisés.

  • Protège chaque machine virtuelle afin d'assurer qu'elle n'interagisse pas avec une autre.

Cette solution permet de faire cohabiter plusieurs systèmes d'exploitation complètement isolés. Ces derniers communiquent entre eux généralement via le réseau. En effet, toutes les machines virtuelles sont munies de cartes réseau virtuelles qui permettent d'échanger des données avec l'extérieur.

Il peut sembler a priori étrange de simuler d'autres machines sur une machine hôte : un système d'exploitation est conçu pour utiliser du matériel qui est entièrement sous son contrôle. La juxtaposition de plusieurs systèmes non conçus pour communiquer entre eux peut faire craindre des inefficacités auxquelles s'ajoute le fait que le processus de virtualisation consomme des ressources.

D'une part, on évite une grande partie de ces inefficacités juste en disposant de disques différents pour chaque système, et d'autre part, le coût de la mémoire permet à chacun de ces systèmes de rester résident, et parfois avec de larges sections de code partagées. Par ailleurs, le microcode des processeurs inclut de plus en plus de fonctionnalités qui rendent la virtualisation plus efficace : VT-x/AMD-V est l'extension de virtualisation matérielle qui permet au processeur d'exécuter directement la plupart des instructions d'une machine virtuelle sans passer par une émulation logicielle, tandis que VT-d/AMD-Vi permet l'accès très rapide aux ressources IO (Ethernet, accélération graphique, contrôleur de disque), ceci est nommé quelquefois PCI passthrough. Ces options se retrouvent dans le BIOS ; par défaut, elles sont désactivées.

Enfin, il est courant pour une entreprise de disposer d'une quinzaine de serveurs fonctionnant à 15 % de leur capacité, de façon à pouvoir faire face aux pointes de charge sporadiques. Un serveur chargé à 15 % consomme presque autant d'énergie qu'un serveur chargé à 90 %, et regrouper plusieurs serveurs sur une même machine s'avère rentable si leurs pointes de charge ne coïncident pas même en incluant la surcharge de la virtualisation. La virtualisation des serveurs permet aussi une bien plus grande modularité dans la répartition des charges et la reconfiguration des serveurs en cas d'évolution ou de défaillance momentanée (plan de secours, etc.). (Wikipédia)

En résumé :

  • On a un seul ordinateur physique (hôte).

  • On peut y faire tourner plusieurs ordinateurs virtuels (invités) en parallèle.

  • Chaque machine virtuelle croit avoir son propre matériel.

  • Il n'existe pas de relevé centralisé permettant de chiffrer précisément la proportion de serveurs virtualisés dans le monde, mais la pratique est aujourd'hui largement répandue dans les entreprises et les centres de données.

Avantages pour le cégep​

Le cégep utilise des serveurs virtuels. Ils ont plusieurs ordinateurs qui sont en réalité des serveurs virtuels roulant sur quelques ordinateurs physiques. Voici une liste d'avantages pour le cégep:

  • Consolidation de serveurs (mieux vaut utiliser un seul serveur à 60 % que 3 à 20 %) pour une réduction des coûts d'exploitation.
  • Simplifier la gestion des images des ordinateurs, les serveurs pouvant être aisément migrés d'un ordinateur à un autre.
  • S'assurer que les mises à jour du système ou des logiciels ne causent aucun problème avant leur implantation dans le parc informatique.
  • Sauvegarde automatisée (quotidienne, hebdomadaire, mensuelle ... ) de l'image complète du serveur pour revenir à une position antérieure dans le temps, au besoin.
  • Test de nouveaux logiciels ou installation de nouvelles fonctionnalités d'un logiciel actuel sur un serveur pour s'assurer que ça n'apporte pas de problèmes (bogues).
  • Possibilité de revenir à une version antérieure rapidement à la suite d'un problème logiciel (bogues).
  • Possibilité de migrer le serveur virtuel vers un autre serveur lors de bris physiques.
  • Atténuer les effets d'un virus (bon il faudra patcher avant de le rendre en ligne) et j'en oublie sans doute.

Pour un administrateur de système, les avantages des serveurs virtuels sont nombreux et surtout au niveau de la prévention pour une perte de performance matérielle assez faible.

Avantages pour vous​

  • Réaliser des travaux sur un autre système d'exploitation sans effacer ou réduire les partitions de votre disque.
  • Effectuer des sauvegardes système très facilement (car en réalité un disque système simulé est un simple fichier sur l'ordinateur hôte).
  • Modifier la quantité de mémoire, de processeur, de disque ou autres se fait par l'entremise d'une interface simple offerte par le logiciel de virtualisation.
  • Tester vos applications sur différents systèmes d'exploitation pour s'assurer de la compatibilité.

Logiciels de virtualisation​

En effet, les VM ne vont pas se servir directement dans les ressources de la machine hôte, tout simplement, car elles n'ont pas conscience d'être des VM hébergées sur un hôte. Elles vont donc prendre dans leurs ressources virtuelles. Et comme n'importe quelle machine physique, une VM aura donc son propre disque dur, sa mémoire, son processeur et ses périphériques, à la différence près que tout cela sera virtuel. (openclassrooms)

Avant de parler des logiciels de virtualisation disponibles, nous devons clarifier un point : les types de virtualisation possibles.

Le type 1, aussi nommé natif ou bare-metal : l'hyperviseur est chargé au démarrage de l'ordinateur. Il communique directement avec le matériel, permet de procéder directement à l'exécution des requêtes et donne accès aux fonctionnalités avancées du processeur pour l'OS client qui est installé.

Le type 2, nommé hosted ou hébergé, est un peu plus lent car il doit passer les requêtes au système d'exploitation qui est utilisé sur la machine. Si les ressources viennent à manquer pour le système d'exploitation hôte, les ressources seront limitées pour le logiciel d'hypervision et les clients en souffriront.

Voyons désormais la liste et les types :

Type 1: KVM (Linux), Xen, VMWare ESX, Oracle VM (Xen), Hyper-V, ...

Type 2: Parallels, VMWare Workstation, VirtualBox, qemu

Pour une question de performance, le type 1 est toujours à privilégier. Cependant, pour des tests et des évaluations, le type 2 peut être adéquat et surtout plus simple à mettre en place.

Bien que KVM s'installe sur une distribution Linux uniquement, il permet d'installer plusieurs systèmes d'exploitation différents comme invités : Linux, BSD, Solaris, Windows, Haiku, ReactOS, Plan 9, AROS Research Operating System, et macOS (bien que ce dernier ne soit pas officiellement supporté par Apple et nécessite généralement un contournement).

Installation

Lorsque vous êtes prêt à installer votre machine virtuelle, vous devez trouver l'ISO du système d'exploitation que vous souhaitez installer. Une image ISO est une image d'un disque (CD, DVD, BluRay, clé USB ou disque dur) sous forme de fichier, créée avec un logiciel de gravure.

Exemple d'image disponible sur Internet:

https://www.archlinux.org/download/

http://www.debian.org/distrib/netinst

Celle-ci représente une image qui pourra être chargée lors du lancement de l'ordinateur, comme si nous lancions le démarrage d'un ordinateur avec un CD installable.

Si vous voulez installer une ISO sur une clé USB (et non utiliser un CD), il faut utiliser un logiciel tel que etcher.io pour copier l'image et rendre le USB bootable.

Il est préférable de télécharger au préalable l'ISO de Debian, à partir de cet instant, la joie peut réellement commencer.

Guide d'installation Debian sur VirtualBox​

En classe, vous aurez accès à VirtualBox, vous n'aurez qu'à vous créer une nouvelle machine virtuelle.

Cliquer sur Nouveau et choisir Ordinateur virtuel pour en créer une nouvelle ;)

Les étapes suivantes vont spécifier les caractéristiques par rapport à la machine hôte.

Cliquer sur stockage

En cliquant sur Terminer, vous pourrez la créer.

Avant de démarrer la machine virtuelle, il y a deux modifications importantes à faire:

  1. ** Sélectionner dans la colonne du milieu, le nom de la machine virtuelle, choisir propriété et désactiver Activer le démarrage sécurisé dans l'onglet Sécurité.**

  2. Dans Ajouter un matériel, sélectionnez un Contrôleur SCSI (un type de contrôleur de stockage standard, utilisé ici simplement pour présenter l'ISO comme un lecteur virtuel), choisissez par la suite lecteur DVD, et indiquez le chemin vers votre ISO de Debian.

Vous pourrez démarrer votre machine virtuelle.

Cliquez sur démarrer

J'ai choisi l'installation textuelle, pour bien sentir tout l'agrément d'une installation textuelle.

Choisir la langue

Choisir le nom de l'ordinateur, aucun domaine

Le compte root est un des comptes les plus importants du système, choisissez un mot de passe dont vous vous souviendrez, sans quoi, vous ne pourrez plus le configurer / modifier.

Par la suite, vous créez votre compte utilisateur avec lequel vous ferez la majorité des activités avec l'ordinateur.

EST

Assisté - Utiliser le disque entier : dans la vraie vie, jamais on n'utiliserait ça, mais comme c'est simplement une machine virtuelle ;)

Choisissez le disque approprié (il n'y en a qu'un seul, le choix est difficile)

Tout dans une seule partition

Terminer et appliquer

Et encore ! :P

Se déplacer avec tabulation pour choisir continuer

Attente ... ...

À la fin, vous aurez une question sur GRUB (le programme responsable de démarrer le système d'exploitation installé) : vous devez l'installer en cliquant sur oui, et inscrire /dev/sda (le disque principal de la machine virtuelle) comme emplacement.