Openstack framework Iaas

86
1 OpenStack le framework du IaaS Noureddine BOUYAHIAOUI [email protected]

description

Le projet OpenStack vise à créer une plate-forme open source Cloud computing, pour les Clouds publics et privés visant une évolutivité sans complexité. OpenStack est composé d'un certain nombre de composants libres qui forment ensemble une solution Cloud. La NASA et Rackspace ont été les initiateurs de ce projet. Des grands noms du monde informatique se sont joints au projet tel que IBM, Dell, Canonical, Cisco, … etc. La mutualisation des efforts de développement ont fait du projet OpenStack l'un des projet les plus émergent, avec une release chaque 6 mois.

Transcript of Openstack framework Iaas

Page 1: Openstack framework Iaas

1

OpenStack le framework du IaaS

Noureddine [email protected]

Page 2: Openstack framework Iaas

Plan

A. OpenStack Eco-Système

1. Définition

2. Historique

3. Projet

B. OpenStack Architecture

1. Architecture logique

2. Flux de création d’une VM

3. Détail des composants

2

Page 3: Openstack framework Iaas

OpenStack ?

« OpenSource Software to building private or public

clouds » OpenStack Fondation

« Openstack is a framework to control various

virtual items and associated storage elements » Ma

vision

3

Page 4: Openstack framework Iaas

OpenStack : les possibilités

1. VM à la demande :• Provisionning

• Snapshotting

2. Volumes

2. Réseaux

3. Stockage Objet pour les images de VM ou des fichiers

quelconques

4. Multi-tenante :• Quotas par tenants

• Utilisateurs peut appartenir à plusieurs tenant

4

Page 5: Openstack framework Iaas

OpenStack : Historique

5

Page 6: Openstack framework Iaas

OpenStack : Grizzly Release

Les projets cores

Nova : Service compute

Glance : Service image

Quantum : service réseaux

Cinder : Service stockage en bloque

Swift : Service stockage objets

Projets communs

Keystone : service identitie

Horizon : Web Gui / Dashboard

Projet Librairie

Oslo : Code partagé (Shared infrastructure Code)

Projets en incubation (Officiel dans Havana)

Ceilometer : Service Metering/Monitoring

Heat : Service orchestration6

Page 7: Openstack framework Iaas

OpenStack : Organisation d’un projet

1. Chaque projet a un Lead Technique élu (PTL)

2. Séparation entre les équipes de devellopements et d'architectures

3. Chaque projet possède une API RESTfull (JSON/HTTP) sauf Horizon

4. Base de données séparée

7

Page 8: Openstack framework Iaas

OpenStack : Vue Conceptuelle

8

Page 9: Openstack framework Iaas

OpenStack : Architecture

9

Page 10: Openstack framework Iaas

OpenStack : Implémentation

10

Page 11: Openstack framework Iaas

Nova API

Scheduler

Conductor

Nova

Nova DB

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

OpenStack

UI : Horizon /CLI

Keystone Server

11

Page 12: Openstack framework Iaas

Nova API

Scheduler

Conductor

Nova

Nova DB

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone Server

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

UI : Horizon /CLI

Http : Chaque composant expose une API RESTful

AMQP :

SQL :

Native API :

iSCSI :

12

Page 13: Openstack framework Iaas

Nova API

Scheduler

Conductor

Nova

Nova DB

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone Server

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

UI : Horizon /CLI

http : Chaque composant expose une API RESTful

AMQP : Les actions distribuées passent par la Queue

SQL :

Native API :

iSCSI :

13

Page 14: Openstack framework Iaas

Nova API

Scheduler

Conductor

Nova

Nova DB

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone Server

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

UI : Horizon /CLI

Http: Chaque composant expose une API RESTful

AMQP : Les actions distribuées passent par la Queue

SQL : chaque service gère sa propre base de données

Native API :

iSCSI :

14

Page 15: Openstack framework Iaas

Nova API

Scheduler

Conductor

Nova

Nova DB

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone Server

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

UI : Horizon /CLI

Http: Chaque composant expose une API RESTful

AMQP : Les actions distribuées passent par la Queue

SQL : chaque service gère sa propre base de données

Native API : Accès direct via un protocole propre

iSCSI :

15

Page 16: Openstack framework Iaas

Nova API

Scheduler

Conductor

Nova

Nova DB

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone Server

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

UI : Horizon /CLI

