Xen - Xen

Xen
Xen hyperviseur logo black.svg
Xen screenshot.png
Xen exécutant NetBSD et trois distributions Linux
Auteur(s) original(aux) Keir Fraser, William Perkins jr, Steven Hand, Ian Pratt , Laboratoire informatique de l'Université de Cambridge
Développeur(s) Fondation Linux
Intel
Première version 2003 ( 2003 )
Version stable
4.15 / 8 avril 2021 ; il y a 6 mois ( 2021-04-08 )
Dépôt
Écrit en C
Taper Hyperviseur
Licence GPLv2
Site Internet xenproject .org

Xen (prononcé / z ɛ n / ) est un type-1 hyperviseur , fournissant des services qui permettent à de multiples ordinateurs systèmes d'exploitation pour exécuter sur le même matériel informatique en même temps. Il a été développé à l'origine par le laboratoire informatique de l' Université de Cambridge et est maintenant développé par la Linux Foundation avec le soutien d' Intel , Citrix , Arm Ltd , Huawei , AWS , Alibaba Cloud , AMD , Bitdefender et epam .

La communauté Xen Project développe et maintient Xen Project en tant que logiciel libre et open source , sous réserve des exigences de la licence publique générale GNU (GPL), version 2. Xen Project est actuellement disponible pour l' IA-32 , x86-64 et ARM ensembles d'instructions .

Architecture logicielle

Xen Project s'exécute dans un état de processeur plus privilégié que tout autre logiciel sur la machine.

Les responsabilités de l'hyperviseur incluent la gestion de la mémoire et la planification du processeur de toutes les machines virtuelles ("domaines"), ainsi que le lancement du domaine le plus privilégié ("dom0") - la seule machine virtuelle qui par défaut a un accès direct au matériel. A partir du dom0, l'hyperviseur peut être géré et des domaines non privilégiés ("domU") peuvent être lancés.

Le domaine dom0 est généralement une version de Linux ou BSD . Les domaines utilisateurs peuvent être soit des systèmes d'exploitation traditionnels, tels que Microsoft Windows sous lesquels des instructions privilégiées sont fournies par des instructions de virtualisation matérielle (si le processeur hôte prend en charge la virtualisation x86 , par exemple Intel VT-x et AMD-V ), ou des systèmes d'exploitation paravirtualisés dans lesquels le Le système d'exploitation sait qu'il s'exécute à l'intérieur d'une machine virtuelle et effectue donc des hyperappels directement, plutôt que d'émettre des instructions privilégiées.

Xen Project démarre à partir d'un chargeur de démarrage tel que GNU GRUB , puis charge généralement un système d'exploitation hôte paravirtualisé dans le domaine hôte (dom0).

Histoire

Xen est né d'un projet de recherche à l' Université de Cambridge dirigé par Ian Pratt , maître de conférences au Laboratoire d'informatique , et son doctorant Keir Fraser. La première version publique de Xen a été réalisée en 2003, suivie de la v1.0 en 2004. Peu de temps après, Pratt et Fraser, ainsi que d'autres anciens élèves de Cambridge, dont Simon Crosby et le PDG fondateur Nick Gault, ont créé XenSource Inc. pour transformer Xen en un produit d'entreprise compétitif. .

Pour prendre en charge les systèmes embarqués tels que les smartphones/IoT avec des ressources informatiques matérielles relativement rares, l'architecture Secure Xen ARM sur un processeur ARM a été exposée au Xen Summit le 17 avril 2007 qui s'est tenu à IBM TJ Watson. La première version publique du code source de Secure Xen ARM a été réalisée au Xen Summit le 24 juin 2008 par Sang-bum Suh , un ancien de Cambridge, chez Samsung Electronics.

