Getty Images
So beeinflussen Container-Apps das Storage
Container-Storage oder Cloud Native Storage (CNS) ist auf die Arbeit mit Kubernetes-gesteuerten Containerumgebungen zugeschnitten und erleichtert die Arbeit mit entsprechenden Apps.
Je mehr Container-basierte Applikationen in der IT-Produktion auftauchen, desto stärker beeinflusst das auch das Storage.Dass die Daten dieser Apps irgendwo gespeichert werden müssen, hat in den vergangenen Jahren sogar einen neuen Storage-Typ entstehen lassen, sogenanntes Container-Storage. Container-native Storage (CNS) oder Cloud-native Storage unterscheidet sich von traditionellem Speicher durch die Applikationszentrierung. Sie bietet Entwicklern und den Eigentümern von Applikationen Selbstbedienungsfunktionen. CNS läuft ebenfalls in Containern und nutzt die Kubernetes Container-Orchestrierungsplattform.
Es gibt bereits einige CNS-Produkte und es werden neue dazukommen. Bei der Auswahl einer solchen Lösung sind einige Überlegungen nötig.
Was ist Container-native Storage?
So, wie die Verbreitung virtueller Maschinen (VMs) Storage veränderte, tun es heute Container-basierte Applikationen. Hypervisoren mit VMs virtualisieren den Hardware-Stack, Container das Betriebssystem. Jeder Container enthält alle Ressourcen, die nötig sind, damit eine Softwareapplikation laufen kann. Dadurch werden containerisierte Applikationen portabler als VMs. Containergruppen, sogenannte Pods, können frei zwischen Kubernetes-Clustern On-Premises und in Public Clouds verschoben werden.
CNS ist eine Form des Software-definierten Storage (SDS). Sie läuft innerhalb eines Container-Clusters und bildet einen Storage-Pool aus Laufwerken in jedem Host. Daher kann CNS überall On-Premises oder in Public Clouds laufen, je nachdem, wo die Daten sich zwischen Rechenzentren und Cloud Providern bewegen. Im Unterschied zum Container Storage Interface (CSI) stellen hier Storage-Systeme und traditionelle SDS-Produkte ihre Speicherkapazität und ihre Funktionen in Kubernetes bereit.
Traditionelle Produkte wie CSI (bekannt auch als Container-ready Storage) ermöglichen keine Container-Portabilität. CNS bindet sich an eine Applikation und bleibt ihr während des gesamten App-Lebenszyklus zugeordnet, während dem sich die App On-Premises in Public Clouds und zwischen ihnen bewegt. Das schaffen die CSI-Treiber nicht.
Die Unterschiede zwischen CNS und anderen Storage-Typen
Wie andere Formen von SDS fasst auch CNS Kapazität und Rechenleistung Hardware-übergreifend zu Pools zusammen. Man kann sich CNS gut als hyperkonvergente Infrastruktur (HCI) für Container vorstellen. Wie HCI kombiniert CNS Storage, Server und Virtualisierung in einer gemeinsamen Plattform. Allerdings mit dem Unterschied, das CNS in Containern läuft und durch Kubernetes gemanagt wird, während HCI als VM läuft und ein Hypervisor die HCI verwaltet.
Ein zentrales SAN verwaltet normalerweise weder HCI noch CNS. So wie virtuelle Administratoren oft Storage in HCI bereitstellen und managen, verwalten DevOps-Teams meist CNS. Durch die Kubernetes-Integration können Entwickler den Speicher mittels Tools bereitstellen, die sie schon kennen. Entwickler und Cloud-Administratoren sind verantwortlich für die aktive Bereitstellung der Systeme, die Teams aus dem IT-Betrieb für den Umgang mit den Daten auf dem CNS. Deshalb müssen sie die betreffenden Produkte kennen.
Wichtige CNS-Anbieter
CNS wird wie die meisten neuen Produkte derzeit vor allem von Startups angeboten. Davon gibt es zwei bemerkenswerte Ausnahmen: Red Hat OpenShift Data Foundation (ODF) und Pure Storage Portworx. Red Hat OTF gehört zu Red Hats OpenShift-Containerplattform. Bis März 2020 hieß die Lösung OpenShift Container Storage. OpenShift gehört zu IBM, nachdem IBM 2019 Red Hat übernommen hat.
Portworx brachte seine CNS-Software 2016 auf den Markt. Pure, ein Anbieter von Flash-Arrays, kaufte Portworx im Winter 2020 für 370 Millionen Dollar. Pure vertreibt Portworx-Software weiterhin unabhängig von seinen Arrays. Allerdings gibt es auf einigen Gebieten Integration. Ein erstes ist die Software Portworx PX-Backup auf Pures FlashBlade Backup-Target.
Andere Startups mit Storage-Software, die in Containern läuft, sind Diamanti, Ionir, MayaData, Robin.io und StorageOS.
Die meisten wichtigen Storage-Anbieter unterstützen den CSI-Treiber, über den ihre Arrays Daten von Container-basierten Apps speichern können. Aber das wird auf Dauer nicht ausreichen, da sich Container-Apps ausbreiten. Der Fall Pure-Portworx belegt, wie sich die Produkte unterscheiden. Pure unterstützt CSI für sein FlashArray und die FlashBlade-Systeme, wenn sie von Admins wie traditionelles Storage verwaltet werden, aber der Hersteller verkauft Portworx für DevOps-Storage.
Interessante CNS-Funktionen
CNS ist über APIs mit Kubernetes verbunden. Entwickler können in dieser ihnen bekannten Orchestrierungsplattform persistente Storage-Volumes bereitstellen, statt beim Storage-Administrator bestellen zu müssen. CNS unterstützt die dynamische Provisionierung in Kubernetes, was eine nachfragebasierte Storage-Bereitstellung ermöglicht. Andere wichtige Kubernetes-Funktionen, die CNS unterstützt, sind persistente Volumes (PV), persistente Volume-Claims (PVC) und Storage-Klassen.
Durch die Integration in Kubernetes kann CNS mit dem Kubernetes-Cluster skalieren und das Management im Vergleich zu einem externen Storage-System vereinfachen. Aber ausschließlich mit Kubernetes zu arbeiten, reicht nicht. Wenn Organisationen Container-basierte Apps in der Produktionsnetze übernommen werden, brauchen sie die in Unternehmen üblichen Storage-Funktionen. CNS muss also auch Dienste wie Replikation, Kompression, Verschlüsselung, Thin Provisioning und Data Protection liefern. Auch Latenz muss bei CNS berücksichtigt werden, sobald Organisationen ihren Applikations-Entwicklungszyklus beschleunigen.
Datenschutz ist für Produktivanwendungen immer ein Thema. Einige CNS-Produkte haben eingebaute Datenschutzfunktionen wie Snapshots, während andere traditionelle Backup-Software brauchen, die Container unterstützt. Außerdem gibt es Backup-Produkte, die speziell für den Datenschutz in Containerumgebungen gebaut sind, zum Beispiel Kasten, das nun zu Veeam gehört, und Trillio.