11
KOUOTOU Aboubakar Sidiki RESUME Pour développer leur activité, les entreprises ont besoin de contrôler les coûts, réduire les risques et favoriser la flexibilité dans le choix des solutions informatiques. Le déploiement rapide des environnements de tests, l'évaluation et la comparaison de plusieurs logiciels sans investissements supplémentaires sur le matériel, la mise en œuvre rapide et en production de nouveaux services à la demande; ce sont là quelques possibilités que nous offre la virtualisation. Le compromis est donc désormais trouvé entre faible coûts et amélioration de l'agilité des organisations qui ont, grâce à la consolidation des ressources logiciels et au partage des ressources matérielles que leur offre la virtualisation, une solution pour réduire les coûts et améliorer leur productivité. Penser, planifier et mettre en œuvre un projet de virtualisation des serveurs, est une tâche ardue pour les administrateurs système car les outils et les concepts ici sont divers et pas encore standardisés. L'objectif de ce mémoire est donc de proposer une méthode simple, permettant la conception et le déploiement d'un système virtualisé, l'intégration d'applications d'entreprise sur des machines virtuelles accessibles par le réseau et enfin l'observation des performances et l'évaluation des coûts d'entretien par rapport à un système "normal". Le travail effectué s'appuie sur les technologies de virtualisation. Nous proposons une méthode de virtualisation, que nous utilisons pour mettre en place notre système virtualisé sur une machine linux dont les outils d'administration du réseau et du stockage, nous ont servi de support pour le déploiement de nos machines virtuelles. Certaines de celles-ci hébergent des applications web de GED et d'ERP auxquelles l'utilisateur final a un accès transparent via le réseau. Mots clés : virtualisation, hyperviseur, système hôte, système invité, consolidation des serveurs VIRTUALISATION ET INTEGRATION DES APPLICATIONS D’ENTREPRISE EN ENVIRONNEMENT DE PRODUCTION

Virtualisation et intégration des applications d'entreprise en environnement de production

Embed Size (px)

Citation preview

Page 1: Virtualisation et intégration des applications d'entreprise en environnement de production

KOUOTOU Aboubakar Sidiki

RESUME Pour développer leur activité, les entreprises ont besoin de contrôler les coûts, réduire

les risques et favoriser la flexibilité dans le choix des solutions informatiques. Le déploiement

rapide des environnements de tests, l'évaluation et la comparaison de plusieurs logiciels sans

investissements supplémentaires sur le matériel, la mise en œuvre rapide et en production de

nouveaux services à la demande; ce sont là quelques possibilités que nous offre la

virtualisation. Le compromis est donc désormais trouvé entre faible coûts et amélioration de

l'agilité des organisations qui ont, grâce à la consolidation des ressources logiciels et au

partage des ressources matérielles que leur offre la virtualisation, une solution pour réduire les

coûts et améliorer leur productivité. Penser, planifier et mettre en œuvre un projet de

virtualisation des serveurs, est une tâche ardue pour les administrateurs système car les outils

et les concepts ici sont divers et pas encore standardisés.

L'objectif de ce mémoire est donc de proposer une méthode simple, permettant la

conception et le déploiement d'un système virtualisé, l'intégration d'applications d'entreprise

sur des machines virtuelles accessibles par le réseau et enfin l'observation des performances et

l'évaluation des coûts d'entretien par rapport à un système "normal".

Le travail effectué s'appuie sur les technologies de virtualisation. Nous proposons une

méthode de virtualisation, que nous utilisons pour mettre en place notre système virtualisé sur

une machine linux dont les outils d'administration du réseau et du stockage, nous ont servi de

support pour le déploiement de nos machines virtuelles. Certaines de celles-ci hébergent des

applications web de GED et d'ERP auxquelles l'utilisateur final a un accès transparent via le

réseau.

Mots clés: virtualisation, hyperviseur, système hôte, système invité, consolidation des

serveurs

VIRTUALISATION ET INTEGRATION DES APPLICATIONS

D’ENTREPRISE EN ENVIRONNEMENT DE PRODUCTION

Page 2: Virtualisation et intégration des applications d'entreprise en environnement de production

ABSTRACT Organizations need to control costs, improve quality, reduce risks and increase

business agility. These elements are essential for business' success. Virtualization allows the

rapid establishment of development systems for the creation of custom-software, the ability to

quickly set up test environments, the capability to provide alternate software solutions and

compare them without extensive hardware investments, and many more features. Lower costs

and business flexibility are no longer trade-offs. By enabling IT resources to be pooled and