Le 22 octobre 2007, Citrix Systems a finalisé l'acquisition de XenSource et le projet Xen a été transféré sur le domaine xen.org. Ce mouvement avait commencé quelque temps auparavant et avait rendu publique l'existence du Xen Project Advisory Board (Xen AB), qui comptait des membres de Citrix , IBM , Intel , Hewlett-Packard , Novell , Red Hat , Sun Microsystems et Oracle . Le comité consultatif Xen conseille le responsable du projet Xen et est responsable de la marque Xen, que Citrix a librement concédée sous licence à tous les fournisseurs et projets qui implémentent l' hyperviseur Xen . Citrix a également utilisé la marque Xen elle-même pour certains produits propriétaires non liés à Xen, notamment XenApp et XenDesktop .

Le 15 avril 2013, il a été annoncé que le projet Xen était déplacé sous les auspices de la Linux Foundation en tant que projet collaboratif. La Linux Foundation a lancé une nouvelle marque pour "Xen Project" afin de différencier le projet de toute utilisation commerciale de l'ancienne marque "Xen". Un nouveau site Web communautaire a été lancé sur xenproject.org dans le cadre du transfert. Les membres du projet au moment de l'annonce comprenaient : Amazon, AMD, Bromium, CA Technologies, Calxeda, Cisco, Citrix, Google, Intel, Oracle, Samsung et Verizon. Le projet Xen lui-même est autonome.

Depuis la version 3.0 du noyau Linux , le support Xen pour dom0 et domU existe dans le noyau principal.

Historique des versions

Version Date de sortie Remarques
1,0 2 octobre 2003
2.0 5 novembre 2004 Migration en direct des invités PV.
3.0 5 décembre 2005

Les versions jusqu'à 3.0.4 ont également ajouté :

  • Prise en charge des extensions de virtualisation AMD SVM .
  • Prise en charge de l' architecture PowerPC .
  • Prise en charge du framebuffer graphique pour les invités paravirtualisés.
3.1 18 mai 2007 Migration en direct pour les invités HVM, XenAPI
3.2 17 janvier 2008 Passthrough PCI et mode veille ACPI S3 pour le système hôte.
3.3 24 août 2008 Améliorations pour le passthrough PCI et la gestion de l'alimentation. Code source de l'hyperviseur Xen ARM publié pour la prise en charge du processeur ARM
3.4 18 mai 2009 Contient une première version de la "Xen Client Initiative", prochainement XCI.
4.0 7 avril 2010 Permet d'utiliser un noyau Linux dom0, qui a été implémenté en utilisant PVOps. Un noyau Linux de version 2.6.31 a été modifié à cet effet, car le noyau Linux officiel ne supporte en fait pas l'utilisation en tant que noyau dom0 (date juillet 2010).
4.1 25 mars 2011 Certaines des améliorations : Prise en charge de plus de 255 processeurs, meilleure stabilité. Le noyau Linux v2.6.37 et les versions ultérieures prennent en charge l'utilisation en tant que noyau dom0.
4.2 8 septembre 2012 XL est devenu la pile d'outils par défaut. Prise en charge de jusqu'à 4095 processeurs hôtes et jusqu'à 512 processeurs invités.
4.3 9 juillet 2013 Prise en charge expérimentale d'ARM. Planification compatible NUMA. Prise en charge d' Open vSwitch .
4.4 10 mars 2014 Prise en charge solide de libvirt pour libxl, nouvelle interface de canal d'événement évolutive, hyperviseur ABI pour ARM déclaré stable, virtualisation imbriquée sur le matériel Intel.
4.5 17 janvier 2015 Avec 43 nouvelles fonctionnalités majeures, 4.5 comprend le plus de mises à jour de l'histoire du projet.
4.6 13 octobre 2015 Axé sur l'amélioration de la qualité du code, le renforcement de la sécurité, l'activation des appliances de sécurité et la prévisibilité du cycle de publication.
4.7 24 juin 2016 Amélioré : sécurité, migrations en direct, performances et charge de travail. Prise en charge matérielle (ARM et Intel Xeon).
4.8.1 12 avril 2017
4.9 28 juin 2017 Notes de version du projet Xen 4.9
4.10 12 décembre 2017 Notes de version du projet Xen 4.10
4.11 10 juillet 2018 Notes de version du projet Xen 4.11
4.12 2 avril 2019 Notes de version du projet Xen 4.12
4.13 18 décembre 2019 Notes de version du projet Xen 4.13
4.14 24 juillet 2020 Notes de version du projet Xen 4.14
4.15 8 avril 2021 Notes de version du projet Xen 4.15

