Académique Documents
Professionnel Documents
Culture Documents
Xavier Buche
UFR IEEA
Universite Lille 1
Cit Scientifique - Bt. M5
59655 Villeneuve d'Ascq
Mohammed Khabzaoui
UFR de mathmatiques
Universite Lille 1
Cit Scientifique - Bt. M2
59655 Villeneuve d'Ascq
Sbastien Fillaudeau
CRI
Universite Lille 1
Cit Scientifique - Bt. M4
59655 Villeneuve d'Ascq
Rsum
Le nouveau paradigme du cloud computing est en ce moment sur toutes les lvres. Tout le monde en
parle, mais bien peu connaissent les rouages de son fonctionnement. Et c'est la consquence de l'une de
ses caractristiques attendues : celle d'tre opaque. L'utilisateur n'a pas connatre les dtails de sa mise
en uvre.
Cet article s'adresse aux administrateurs systmes et aux informaticiens curieux, avec l'ambition de leur
faire entrevoir la machinerie intime d'un nuage et de le leur montrer sous un angle de vue inhabituel :
celui de l'intrieur.
Mais des nuages, il en existe moult varits. Celui dont nous parlons dans ces lignes est de type
infrastructure. En d'autres termes, les choses manipules en son sein sont les pendants virtuels d'objets
du monde rel (serveurs, rseaux, routeurs, etc.).
En outre, bien que les services de cloud public soient lgion, l'Universit Lille 1 a considr que sa taille
et ses besoins taient suffisants pour projeter la cration d'un cloud priv.
De nombreuses solutions logicielles permettent de mettre en place ce type de nuage. Le choix s'est port
sur OpenStack, et l'essentiel de ce texte aborde les principaux aspects de sa configuration.
L'objet de cet article est ainsi de partager notre exprience acquise lors des diffrentes phases qui
conduisent la mise en production d'une plate-forme de cloud priv base sur OpenStack. En particulier,
plutt que de borner nos explications des gnralits l'intrt limit, nous voquons les raisons qui
nous ont pousss faire tel ou tel choix, ainsi que les pierres d'achoppement auxquelles nous avons t
confronts.
Mots-clefs
openstack, cloud priv, IaaS, virtualisation, mutualisation, systme, rseau
1 Introduction
L'augmentation continue des performances et des capacits des serveurs physiques ainsi que le
dveloppement des techniques de virtualisation ont permis ces dernires annes la consolidation des
infrastructures informatiques. Cette tendance de fond permet de tirer les bnfices d'une mutualisation qui
peut se faire soit dans le cadre d'une externalisation en recourant aux services d'hbergement
commerciaux (Amazon, Google, Microsoft, OVH, etc.), soit en interne pour un tablissement d'une taille
suffisante, comme c'est le cas de l'Universit Lille 1, ou bien encore dans un cadre multi-tablissements
(Universit de Lille en perspective).
Pour amplifier la dynamique de mutualisation des serveurs informatiques au niveau de Lille 1 et rpondre
aux nouveaux besoins, un groupe de travail a t constitu en 2013 afin d'tudier les nouvelles solutions
logicielles qui permettent de proposer un service d'hbergement de serveurs virtuels grande chelle de
type IaaS (Infrastructure as a Service) et pouvoir ainsi prparer l'volution de l'offre de service
d'hbergement mutualise. La solution OpenStack s'est rapidement impose.
Sbastien Fillaudeau, Mohammed Khabzahoui et moi-mme, tous trois ingnieurs systmes l'Universit
de Lille 1, nous sommes alors proposs de mettre en place cette nouvelle plate-forme et de l'administrer.
Pour ma part, ce projet a fait l'objet d'un mmoire d'ingnieur du CNAM.
2 Objectifs
LUniversit Lille 1 doit fournir ses utilisateurs un nouveau service simplifi de mise disposition de
machines virtuelles la demande, c'est--dire une plate-forme de cloud IaaS.
La mise en place d'un cloud priv offre plusieurs avantages :
mutualiser des ressources matrielles parpilles et sous ou sur-utilises
permettre aux utilisateurs (enseignants, chercheurs, personnels des composantes, tudiants) de
grer eux-mmes leurs machines virtuelles (cration, suppression, allocation de ressources, etc.)
Un certain nombre de critres doivent orienter les dcisions prises et les choix raliss :
allocation de ressources immdiate et la demande
supervision centralise de l'infrastructure et facturation des utilisateurs en fonction de mtriques
prcises
gestion pousse des autorisations (droits d'accs, dlgations, etc.)
ergonomie de l'interface utilisateur
3 Solution logicielle
Une fois choisie, une plate-forme de cloud priv ne peut pas tre remplace facilement par une autre.
L'expertise de sa mise en place, son administration, les dveloppements engendrs ncessitent un
investissement consquent.
La prennit de cet engagement est un critre de dcision essentiel. Et OpenStack constitue, de ce point
de vue, la solution libre offrant les meilleures garanties : la plupart des grands noms du secteur de
l'informatique participent ce projet.
OpenNebula , Nimbus, Cloudstack, Stratuslab, Eucalyptus sont d'autres solutions libres de cloud priv.
Elles sont toutes clipses par OpenStack. La raison ? En quelques annes, OpenStack s'est impos
comme un standard de fait. Et mme si certaines des ces alternatives, comme Cloudstack, sont trs
abouties, il est peu probable qu'elles lui fassent un jour de l'ombre.
Dans l'avenir, les interactions entre des plates-formes de cloud diffrentes vont avoir tendance se
multiplier. Le cloud computing est donc un domaine de l'informatique qui, l'instar des rseaux, favorise
l'mergence de technologies convergentes. En d'autres termes, OpenStack risque fort, dans quelques
annes, d'tre au cloud computing ce qu'IP est au rseau Internet : incontournable.
Dans ces conditions, les produits commerciaux comme VMware Vcloud ou Microsoft Azure ont un rel
handicap, car ils tendent emprisonner leurs clients dans l'utilisation de technologies (logiciels,
protocoles, API) qui fonctionnent uniquement dans un cercle limit au bon vouloir du fournisseur. Et une
fois l'intrieur de ce cercle, difficile d'en sortir...
4 Mise en uvre
Aprs une tude comparative des solutions IaaS et des premiers tests sur maquette d'OpenStack raliss
dbut 2014, six machines et un switch ont t commands pour la mise en place d'un embryon de
plate-forme permettant d'accueillir quelques centaines de machines virtuelles (environ 500 en fonction de
leur usage). Une baie de disques Netapp est utilise pour un stockage centralis, via NFS, des images et
des instances de machines virtuelles.
Ce chapitre dcrit de manire partielle et synthtique la configuration de la plate-forme mise en place.
stockage
Les machines virtuelles sont excutes par les hyperviseurs sur les nuds de calcul. Les dmons qui
assurent le fonctionnement d'OpenStack (interfaces, schedulers, bus de messagerie, etc.) tournent sur les
contrleurs. Habituellement un seul des deux contrleurs est actif. Nous avons prvu une procdure
manuelle de basculement en cas de dfaillance grce du primaire.
L'application OpenStack est un projet fdrateur regroupant un certain nombre de briques (Nova,
keystone, etc.). Chaque brique, qu'on appellera composant, remplit une fonction bien identifie, et peut
tre commande ou interroge via une API REST base sur HTTP.
Pour grer leurs infrastructures virtuelles, les utilisateurs peuvent utiliser ces API. Mais, plus simplement,
ils peuvent aussi utiliser des clients en ligne de commande ou l'interface web Horizon (voir plus loin).
En interne, les diffrents dmons ncessaires au fonctionnement d'une brique communiquent ensemble
par l'intermdiaire d'un bus de donnes logiciel AMQP implment par RabbitMQ. Chaque composant
utilise sa propre base de donnes SQL, mise en uvre par une grappe de trois serveurs MariaDB/Galera.
Nous utilisons la version Icehouse d'OpenStack fournie par le systme Linux Ubuntu 14.04 LTS.
On peut simplifier la relation entre ces trois entits en une phrase : un utilisateur a un certain rle dans un
certain projet.
Une ressource virtuelle (instance de machine, rseau, etc.) ne peut pas tre associe directement un
utilisateur. Elle est associe soit un projet, soit un couple utilisateur-projet.
Plutt que de demander aux utilisateurs de crer un compte (login et mot de passe) pour accder
OpenStack, avec ce que cela implique en terme d'administration, nous avons choisi d'utiliser la base des
comptes de l'universit, accessible via LDAP.
Le composant keystone inclut un backend LDAP, ce qui rend la configuration relativement simple.
Cependant ce backend est trs limit et n'est pas utilisable en production (pas de cache, pas de pool de
connexions, une seule adresse de serveur LDAP configurable). Nous avons donc choisi d'installer un
serveur LDAP local, sur les contrleurs, qui maintient un cache des connexions LDAP de keystone vers
les serveurs de l'universit.
L'association des utilisateurs avec les rles et les projets doit se faire dans une base de donnes. Nous
avions le choix d'utiliser soit le SGBD MySQL, dj utilis par les diffrents composants d'OpenStack,
soit le serveur LDAP local, utilis pour le cache des comptes utilisateurs.
Nous avons opt pour l'utilisation de l'annuaire LDAP pour le stockage des rles et des projets. Il nous a
en effet sembl prfrable de regrouper dans une mme base des objets de mme nature. Et dans une
moindre mesure, pour des raisons de performances, car une base de donnes hirarchique est plus adapte
pour ce type d'utilisation (trs peu d'critures, beaucoup de lectures).
Les versions suprieures d'OpenStack devraient nous permettre d'utiliser soit le SSO CAS de l'universit,
soit la fdration d'identit Shibboleth, pour authentifier les utilisateurs et rcuprer quelques-uns de leurs
attributs.
C'est une prochaine tape importante du projet.
Keystone se charge galement de la gestion des droits d'accs. Pour cela, il se fonde sur les rles associs
aux utilisateurs et aux projets.
Chaque composant d'OpenStack dispose d'un fichier au format JSON, qui associe les diffrentes actions
de ce composant avec des rles.
Par exemple, la ligne suivante, prsente dans le fichier /etc/glance/policy.json interdit aux utilisateurs dont
le rle est etudiant de rendre publique leurs images de machine virtuelle.
transfert de l'image
accs
accs
NFS
NFS
stockage
Par ailleurs, le stockage centralis nous donne la possibilit de raliser la migration chaud des machines
virtuelles, par exemple pour procder aux oprations de maintenance en vacuant successivement les
nuds.
La plupart des hyperviseurs actuels peuvent tre utiliss avec Nova. Nous avons choisi KVM, via libvirt,
car il est fiable, relativement performant, offre une bonne isolation des instances, et surtout, il fournit le
plus grand support de la part de la communaut OpenStack.
Les agrgats OpenStack permettent d'utiliser, cte cte, des hyperviseurs diffrents rpartis sur des
groupes de nuds de calculs. Nous prvoyons l'avenir d'utiliser ventuellement ces agrgats pour
ajouter, en plus du cluster de nuds KVM actuels, des clusters VMware ou Xen utiliss actuellement en
dehors de l'infrastructure OpenStack.
Les utilisateurs ont la possibilit de crer un instantan de leurs machines virtuelles. Dans le contexte
d'OpenStack, cette notion n'est pas tout fait identique celle habituellement employe sur les volumes
disques, par exemple. Ici, en plus de conserver l'tat d'une machine un instant donn, l'ide est de
transformer cette machine en image. Les instantans peuvent donc tre employs, par exemple, par un
enseignant dsirant crer une nouvelle image partir d'une image existante aprs l'avoir modifie pour y
inclure les applications ncessaires son TP.
L'accs aux machines virtuelles peut se faire avec une console VNC intgre l'interface web Horizon.
Cette console tant trs limite (performances rduites, bogues en mode graphique, mappage du clavier
dfaillant), nous incitons les utilisateurs utiliser plutt ssh sous Linux et RDP sous Windows. Nous
avons galement test le client HTML SPICE comme alternative VNC, sans plus de succs.
contrleur
rseau
virtuel
1
routeur
rseau virtuel 2 virtuel 1
routeur
rseau virtuel 3 virtuel 2 rseau externe
virtu el 4
rseau
routeur
rseau virtuel 5 virtuel N
virtu el 6
rseau
Au niveau de la topologie physique, seuls les contrleurs, qui assurent la fonction de routage et de
translation d'adresses IP, sont visibles de l'extrieur. Les nuds de calcul, sur lesquels les machines
Pour librer automatiquement des ressources consommes inutilement, nous rflchissons la mise en
place d'un systme qui dsactiverait les machines virtuelles inutilises, aprs envoi de mails aux
utilisateurs.
4.7 Quotas
Il est vident que des milliers d'utilisateurs ne peuvent pas se partager des ressources sans que des limites
ne leurs soient imposes. Un des lments primordiaux d'un logiciel de cloud computing est donc la
gestion de quotas d'utilisation des ressources.
5 Bilan et perspectives
Par rapport aux autres solutions de cloud computing, la mise en place et la matrise d'OpenStack est
singulirement complexe. Cette complexit n'est cependant pas gratuite : elle est la contre-partie d'une
richesse fonctionnelle hors du commun, d'une modularit pousse l'extrme.
Et pourtant, plusieurs reprises, nous avons t surpris de constater certaines lacunes, comme par
exemple l'impossibilit d'assigner un quota gnral par utilisateur (il faut passer par les projets), ou encore
l'absence de fonction d'assignation automatique d'adresses IP externes aux instances.
Par ailleurs, et malgr le soin et l'importance ports sur le dveloppement d'OpenStack par des
spcialistes du monde entier, nous avons t confronts un nombre non ngligeable de bugs ou
d'incohrences. Certaines fois, une simple mise jour suffisait en venir bout. Mais d'autres fois, c'est
une mise jour qui tait l'origine de l'ennui... Il fallait alors chercher des moyens de contournement, et
parfois signaler certains problmes sur la plate-forme communautaire de gestion des bugs d'OpenStack.
Cela dit, et pour sa dfense, OpenStack est trs jeune, il volue trs vite et de nombreuses nouvelles
fonctionnalits sont rgulirement proposes et ajoutes. Prcisons enfin que les problmes se sont
toujours poss aprs que des modifications ont t faites. Jamais nous n'avons constat dalas ou
d'imprvus inexpliqus dans le fonctionnement d'OpenStack. Une fois correctement configur, il s'est
toujours rvl parfaitement stable.
Le bilan est galement mitig en ce qui concerne la documentation officielle. Elle est consquente et de
bonne facture, et elle suffit raliser une installation basique et comprendre les grandes lignes du
fonctionnement d'OpenStack. Mais elle est tout sauf exhaustive : certaines parties essentielles, comme la
gestion des droits d'accs, sont abordes trop succinctement, et la plupart des milliers de directives de
configuration sont expliques de faon lapidaire, en une phrase.
Heureusement, de nombreux blogs et autres wikis, souvent rdigs par des dveloppeurs d'OpenStack
reconnus, parsment le rseau des rseaux et lvent le voile sur les facettes obscures du paramtrage de
certains composants.
Le cloud OpenStack est actuellement en cours de beta-test et est essentiellement utilis pour raliser des
plate-forme de tests ou pour des besoins lis l'enseignement (projets d'tudiants et TP). Elle s'ouvre
progressivement un nombre croissant d'utilisateurs.
6 Conclusion
La mise en place d'OpenStack, le fer de lance des plates-formes d'infrastructure en nuage, est la
croise des chemins entre de multiples domaines de l'informatique : architecture systme, rseau,
virtualisation, gestion de bases de donnes, dveloppement web... Force est de constater que la ralisation
d'un tel projet exige une grande rigueur et mobilise des comptences clectiques.
Ce projet a mis au jour un grand nombre d'cueils, des bugs, des anomalies ou incohrences
diverses, qu'il a fallu corriger ou contourner. Mais surtout, il nous a donn la satisfaction d'aboutir un
rsultat en rapport avec la popularit d'OpenStack.
Nous esprons avoir su partager et dvoiler, dans ces pages, quelques-uns des aspects techniques
du cloud computing en gnral, et de la plate-forme OpenStack en particulier.