Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

🧠 Storage Systems — Chapitre 11 : Software-Defined Storage

Le Software-Defined Storage transforme un ensemble de serveurs, disques, SSD, réseaux et logiciels en plateforme de stockage programmable. Cette page traite le découplage matériel/logiciel, les objectifs, les architectures scale-up/scale-out/hyperconvergées, les solutions majeures — Ceph, GlusterFS, MinIO, OpenEBS, Longhorn, Portworx, VMware vSAN, Nutanix, Red Hat OpenShift Data Foundation — puis les avantages, limites, runbooks, monitoring et critères de choix en production.

Software-Defined StorageCeph / MinIO / LonghornvSAN / Nutanix / ODFKubernetes CSIScale-out / HCIMonitoring obligatoire
11.1

Définition du SDS

Découplage matériel / logiciel : le logiciel pilote capacité, placement, réplication, snapshots et exposition de services.

SoftwareHardwareControl plane
11.2

Objectifs

Flexibilité, automatisation, scalabilité, coût, résilience, cloud hybride, API, orchestration et standardisation.

AutomationScaleCost
11.3

Architectures

Scale-up, scale-out, hyperconvergée, disaggregated, storage cluster, data plane/control plane, failure domains.

Scale-outHCICluster
11.4

Solutions majeures

Ceph, GlusterFS, MinIO, OpenEBS, Longhorn, Portworx, VMware vSAN, Nutanix, Red Hat ODF.

CephvSANODF
11.5

Avantages

Matériel standard, cloud hybride, Kubernetes, API, multi-protocol, auto-healing, réplication et intégration DevOps.

HybridKubernetesAPI
11.6

Limites

Complexité opérationnelle, tuning, monitoring indispensable, réseau critique, compétences fortes et runbooks stricts.

ComplexityTuningMonitoring
11.7

Ceph en profondeur

RADOS, OSD, MON, MGR, MDS, RGW, pools, CRUSH, replication, erasure coding, RBD, CephFS et S3.

RADOSCRUSHRBD
11.8

SDS et Kubernetes

CSI, StorageClass, PVC, PV, RWX/RWO, dynamic provisioning, snapshots, operators et stateful workloads.

CSIPVCOperator
11.9

Hyperconvergence

Compute + storage sur les mêmes nœuds : vSAN, Nutanix, S2D, ODF, contraintes réseau et failure domains.

HCIvSANNutanix
11.10

Services exposés

Bloc, fichier, objet : RBD/iSCSI/NVMe-oF, CephFS/NFS/SMB, S3/Swift, gateways et clients natifs.

BlockFileObject
11.11

Réseau SDS

East-west traffic, réplication, recovery, 10/25/40/100G, jumbo frames, latency, oversubscription et QoS.

NetworkEast-westQoS
11.12

Protection des données

Replication factor, erasure coding, snapshots, clones, scrubbing, self-healing, placement groups et bit rot.

ReplicationECScrub
11.13

Performance & tuning

IOPS, p99 latency, queue depth, placement, cache, OSD tuning, small files, metadata, benchmark fio/rados bench.

IOPSp99fio
11.14

Monitoring indispensable

Health checks, capacity, latency, degraded objects, rebalance, Prometheus, Grafana, logs, alerting et SLO.

PrometheusGrafanaSLO
11.15

Sécurité SDS

Auth, RBAC, encryption, multi-tenancy, network segmentation, secrets, Object Lock, policies et audit.

RBACEncryptionTenant
11.16

Matrice de décision

Choisir entre Ceph, MinIO, Longhorn, OpenEBS, Portworx, vSAN, Nutanix selon usage et maturité ops.

DecisionUse casesRisk
11.17

Runbooks production

Disque mort, OSD down, rebalance, full cluster, latency spike, split-brain, restore snapshot et incident réseau.

RunbookIncidentRecovery
11.18

Checklist production SDS

Préprod : réseau, failure domains, monitoring, capacity headroom, backups, upgrades, drills et documentation.

Prod-readyAuditChecklist
11.1 Définition : Software-Defined Storage
Définition opérationnelle