Les usages

Les sociétés de services d'hébergement Internet utilisent des hyperviseurs pour fournir des serveurs privés virtuels . Amazon EC2 (depuis août 2006), IBM SoftLayer , Liquid Web, Fujitsu Global Cloud Platform , Linode , OrionVM et Rackspace Cloud utilisent Xen comme hyperviseur VM principal pour leurs offres de produits.

Les moniteurs de machines virtuelles (également appelés hyperviseurs) fonctionnent également souvent sur des ordinateurs centraux et de gros serveurs exécutant IBM, HP et d'autres systèmes. La virtualisation des serveurs peut offrir des avantages tels que :

  • Consolidation conduisant à une utilisation accrue
  • Approvisionnement rapide
  • Tolérance aux pannes dynamique contre les pannes logicielles (grâce à un amorçage ou un redémarrage rapide)
  • Tolérance aux pannes matérielles (via la migration d'une machine virtuelle vers un matériel différent)
  • Séparations sécurisées des systèmes d'exploitation virtuels
  • Prise en charge des logiciels hérités ainsi que des nouvelles instances de système d'exploitation sur le même ordinateur

La prise en charge par Xen de la migration en direct des machines virtuelles d'un hôte à un autre permet d' équilibrer la charge et d'éviter les temps d'arrêt.

La virtualisation présente également des avantages lorsque l'on travaille sur le développement (y compris le développement de systèmes d'exploitation) : l'exécution du nouveau système en tant qu'invité évite d'avoir à redémarrer l'ordinateur physique chaque fois qu'un bogue se produit. Les systèmes invités en bac à sable peuvent également aider dans la recherche sur la sécurité informatique, permettant l'étude des effets de certains virus ou vers sans possibilité de compromettre le système hôte.

Enfin, les fournisseurs d'appliances matérielles peuvent décider de livrer leur appliance en exécutant plusieurs systèmes invités, afin de pouvoir exécuter divers logiciels nécessitant différents systèmes d'exploitation.

Types de virtualisation

