0% ont trouvé ce document utile (0 vote)
59 vues36 pages

Chapitre04 OpenStack P2 22 S1

Transféré par

rayenfazai11
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
59 vues36 pages

Chapitre04 OpenStack P2 22 S1

Transféré par

rayenfazai11
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Cours: Cloud Computing & Virtualisation

Chapitre 4 (Partie 2)
Gestion des ressources dans le cloud

Professeur Mohamed Faten Zhani


Email : [Link]@[Link]
Objectifs

 Comprendre les défis reliés à la gestion des ressources


dans le cloud
 Se familiariser avec la plateforme de gestion de cloud
OpenStack et ses différentes composantes
 Comprendre le fonctionnement des principales
composantes de OpenStack

M. F. Zhani 2
Plan

 Nova
 Les types de stockage dans OpenStack
 Stockage éphémère (ephemeral storage)
 Object storage (Swift)
 Block storage (Cinder)
 Architecture de Cinder
 Technologies complémentaires (LVM, iSCSI)

M. F. Zhani 3
Nova
 Nova permet de créer, placer et lancer les instances de machines virtuelles dans
les serveurs disponibles (appelés nœuds de calcul)
 Nova nécessite les services OpenStack de base suivants pour un fonctionnement
basique : Keystone, Glance, Neutron
 Architecture :
 Nœud de contrôle (controller node): héberge keynote, Glance et la portion
de gestion des services de base (Nova, Neutron, BD, Message Queue)
 Nœuds de calcul (compute nodes) :
 Ils hébergent les hyperviseurs et les machines virtuelles
 Nova est compatible avec les hyperviseurs KVM, VMware, Xen, Hyper-V

M. F. Zhani 4
Nova - Concepts

 Zone de disponibilité (availability zone) : groupe logique de nœuds


 Chaque nœud de calcul appartient à une zone de disponibilité définie
par l’administrateur
 Les zones permettent d’isoler un groupe de machines et d’offrir la
redondance (par ex., ayant une source d’électricité différente
ou relié à un équipement réseau différent)

M. F. Zhani 5
Nova – Architecture
 Nova-API : interface API Restful, communique avec les utilisateurs, vérifie l’identité
en communiquant avec Keystone et met à jour la base de données
 Nova-Scheduler : choisit l’emplacement de l’instance et met à jour la base de données (BD)
 Database :
 Offre un stockage persistant
contenant les informations
sur l’état de l’infrastructure
 Stocke les états en temps réel
de toute l’infrastructure
(les types d’instances disponibles,
l’état des instances en cours
d’utilisation, les projets et autres)
 Permet de partager l’information
entre les composantes de OpenStack

M. F. Zhani 6
Nova – Architecture

 Nova-Conductor : met à jour


la BD et envoie une commande vers
le nova-compute concerné pour
démarrer l’instance
 Oslo Messaging : toutes les
composantes nova communiquent
à travers un Message Queue
(RabbitMQ, Apache Qpid)

M. F. Zhani 7
Nova – Architecture

 Nova-Compute :
 Installé au niveau de chaque nœud
de calcul (Compute Node)
 Communique avec Glance et avec
l’hyperviseur du nœud pour lancer
l’instance de la MV.

M. F. Zhani 8
Nova Scheduler
 Objectif : choix de l’emplacement d’une
instance
 Chaque nœud de calcul est caractérisé
par un poids
 Calculé en fonction de plusieurs
paramètres définis par
l’administrateur
 Aide à choisir le nœuds de calcul
à utiliser pour héberger une instance
 Choix de l’emplacement : Utilisation de
filtres
 Filtrer les emplacements possibles selon
plusieurs critères
 zone de disponibilité
 capacité du nœud source [1]
(par ex., CPU, RAM)
 poids des nœuds de calcul
M. F. Zhani 9
Nova – Création d’une instance

M. F. Zhani 10
Plan

 Nova
 Les types de stockage dans OpenStack
 Stockage éphémère (ephemeral storage)
 Object storage (Swift)
 Block storage (Cinder)
 Architecture de Cinder
 Technologies complémentaires (LVM, iSCSI)

M. F. Zhani 11
OpenStack – Stockage de données
 Stockage éphémère (ephemeral storage)
 Créé lors de la création d’une instance de machine virtuelle (MV) et utilisé
pour stocker le système d’exploitation et les logiciels
 Accès à travers un système de fichier
 Taille choisie par l’utilisateur (VM flavors)
 Persistance : ce stockage est détruit lorsque la MV est détruite

Exemples de “flavor” de machine virtuelle


M. F. Zhani 12
OpenStack – Stockage de données
 Stockage d’objets (object storage – Swift)
 Stockage de données : fichiers (objets), incluant les images de MVs
 Accès aux objet grâce aux APIs Restful
 La taille dépend des disques de stockage disponibles
 Persistance : fichier supprimé seulement par l’utilisateur
 Stockge de blocs (ou volume) (bloc storage – Cinder)
 Offre un volume de stockage additionnel pour une MV
 Accessible depuis la MV comme un volume (par ex., monté comme
/dev/vdc)
 Taille : spécifié par l’utilisateur lors de la création
 Persistance : volume supprimé seulement par l’utilisateur

