Académique Documents
Professionnel Documents
Culture Documents
1. Introduction
Glance est le module permettant de stocker des images (des modèles) servant à fabriquer des machines
virtuelles. Il stocke donc des images de systèmes d’exploitation ou de modèles préalablement composés
et customisés. C’est un module indispensable.
Glance expose une API RESTful permettant à tout autre service OpenStack de s’y interfacer.
2. Concept
a. Workflow
C’est Nova Compute qui, dans le provisionning de VM, demande à Glance l’image de la VM ; il lui fournit
pour cela le numéro de l’image (image_id).
Nova Compute dialogue alors avec l’API de Glance, plus exactement via la brique glance-api.
b. Composants
ˇ
glance-api : c’est le démon qui gère les requêtes pour la gestion des images. Il permet
notamment d’afficher les images présentes dans le catalogue d’images (glance image-list), de
créer une nouvelle image (glance create) ou de récupérer une image.
ˇ
glance-registry : glance-api dialogue avec glance-registry en charge du stockage et de la
gestion des métadonnées des images (taille, type...).
© Editions ENI - Tous droits réservés - Copie personnelle de kokou Agbedanou -1-
kokou Agbedanou
ˇ
Base de données : la base de données de Glance stocke les métadonnées.
ˇ
Répertoire de stockage : ce répertoire est le lieu de stockage physique des images, sous forme
de fichiers. Les supports de stockage sont nombreux parmi les back-ends suivants : Cinder,
Swift, Ceph, GlusterFS, HTTP ou S3.
© Editions ENI - Tous droits réservés - Copie personnelle de kokou Agbedanou -2-
kokou Agbedanou
c. Fonctionnalités de Glance
ˇ
Gestion des opérations de CRUD (Create/Read/Update/Delete) sur les images.
ˇ
Gestion des recherches dans les images via des filtres en précisant les informations sur les
éléments suivants :
ˇ
Nom ou format de container
ˇ
Format de disque
ˇ
Taille
ˇ
État
ˇ
Gestion de la mise en cache des images.
ˇ
Utilisation de SQLite ou FS qui supporte xattrs pour le cache.
ˇ
Mise en queue des images avant le prefetching (préchargement).
ˇ
Prefetching des images.
ˇ
Suppression des espaces inutiles des images.
ˇ
Suppression des en-têtes invalides.
d. Formats d’images
© Editions ENI - Tous droits réservés - Copie personnelle de kokou Agbedanou -3-
kokou Agbedanou
Format Description
Le format le plus supporté est le format QCOW2, format natif de l’hyperviseur KVM.
3. Architecture
a. Modèle de données
Glance dispose de sa propre base de données ; la base s’appelle Glance et comporte 13 tables dont la
plus importante est la table "images".
ˇ
id de l’image : numéro de l’image.
ˇ
name : nom de l’image (ex : cirros-0.3.3-x86_64).
ˇ
size : taille de l’image (en octets).
© Editions ENI - Tous droits réservés - Copie personnelle de kokou Agbedanou -4-
kokou Agbedanou
ˇ
status (active/queued) : statut de l’image.
ˇ
disque_format (QCOW2, ...) : format de l’image.
ˇ
owner : propriétaire de l’image (un id).
Toutes les informations nécessaires à la gestion de Glance sont stockées en base de données.
La liste des tables de Glance est fournie à l’aide d’une connexion MySQL :
# mysql -u root p
> use glance;
show tables;
+----------------------------------+
| Tables_in_glance |
+----------------------------------+
| image_locations |
| image_members |
| image_properties |
| image_tags |
| images |
| metadef_namespace_resource_types |
| metadef_namespaces |
| metadef_objects |
| metadef_properties |
| metadef_resource_types |
| migrate_version |
| task_info |
| tasks |
+----------------------------------+
© Editions ENI - Tous droits réservés - Copie personnelle de kokou Agbedanou -5-
kokou Agbedanou
ˇ
S3 store (stockage type AWS)
ˇ
Swift store (stockage objet)
ˇ
Filesystem
ˇ
HTTP store
ˇ
Ceph Store
5. Commandes Glance
© Editions ENI - Tous droits réservés - Copie personnelle de kokou Agbedanou -6-
kokou Agbedanou
© Editions ENI - Tous droits réservés - Copie personnelle de kokou Agbedanou -7-
kokou Agbedanou
6. Fabrication de modèles
La fabrication de modèles d’images est une étape très importante car cela conditionne le contenu du
catalogue de services.
a. Méthodologie
© Editions ENI - Tous droits réservés - Copie personnelle de kokou Agbedanou -8-
kokou Agbedanou
ˇ
Création d’une machine virtuelle à partir du système d’exploitation voulu.
ˇ
Customisation (ajout d’application, ajout de middleware...).
ˇ
Préparation de la VM pour qu’elle serve à fabriquer un modèle (seeling) ; c’est l’action de sceller
ou anonymiser la VM.
ˇ
Création du modèle à partir de la VM de base.
b. Images cloud
Il existe de nombreuses images disponibles sur Internet et qui sont préparées pour le cloud :
ˇ
Ubuntu cloud images : https://cloud-images.ubuntu.com/ ou http://uec-images.ubuntu.com
ˇ
Fedora cloud images : https://www.rdoproject.org/Image_resources
ˇ
Oz (https://github.com/clalancette/oz/wiki)
Oz est un outil en ligne de commande permettant de créer de façon très automatisée des
images avec des systèmes d’exploitation sous RHEL/CentOS, Fedora, Windows, OpenSUSE,
Debian, Ubuntu, Mandriva, FreeBSD.
ˇ
BoxGrinder (http://www.boxgrinder.org)
BoxGrinder permet de créer des appliances Fedora, RHEL ou CentOS. Cependant, comme la
dernière version stable date du mois d’août 2012, il semble que le produit ne soit plus vraiment
vivant.
© Editions ENI - Tous droits réservés - Copie personnelle de kokou Agbedanou -9-
kokou Agbedanou
ˇ
Suse Studio (https://susestudio.com)
Suse Studio est une application web permettant de créer et tester des applications dans un
navigateur. Le produit supporte la création d’images compatibles OpenStack. Le système
d’exploitation est basé sur SUSE Linux Enterprise et OpenSUSE.
ˇ
Aeolus image factory (http://imgfac.org/)
Cette fabrique d’images utilise Oz pour créer, convertir et uploader des images chez les cloud
providers.
La méthodologie de création d’un modèle d’image pour l’environnement cible RHEV-M est décrite dans
l’annexe à la section Création de modèles d’images Linux pour RHEV-M.