Http: Chaque composant expose une API RESTful

AMQP : Les actions distribuées passent par la Queue

SQL : chaque service gère sa propre base de données

Native API : Accès direct via un protocole propre

iSCSI : Le montage des volumes avec le protocole iSCSI (block storage)

16

Page 17: Openstack framework Iaas

Cas d’utilisation création d’une VM

1. Une opération courante, mais complexe

2. Elle nécessite l’interaction avec tous les composants

d’OpenStack

3. Dans ce qui suit on admet que :

• L’utilisateur existe déjà

• Le tenant est crée

• L’utilisateur à droit d’accès à Horizon

• Les quotas sont définit

17

Page 18: Openstack framework Iaas

Quotas

quantum.quota.ConfDriver :1. Tous les projets auront les mêmes

quotas

2. Quotas définis dans le fichier de

conf

quantum.quota.ConfDriver :1. Tous les projets auront les mêmes

quotas

2. Quotas définis dans le fichier de

conf

Mécanisme utilisé dans les différentes API

d’OpenStack pour limiter le nombre de

ressources qu’un tenant peut créer ou

utiliser

Mécanisme utilisé dans les différentes API

d’OpenStack pour limiter le nombre de

ressources qu’un tenant peut créer ou

utiliser

quantum.db.quota_db.DbQuotaDriver

1. chaque projet a ses propres Quotas

2. Les quotas sont stockés dans la BD

quantum.db.quota_db.DbQuotaDriver

1. chaque projet a ses propres Quotas

2. Les quotas sont stockés dans la BD

Quotas

Limitation :

1. Network, Subnet, Port, Router,

Floatingip et security group.

2. VMs, Volumes

3. etc

Limitation :

1. Network, Subnet, Port, Router,

Floatingip et security group.

2. VMs, Volumes

3. etc

18

Page 19: Openstack framework Iaas

Nova API

Scheduler

Conductor

Nova

Nova DB

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone Server

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

UI : Horizon /CLI

Connexion à Horizon

19

Page 20: Openstack framework Iaas

Horizon

OpenStack DashBoard (Horizon) fournie une interface

web pour la gestion des services OpenStack

20

Page 21: Openstack framework Iaas

Horizon

1. Stateless

2. Utilise memcached comme cache pour les sessions

3. Se met à jour via le polling de l’API Nova

4. Chaque composant OpenStack possède son propre module

dans Horizon

21

Page 22: Openstack framework Iaas

Nova API

Scheduler

Conductor

Nova

Nova DB

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone Server

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

UI : Horizon /CLI

Connexion à HorizonLes paramètre transmis sont

transformés en une requette HTTP

Post à destination de KeyStone

22

Page 23: Openstack framework Iaas

KeyStone

1. Keystone est un projet Openstack, il offre une gestion de

l’identité et des autorisations d’accès pour les différents

services d’OpenStack.

2. Keystone fourni un jeton d'autorisation. Ce jeton est ensuite

utilisé comme un laissé passé pour utiliser les ressources et

services tel que le stockage ou le calcul etc.

3. API RESTful

4. Communication via le protocole http ou http via SSL (https).

23

Page 24: Openstack framework Iaas

KeyStone

API RESTfulAPI RESTful

Un projet Openstack, il offre une gestion

de l’identité et des autorisations d’accès

pour les différents services d’OpenStack.

Un projet Openstack, il offre une gestion

de l’identité et des autorisations d’accès

pour les différents services d’OpenStack.

Communication via le protocole http

ou https via SSL.

Communication via le protocole http

ou https via SSL.

Keystone

Fourni un jeton d'autorisation. Ce

jeton est utilisé comme un laissé passé

pour utiliser les ressources et services

tel que le stockage ou le calcul etc

Fourni un jeton d'autorisation. Ce

jeton est utilisé comme un laissé passé

pour utiliser les ressources et services

tel que le stockage ou le calcul etc

24

Page 25: Openstack framework Iaas

KeyStone : Concepts

Endpoint : Une adresse

réseau, généralement

décrite par une URL, où un

service peut être accessible.

Endpoint : Une adresse

réseau, généralement

décrite par une URL, où un

service peut être accessible.

User : peut-être une

personne, un système

ou un service

User : peut-être une

personne, un système

ou un service

Role : Un rôle comprend un

ensemble de droits et privilèges.

Role : Un rôle comprend un