M. F. Zhani 13
Plan

 Nova
 Les types de stockage dans OpenStack
 Stockage éphémère (ephemeral storage)
 Object storage (Swift)
 Block storage (Cinder)
 Architecture de Cinder
 Technologies complémentaires (LVM, iSCSI)

M. F. Zhani 14
Swift
 Swift est une plateforme visant à stocker des objets
 Les objets sont des fichiers binaires : documents, images, etc.
 Chaque objet est identifié par un nom complet : « compte/conteneur/objet »
 Les objets sont manipulés grâce à des RESTful APIS
[Link]
 Idéal pour les données non structurées
 Similaire à la plateforme Amazon S3

M. F. Zhani 15
Swift – Architecture
 Deux types de nœuds: Proxy Node et Storage Nodes

M. F. Zhani 16
Swift – Stockage des données

 Les objets swift sont logiquement stockés dans des « partitions »


 Chaque objet est placé dans une « partition »
 Chaque partition est placée dans un disque physique
(c.-à.-d., un serveur physique)
 Redondance des données :
 Chaque partition doit être dupliquée
 Le nombre de réplicas par partition est fixé par l’administrateur
(par défaut, 3 réplicas par partition)

M. F. Zhani 17
Swift – Stockage des données

Comment stocker/récupérer un objet : 2 étapes


Nom complet de l’objet  Numéro de partition  Disque

 Correspondance objet - numéro de partition :


 À la réception d’un objet, Swift calcule un hash (MD5) en utilisant
le nom complet de l’objet (c.à.d. « compte/conteneur/object »)
 Une partie du hash calculé est interprété comme le numéro
de la partition où il faut stocker/récupérer l’objet
 Le nombre de bits constituant cette partie du hash est appelé
« the partition power (pp)» ou partition shift (défini par l’utilisateur)
 Le nombre de partitions total : 2pp
 Questions ?

M. F. Zhani 18
Swift – Stockage des données
Correspondance partition - disque physique ?
 Une structure de donnée appelé « ring » est utilisée pour maintenir
cette correspondance
 Chaque nœud swift maintient une copie du ring
 Chaque ring est une structure composée de 3 éléments :
1. Liste des périphériques du cluster (appelé aussi « devs ») :
contient des informations sur les disques :
id, zone, poids (proportionnel à la taille), Partition
adresse IP, port TCP, nom 0 1 2 3 4 5 6 7
2. Liste des attributions des partitions :
tableau à 2 dimensions contenant 0 0 1 2 3 0 1 2 3

Réplicas
l’emplacement de la partition (id du disque)
pour chaque réplica/partition
(dans le code : table _replica2part2dev) 1 3 2 3 0 1 2 3 0
3. Le partition shift (partition power)
2 1 3 0 1 2 3 0 1
id du disque contenant Un exemple de table _replica2part2dev
le réplica 1 de la partition 0 (3 réplicas, 8 partitions et 4 disques)
M. F. Zhani 19
Swift - Placement des réplicas
 L’ensemble des nœuds swift est divisé en des zones définies par
l’administrateur (par ex., chaque rack peut être défini comme une zone).
 Les réplicas sont distribués sur les différentes zones afin de garantir
la disponibilité des données en cas de panne.
 Meilleure redondance et tolérance aux pannes

source [1]
M. F. Zhani 20
Swift - Support des grands fichiers

Deux façons de gérer ces fichiers :


 L'utilisateur demande explicitement à Swift de diviser l'objet en
segments (dont la taille est fixée par l’utilisateur)
 Dans ce cas, ces segments sont placés dans un nouveau container
(le même pour tous les segments).
 Swift créé une description de l’objet (appelée manifest) qui indique
les segments constituant le même objet
 L'utilisateur divise lui même l'objet en segments, les upload dans
swift (pas nécessairement dans le même container) et créé lui-
même un manifest indiquant les segments constituant l’objet

M. F. Zhani 21
Plan

 Nova
 Les types de stockage dans OpenStack
 Stockage éphémère (ephemeral storage)
 Object storage (Swift)
 Block storage (Cinder)
 Architecture de Cinder
 Technologies complémentaires (LVM, iSCSI)

M. F. Zhani 22
Cinder (bloc storge)

 Cinder est un projet OpenStack pour fournir "le stockage de bloc


(volume) en tant que service" (block storage as a service)
 Initialement, créé comme composante de Nova Compute appelé Nova
Volumes et ensuite a été séparé en un projet apart pour devenir Cinder
 Cinder permet de créer des blocs (volumes ) persistants qui seront
utilisés par les instances des MVs créées par Nova compute

M. F. Zhani 23
Cinder - Avantages

 Un volume est utilisé par une seule instance à la fois


 Une instance peut être connectée à plusieurs volumes à la fois
 Avantages:
 Si une MV échoue, le volume peut être ré-attaché à une nouvelle instance
 Un volume Cinder permet d’augmenter la capacité de stockage des MVs
