Pour savoir où on va, il faut savoir d'où l'on vient

Vous avez
une question ?
Un projet ?

Contactez nous !
 

Contactez-nous

Vous avez une question ? un projet ? 
Vous souhaitez plus d'informations sur un produit ? sur notre offre ? 
Contactez-nous, on vous répond sous 4H.

eZHumanCAPTCHACode reload
retour

Les Principales Solutions

Les Principales Solutions

OpenVZ

Une des solutions les plus avancées et matures dans le domaine de l'isolation est OpenVZ.

Ce produit se présente sous la forme d'un patch pour le noyau Linux, et d'un ensemble d'outils d'administration.   Le patch du noyau permet à un système GNU/Linux de gérer des contextes virtualisés.   Les outils d’administration permettent de créer, d'instancier, et de contrôler les environnements virtuels.

Rappelons que la technologie d'isolation ne permet d'exécuter que des serveurs virtuels Linux sur un hôte OpenVZ, même si ces serveurs peuvent être de distributions différentes.

Certaines distributions Linux proposent des versions packagées d'OpenVZ. En particulier, la distribution Debian GNU/Linux, dans les versions Lenny et Squeeze, permet dès l'installation du serveur physique de mettre en place cette solution en quelques secondes via son système de packages. Il faut cependant noter que OpenVZ sera remplacé par LXC dans la future version Squeeze, à paraître en 2013.

Présentation

Le projet OpenVZ fournit aux systèmes GNU/Linux une méthode de virtualisation. Cette virtualisation se situe au niveau du noyau de l'OS. Cela rend possible l'exécution de multiples instances d'OS GNU/Linux sur la même machine. Ces instances fonctionnant de façon complètement sécurisées et partageant intelligemment les ressources du serveur hôte.

Historique

OpenVZ a été initialement développé par la société SWSoft, dans le but de fournir à des hébergeurs un moyen de disposer d'un grand nombre d'environnements séparés sur un petit nombre de serveurs physiques. Après quelques années d'existance, l'éditeur créa le projet OpenVZ en 2005 pour continuer à développer ce produit, nommé Virtuozzo en suivant les principes de l'open source.

Aujourd'hui, OpenVZ est le « moteur » du produit commercial Paralells Virtuozzo Containers utilisé par de nombreuses entreprises dans le monde, et constitue en lui-même un produit utilisable et bien intégré aux distributions Linux.

OpenVZ travaille à intégrer le plus possible de ses fonctions dans le noyau Linux afin de faciliter la maintenance et assurer la pérennité du projet.

Principe

OpenVZ est un isolateur de contexte. Il est capable d'isoler le contexte d'exécution de plusieurs OS sur la même machine. Nativement un noyau Linux ne permet aux processus que de tourner dans un seul contexte commun. Le patch noyau de ce projet open source permet d'ajouter au noyau un ensemble d'outils pour isoler ces contextes. On peut alors faire tourner plusieurs instances de l'OS sur la même machine. Toutefois elles partagent quand même le noyau, ce qui veut dire que si celui-ci se retrouve en défaut, alors tous les contextes le sont.

OpenVZ est aussi capable d'isoler les contextes réseau, c’est à dire que les contextes ne voient pas le trafic des autres contextes de la machine hôte, tout comme la machine hôte en elle-même. Cette parfaite étanchéité en terme de sécurité et de confidentialité des données traversant les machines virtuelles et la machine hôte, est particulièrement appréciable, surtout dans le cas d'un hébergement.

En fait, le projet OpenVZ découle des outils déjà existants sous Linux comme la barrière chroot et les limitations de ressources, mais le tout intégré à un niveau plus bas de l'OS, plus développé et accompagné d’un ensemble d'outils d'administration.

Limitations

