Rook-Ceph
Volumes bloc Ceph RBD gérés par Rook sur les disques du cluster ; le même Ceph sert aussi S3 et Swift via RGW.
OpenKeel : la solution Cloud souveraine, française à portée européenne du groupe inherent Découvrir inherent
Architecture
Volumes Cinder, images Glance et disques des VMs Nova reposent sur des volumes bloc Kubernetes : OpenKeel fonctionne avec tout driver CSI bloc, un backend Cinder par StorageClass. Rook-Ceph, Longhorn, NetApp, Huawei Dorado et notre propre driver Pure Storage sont supportés.
Stockage software-defined sur les disques du cluster ou baies d'entreprise : le choix est une StorageClass, pas une réécriture.
Volumes bloc Ceph RBD gérés par Rook sur les disques du cluster ; le même Ceph sert aussi S3 et Swift via RGW.
Le backend par défaut d'okadm en production et la référence des tests : volumes répliqués sur les disques des nœuds, snapshots, sauvegardes, RWX.
Baies NetApp via le driver CSI Trident de NetApp ; snapshots et clones sont faits par la baie.
Baies all-flash OceanStor Dorado via le plugin CSI de Huawei ; snapshots et clones sont faits par la baie.
Notre propre driver CSI en Go pour FlashArray en iSCSI : multipath, snapshots et snapshots de groupe, clones, extension à chaud, RWX bloc pour la live migration KubeVirt.
Notre driverMême API de volumes et mêmes types de volume qu'OpenStack ; chaque type pointe vers un backend
Un backend csi-block par StorageClass : Longhorn, Ceph RBD, NetApp, Dorado ou Pure
Volume = PVC dans le namespace du projet, snapshot = VolumeSnapshot, clone = dataSource de PVC
Le PVC est branché à chaud dans la VM ; les attachements Nova sont conservés comme dans OpenStack
| Capacité CSI | Utilisé par OpenKeel pour |
|---|---|
| Volumes bloc (volumeMode: Block) | Volumes Cinder, disques des VMs, images Glance |
| VolumeSnapshot | Snapshots Cinder, sauvegardes, retour à un snapshot |
| Clone (dataSource de PVC) | Volume depuis une image, un snapshot ou un autre volume |
| Extension de volume | Extension Cinder, à chaud quand le driver le permet |
| ReadWriteMany en bloc | Volumes multi-attachés et live migration KubeVirt |
| VolumeGroupSnapshot | Snapshots cohérents de plusieurs volumes (les groupes Cinder ne sont pas encore implémentés) |
Les QoS specs deviennent des paramètres de StorageClass quand le driver les supporte ; sinon c'est un écart connu. Source : generate-go-from-spec/references/backends/cinder-csi-block.md, openkeel-cinder/config/config.example.yaml.
Chaque backend désigne une StorageClass et sa classe de snapshot ; les types de volume laissent le choix aux tenants. L'hôte du volume s'écrit openkeel@<backend>#<storage class>.
backends:
- name: longhorn
driver: csi-block
storage_class: longhorn
snapshot_class: longhorn-snapshot
volume_mode: Block
- name: pure
driver: csi-block
storage_class: pure-iscsi
snapshot_class: pure-snapshot
volume_mode: Block
multiattach: true
volume_types:
- {name: standard, backend: longhorn}
- {name: performance, backend: pure}| Driver | Statut dans OpenKeel |
|---|---|
| Longhorn | Backend par défaut ; les tests de Cinder, Glance et Nova s'exécutent dessus |
| Pure Storage (driver OpenKeel) | Prototype : csi-sanity passe en mémoire (79 specs) ; pas encore exécuté sur une vraie FlashArray |
| Rook-Ceph (RBD) | Supporté via le backend csi-block ; pas encore testé dans le lab OpenKeel |
| NetApp (Trident) | Supporté via le backend csi-block ; pas encore testé dans le lab OpenKeel |
| Huawei Dorado | Supporté via le backend csi-block ; pas encore testé dans le lab OpenKeel |