OpenKeel: la solución Cloud soberana, francesa y de alcance europeo, del grupo inherent Descubrir inherent

Arquitectura

Almacenamiento en bloque sobre cualquier driver CSI

Los volúmenes de Cinder, las imágenes de Glance y los discos de las VM de Nova residen en volúmenes de bloque de Kubernetes: OpenKeel funciona con cualquier driver CSI de bloque, un backend de Cinder por StorageClass. Se admiten Rook-Ceph, Longhorn, NetApp, Huawei Dorado y nuestro propio driver Pure Storage.

Drivers CSI de bloque admitidos

Almacenamiento software-defined en los discos del clúster o cabinas empresariales: la elección es una StorageClass, no una reescritura.

Software-defined

Rook-Ceph

Volúmenes de bloque Ceph RBD gestionados por Rook en los discos del clúster; el mismo Ceph sirve también S3 y Swift a través de RGW.

Por defecto

Longhorn

El backend por defecto de okadm en producción y la referencia de las pruebas: volúmenes replicados en los discos de los nodos, snapshots, copias de seguridad, RWX.

Cabina empresarial

NetApp

Cabinas NetApp mediante el driver CSI Trident de NetApp; la cabina realiza los snapshots y los clones.

Cabina empresarial

Huawei Dorado

Cabinas all-flash OceanStor Dorado mediante el plugin CSI de Huawei; la cabina realiza los snapshots y los clones.

Driver de OpenKeel

Pure Storage

Nuestro propio driver CSI en Go para FlashArray sobre iSCSI: multipath, snapshots y snapshots de grupo, clones, ampliación en caliente, RWX de bloque para la live migration de KubeVirt.

Nuestro driver

De un volumen de Cinder a la cabina

  1. 01

    Cinder API

    La misma API de volúmenes y los mismos tipos de volumen que OpenStack; cada tipo apunta a un backend

  2. 02

    StorageClass

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

  3. 03

    PVC en modo Block

    Volumen = PVC en el namespace del proyecto, snapshot = VolumeSnapshot, clon = dataSource de PVC

  4. 04

    KubeVirt

    El PVC se conecta en caliente a la VM; los attachments de Nova se conservan como en OpenStack

Qué espera OpenKeel de un driver CSI

Capacidad CSIUso en OpenKeel
Volúmenes de bloque (volumeMode: Block)Volúmenes de Cinder, discos de VM, imágenes de Glance
VolumeSnapshotSnapshots de Cinder, copias de seguridad, reversión a un snapshot
Clon (dataSource de PVC)Volumen a partir de una imagen, de un snapshot o de otro volumen
Ampliación de volumenAmpliación en Cinder, en caliente cuando el driver lo permite
ReadWriteMany en bloqueVolúmenes multi-attach y live migration de KubeVirt
VolumeGroupSnapshotSnapshots coherentes de varios volúmenes (los grupos de Cinder aún no están implementados)

Las QoS specs se convierten en parámetros de la StorageClass cuando el driver las admite; si no, son una carencia conocida. Fuente: generate-go-from-spec/references/backends/cinder-csi-block.md, openkeel-cinder/config/config.example.yaml.

Varias cabinas, un solo Cinder

Cada backend designa una StorageClass y su clase de snapshot; los tipos de volumen permiten elegir a los tenants. El host del volumen se escribe 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}

Estado de validación

DriverEstado en OpenKeel
LonghornBackend por defecto; las pruebas de Cinder, Glance y Nova se ejecutan sobre él
Pure Storage (driver de OpenKeel)Prototipo: csi-sanity se supera en memoria (79 specs); aún no se ha ejecutado en una FlashArray real
Rook-Ceph (RBD)Admitido mediante el backend csi-block; aún no probado en el laboratorio de OpenKeel
NetApp (Trident)Admitido mediante el backend csi-block; aún no probado en el laboratorio de OpenKeel
Huawei DoradoAdmitido mediante el backend csi-block; aún no probado en el laboratorio de OpenKeel