ensemble de droits et privilèges.

Keystone

Tenant (ou projet) : est un

conteneur pour grouper les

services ou les utilisateurs.

Tenant (ou projet) : est un

conteneur pour grouper les

services ou les utilisateurs.

Les Credentials : les données qui permettent

d’authentifier un utilisateur ou un service :

1. Login et Mot de passe

2. Login et une clé

3. Token qui vous a été délivré.

Les Credentials : les données qui permettent

d’authentifier un utilisateur ou un service :

1. Login et Mot de passe

2. Login et une clé

3. Token qui vous a été délivré.

25

Page 26: Openstack framework Iaas

KeyStone : Architecture

KeyStone APIKeyStone API

Policy

BackendToken

Backend

Catalogue

Backend

Identity

Backend

User, role and

tenant data

Endpoint

catalogue

Temporary

tokens

Rule management

interface and rule

based authorization

26

Page 27: Openstack framework Iaas

KeyStone : Validation

1. Horizon envoi une requête HTTP à KeyStone

2. Keystone de son côté parse cette demande et vérifie les éléments suivants :

• Authentification : la validité des credentials

• Control d'accès : la validité du mapping User-Tenant-Role

• Autorisation (droit d’accès) : La requête demandé est accessible pour l'utilisateur en question

27

Page 28: Openstack framework Iaas

KeyStone : Validation

28

Page 29: Openstack framework Iaas

Nova API

Scheduler

Conductor

Nova

Nova DB

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone Server

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

UI : Horizon /CLI

Connexion à Horizon

KeyStone envoi à Horizon un Token

temporaire.

29

Page 30: Openstack framework Iaas

Interaction avec Nova

Requête de création d'une VM à partir d'Horizon :

1. Nom de la VM

2. Image

3. Flavor (CPU, Mémoire, disque)

4. Réseau

5. Options : SSH Keys, volume, commentaires, personnalites, etc

30

Page 31: Openstack framework Iaas

Nova API

Scheduler

Conductor

Nova

Nova DB

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

UI : Horizon /CLI

Nova API

Horizon envoi un http Post à Nova

API. Token récupérer auparavant est

envoyé également.

Keystone Server

31

Page 32: Openstack framework Iaas

Nova

Le composant de calcul du

système d'exploitation Cloud

Le composant de calcul du

système d'exploitation Cloud

permet de créer un

environnement Cloud

Computing hautement

évolutif et redondant

permet de créer un

environnement Cloud

Computing hautement

évolutif et redondant

Nova

permet l'exécution de

plusieurs instances de

machines virtuelles sur un

nombre illimité d'hôtes

exécutant nova-compute

permet l'exécution de

plusieurs instances de

machines virtuelles sur un

nombre illimité d'hôtes

exécutant nova-compute

Composé principalement de :

1. Nova API

2. Scheduler

3. Conductor

4. Nova-Compute

Composé principalement de :

1. Nova API

2. Scheduler

3. Conductor

4. Nova-Compute

32

Page 33: Openstack framework Iaas

Nova API

Horizon (UI) Nova (CLI) Euca-tools(CLI)

Nova-Api

EC2-APICompute API

33

Page 34: Openstack framework Iaas

Nova API

Scheduler

Conductor

Nova

Nova DB

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone Server

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

Nova API

Nova API envoi le token à KeyStone

pour validation.

UI : Horizon /CLI

34

Page 35: Openstack framework Iaas

Nova API

Scheduler

Conductor

Nova

Nova DB

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone Server

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

Nova API KeyStone valide le token. Il envoi à

Nova API une réponse http

contenant les infos d’acceptation

ou de rejetUI : Horizon /CLI

35

Page 36: Openstack framework Iaas

Nova API

Scheduler

Conductor

Nova

Nova DB

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

Nova API

Nova API valide le token en

utilisant CA, CERT & CRL récupéré

de KeyStone.UI : Horizon /CLI

Keystone Server

36

Page 37: Openstack framework Iaas

Nova API

Scheduler

Conductor

Nova

Nova DB

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

Nova API

Nova API parse la requête, crée un

objet python et insert l’objet dans

Nova DB. L’enregistrement ainsi crée

représente le premier état de la VMUI : Horizon /CLI

Keystone Server

37

Page 38: Openstack framework Iaas

Nova DataBases

Stocke l’état des objets

répartis sur les différents

Compute Nodes

