Openstack framework Iaas

Post on 10-Jun-2015

7.174 views 1 download

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

1

OpenStack le framework du IaaS

Noureddine BOUYAHIAOUInoureddine@bouyahiaoui.com

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

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

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

OpenStack : Historique

5

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

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

OpenStack : Vue Conceptuelle

8

OpenStack : Architecture

9

OpenStack : Implémentation

10

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

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

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

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

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

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

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

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

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

Horizon

OpenStack DashBoard (Horizon) fournie une interface

web pour la gestion des services OpenStack

20

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

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

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

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

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

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

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

KeyStone : Validation

28

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

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

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

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

Nova API

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

Nova-Api

EC2-APICompute API

33

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

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

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

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

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

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

Message Queue (Bus de communication)

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

les différents composants de NOVA

40

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

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

Nova Scheduler

43

Nova Scheduler : Filtre

44

Nova Scheduler : Filtre

45

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

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

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

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

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

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

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

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

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

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

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

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

Quantum : Workflow

58

Quantum : Compute Node

59

Quantum : Network Node

60

Quantum : Network vue d’ensemble

61

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

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

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

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

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

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

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

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

Cinder : Architecture/Workflow

Cinder API

SchedulerCinder Volume

Cinder DB

Queue

70

Cinder : driver

71

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

Montage d’un volume iSCSI

Pilote iSCSI

TCP/IP

Pilote carte réseau

Passerelle de stockage

73

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

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

Glance : Architecture

76

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

Glance : Formats d’image supporté

78

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

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

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

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

Synthèse

83

OpenStack : Implémentation

84

Openstack : Les nouveaux de la classe

85

OpenStack

DEMODEMO

86