shared, enterprises are provided with the ability to reduce costs and improve overall IT

performances. However, a bad implementation of virtualization can lead companies to

catastrophic losses.

The aim of this dissertation is to avoid this by on the one hand help CEOs to have a

view of a virtualization project, and on the other hand provide system administrators with a

simple "step by step" virtualization guide. We accomplish this by designing and setting up a

virtualized system, deploying GED and ERP applications on accessible network virtual

machines, and evaluating costs of the virtualized system compared to a "normal" one.

Our work is based on virtualization technologies. Linux systems networking and

storage administration utilities are used to deploy and configure enterprise applications on

virtual machines for a transparent network access.

Key words: virtualization, hypervisor, host system, guest system, servers’

consolidation

1. INTRODUCTION ˝ La virtualisation est l’ensemble des techniques matérielles et/ou logicielles qui

permettent de faire fonctionner sur une seule machine plusieurs systèmes d’exploitation

et/ou plusieurs applications, séparément les uns des autres, comme s’ils fonctionnaient

sur des machines physiques distinctes ˝ [WIKIV 09].

La virtualisation offre ainsi de nouvelles opportunités aux entreprises dans la gestion

et la mise en œuvre de leurs infrastructures réseaux et la configuration de leur parc de

serveurs. En effet, les objectifs de toute technologie de virtualisation sont les suivants:

Ajouter une couche d'abstraction entre le matériel et les applications;

Page 3: Virtualisation et intégration des applications d'entreprise en environnement de production

Favoriser la réduction des coûts de maintenance et réduire la complexité de

l'administration système;

Augmenter la sécurité et la fiabilité par l'isolation des ressources ;

Optimiser l'utilisation des ressources.

On peut donc comprendre pourquoi malgré leur assez récente arrivée à maturité, les

produits de virtualisation ont rapidement conquis le monde de l'administration système et

des infrastructures d'hébergement.

Notre travail aura donc pour but de : - Concevoir et proposer une méthode de virtualisation des serveurs pour une entreprise;

- Implémenter un prototype qui permettra de valider cette méthode.

Pour notre prototype, il s’agira de déployer sur une même ressource des

environnements de travail hétérogènes accessibles en temps réel via le réseau et des

applications d'entreprise (ERP et GED) dans des environnements virtualisés.

Notre document est structuré comme suit :

La section 1 qui est une introduction est suivie de la section 2 qui explique le contexte de

notre travail et définit clairement la problématique du sujet traité.

La section 3 est une étude approfondie des différents concepts théoriques et techniques

liés à la virtualisation. Il permettra aussi de scruter les différents produits du marché et

débouchera sur le choix d'une solution à utiliser pour nos besoins. Nous terminerons cette

partie par une brève présentation des architectures web, qui sont celles des applications que

nous avons déployées.

La section 4 définit clairement une méthode de virtualisation et détaille les différentes

étapes de la mise en œuvre de notre serveur virtualisé puis fait une analyse des résultats

obtenus.

Enfin nous achèverons notre travail par une synthèse du travail effectué, les difficultés

rencontrées et les perspectives d'évolution de notre méthode de virtualisation.

2. CONTEXTE ET PROBLEMATIQUE

Avec l’arrivée à maturité des outils libres de virtualisation, il est nécessaire de définir

une nouvelle offre de services d’administration systèmes pour les entreprises. Cependant, la

définition d’une offre nécessite une maîtrise technique des outils associés. A l’heure actuelle,

très peu d’administrateurs système ont une connaissance poussée des outils de virtualisation

Page 4: Virtualisation et intégration des applications d'entreprise en environnement de production

au Cameroun. En environnement serveur, les systèmes d’exploitation linux sont très utilisés

dans les PME et PMI. D’où la nécessité de travailler avec des outils libres fonctionnant avec

les systèmes GNU/Linux, eux aussi libres. De plus la mise sur pied d’un serveur virtualisé

nécessite la prise en compte des ressources matérielles et des ressources logicielles à

déployer.

Traditionnellement, l'usage était de consacrer une machine physique à un service

(messagerie, DHCP, Intranet, etc.), tant pour des raisons pratiques (associer une machine à un

rôle unique) que pour la sécurité (séparation des services). Cette architecture favorise un

déséquilibre notoire dans l'utilisation des serveurs avec des serveurs surchargés (messagerie)

et des serveurs sous-utilisés (DNS). Dans la plupart des cas une sous utilisation des