Stocke l’état des objets

répartis sur les différents

Compute Nodes

Nova API communique avec

le SGBD via l’ORM

SQLAlchemy

Nova API communique avec

le SGBD via l’ORM

SQLAlchemy

Nova DataBase

Théoriquement n’importe

quel SGBD du marché

compatible. Les

déploiement se font que sur

MySQL et PostgreSQL

Théoriquement n’importe

quel SGBD du marché

compatible. Les

déploiement se font que sur

MySQL et PostgreSQL

Le HA se fait via :

1. Master/Master ou Master/Slave

2. TCP/IP RAID1 (PeaceMaker/DRBD)

Le HA se fait via :

1. Master/Master ou Master/Slave

2. TCP/IP RAID1 (PeaceMaker/DRBD)

38

Page 39: Openstack framework Iaas

Nova API

Scheduler

Conductor

Nova

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

Message Queue (Bus de communication)

Nova API fait un rpc.call au

Scheduler. Le message publié

contient des infos sur la VM. UI : Horizon /CLI

Keystone Server

Nova DB

39

Page 40: Openstack framework Iaas

Message Queue (Bus de communication)

Le Bus de communication est un moyen unifié pour faire collaborer

les différents composants de NOVA

40

Page 41: Openstack framework Iaas

Scheduler

Conductor

Nova

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

Message Queue (Bus de communication)

UI : Horizon /CLI

Keystone Server

Nova DB

Nova API

Scheduler récupère le message à

partir de la MQ

41

Page 42: Openstack framework Iaas

Nova Scheduler

Création de la VM dans un

Compute Node particulier

Création de la VM dans un

Compute Node particulier

Création des VMs dans des

Computes Nodes différents

Création des VMs dans des

Computes Nodes différents

Nova Scheduler

Création des VMs d'un

tenant particulier dans des

Computes Nodes isolés

Création des VMs d'un

tenant particulier dans des

Computes Nodes isolés

Le demon Nova Scheduler détermine dans quel

Compute Node la requête va être exécutée

42

Page 43: Openstack framework Iaas

Nova Scheduler

43

Page 44: Openstack framework Iaas

Nova Scheduler : Filtre

44

Page 45: Openstack framework Iaas

Nova Scheduler : Filtre

45

Page 46: Openstack framework Iaas

Nova Scheduler : Filtre

1. Les filtres sont configurés dans le fichier nova.conf

2. Plusieurs filtres peuvent être spécifiés en même temps

3. Il est possible de créer un filtre spécifique :

• Par héritage de la Class BaseHostFilter

• Surcharger hos_passes(self,host_state,filter_properties)

46

Page 47: Openstack framework Iaas

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

Nova Scheduler

Scheduler récupère la liste de tous

les nœuds computes et les filtres. Il

selectionne le nœud et il met à jour

la BD avec son IDUI : Horizon /CLI

Keystone Server

Scheduler

Conductor

Nova

Nova DB

QueueNova API

47

Page 48: Openstack framework Iaas

Nova

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

Nova Scheduler

UI : Horizon /CLI

Keystone Server

Nova API

Scheduler

Conductor

Queue

Nova DB

48

Scheduler publie un message pour

nœud compute (ID) pour la création

d’une nouvelle VM

Page 49: Openstack framework Iaas

Nova

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

Nova Compute

Nova compute récupère le message

qu’il lui y destiné à partir de la Queue

UI : Horizon /CLI

Keystone Server

Nova API

Conductor

Queue

Nova DB

Scheduler

49

Page 50: Openstack framework Iaas

Nova Compute

1. nova-compute est un worker demon

2. Crée et met fin aux VM via l’API installer dans l'hyperviseur

• XenAPI pour XenServer / XCP

• libvirt pour KVM ou QEMU

• VMwareAPI pour VMware

• … etc.

50

Page 51: Openstack framework Iaas

Nova

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

Nova Compute

Nova compute envoi un message à

Conductor via la Queue pour

recuperer les infos sur la VM à crééeUI : Horizon /CLI

Keystone Server

Nova API

Conductor

Queue

Nova DB

Scheduler

51

Page 52: Openstack framework Iaas

Nova Conductor

Le proxy Base de données

de Nova Compute

Le proxy Base de données

de Nova Compute

Scalabilité HorizontalScalabilité Horizontal

Nova Conductor

Elimine les connexion à

distance vers la BD