Le Software-Defined Storage découple les fonctions de stockage du matériel propriétaire. Le logiciel devient responsable de l'agrégation des disques, du placement des données, de la réplication, de l'erasure coding, des snapshots, du provisioning et de l'exposition des services bloc, fichier ou objet.

Idée centrale : le matériel devient une ressource standardisée ; l'intelligence est portée par le logiciel, ses APIs et son orchestration.
Architecture logique
Apps / VMs / PodsStorage API / CSISDS Control PlaneData PlaneDisks / Nodes
AvantAvec SDSImpact
Baie propriétaire uniqueCluster de nœuds standardsScale-out et coût matériel réduit.
Provisioning manuel LUN/shareAPI, CSI, automationSelf-service et DevOps.
RAID localReplication/EC distribuésRésilience par failure domains.
Silots bloc/fichier/objetServices multi-protocol selon solutionConvergence contrôlée.
Control planeDécide placement, orchestration, metadata, health, API, policies.
Data planeTransporte réellement les I/O entre clients, nœuds et disques.
Failure domainDéfinit où ne pas placer les copies ensemble : disque, host, rack, zone.
Promesse : flexibilité, matériel standard, cloud hybride, automatisation.
Réalité : le SDS demande une discipline d'exploitation très élevée : réseau, monitoring, capacity headroom, upgrades, tuning et runbooks.
11.2 Objectifs du SDS : flexibilité, automatisation, scalabilité, coût
FlexibilitéAPI

Provisioning rapide et standardisé.

Scalabilitéscale-out

Ajouter des nœuds pour capacité/perf.

Coûtstandard

Matériel commodity ou serveur.

Résilienceself-heal

Réparer après panne automatiquement.

Le SDS devient puissant quand il est piloté par API : Terraform, Ansible, Kubernetes CSI, opérateurs, workflows CI/CD, politiques de classes de stockage.

# Examples of automation targets
- create storage class
- provision volume
- create snapshot
- expand PVC
- replicate dataset
- apply retention policy
- rotate keys
  • Répliquer données on-prem vers cloud.
  • Utiliser API S3-compatible entre sites.
  • Fournir un stockage homogène aux applications Kubernetes.
  • Créer des politiques de placement selon coût, performance et conformité.
BesoinStandard SDS
Block pour VM/DBRBD, iSCSI, NVMe-oF, CSI RWO.
File partagéCephFS, NFS, SMB, CSI RWX.
ObjectS3-compatible, buckets, lifecycle.
11.3 Architectures : scale-up, scale-out, hyperconvergée
ArchitecturePrincipeAvantageLimite
Scale-upUn système grossit verticalement.Simple à comprendre.Limite par contrôleur/châssis.
Scale-outAjout de nœuds horizontaux.Capacité et perf progressives.Réseau et placement critiques.
HyperconvergéeCompute + storage mêmes nœuds.Intégration VM/K8s.Couplage ressources CPU/RAM/disques.
DisaggregatedCompute séparé storage.Indépendance scaling.Réseau encore plus critique.
Node 1Node 2Node 3Node 4Distributed pool

Le scale-out exige une stratégie de placement : copies réparties sur nœuds, racks, zones, avec rebalance automatique après ajout/retrait.

L'hyperconvergence intègre stockage et compute : chaque nœud apporte CPU/RAM/disques. Elle simplifie le déploiement d'un cluster VM ou Kubernetes, mais impose de dimensionner simultanément compute, stockage, réseau et licences.

Disk
Host
Rack
Zone
  • Ne jamais placer toutes les copies sur le même hôte.
  • Éviter plusieurs copies dans le même rack si le rack est un failure domain.
  • Prévoir la capacité disponible après perte d'un nœud.
