Installation de Xen sur Debian Lenny

Xen_logoJ’ai déjà eu l’occasion de parler de Xen à de multiples reprises sur ce blog. Je n’ai pas tellement eu l’occasion de proposer de tutoriels pratiques par rapport à cet outil. Je cède certes un peu à la facilité mais je pense que ce type de billet peut être utile.

Pour ce tutoriel, je vais supposer que vous avez une installation neuve de Debian Lenny. Lorsque j’ai testé ce tutoriel, j’ai effectué cette installation sur un serveur dédié OVH. Je vais également supposer que vous êtes en 64-bits. Si vous ne l’êtes pas, il va juste falloir adapter le nom des paquets à votre version. On va tout d’abord installer les paquets liés à Xen et au réseau.

apt-get install xen-hypervisor-3.2-1-amd64 xen-linux-system-2.6.26-1-xen-amd64 xen-utils-3.2-1 xenstore-utils xenwatch xen-shell xen-tools

Vous ne devriez pas avoir d’erreurs lors de l’installation de ces paquets. Si c’est le cas, je vous laisse vous documenter sur Internet afin de résoudre ces messages d’erreurs. Il y a peu de chance que l’installation fonctionne si vous avez des messages d’erreur, c’est donc le moment de les résoudre.

Nous allons ensuite augmenter le nombre de devices de « loopback ». Ces devices servent à monter les systèmes des fichier des domU (machines virtuelles). IL va donc falloir dire au module loop qu’il est nécessaire d’accepter plus de devices de « loopback ». Nous allons donc devoir rajouter la ligne suivante dans le fichier /etc/modules :

loop max_loop=64

L’installation de Xen à proprement dit est finie. Vous allez devoir vérifier que Grub est bien installé car Xen ne fonctionne pas avec LILO. OVH installe LILO par défaut, vous devez donc faire l’installation de Grub. Je vous laisse remplacer sda par votre disque dur de démarrage.

apt-get install grub

grub-install /dev/sda

update-grub

Vérifiez ensuite le contenu de /boot/grub/menu.lst afin de vous assurer que Xen est bien présent. Vous pouvez ensuite redémarrer votre machine qui devrait booter sur Xen. Si vous n’avez pas eu d’erreur jusqu’ici, tout devrait se passer correctement. Si ce n’est pas le cas, je vous invite à parcourir la mailing-liste de Xen afin de trouver la correspondance de ces erreurs. Pour vérifier que vous êtes bien sur Xen, vous pouvez exécuter uname -r qui vous donnera un noyau Xen si tout est bon.

Voici un rapide aperçu du fonctionnement de l’installation de Xen sur une Debian Lenny. J’évoquerais ultérieurement la configuration réseau et les outils de management.

Blog Orange Business Services Virtualisation (MàJ)

EDIT : Mon article a été publié ce matin. Vous pouvez le consulter en cliquant ici.

orange_logo

Je n’ai pas pour habitude de faire la publicité d’autres blogs mais je vais faire une exception dans ce billet. Je vais également faire une exception car ce billet sera plus court que les autres n’ayant pas matière à développer infiniment sur ce sujet.

Tout d’abord, je suis actuellement en stage dans la filiale virtualisation du groupe Orange Business Services. Si vous voyez donc dans ce billet une publicité déguisée, vous voyez donc juste.

Ensuite, on m’a proposé de reprendre des billets extraits de ce blog sur le blog virtualisation d’Orange Business Services. Vous vous doutez bien que j’ai bien évidemment accepté. Vous allez donc pouvoir retrouver certains articles de ce blog légèrement remixés sur le blog Orange Business Services Virtualisation que vous pourrez consulter ici. Les modifications se situent essentiellement au niveau de la mise en forme car le contexte n’est pas tout à fait le même.

Mon premier article sur ce blog sera donc une reprise du premier article sur la théorie de Popek et Goldberg. La publication est prévue pour le Vendredi 9 Octobre dans la matinée. Pour la suite des événements, je continuerais sans aucun doute à poster des billets ne traitant pas de la virtualisation sur ce blog. Les billets traitant de la virtualisation seront surement postés sur chaque blog.