au delà de la capacité d’un nœud
 Un volume Cinder peut être utilisé pour le démarrage d’une MV
(dans ce cas, on a plus besoin du disque éphémère)

M. F. Zhani 24
Cinder – Caractéristiques

 Cinder est une couche d’abstraction du processus de création


des volumes et de leur attachement à des instances de calcul Nova
 Caractéristiques de Cinder
 Architecture à base de composants : permet l’ajout rapide de nouveaux
composants
 Hautement disponible : redondance assurée
 Tolérance de panne : des processus isolés pour éviter les échecs
en cascade
 Récupération facile: les échecs doivent être faciles à diagnostiquer,
déboguer et corriger
 Normes ouvertes : une implémentation de référence pour des APIs
maintenues par la communauté

M. F. Zhani 25
Cinder – Architecture

M. F. Zhani 26
Cinder – Architecture
 cinder-api : offre une interface Restful pour la manipulation des volumes (par
ex., créer, lister, supprimer, attacher, détacher) et permet de spécifier le type de
volume désiré (par ex., un volume tier 1 est destiné aux données importantes)
 cinder-scheduler : sélectionne le périphérique physique de stockage pour un
volume (peut utiliser des filtres similaires à ceux utilisés par Nova Scheduler
pour déterminer le meilleur emplacement pour un volume)
 cinder-volume : gère les périphériques physiques de stockage (back-end
devices) en utilisant plusieurs pilotes dépendamment du type de périphérique
(par ex., Linux LVM, autres périphériques de stockage tels que Dell Storage
center)

 cinder-backup : responsable de la création de volumes de backup

 SQL DB : base de données contenant les informations sur les volumes


(par ex., leurs emplacements, attachements)

M. F. Zhani 27
Cinder – Stockage traditionnel
 Étapes d’accès
 Nova appelle Cinder à travers ses APIs
 Cinder passe le message au cinder-volume
 Le pilote prépare la connexion (par ex.,
donner à Nova la permission d’accès)
 Le pilote retourne les informations de
connexion vers Cinder qui les retournent à
Nova
 Nova crée la connexion vers le volume en
utilisant les informations reçues et
configure l’hyperviseur
 Linux Volume Manager (LVM) est utilisé
par défaut pour créer les volumes dans
des machines linux
 Exemples de protocoles d’accès à des
périphériques de stockage:
 iSCSI (Internet Small Computer System
Interface )
 FCIP (Fibre Channel over IP)
M. F. Zhani 28
Plan

 Nova
 Les types de stockage dans OpenStack
 Stockage éphémère (ephemeral storage)
 Object storage (Swift)
 Block storage (Cinder)
 Architecture de Cinder
 Technologies complémentaires (LVM, iSCSI)

M. F. Zhani 29
LVM – Logical Volume Manager

 Un outil linux qui permet de gérer des volumes logiques


 Créé par Heinz Mauelshagen en 1998
 Avantages :
 Permet de créer un volume logique à partir de plusieurs volumes physiques
 Permet le dimensionnement dynamique des volumes
 Permet de créer des “snapshots” des volumes
 Permet d’ajouter et enlever ou remplacer des volumes physiques sans
interrompre le service.
 Avantages pour les systèmes à petite et à grande échelles ?

M. F. Zhani 30
LVM – Principe
 Les volumes physiques sont regroupés pour former des groupes
de volumes : un groupe de volume est considéré comme un seul
disque
 Chaque groupe de volumes peut être ensuite divisé en des
volumes logiques (donc, réellement, un volume logique peut
utiliser plusieurs disques)

PV : Physical Volume
VG : Volume Group
LV : Logical Volume
M. F. Zhani 31
LVM – Exemple

Exemple :

M. F. Zhani 32
iSCSI
 SCSI (Small Computer System Interface) : un ensemble de standards
définissant les commandes et protocoles pour la transmission de
données entre un ordinateur et des périphériques (par ex., disques
durs, scanner)
 iSCSI (Internet SCSI)
 Créé par IBM en 1998 et standarisé par l’IETF en 2003
 Protocole de transport permettant d’accéder à distance à un “volume”
de stockage
 Utilise TCP pour transmettre les commandes SCSI et les blocs de
données à travers un réseau Internet.

M. F. Zhani 33
iSCSI – Fonctionnement
 Deux agents sont impliqués :
 iSCSI initiator : agent installé sur le serveur voulant accéder au disque.
Cet agent initie la connexion vers l’iSCSI target
 iSCSI traget : agent installé dans un périphérique de stockage
 Le système d’exploitation au niveau du serveur verra le périphérique
de stockage comme un périphérique local

Source : http:/[Link]
Retour
M. F. Zhani 34
Bibliographie

[1] OpenStack, [Link]


[2] Internet Small Computer Systems Interface (iSCSI), RFC 3720

M. F. Zhani 35
Merci

M. F. Zhani 36

Vous aimerez peut-être aussi