Xen propose cinq approches pour exécuter le système d'exploitation invité :

  • HVM (machine virtuelle matérielle)
  • HVM avec pilotes PV
  • PVHVM (paravirtualisation avec virtualisation matérielle complète, c'est-à-dire HVM avec pilotes PVHVM)
  • PVH (PV dans un conteneur HVM)
  • PV (paravirtualisation).

Xen fournit une forme de virtualisation connue sous le nom de paravirtualisation, dans laquelle les invités exécutent un système d'exploitation modifié. Les invités sont modifiés pour utiliser un hypercall ABI spécial , au lieu de certaines caractéristiques architecturales. Grâce à la paravirtualisation, Xen peut atteindre des performances élevées même sur son architecture hôte (x86) qui a la réputation de ne pas coopérer avec les techniques de virtualisation traditionnelles. Xen peut exécuter des invités paravirtualisés (« invités PV » dans la terminologie Xen) même sur des processeurs sans aucune prise en charge explicite de la virtualisation. La paravirtualisation évite d'avoir à émuler un ensemble complet de services matériels et micrologiciels, ce qui simplifie la gestion d'un système photovoltaïque et réduit la surface d'attaque exposée aux invités potentiellement malveillants. Sur x86 32 bits, le code du noyau hôte Xen s'exécute dans Ring 0 , tandis que les domaines hébergés s'exécutent dans Ring 1 (noyau) et Ring 3 (applications).

Les processeurs qui prennent en charge la virtualisation permettent d'exécuter des invités non modifiés, y compris des systèmes d'exploitation propriétaires (tels que Microsoft Windows). C'est ce qu'on appelle la virtualisation assistée par matériel , cependant, dans Xen, cela est connu sous le nom de machine virtuelle matérielle (HVM). Les extensions HVM fournissent des modes d'exécution supplémentaires, avec une distinction explicite entre les modes les plus privilégiés utilisés par l'hyperviseur avec accès au matériel réel (appelé "mode racine" en x86) et les modes moins privilégiés utilisés par les noyaux invités et les applications avec " hardware" sous le contrôle complet de l'hyperviseur (en x86, connu sous le nom de "mode non root" ; les modes root et non root ont des anneaux 0-3). Intel et AMD ont tous deux apporté des modifications à Xen pour exploiter leurs extensions respectives d'architecture Intel VT-x et AMD-V. L'utilisation des extensions de virtualisation ARM v7A et v8A était fournie avec Xen 4.3. Les extensions HVM offrent également souvent de nouvelles instructions pour autoriser les appels directs par un invité/pilote paravirtualisé dans l'hyperviseur, généralement utilisé pour les E/S ou d'autres opérations nécessitant des performances élevées. Ceux-ci permettent aux invités HVM avec des modifications mineures appropriées de bénéficier de nombreux avantages en termes de performances des E/S paravirtualisées. Dans les versions actuelles de Xen (jusqu'à 4.2), seuls les invités HVM entièrement virtualisés peuvent utiliser les installations matérielles pour plusieurs niveaux indépendants de protection de la mémoire et de pagination. Par conséquent, pour certaines charges de travail, les invités HVM avec pilotes PV (également appelés PV-on-HVM ou PVH) offrent de meilleures performances que les invités PV purs. Xen HVM dispose d'une émulation de périphérique basée sur le projet QEMU pour fournir une virtualisation d'E/S aux machines virtuelles. Le système émule le matériel via un démon "gestionnaire de périphériques" QEMU corrigé (qemu-dm) exécuté en tant que backend dans dom0. Cela signifie que les machines virtualisées voient une version émulée d'un PC assez basique. Dans un environnement aux performances critiques, les pilotes de disque et de réseau PV-on-HVM sont utilisés pendant le fonctionnement normal de l'invité, de sorte que le matériel PC émulé est principalement utilisé pour le démarrage.

Caractéristiques

Les administrateurs peuvent « migrer en direct » des machines virtuelles Xen entre des hôtes physiques sur un réseau local sans perte de disponibilité. Au cours de cette procédure, le LAN copie itérativement la mémoire de la machine virtuelle vers la destination sans arrêter son exécution. Le processus nécessite un arrêt d'environ 60 à 300 ms pour effectuer la synchronisation finale avant que la machine virtuelle ne commence à s'exécuter à sa destination finale, donnant l'illusion d'une migration transparente. Une technologie similaire peut servir à suspendre l'exécution des machines virtuelles sur le disque, « gelant » leur état d'exécution pour une reprise à une date ultérieure.

Xen peut évoluer jusqu'à 4095 CPU physiques, 256 VCPU par invité HVM, 512 VCPU par invité PV, 16 To de RAM par hôte et jusqu'à 1 To de RAM par invité HVM ou 512 Go de RAM par invité PV.

Disponibilité

L'hyperviseur Xen a été porté sur un certain nombre de familles de processeurs :

  • Intel : IA-32, IA-64 (avant la version 4.2), x86-64
  • PowerPC : précédemment pris en charge sous le projet XenPPC, n'est plus actif après Xen 3.2
  • ARM : précédemment pris en charge dans le cadre du projet XenARM pour les anciennes versions d'ARM sans extensions de virtualisation, telles que le Cortex-A9. Actuellement pris en charge depuis Xen 4.3 pour les versions plus récentes de l'ARM avec des extensions de virtualisation, telles que le Cortex-A15 .
  • MIPS : port expérimental XLP832

Hôtes

Xen peut être expédié dans une plate-forme de virtualisation dédiée, telle que Citrix Hypervisor (anciennement Citrix XenServer, et avant XenSource de XenEnterprise).

Alternativement, Xen est distribué en tant que configuration facultative de nombreux systèmes d'exploitation standard. Xen est disponible et distribué avec :

