3. Cloud ?
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.
IaaS
PaaS
?
SaaS
Un type de calcul massivement évolutif où les capacités de IT sont livrées ‘en service’
aux clients en utilisant les technologies internet
3
5. Cloud : Prérequis pour un Cloud opérationnel
Automatisation des déploiements
API
Faciliter les déploiements et réduire les
temps d’attente
Une interaction simplifiée et granulaire
Contrôle financier
Rationalisation des coûts
Clouds
publics
Clouds
privés
Sécurité
Evoluer en fonction du contexte
Clouds
Spécialisés
Mise à l'échelle et monitoring
Connaître les goulots d'étranglement et être
capable de les corriger.
5
6. IaaS
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é
6
7. IaaS : Le compute
APIs
API REST
Une plate-forme ouverte, évolutive
et horizontalement scalable
Hyperviseur agnostique:
Xen ,XenServer, Hyper-V, KVM, ESX
Hardware agnostique
7
8. IaaS : Le Stockage
APIs
API REST
Files
Files
Files
Stockage d'objets redondant
et évolutif supportant jusqu’à
des Peta-octets de données.
Files
Hardware agnostique
8
9. IaaS : Une gestion centralisé de l'identité, des rôles et
de la sécurité des flux
SSL/TLS
SSL/TLS
Clouds
privés
APIs
LDAP
Toutes les autorisations
d’accès de tous les composant
d’OpenStack passe par un
LDAP.
SSL/TLS
9
10. 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
Installation d'un service et toutes ses
dépendances
Mise à jour d'un service
11. 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
12. 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
13. 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. IaaS
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
14
15. 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
18. 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 orchestration
18
19. 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
23. OpenStack
UI : Horizon /CLI
Nova
Hypervisor
Keystone DB
Queue
Scheduler
Conductor
Keystone Server
Compute Node
Nova API
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Glance
Storage
Glance API
Scheduler
Network Node
Cinder Vol
GlanceRegistery
DHCP/IPAM
Quantum DB
Swift
Proxy Server
Cinder DB
Router/GW
Cinder DB
23
Object Store
24. Http : Chaque composant expose une API RESTful
AMQP :
SQL :
Native API :
iSCSI :
UI : Horizon /CLI
Nova
Hypervisor
Keystone DB
Queue
Scheduler
Conductor
Keystone Server
Compute Node
Nova API
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Glance
Storage
Glance API
Scheduler
Network Node
Cinder Vol
GlanceRegistery
DHCP/IPAM
Quantum DB
Swift
Proxy Server
Cinder DB
Router/GW
Cinder DB
Object Store
24
25. http : Chaque composant expose une API RESTful
AMQP : Les actions distribuées passent par la Queue
SQL :
Native API :
iSCSI :
UI : Horizon /CLI
Nova
Hypervisor
Keystone DB
Queue
Scheduler
Conductor
Keystone Server
Compute Node
Nova API
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Glance
Storage
Glance API
Scheduler
Network Node
Cinder Vol
GlanceRegistery
DHCP/IPAM
Quantum DB
Swift
Proxy Server
Cinder DB
Router/GW
Cinder DB
Object Store
25
26. 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 :
UI : Horizon /CLI
Nova
Hypervisor
Keystone DB
Queue
Scheduler
Conductor
Keystone Server
Compute Node
Nova API
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Glance
Storage
Glance API
Scheduler
Network Node
Cinder Vol
GlanceRegistery
DHCP/IPAM
Quantum DB
Swift
Proxy Server
Cinder DB
Router/GW
Cinder DB
Object Store
26
27. 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 :
UI : Horizon /CLI
Nova
Hypervisor
Keystone DB
Queue
Scheduler
Conductor
Keystone Server
Compute Node
Nova API
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Glance
Storage
Glance API
Scheduler
Network Node
Cinder Vol
GlanceRegistery
DHCP/IPAM
Quantum DB
Swift
Proxy Server
Cinder DB
Router/GW
Cinder DB
Object Store
27
28. 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)
UI : Horizon /CLI
Nova
Hypervisor
Keystone DB
Queue
Scheduler
Conductor
Keystone Server
Compute Node
Nova API
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Glance
Storage
Glance API
Scheduler
Network Node
Cinder Vol
GlanceRegistery
DHCP/IPAM
Quantum DB
Swift
Proxy Server
Cinder DB
Router/GW
Cinder DB
Object Store
28
29. 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
30. Quotas
Limitation :
1. Network, Subnet, Port, Router,
Floatingip et security group.
2. VMs, Volumes
3. etc
Mécanisme utilisé dans les différentes API
d’OpenStack pour limiter le nombre de
ressources qu’un tenant peut créer ou
utiliser
Quotas
quantum.quota.ConfDriver :
1. Tous les projets auront les mêmes
quotas
2. Quotas définis dans le fichier de
conf
quantum.db.quota_db.DbQuotaDriver
1. chaque projet a ses propres Quotas
2. Les quotas sont stockés dans la BD
30
31. Connexion à Horizon
UI : Horizon /CLI
Nova
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Cinder Vol
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
31
33. 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
34. Connexion à Horizon
Les paramètre transmis sont
transformés en une requette HTTP
Post à destination de KeyStone
UI : Horizon /CLI
Nova
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Cinder Vol
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
34
35. 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
36. KeyStone
Un projet Openstack, il offre une gestion
de l’identité et des autorisations d’accès
pour les différents services d’OpenStack.
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
Keystone
API RESTful
Communication via le protocole http
ou https via SSL.
36
37. KeyStone : Concepts
User : peut-être une
personne, un système ou
un service
Tenant (ou projet) : est un
conteneur pour grouper les
services ou les utilisateurs.
Endpoint
:
Une adresse
réseau, généralement décrite
par une URL, où un service peut
être accessible.
Keystone
Role : Un rôle comprend un ensemble de
droits et privilèges.
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
38. KeyStone : Architecture
KeyStone API
Rule management
interface and rule
based authorization
Policy
Backend
User, role and
tenant data
Token
Backend
Temporary
tokens
Catalogue
Backend
Identity
Backend
Endpoint
catalogue
38
39. 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
41. Connexion à Horizon
KeyStone envoi à Horizon un Token
temporaire.
UI : Horizon /CLI
Nova
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Cinder Vol
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
41
42. 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
43. Nova API
Horizon envoi un http Post à Nova
API. Token récupérer auparavant est
envoyé également.
Nova
Keystone
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
UI : Horizon /CLI
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Cinder Vol
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
43
44. Nova
permet
l'exécution
de
plusieurs
instances
de
machines virtuelles sur un
nombre illimité d'hôtes
exécutant nova-compute
Le composant de calcul du
système d'exploitation Cloud
Nova
permet
de
créer
un
environnement
Cloud
Computing
hautement
évolutif et redondant
Composé principalement de :
1.
Nova API
2.
Scheduler
3.
Conductor
4.
Nova-Compute
44
46. Nova API
Nova API envoi le token à KeyStone
pour validation.
UI : Horizon /CLI
Nova
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
Cinder Vol
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
46
47. Nova API
KeyStone valide le token. Il envoi à
Nova API une réponse http
contenant les infos d’acceptation
ou de rejet
UI : Horizon /CLI
Nova
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Cinder Vol
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
47
48. Nova API
Nova API valide le token
en
utilisant CA, CERT & CRL récupéré
de KeyStone.
Nova
Keystone
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
UI : Horizon /CLI
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Cinder Vol
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
48
Object Store
49. 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 VM
Nova
Keystone
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
UI : Horizon /CLI
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Cinder Vol
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
49
Object Store
50. Nova DataBases
Stocke l’état des objets
répartis sur les différents
Compute Nodes
Théoriquement n’importe
quel SGBD du marché
compatible.
Les
déploiement se font que sur
MySQL et PostgreSQL
Nova DataBase
Nova API communique avec
le
SGBD
via
l’ORM
SQLAlchemy
Le HA se fait via :
1. Master/Master ou Master/Slave
2. TCP/IP RAID1 (PeaceMaker/DRBD)
50
51. Message Queue (Bus de communication)
Nova API fait un rpc.call au
Scheduler. Le message publié
contient des infos sur la VM.
Nova
Keystone
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
UI : Horizon /CLI
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Glance
Storage
Glance API
Scheduler
Network Node
Cinder Vol
GlanceRegistery
DHCP/IPAM
Quantum DB
Swift
Proxy Server
Cinder DB
Router/GW
Cinder DB
51
Object Store
52. Message Queue (Bus de communication)
Le Bus de communication est un moyen unifié pour faire collaborer
les différents composants de NOVA
52
53. Message Queue (Bus de communication)
Scheduler récupère le message à
partir de la MQ
UI : Horizon /CLI
Nova
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Cinder Vol
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
53
54. Nova Scheduler
Le demon Nova Scheduler détermine dans quel
Compute Node la requête va être exécutée
Création de la VM dans un
Compute Node particulier
Création des VMs d'un
tenant particulier dans des
Computes Nodes isolés
Nova Scheduler
Création des VMs dans des
Computes Nodes différents
54
58. 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
59. 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 ID
Nova
Keystone
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
UI : Horizon /CLI
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Cinder Vol
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
59
60. Nova Scheduler
Scheduler publie un message pour
nœud compute (ID) pour la création
d’une nouvelle VM
Nova
Keystone
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
UI : Horizon /CLI
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
Cinder Vol
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
60
61. Nova Compute
Nova compute récupère le message
qu’il lui y destiné à partir de la Queue
UI : Horizon /CLI
Nova
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
Cinder Vol
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
61
62. 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
63. Nova Compute
Nova compute envoi un message à
Conductor via la Queue pour
recuperer les infos sur la VM à créée
Nova
Keystone
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
UI : Horizon /CLI
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Glance
Storage
Glance API
Scheduler
Network Node
Cinder Vol
Quantum DB
Swift
GlanceRegistery
DHCP/IPAM
Proxy Server
Cinder DB
Router/GW
Cinder DB
Object Store
63
64. Nova Conductor
Le proxy Base de données
de Nova Compute
Elimine les connexion à
distance vers la BD
Nova Conductor
Scalabilité Horizontal
Schéma de la BD n’est plus visible
à Nova Compute
64
65. Nova Compute
Nova compute demande à Quantum
API de créer les éléments réseaux
pour la VM
UI : Horizon /CLI
Nova
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Cinder Vol
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
65
66. Quantum
Propose la connectivité
réseau en tant que service
« Network as a service »
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
Quantum
Hautement configurable en
raison de son architecture
orienté plugin.
Séparation de la description
du
réseau
de
son
implémentation
66
68. Quantum : Architecture
Quantum Server:
1.
2.
3.
Metadataagent
l3-agent
Implémente quantum API et ces extension
Impose le modèl network, subnet, portVM
Attribution d’adresse IP
Plugin agent:
1.
2.
S’exécute sur chaque nœud de calcul/Network
Connect les VMs aux réseaux
Quantum
Quantum Server
Plugin
plugin-agent
Dhcp agent:
1.
2.
3.
S’exécute sur chaque nœud network
Connect les VMs aux réseaux
Mettre à jour le DHCP
Queue
L3 agent:
1.
Quantum DB
dhcp-agent
2.
Implément les floating IP, ainsi que tous les
fonctionnalitées L3 (NAT, SNAT, …)
Un agent par réseau
Metatdata agent:
Médiation entre l3-agent, dhcp-agent et novametadata API Server
68
69. Quantum
Quantum configure l’IP, GW, la
connectivité L2, Security Group, etc
UI : Horizon /CLI
Nova
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Cinder Vol
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
69
74. Haute disponibilité du réseau
1. Chaque Agent de la stack réseau
envoi des Heartbeat à la Queue
1. DHCP Agent support le HA
2. L3 Agent dans la nouvelle release
2. Les états sont stockés dans la BD
HA
74
75. La sécurité dans le Cloud
La sécurité est un élément primordial dans le Cloud
75
76. La sécurité dans le Cloud
Un Cloud peut être abstrait comme une collection de composants logiques
(domaines de sécurité) :
1.
2.
3.
Fonction
Utilisateurs
Les problèmes de sécurité communs
76
77. La sécurité dans le Cloud
Management :
Public :
1.
Un espace entièrement non fiable de
l'infrastructure Cloud.
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é
2.
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é
Domaine de
sécurité
Data :
1.
2.
3.
Concerne principalement les informations relatives
aux services de stockage au sein OpenStack.
La plupart des données qui traversent ce réseau
nécessitent une grande intégrité et confidentialité.
En fonction de type déploiement, il peut y avoir
aussi une forte exigence de disponibilité
Guest :
1.
Utilisé pour le trafic d'instance à instance
77
78. 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
79. La sécurité dans le Cloud
La gestion des identités et
des accès dans OpenStack
1. Délégation de la gestion des
identités au service LDAP
2. Keystone V3 amène plus de
granularité
Approche
Sécurisations des Flux via
des protocoles de sécurité
tel que SSL/TLS
Connaître les failles de
sécurité du système et les
gérer
79
80. Cinder
Nova compute contacte Cinder pour
monter un volume qui existe déjà.
Nova
Keystone
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
UI : Horizon /CLI
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Cinder Vol
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
80
81. Cinder
Fournit un stockage POSIX.
Bloc Storage as a service
Le volume distant est vu
comme volume local
Compatible avec tous
fournisseur iSCSI du marché
les
Cinder
Un volume est attaché à une
instance VM à un instant t.
L’état
du
indépendant
VMs
volume
est
des instances
81
84. Cinder
Nova compute demande à iSCSI
Initiator et à l’hyperviseur de monter
le volume iSCSI comme un nouveau
volume dans la VM.
Nova
Keystone
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
UI : Horizon /CLI
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
Cinder Vol
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
84
85. Montage d’un volume iSCSI
Pilote iSCSI
TCP/IP
Pilote carte réseau
Passerelle de stockage
85
86. Glance
Nova compute demande à Glance
l’image de la VM en précisant son ID.
UI : Horizon /CLI
Nova
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Cinder Vol
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
86
87. Glance
Fournit un service de
catalogue pour le stockage et
l'interrogation des images de
disques virtuels
Support plusieurs types de stockages :
1. File System
2. http
3. Swift
4. Ceph
Glance
Support plusieurs types de
format d’image.
API RESTful
87
91. Glance
Glance renvoi un HTTP Get URI (Path)
si l’image ID fourni existe.
UI : Horizon /CLI
Nova
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
Keystone
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Cinder Vol
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
91
92. 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.
Nova
UI : Horizon /CLI
Keystone
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
Dans le cas de KVM/libvirtd le
fichier de configuration de la VM
est XML.
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
Cinder Vol
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
92
93. Nova compute
Nova compute envoi un message à
Nova conductor pour mettre à jour la
BD avec le nouveau statut de la VM.
Nova
UI : Horizon /CLI
Keystone
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
La communication iSCSI est initié.
Le volume distant est monté et il
est vu comme local.
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Scheduler
Glance
Storage
Glance API
Network Node
GlanceRegistery
Quantum DB
Swift
Proxy Server
Cinder Vol
DHCP/IPAM
Cinder DB
Router/GW
Cinder DB
Object Store
93
94. 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.
Nova
Keystone
Keystone Server
Compute Node
Hypervisor
Nova API
Keystone DB
Queue
Scheduler
Conductor
UI : Horizon /CLI
Nova-compute
Quantum
VM
Quantum Server
Nova DB
Network
Plugin/Agent
Cinder
Cinder API
Block Storage
Node
Queue
Glance
Storage
Glance API
Scheduler
Network Node
Cinder Vol
Quantum DB
Swift
GlanceRegistery
DHCP/IPAM
Proxy Server
Cinder DB
Router/GW
Cinder DB
Object Store
94