Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
virtualisation [Le 22/11/2011, 03:41]
24.202.144.127 [Virtualisation complète : un choix privilégié chez le particulier]
virtualisation [Le 27/01/2024, 10:16] (Version actuelle)
bruno ancienne révision (Le 06/03/2023, 09:11) restaurée
Ligne 1: Ligne 1:
-{{tag>​portail logiciels}}+{{tag>​portail logiciels ​hyperviseur}}
  
 ---- ----
  
 +====== Virtualisation de systèmes d'​exploitation======
  
-====== Virtualisation de systèmes d'​exploitation ​ ​====== +La virtualisation consiste à faire fonctionner un ou plusieurs ​systèmes d'​exploitation ​(ou applications complexes) comme un simple logiciel, sur un (ou plusieurs) système d’exploitation fonctionnant sur ordinateur (ou serveur), au lieu de ne pouvoir en installer qu'un seul par machine. Ces ordinateurs virtuels sont appelés //Virtual Environment//​ ou VE. 
-La **virtualisation de systèmes d'​exploitation** est une technique consistant à faire fonctionner en même temps, sur un seul ordinateur, plusieurs systèmes d'​exploitation comme s'ils fonctionnaient sur des ordinateurs distincts.+ 
 +La **virtualisation de systèmes d'​exploitation** est une technique consistant à faire fonctionner en même temps, sur un seul ordinateur, plusieurs systèmes d'​exploitation comme s'ils fonctionnaient sur des ordinateurs distincts, on parle alors de //Virtual Machines// (VM).
  
 La virtualisation de systèmes d'​exploitation a plusieurs intérêts : La virtualisation de systèmes d'​exploitation a plusieurs intérêts :
Ligne 16: Ligne 18:
 Les particuliers et les PME/PMI seront généralement plus intéressés par la perspective de faire fonctionner deux systèmes d'​exploitation différents en même temps, afin d'​exécuter des logiciels qui sont compatibles avec l'un mais pas avec l'​autre. Les grandes entreprises,​ elles, ont de plus en plus recours à la virtualisation afin de gagner de la place dans les salles de serveurs, faciliter les installations et les redémarrages après incidents, et développer et sécuriser les réseaux d'​entreprises. Les particuliers et les PME/PMI seront généralement plus intéressés par la perspective de faire fonctionner deux systèmes d'​exploitation différents en même temps, afin d'​exécuter des logiciels qui sont compatibles avec l'un mais pas avec l'​autre. Les grandes entreprises,​ elles, ont de plus en plus recours à la virtualisation afin de gagner de la place dans les salles de serveurs, faciliter les installations et les redémarrages après incidents, et développer et sécuriser les réseaux d'​entreprises.
  
