TX : Etude de la virtualisation : Réseau et Cloisonnement

Suite à l’AC que j’ai effectué au semestre d’Automne avec Romain Hinfray, j’ai voulu aller plus loin dans l’étude de la virtualisation. Ceci s’explique principalement par le fait que nous n’avions pas du tout utilisé Xen dans le cadre de l’AC. C’est donc sous la forme d’une TX (sorte de TPE) que j’ai continué l’étude de la virtualisation. Cette TX s’est faite avec Julie Facon.

Nous avons voulu prolonger l’AC en y injectant du pratique. Les deux points qui étaient restés le plus en suspens après l’AC étaient l’intégration de la virtualisation dans une infrastructure réseau conventionnelle et la gestion du cloisonnement des performances. Le powerpoint est disponible ci-dessous via slideshare.net et le rapport est téléchargeable ici.

Je vais tout de même vous résumer ici les deux études afin de, potentiellement, vous donner envie d’en lire plus. L’étude sur le réseau a tout d’abord inclus l’installation de l’outil Xen ainsi que de l’outil de gestion de machines virtuelles ConVirt. L’installation détaillée est une installation par le biais des paquets Debian mais ce que nous avons utilisé dans le cadre de notre TX est l’installation par les sources. Cette dernière est la seule qui permet d’utiliser une version de Xen à jour. Nous avons ensuite exploré les différents modes de réseau de Xen, à savoir, pont, routeur et NAT. Nous avons étendu l’étude vers l’utilisation des VLAN via le biais du protocole 802.1Q. La conclusion de cette étude est que le mode pont est de loin le mode le plus simple et que le mode NAT permet d’introduire des fonctionnalités tout à fait intéressantes. Le mode routeur n’est cependant pas fonctionnel et est d’une utilité fortement réduite. Ce qu’il faut noter également, c’est que le réseau sous Xen dépend totalement de la gestion du réseau sous Linux.

Ensuite, la seconde partie est donc la partie sur le cloisonnement de performances. L’objectif de cette partie était de montrer l’intérêt de la virtualisation par rapport à une plateforme classique. Nous avons donc simulé une montée en charge de différents services et mesurer l’impact sur les autres services. Nous avons utilisé l’outil Apache Bench pour implémenter une montée en charge modérée et l’Isolation Benchmark Suite pour implémenter une très forte montée en charge. Nous avons pu constaté l’agilité avec laquelle la virtualisation arrivé à gérer une montée en charge tout en assurant une qualité de service aux machines virtuelles qui ne demande que peu de ressources. Ceci n’est bien entendu absolument pas du tout le cas d’une plateforme non virtualisée. La virtualisation est une solution efficace pour assurer un cloisonnement en termes de performances.

Les livres pour comprendre Xen 1

Je souhaiterais vous présenter les livres qu’il faut acheter pour pouvoir mieux comprendre Xen. J’ai eu l’occasion d’avoir chacun entre mes mains et de les lire de manière plus ou moins approfondie que ce soit en livre papier ou en ebook. Tous ces livres sont en anglais car il n’existe pas encore de version traduite. Si vous n’êtes des méga jedi de l’anglais, va falloir faire un effort mais globalment ca reste de l’anglais technique assez abordable.

Je trouve que les livres restent un moyen extrêmement efficace de se renseigner sur un sujet même informatique. Avec les projets libres, on a tendance à préférer la documentation en ligne qui est le plus souvent de bonne qualité. Cependant, l’avantage du livre est qu’il est disponible partout et utilisable dans les transports en commun et autres lieux non propices à l’utilisation d’un ordinateur portable. Son autre avantage est historique dans la mesure où par tradition les livres sont considérés être des sources d’information plus fiables qu’une page web. Ceci se module au cas par cas car il arrive que des documentations en ligne soient largement supérieures qu’un livre. Au final, le livre reste nettement plus agréable à lire et à gribouiller qu’un document en ligne.

Running Xen: A Hands-On Guide to the Art of Virtualization

RunningXen