11.4 Solutions majeures : Ceph, GlusterFS, MinIO, OpenEBS, Longhorn, Portworx, vSAN, Nutanix, ODF
SolutionTypeForcesLimites
CephBlock/File/ObjectTrès complet, scale-out, open source.Complexe à opérer.
MinIOObject S3Simple, performant, Kubernetes-friendly.Objet uniquement.
GlusterFSFile distribuéHistorique, simple conceptuellement.Moins central dans architectures modernes.
OpenEBSKubernetes storageApproches locales/distribuées.Dépend moteur choisi.
LonghornKubernetes blockSimple pour clusters K8s.Performance/réseau à surveiller.
PortworxKubernetes enterpriseFonctions avancées, DR, multi-cloud.Licence/complexité.
VMware vSANHCI VMwareIntégré vSphere.Écosystème VMware.
NutanixHCI platformStack intégrée enterprise.Coût et verrouillage plateforme.
Red Hat ODFOpenShift Data FoundationCeph/Rook intégré OpenShift.Dimensionnement et ops exigeants.
BesoinSolution souvent pertinente
S3 privéMinIO, Ceph RGW, Scality.
Block K8s simpleLonghorn, OpenEBS, Portworx.
Block/File/Object unifiéCeph / ODF.
VMware HCIvSAN.
Enterprise HCI completNutanix.
  • Maturité de l'équipe ops.
  • Support entreprise nécessaire ou non.
  • Type de service : bloc, fichier, objet.
  • Performance attendue et latence p99.
  • Intégration Kubernetes/VMware.
  • Stratégie backup/DR.
Choisir une solution SDS uniquement parce qu'elle est open source ou populaire est dangereux. La vraie question : l'équipe sait-elle l'exploiter un dimanche à 3h du matin pendant un incident réseau ?
11.5 Avantages du Software-Defined Storage
  • Matériel standard au lieu de baie propriétaire unique.
  • Scale-out par ajout de nœuds.
  • Automatisation via API, CSI, opérateurs.
  • Multi-protocol selon solution : bloc, fichier, objet.
  • Intégration cloud hybride et Kubernetes.
  • Self-healing et rebalancing.

Le SDS peut réduire le coût matériel, mais il transfère une partie du coût vers l'ingénierie, le monitoring, l'automatisation et l'exploitation.

TCO SDS = hardware + réseau + support + temps ops + formation + monitoring + incidents
Dev asks PVCCSI provisionsPolicy places dataMonitoring validates SLO
11.6 Limites : complexité opérationnelle, tuning, monitoring
Le SDS n'est pas une baie magique gratuite. Il demande réseau fiable, capacité libre, métriques, procédures, upgrades maîtrisés et compréhension des failure domains.
  • Problèmes réseau = problèmes stockage.
  • Rebalance peut saturer cluster.
  • Full cluster peut devenir critique très vite.
  • Une mauvaise policy de placement détruit la résilience.
ZoneParamètres
RéseauMTU, bandwidth, latency, QoS.
DisquesHDD/SSD/NVMe, journal, WAL/DB, cache.
PlacementReplication factor, EC profile, failure domain.
ClientsQueue depth, retries, timeouts, mount options.
  • Linux storage.
  • Réseau datacenter.
  • Observabilité Prometheus/Grafana.
  • Kubernetes/CSI si cloud-native.
  • Runbooks incident et drills.
11.7 Ceph en profondeur : RADOS, OSD, MON, MGR, MDS, RGW
ComposantRôle
OSDStocke les objets RADOS sur disques.
MONQuorum et cartes du cluster.
MGRModules, metrics, dashboard.
MDSMetadata pour CephFS.
RGWGateway S3/Swift.
RBDBlock devices pour VM/K8s.

CRUSH calcule où placer les données sans table centrale massive. Il tient compte des failure domains : host, rack, room, zone. C'est le cœur de la distribution Ceph.

pool replicated size=3 + failure_domain=host = 3 copies sur 3 hosts différents
RBDVolumes bloc pour VM, OpenStack, Kubernetes.
CephFSFilesystem distribué POSIX-like.
RGWS3-compatible object storage.
ceph -s
ceph health detail
ceph osd tree
ceph osd df
ceph pg stat
ceph df
rados df
ceph orch ps
11.8 SDS et Kubernetes : CSI, StorageClass, PVC, PV

CSI permet à Kubernetes de demander dynamiquement des volumes au backend SDS. Le développeur demande un PVC ; le cluster provisionne un volume selon une StorageClass.

PodPVCStorageClassCSI driverSDS backend
ModeSensUsage
RWOReadWriteOnceDB, volume bloc attaché à un pod/nœud.
RWXReadWriteManyPartage fichier entre pods.
ROXReadOnlyManyDataset partagé en lecture.
  • Une DB dans Kubernetes exige un stockage prévisible et backup applicatif.
  • Snapshots CSI doivent être cohérents avec l'application.
  • Les opérateurs DB gèrent souvent réplication et failover au-dessus du SDS.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: fast-rbd