Je vous invite à consulter ce blog qui a l’occasion de traiter de nombreux sujets liés à la virtualisation et surtout aux produits de virtualisation d’application Citrix ainsi qu’à l’apport de la virtualisation par rapport à la pandémie.

Aller plus loin que Linux : Solaris

Je vais commencer une nouvelle série de billets sur un système d’exploitation alternatif à Linux. Je ne parlerais pas ici de Windows car mes compétences dans ce système d’exploitation sont fortement limités. Je vais parler de Solaris édité par Sun Microsystems. Je m’attacherais dans un premier temps à faire un tour d’horizon des éléments qui rendent intéressant ce système d’exploitation.

solaris-logo

La plupart de mon expérience en administration système s’est faite autour de la distribution Linux Debian. Debian est une distribution qui je trouve particulièrement simple à utiliser. Les développeurs de cette distribution ont pris un soin particulier de simplifier les différentes taches d’administration système. Ceci passe par une gestion claire et simplifiée des répertoires systèmes mais surtout par un gestionnaire de paquets apt-get. J’ai également eu l’occasion d’utiliser CentOS et Red Hat qui sont pratiquement identiques. L’environnement de cette distribution est également largement simplifié avec une gestion simplifiée des répertoires systèmes et divers utilitaires visant à simplifier l’administration système. Je ne pourrais pas dire que le gestionnaire de paquets inclus dans ces distributions simplifie réellement la vie car je n’ai jamais réussi à le faire marcher correctement.

Un inconvénient fréquemment évoqué par rapport à ces distributions est le fait qu’il est plus difficile de comprendre le mécanisme de fonctionnement du système d’exploitation. Ceci est lié à la simplification des taches d’administration et n’est pas forcément un inconvénient a priori. Cette simplification devient problématique lorsqu’il s’agit de faire du débuggage dans un système de production qui présente un comportement bizarre. Les messages d’erreurs standards sont relativement faciles à diagnostiquer mais lorsque le problème est moins « franc », les choses se corsent. J’adhére partiellement à cet inconvénient. Je souhaitais surtout obtenir une connaissance plus approfondie d’un système d’exploitation. Je me suis donc penché sur Sun Solaris.

Lorsque l’on commence à s’intéresser à Solaris, les choses sont relativement claires dès le début, on va avoir à faire à un Unix dit « traditionnel ». Ceci signifie que les repères acquis sous Linux vont disparaitre totalement et que les outils de simplification seront soit incomplets soit inexistants. D’un autre coté, Solaris est un système d’exploitation qui a de nombreux arguments en sa faveur. Vous avez surement entendu parler de ZFS, le système de fichier révolutionnaire. Vous avez peut être entendu parler de DTrace qui vous donne une vision approfondie du fonctionnement de votre système d’exploitation. Vous avez peut être entendu parler des zones Solaris et de l’intégration native de Xen sous le nom xVM. Et encore, nous n’avons parler de SMF. Bref, autant dire que les arguments sont bien présents.

Solaris permet de s’affranchir des outils et couches de simplification d’un système d’exploitation Linux et de se plonger réellement dans la compréhension du fonctionnement d’un système d’exploitation Unix. Afin de réussir à l’utiliser correctement, il va être nécessaire de comprendre les mécanismes internes. Ceci est un chantier tout à fait passionnant que je vous encourage à entreprendre. Vous ne serez pas seul dans cette entreprise, Sun a prévu pour vous des documentations particulièrement claire et explicite que vous trouverez sur leur site. Sun a également prévu un cursus de certification accessible gratuitement sur leur site. Le passage de l’examen est payant par contre pour la modique somme de 40€.

Mais, pourquoi pas Gentoo ou BSD ? Ces distributions permettent certes de comprendre plus en profondeur le fonctionnement d’un système d’exploitation mais n’ont pas les arguments qu’a Solaris ni la documentation ni le parcours de certification. Je ne dis pas que s’intéresser à Gentoo ou BSD n’aurait eu aucun intérêt, loin de là. J’ai juste préféré changer d’orientation vers une distribution, certes un peu moins libre, radicalement différente.

Livre sur le High Performance Computing