Ce livre est le premier que je me suis fourni car la version ebook est facilement trouvable sur Internet (en version légale bien sur… ou sur Safari Online). Un aperçu est disponible sur Google Books. Il s’agit d’un livre qui a pour objectif d’être pratique et de vous accompagner dans l’installation et le déploiement d’un serveur Xen. Il est assez court et plutôt concis. Le début effectue un tour d’horizon des solutions de virtualisation pour rapidement passer à Xen. Ensuite, le livre effectue un tour complet, détaillé et clair de la configuration de Xen. Vous nous trouverez pas d’explications particulièrement précises sur le fonctionnement de Xen mais plus un aperçu très pratique. Après avoir lu ce livre, vous saurez configurer des domaines de paravirtualisation comme de virtualisation matérielle assistée dans quasiment tous leurs aspects.

Il est par contre assez regrettable qu’il ne fournisse que relativement peu d’informations non-techniques. Ce livre est plus un guide d’installation et de configuration de Xen qu’une encyclopédie de Xen ou bien même une explication du fonctionnement interne de Xen. Ceci ne le rend pas moins intéressant bien entendu, le public visé n’est juste pas tout à fait le même.

La grosse plus-value de ce livre est la facilité avec laquelle il est possible de contacter les auteurs qui sont très investis dans la communauté Xen. Pour se faire, il est possible de passer par la mailing liste dont le lien est publié sur le site du livre ou bien, soit par la mailing liste officielle Xen (xen-users) soit directement par le mail personnel des auteurs que vous trouverez sans difficulté sur ces mailing lists.

Fibre optique ? Oui mais …

Fibre OptiqueVu que je serais en stage à partir du 1er Juillet (vacances d’été de 5 jours, ca fait light), je vais retourner sur Paris pour 6 mois pour vivre avec ma fiancée. Nous habitons actuellement à St Denis dans le 93 (Neuf Trois wesh gros !) mais nous prévoyons de déménager à Courbevoie. Courbevoie ?! Ca sent… *sniff* *sniff* la fibre optique !

Les appartements que nous prévoyons de visiter sont inclus dans la zone de couverture « Fibre Optique » de Numericable. La desserte de cette ville en fibre optique est assez logique dans la mesure où il y a un des plus gros noeud Internet Français, j’ai nommé Redbus. Vous pouvez imaginer mon bonheur à savoir que je pourrais être desservi par une liaison ultra haut débit qui dépotte.

Direction le site de Numéricable pour s’adonner à des simulations en tout genre pour savoir quel type de fibre optique je pourrais avoir. Je saisis l’adresse des différents appartements que nous avions prévu de visiter. Le site me dit d’office que je peux disposer de 100Mbit/s, génial ! Cependant, ce qui m’intéressait plus c’était le débit d’upload afin de pouvoir héberger divers serveurs. Aucune information disponible sur le site de Numéricable à ce propos, autant dire que ca sent mauvais. Je me rends donc sur le site Grenouille.com qui est généralement au courant de ce genre d’informations. Et là, c’est le drame. 5Mbit/s en upload ! Mais ou sont passés le 95Mbit/s restants dont je rêvais ?

Et bien en fait après avoir recherché sur Internet, l’offre de Numericable n’est pas une « vraie » offre fibre optique. Par vraie offre de fibre optique j’entends offre par le biais de laquelle un microtube de silice capable de transporter de la lumière à travers le monde arrive dans mon mur. Ce n’est pas une fibre qui arrive dans votre mur mais un cable coaxial comme dans les offres d’Internet par le cable traditionnelles. En fait, Numéricable déploie la fibre optique jusqu’au dernier répéteur (FTTLA – Fiber To  The Last Amplifier) ce qui permet de limiter les pertes et donc d’augmenter les débits.

Concrètement, Numericable tire des fibres optiques à la place de ses câbles coaxiaux existants jusqu’au pied des batiments. Un tel déploiement est plus simple dans le mesure où les infrastructures existent déjà et leur appartiennent. Ensuite au pied des batiments, la fibre optique est convertie en coaxial pour desservir le/les batiments en question. Visiblement les débits en upload auraient été bridés et pourraient être augmentés dès que le réseau de Numéricable aurait été amélioré. Pour ceux qui veulent plus d’info, voici un premier site qui montre des photos d’un boitier de raccordement au réseau fibre optique et un second article qui explique le déploiement du réseau Fibre Optique Numéricable.

Je vais tout de même arrêter de me plaindre parcque si j’arrive à obtenir du 100/5 Mbit/s je serais content bien évidemment vu qu’actuellement je me contente de 7/0,8 Mbit/s. Je n’aurais plus qu’à adresser mes prières au Dieu Numéricable pour qu’ils débrident les débits en upload. Il ne reste plus qu’à prévoir le futur réseau pour aller derrière.

