OpenKeel: la soluzione Cloud sovrana, francese e di portata europea, del gruppo inherent Scopri inherent

Architettura

Storage a blocchi su qualsiasi driver CSI

I volumi Cinder, le immagini Glance e i dischi delle VM Nova risiedono su volumi a blocchi Kubernetes: OpenKeel funziona con qualsiasi driver CSI a blocchi, un backend Cinder per StorageClass. Sono supportati Rook-Ceph, Longhorn, NetApp, Huawei Dorado e il nostro driver Pure Storage.

Driver CSI a blocchi supportati

Storage software-defined sui dischi del cluster o storage array enterprise: la scelta è una StorageClass, non una riscrittura.

Software-defined

Rook-Ceph

Volumi a blocchi Ceph RBD gestiti da Rook sui dischi del cluster; lo stesso Ceph fornisce anche S3 e Swift tramite RGW.

Predefinito

Longhorn

Il backend predefinito di okadm in produzione e il riferimento dei test: volumi replicati sui dischi dei nodi, snapshot, backup, RWX.

Storage array enterprise

NetApp

Storage array NetApp tramite il driver CSI Trident di NetApp; snapshot e cloni sono eseguiti dall'array.

Storage array enterprise

Huawei Dorado

Storage array all-flash OceanStor Dorado tramite il plugin CSI di Huawei; snapshot e cloni sono eseguiti dall'array.

Driver OpenKeel

Pure Storage

Il nostro driver CSI in Go per FlashArray su iSCSI: multipath, snapshot e snapshot di gruppo, cloni, estensione a caldo, RWX a blocchi per la live migration KubeVirt.

Il nostro driver

Da un volume Cinder allo storage array

  1. 01

    Cinder API

    La stessa API dei volumi e gli stessi tipi di volume di OpenStack; ogni tipo punta a un backend

  2. 02

    StorageClass

    Un backend csi-block per StorageClass: Longhorn, Ceph RBD, NetApp, Dorado o Pure

  3. 03

    PVC in modalità Block

    Volume = PVC nel namespace del progetto, snapshot = VolumeSnapshot, clone = dataSource del PVC

  4. 04

    KubeVirt

    Il PVC viene collegato a caldo alla VM; gli attachment Nova sono mantenuti come in OpenStack

Cosa si aspetta OpenKeel da un driver CSI

Funzionalità CSIUtilizzato da OpenKeel per
Volumi a blocchi (volumeMode: Block)Volumi Cinder, dischi delle VM, immagini Glance
VolumeSnapshotSnapshot Cinder, backup, ripristino a uno snapshot
Clone (dataSource del PVC)Volume da un'immagine, da uno snapshot o da un altro volume
Estensione del volumeEstensione Cinder, a caldo quando il driver lo consente
ReadWriteMany a blocchiVolumi multi-attach e live migration KubeVirt
VolumeGroupSnapshotSnapshot coerenti di più volumi (i gruppi Cinder non sono ancora implementati)

Le QoS specs diventano parametri della StorageClass quando il driver li supporta; altrimenti sono una lacuna nota. Fonte: generate-go-from-spec/references/backends/cinder-csi-block.md, openkeel-cinder/config/config.example.yaml.

Più storage array, un solo Cinder

Ogni backend indica una StorageClass e la sua classe di snapshot; i tipi di volume lasciano la scelta ai tenant. L'host del volume è 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}

Stato di validazione

DriverStato in OpenKeel
LonghornBackend predefinito; i test di Cinder, Glance e Nova vengono eseguiti su di esso
Pure Storage (driver OpenKeel)Prototipo: csi-sanity superato in memoria (79 specs); non ancora eseguito su una vera FlashArray
Rook-Ceph (RBD)Supportato tramite il backend csi-block; non ancora testato nel laboratorio OpenKeel
NetApp (Trident)Supportato tramite il backend csi-block; non ancora testato nel laboratorio OpenKeel
Huawei DoradoSupportato tramite il backend csi-block; non ancora testato nel laboratorio OpenKeel