ressources serveurs est à noter. Le problème est donc de proposer un modèle de virtualisation

des serveurs pour une entreprise favorisant à la fois un gain sur le plan financier et des

performances proches des systèmes non-virtualisés sur un plan technique.

Aussi devrons-nous mettre en oeuvre une méthode de virtualisation des serveurs

d’entreprise. Cette méthode sera validée par un prototype. Nous déploierons aussi des

applications libres d’ERP (open ERP) et de GED (Alfresco) très demandées en entreprise

actuellement pour présenter les résultats de notre travail.

3. VIRTUALISATION : ÉTAT DE L’ART Depuis 2006, les deux principaux fabricants de processeurs X86 que sont Intel et

AMD ont mis sur pied un jeu d’instructions destiné aux outils de virtualisation. Généralement

désignées extensions de virtualisation, ces instructions sont appelées VT (Virtual

Technology) [NSL 06] chez Intel et SVM (Secure Virtual Machine) chez AMD [AMD 06].

Ces outils permettent aux machines virtuelles d’approcher les performances de 100% par

rapport aux systèmes natifs.

3.1 Définition des concepts

3.1.1 Virtualisation

Les définitions du concept de virtualisation sont nombreuses. Cependant quelques

soient la technologie ou l'objectif final visé, la virtualisation permet l'ajout d'une couche

d'abstraction entre le matériel et les applications. Qu’il s’agisse des ressources physiques d'un

serveur ou d'un réseau, des disques de stockage d'un ensemble de machine, des techniques et

outils de virtualisation existent. Toutefois, dans le cadre de notre étude (virtualisation des

Page 5: Virtualisation et intégration des applications d'entreprise en environnement de production

serveurs), nous pouvons définir la virtualisation comme le moyen de faire fonctionner sur une

seule machine physique, plusieurs systèmes d’exploitation ou plusieurs applications.

3.1.2 Hyperviseur

Un hyperviseur est une couche logicielle qui abstrait les ressources physiques de la

machine, permettant ainsi l'exécution de plusieurs systèmes d'exploitation sur la même

machine. L'hyperviseur est installé sur le système d'exploitation hôte (ou dom0, ou host) et

contrôle le partage des ressources avec les systèmes invités (ou domU, ou guest). Plusieurs

technologies de virtualisation se basent sur un hyperviseur pour émuler le matériel du système

hôte.

3.1.3 Domaine

Dans la terminologie des systèmes à hyperviseur, un domaine est une machine

virtuelle, c'est-à-dire un système d'exploitation s'exécutant sur des ressources virtualisées.

Ainsi on distingue deux sortes de domaines:

Le domaine hôte (ou dom0, ou host) qui est le système exécutant l'hyperviseur ;

Le domaine invité (ou domU, ou guest) qui est une instance de machine virtuelle.

3.2 La virtualisation des serveurs

Plusieurs techniques peuvent être utilisées pour la virtualisation des serveurs. Les plus connues sont l’isolation, l’émulation et les systèmes à hyperviseurs.

3.2.1 L’isolation L'isolation (aussi appelé cloisonnement) est une technique qui intervient au sein d’un

même système d'exploitation. Elle permet de séparer un système en plusieurs contextes ou environnements d’exécution. Chacun d'entre eux est régi par l'OS hôte, mais les programmes de chaque contexte ne sont capables de communiquer qu'avec les processus et les ressources associés à leur propre contexte [SMIV 08]. Ce n'est donc pas de la virtualisation à proprement parler. Cependant, l'isolation peut rendre les mêmes services que la virtualisation, notamment grâce à la forte isolation des contextes logiciels, qui peut donc permettre par exemple de faire tourner diverses versions d'une même application sur une même machine. Toutefois il est impossible de faire tourner plusieurs types de systèmes d’exploitation sur un même matériel physique. L’émulation vient donc palier à ce défaut.

3.2.2 L’émulation

Un émulateur est un logiciel permettant de simuler un ou plusieurs OS sur le système

d'exploitation de base [LB 08]. L'émulateur est une machine virtuelle installée sur le système

hôte pour supporter l'exécution d'OS invités. Le système invité n'a pas besoin d'une

Page 6: Virtualisation et intégration des applications d'entreprise en environnement de production

quelconque modification pour s'exécuter sur la machine virtuelle. Cette dernière doit simuler

le fonctionnement du CPU et de la RAM afin de permettre à l'invité de tourner de manière

transparente. L'émulateur n'étant en réalité qu'un programme utilisateur sur l'hôte, il peut être

démarré ou arrêté.