Invités

Les systèmes invités peuvent fonctionner entièrement virtualisés (ce qui nécessite une prise en charge matérielle), paravirtualisés (ce qui nécessite un système d'exploitation invité modifié) ou entièrement virtualisés avec des pilotes paravirtualisés (PVHVM). La plupart des systèmes d'exploitation pouvant s'exécuter sur des PC peuvent s'exécuter en tant qu'invité Xen HVM. Les systèmes suivants peuvent fonctionner en tant qu'invités Xen paravirtualisés :

Xen version 3.0 a introduit la possibilité d'exécuter Microsoft Windows en tant que système d'exploitation invité sans modification si le processeur de la machine hôte prend en charge la virtualisation matérielle fournie par Intel VT-x (anciennement Vanderpool) ou AMD-V (anciennement Pacifica). Pendant le développement de Xen 1.x, Microsoft Research , en collaboration avec le groupe des systèmes d'exploitation de l'Université de Cambridge, a développé un portage de Windows XP vers Xen, rendu possible par le programme de licence académique de Microsoft . Les termes de cette licence n'autorisent pas la publication de ce port, bien que la documentation de l'expérience apparaisse dans le document Xen SOSP original . James Harper et la communauté open source Xen ont commencé à développer des pilotes de paravirtualisation de logiciels libres pour Windows. Ceux-ci fournissent des pilotes frontaux pour le bloc Xen et les périphériques réseau et permettent des performances de disque et de réseau beaucoup plus élevées pour les systèmes Windows fonctionnant en mode HVM. Sans ces pilotes, tout le trafic disque et réseau doit être traité via QEMU-DM. Par la suite, Citrix a publié sous une licence BSD (et continue de maintenir) des pilotes PV pour Windows.

La gestion

Les développeurs tiers ont créé un certain nombre d'outils (appelés consoles de gestion Xen) pour faciliter les tâches courantes d'administration d'un hôte Xen, telles que la configuration, le démarrage, la surveillance et l'arrêt des invités Xen. Les exemples comprennent:

  • HyperVM Web
  • La boîte à outils de gestion du cloud OpenNebula
  • Sur openSUSE YaST et virt-man offrent une gestion graphique des machines virtuelles
  • OpenStack prend en charge nativement Xen en tant que cible d'hyperviseur/calcul
  • Apache CloudStack prend également en charge Xen en tant qu'hyperviseur
  • PlateSpin Orchestrate de Novell gère également les machines virtuelles Xen pour la livraison Xen dans SUSE Linux Enterprise Server.

Versions commerciales

L'hyperviseur Xen est couvert par la licence publique générale GNU, donc toutes ces versions contiennent un noyau de logiciels libres avec le code source. Cependant, beaucoup d'entre eux contiennent des ajouts exclusifs.

Présentation des versions de Citrix XenServer et des versions de Xen Project associées
Version distribution commerciale Date de sortie de la version commerciale Version des projets Xen Date de fin de vie de la sortie commerciale
Citrix XenServer 6.0 2011-09-30 4.1.1 2016-09-26
Citrix XenServer 6.1 2012-09-28 4.1.3 2016-09-30
Citrix XenServer 6.2 2013-06-18 4.1.5 2018-06-26
Citrix XenServer 6.2 SP1 2013-12-16 4.1.5 2018-06-26
Citrix XenServer 6.5 2015-01-13 4.4.1 2018-06-26
Citrix XenServer 6.5 SP1 2015-05-12 4.4.1 2018-06-26
Citrix XenServer 7.0 2016-05-24 4.6.1 2021-05-19
Citrix XenServer 7.1 2017-02-23 4.7.1 2022-08-01
Citrix XenServer 7.4 2018-02-27 4.7.4 2018-09-30
Citrix XenServer 7.5 2018-05-30 4.7.x 2019-04-20
Citrix XenServer 7.6 2018-09-06 4.7.6 2019-07-06

Voir également

Les références

Lectures complémentaires

Liens externes