Elimine les connexion à

distance vers la BD

Schéma de la BD n’est plus visible

à Nova Compute

Schéma de la BD n’est plus visible

à Nova Compute

52

Page 53: Openstack framework Iaas

Nova

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

Nova Compute

Nova compute demande à Quantum

API de créer les éléments réseaux

pour la VM

UI : Horizon /CLI

Keystone Server

Nova API

ConductorNova DB

Queue

Scheduler

53

Page 54: Openstack framework Iaas

Quantum

Propose la connectivité

réseau en tant que service

« Network as a service »

Propose la connectivité

réseau en tant que service

« Network as a service »

Hautement configurable en

raison de son architecture

orienté plugin.

Hautement configurable en

raison de son architecture

orienté plugin.

Quantum

Expose une API qui permet aux

utilisateurs de créer leurs propres

réseaux, routeur et rattacher les

interfaces réseaux aux ports des

équipements réseaux crées

Expose une API qui permet aux

utilisateurs de créer leurs propres

réseaux, routeur et rattacher les

interfaces réseaux aux ports des

équipements réseaux crées

Séparation de la description

du réseau de son

implémentation

Séparation de la description

du réseau de son

implémentation

54

Page 55: Openstack framework Iaas

Quantum

Allocation des adresses MACAllocation des adresses MAC

Configuration du réseau

niveau 2 (L2) via quantum

plugin

Configuration du réseau

niveau 2 (L2) via quantum

plugin

Quantum

Allocation d’IPs pour chaque

réseau.

Mettre à jour le DHCP avec

l’association IP /MAC

Allocation d’IPs pour chaque

réseau.

Mettre à jour le DHCP avec

l’association IP /MAC

Configuration du réseau L3,

Mise en place des GWs

(création de routeurs)

Configuration du réseau L3,

Mise en place des GWs

(création de routeurs)

55

Page 56: Openstack framework Iaas

Quantum : Architecture

Quantum DB

Quantum Server

Quantum

Plugin

Queue

dhcp-agent

Metadata-

agent

plugin-agent

VM

l3-agent

Quantum Server:1. Implémente quantum API et ces extension

2. Impose le modèl network, subnet, port

3. Attribution d’adresse IP

Quantum Server:1. Implémente quantum API et ces extension

2. Impose le modèl network, subnet, port

3. Attribution d’adresse IP

Plugin agent:1. S’exécute sur chaque nœud de calcul/Network

2. Connect les VMs aux réseaux

Plugin agent:1. S’exécute sur chaque nœud de calcul/Network

2. Connect les VMs aux réseaux

Dhcp agent:1. S’exécute sur chaque nœud network

2. Connect les VMs aux réseaux

3. Mettre à jour le DHCP

Dhcp agent:1. S’exécute sur chaque nœud network

2. Connect les VMs aux réseaux

3. Mettre à jour le DHCP

L3 agent:1. Implément les floating IP, ainsi que tous les

fonctionnalitées L3 (NAT, SNAT, …)

2. Un agent par réseau

L3 agent:1. Implément les floating IP, ainsi que tous les

fonctionnalitées L3 (NAT, SNAT, …)

2. Un agent par réseau

Metatdata agent:Médiation entre l3-agent, dhcp-agent et nova-

metadata API Server

Metatdata agent:Médiation entre l3-agent, dhcp-agent et nova-

metadata API Server 56

Page 57: Openstack framework Iaas

Nova

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

Quantum

Quantum configure l’IP, GW, la

connectivité L2, Security Group, etc

UI : Horizon /CLI

Keystone Server

Nova API

Conductor

Scheduler

Nova DB

Queue

Nova-compute

57

Page 58: Openstack framework Iaas

Quantum : Workflow

58

Page 59: Openstack framework Iaas

Quantum : Compute Node

59

Page 60: Openstack framework Iaas

Quantum : Network Node

60

Page 61: Openstack framework Iaas

Quantum : Network vue d’ensemble

61

Page 62: Openstack framework Iaas

Haute disponibilité du réseau

1. DHCP Agent support le HA

2. L3 Agent dans la nouvelle release

1. DHCP Agent support le HA

2. L3 Agent dans la nouvelle release

HA

1. Chaque Agent de la stack réseau

envoi des Heartbeat à la Queue

2. Les états sont stockés dans la BD

1. Chaque Agent de la stack réseau

envoi des Heartbeat à la Queue