Pour réaliser sa tâche, l'émulateur doit interpréter tous les exécutables des invités pour

le processeur du serveur physique disponible. Cette interprétation est coûteuse en termes de

performances et constitue un handicap pour les technologies de virtualisation par émulation.

Pour améliorer la performance des émulateurs, un nouvel outil est né : l'hyperviseur.

3.2.3 Les systèmes à hyperviseur

Bien qu'étant une évolution des émulateurs mais fonctionnant à un niveau plus bas, ils

proposent une approche différente basée sur un contrôle total du matériel par l'hyperviseur. En

effet au démarrage du système d'exploitation hôte, c'est l’hyperviseur qui se démarre en

premier puis passe la main au système pour le démarrage des services et du démon de

l’hyperviseur. Ce dernier reprend alors le contrôle du matériel et se charge de démarrer le

système d'exploitation complet. L'hyperviseur a un accès exclusif au matériel et tous les

systèmes d'exploitation installés, qu'il s'agisse d'un hôte ou d'un invité, passe par lui pour

avoir accès au matériel. Pour permettre une amélioration des performances afin de se

rapprocher de celles des systèmes natifs, deux modes de fonctionnement existent : le mode

paravirtualisé et le mode complètement virtualisé.

La virtualisation complète

La virtualisation complète (ou full virtualization) est l'émulation par l'hyperviseur de

toutes les ressources physiques du serveur. Il présente donc du matériel virtuel aux systèmes

invités qui peuvent dès lors s'exécuter sans jamais se rendre compte qu'ils sont dans un

environnement virtuel.

Figure 1: Système de virtualisation complète

Page 7: Virtualisation et intégration des applications d'entreprise en environnement de production

La paravirtualisation

La paravirtualisation fonde son principe sur l'utilisation de systèmes invités au noyau

modifié. Cette modification a pour but d'y incorporer des pilotes spécifiques pour l'accès

concurrent aux ressources à travers l'interface que leur présente l'hyperviseur. Plusieurs

noyaux des systèmes GNU/linux sont patchés pour le support des pilotes paravirtualisés. En

permettant un accès direct au matériel, la paravirtualisation offre des performances proches

de celles des OS natifs. Mais la nécessité d'utiliser un OS au noyau modifié exclut donc

l'utilisation des systèmes fermés comme Microsoft Windows en mode paravirtualisé.

Figure 2 : Système Paravirtualisé

Conformément à nos objectifs de départ, les systèmes à hyperviseur sont les mieux adaptés pour la définition d’une méthode de virtualisation. Nous allons donc aborder les outils utilisant cette technique.

3.3 Les outils de virtualisation

Plusieurs outils de virtualisation existent sur le marché libre et base essentiellement leurs technologies sur l’une des trois techniques étudiées précédemment. Parmi ceux qui utilisent les hyperviseurs XEN et KVM sont les plus utilisés du marché open source. Nous allons dresser un tableau comparatif des deux solutions.

XEN KVM Hyperviseur externe au noyau linux Module du noyau linux

Gestionnaire de processus propre Gestionnaire de processus de linux Mature et utilisé en production

En développement mais intégré dans la future version de RHEL (un leader des systèmes GNU/Linux)

Problèmes de mise à jour (compatibilité avec les versions du noyau)

Mise à jour simple car module du noyau

Tableau 1 : Comparaison de Xen et KVM

Page 8: Virtualisation et intégration des applications d'entreprise en environnement de production

Nous utiliserons KVM pour la simplicité des mises à jour et le support de Redhat.*

Il faut associer à ces hyperviseurs plusieurs outils d’administration :

virt-install et virsh : le premier sert à l’installation et le second à la gestion des machines virtuelles (VMs) en ligne de commande

virt-manager est un utilitaire graphique pour l’installation et la gestion des VMs.

4 MISE EN OEUVRE

4.1 Méthode de virtualisation

Les différents points clés pour mettre en œuvre un serveur virtuel sont inclus

dans notre méthode que nous déclinons en 5 principales étapes :

1. Planifier l'architecture matérielle et logicielle

- Identification des serveurs à déployer ;

- Inventaire des ressources matérielles disponibles et/ou nécessaires ;

- Configuration de l'infrastructure de stockage ;

- Plan d'adressage et de nommage pour les machines virtuelles.

2. Déployer le domaine zéro (dom0)

- Choisir l'outil de virtualisation et les outils d'administration associés ;

- Installer le serveur VNC et/ou activer SSH pour l’accès distant;

