Aller au contenu

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

Opérations courantes

# Creer un partage NFS de 100 Go
openstack share create NFS 100 --name mon-partage

# Autoriser l'acces depuis un reseau
openstack share access create mon-partage ip 10.0.0.0/24

# Lister les partages
openstack share list

# Afficher les details (point de montage)
openstack share show mon-partage