OpenKeel : la solution Cloud souveraine, française à portée européenne du groupe inherent Découvrir inherent

Architecture

Stockage bloc sur tout driver CSI

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.

Drivers CSI bloc supportés

Stockage software-defined sur les disques du cluster ou baies d'entreprise : le choix est une StorageClass, pas une réécriture.

Software-defined

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.

Par défaut

Longhorn

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.

Baie d'entreprise

NetApp

Baies NetApp via le driver CSI Trident de NetApp ; snapshots et clones sont faits par la baie.

Baie d'entreprise

Huawei Dorado

Baies all-flash OceanStor Dorado via le plugin CSI de Huawei ; snapshots et clones sont faits par la baie.

Driver OpenKeel

Pure Storage

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 driver

D'un volume Cinder à la baie

  1. 01

    Cinder API

    Même API de volumes et mêmes types de volume qu'OpenStack ; chaque type pointe vers un backend

  2. 02

    StorageClass

    Un backend csi-block par StorageClass : Longhorn, Ceph RBD, NetApp, Dorado ou Pure

  3. 03

    PVC en mode Block

    Volume = PVC dans le namespace du projet, snapshot = VolumeSnapshot, clone = dataSource de PVC

  4. 04

    KubeVirt

    Le PVC est branché à chaud dans la VM ; les attachements Nova sont conservés comme dans OpenStack

Ce qu'OpenKeel attend d'un driver CSI

Capacité CSIUtilisé par OpenKeel pour
Volumes bloc (volumeMode: Block)Volumes Cinder, disques des VMs, images Glance
VolumeSnapshotSnapshots Cinder, sauvegardes, retour à un snapshot
Clone (dataSource de PVC)Volume depuis une image, un snapshot ou un autre volume
Extension de volumeExtension Cinder, à chaud quand le driver le permet
ReadWriteMany en blocVolumes multi-attachés et live migration KubeVirt
VolumeGroupSnapshotSnapshots 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.

Plusieurs baies, un seul Cinder

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}

État de validation

DriverStatut dans OpenKeel
LonghornBackend 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 DoradoSupporté via le backend csi-block ; pas encore testé dans le lab OpenKeel