Cet article fait suite à notre introduction aux fondations du cloud privé. Il détaille l’architecture et les composants d’OpenStack. Pour la migration depuis VMware, voir Migration VMware vers OpenStack.
OpenStack : une plateforme modulaire pour le cloud privé
OpenStack est une plateforme logicielle gratuite et open source pour le cloud computing. Elle est principalement déployée comme une IaaS (Infrastructure as a Service) grâce à laquelle les serveurs virtuels et autres ressources sont mis à la disposition des clients. Elle est constituée de composants interdépendants qui contrôlent des infrastructures de type datacenter fournissant du calcul, du stockage et du réseau.
OpenStack a débuté en 2010 en tant que projet commun de Rackspace et de la NASA. Depuis 2016, la plateforme est gérée par l’OpenStack Foundation (devenue Open Infrastructure Foundation), une entité à but non lucratif créée en septembre 2012 pour promouvoir le logiciel. Plus de six cents entreprises l’ont rejointe depuis le début des développements.
Les utilisateurs gèrent la plateforme par l’intermédiaire d’un tableau de bord fondé sur le Web, en utilisant des outils de services Web ou simplement des lignes de commande. L’architecture, avec ses trois grandes composantes de calcul, stockage et réseau, est modulaire : chaque composant peut être déployé, remplacé ou mis à jour indépendamment.
Les composants fondamentaux
Keystone — le service d’identité
Keystone fournit un répertoire central d’identification et d’authentification pour l’ensemble des services OpenStack. C’est une sorte de système d’authentification qui peut s’intégrer aux services d’annuaire tels que LDAP. Keystone prend en charge des utilisateurs et des mots de passe, fournit le catalogue des services déployés dans un cloud OpenStack, et détermine par programme les ressources auxquelles les utilisateurs sont autorisés à accéder.
Keystone est le composant qui fournit la multi-tenancy native d’OpenStack. Il gère des projets (tenants), des rôles et des quotas, ce qui permet à plusieurs équipes ou clients de partager la même infrastructure physique avec une isolation stricte. C’est l’un des avantages architecturaux majeurs d’OpenStack par rapport aux solutions de virtualisation plus simples.
Nova — le calcul
Nova (OpenStack Compute) constitue l’élément principal d’un système IaaS. Il est conçu pour gérer et automatiser l’allocation des ressources, et notamment des machines virtuelles. KVM, VMware et Xen sont les choix disponibles pour l’hyperviseur, et Hyper-V et Docker pour le conteneur.
Nova est le composant qui planifie le placement des instances sur les nœuds de calcul, gère leur cycle de vie (création, démarrage, arrêt, migration, suppression), et expose ces opérations via une API REST complète. En raison de la présence de ce composant, OpenStack est parfois perçu comme un concurrent direct de VMware vSphere.
Nova est écrit en Python et utilise de nombreuses bibliothèques externes. Le module Nova peut communiquer avec le module Glance pour la gestion des images, et réaliser des opérations avancées comme le live migration — la migration d’une VM en cours d’exécution d’un serveur physique à un autre sans interruption de service. Glance permet ainsi à un datacenter de réaliser la maintenance pour les serveurs sous-performants sans même avoir à arrêter le système.
Glance — les images
Glance (OpenStack Image) fournit des services de découverte, d’enregistrement et de livraison d’images de disques et de serveurs. Les images stockées et cataloguées peuvent être utilisées comme modèles. Ce module peut également être utilisé pour stocker et cataloguer des sauvegardes de données. L’API du service fournit une interface REST standard pour interroger les images des disques, et permet aux clients de diffuser les images vers de nouveaux serveurs.
Neutron — le réseau
Neutron (OpenStack Networking) est le système de gestion des réseaux et des adresses IP. Il fournit des modèles de réseau pour différentes applications ou groupes d’utilisateurs. Les modèles standards incluent les réseaux Ethernet dotés de VLAN pour séparer les serveurs et le trafic. Neutron gère l’adressage IP dynamique avec DHCP, soit la distribution d’adresses statiques, soit des adresses IP dynamiques.
Les utilisateurs peuvent créer leurs propres réseaux, contrôler le trafic et connecter des serveurs et des périphériques à un ou plusieurs réseaux. Les administrateurs peuvent utiliser des technologies SDN avec la signalisation OpenFlow pour permettre des niveaux élevés de multi-tenancy et d’échelle. Neutron possède un framework d’extensions qui permet de déployer et de gérer des services réseau additionnels — tels que les systèmes de détection d’intrusion (IDS), l’équilibrage de charge, les pare-feu et les réseaux privés virtuels (VPN).
C’est cette couche d’abstraction réseau qui différencie fondamentalement OpenStack d’une solution de virtualisation classique. L’API de Neutron permet de créer une infrastructure réseau sans se soucier des technologies sous-jacentes utilisées : VLAN, VXLAN, GRE. Ces abstractions permettent de définir différents mécanismes réseau — contrôle de flux, équilibrage de charge — que ce soit avec Open vSwitch ou des nœuds virtuels.
Cinder — le stockage bloc
Cinder (OpenStack Block Storage) fournit des périphériques de stockage en mode bloc pour une utilisation avec des instances de calcul. Ce système de stockage en mode bloc est approprié pour les systèmes de fichiers extensibles ou la fourniture de stockage au niveau des blocs. La gestion du stockage au niveau des blocs offre une fonctionnalité puissante pour la sauvegarde des données stockées sur les volumes de stockage en mode bloc. Les instances peuvent être restaurées ou utilisées pour créer un nouveau volume de stockage.
En plus du stockage local sur des serveurs Linux, Cinder peut utiliser des plateformes de stockage tierces telles que Ceph, CloudByte, EMC, Hitachi, IBM et HP. Le stockage Ceph est particulièrement bien intégré : c’est le backend de référence pour les déploiements de production, car il fournit à la fois le stockage bloc (via Cinder), le stockage objet (en remplacement de Swift) et le stockage de fichiers (via Manila).
Swift — le stockage objet
Swift (OpenStack Object Storage) est un système de stockage d’objets redondant et évolutif dans lequel les objets et les fichiers sont écrits sur plusieurs disques répartis sur les serveurs du cloud. Le logiciel OpenStack se charge de la réplication et de l’intégrité des données sur l’ensemble du cluster.
Les clusters de stockage passent à l’échelle simplement par l’ajout de nouveaux serveurs. Si un serveur ou un disque dur tombe en panne, OpenStack réplique automatiquement son contenu à partir d’un autre nœud actif vers un nouvel emplacement dans le cluster. Comme OpenStack utilise des fonctions logicielles pour assurer la réplication et la distribution des données dans les différents clusters, des disques durs et des serveurs de qualité moyenne peuvent être utilisés.
Les composants d’orchestration et d’exploitation
Heat — l’orchestration
Heat (OpenStack Orchestration) permet d’organiser les applications du cloud à l’aide de modèles compatibles avec CloudFormation (le format d’AWS). L’utilisateur écrit son flux dans un langage adapté fondé sur YAML et télécharge la définition du flux via son API REST. L’utilisateur peut lors définir et déclencher des flux de travail manuellement ou en configurant un déclencheur pour démarrer le flux sur un événement.
Horizon — le tableau de bord
Horizon (OpenStack Dashboard) fournit aux administrateurs et aux utilisateurs un accès graphique de tableau de bord pour accéder aux ressources et aux services du cloud et automatiser leur déploiement. La conception de ce module lui permet de s’adapter à des produits et services supplémentaires, tels que la facturation, la surveillance ou des outils de gestion supplémentaires. Horizon est le seul composant à pouvoir ajouter une interface graphique.
Le tableau de bord est également adapté aux fournisseurs et aux autres fournisseurs commerciaux qui souhaitent s’en servir. Les développeurs permettent ainsi automatiser l’accès ou créer des outils pour les utilisateurs, voire d’autres applications.
Ceilometer — la télémétrie
Ceilometer (OpenStack Telemetry) propose un environnement unique pour la gestion des compteurs nécessaires pour établir et vérifier les composants des systèmes de clients, et ce pour tous les composants et les agents. Ceux-ci doivent être facilement extensibles des composants du système, et traçable et vérifiable. OpenStack actuel est compatible avec le service DNS multi-tenant pour la même API. Les données doivent supporter de nombreux projets et les agents qui effectuent la collecte des données en provenance de nouveaux du système global.
Les composants complémentaires
Au-delà des composants fondamentaux, OpenStack fournit des services spécialisés qui étendent la plateforme :
- Designate (OpenStack DNS) : service DNS multi-tenant compatible avec le service DNS et compatible avec la même API REST. Il fournit une interface avec le DNS et est compatible avec de nombreuses technologies de traitement du DNS.
- Ironic (OpenStack Bare Metal) : module permettant l’utilisation de machines physiques nues, c’est-à-dire de matériels sur lesquels tournent des logiciels en lieu et place de machines virtuelles. Le module Ironic peut être considéré comme une API vers un matériel nu, permettant d’allumer et éteindre des machines physiques et prendre en charge de nombreux serveurs supplémentaires.
- Sahara (OpenStack Elastic Map Reduction) : module permettant de créer d’applications distribuées de traitement de clusters Hadoop. Sahara déploie le cluster Hadoop en quelques minutes et fournit les moyens pour étendre un cluster préexistant en y ajoutant ou en supprimant des ressources à la demande.
- Barbican (OpenStack Key Management) : fondé sur une API REST, ce module permet le stockage, la fourniture et la gestion sécurisée de clés secrètes, de certificats et d’autres données sensibles.
- Manila (OpenStack Shared File System) : fournit une API ouverte pour gérer le partage de fichiers dans un environnement indépendant de fournisseur. Ses formats incluent Ceph. Il supporte l’accès à un moteur de messagerie efficace et la sécurité.
OpenStack dans le contexte actuel
OpenStack a atteint sa version 2026.1 (nom de code Gazpacho), avec la version 2026.2 (Hibiscus) prévue en septembre 2026. La plateforme continue d’évoluer, mais sa complexité reste son principal défi. Un déploiement OpenStack de production nécessite une équipe de trois à cinq ingénieurs dédiés, une bonne maîtrise de Linux, du réseau et du stockage distribué, et un investissement initial en temps significatif.
C’est cette complexité qui explique la coexistence d’OpenStack avec des plateformes plus simples comme Proxmox VE. Le choix n’est pas entre une bonne et une mauvaise solution, mais entre deux niveaux de contrôle et de complexité. OpenStack s’adresse aux environnements qui ont besoin de multi-tenancy native, d’API complètes, de réseaux programmables et d’une échelle de 100 à 10 000 nœuds. Les environnements plus petits, avec des besoins plus simples, trouvent souvent leur compte dans des solutions moins modulaires.
Ce que cet article ne traite pas
- La procédure d’installation d’OpenStack (plusieurs approches existent : DevStack, Packstack, Kolla-Ansible, TripleO).
- La comparaison détaillée avec Proxmox VE (article dédié).
- La migration depuis VMware ESXi vers OpenStack (couvert dans un article dédié).
- Le dimensionnement matériel pour un déploiement de production.
- L’intégration Ceph en tant que backend de stockage unifié (couvert dans notre prestation cloud privé).
Sources : Guy Pujolle, Les Réseaux, 9e édition, Eyrolles, chapitres 14. OpenStack Documentation, docs.openstack.org. Notes de version OpenStack 2026.1 Gazpacho, releases.openstack.org. EC INTELLIGENCE, Formation Administration OpenStack, supports de cours internes.