{"id":2068,"date":"2024-02-19T10:27:00","date_gmt":"2024-02-19T10:27:00","guid":{"rendered":"https:\/\/thriving-sanctuary.dbc4320.deploio.app\/the-choice-between-block-file-and-object-storage\/"},"modified":"2024-07-09T08:52:38","modified_gmt":"2024-07-09T08:52:38","slug":"the-choice-between-block-file-and-object-storage","status":"publish","type":"post","link":"https:\/\/archive.5fcf01f.deploio.app\/de\/the-choice-between-block-file-and-object-storage\/","title":{"rendered":"Die Wahl zwischen Block, File und Object Storage"},"content":{"rendered":"\n<p>Wenn man mit anderen \u00fcber die Migration ihrer Anwendungen auf Kubernetes spricht, tauchen oft Fragen zur Datenspeicherung auf:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verbleiben die Daten in der Schweiz (Datenlokalit\u00e4t)?<\/li>\n\n\n\n<li>Sind die Daten auf dem Speicher verschl\u00fcsselt?<\/li>\n\n\n\n<li>Gibt es eine Verschl\u00fcsselung w\u00e4hrend des \u00dcbertragens?<\/li>\n\n\n\n<li>Ist es m\u00f6glich, \u00abgrosse Zahl einf\u00fcgen\u00bb Speicherplatz zur Verf\u00fcgung zu stellen?<\/li>\n<\/ul>\n\n\n\n<p>Eine Sache, die oft \u00fcbersehen wird, ist die Frage, wie man auf Daten in einem Kubernetes-Cluster mit mehreren Nodes zugreifen und sie speichern kann und welche Infrastruktur daf\u00fcr ben\u00f6tigt wird. Da wir hier mehrere Optionen haben, m\u00f6chte ich dieses Thema n\u00e4her beleuchten und die Unterschiede erl\u00e4utern.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Warum muss man sich entscheiden?<\/h2>\n\n\n\n<p>H\u00e4ufig werden Anwendungen direkt auf einem einzigen Server (VM oder Bare Metal) ausgef\u00fchrt, da die Rechenleistung eines Computers f\u00fcr den jeweiligen Anwendungsfall ausreicht. Wenn noch andere Anwendungen laufen, werden diese entweder auf demselben Rechner oder auf einer anderen einzelnen Instanz betrieben. Das Speichern von Daten ist einfach, da die Anwendung nur auf einer lokalen Festplatte lesen und schreiben muss. Diese Architektur entwickelt sich meist aus historischen und wirtschaftlichen Gr\u00fcnden, da kein Load Balancer oder kompliziertes Cluster-Setup erforderlich ist.<br><br>Um nun all diese Anwendungen in einem Kubernetes-Cluster zu konsolidieren (um das Deployment zu vereinheitlichen, mehr Fehlertoleranz zu bieten usw.), sollten die meisten Anwendungen Folgendes unterst\u00fctzen: den verteilten Betrieb mehrerer Instanzen derselben Applikation (auf verschiedenen Nodes).<br><br>Der Grund daf\u00fcr ist, dass die Nodes in einem Kubernetes-Cluster sehr dynamisch sind. Ein Node kann jederzeit ausfallen (aufgrund eines unerwarteten Ausfalls, einer Wartung, der automatischen Skalierung des Clusters usw.). Wenn wir zum Beispiel\u00a0<a href=\"https:\/\/docs.nine.ch\/docs\/nke\/nine-kubernetes-engine#maintenance-windows\" target=\"_blank\" rel=\"noreferrer noopener\">Cluster-Upgrades auf unseren NKE-Clustern<\/a>\u00a0durchf\u00fchren, ersetzen wir die Nodes jedes Clusters vollst\u00e4ndig, anstatt die Softwarepakete des Betriebssystems auf jeder Instanz zu aktualisieren. Im Falle eines Node-Ausfalls k\u00fcmmert sich Kubernetes um das Verschieben laufender Anwendungen auf andere Server im Cluster. Dies kann jedoch einige Minuten dauern &#8211; wenn dabei nur eine Instanz der Anwendung l\u00e4uft, kann dies zu kurzen Unterbrechungen f\u00fchren. Diese Unterbrechungen k\u00f6nnen sich in einem Wartungsfenster summieren, da jeder Node ersetzt werden muss. Die parallele Ausf\u00fchrung der Anwendung auf mehreren Nodes l\u00f6st dieses Problem und ist eine der von uns empfohlenen Best Practices.<br><br>Eine Herausforderung gibt es jedoch dabei. Wenn jede Anwendungsinstanz Daten nur lokal auf dem Node speichert, auf dem sie l\u00e4uft, haben andere Instanzen keinen Zugriff auf diese Daten, da sie auf anderen Rechnern betrieben werden. H\u00e4ufig speichern Webanwendungen von Usern hochgeladene Daten (PDFs, Bilder usw.). Diese Daten m\u00fcssen nun f\u00fcr alle Anwendungsinstanzen zug\u00e4nglich sein. Neben unseren Applikationen, die f\u00fcr den Einsatz in einer verteilten Umgebung bereit sein m\u00fcssen, ben\u00f6tigen wir daher m\u00f6glicherweise auch ein Speichersystem, auf das verteilte Clients zugreifen k\u00f6nnen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Was steht zur Auswahl<\/h2>\n\n\n\n<p>Basierend auf dem letzten Abschnitt l\u00e4sst sich der Zugriff auf das Speichersystem in Kubernetes in zwei Typen unterteilen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>read-write-once (RWO)<\/li>\n\n\n\n<li>read-write-many (RWX)<\/li>\n<\/ul>\n\n\n\n<p>Der Unterschied ist einfach zu erkl\u00e4ren. Wenn auf einen Speicherort nur ein \u00abWriter\u00bb (eine Anwendung, die Daten schreiben oder l\u00f6schen will) auf einen Node und zu einem bestimmten Zeitpunkt zugreifen kann, wird die Zugriffsart RWO genannt. Es kann sein, dass weitere Anwendungen, die auf anderen Nodes laufen, Lesezugriff auf diesen Speicherort erhalten k\u00f6nnen, aber das h\u00e4ngt vom verwendeten System ab.<br><br>Wenn mehrere Applikationen (auf verschiedenen Nodes) \u00c4nderungen an den Daten vornehmen m\u00fcssen, ben\u00f6tigen wir ein Speichersystem, das den RWX-Zugriff unterst\u00fctzt.<br><br><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"441\" class=\"wp-image-3154\" style=\"width: 800px;\" src=\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/02\/09b510e0-UAS_storage_options-scaled.webp\" alt=\"\" srcset=\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/02\/09b510e0-UAS_storage_options-scaled.webp 2560w, https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/02\/09b510e0-UAS_storage_options-450x248.webp 450w, https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/02\/09b510e0-UAS_storage_options-570x314.webp 570w, https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/02\/09b510e0-UAS_storage_options-768x424.webp 768w, https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/02\/09b510e0-UAS_storage_options-1536x847.webp 1536w, https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/02\/09b510e0-UAS_storage_options-2048x1129.webp 2048w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><br><em>Bildquelle:\u00a0<\/em><a href=\"https:\/\/canonical.com\/blog\/what-are-the-different-types-of-storage-block-object-and-file\" target=\"_blank\" rel=\"noreferrer noopener\">Canonical<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Block Storage<\/h2>\n\n\n\n<p>Wenn eine Anwendung auf Partitionen oder ganze Festplatten zugreift, sprechen wir im Allgemeinen von Block Storage (da auf Festplattenbl\u00f6cke direkt zugegriffen wird). Normalerweise legen wir ein Dateisystem an und stellen es den Anwendungen zur Verf\u00fcgung, die auf diesem einen Node laufen (Block Storage ist also ein Vertreter der Kategorie \u00abRWO-Zugriff\u00bb).<br><br>Wenn jemand also eine einzelne Anwendung (z. B. einen Postgres-Datenbank-Pod f\u00fcr die Entwicklung) hat, die ihren eigenen Speicherplatz ben\u00f6tigt, dann sollte derjenige auf Block Storage setzen.<br><br>Hierf\u00fcr gibt es zwei Varianten:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Node Local Block Storage (d.h. eine Festplatte, die an einen bestimmten Node angeschlossen ist)<\/li>\n\n\n\n<li>Remote Block Storage (auf den man \u00fcber iSCSI, Fibre Channel usw. zugreift)<\/li>\n<\/ul>\n\n\n\n<p>Remote Block Storage kann im Falle eines Ausfalls oder einer Wartung oft an einen anderen Node angebunden werden und bietet daher Fehlertoleranz auf Maschinenebene. Persistent Node Local Block Storage hingegen ist an einen bestimmten Node gebunden, kann aber sinnvoll sein, wenn Bare-Metal-Server Teil des Kubernetes-Clusters sind und die Anwendung sehr schnellen Zugriff auf den Speicherort ben\u00f6tigt. Allerdings sind alle Anwendungen, die Persistent Node Local Block Storage verwenden, an diesen einen Server gebunden, und im Falle eines Ausfalls kann die Anwendung daher nicht ausgef\u00fchrt werden. M\u00f6glicherweise k\u00f6nnen in einem solchen Fall spezielle fehlerbehebende Algorithmen in der Anwendung selbst eingesetzt werden (in diesem Fall kommuniziert die Software selbst mit anderen Instanzen und kann sich bei Ausf\u00e4llen selbst reparieren), aber im Allgemeinen empfehlen wir die Verwendung von Fast Remote Block Storage, da dieser in den meisten F\u00e4llen mehr Flexibilit\u00e4t bietet (auch in Bezug auf die Speichererweiterung). Wir betreiben zum Beispiel alle unsere NKE-Cluster auf virtuellen Maschinen und unterst\u00fctzen standardm\u00e4ssig\u00a0<a href=\"https:\/\/docs.nine.ch\/docs\/nke\/nine-kubernetes-engine#persistent-storage\" target=\"_blank\" rel=\"noreferrer noopener\">Fast Remote Block Storage<\/a> statt Persistent Node Local Block Storage.<br><br>Es gibt auch fl\u00fcchtige Node-Local-Speicherl\u00f6sungen wie Kubernetes emptyDir oder Googles lokale SSD-Funktion f\u00fcr GKE-Cluster, die als Scratch Space oder tempor\u00e4rer Speicher verwendet werden k\u00f6nnen.<br><br>Im Normalfall zahlt man f\u00fcr die Menge an Block Storage, die man angefordert hat, und nicht daf\u00fcr, wie viel man davon bereits verbraucht hat.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">File Storage<\/h2>\n\n\n\n<p>Im Gegensatz zu Block Storage erm\u00f6glicht File Storage (wie der Name schon sagt) die gemeinsame Nutzung von Dateien durch mehrere verteilte Clients, indem ein gemeinsames Dateisystem genutzt wird. Anwendungen, die auf Kubernetes laufen, k\u00f6nnen auf diese Dateien zugreifen, als w\u00e4ren es lokale Dateien. Da fast jede Programmiersprache den Zugriff auf Dateien erm\u00f6glicht, ist die Verwendung von File Storage meist die erste Wahl, wenn ein verteilter Lese- und Schreibzugriff erforderlich ist. L\u00f6sungen wie NFS, CIFS, CephFS oder GlusterFS implementieren eine derartige L\u00f6sung.<br><br>Dateien sind in einem Verzeichnisbaum strukturiert, der relativ viele Verzweigungen haben kann. Jede Datei hat eine Payload (die eigentlichen Daten der Datei), ben\u00f6tigt aber zus\u00e4tzlich Metadaten, die gespeichert werden m\u00fcssen (Zugriffsrechte, Dateityp usw.). Da mehrere verteilte Clients parallel auf das Dateisystem zugreifen k\u00f6nnen, m\u00fcssen zus\u00e4tzlich Sperrmechanismen vorhanden sein, die eine konsistente Sicht f\u00fcr jeden Client gew\u00e4hrleisten. Dies wird von den verschiedenen Implementierungen unterschiedlich gehandhabt (und hat sich beispielsweise auch bei NFS-Implementierungen im Laufe der Zeit ge\u00e4ndert). Ohne zu sehr in die technischen Details zu gehen, bieten File-Storage-Systeme meist eine geringere Leistung im Vergleich zu Block Storage. Allerdings erm\u00f6glichen sie auch den RWX-Zugriff, was mitunter eine Voraussetzung f\u00fcr die Verwendung von Kubernetes ist. Ausserdem bieten nicht alle File-Storage-L\u00f6sungen volle POSIX-Kompatibilit\u00e4t.<br><br>Aus Sicht eines Infrastrukturanbieters ist es nicht so einfach, dynamischen File Storage in einer Kubernetes-Umgebung bereitzustellen und zu betreiben. Fr\u00fcher haben wir einige NFS-Instanzen im Cluster selbst verwaltet, was zu Problemen w\u00e4hrend der Wartungszeiten f\u00fchrte, in denen alle Nodes ausgetauscht werden. Manchmal blieben Clients stecken und Pods konnten nicht gestartet werden. Hinzu kommt, dass NFS und CIFS seit langem bestehende L\u00f6sungen sind, die m\u00f6glicherweise nicht in die dynamischen Umgebungen von heute passen.<br><br>NFSv3 beispielsweise authentifiziert Clients auf Grundlage von IP-Adressen, die in einem Kubernetes-Cluster meist fl\u00fcchtig sind. NFSv4 kann Clients sicher authentifizieren, aber daf\u00fcr wird eine Kerberos-Infrastruktur ben\u00f6tigt. CIFS unterst\u00fctzt einige gute Funktionen, liefert aber auch Windows-spezifische Features wie etwa die Druckerfreigabe, die in einer Kubernetes-Umgebung nicht wirklich ben\u00f6tigt werden. Ausserdem gibt es derzeit zwei NFS-bezogene Kubernetes-Sigs-Projekte, aber keines f\u00fcr CIFS. CephFS ist sehr vielversprechend in Bezug auf Funktionen und Skalierbarkeit, aber die Verwaltung ist sehr komplex (auch wenn\u00a0<a href=\"https:\/\/github.com\/rook\/rook\" target=\"_blank\" rel=\"noreferrer noopener\">rook<\/a>\u00a0diese Situation bereits verbessert hat). Als wir vor einigen Jahren noch Openshift-Cluster betrieben haben, verwendeten wir fr\u00fche Versionen von GlusterFS, was damals viele Probleme mit Konsistenz und Verf\u00fcgbarkeit verursachte.<br><br>Die Bereitstellung automatischer Sicherungen und Wiederherstellungsm\u00f6glichkeiten f\u00fcr File-Storage-L\u00f6sungen in einer Kubernetes-Umgebung kann eine zus\u00e4tzliche Herausforderung darstellen.<br><br>Insgesamt sind File-Storage-L\u00f6sungen mit einem h\u00f6heren Preis verbunden, da ihr automatisierter Betrieb einen erheblichen Entwicklungsaufwand erfordert. Wir stellen einen\u00a0<a href=\"https:\/\/docs.nine.ch\/docs\/nke\/nine-kubernetes-engine#read-write-many-rwx\" target=\"_blank\" rel=\"noreferrer noopener\">RWX-Speicher<\/a>\u00a0in unseren NKE-Clustern bereit, der durch eine NFS-L\u00f6sung unseres Infrastruktur-Anbieters unterst\u00fctzt wird.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Object Storage<\/h2>\n\n\n\n<p>Neben den eben erw\u00e4hnten File-Storage-L\u00f6sungen erfreut sich Object Storage zunehmender Beliebtheit, da diese Speicherart ebenfalls einen verteilten Lese- und Schreibzugriff erm\u00f6glicht. Anstelle von Dateien werden die Daten in Objekten gespeichert, die eine eindeutige ID in einem \u00abFlat Namespace\u00bb (Bucket) haben. Jedes Objekt ist ausserdem mit Metadaten versehen (sodass eine Suche m\u00f6glich ist).<br><br>Der Zugriff auf die Objekte erfolgt \u00fcber HTTP-basierte Protokolle, wobei Amazons S3 das beliebteste ist (da es von Amazon entwickelt wurde). Diese Art des Zugriffs unterscheidet sich stark von L\u00f6sungen, die auf File Storage basieren. Es gibt kein gemeinsam genutztes Dateisystem mehr, das an den Container \u00fcbergeben wird. Das zugrundeliegende Betriebssystem oder der Cluster-Orchestrator sind nicht mehr beteiligt am Datenzugriff beteiligt. Stattdessen greift die Anwendung selbst \u00fcber Bibliotheken auf das Object-Storage-System zu. Dies bietet viel Flexibilit\u00e4t, kann aber auch \u00c4nderungen am Quellcode der Anwendung bedeuten. Diese Code\u00e4nderungen sind auch der Grund daf\u00fcr, dass einige Anwendungen nicht auf Object Storage setzen. Die Implementierung w\u00e4re einfach zu viel Arbeit.<br><br>Wenn eine Anwendung jedoch Object-Storage-L\u00f6sungen nutzen kann, bringt dies einige grossartige Vorteile mit sich. Hier einige Beispiele:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pay-what-you-use-Modell: es wird nur der genutzte Speicherplatz berechnet (plus Geb\u00fchren f\u00fcr API-Aufrufe und\/oder verwendete Bandbreite)<\/li>\n\n\n\n<li>Praktisch unbegrenzter Speicher (ben\u00f6tigter Speicherplatz muss nicht vordefiniert werden)<\/li>\n\n\n\n<li>Verschiedene Richtlinieneinstellungen erm\u00f6glichen die Kontrolle der Zugriffsberechtigungen f\u00fcr Buckets und der darin enthaltenen Objekte auf Basis einzelner Benutzer (die durch \u00abZugriffsschl\u00fcssel\u00bb identifiziert werden)<\/li>\n\n\n\n<li>Write-once-read-many Buckets (WORM): Daten, die einmal geschrieben wurden, k\u00f6nnen nicht mehr gel\u00f6scht oder \u00fcberschrieben werden. Richtlinien k\u00f6nnen daf\u00fcr sorgen, dass Daten nach einer bestimmten Zeit automatisch gel\u00f6scht werden.<\/li>\n\n\n\n<li>Datenzugriff von \u00fcberall: Auf Buckets und Objekte kann \u00fcblicherweise von \u00fcberall auf der Welt zugegriffen werden, unabh\u00e4ngig davon, wo die Anwendung l\u00e4uft. Eine deployte File-Storage-L\u00f6sung ist m\u00f6glicherweise nicht von ausserhalb des Kubernetes-Clusters zug\u00e4nglich.<\/li>\n\n\n\n<li>Die Verwendung von HTTPS bietet Verschl\u00fcsselung bei der \u00dcbertragung<\/li>\n\n\n\n<li>Meist unabh\u00e4ngig vom Anbieter: Man kann einfach zu einem anderen Anbieter wechseln, sofern das Object-Storage-Protokoll dasselbe ist (und man keine sehr anbieterspezifischen Funktionen nutzt)<\/li>\n<\/ul>\n\n\n\n<p>Aber es gibt auch einige Nachteile bei Object Storage und dessen Implementierungen. Objekte k\u00f6nnen nur als Ganzes geschrieben werden. Das bedeutet, dass ein Objekt nicht ge\u00f6ffnet werden kann, um es zu erg\u00e4nzen (wie es bei File Storage m\u00f6glich ist). Man m\u00fcsste das gesamte Objekt herunterladen, die Daten in der Anwendung anh\u00e4ngen und alle Daten erneut hochladen. Der Zugriff auf Object Storage ist oft langsamer als auf File Storage, sodass Anwendungen, die einen schnellen Zugriff auf Daten ben\u00f6tigen, m\u00f6glicherweise zwischengespeichert werden oder auf eine File-Storage-L\u00f6sung zur\u00fcckgreifen m\u00fcssen. Um den Zugriff auf Object-Storage-Systeme zu beschleunigen, sollten die Anfragen nach M\u00f6glichkeit parallel erfolgen. Es gibt auch Unterschiede im Funktionsumfang (und der Qualit\u00e4t) von Object-Storage-L\u00f6sungen, die den Zugriff \u00fcber das gleiche Protokoll erm\u00f6glichen.<\/p>\n\n\n\n<p>F\u00fcr unsere Kund*innen bieten wir eine&nbsp;S3-kompatible Object-Storage-L\u00f6sung, gehostet in Schweizer Rechenzentren.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Was soll ich also verwenden?<\/strong><\/h2>\n\n\n\n<p>Wenn die Anwendung nur aus einer einzigen Instanz besteht und nur selbst Lese- und Schreibzugriff ben\u00f6tigt, sollte ein schneller Block Storage die Wahl sein. Er erm\u00f6glicht im Falle eines Ausfalls ein Failover auf einen anderen Node und bietet eine gute Leistung.<\/p>\n\n\n\n<p>Wenn verteilte Lese- und Schreibzugriffe ben\u00f6tigt werden, bevorzugen wir die Verwendung von Object Storage gegen\u00fcber File Storage (wenn dein Anwendungsfall dies zul\u00e4sst). Auch wenn die jeweilige Anwendung Object Storage noch nicht unterst\u00fctzt, k\u00f6nnte sich eine Implementierung dieser auf lange Sicht lohnen. Die Verwendung von Objekten erm\u00f6glicht einfach mehr Flexibilit\u00e4t und bietet oft auch mehr Funktionen.<\/p>\n\n\n\n<p><em>Bildquelle Featured Image:&nbsp;<a href=\"https:\/\/www.intelligentcio.com\/apac\/2023\/10\/11\/hitachi-vantara-unveils-hitachi-virtual-storage-platform-one\/\" rel=\"noreferrer noopener\" target=\"_blank\">Intelligent CIO<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wenn man mit anderen \u00fcber die Migration ihrer Anwendungen auf Kubernetes spricht, tauchen oft Fragen zur Datenspeicherung auf: Eine Sache, die oft \u00fcbersehen wird, ist die Frage, wie man auf Daten in einem Kubernetes-Cluster mit mehreren Nodes zugreifen und sie speichern kann und welche Infrastruktur daf\u00fcr ben\u00f6tigt wird. Da wir hier mehrere Optionen haben, m\u00f6chte [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":1222,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[399],"tags":[398,414],"class_list":["post-2068","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-know-how-de","tag-managed-kubernetes-de","tag-object-storage-de"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Die Wahl zwischen Block, File und Object Storage - Nine<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Die Wahl zwischen Block, File und Object Storage - Nine\" \/>\n<meta property=\"og:description\" content=\"Wenn man mit anderen \u00fcber die Migration ihrer Anwendungen auf Kubernetes spricht, tauchen oft Fragen zur Datenspeicherung auf: Eine Sache, die oft \u00fcbersehen wird, ist die Frage, wie man auf Daten in einem Kubernetes-Cluster mit mehreren Nodes zugreifen und sie speichern kann und welche Infrastruktur daf\u00fcr ben\u00f6tigt wird. Da wir hier mehrere Optionen haben, m\u00f6chte [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/\" \/>\n<meta property=\"og:site_name\" content=\"Nine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/NineInternetSolutionsAG\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-19T10:27:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-09T08:52:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nine.ch\/app\/uploads\/2024\/03\/1_AdobeStock_616004095-3-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"450\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Sebastian Nickel\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nine_ch\" \/>\n<meta name=\"twitter:site\" content=\"@nine_ch\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sebastian Nickel\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/\"},\"author\":{\"name\":\"Sebastian Nickel\",\"@id\":\"https:\/\/nine.ch\/#\/schema\/person\/2ec803af4c6ff8bef43682fe9770db13\"},\"headline\":\"Die Wahl zwischen Block, File und Object Storage\",\"datePublished\":\"2024-02-19T10:27:00+00:00\",\"dateModified\":\"2024-07-09T08:52:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/\"},\"wordCount\":2013,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/nine.ch\/#organization\"},\"image\":{\"@id\":\"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/03\/1_AdobeStock_616004095-3-1.jpg\",\"keywords\":[\"Managed Kubernetes\",\"Object Storage\"],\"articleSection\":[\"Know-how\"],\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/\",\"url\":\"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/\",\"name\":\"Die Wahl zwischen Block, File und Object Storage - Nine\",\"isPartOf\":{\"@id\":\"https:\/\/nine.ch\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/03\/1_AdobeStock_616004095-3-1.jpg\",\"datePublished\":\"2024-02-19T10:27:00+00:00\",\"dateModified\":\"2024-07-09T08:52:38+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/#breadcrumb\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/#primaryimage\",\"url\":\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/03\/1_AdobeStock_616004095-3-1.jpg\",\"contentUrl\":\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/03\/1_AdobeStock_616004095-3-1.jpg\",\"width\":1000,\"height\":450},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/nine.ch\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Die Wahl zwischen Block, File und Object Storage\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/nine.ch\/#website\",\"url\":\"https:\/\/nine.ch\/\",\"name\":\"Nine\",\"description\":\"Cloud Navigators\",\"publisher\":{\"@id\":\"https:\/\/nine.ch\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/nine.ch\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de-DE\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/nine.ch\/#organization\",\"name\":\"Nine\",\"url\":\"https:\/\/nine.ch\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\/\/nine.ch\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2023\/11\/Logo-SVG.svg\",\"contentUrl\":\"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2023\/11\/Logo-SVG.svg\",\"caption\":\"Nine\"},\"image\":{\"@id\":\"https:\/\/nine.ch\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/NineInternetSolutionsAG\",\"https:\/\/x.com\/nine_ch\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/nine.ch\/#\/schema\/person\/2ec803af4c6ff8bef43682fe9770db13\",\"name\":\"Sebastian Nickel\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de-DE\",\"@id\":\"https:\/\/nine.ch\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/48a9b15aace424f11059b569e1bbd08f92909e086d25da66c230d2d9a72a20cc?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/48a9b15aace424f11059b569e1bbd08f92909e086d25da66c230d2d9a72a20cc?s=96&d=mm&r=g\",\"caption\":\"Sebastian Nickel\"},\"url\":\"https:\/\/archive.5fcf01f.deploio.app\/de\/author\/sebastian-nickel\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Die Wahl zwischen Block, File und Object Storage - Nine","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/","og_locale":"de_DE","og_type":"article","og_title":"Die Wahl zwischen Block, File und Object Storage - Nine","og_description":"Wenn man mit anderen \u00fcber die Migration ihrer Anwendungen auf Kubernetes spricht, tauchen oft Fragen zur Datenspeicherung auf: Eine Sache, die oft \u00fcbersehen wird, ist die Frage, wie man auf Daten in einem Kubernetes-Cluster mit mehreren Nodes zugreifen und sie speichern kann und welche Infrastruktur daf\u00fcr ben\u00f6tigt wird. Da wir hier mehrere Optionen haben, m\u00f6chte [&hellip;]","og_url":"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/","og_site_name":"Nine","article_publisher":"https:\/\/www.facebook.com\/NineInternetSolutionsAG","article_published_time":"2024-02-19T10:27:00+00:00","article_modified_time":"2024-07-09T08:52:38+00:00","og_image":[{"width":1000,"height":450,"url":"https:\/\/nine.ch\/app\/uploads\/2024\/03\/1_AdobeStock_616004095-3-1.jpg","type":"image\/jpeg"}],"author":"Sebastian Nickel","twitter_card":"summary_large_image","twitter_creator":"@nine_ch","twitter_site":"@nine_ch","twitter_misc":{"Written by":"Sebastian Nickel","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/#article","isPartOf":{"@id":"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/"},"author":{"name":"Sebastian Nickel","@id":"https:\/\/nine.ch\/#\/schema\/person\/2ec803af4c6ff8bef43682fe9770db13"},"headline":"Die Wahl zwischen Block, File und Object Storage","datePublished":"2024-02-19T10:27:00+00:00","dateModified":"2024-07-09T08:52:38+00:00","mainEntityOfPage":{"@id":"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/"},"wordCount":2013,"commentCount":0,"publisher":{"@id":"https:\/\/nine.ch\/#organization"},"image":{"@id":"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/#primaryimage"},"thumbnailUrl":"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/03\/1_AdobeStock_616004095-3-1.jpg","keywords":["Managed Kubernetes","Object Storage"],"articleSection":["Know-how"],"inLanguage":"de-DE","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/","url":"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/","name":"Die Wahl zwischen Block, File und Object Storage - Nine","isPartOf":{"@id":"https:\/\/nine.ch\/#website"},"primaryImageOfPage":{"@id":"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/#primaryimage"},"image":{"@id":"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/#primaryimage"},"thumbnailUrl":"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/03\/1_AdobeStock_616004095-3-1.jpg","datePublished":"2024-02-19T10:27:00+00:00","dateModified":"2024-07-09T08:52:38+00:00","breadcrumb":{"@id":"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/#breadcrumb"},"inLanguage":"de-DE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/"]}]},{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/#primaryimage","url":"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/03\/1_AdobeStock_616004095-3-1.jpg","contentUrl":"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2024\/03\/1_AdobeStock_616004095-3-1.jpg","width":1000,"height":450},{"@type":"BreadcrumbList","@id":"https:\/\/nine.ch\/de\/the-choice-between-block-file-and-object-storage\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nine.ch\/de\/"},{"@type":"ListItem","position":2,"name":"Die Wahl zwischen Block, File und Object Storage"}]},{"@type":"WebSite","@id":"https:\/\/nine.ch\/#website","url":"https:\/\/nine.ch\/","name":"Nine","description":"Cloud Navigators","publisher":{"@id":"https:\/\/nine.ch\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nine.ch\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de-DE"},{"@type":"Organization","@id":"https:\/\/nine.ch\/#organization","name":"Nine","url":"https:\/\/nine.ch\/","logo":{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/nine.ch\/#\/schema\/logo\/image\/","url":"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2023\/11\/Logo-SVG.svg","contentUrl":"https:\/\/archive.5fcf01f.deploio.app\/app\/uploads\/2023\/11\/Logo-SVG.svg","caption":"Nine"},"image":{"@id":"https:\/\/nine.ch\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/NineInternetSolutionsAG","https:\/\/x.com\/nine_ch"]},{"@type":"Person","@id":"https:\/\/nine.ch\/#\/schema\/person\/2ec803af4c6ff8bef43682fe9770db13","name":"Sebastian Nickel","image":{"@type":"ImageObject","inLanguage":"de-DE","@id":"https:\/\/nine.ch\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/48a9b15aace424f11059b569e1bbd08f92909e086d25da66c230d2d9a72a20cc?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/48a9b15aace424f11059b569e1bbd08f92909e086d25da66c230d2d9a72a20cc?s=96&d=mm&r=g","caption":"Sebastian Nickel"},"url":"https:\/\/archive.5fcf01f.deploio.app\/de\/author\/sebastian-nickel\/"}]}},"_links":{"self":[{"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/posts\/2068","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/comments?post=2068"}],"version-history":[{"count":1,"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/posts\/2068\/revisions"}],"predecessor-version":[{"id":3179,"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/posts\/2068\/revisions\/3179"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/media\/1222"}],"wp:attachment":[{"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/media?parent=2068"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/categories?post=2068"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/archive.5fcf01f.deploio.app\/de\/wp-json\/wp\/v2\/tags?post=2068"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}