Du fait que les serveurs virtuels utilisent le noyau de l'OS hôte, OpenVZ est incapable de faire tourner d'autres OS que GNU/Linux; en revanche cela lui confère un rendement proche des performances natives. En effet la couche « conteneurs » est très fine et permet de positionner les OS virtualisés au plus proche du noyau (on considère que la charge provoqué par l'isolation est inférieure à 1% des capacités de la machine. Les performances obtenues sont donc supérieures à 99% des performances natives).
Certaines fonctions nécessitant un accès direct au noyau par une des machines virtuelles, comme le contrôle de l'horloge ou des paramètres du noyau sont désactivées par défaut, pour des raisons de sécurité.  

Il est possible de configurer la machine virtuelle de façon à lui ajouter des  « capacités », c’est à dire de donner des droits vis à vis du noyau de la machine hôte.  Cela n'est toutefois pas recommandé du fait des risques de sécurité que cela peut engendrer.  Si le besoin existe, il est préférable de se tourner vers des solutions comme Xen qui donnent un noyau "invité" aux OS virtualisés.

Capacités

Contrairement à Linux-Vservers, son principal concurrent, présenté dans l'édition précédente de ce livre blanc, OpenVZ permet la virtualisation de la couche réseau (filtrage, routage, etc.), ainsi que la migration à chaud entre deux hôtes identiques.
Il est aussi possible de limiter finement l'utilisation des ressources de l'hôte pour chaque serveur virtuel, en particulier la mémoire résidente (RSS) ou la mémoire virtuelle (VSZ). On peut aussi mettre en place des quotas d'utilisation de l'espace disque. Il est enfin possible de mettre en place des priorités d'accès au CPU et aux disques.

Xen

Xen est une solution de virtualisation open source développée initialement par le département informatique de l'Université de Cambridge. Son développement est aujourd'hui activement sponsorisé par Citrix, qui a racheté l'éditeur initial XenSource.

Citrix distribue une version commerciale de Xen, nommée Citrix XenServer, particulièrement adaptée à la virtualisation des OS Microsoft Windows et Linux RHEL et SLES. Elle est dotée d'une interface d'administration avancée, et d'un accès au support technique. Quant aux  fonctionnalités, elles sont les mêmes que dans la version distribuée librement.

De grandes sociétés comme IBM ont contribué au développement de Xen, et de gros efforts ont été faits par Citrix pour assurer une compatibilité parfaite avec Windows, compatibilité aujourd'hui reconnue par Microsoft.

Fonctionnement de Xen

Chaque système s'exécutant sous l'hypervision de Xen s'appelle un domaine, et dispose d'une interface particulière d'accès aux ressources.

Il est possible d'attribuer à chaque domaine une limite de mémoire, une limite d'utilisation du CPU, ainsi qu'une priorité d'utilisation du temps de CPU disponible ce qui permet de donner une priorité plus importante par exemple aux serveurs virtuels considérés comme «  critiques ».

L'un des domaines possède un rôle particulier au sein de Xen, il s'agit du domaine zéro. Ce domaine est le premier OS lancé par l'hyperviseur au démarrage du serveur physique. Il donne accès aux ressources par l'intermédiaire de ses pilotes de périphériques. Depuis le domaine zéro, il est également possible d'avoir accès au bus de contrôle de Xen, permettant de lancer, d'arrêter et même de prendre le contrôle des domaines virtuels exécutés. Il est donc important d'accorder une attention particulière à la sécurité de ce domaine, par exemple en l'isolant du réseau.

Le système d’exploitation du domaine 0, et lui seul, doit disposer d'un noyau patché (modifié) d'une manière particulière.  Pour l'heure, seuls GNU/Linux, Solaris et NetBSD proposent les patchs permettant de fonctionner en domaine zéro.

De nombreuses distributions Linux fournissent l'hyperviseur Xen, un noyau patché pour fonctionner en domaine zéro, et des outils d'administration. C'est notamment le cas de Red Hat Entreprise Linux, ou encore Debian GNU/Linux. De la même façon qu' OpenVZ, Xen s'installe très facilement sur un serveur physique, mais nécessite quelques étapes supplémentaires, notamment en termes de partitionnement des disques.

La particularité de Xen en tant que solution de virtualisation est de fournir deux modes d'utilisation. Un mode paravirtualisation et un mode virtualisation complète.

Paravirtualisation sous Xen

Seules les distributions GNU/Linux et certaines versions de BSD peuvent être exécutées en tant que domaine zéro. De même, seuls quelques systèmes sont utilisables en tant que domaine non-privilégiés de façon stable ; en particulier GNU/Linux, Plan9, NetBSD, et Solaris.

GNU/Linux est naturellement la cible privilégiée de la paravirtualisation sous Xen. Les serveurs paravirtualisés avec Xen ne souffrent quasiment d'aucune perte de performance due à la présence de l'hyperviseur, et sa gestion du processeur est simple et garantit un partage équitable du temps de calcul. Il est possible de choisir le noyau des domaines virtuels indépendamment du domaine zéro, ce qui autorise une grande hétérogénéité dans le choix des distributions.

En mode paravirtualisé, Xen fournit aux domaines non-privilégiés des disques et des interfaces réseau virtuelles, lesquelles peuvent être configurées à chaud.   Il est possible d’ajouter à chaud des disques ou interfaces réseau virtuels, au moyen des outils d'administration fournis dans le domaine zéro. Il est également possible de modifier à chaud la quantité de mémoire allouée aux domaines virtuels, les limitations de CPU, et de redimensionner l'espace disque disponible.

Machine virtuelle sous Xen

Le mode HVM de Xen est apparu avec la version 3. Il utilise un noyau spécial en mode paravirtualisé pour simuler une machine virtuelle, ce qui permet de faire fonctionner des OS fermés comme Microsoft Windows pour lesquels il n'existe pas de patch Xen publics pour le mode paravirtualisé.

Ce mode n'est toutefois possible que si la machine hôte dispose d'un processeur doté des jeux d'instructions de virtualisation matérielle (Intel VT ou AMD Pacifica).  Intel et AMD ont d’ailleurs contribué au code de Xen pour le support de leurs processeurs.

Au prix d'une couche de virtualisation supplémentaire, il est ainsi possible de retrouver tous les avantages de la machine virtuelle. Il est intéressant de noter que la couche d'interface entre l'OS virtualisé et l'hyperviseur provient en grande partie du projet open source QEMU, créé par le français Fabrice Bellard, l'un des pionniers en matière de machines virtuelles. En revanche, contrairement à QEMU, Xen ne peut héberger que des machines virtuelles compilées pour fonctionner sur la même architecture que celle du processeur de la machine hôte.

Des pilotes de périphérique paravirtualisés permettent alors de retrouver les performances du mode paravirtualisé de Xen, ils sont disponibles librement pour Linux et dans la version commerciale de Citrix pour Windows.

La machine virtuelle Xen possède la même souplesse que le mode paravirtualisé car elle dispose de la même interface de contrôle.

Avantages de Xen

Un des grands avantages de Xen est sa souplesse.  Une grande liberté est permise, en particulier, dans le choix d'une solution de stockage pour les disques virtuels : fichiers plats, LVM, SAN, etc...

De même le réseau peut être personnalisé de façon à répondre à quasiment tous les besoins spécifiques. Il est notamment possible d'assigner les cartes réseau du serveur physique à une ou plusieurs interfaces virtuelles et ce pour chaque domaine (y compris le domaine zéro), ce qui permet d'isoler certains domaines d'un réseau, ou au contraire de donner à un domaine seulement le contrôle sur une interface. La couche de virtualisation réseau de Xen permet ainsi de mettre en place tous types d'application et de configurations réseau : NAT, VLAN, bridges, routage, etc.

De plus, Xen permet de migrer un domaine virtuel d'un serveur à l'autre quasiment sans interruption en utilisant un mécanisme de sauvegarde de la RAM proche de l'hibernation suspend-to-disk ce qui confère une grande évolutivité à la solution.

Notons que Xen est à la base de l'offre cloud EC2 de Amazon, qui permet d'allouer des serveurs virtuels à la demande.

Limitations de Xen

Le principal reproche qui peut être fait à Xen est le manque d'ergonomie de la distribution libre, qui ne dispose pas de l'interface graphique présente dans les versions payantes. De plus, la documentation disponible librement n'est pas toujours actualisée, et de nombreuses possibilités intéressantes sont peu documentées. Ce qui fait de Xen une solution puissante, mais parfois délicate à appréhender et qui requiert une certaine expertise. Certains se tourneront plus volontiers vers des versions commerciales,  plus faciles d'accès.

L'édition précédente de ce livre blanc émettait quelques réserves quant à la pérennité de Xen, dûes à la politique de développement de Citrix qui semblait se concentrer sous Windows. De plus, l'intégration de Xen dans le noyau Linux semblait peu probable.

Aujourd'hui, ces craintes n'ont plus lieu d'être, Xen est désormais intégré au noyau Linux, suite à un travail de longue haleine. Et le développement du produit continue même si celui-ci subit de plus en plus la concurrence de KVM, développé par RedHat.