ortographe de la partie virtualisation
[rapport_i2l.git] / Virtualisation.tex
blob72dbb81586053be563b3af3bca59055a6b034f03
1 \chapter{Virtualisation}
2 La virtualisation est une technique qui permet de faire fonctionner sur une seule machine plusieurs syst\`emes d'exploitation, s\'epar\`ement les uns des autres, comme s'ils fonctionnaient sur des machines physiques distinctes. L'outils de virtualisation que nous utilisons est Xen qui est un des logiciels libres de virtualisation les plus aboutis.
4 \section{Pr\'esentation des outils}
5 \subsection{Xen}
6 Xen est un logiciel libre de virtualisation, plus pr\'ecis\'ement un hyperviseur de machine virtuelle.
8 Il est d\'evelopp\'e par l'universit\'e de Cambridge au Royaume-Uni. Xen permet de faire fonctionner plusieurs syst\`emes d'exploitation virtuels (invit\'es) sur une seule machine h\^ote.
10 Xen permet de faire tourner plusieurs syst\`emes d'exploitation (et leurs applications) de mani\`ere isol\'ee sur une m\^eme machine physique. Les syst\`emes d'exploitation invit\'es partagent ainsi les ressources de la machine h\^ote.
12 \subsubsection{Architecture de Xen}
13 Avant Xen 3.0, Xen etait un ``paravirtualiseur'' ou un ``hyperviseur'' de machines virtuelles (voir figure \ref{XenInf3}). Les syst\`emes d'exploitation invit\'es avaient ``conscience'' du Xen sous-jacent, ils avaient besoin d'\^etre ``port\'es'' (adapt\'es) pour fonctionner sur Xen. Linux, NetBSD, FreeBSD (portage en cours) et Plan 9 pouvaient fonctionner sur Xen.
15 \begin{figure} [htbp]
16 \begin{center}
17 \begin{tabular}{|c|c|c|c|c|c|c|}
18 \cline{1-1} \cline {3-3} \cline{5-5} \cline {7-7}
19 Logiciels de contr\^ole Xen& &User space& &User space& &User space\\
20 \cline{1-1} \cline {3-3} \cline{5-5} \cline {7-7}
21 Xeno-Linux& &Linux& &NetBSD& &FreeBSD\\
22 \cline{1-1} \cline {3-3} \cline{5-5} \cline {7-7}
23 Pilotes Xen& &Pilotes Xen& &Pilotes Xen& &Pilotes Xen\\
24 \cline{1-1} \cline {3-3} \cline{5-5} \cline {7-7}
25 \multicolumn{7}{c}{ } \\
26 \hline
27 \multicolumn{7}{|c|}{Xen} \\
28 \hline
29 \multicolumn{7}{|c|}{Mat\'eriel : processeur, m\'emoire, stockage, r\'eseau, etc. } \\
30 \hline
31 \end{tabular}
32 \end{center}
33 \caption{Xen $< 3.0$ ou sans la technologie VT}
34 \label{XenInf3}
35 \end{figure}
36 Avec les technologies Intel Vanderpool et AMD Pacifica ce portage n'est plus n\'ecessaire et tous les syst\`emes d'exploitation sont support\'es; Xen 3.0 (voir figure \ref{XenSup3}) peut faire tourner des syst\'emes non modifi\'es sur des processeurs supportant la technologie VT \footnote{Virtualization Technology, anciennement Vanderpool}. Avec cette technologie seul le systeme h\^ote a besoin d'un noyau modifi\'e pour Xen (qui est disponnible dans la plupart des distributions), les syst\`emes invit\'es n'on pas besoins de modification, on peut donc avoir des machine virtuelles avec Windows.
38 \begin{figure}[htbp]
39 \begin{center}
40 \begin{tabular}{|c|c|c|c|c|c|c|c|c|}
41 \cline{1-1} \cline {3-3} \cline{5-5} \cline {7-7}\cline{9-9}
42 Logiciels de contr\^ole Xen& &User space& &User space& &User space& &User space\\
43 \cline{1-1} \cline {3-3} \cline{5-5} \cline {7-7}\cline{9-9}
44 Xeno-Linux& &Linux& &NetBSD& &FreeBSD & &Windows\\
45 \cline{1-1} \cline {3-3} \cline{5-5} \cline {7-7}\cline{9-9}
46 \multicolumn{9}{c}{ } \\
47 \hline
48 \multicolumn{9}{|c|}{Xen avec noyau Xen} \\
49 \hline
50 \multicolumn{9}{|c|}{Mat\'eriel : processeur, m\'emoire, stockage, r\'eseau, etc. } \\
51 \hline
52 \end{tabular}
53 \end{center}
54 \caption{Xen $> 3.0$ avec la technologie VT}
55 \label{XenSup3}
56 \end{figure}
60 Les architectures x86, x64, IA-64, PowerPC et SPARC sont support\'ees. Le multiprocesseur (SMP) et partiellement l'Hyper-Threading sont support\'es.
62 \subsubsection{Comparaison avec d'autres solutions de virtualisation}
63 G\'en\'eralement, la virtualisation n\'ecessite un syst\`eme d'exploitation h\^ote install\'e sur le mat\'eriel, et optionnellement une couche interm\'ediaire. Un ou plusieurs syst\`emes d'exploitation invit\'es peuvent alors \^etre install\'es en parall\`ele.
65 \begin{itemize}
66 \renewcommand{\labelitemi}{$\bullet$}
67 \item Les logiciels de virtualisation de type QEMU, VMWare Workstation/GSX ou VirtualPC sont des machines virtuelles compl\`etes pour les syst\`emes d'exploitation invit\'es, incluant m\^eme un BIOS logiciel (``firmware''). Le syst\`eme d'exploitation invit\'e ``croit'' tourner sur un mat\'eriel, or il est ``virtuel'' ou ``simul\'e'' par le logiciel de virtualisation, l'OS invit\'e n'a pas ``conscience'' d'\^etre virtualis\'e. La surcharge introduite par l'empilage du syst\`eme d'exploitation h\^ote et de la machine virtuelle en font des solutions peu satisfaisantes pour des besoins en performance. Ils sont toutefois les plus simples \`a mettre en \oe uvre.
69 \item Les logiciels de virtualisation de type VMWare ESX permettent d'avoir des machines compl\`etement virtualis\'ees pour les syst\`emes d'exploitation invit\'es, incluant m\^eme un bios. Mais \`a la diff\'erence des machines virtuelles compl\`etes pr\'ec\'edemment cit\'ees, il y a empilage l\'eger, la machine virtuelle se repose sur un noyau l\'eger nomm\'e vmkernel. C'est une architecture tr\`es similaire \`a Xen.
71 \item Les logiciels de type chroot, Linux-VServer, OpenVZ ou BSD Jail ne font qu'isoler certains aspects ou ressources du syst\`eme d'exploitation h\^ote comme les syst\`emes de fichiers ou les espaces m\'emoire. Ces solutions sont tr\`es performantes, du fait du peu de surcharge (pas d'empilage d'OS h\^ote et d'un logiciel de virtualisation), mais les environnements virtualis\'es (on ne peut pas parler de machine ou syst\`emes d'exploitation virtuels) sont peu ou pas compl\`etement isol\'es.
73 \item User Mode Linux (d'acronyme UML) est un noyau Linux compil\'e pour fonctionner en espace m\'emoire utilisateur (en dehors de l'espace noyau privil\'egi\'e). Il se lance donc comme une application dans le syst\`eme d'exploitation h\^ote. UML peut lancer et g\'erer ses applications de mani\`ere isol\'ee des autres UML qui tournent sur la m\^eme machine. Solution tr\`es peu performante, car deux noyaux sont empil\'es, elle sert surtout au d\'eveloppement du noyau ou \`a la r\'ealisation de pot de miel\footnote{Un honeypot (en fran\c{c}ais pot de miel) est un ordinateur ou un programme volontairement vuln\'erable destin\'e \`a attirer et \`a pi\'eger les pirates informatiques}.
74 \end{itemize}
75 Du fait de cette ``paravirtualisation'' (adaptation du syst\`eme d'exploitation invit\'e) et de sa l\'eg\`eret\'e, Xen est un outil de virtualisation des plus performants.
77 \subsection{LVM}
78 (http:/lionel.tricon.free.fr/Articles/lvm/lvm\_article.html)\\
79 (Article publi\'e dans le GNU/Linux Magazine France, num\'ero 54 (Octobre 2003).)
80 \subsubsection{Pourquoi utiliser un gestionnaire de volume logique ?}
81 Sur un syst\`eme Linux traditionnel, le d\'ecoupage de l'espace disque se fait habituellement par la cr\'eation de partitions physiques de taille fixe lors de l'installation du syst\`eme. Le syst\`eme de fichiers (structure logique abritant les fichiers et les r\'epertoires, vos donn\'ees en l'occurrence) prenant place \`a l'int\'erieur d'une partition.
83 Prenons l'exemple d'un disque dur point\'e par le fichier sp\'ecial /dev/hda qui contient une partition /dev/hda2 pour le swap, /dev/hda5 pour le /home et /dev/hda6 pour le root (utilisation de la commande syst\`eme ``\textit{sfdisk -l}'' pour lister les partitions de la machine). Chaque partition poss\`ede un type (par exemple, 0x82 pour le swap ou 0x83 pour des partitions Linux) et contient en dehors du swap un syst\`eme de fichiers (par exemple Ext3 ou Reiserfs).
85 \lstset{language=csh}
86 \lstset{basicstyle=\small,commentstyle=\textit}
87 \begin{lstlisting}
90 # sfdisk -l
92 Disk /dev/hda: 608 cylinders, 255 heads, 63 sectors/track
93 Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
95 Device Boot Start End #cyls #blocks Id System
96 /dev/hda1 * 101 607 506 4060144 5 Extended
97 /dev/hda2 0+ 100 100- 802400+ 82 Linux swap
98 /dev/hda3 0 - 0 0 0 Empty
99 /dev/hda4 0 - 0 0 0 Empty
100 /dev/hda5 101+ 151 50- 401200+ 83 Linux
101 /dev/hda6 152+ 324 172- 1380128 83 Linux
103 \end{lstlisting}
105 La partition \'etendue est une contrainte du format de partition de type dos dans lequel on ne peut cr\'eer plus de quatre partitions primaires mais o\`u l'on peut, par une partition \'etendue, cr\'eer un grand nombre de partitions logiques :
107 \begin{figure}[htbp]
108 \begin{center}
109 \includegraphics{partition_dos.jpg}
110 \caption{Partitionnement standard de type DOS}
111 \end{center}
112 \end{figure}
114 Ce mode de mise en oeuvre est simple et efficace mais permet difficilement d'\'etendre l'espace disponible en cas de saturation d'une partition : par exemple pour ajouter 2 Go au syst\`eme de fichiers /home, il n'y a pratiquement pas d'autres possibilit\'es que de r\'einstaller la machine en choisissant un nouveau d\'ecoupage lors de l'installation. Et si le disque dur ne suffit pas, il faudra en ajouter un second mais en sacrifiant toujours \`a une r\'einstallation du syst\`eme.
116 Pour r\'esumer le probl\`eme, puisque il faut cr\'eer une partition sur un disque dur avant de pouvoir mettre en place un syst\`eme de fichiers, ce dernier sera statique et impossible \`a \'etendre car il est impossible nativement de cr\'eer des partitions, et donc un syst\`eme de fichiers, qui couvrent plusieurs disques durs.
118 \subsubsection{Introduction \`a LVM}
119 LVM, dont l'acronyme anglo-saxon signifie Logical Volume Manager, est un gestionnaire de volumes logiques qui apportent une vision abstraite du stockage de la machine. La partition physique devient un composant \'el\'ementaire et ne va plus directement supporter le syst\`eme de fichiers. Entre ces deux couches de bas et de haut niveau (successivement, la partition et le syst\`eme de fichiers), vont s'intercaler une premi\`ere couche regroupant les partitions physiques (appel\'ee ``volume groupe'') et une deuxi\`eme couche dans laquelle seront cr\'eer les syst\`emes de fichiers (appel\'es ``volumes logiques'') mais qui seront dynamiquement retaillables (indiff\'eremment en r\'eduction ou en extension).
123 \begin{figure}[htbp]
124 \begin{center}
125 \includegraphics{partition_lvm.jpg}
126 \caption{D\'ecoupage des donn\'ees sous LVM}
127 \end{center}
128 \end{figure}
130 L'int\'er\^et principal de cette approche est \`a la fois de pouvoir \'etendre facilement un volume groupe en ajoutant des partitions physiques (par exemple, un nouveau disque dur) et de changer la taille \`a chaud des volumes logiques sachant que ces derniers ne poss\`edent pas un emplacement pr\'ecis sur un volume groupe et ne sont repr\'esent\'es que par leur nom et leur taille.
132 Pour \^etre pr\'ecis, nous allons parler de volumes physiques comme composant \'el\'ementaire du stockage (un disque dur, une partition, un volume Raid logiciel, un device bloc r\'eseau voire un device en loopback), de volumes groupes comme abstraction de l'espace disque (compos\'es de un ou plusieurs volumes physiques pr\'esents ou non sur le m\^eme disque dur) et de volumes logiques dans lesquels nous allons cr\'eer nos syst\`emes de fichiers.
134 \begin{figure}[htbp]
135 \begin{center}
136 \includegraphics[width=12cm]{lvm_partition_small.jpg}
137 \caption{Couches d'abstractions du mod\`ele LVM}
138 \end{center}
139 \end{figure}
141 Nous allons appeler \textbf{PV} un volume physique (Physical Volume), \textbf{VG} un volume groupe (Volume Group) et \textbf{LV} un volume logique (Logical Volume). Le nommage des volumes groupes et logiques est libre m\^eme si la convention habituelle est de pr\'efixer un volume groupe par ``vg\_'' et un volume logique par ``lv\_''.
143 Tout l'espace disponible dans un volume groupe peut ne pas \^etre utilis\'e dans les volumes logiques. Cela permet de garder en r\'eserve de l'espace disque pour l'ajouter aux volumes logiques qui en auront besoin.
146 \subsubsection{Un peu d'histoire}
147 LVM (dont les principes ont \'et\'e d\'evelopp\'es par l'Open Software Foundation) est notamment un ticket d'entr\'ee incontournable dans le monde de l'entreprise actuel. Il faut bien comprendre que les gros Unix propri\'etaires poss\`edent tous leurs propres gestionnaires de volumes : Aix, Solaris, HP-UX, Tru64, ... (l'impl\'ementation actuelle LVM de Linux est tr\`es proche de celle de HP-UX). Linux n'est donc pas un pr\'ecurseur en la mati\`ere mais disposer d'un LVM est un enjeu primordial pour les d\'ecideurs informatiques souhaitant traiter des volumes de donn\'ees cons\'equents.
149 LVM 1.0.x (d\'evelopp\'e principalement par la soci\'et\'e Sistina) est directement impl\'ement\'e au niveau du noyau Linux depuis sa version 2.4 (avec possibilit\'e d'impl\'ementation \`a partir du 2.2.17) ; la version 2.6 int\`egre la version 2.0 de LVM. Cette derni\`ere version repose sur une nouvelle couche du noyau, le ``device mapper'', qui rationalise l'impl\'ementation de drivers supportant des devices virtuels en mode blocs comme par exemple le Raid logiciel.
151 Pour la petite histoire, il s'en est fallu de peu que le LVM Linux ne soit supplant\'e par un \'equivalent d\'evelopp\'e par IBM, appel\'e du doux acronyme de EVMS, et qui avait pour ambition de modifier la vision que l'on pouvait avoir du stockage de donn\'ees sous Linux en f\'ed\'erant l'essentiel des couches dans un m\^eme outil : partition, LVM, Raid logiciel, etc. (concept qui avait tout pour s\'eduire). Les d\'eveloppeurs du noyau Linux ont finalement tranch\'e en faveur du LVM2 de la startup Sistina plut\^ot que de choisir l'outil novateur (peut \^etre un peu trop) du g\'eant IBM : cela est la preuve, s'il en est besoin, de l'approche d\'emocratique et mature du d\'eveloppement du noyau Linux.
153 Autant \^etre honn\^ete, les fonctionnalit\'es du driver EVMS restent tr\`es all\'echantes \`a l'heure qu'il est ; la preuve en est que le projet continue d'\^etre d\'evelopp\'e comme on peut le constater sur le site officiel chez IBM. Peut \^etre entendrons-nous un jour reparler de cet outil sous une forme diff\'erente ?
156 \subsubsection{Utilisation des snapshots}
157 Un dernier point \`a aborder (et non des moindres) : la notion de snapshot.
159 Imaginons qu'il faille sauvegardez des fichiers poss\'edant une forte d\'ependance entres eux et modifi\'es quasiment en temps r\'eels (comme les fichiers syst\`emes d'une base de donn\'ees) : le fichier A est synchronis\'e avec le fichier B, si le fichier B est sauvegard\'e 5 minutes plus tard que le fichier A, les donn\'ees ne pourront \^etre restor\'ees car consid\'er\'ees comme inconsistantes.
161 Pour traiter ce cas, il faut arr\^eter l'applicatif, lancer la sauvegarde et attendre la fin de la sauvegarde pour red\'emarrer l'applicatif : d'o\`u interruption du service que l'on aimerait pouvoir \'eviter ou r\'eduire.
163 Les snapshots LVM sont la solution : cela cr\'ee un volume logique virtuel (snapshot) qui sera la copie conforme en lecture seule de celui \`a sauvegarder \`a un instant T. Si un fichier est supprim\'e dans le volume logique initial, celui-ci sera toujours pr\'esent dans le volume logique virtuel. A l'inverse, si un fichier est ajout\'e, ce dernier sera absent du snapshot. En cas de modification des donn\'ees sur le volume initial, les donn\'ees resteront consistantes sur le volume virtuel.
165 Pourtant, un snapshot LVM n'est pas une copie int\'egrale des donn\'ees pr\'esentent dans un volume logique. Il n'a m\^eme pas besoin de disposer de la m\^eme quantit\'e d'espace disque. L'astuce est qu'un snapshot ne contient absolument rien, en dehors de la liste des Extends Logiques (LE) modifi\'es dans le volume initial. Les blocs modifi\'es ne sont donc pas supprim\'es mais simplement r\'ef\'erenc\'es dans le volume virtuel : apr\`es la suppression du snapshot, ces derniers seront d\'efinitivement recycl\'es.
167 Ce fonctionnement permet de pouvoir tranquillement lancer la sauvegarde sur les donn\'ees du volume virtuel et imm\'ediatement apr\`es (sans attendre la fin), relancer l'applicatif : quelques secondes d'interruption en somme.
169 Un snapshot est cr\'e\'e avec une taille initiale dont la volum\'etrie est calcul\'ee en estimant la quantit\'e de donn\'ees (LE) qui va \^etre modifi\'ee durant toute la dur\'ee du snapshot. C'est \`a peu pr\`es la seule contrainte en dehors du fait qu'un snapshot n'est pas persistant (supprim\'e apr\`es red\'emarrage de la machine).
171 Voici un exemple de mise en oeuvre d'un snapshot sur un volume logique vl\_data sachant que le volume logique virtuel nouvellement cr\'e\'e sera obligatoirement pr\'esent dans le m\^eme volume groupe :
173 \lstset{language=csh}
174 \lstset{basicstyle=\small,commentstyle=\textit}
175 \begin{lstlisting}
176 # lvcreate --size 600M --snapshoot -n lv_snap /dev/vg01/vl_data
177 # mkdir /lv_snap
178 # mount /dev/vg01/lv_snap /lv_snap
180 [sauvegarde des donnees]
182 # umount /lv_snap
183 # lvremove /dev/vg01/lv_snap
184 \end{lstlisting}
186 \section{Cas Pratique: "Label Vie"}
187 Suite \`a la demande d'un client d\'esirant refaire son parc informatique et sous-traiter la maintenance, nous avons opt\'e pour une solution de virtualisation comportant :
188 \begin{itemize}
189 \item Un serveur debian : routeur, firewall, proxy.
190 \item Un serveur windows 2003.
191 \item Un seveur debian pour la t\'el\'ephonie (Asterisk).
192 \end{itemize}
193 Chaque seveur \'etant sauvegard\'e localement chaque nuit et dupliqu\'e nuit sur un autre serveur de secours, pour une reprise rapide en cas de panne.
195 \subsection{Installation du Dom0}
197 Le Dom0 est un syst\`eme debian etch qui est entièrement d\'edi\'e \`a la virtualisation.
198 L'installation se fait comme un syst\`eme normal, il suffit ensuite de rajouter les paquets xen suivants :
199 \begin{itemize}
200 \item xen-hypervisor-i386 (pour les processeur supportant la technologie VT)
201 \item xen-hypervisor-i386-pae (pour les processeur ne supportant pas la technologie VT)
202 \item xen-utils
203 \item xen-docs-3.0
204 \item linux-image-xen-686
205 \item xen-ioemu-3.0.3-1 (pour la virtualisation compl\`ete)
206 \item bridge-utils
207 \end{itemize}
208 Une fois ces paquets install\'es il faut red\'emarer sur le noyau Xen, et on peut utiliser xen. \\
209 Dans notre cas nous avons du faire une l\'eg\`ere modification de la configuration de xen afin de pouvoir avoir plusieurs cartes r\'eseaux au sein les machines virtuelles.
211 Il faut aussi une partition de type LVM afin de pouvoir installer les machine virtuelles sur des volumes logiques ce qui nous permet de cr\'eer rapidement des spnashots pour pouvoir sauvegarder les machines sans les arr\^eter. Nous reviendrons plus tard sur le mecanisme de sauvegarde des machines.
213 Pour g\'erer les machines virtuelles nous disposons des commandes classique de Xen comme \textit{xm create}, \textit{xm list} ...
214 Pour faciliter la gestion des DomU, nous avons developp\'e un pluggin WebMin qui permet de lancer les commandes simple de xen (lister les machine, d\'emarrer, arr\^eter o\`u rebooter une machine) via une interface web. Ceci permet en cas de besoin de pouvoir g\'erer les machines virtuelles sans avoir acc\`es \`a la machine et sans connexion ssh, un simple navigateur web suffit.
216 \begin{figure}[!ht]
217 \begin{center}
218 \includegraphics[height=80mm]{webmin_xen.png}
219 \caption{Plugin Webmin pour Xen}
220 \end{center}
221 \end{figure}
223 \subsection{Installation des DomU}
224 Il existe deux fa\c{c}ons de virtualiser des machines avec XEN, soit en para-virtuallisation, soit en virtualisation compl\`ete.\\
225 La para-virtuallistion utilise le noyau de la machine h\^ote (le Dom0), alors que la machine utiliant la vitualisation compl\`ete a son propre bios et son propre noyau. Cela permet ainsi d'avoir des noyaux diff\'erents par machines, mais \'egalement de d\'eplacer la machine virtualis\'ee quelque soit la machine h\^ote (Dom0).
227 Installer une machine virtuelle utilisant la para-virtualisation se fait simplement en utilisant la commande xen-create-image qui appelle debootstrap permettant d'installer un syst\`eme Debian de base en une seule commande. Cela cr\'ee le fichier de confguration de la machine, et les diques qu'ils soient fichier ou lvm.
229 Pour installer une machine compl\`etement virtualis\'ee il faut cr\'eer les disques et le fichier de configuration \`a la main, puis d\'emarrer la machine en utilisant l'iamge (au format iso par exemple) de la distribution que l'on souhaite installer. Pour l'installation il faut utiliser sdl ou vnc afin d'avoir un affichage, il est donc n\'ecessaire d'avoir un serveur X sur la machne h\^ote. Cette m\'ethode permet \'egalement d'installer un Windows.\\
230 Cependant avec cette m\'ethode il nous est impossible de r\'ecup\'erer la console du DomU en utilisant la commande ``\textit{xm console}''
232 Pour des raisons de non d\'ependances des machines virtualis\'ees envers la machine h\^ote nous avons donc choisi cette seconde solution. Ainsi on peut d\'eplacer les DomU vers un autre serveur en cas de pannes.
234 \subsubsection{Le serveur virtualis\'e (routeur, firewall, proxy)}
236 Le premier serveur que nous avons install\'e sur la machine h\^ote est une machine servant de routeur, firewall et de proxy, cette machine sert \`a g\'erer toute la partie r\'eseau de l'entreprise.\\
237 Cette machine comporte deux cartes r\'eseaux, l'une \'etant reli\'ee \`a internet et la seconde au r\'eseau local.
238 Sur se serveur nous avons install\'e Webmin ce que permet de configurer facilement les divers programmes notemment iptable qui sert de routeur et de firewall.
240 \begin{figure}[!ht]
241 \begin{center}
242 \includegraphics[height=80mm]{webmin_iptable.png}
243 \caption{Plugin Webmin pour iptable}
244 \end{center}
245 \end{figure}
247 Ensuite nous avons install\'e le proxy squid. Le proxy n'a pour r\^ole que de servir de cache et de log afin de surveiller l'utilisiation d'internet par les utilisateurs. Il est configur\'e de fa\c{c}on \`a tout autoriser une fois l'utilisateur autentifi\'e.\\
248 Cette autentification est verifi\'ee \`a travers Active Directory qui est sur le seveur windows que nous pr\'esenterons par la suite.\\
249 Afin de ne pas avoir \`a configurer les navigateurs du client nous voulions installer le proxy en ``transparent'' (en redirigeant le port 80 vers le port du proxy) cependant cette m\'ethode ne permet pas l'authentification. Nous avons donc installer le proxy classiquement pour pouvoir conserver l'authentification qui permet d'identifier les utilisateurs afin de pouvoir contr\^oler l'utilisation d'internet.
251 Afin de consulter l'utilisation d'internet il faut pouvoir analiser les logs, pour cela nous avons choisi deux logiciels: webalizer, et SARG (Squid Analysis Report Generator), tous deux administrables depuis webmin.\\
252 Webalizer permet d'avoir une vue d'ensemble de l'utilisation d'internet avec des graphiques et autres statistiques et SARG permet d'avoir une vue detail\'ee par utilisateur, ce que ne pemet pas d'avoir webalizer.
254 \begin{figure}[!ht]
255 \begin{center}
256 \includegraphics[height=80mm]{webalizer.png}
257 \caption{Webalizer}
258 \end{center}
259 \end{figure}
260 Cette machine a aussi un serveur OpenVPN avec le site distant. Nous avons choisi d'installer le VPN sur le routeur car les machines du sous r\'eseau auront alors un acc\'es totalement transparent au VPN \`atravers le routeur.\\
261 Pour le Vpn nous avons voulu utiliser IPSec mais cela n'a pas p\^u \^etre possible car les livebox du client ne laisse pas passer IPSec \`a cause d'un port reserv\'e. Nous avons donc utiliser openVPN qui peut cr\'ees des VPN ind\'ependament du type de connexion utilis\'ee.
263 \begin{figure}[!ht]
264 \begin{center}
265 \includegraphics[height=80mm]{Diagramme_VPN.png}
266 \caption{Reseau VPN avec OpenVPN}
267 \end{center}
268 \end{figure}
270 On peut remarquer ici que OpenVpn cr\'e une interface suplementaire (tun0) avec une ip de type 10.8.0.X cette interface et directement relié par le biais d'une connexion securis\'ee aux autres interfaces tun0 des client VPN . Ainsi on OpenVPN cr\'ee un r\'eseau securis\'e entre le seveur et les clients.\\
271 Nous avons choisi d'installer OpenVpn sur les routeurs des deux sites afin de pouvoir relier les deux sous r\'eseau avec en ne configurant qu'une seulle machine par site. En effet si l'on configure bien OpenVpn, celui-ci peut rajouter automatiquement les routes permettant d'acc\'eder aux differents sous reseaux.
273 \subsubsection{Virtualisation d'un serveur 2003}
274 Pour le besoin du client nous avons install\'e un serveur 2003, ce serveur n'est pas utilis\'e directement, il n'est utilis\'e qu'avec les TSE (bureaux distants) en g\'en\'eral \`a partir de boitiers l\'egers. Cette utilisation se pr\^ete donc bien \`a la virtualtion car nous n'avons pas besoin d'acc\'es direct \`a la machine windows.
276 Pour virtualiser un windows nous sommes obliger de faire de la virtualisation compl\`ete, en effet il est impossible de faire touner un windows en para-virtualisation car il ne peut cohabiter avec le noyau du syst\`eme h\^ote. De plus le processeur du serveur doit suporter la t\'echnologie VT.
277 Une fois ces conditions remplies le windows s'installe normalement.\\
278 Il faut simplement lancer la machine virtuelle en lui indiquant de d\'emarrer sur son lecteur CD, lecteur qui est emul\'e par xen en indiquant juste l'iso du CD d'installation de windows, par la suite le windows s'installe classiquement.
280 Cependant il est \`a not\'e qu'il faut obligatoirement un serveur X install\'e sur le Dom0, ce qui est normal pour l'installation, mais m\^eme une fois la machine virtuelle install\'ee le windows ne pourra se lancer sans serveur X, en effet il a besoin soit de VNCServer soit de SDL sur le Dom0 pour \^etre demarr\'e.
282 screenshot.
284 \subsection{Syst\`eme de backup des DomU }
287 %citation
288 %\cite{Motclef1}.
289 %note de pied de page
290 %titit \footnote{Par exemple, on peut faire un pied de page}
291 \clearpage