2. Les états sont stockés dans la BD

62

Page 63: Openstack framework Iaas

La sécurité dans le Cloud

La sécurité est un élément primordial dans le CloudLa sécurité est un élément primordial dans le Cloud

63

Page 64: Openstack framework Iaas

La sécurité dans le Cloud

Un Cloud peut être abstrait comme une collection de composants logiques

(domaines de sécurité) :

1. Fonction

2. Utilisateurs

3. Les problèmes de sécurité communs

64

Page 65: Openstack framework Iaas

La sécurité dans le Cloud

Public :1. Un espace entièrement non fiable de

l'infrastructure Cloud.

2. Toutes les données qui transitent ce domaine

doivent être protégées et répondre aux exigences

de la confidentialité et l'intégrité

Public :1. Un espace entièrement non fiable de

l'infrastructure Cloud.

2. Toutes les données qui transitent ce domaine

doivent être protégées et répondre aux exigences

de la confidentialité et l'intégrité

Data :1. Concerne principalement les informations relatives

aux services de stockage au sein OpenStack.

2. La plupart des données qui traversent ce réseau

nécessitent une grande intégrité et confidentialité.

3. En fonction de type déploiement, il peut y avoir

aussi une forte exigence de disponibilité

Data :1. Concerne principalement les informations relatives

aux services de stockage au sein OpenStack.

2. La plupart des données qui traversent ce réseau

nécessitent une grande intégrité et confidentialité.

3. En fonction de type déploiement, il peut y avoir

aussi une forte exigence de disponibilité

Domaine de

sécurité

Management :1. L'endroit où les services (APIs) interagissent.

2. Les réseaux dans ce domaine transportent des

données confidentielles telles que les

paramètres de configuration, noms d'utilisateur

et mots de passe.

3. Le trafic de commandement et de contrôle

réside habituellement dans ce domaine

4. Ce domaine doit être isolé et sécurisé

Management :1. L'endroit où les services (APIs) interagissent.

2. Les réseaux dans ce domaine transportent des

données confidentielles telles que les

paramètres de configuration, noms d'utilisateur

et mots de passe.

3. Le trafic de commandement et de contrôle

réside habituellement dans ce domaine

4. Ce domaine doit être isolé et sécurisé

Guest :

1. Utilisé pour le trafic d'instance à instance

Guest :

1. Utilisé pour le trafic d'instance à instance

65

Page 66: Openstack framework Iaas

La sécurité dans le Cloud

Pontage des domaines de sécurité

1. Un pont est un élément qui existe à l'intérieur d’un

ou plusieurs domaines de sécurité.

2. Les ponts sont souvent le point faible dans une

architecture réseau.

3. Tout composant construisant un pont entre des

domaines de sécurité doit être soigneusement

configuré.

4. Un pont doit toujours être configuré pour répondre

aux exigences de sécurité et d’un niveau de

confiance.

5. Les ponts devraient être une préoccupation

majeure en raison de la probabilité d'une attaque.

66

Page 67: Openstack framework Iaas

La sécurité dans le Cloud

La gestion des identités et

des accès dans OpenStack

La gestion des identités et

des accès dans OpenStack

Sécurisations des Flux via

des protocoles de sécurité

tel que SSL/TLS

Sécurisations des Flux via

des protocoles de sécurité

tel que SSL/TLS

Approche

1. Délégation de la gestion des

identités au service LDAP

2. Keystone V3 amène plus de

granularité

1. Délégation de la gestion des

identités au service LDAP

2. Keystone V3 amène plus de

granularité

Connaître les failles de

sécurité du système et les

gérer

Connaître les failles de

sécurité du système et les

gérer

67

Page 68: Openstack framework Iaas

Nova

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

Cinder

Nova compute contacte Cinder pour

monter un volume qui existe déjà. UI : Horizon /CLI

Keystone Server

Nova API

ConductorNova DB

Scheduler

Queue

68

Page 69: Openstack framework Iaas

Cinder

Fournit un stockage POSIX.

Le volume distant est vu

comme volume local

Fournit un stockage POSIX.

Le volume distant est vu

comme volume local

Un volume est attaché à une

instance VM à un instant t.

Un volume est attaché à une

instance VM à un instant t.

Cinder

Bloc Storage as a service

Compatible avec tous les

fournisseur iSCSI du marché

Bloc Storage as a service

Compatible avec tous les

