Stockage¶
Services de stockage sur OpenStack.
Swift¶
Swift est le service de stockage d'objets d'OpenStack. Il fournit un stockage distribué, hautement disponible et éventuellement cohérent (eventual consistency). Les objets sont organises en conteneurs au sein d'un compte.
Cas d'usage : backups, archives, fichiers statiques, stockage de logs, data lake.
Architecture¶
Swift répliqué les données sur plusieurs nœuds (par défaut 3 replicas) pour garantir la durabilité. Le système utilise un anneau de hachage (ring) pour distribuer les objets.
Opérations courantes¶
# Creer un conteneur
openstack container create mon-conteneur
# Uploader un fichier
openstack object create mon-conteneur mon-fichier.tar.gz
# Lister les objets
openstack object list mon-conteneur
# Telecharger un objet
openstack object save mon-conteneur mon-fichier.tar.gz
# Supprimer un objet
openstack object delete mon-conteneur mon-fichier.tar.gz
Objets volumineux
Swift supporte les objets de grande taille via le mécanisme SLO (Static Large Object) ou DLO (Dynamic Large Object), qui segmentent automatiquement les fichiers.
Cinder¶
Cinder est le service de stockage par blocs d'OpenStack. Il fournit des volumes persistants qui peuvent être attaches aux instances Nova, independamment du cycle de vie de la VM.
Cas d'usage : disques système, volumes de données pour bases de données, snapshots pour backup et restauration.
Types de volumes¶
Les types de volumes dépendent du backend configuré par l'administrateur :
| Type | Backend typique | Performance | Usage |
|---|---|---|---|
| ssd | Ceph SSD, LVM | IOPS élevés | Bases de données, applicatif |
| standard | Ceph HDD, NFS | Équilibre | Usage général |
| high-iops | NVMe, Pure | Très hautes performances | Workloads critiques |
Opérations courantes¶
# Creer un volume de 50 Go
openstack volume create --size 50 --type ssd mon-volume
# Attacher un volume a une instance
openstack server add volume mon-serveur mon-volume
# Creer un snapshot
openstack volume snapshot create --volume mon-volume mon-snapshot
# Detacher un volume
openstack server remove volume mon-serveur mon-volume
# Supprimer un volume
openstack volume delete mon-volume
Backend Ceph
La majorité des déploiements OpenStack en production utilisent Ceph comme backend unifie pour Cinder (blocs), Swift (objets via l'interface S3/Swift de RadosGW) et les disques éphémères Nova.
Manila¶
Manila est le service de systèmes de fichiers partages d'OpenStack. Il fournit des partages de fichiers accessibles simultanément par plusieurs instances via NFS, CIFS ou d'autres protocoles.
Cas d'usage : partage de fichiers entre VMs, stockage partage pour clusters applicatifs, migration d'applications legacy NFS.
Protocoles supportes¶
| Protocole | Usage |
|---|---|
| NFS | Linux, applications POSIX |
| CIFS/SMB | Windows, partages bureautiques |
| CephFS | Natif Ceph, haute performance |
| GlusterFS | Stockage distribué open-source |