provisioner: rbd.csi.ceph.com
parameters:
  pool: kubernetes
  imageFeatures: layering
reclaimPolicy: Delete
allowVolumeExpansion: true
11.9 Hyperconvergence : compute + storage

L'HCI combine compute, mémoire, réseau et disques dans les mêmes nœuds. Le stockage distribué transforme les disques locaux en datastore partagé.

Node A VM + disksNode B VM + disksNode C VM + disksShared datastore
  • Déploiement plus simple qu'un SAN séparé.
  • Scalabilité par nœuds.
  • Intégration hyperviseur.
  • Bon pour ROBO, PME, clusters VM.
  • Scaling compute et storage parfois couplé.
  • Réseau est critique.
  • Licences/support peuvent être élevés.
  • Réparation/rebalance impacte production.
VMware vSANvSphere HCI.
NutanixPlateforme HCI enterprise.
Storage Spaces DirectMicrosoft HCI.
OpenShift Data FoundationHCI Kubernetes/OpenShift avec Ceph/Rook.
11.10 Services exposés : bloc, fichier, objet
ServiceExpositionUsage
BlocRBD, iSCSI, NVMe-oF, CSI RWOVM, DB, volumes Kubernetes.
FichierCephFS, NFS, SMB, CSI RWXPartages, pods RWX, home dirs.
ObjetS3/Swift via gatewayBackup, data lake, archives.

Les gateways rendent un backend distribué compatible avec des protocoles clients standards. Elles ajoutent une couche à monitorer : saturation CPU, latence, auth, logs, TLS.

  • DB transactionnelle : bloc rapide ou local + réplication.
  • Partage multi-pods : fichier RWX.
  • Archive/data lake : objet S3.
  • VM datastore : bloc ou HCI validé.
11.11 Réseau SDS : east-west traffic, recovery, latency

Dans un SDS, le réseau devient le backplane de la baie. Les écritures, réplications, rebuilds, heartbeats et lectures distantes traversent le réseau east-west.

Un réseau médiocre transforme un SDS en générateur d'incidents.
10GMinimum fréquent pour petits clusters.
25GTrès bon standard moderne.
40/100GClusters flash/NVMe ou gros east-west.
LatencyCritique pour writes synchrones.
  • Réseau storage séparé ou QoS stricte.
  • Redondance switches et liens.
  • MTU cohérent bout-en-bout si jumbo frames.
  • Monitoring drops, errors, retransmits.
  • Tester perte de lien et switch reboot.
iperf3 -c node02
ethtool -S eth0
ss -ti
ping -f node02
mtr node02
sar -n DEV 1
11.12 Protection des données : replication, erasure coding, scrub

La réplication stocke plusieurs copies complètes. Simple, rapide à lire, coûteuse en capacité.

Replication factor 3 = 3 copies = overhead 3× = environ 33% utile

L'erasure coding découpe les données en fragments data + parity. Il améliore le rendement capacité au prix de CPU, latence et complexité de recovery.

EC 8+4 = 12 fragments ; tolère 4 fragments perdus ; overhead 1.5×
  • Scrub détecte incohérences et bit rot.
  • Self-heal réplique à nouveau après panne.
  • Backfill/rebalance consomme réseau et disques.
  • Full cluster empêche parfois healing correct.
DiskProtection contre disque mort.
HostProtection contre nœud mort.
RackProtection alimentation/switch rack.
ZoneProtection salle/site selon design.
11.13 Performance & tuning SDS
p99latency

Expérience réelle.

IOPSclient

Vu depuis application.

Recoveryload

Impact rebuild.

Hot spotsplacement

Déséquilibre nœuds.

# fio block workload example
fio --name=randrw --filename=/mnt/testfile --size=20G --rw=randrw --rwmixread=70 --bs=4k --iodepth=32 --numjobs=4 --direct=1 --time_based --runtime=120 --group_reporting