fournisseur iSCSI du marché

L’état du volume est

indépendant des instances

VMs

L’état du volume est

indépendant des instances

VMs

69

Page 70: Openstack framework Iaas

Cinder : Architecture/Workflow

Cinder API

SchedulerCinder Volume

Cinder DB

Queue

70

Page 71: Openstack framework Iaas

Cinder : driver

71

Page 72: Openstack framework Iaas

Nova

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

Cinder

Nova compute demande à iSCSI

Initiator et à l’hyperviseur de monter

le volume iSCSI comme un nouveau

volume dans la VM.UI : Horizon /CLI

Keystone Server

Nova API

ConductorNova DB

Scheduler

Queue

Cinder API

72

Page 73: Openstack framework Iaas

Montage d’un volume iSCSI

Pilote iSCSI

TCP/IP

Pilote carte réseau

Passerelle de stockage

73

Page 74: Openstack framework Iaas

Nova

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

GlanceNova compute demande à Glance

l’image de la VM en précisant son ID.

UI : Horizon /CLI

Keystone Server

Nova API

ConductorNova DB

Scheduler

Queue

Cinder API

74

Page 75: Openstack framework Iaas

Glance

Fournit un service de

catalogue pour le stockage et

l'interrogation des images de

disques virtuels

Fournit un service de

catalogue pour le stockage et

l'interrogation des images de

disques virtuels

Support plusieurs types de

format d’image.

Support plusieurs types de

format d’image.

Glance

Support plusieurs types de stockages :

1. File System

2. http

3. Swift

4. Ceph

Support plusieurs types de stockages :

1. File System

2. http

3. Swift

4. Ceph

API RESTfulAPI RESTful

75

Page 76: Openstack framework Iaas

Glance : Architecture

76

Page 77: Openstack framework Iaas

Glance : Fonctionnalités

Image CRUD :

1. Create

2. Read

3. Update

4. Delete

Image CRUD :

1. Create

2. Read

3. Update

4. Delete

Image cacheImage cache

Glance

Recherche d’image par :

1. Nom

2. Conteneur

3. Format d’image

4. Taille min/max, status, etc

Recherche d’image par :

1. Nom

2. Conteneur

3. Format d’image

4. Taille min/max, status, etc

77

Page 78: Openstack framework Iaas

Glance : Formats d’image supporté

78

Page 79: Openstack framework Iaas

Nova

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

GlanceGlance renvoi un HTTP Get URI (Path)

si l’image ID fourni existe.

UI : Horizon /CLI

Keystone Server

Nova API

ConductorNova DB

Scheduler

Queue

Cinder API

79

Page 80: Openstack framework Iaas

Nova

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

Nova compute

Nova compute recupère les

informations sur la VM à partir de la

BD. Il crée la commande de création

de la VM et demande à l’hyperviseur

son exécution.UI : Horizon /CLI

Keystone Server

Nova API

ConductorNova DB

Scheduler

Queue

Cinder API Storage

Dans le cas de KVM/libvirtd le

fichier de configuration de la VM

est XML.

80

Page 81: Openstack framework Iaas

Nova

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

Nova compute

Nova compute envoi un message à

Nova conductor pour mettre à jour la

BD avec le nouveau statut de la VM. UI : Horizon /CLI

Keystone Server

Nova API

ConductorNova DB

Scheduler

Queue

Cinder API Storage

La communication iSCSI est initié.

Le volume distant est monté et il

est vu comme local.

81

Page 82: Openstack framework Iaas

Nova API

Scheduler

Conductor

Nova

Nova DB

Queue

Cinder API

Scheduler

Cinder Vol

Cinder

Cinder DB

Queue

Nova-compute

Hypervisor

Network

Compute Node

VM

Storage

Block Storage

Node

Router/GW

Network Node

DHCP/IPAM

Glance API

GlanceRegistery

Glance

Cinder DB

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

UI : Horizon /CLI

Horizon

Horizon demande périodiquement

l’état de la VM à l’API Nova. Un état

que Nova API récupère à partir de la

BD.

Keystone Server

82

Page 83: Openstack framework Iaas

Synthèse

83

Page 84: Openstack framework Iaas

OpenStack : Implémentation

84

Page 85: Openstack framework Iaas

Openstack : Les nouveaux de la classe

85

Page 86: Openstack framework Iaas

OpenStack

DEMODEMO

86