Je souhaite partager avec vous une petite trouvaille que j’ai faite dans ma boite mail ce matin. J’ai plus l’habitude de parler de virtualisation et de sécurité sur ce blog mais je vais également avoir l’occasion de vous parler de sujets différents.

Sun met à disposition sur son site Internet un ebook gratuit de la série « For Dummies » traduites en français par « pour les nuls » sur le « High Performance Computing » ou HPC. Mais qu’est ce que le HPC me diriez-vous ? Le HPC se traduit en Français par « Calcul à Haute Performance ». Il s’agit du domaine de l’informatique qui traite habituellement des superordinateurs dont l’objectif est d’effectuer des calculs massivement parallèles. On connait le HPC à travers les superordinateurs Cray ou Deep Blue d’IBM qui avait battu le champion du monde d’échecs.

hpcdummies

Vous pouvez vous procurer cet ebook gratuitement sur le site de Sun en cliquant ici.

Ce livre fait un tour d’horizon des technologies de HPC et tente d’expliquer comment ces technologies fonctionnent. Je ne l’ai pas encore lu en intégralité mais le peu que j’en ai lu est particulièrement intéressant. Ce livre est légèrement orienté vers les technologies Sun et AMD mais ce n’est pas systématique. Si vous n’êtes pas anglophone, c’est le moment ou jamais de s’y mettre.

Un peu de QoS avec Pfsense

J’ai déjà eu l’occasion de vous parler de Pfsense dans un précédent billet. Pour rappel, il s’agit d’une distribution basée sur FreeBSD qui a pour objectif de founir différents services réseau. Cette distribution brille par sa simplicité d’utilisation et par son nombre conséquent de fonctionnalités.

pfsense-logo

Un des grands avantages de Pfsense est de disposer d’un système de gestion de paquets. Ce système permet de pouvoir facilement rajouter des applications tierces.

Dans notre cas, nous avons un LAN qui contient un certain nombre de postes. Le problème de ce LAN est qu’il a la fâcheuse tendance de consommer toute notre bande passante. Nous allons donc devoir implémenter une solution de QoS. La QoS est un ensemble de techniques qui consiste à mettre une priorité à du trafic et à contrôler la bande passante allouée à ce trafic. Il existe bien sûr de nombreux boitiers commerciaux qui sont capables d’assurer ces fonctionnalités mais leur prix est pour le moins prohibitif.

Le trafic que nous aurons à gérer est essentiellement du trafic web (HTTP et HTTPS). Les contraintes sur la QoS sont qu’il va être nécessaire de plafonner le débit utilisable à 10Mbit/s et d’éviter qu’un utilisateur puisse saturer toute la bande passante.

Squid semble être la solution idéale pour faire ce que nous avons à faire. Etant donné que nous allons traiter que des flux web, le proxy web semble être la meilleure solution. Pfsense est capable de faire de la QoS sur des paquets  mais les options ne sont pas aussi poussées que lors de l’utilisation d’un proxy. Avec la QoS standard, nous n’aurions pas pu garantir qu’un utilisateur ne puisse pas saturer toute la bande passante par exemple.

On va donc installer le package Squid :

pfsensepackages

Une fois le package Squid installé, nous allons pouvoir paramétrer le proxy web que nous venons d’installer. Vous devriez pouvoir y accéder dans le menu services comme illustré dans l’image suivante :

pfsenseproxy

Dans la page principale de configuration, nous allons pouvoir configurer les différentes options de notre proxy. Il est intéressant de vérifier les interfaces sur lesquelles il va répondre et le port d’écoute. Il faut ensuite définir les plages d’IP autorisées à utiliser ce proxy dans l’onglet « Access Control ». Nous allons ensuite pouvoir nous attarder sur la configuration de la QoS.

Tout d’abord, il faut se rendre dans l’onglet « Traffic Management » dans lequel nous allons pouvoir effectuer tous nos paramétrages. Nous allons pouvoir paramétrer la bande passante maximale utilisable par les utilisateurs de notre proxy en renseignant le champ « Overall Bandwidth Throttling ». Afin d’éviter qu’un utilisateur puisse consommer toute la bande passante, nous allons donc paramétrer une limitation par utilisateur. Nous allons supposer qu’il n’y a jamais plus de 3 utilisateurs qui essayent de consommer beaucoup de bande passante. Nous pouvons donc mettre 3Mbit/s. L’image suivante résume le paramétrage :

