Vous êtes sur la page 1sur 12

École Nationale Polytechnique

Algiers Smart City Project


Sandra-Team

OpenStack

Rédigé par
AITSAID Abderrahman
Kendi Med Amine

Année scolaire 2017-2018


Table des matières

1 Généralités 2
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 OpenStack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Services d’OpenStack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Architecture d’OpenStack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Installation et configuration des différents noeuds d’OpenStack 5


2.1 Exemples d’architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.1 Provider Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.2 Self-Service Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.3 Prérequis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.4 Fonctionnalités des différents noeuds . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.5 Installations à faire sur les différents noeuds . . . . . . . . . . . . . . . . . . . . . . 9

1
Chapitre 1

Généralités

1.1 Introduction

2
1.2 OpenStack
OpenStack est un système d’éxploitation cloud qui contrôle un grand nombre de ressources dédiées
aux calculs, stockage ainsi qu’à la gestion du reseau à travers un datacenter, toutes gérés à travers une
interface web qui donne contrôle aux administrateurs sur les utilisateurs pour leur fournir les ressources
demandées. OpenStack fournit une solution Infrastructure-as-a-Service(IaaS) à travers des services reliés
entre eux. Chaque service offre une APO qui facilite l’intégration.

1.3 Services d’OpenStack


Horizon (Tableau de bord) Horizon fournit un portail web pour intéragir avec les services d’openstack,
comme lancer une instance, attribuer une adresse IP ou configurer le contrôle d’accès pour les utilisateurs.

Nova(Service Calcul) Nova gère le cycle de vie des instances compute. Ce service aider à générer,
planifier et désaffecter des machines virtuelles à la demande.

Neutron(Service Réseau) Neutron active Network-Connectivity-as-a-Service pour les autres services


comme le service Compute. Il fournit une API pour les utilisateurs afin de configurer leurs réseaux. Il
dispose d’une architecture qui supporte plusieurs technologies et vendeurs réseau.

Swift(Service de stockage objet) Stock et peut retrouver des objets de données non structurés via une
API-REST. Swift est tolérant en terme d’erreur de replication et du dimensionnement de l’architecture.
Swift écrit les objets et fichiers dans plusieurs disques, assurant ainsi que la donnée est répliquée à travers
un cluster de serveurs.

Cinder(Service de stockage bloc) Cinder fournit un stockage bloc persistant aux instances en exécution.
Il dispose d’une architecture de driver qui facilite la création et la gestion des dispositifs de stockage bloc.

Keystone(Service d’identification) Fournit un service d’authentication et d’autorisation pour les


autres services.

Glance(Service d’image) Stock et retrouve les images disque de machines virtuelles. Le service calcul
(Compute Service) utilise glance pendant l’approvisionnement d’une instance.

Ceilometer(Service de télémetrie) Surveille et mesure le cloud pour le benchmarking, la scalabilité


ainsi que pour faire des statistiques sur la consommation de ressources...

Heat(Service d’orchestration) Orchestre plusieurs applications cloud en utilisant le format de tem-


plate natif HOT à traver une API Rest.

Trove(Service de base de données) Fournit une fonctionnalité scalable et fiable de Cloud Database-
as-a-Service pour les bases de données relationelles ou non relationelles.

Sahara(Service de traitement de données) Permet l’approvisionnement et la mise l’échelle des


clusters Hadoop dans OpenStack en spécifiant les paramètres comme la version d’Hadoop, la topologie des
clusteurs et les détails sur les noeuds hardware.

3
1.4 Architecture d’OpenStack

4
Chapitre 2

Installation et configuration des différents


noeuds d’OpenStack

5
2.1 Exemples d’architecture
2.1.1 Provider Networks
Cette configuration deploit le service réseau le plus basique avec des services de niveau 2 (bridging/s-
witching), il permet aussi la segmentation en VLAN des réseaux. Elle fait le pont entre réseaux virtuels
et réseaux physiques et laisse les services de couche 3 (routage) au réseau physique. En plus, un service
DHCP est dédié pour fournir les adresses IP aux instances.
L’utilisateur doit être inform de l’infrastructure du réseau physique pour crér son réseau virtuel.

6
2.1.2 Self-Service Networks
Cette configuration ajoute les services de la couche 3 qui permettra les segmentations tel que VXLAN.
Elle permet le routage des réseaux virtuels vers le réseau physique en utilisant la translation d’adresses
(NAT).
L’utilisateur peut créer des réseaux virtuels sans le besoin de connaitre l’architecutre de réseau de donnes.
La configuration VLAN est aussi disponible.

7
2.1.3 Prérequis