- Sécurité du système (SELinux) ;

- Configurer le réseau avant le déploiement des guests.

3. Déployer un serveur d’infrastructure (images des disques (serveur de

fichiers), DHCP, DNS, …)

4. Déployer les machines virtuelles (avec un utilitaire graphique ou en ligne

de commande)

5. Définir une architecture de backup du système.

Cette Nous allons dans la suite essayer de décrire chaque étape de la méthode

4.2 Prototype

Nous allons suivre les étapes de la méthode proposée. Nous commençons par présenter le plan de virtualisation et le réseau virtuel.

Page 9: Virtualisation et intégration des applications d'entreprise en environnement de production

domU Nom VM VCPUs RAM min/max (MB)

OS Type de virtualisation (para ou full)

Rôle Applications nécessaires

Nom VL Espace disque (GB)

Adresse IP / MAC

dom0 Hypervisor 2 256/512 FC9 Hyperviseur KVM

KVM, Qemu 10 192.168.0.253/ 00:23:54:C2:81:30 (NIC physique)

dom1 isoServerVM

1 256/512 CentOS 5.1

full Serveur d'images et serveurs dhcp

dhcpd, vsftpd Iso-server 40 192.168.0.252/ 00:23:54:C2:80:01

dom2 Alfresco 1 256/512 Centos 5.1

para Serveur de GED

Alfresco labs 3 final, tomcat 6, MySQL server

alfresco 10 192.168.0.251/ 00:23:54:C2:80:02

dom3 ERP 1 256/512 Centos 5.1

para Applications d'ERP

Openerp-sever, openerp-web, paquetages pythons associés PostgreSQL 8.1

Erp-VL 40 192.168.0.250/ 00:23:54:C2:80:03

Dom4 winXP 1 192/256 Windows XP

full Tester le fonctionnement de XP virtualisé

Winxp-VL

5 192.168.0.248/ 00:23:54:C2:80:04

Tableau 2: Plan de virtualisation du serveur

Page 10: Virtualisation et intégration des applications d'entreprise en environnement de production

Figure 3 : Architecture du réseau virtuel

5 CONCLUSION Bilan

Le besoin de réduire les coûts de maintenance et d’entretien des serveurs, la nécessité de

réduire les temps de déploiement et d’intégration des applications par la fourniture

d’applications déjà déployées et prêtes à l’emploi (virtual appliances), ont été les principales

sources de motivations de ce travail.

En étudiant le concept de virtualisation et les différents contours techniques associés,

nous avons pu concevoir et proposer une méthode de virtualisation des serveurs que nous

avons utilisée par la suite pour implémenter un serveur virtuel. Cette démarche permet de

mettre en œuvre de façon simple et efficace un serveur virtuel et pourra par conséquent servir

de support pour le suivi des projets de consolidation des serveurs de ses clients ou pour la

fourniture de machines virtuelles prêtes à l’emploi.

Perspectives

L’administration système nécessite en permanence l’automatisation des tâches de

routine pour plus d’efficacité. Il est alors nécessaire pour rendre notre méthode plus efficace

et favoriser un gain de temps conséquent dans la mise en œuvre d’une plateforme virtualisée :

- De mettre sur pied des scripts de déploiements pour les autres distributions linux

majoritairement utilisés par les PME (Ubuntu, Debian) et des scripts permettant la

programmation du démarrage des machines virtuelles.

- De détailler les méthodes de migrations à chaud

Page 11: Virtualisation et intégration des applications d'entreprise en environnement de production

- D’implémenter et de déployer une virtual appliance.

6 REFERENCES

[AMD 06] AMD. 2006. AMD64 Architecture Programmer’s Manual, Volume 2 :

System Programming. AMD, septembre 2006, chapitre 15, pp 355–

412.

[LB 08] Lucas Bonnet, 2008. Etat de l’art des solutions libres de virtualisation pour

une petite entreprise. Bearstech. 98 pages.

[NSL 06] Gil NEIGER, Amy SANTONI, Felix LEUNG, et al. Intel Virtualization

Technology : hardware support for efficient processor virtualization. Intel

Technology. Journal, août 2006.

[SMIV 08] Smile. 2008. Livre blanc : Virtualisation [en ligne]. [Version 1.0, Consulté

le 15-04-2009]. Disponible sur internet : http://www.smile.fr

[WIKIV 09] Virtualization [en ligne]. [Wikipedia]. [Consulté le 10-04-2009].

Disponible sur internet : http://en.wikipedia.org/wiki/Virtualization.