pfsensethrottling

Une fois les paramètres pris en compte, nous aurons un proxy web qui régulera et limitera la bande passante utilisé par nos utilisateurs qui passeront par ce proxy. Nous avons également la possibilité de rajouter des fonctions de filtrage web avec le plugin SquidGuard et une blacklist adaptée. Il est également possible de mettre le proxy web en mode transparent en cochant une option dans les options générales du proxy.

Terminologie Xen

Xen_logoAprès une longue série d’articles plutôt théoriques sur la virtualisation (Anneaux système et  Popek & Goldberg), je vais revenir sur le projet Xen afin de pouvoir toucher un public plus large. J’ai déjà eu l’occasion de faire un article sur le projet Xen. Si vous souhaitez avoir un aperçu de ce projet, je vous invite à relire l’article en question.

Par le biais de ce billet, je souhaite faire un point sur tous les termes qui sont utilisés très fréquemment lorsque nous sommes amenés à parler du projet Xen. J’ai essayé de faire une première liste. Si jamais vous en voyez d’autre, n’hésitez pas à me le faire remarquer et je les rajouterais ici.

Domaine – Un domaine est une machine virtuelle. Le projet Xen a choisi de s’affranchir de la notion de machine virtuelle car cela avait tendance à renvoyer vers les techniques conventionnelles de virtualisation totale.

  • Domaine privilégié ou dom0 : Le domaine 0 qui correspond au système d’exploitation installé initialement sur le matériel physique. Ce domaine dispose de tous les outils pour gérer les paramètres de l’hyperviseur et l’état des autres domaines
  • Domaine non privilégié ou domU : Il s’agit d’un domaine standard qui correspond à la définition conventionnelle de la machine virtuelle mais transposée dans le monde de la paravirtualisation.

Hyperviseur – L’hyperviseur est la première interface entre le matériel et les couches applicatives. Il n’est pas positionné par dessus un système d’exploitation hôte. VMWare utilise le terme d’hyperviseur alors qu’il s’agit d’une application inclue dans un système d’exploitation hôte. Je n’utiliserais que la définition de l’hyperviseur au sens de Xen sur ce blog.

PV – Il s’agit là de l’abréviation de paravirtualisation. Il sera souvent évoqué la notion de « domaine PV » ce qui correspond à un domaine interfacé avec l’hyperviseur via l’API Xen.

HVM (Hardware Virtual Machine) – Le HVM est l’appellation de la virtualisation matérielle assistée dans le projet Xen. Le projet Xen est donc capable de faire de la paravirtualisation et de la virtualisation matérielle assistée. Typiquement, le HVM permet d’exécuter des domaines Windows. Le module de virtualisation matérielle assistée est une version modifiée de QEMU.

VIF (Virtual Interface) – Une VIF est une interface réseau virtuelle par opposition aux interfaces réseau physiques. Ces interfaces servent à mettre à disposition une interface réseau aux domaines. Les interfaces virtuelles seront ensuite reliées par divers méthodes (Pont, NAT, Routage) aux interfaces physiques.

XM (Xen Management) – Xen Management est le jeu d’outils qui permettent de passer des commandes à l’hyperviseur au niveau du dom0. Il permet notamment d’exécuter, de mettre en pause et de couper les différents domaines présents sur la machine. Pour plus d’informations, n’hésitez pas à saisir la commande « xm help ».

GPLPV – Les drivers GPLPV sont les drivers qui permettent d’ajouter des extensions de paravirtualisation à des domaines HVM. L’objectif de ces drivers est d’améliorer les performances des domaines HVM. Les drivers GPLPV sont comparables aux VMWare Tools.

Au final, je pense avoir fait un petit tour des termes les plus utilisés dans les ressources évoquant le projet Xen. J’espère que ce billet permettra à quelques personnes de mieux comprendre le projet Xen et de, pourquoi pas, se lancer dans une installation.