le cloud iaas & paas, openstack réseau et sécurité

Post on 01-Dec-2014

6.215 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Cours Master 2 Sécurité des systèmes informatiques Université Paris-Est Créteil Val-de-Marne (Paris12)

TRANSCRIPT

1

Le Cloud IaaS & PaaSOpenStack réseau et sécurité

Noureddine BOUYAHIAOUI

noureddine@bouyahiaoui.com

Cours Master 2 Sécurité des systèmes informatiques

Université Paris-Est Créteil Val-de-Marne (Paris12)

Plan

A. Cloud1. Concepts

2. IaaS

3. PaaS

4. SaaS

B. OpenStack Eco-Système

1. Définition

2. Historique

3. Projet

C. OpenStack Architecture

1. Architecture logique

2. Flux de création d’une VM

3. Détail des composants2

Cloud ?

3

?IaaSIaaS PaaSPaaS

SaaSSaaS

Un modèle d'accès aux ressources informatiques (réseaux, serveurs, stockage,

applications et services). Des ressources qui peuvent être rapidement approvisionnées

avec un minimum d’effort de la part du fournisseur du service.

Un type de calcul massivement évolutif où les capacités de IT sont livrées ‘en service’

aux clients en utilisant les technologies internet

Cloud ?

4

CPUCPUStockageStockage

NetworkNetwork

IaaS

PaaS

S

é

c

u

r

i

t

é

S

é

c

u

r

i

t

é

M

o

n

i

t

o

r

i

n

g

M

o

n

i

t

o

r

i

n

g

C

h

a

r

g

e

B

a

c

k

C

h

a

r

g

e

B

a

c

k

AdministrationAdministration

CRMAnalytics

Applications métier

ERP

SaaS

5

Clouds

publicsClouds

privés

Clouds

Spécialisés

APIUne interaction simplifiée et granulaire

Automatisation des déploiementsFaciliter les déploiements et réduire les

temps d’attente

Mise à l'échelle et monitoringConnaître les goulots d'étranglement et être

capable de les corriger.

SécuritéEvoluer en fonction du contexte

Contrôle financierRationalisation des coûts

Cloud : Prérequis pour un Cloud opérationnel

6

Fournit une infrastructure virtuelle à la demande qui évolue et

s'adapte aux nouveaux besoins de votre entreprise

Fournit des solutions de stockage et de sauvegarde évolutives et

durables pour toutes les données, quelle que soit leur taille

Fournit un modèles réseaux souples pour répondre aux besoins

des différentes applications et groupes d'utilisateurs

Fournit un accès sécurisé et granulaire aux différents composants

de l’infrastructure via des flux sécurisés et une gestion centralisée

de l'identité

IaaS

7

Une plate-forme ouverte, évolutive

et horizontalement scalable

APIs API REST

Hyperviseur agnostique: Xen ,XenServer, Hyper-V, KVM, ESX

Hardware agnostique

IaaS : Le compute

8

Stockage d'objets redondant

et évolutif supportant jusqu’à

des Peta-octets de données.

API REST

Files

Files

Files

Files

APIs

Hardware agnostique

IaaS : Le Stockage

9

LDAP

Clouds

privésAPIs

Toutes les autorisations

d’accès de tous les composant

d’OpenStack passe par un

LDAP.

SSL/TLS

SSL/TLS

SSL/TLS

IaaS : Une gestion centralisé de l'identité, des rôles et de la sécurité des flux

Installation d'un service et toutes ses

dépendances

Mise à jour d'un service

Le PaaS : gestion granulaire du cycle de vie

Un déploiement automatisé et reproductible :

� Pas de saisie manuelle

� procédures de contrôle automatisée

� Injection dynamique des paramètres systèmes

� Sur plusieurs serveurs

� Au sein d’un même serveur

Le PaaS : gestion granulaire du cycle de vie

Minimisation du risque d’erreur

lors des déploiements

Processus de déploiement

pilotable par un système externe

Le PaaS : La haute disponibilité des services

Self-Healing (Résilience) : Reconstitution d'un service à l'identique suite à une

défaillance

� Machine physique ou virtuelle défaillante

� Service défaillant

Le PaaS : La haute disponibilité des services

Elasticité : Mise à l'échelle automatique des services et des applications en

fonction des exigences métiers

� Scale-in : répondre à la crue de demandes par l'instanciation de nouvelles

instances.

� Scale-out : suivre la décrue par la mise hors service des instances

14

Iaa

SIa

aS

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

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

15

OpenStack : Historique

16

17

Horizon

NovaQuantum

Swift (Object Storage)

Cinder (Block storage)

Glance

(VM Image Service)

Keystone

(Identity Service)

OpenStack : Grizzly Release

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 orchestration18

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

19

OpenStack : Vue Conceptuelle

20

OpenStack : Architecture

21

OpenStack : Implémentation

22

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

23

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 :

24

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 :

25

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 :

26

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 :

27

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)

28

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 à le droit d’accès à Horizon

• Les quotas sont définit

29

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

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 Server

Keystone

Keystone DB

Quantum Server

Quantum

Quantum DB

Plugin/Agent

Proxy Server

Swift

Object Store

UI : Horizon /CLI

Connexion à Horizon

31

Horizon

OpenStack DashBoard (Horizon) fournie une interface

web pour la gestion des services OpenStack

32

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

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

UI : Horizon /CLI

Connexion à HorizonLes paramètre transmis sont

transformés en une requette HTTP

Post à destination de KeyStone

34

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).

35

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

36

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é.

37

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

38

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

39

KeyStone : Validation

40

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.

41

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

42

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

43

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

44

Nova API

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

Nova-Api

EC2-APICompute API

45

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

46

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

47

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

48

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

49

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)

50

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

51

Message Queue (Bus de communication)

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

les différents composants de NOVA

52

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

53

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

54

Nova Scheduler

55

Nova Scheduler : Filtre

56

Nova Scheduler : Filtre

57

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)

58

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

59

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

60

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

61

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.

62

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

63

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

64

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

65

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

66

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)

67

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 68

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

69

Quantum : Workflow

70

Quantum : Compute Node

71

Quantum : Network Node

72

Quantum : Network vue d’ensemble

73

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

74

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

75

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

76

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

77

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.

78

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

79

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

80

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

81

Cinder : Architecture/Workflow

Cinder API

SchedulerCinder Volume

Cinder DB

Queue

82

Cinder : driver

83

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

84

Montage d’un volume iSCSI

Pilote iSCSI

TCP/IP

Pilote carte réseau

Passerelle de stockage

85

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

86

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

87

Glance : Architecture

88

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

89

Glance : Formats d’image supporté

90

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

91

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.

92

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.

93

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

94

Synthèse

95

OpenStack : Implémentation

96

Openstack : Les nouveaux de la classe

97

top related