-{{  http://​pix.toile-libre.org/​upload/​original/​1269828442.png?​400|Un système invité Windows XP est virtualisé au-dessus d'​Ubuntu 10.04 LTS à l'aide de l'​hyperviseur VMware Player}} 
  
 ===== Principe général et terminologie ===== ===== Principe général et terminologie =====
  
-Plusieurs types de virtualisation existent, mais toutes ​fonctionnent selon un même principe :+Plusieurs types de virtualisation existent, mais tous fonctionnent selon un même principe :
   - Un système d'​exploitation principal (appelé //système d'​exploitation hôte//) est installé dans l'​ordinateur et sert de système d'​accueil à d'​autres systèmes d'​exploitation ;   - Un système d'​exploitation principal (appelé //système d'​exploitation hôte//) est installé dans l'​ordinateur et sert de système d'​accueil à d'​autres systèmes d'​exploitation ;
   - Dans le système d'​exploitation hôte, un logiciel de virtualisation (appelé //​hyperviseur//​) est installé. Celui-ci crée des environnements clos, isolés, avec des ressources bien précises : ces environnements clos sont appelées des //machines virtuelles//​ ;   - Dans le système d'​exploitation hôte, un logiciel de virtualisation (appelé //​hyperviseur//​) est installé. Celui-ci crée des environnements clos, isolés, avec des ressources bien précises : ces environnements clos sont appelées des //machines virtuelles//​ ;
-  - D'​autres systèmes d'​exploitation (appelés //systèmes d'​exploitation invités//) peuvent alors être installées ​dans des machines virtuelles. Leur instance est totalement isolée ​des autres ​système hôte et systèmes invités.+  - D'​autres systèmes d'​exploitation (appelés //systèmes d'​exploitation invités//) peuvent alors être installés ​dans des machines virtuelles. Leur instance est totalement isolée ​du système hôte et des autres ​systèmes invités.
  
 En bref, la virtualisation est une méthode faisant fonctionner un ou des systèmes d'​exploitation invités dans des machines virtuelles, au-dessus d'un système d'​exploitation hôte. En bref, la virtualisation est une méthode faisant fonctionner un ou des systèmes d'​exploitation invités dans des machines virtuelles, au-dessus d'un système d'​exploitation hôte.
  
 +===== Virtualisation complète : un choix privilégié chez le particulier =====
  
 +{{  https://​upload.wikimedia.org/​wikipedia/​commons/​5/​5c/​Diagramme_ArchiEmulateur.png?​250|Diagramme de la virtualisation complète (Source : Wikipédia}}
  
-===== Virtualisation complète : un choix privilégié chez le particulier ===== +La virtualisation dite //​complète//​ permet de faire fonctionner n'​importe quel système d'​exploitation en tant qu'​invité dans une machine virtuelle. Pour l'​utilisateur final, ce type de virtualisation est le plus simple à mettre en place et est le plus pratique.
-{{  http://​upload.wikimedia.org/​wikipedia/​commons/​5/​5c/​Diagramme_ArchiEmulateur.png?​250|Diagramme de la virtualisation complète (Source : Wikipedia}} +
- +
-La virtualisation dite //​complète//​ permet de faire fonctionner n'​importe quel système d'​exploitation en tant qu'​invité dans une machine virtuelle. Pour l'​utilisateur final, ce type de virtualisation est la plus simple à mettre en place et est la plus pratique.+
   * **Principe :** L'​hyperviseur((On appelle ce type d'​hyperviseurs un "​hyperviseur de type 2")) crée un environnement virtuel complet simulant littéralement un nouvel ordinateur complet, avec du "faux matériel"​. À quelques rares exceptions, le système d'​exploitation invité (installé dans la machine virtuelle) ne communique qu'​avec ce faux matériel simulé, rendant étanche l'​environnement virtualisé.   * **Principe :** L'​hyperviseur((On appelle ce type d'​hyperviseurs un "​hyperviseur de type 2")) crée un environnement virtuel complet simulant littéralement un nouvel ordinateur complet, avec du "faux matériel"​. À quelques rares exceptions, le système d'​exploitation invité (installé dans la machine virtuelle) ne communique qu'​avec ce faux matériel simulé, rendant étanche l'​environnement virtualisé.
   * **Limitations :** Ce type de virtualisation ne permet de virtualiser que des systèmes d'​exploitation prévus pour la même architecture matérielle que le processeur physique de l'​ordinateur hôte. Par exemple, un ordinateur équipé d'un processeur Intel x86 sera incapable de virtualiser un système d'​exploitation prévu pour fonctionner dans une architecture PowerPC.   * **Limitations :** Ce type de virtualisation ne permet de virtualiser que des systèmes d'​exploitation prévus pour la même architecture matérielle que le processeur physique de l'​ordinateur hôte. Par exemple, un ordinateur équipé d'un processeur Intel x86 sera incapable de virtualiser un système d'​exploitation prévu pour fonctionner dans une architecture PowerPC.
- 
-  
  
 **Quelques hyperviseurs de virtualisation complète :** **Quelques hyperviseurs de virtualisation complète :**
-  ​* **[[:​VirtualBox]]** +  * [[:​VirtualBox]] 
-  * [[:​vmware|Logiciels de virtualisation de VMWare]] : [[:VMWare Player]], [[:VMWare Workstation]], [[:VMWare Server]]+  ​[[:​gnome-boxes|GNOME Machines]] 
 +  * [[:​vmware|Logiciels de virtualisation de VMWare]] : [[:VMWare Player]], [[:VMWare Workstation]]
   * [[:​parallels_desktop|Parallels Desktop 4 for Windows & Linux]]   * [[:​parallels_desktop|Parallels Desktop 4 for Windows & Linux]]
   * [[:KVM]]   * [[:KVM]]
  
-<note tip>{{  ​http://​upload.wikimedia.org/​wikipedia/​commons/​a/​af/​VirtualBox2.png?​250|Un invité Fedora 12 fonctionnant au-dessus d'un système hôte Ubuntu 8.10 grâce à l'​hyperviseur VirtualBox}} ​**Virtualisation de systèmes d'​exploitation 64 bits**+==== Virtualisation de systèmes d'​exploitation 64 bits ==== 
 +{{  ​https://​upload.wikimedia.org/​wikipedia/​commons/​a/​af/​VirtualBox2.png?​350|Un invité Fedora 12 fonctionnant au-dessus d'un système hôte Ubuntu 8.10 grâce à l'​hyperviseur VirtualBox}}
  
 Pour être en mesure de virtualiser un système d'​exploitation 64 bits, le microprocesseur de votre ordinateur hôte doit être doté d'une technologie appelée //​virtualisation assistée matériellement//​ (ou //​accélération matérielle//​). Cette technologie est identifiée //AMD-V// chez AMD et //Intel VT-x// chez Intel. Généralement incluse dans les processeurs récents, la virtualisation matérielle doit toutefois bien souvent être activée dans le BIOS/UEFI de l'​ordinateur et paramétrée convenablement dans les paramètres de la machine virtuelle. Tous les processeurs ne sont pas capables de virtualisation matérielle. //​[[wp>​Virtualization_Technology#​AMD_virtualization_.28AMD-V.29|Liste des processeurs gérant la virtualisation matérielle]]//​ Pour être en mesure de virtualiser un système d'​exploitation 64 bits, le microprocesseur de votre ordinateur hôte doit être doté d'une technologie appelée //​virtualisation assistée matériellement//​ (ou //​accélération matérielle//​). Cette technologie est identifiée //AMD-V// chez AMD et //Intel VT-x// chez Intel. Généralement incluse dans les processeurs récents, la virtualisation matérielle doit toutefois bien souvent être activée dans le BIOS/UEFI de l'​ordinateur et paramétrée convenablement dans les paramètres de la machine virtuelle. Tous les processeurs ne sont pas capables de virtualisation matérielle. //​[[wp>​Virtualization_Technology#​AMD_virtualization_.28AMD-V.29|Liste des processeurs gérant la virtualisation matérielle]]//​
  
-Si votre microprocesseur est listé dans la liste précédente et vous souhaitez savoir si la virtualisation assistée matériellement est activée dans les propriétés de votre BIOS/UEFI, ou si votre microprocesseur n'y est pas listé et vous souhaitez savoir si cette technologie y est présente, exécutez la commande suivante dans un [[terminal]] : <​code>​egrep '​(vmx|svm)'​ /​proc/​cpuinfo</​code> Cette commande vous retourne les fonctionnalités de votre microprocesseur et met en évidence les fonctionnalités de virtualisation assistée matériellement. Lorsque les termes **svm** ou **vmx** sont mis en évidence dans le retour de la commande, votre microprocesseur dispose de la fonctionnalité de virtualisation assistée matériellement;​ il peut donc virtualiser des systèmes d'​exploitation 64 bits. Dans le cas contraire, vous ne pouvez virtualiser que des systèmes d'​exploitation 32 bits.</​note>+Si votre microprocesseur est listé dans la liste précédente et vous souhaitez savoir si la virtualisation assistée matériellement est activée dans les propriétés de votre BIOS/UEFI, ou si votre microprocesseur n'y est pas listé et vous souhaitez savoir si cette technologie y est présente, exécutez la commande suivante dans un [[terminal]] : <​code>​egrep '​(vmx|svm)'​ /​proc/​cpuinfo</​code>​
  
 +<note tips>
 +Cette commande vous retourne les fonctionnalités de votre microprocesseur et met en évidence les fonctionnalités de virtualisation assistée matériellement. Lorsque les termes **svm** ou **vmx** sont mis en évidence dans le retour de la commande, votre microprocesseur dispose de la fonctionnalité de virtualisation assistée matériellement;​ il peut donc virtualiser des systèmes d'​exploitation 64 bits (disposer de la fonction indique seulement que la virtualisation 64bits est possible, cela ne veut pas nécessairement dire que le paramètre de virtualisation du BIOS soit bien positionné..). Dans le cas contraire, vous ne pouvez virtualiser que des systèmes d'​exploitation 32 bits.
 +</​note>​
  
 ===== Aller plus loin... ===== ===== Aller plus loin... =====
Ligne 59: Ligne 62:
   * [[:QEmu]] (sans accélérateur KQemu)   * [[:QEmu]] (sans accélérateur KQemu)
   * Bochs   * Bochs
 +  * [[:PCem]]
  
 ==== Paravirtualisation ==== ==== Paravirtualisation ====
 Dans ce type de virtualisation,​ l'​hyperviseur((On appelle ce type d'​hyperviseurs un "​hyperviseur de type 1")) et le système d'​exploitation invité coopèrent. En virtualisation complète, lorsque l'​invité a besoin de communiquer avec du matériel, celui-ci n'a accès qu'à du faux matériel présenté par l'​hyperviseur ; en paravirtualisation,​ l'​hyperviseur capture les appels système de l'​invité et les transmet au matériel. En somme, l'​invité exploite directement le matériel de l'​ordinateur hôte. La paravirtualisation offre des performances optimales, mais nécessite un système d'​exploitation modifié, conscient qu'il fonctionne dans un environnement virtualisé. (**[[wpfr>​Paravirtualisation|Plus d'​informations]]**) Dans ce type de virtualisation,​ l'​hyperviseur((On appelle ce type d'​hyperviseurs un "​hyperviseur de type 1")) et le système d'​exploitation invité coopèrent. En virtualisation complète, lorsque l'​invité a besoin de communiquer avec du matériel, celui-ci n'a accès qu'à du faux matériel présenté par l'​hyperviseur ; en paravirtualisation,​ l'​hyperviseur capture les appels système de l'​invité et les transmet au matériel. En somme, l'​invité exploite directement le matériel de l'​ordinateur hôte. La paravirtualisation offre des performances optimales, mais nécessite un système d'​exploitation modifié, conscient qu'il fonctionne dans un environnement virtualisé. (**[[wpfr>​Paravirtualisation|Plus d'​informations]]**)
   * [[:Xen]] //​(moniteurs de contrôle : [[:​virt-manager]],​ [[:​enomalism]])//​   * [[:Xen]] //​(moniteurs de contrôle : [[:​virt-manager]],​ [[:​enomalism]])//​
-  * [[:VServer]]+  * [[:kvm]] et dérivés tel que [[wpfr>​Proxmox|ProxMox]] 
 +  * vmware esxi
   * xVM   * xVM
- 
  
 ==== Environnement Virtuel (Operating system-level virtualization) ==== ==== Environnement Virtuel (Operating system-level virtualization) ====
 Chaque environnement exécuté possède son propre espace mémoire, afin d'​être isolé des autres, les autres ressources systèmes sont partagées (pilotes, noyau...). Les instructions ne sont pas interceptées,​ et l'​environnement exécuté doit impérativement être compatible avec celui du système hôte. (On ne peut pas, par exemple, exécuter Microsoft(r) Windows(r) dans un environnement virtuel au-dessus d'un hôte de type Linux). Ce type de virtualisation permet d'​exécuter plusieurs fois le même environnement dans des zones mémoires séparées, mais les ressources partagées empêchent d'​obtenir une isolation sûre entre les environnements invités. (**[[wp>​Operating_system-level_virtualization|Plus d'​informations]]**) Chaque environnement exécuté possède son propre espace mémoire, afin d'​être isolé des autres, les autres ressources systèmes sont partagées (pilotes, noyau...). Les instructions ne sont pas interceptées,​ et l'​environnement exécuté doit impérativement être compatible avec celui du système hôte. (On ne peut pas, par exemple, exécuter Microsoft(r) Windows(r) dans un environnement virtuel au-dessus d'un hôte de type Linux). Ce type de virtualisation permet d'​exécuter plusieurs fois le même environnement dans des zones mémoires séparées, mais les ressources partagées empêchent d'​obtenir une isolation sûre entre les environnements invités. (**[[wp>​Operating_system-level_virtualization|Plus d'​informations]]**)
 +  * [[Docker]] ([[http://​www.docker.io/​]]) tire parti de ces différentes API d'​isolation et lui ajoute des scripts de déploiement.
 +  * [[:​LXD|LXD]],​ interface de gestion de containers LXC, du projet [[https://​linuxcontainers.org/​fr/​|Linux Containers]],​
   * [[:​vserver|Linux-VServer]]   * [[:​vserver|Linux-VServer]]
 +  * libcontainer
   * OpenVZ   * OpenVZ
-  * [[http://​lxc.sourceforge.net/​|LXC]] 
   * [[:chroot]]   * [[:chroot]]
- 
  
 ===== Ressources ===== ===== Ressources =====
   * [[http://​www.ubuntu.com/​products/​whatisubuntu/​serveredition/​jeos| Environnement Ubuntu dédié à la virtualisation]]   * [[http://​www.ubuntu.com/​products/​whatisubuntu/​serveredition/​jeos| Environnement Ubuntu dédié à la virtualisation]]
-  * [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=365418| [HowTo] Démarrer un Windows installé physiquement dans VirtualBox]] +  * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=376862| [HowTo] Configuration réseau de VirtualBox]]
-  * [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=365646| [HowTo] Démarrer un Linux installé physiquement dans VirtualBox]] +
-  * [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=376862| [HowTo] Configuration réseau de VirtualBox]]+
   * [[http://​www.linuxfr.org/​~flipflip/​27860.html|La virtualisation en production]]   * [[http://​www.linuxfr.org/​~flipflip/​27860.html|La virtualisation en production]]
   * [[http://​virt-tools.org/​|virt tools]] (en) Portail dédié à la virtualisation avec des outils libres   * [[http://​virt-tools.org/​|virt tools]] (en) Portail dédié à la virtualisation avec des outils libres
 +  * [[http://​blog.octo.com/​presentation-des-hyperviseurs-xen-et-kvm/​|Principes de fonctionnement de Xen et de KVM]]
  
 ===== Pages en rapport ===== ===== Pages en rapport =====
  • virtualisation.1321929682.txt.gz
  • Dernière modification: Le 15/12/2011, 15:21
  • (modification externe)