<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>New Technologies System Virtualisation &#187; isolation</title>
	<atom:link href="http://www.ntsysv.com/index.php/tag/isolation/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ntsysv.com</link>
	<description>La théorie rejoint la pratique</description>
	<lastBuildDate>Fri, 02 Dec 2011 13:33:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>La Virtualisation : machine virtuelle ou hyperviseur : comment choisir</title>
		<link>http://www.ntsysv.com/index.php/la-virtualisation-machine-virtuelle-ou-hyperviseur</link>
		<comments>http://www.ntsysv.com/index.php/la-virtualisation-machine-virtuelle-ou-hyperviseur#comments</comments>
		<pubDate>Mon, 24 Nov 2008 00:03:28 +0000</pubDate>
		<dc:creator>ElMehdi</dc:creator>
				<category><![CDATA[virtualisation]]></category>
		<category><![CDATA[Hyper-V]]></category>
		<category><![CDATA[hyperviseur]]></category>
		<category><![CDATA[isolation]]></category>
		<category><![CDATA[user mode linux]]></category>

		<guid isPermaLink="false">http://www.ntsysv.com/?p=211</guid>
		<description><![CDATA[Qu’est ce que la virtualisation? On appel communément virtualisation la possibilité d’utiliser un même hardware (un même serveur physique) pour faire tourner plusieurs machines virtuelles. Ces machines virtuelles peuvent être du même type de système d’exploitation comme elles peuvent être complètement hétérogènes. En terme de nommage, on appel « machine hôte » le serveur physique [...]]]></description>
			<content:encoded><![CDATA[<h1>Qu’est ce que la virtualisation?</h1>
<p style="text-align: justify;margin-top:10px;">On appel communément virtualisation la possibilité d’utiliser un même hardware (un même serveur physique) pour faire tourner plusieurs machines virtuelles. Ces machines virtuelles peuvent être du même type de système d’exploitation comme elles peuvent être complètement hétérogènes. En terme de nommage, on appel « machine hôte » le serveur physique qui héberge les serveurs virtuels appelés « machines invitées » ou guest.<span id="more-211"></span></p>
<h1 style="text-align: justify;margin-top:10px;">Pourquoi virtualiser ?</h1>
<p style="text-align: justify;margin-top:10px;">Les mots qui résument l’utilité de la virtualisation sont : optimiser et économiser !</p>
<ul style="text-align: justify;">
<li>Utilisation optimale des ressources d&#8217;un parc de machines</li>
<li>Economie sur le matériel par mutualisation (consommation électrique, entretien physique, monitoring, support, compatibilité matérielle, etc.)</li>
<li>Installation, tests, développements, cassage et possibilité de recommencer sans casser le système d&#8217;exploitation hôte</li>
<li>Allocation dynamique de la puissance de calcul en fonction des besoins de chaque application à un instant donné,</li>
<li>Diminution des risques liés au dimensionnement des serveurs lors de la définition de l&#8217;architecture d&#8217;une application, l&#8217;ajout de puissance (nouveau serveur etc) étant alors transparent.</li>
<li style="text-align: justify;">Installation, déploiement et migration facile des machines virtuelles d&#8217;une machine physique à une autre, notamment dans le contexte d&#8217;une mise en production à partir d&#8217;un environnement de qualification ou de pré-production, livraison facilitée,</li>
</ul>
<h1 style="margin-top:10px;">Les bases de la virtualisation</h1>
<p style="text-align: justify;margin-top:10px;">Plusieurs techniques sont utilisées par les outils de virtualisation pour rendre le fonctionnement des machines virtuelles aussi proche que possible des machines réelles, mais avec plus de souplesse :</p>
<ol style="text-align: justify;">
<li>La HAL, Hardware Abstraction Layer, ou couche d’abstraction matérielle (ou logiciel) dont la fonction est d’isoler les spécificités du matériel par le biais d’un certain nombre de fonctions spécifiques au matériel : interfaces d&#8217;entrées-sorties, contrôleur d&#8217;interruptions, caches matériels, mécanismes de communication multiprocesseur&#8230; Elle isole ainsi le noyau du système des spécificités des plates-formes matérielles.</li>
<li>Partitionnement, isolation et/ou partage des ressources physiques et/ou logicielles</li>
<li>La possibilité de manipuler les machines virtuelles avec les possibilités de clonage, mise en pause, arrête et démarrage, possibilités de programmations, prise de « snapshot » de l’état de la machine virtuelle…etc.</li>
<li style="text-align: justify;">Possibilité de mise en réseau « logique » de machines virtuelles, mais aussi de les interfacer avec les réseaux physiques.</li>
</ol>
<h1 style="margin-top:10px;">Différentes techniques de virtualisation</h1>
<p style="text-align: justify;margin-top:10px;">Quatre techniques de virtualisation existent, les unes plus connues que les autres :</p>
<ul>
<li>Isolateur</li>
<li>Noyau en espace utilisateur</li>
<li>Machine virtuelle</li>
<li>Para virtualisation ou Hyperviseur</li>
<li>Matériel</li>
</ul>
<h2 style="margin-top:10px;">Isolateur</h2>
<p style="text-align: justify; margin-top:10px;">Un isolateur c’est un logiciel qui confine les autres applications qu’on veut virtualiser dans des contextes propres  à elles. On appel aussi « zones d’exécution » cet espace mémoire spécifique à l’application virtualisée. Cette isolation permet d’avoir plusieurs instances d’une application initialement conçue pour n’exister qu’en mode instance unique.</p>
<div id="attachment_214" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.ntsysv.com/wp-content/uploads/2008/11/diagramme_archiisolateur.png"><img class="size-medium wp-image-214" title="diagramme_architecture_isolateur" src="http://www.ntsysv.com/wp-content/uploads/2008/11/diagramme_archiisolateur-300x203.png" alt="daigramme de l'architecture d'un isolateur" width="300" height="203" /></a><p class="wp-caption-text">Diagramme de l&#39;architecture d&#39;un isolateur</p></div>
<p style="text-align: justify;">On voit bien que l’isolation ne peut être utilisée pour virtualiser tout un système d’exploitation, mais en contre partie il offre des performances supérieures. Autre limitation : les isolateurs sont surtout disponibles pour les systèmes linux. En voici quelques exemples :</p>
<ul style="text-align: justify;">
<li><a href="http://linux-vserver.org/Welcome_to_Linux-VServer.org" target="_blank">Linux-VServer</a> : isolation des processus en user-space</li>
<li>chroot : isolation changement de racine</li>
<li>BSD Jail : isolation en user-space</li>
<li style="text-align: justify;"><a href="http://old.openvz.org/" target="_blank">OpenVZ</a> : libre, partionnement au niveau noyau sous Linux et Windows 2003</li>
</ul>
<h2 style="text-align: justify; margin-top:10px;">Noyau en espace utilisateur</h2>
<p style="text-align: justify; margin-top:10px;">Dans cette situation, un noyau tourne comme une application dans l’espace utilisateur, ce qui lui donne son propre espace mémoire à gérer et lui permet le contrôle des applications. Cette méthode de virtualisation n’est pas très performante du fait que le système invité n’est pas tout à fait indépendant du système hôte. D’autre part, les deux noyaux empilés dans un même système physique ce qui rend les deux systèmes fortement dépendants.</p>
<div class="mceTemp mceIEcenter" style="text-align: justify;">
<dl id="attachment_216" class="wp-caption aligncenter" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://www.ntsysv.com/wp-content/uploads/2008/11/diagramme_archikerneluserspace.png"><img class="size-medium wp-image-216" title="diagramme_architecture_kerneluserspace" src="http://www.ntsysv.com/wp-content/uploads/2008/11/diagramme_archikerneluserspace-300x186.png" alt="diagramme d'architecture de l'espace kernel utilisateur" width="300" height="186" /></a></dt>
<dd class="wp-caption-dd">Diagramme d&#8217;architecture du user mode kernel</dd>
</dl>
</div>
<p style="text-align: justify;">Exemples :</p>
<ul style="text-align: justify;">
<li><a href="http://user-mode-linux.sourceforge.net/" target="_blank">User Mode Linux</a> : noyau tournant en user-space</li>
<li><a href="http://www.colinux.org/" target="_blank">Cooperative Linux</a> ou coLinux : noyau coopératif avec un hôte Windows</li>
<li><a href="http://home.gna.org/adeos/index.fr.html" target="_blank">Adeos </a></li>
<li><a href="http://l4linux.org/" target="_blank">L4Linux</a></li>
</ul>
<h2 style="text-align: justify; margin-top:10px;">Machine virtuelle</h2>
<p style="text-align: justify;margin-top:10px;">Un logiciel permet dans ce cas de lancer plusieurs OS invités sur la machine hôte. Ce logiciel émule un hardware que les machines invitées croient être celui de la machine hôte et donc directement communiquer avec ledit matériel. Par contre, la CPU (ou les CPUs) ainsi que la mémoire sont directement accessibles par les machines virtuelles, ce qui implique des performances plus intéressantes que dans le cas où une totale émulation aurait été faite.</p>
<p style="text-align: justify;">Cette solution permet de faire cohabiter plusieurs systèmes d’exploitation complètement isolés. Ces derniers communiquent entre eux via les canaux systèmes standards, et par réseau. En effet, toutes les machines virtuelles sont ou peuvent être dotées de cartes réseaux virtuelles qui sont en fait des buffers offrant la possibilité d’échanger des données avec l’extérieur.<br />
Quelques exemples :</p>
<ul style="text-align: justify;">
<li><a href="http://bellard.org/qemu/index.html" target="_blank">QEMU </a>: émulateur de plateformes x86, PPC, Sparc</li>
<li><a href="http://kvm.qumranet.com/kvmwiki" target="_blank">kvm </a>: version modifiée de QEMU tirant parti des instructions de virtualisation des processeurs Intel et AMD (Intel VT ou AMD-V)</li>
<li><a href="http://plex86.sourceforge.net/" target="_blank">Plex86 </a>: émulateur de plateforme x86</li>
<li><a href="http://bochs.sourceforge.net/" target="_blank">bochs </a>: émulateur de plateforme x86</li>
<li><a href="http://pearpc.sourceforge.net/" target="_blank">PearPC</a>: émulateur de plateforme PPC sur matériel x86</li>
<li><a href="http://www.vmware.com">VMware</a>: propriétaire, émulateur de plateforme x86 (produits VMware Server, VMware Player et VMware Workstation)</li>
<li><a href="http://www.microsoft.com/france/windows/xp/virtualpc/default.mspx" target="_blank">Microsoft Virtual PC</a> et <a href="http://www.microsoft.com/windowsserversystem/virtualserver" target="_blank">Virtual Server</a>: propriétaire, émulateur de plateforme x86</li>
<li><a href="http://www.lismoresystems.com/" target="_blank">Lismoresystems GuestPC</a> : propriétaire, émulateur de plateforme x86 sur matériel PC</li>
<li><a href="http://mac-on-linux.sourceforge.net/" target="_blank">MacOnLinux </a>: émulateur de plateforme Mac OS sur Linux PPC</li>
<li><a href="http://www.virtualbox.org/" target="_blank">VirtualBox </a>: émulateur de plateforme x86</li>
<li style="text-align: justify;"><a href="http://www.parallels.com/" target="_blank">Parallels </a>: propriétaire, émulateur de plateforme x86 pour Mac OS X.</li>
</ul>
<h2 style="text-align: justify;margin-top:10px;">Para virtualisation ou Hyperviseur</h2>
<p style="text-align: justify;margin-top:10px;">Un hyperviseur est un noyau système très léger et optimisé pour la gestion des noyaux des OS invités l’architecture matérielle soujacente. Dans le cas où les OSs invités sont conscients qu’ils sont virtualisés on parle de para-virtualisation. Cette méthode est indispensable pour l’Hyper-V de Microsoft et qui augmente les performances de VMware ESX.</p>
<div id="attachment_218" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.ntsysv.com/wp-content/uploads/2008/11/diagramme_archihyperviseur.png"><img class="size-medium wp-image-218" title="diagramme_architecture_hyperviseur" src="http://www.ntsysv.com/wp-content/uploads/2008/11/diagramme_archihyperviseur-300x205.png" alt="Diagramme d'architecture d'un hyperviseur" width="300" height="205" /></a><p class="wp-caption-text">Diagramme d&#39;architecture d&#39;un Hyperviseur</p></div>
<p style="text-align: justify;">Les solutions qui se partagent le marché sont (en ordre décroissant de taux de pénétration du marché) :</p>
<ul>
<li>VMware ESX : c’est un produit mature qui fait partie d’une offre globale visant à virtualiser les moyens informatique de l’entreprise. C’est un hyperviseur pour plateforme x86.</li>
<li>Xen : hyperviseur initialement développé par l’université de Cambridge, il a été acheté par Citrix. Xen utilise un noyau léger supportant des noyaux linux, plan9, NetBSD…etc.</li>
<li>Microsoft Hyper-V : intégré à Windows Server 2008 (version 64 bits uniquement)</li>
</ul>
<p style="text-align: justify;">
<h2 style="text-align: justify;margin-top:10px;">Matériel</h2>
<p style="text-align: justify;margin-top:10px;">Dans ces architectures matérielles, le support de la virtualisation est intégré au processeur ou bien est assisté par ce dernier. Ceci permet de gagner en performances en minimisant la partie logiciel de la virtualisation.<br />
Les exemples les plus connus du marché :</p>
<ul>
<li>Hyperviseur IBM Power &amp; Micro-partitionnement AIX</li>
<li>Mainframes : VM/CMS</li>
<li>Sun LDOM (hyperviseur pour la gestion de &#8220;logical domains&#8221;)</li>
<li>Sun E10k/E15k</li>
<li>HP Superdome</li>
<li>AMD-V (Assistance à la virtualisation de AMD, anciennement Pacifica)</li>
<li>Intel VT (Assistance à la virtualisation de Intel, anciennement Vanderpool)</li>
</ul>
<h1  style="margin-top:10px;">Conclusion</h1>
<p style="text-align: justify;margin-top:10px;">Nous avons fait le tour des technologies de virtualisation, j’espère que ça a répondu à quelques unes de vos questions, et sentez vous libre de laisser des commentaires pour en discuter.</p>
Copyright <b> <a href="http://www.ntsysv.com">Ntsysv.com </a></b>]]></content:encoded>
			<wfw:commentRss>http://www.ntsysv.com/index.php/la-virtualisation-machine-virtuelle-ou-hyperviseur/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