8
2.1.4 Fonctionnalités des différents noeuds
Controller
Le noeud controller exécute les services Identit, Image, des parties de la gestion du noeud Compute,
gestion d’une portion du réseau, plusieurs agents réseau et le tableau de board. Il inclue aussi les services
SQL, Message Queue(qu’on verra par la suite) et NTP.
Le noeud Controller peut également éxecuter des portions de Block Storage, Object Storage, Orchestration,
et Telemetry services.
Il requièrt au minimum deux intérfaces rśeau.

Compute
Le noeud Compute éxecute la portion hyperviseur. Par défaut, Compute utilise le superviseur KVM.
Il exécute aussi un agent de service réseau qui connecte les instances aux réseaux virtuels et fournit des
services pare-feu aux instances via security groups.
On peut déployer plus d’un noeud Compute. Chaque noeud requièrt au minimum deux intérfaces réseau.

Block Storage
Ce noeud contient des disques que le service Block Storage et Shared File System approvisionnent pour
les instances. Pour faire plus simple, le traffic de service entre les noeuds Compute et celui-ci utilisent le
réseau de gestion. Les environnements de production devraient implémenter un autre réseau de stockage
pour augmenter les performances et la sécurité.
On peut déployer plus d’un noeud Block Storage. Une intérface réseau est suffisante pour ce noeud.

Object Storage
Ce noeud contient des disques que le service Object Storage utilise pour emmagasiner les comptes,
les contenaires, et les objets. Pour faire simple, le traffic entre les noeuds Compute et celui-ci utilisent le
réseau de gestion.Les environnements de production devraient implémenter un autre réseau de stockage
pour augmenter les performances et la sécurité.
On peut déployer plus d’un noeud Block Storage. Une intérface réseau est suffisante pour ce noeud.

2.1.5 Installations à faire sur les différents noeuds


Dans ce qui suit, nous allons exposer des lignes de commandes et des modifications de fichiers de
configurations dans chaque noeud en se basant sur la configuration self-service network. The installation
is to perform on Ubuntu.

Network Time Protocol


Afin de synchroniser l’exécution des services sur les différents noeuds on doit implémenter le service
NTP. On configure le controlleur pour qu’il prenne comme référence un serveur précis, et les autres noeuds
prennent le controlleur comme référence.

Sur tous les noeuds Installer le paquet chrony.


#apt−g e t i n s t a l l chrony
a p r s l ’ installation :
# v i / e t c / chrony / chrony . c o n f
Commenter l a l i g n e p o o l 2 . debian . p o o l . ntp . o r g o f f l i n e i b u r s t
(# avant l a l i g n e )

9
Controller Ajouter la clé suivante :
s e r v e r 0 . a f r i c a . p o o l . ntp . or g i b u r s t
a l l o w 1 0 . 0 . 0 . 0 / 2 4 #Pour a u t o r i s e r l e s a u t r e s noeuds .

Les autres noeuds Ajouter la clé suivante :


server controller iburst

Sur tous les noeuds Redemarrer le service NTP.


#s e r v i c e chrony r e s t a r t

Vérification du service Exécuter la commande :


#chronyc s o u r c e s

Activer la repository OpenStack

# apt i n s t a l l s o f t w a r e −p r o p e r t i e s −common
# add−apt−r e p o s i t o r y cloud−a r c h i v e : p i k e

Base de donnée MySQL

Sur tous les noeuds


— Installer le paquet : (On utilise MariaDB)
# apt i n s t a l l mariadb−s e r v e r python−pymysql
— editer le fichier de configuration :
# v i / e t c / mysql / mariadb . c o n f . d/99− o p e n s t a c k . c n f
— ajouter la section suivante, 10.0.0.11 étant l’adresse du controller.
[ mysqld ]
bind−a d d r e s s = 1 0 . 0 . 0 . 1 1

d e f a u l t −s t o r a g e −e n g i n e = innodb
i n n o d b f i l e p e r t a b l e = on
m a x c o n n e c t i o n s = 4096
c o l l a t i o n −s e r v e r = u t f 8 g e n e r a l c i
c h a r a c t e r −s e t −s e r v e r = u t f 8
— Finaliser l’installation et sécuriser la base de données.
# s e r v i c e mysql r e s t a r t
# mysql secure installation

Message queue
OpenStack utilise une queue de messages pour coordiner les informations sur les opérations et le
status entre autres services. Ce service est exécuté sur le noeud controller. Ce guide implémente le service
RabbitMQ.

10
Sur le controller
— installer le paquet
# apt i n s t a l l rabbitmq−s e r v e r
— ajouter l’utilisateur openstack
# r a b b i t m q c t l a d d u s e r o p e n s t a c k RABBIT PASS
( u t i l i s e r un mot de p a s s e convenant )
— permettre à l’utilisateur openstack de configurer, écrire et lire..
# rabbitmqctl s e t p e r m i s s i o n s openstack ”.∗” ”.∗” ”.∗”

11