Edit : Après plus de recherches, le standard de communication permet d’obtenir 160/120Mbit/s avec l’exemple d’un déploiement en Corée ou ici. Egalement plus d’infos sur la page du standard sur Wikipedia.

C’est quoi Xen ?

Xen_logo

Je vais être amené à vous parler régulièrement de Xen dans ce blog car j’ai régulièrement été amené à travailler dessus. Avant de pouvoir vous parler en long en large et en travers de cet outil, je souhaitais faire un petit billet récapitulant ce qu’est Xen et ce que ce n’est pas.

Pour rester dans la définition, voici ce que Wikipedia France propose comme définition :

Xen est un logiciel libre de virtualisation, plus précisément un hyperviseur de machine virtuelle. Il est développé par l’université de Cambridge au Royaume-Uni. Xen permet de faire fonctionner plusieurs systèmes d’exploitation virtuels (invités) sur une seule machine hôte.

La version de Wikipedia Anglais est la suivante :

Xen is a virtual machine monitor for IA-32 (x86, x86-64), IA-64 and PowerPC 970 architectures. It allows several guest operating systems to be executed on the same computer hardware concurrently. Xen was initially created by the University of Cambridge Computer Laboratory and is now developed and maintained by the Xen community as free software, licensed under the GNU General Public License (GPL2).

Pour résumer les deux définitions, Xen est une solution de virtualisation. La virtualisation est la technique informatique qui permet d’exécuter plusieurs systèmes d’exploitation indépendants sur une même machine physique. Cependant, et vous le savez bien, il existe de nombreuses solutions de virtualisation dont on entend bien plus parler. Parmi ces dernières, nous pourrions citer le géant VMWare ou bien Hyper-V de Microsoft ou encore OpenVZ. Toutes ces solutions sont pourtant bien différentes entre elles et par rapport à Xen.

La spécificité de Xen et ce qui a créé son succès est lié à son fonctionnement. Le projet Xen a été le premier a implémenter la paravirtualisation. Mais, qu’est ce que la paravirtualisation ? La paravirtualisation consiste à interposer entre un système d’exploitation un hyperviseur qui sera l’interface primaire entre le matériel et le reste des couches applicatives. Cette hyperviseur aura donc un accès privilégié aux ressources physiques et pourra ensuite en déléguer une partie aux systèmes d’exploitation virtualisés.

Donc, si vous avez bien compris, vu que l’hyperviseur est l’interface entre les ressources physiques et les couches applicatives, il n’y a plus de notion de système d’exploitation invité et système d’exploitation hôte comme cela peut être le cas chez les autres. Tout est virtualisé ! De plus, les systèmes d’exploitation ont été modifiés pour prendre en compte la présence de l’hyperviseur. Un petit schéma récapitualtif (fait par Romain Hinfray, jedi des schémas sur PowerPoint) :

virtus

L’hyperviseur Xen a pour objectif d’être le plus minimaliste possible. Pas question de se connecter à l’hyperviseur via une console SSH ou via une console applicative. L’hyperviseur est un point très sensible en termes de sécurité. Si vous controlez l’hyperviseur, vous controlez tout ! Ouai mais c’est bien… mais comment je fais pour administrer mon plateforme de virtualisation ?! Et bien comme je l’ai dit précédemment, l’hyperviseur a pour rôle de distribuer une partie de ses accès au matériel vers les autres systèmes d’exploitation. Dans le cas de Xen, un domaine, nommé domaine 0, aura de nombreux privilèges permettant notamment de controler l’accès aux ressources physiques, l’exécution des autres systèmes d’exploitation et le réglage des paramètres de l’hyperviseur.

Quel avantage a donc la paravirtualisation ? La vitesse, beaucoup de vitesse ! Au lieu de devoir émuler X architectures matérielles, on va en émuler aucune car les systèmes d’exploitation auront été modifiés pour prendre en compte le fait qu’ils s’exécutent au dessus d’un hyperviseur. Pour vous donner un ordre d’idée, un système d’exploitation s’exécutant au dessus de Xen accuse un perte de l’ordre de 5% alors qu’un système d’exploitation s’éxecutant au dessus de VMWare accuse une perte de l’ordre de 20% jusqu’à 80% !