# Ceph examples
rados bench -p pool 60 write --no-cleanup
rados bench -p pool 60 seq
  • Séparer HDD/SSD/NVMe dans classes/pools.
  • Choisir replication vs EC selon latency/capacity.
  • Éviter sur-commit capacité.
  • Contrôler recovery throttling.
  • Optimiser clients et mount options.
11.14 Monitoring indispensable : health, capacity, latency, rebalance
IndicateurPourquoi
Cluster healthÉtat global.
Capacity used/raw/availableÉviter full cluster.
Degraded / misplaced objectsRisque résilience.
Recovery/backfill rateImpact production.
Client latency p95/p99SLO applicatif.
  • Exporter metrics cluster et nœuds.
  • Dashboards Grafana par service.
  • Alertes health, capacity, latency, degraded.
  • Corrélation réseau/disque/CPU.
SLO exemple : 99% des écritures bloc < 10 ms hors fenêtre recovery déclarée
Alerting : p99 > seuil pendant 10 min + degraded objects > 0
11.15 Sécurité SDS : auth, RBAC, encryption, multi-tenancy
  • Authentification clients et admins.
  • RBAC par projet/tenant.
  • Chiffrement en transit et at rest.
  • Network segmentation.
  • Secrets dans Vault/KMS/Kubernetes secrets sécurisés.

Le SDS peut servir plusieurs équipes ou clients. Il faut isoler buckets, pools, namespaces, quotas, policies, clés et métriques.

Pour les services objet, WORM/Object Lock protège backups et archives contre suppression ou chiffrement ransomware.

  • Création/suppression volumes.
  • Modification policies.
  • Accès admin.
  • Suppression snapshots.
  • Accès bucket public ou policy dangereuse.
11.16 Matrice de décision SDS
BesoinOption pertinenteAttention
S3 privé performantMinIOObjet seulement, design EC.
Bloc/fichier/objet unifiéCephOps exigeantes.
K8s simpleLonghorn/OpenEBSPerformance et réseau.
K8s enterprisePortworx/ODFLicences/support.
VMwarevSANÉcosystème VMware.
HCI enterpriseNutanixCoût et plateforme.
  • Quel protocole : bloc, fichier, objet ?
  • Quelle latence p99 attendue ?
  • Quelle équipe opérera le cluster ?
  • Quel support 24/7 ?
  • Quelle stratégie backup/DR ?
La meilleure technologie est celle que l'équipe peut diagnostiquer, réparer et mettre à jour sans panique.
11.17 Runbooks production SDS
  1. Confirmer alerte et nœud impacté.
  2. Vérifier health cluster.
  3. Identifier disque/OSD exact.
  4. Vérifier capacité restante et degraded data.
  5. Remplacer disque ou redémarrer service selon cause.
  6. Surveiller backfill/recovery.
Un SDS plein est une urgence majeure. Certaines opérations de healing peuvent être bloquées.
  1. Stopper ingestion non critique.
  2. Identifier pools/buckets volumineux.
  3. Ajouter capacité ou supprimer données validées.
  4. Vérifier snapshots/versions.
  5. Surveiller retour à état healthy.
  1. Comparer clients, cluster, réseau, disques.
  2. Vérifier recovery/rebalance en cours.
  3. Identifier hot node/hot pool.
  4. Vérifier drops/retransmits réseau.
  5. Throttle recovery si nécessaire.
  1. Lire release notes et matrice compatibilité.
  2. Backup configs.
  3. Vérifier health parfait avant upgrade.
  4. Upgrade rolling par nœud.
  5. Valider métriques et clients après chaque étape.
11.18 Checklist production SDS
ContrôleOK ?Note
Failure domains définisHost/rack/zone.
Réseau redondant et mesuréBandwidth, latency, drops.
Capacity headroomRebuild possible après panne.
Monitoring/alertingHealth, capacity, latency.
Backups externesSDS ≠ backup.
  • Runbooks testés.
  • Upgrade procedure validée.
  • Restore drill périodique.
  • Inventaire disques/nœuds.
  • Support et escalade documentés.
  • RBAC admin.
  • Segmentation réseau.
  • Chiffrement selon criticité.
  • Audit actions sensibles.
  • Secrets stockés proprement.
NO-GO si : monitoring absent, réseau non testé, aucune procédure restore, capacité trop juste, équipe non formée, pas de runbook incident.