« Linux-VServer » : différence entre les versions

Contenu supprimé Contenu ajouté
Orthographe §§§ Participe passé du verbe "créer"
Aucun résumé des modifications
Ligne 5 :
== Introduction ==
 
Ce document a pour objectif d'étudier tous les aspects de la solution Linux Vserver, de sa description à sa mise en oeuvreœuvre, en passant par la comparaison avec d'autres outils de virtualisation comme Xen, UML ou encore QEMU.
 
Dans un premier temps, nous nous contenterons de décrire les concepts de serveur virtuel, et les techniques mises en oeuvreœuvre pour gérer ce type d'instance. Ensuite, nous nous attacherons aux caractéristiques propres à la solution Linux Vserver de manière générale, puis nous passerons à la partie pratique, en créant « from scratch » une machine capable de faire tourner plusieurs Vserver de manière totalement sécurisée.(application à Debian Sarge 2.6.14-vs2.0)
 
__TOC__
Ligne 15 :
== Concepts ==
 
{{BlocCitation|
« Serveur virtuel : serveur n'existant pas vraiment, étant hébergé par un autre serveur. Techniquement, il n'y a qu'une seule machine, mais de l'extérieur, on en voit plusieurs. Cela permet d'économiser sur le matériel, car un site web moyen, par exemple, est bien loin de consommer toutes les ressources d'un ordinateur personnel actuel. » <br />|
(auteur=http://www.linux-france.org/prj/jargonf/S/serveur_virtuel.html)<br />}}
Pour résumer de manière plus concrète, un serveur virtuel est en fait une entité qui tourne sur une machine hôte. Il peut exister grâce à divers procédés, appelés techniques de virtualisation, ce sont ces procédés qui déterminent en grande partie ses performances en tant que serveur. Pour différencier la machine du serveur virtuel, on a coutume d'appeler la machine qui supporte tous les VServers l'hôte et les VServers les guests. <br />
Ligne 28 ⟶ 29 :
La virtualisation peut intervenir sur différents niveaux, et c'est là toute la différence avec d'autres systèmes de virtualisation tels que Xen, UML ou OPENVZ.
 
; Niveau EmulateurÉmulateur : La virtualisation peut être faite via un émulateur, c'est à dire une application qui simule un processeur ou une machine complète. L'émulateur s'occupe entre autre de la traduction dynamique et complète du code. L'émulateur QEMU par exemple, est capable d'utiliser un «accélérateur». Avec cet accélérateur, l'émulation peut tourner à une vitesse respectable (50% d'une vitesse native en théorie). PearPC est lui un émulateur PowerPC, capable de faire fonctionner Mac OS X. Cependant, il reste lent, en effet, une émulation émule la totalité d'une machine, y compris ses composants internes et le processeur. Les émulations sont ainsi généralement lentes (en prenant des machines hôtes et cibles de même génération) ; leur intérêt est essentiellement pour mener des tests.
 
; Niveau Machine : La virtualisation de machine, elle, fonctionne sur le même type de matériel. Il n'y a plus de ce fait d'étape d'émulation de processeur, ce qui permet d'obtenir des performances proches, sinon celles de la machine originale dans les phases de calcul. Néanmoins, un certain nombre de composants ou pilotes de matériel sont virtualisés, dégradant généralement les entrées/sorties, parfois de façon très significative. Cette technologie existe depuis fort longtemps sur de nombreuses architectures. IBM avait déjà introduit ces concepts au milieu des années 1960 et existe toujours dans leurs systèmes actuels (AIX 5L 5.2, OS400). Cette technologie est par contre récente sur les PC, car l'architecture IA-32 n'a pas été prévue pour cela. Des astuces techniques ont dû être trouvées.
Ligne 34 ⟶ 35 :
; Niveau Application : Elle peut avoir lieu au niveau application, l'application fait alors croire qu'il y a plusieurs services (Hôtes virtuels Apache, domaines virtuels Postfix...). Les performances sont en général excellentes, du fait que l'application fonctionne tout à fait en tant que telle, il n'y a aucune traduction de code, et aucune virtualisation des composants.
 
; Niveau KernelNoyau (''kernel''):
 
Il s'agit d'un partitionnement logique, ou serveur virtuel. Dans ce cas, il n'y a plus aucune émulation. C'est le noyau du système d'exploitation qui fait une isolation entre des machines logiques, tout comme il isole déjà les processus entre eux. Des exemples existent au moins sur FreeBSD (jails) et Solaris 10 (zones). Sous Linux, le projet Linux-VServer représente cette catégorie.
Ligne 105 ⟶ 106 :
 
 
== Mise en OeuvreŒuvre ==
 
=== Introduction ===