<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Proxmox_Ceph</id>
	<title>Proxmox Ceph - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ixheim.de/index.php?action=history&amp;feed=atom&amp;title=Proxmox_Ceph"/>
	<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Proxmox_Ceph&amp;action=history"/>
	<updated>2026-04-17T07:47:17Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Xinux Wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://wiki.ixheim.de/index.php?title=Proxmox_Ceph&amp;diff=67267&amp;oldid=prev</id>
		<title>Maximilian.pottgiesser: Die Seite wurde neu angelegt: „= Ceph in Proxmox VE =  == Einleitung ==  Ceph ist ein verteiltes Storage-System, das in Proxmox VE nativ integriert ist. Es ermöglicht es, den lokalen Speich…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.ixheim.de/index.php?title=Proxmox_Ceph&amp;diff=67267&amp;oldid=prev"/>
		<updated>2026-03-09T06:11:48Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „= Ceph in Proxmox VE =  == Einleitung ==  Ceph ist ein verteiltes Storage-System, das in Proxmox VE nativ integriert ist. Es ermöglicht es, den lokalen Speich…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Ceph in Proxmox VE =&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Ceph ist ein verteiltes Storage-System, das in Proxmox VE nativ integriert ist. Es ermöglicht es, den lokalen Speicher mehrerer Nodes zu einem gemeinsamen, hochverfügbaren Storage-Pool zusammenzufassen – ohne externe SAN- oder NAS-Appliance.&lt;br /&gt;
&lt;br /&gt;
Dieses Dokument richtet sich an Schulungsteilnehmer und erklärt Ceph von den Grundlagen bis zur praktischen Einrichtung in Proxmox.&lt;br /&gt;
&lt;br /&gt;
== Das Problem: Warum Ceph? ==&lt;br /&gt;
&lt;br /&gt;
In einem klassischen Proxmox-Cluster mit lokalem Speicher (z.&amp;amp;nbsp;B. ZFS auf jedem Node) gibt es ein grundlegendes Problem:&lt;br /&gt;
&lt;br /&gt;
* Fällt ein Node aus, sind die darauf gespeicherten VM-Daten nicht verfügbar.&lt;br /&gt;
* Live-Migration von VMs zwischen Nodes erfordert gemeinsamen (''shared'') Speicher.&lt;br /&gt;
* Ein externes SAN oder NAS ist teuer und bildet einen ''Single Point of Failure''.&lt;br /&gt;
&lt;br /&gt;
Ceph löst diese Probleme, indem es die Daten '''verteilt und repliziert''' über alle beteiligten Nodes speichert.&lt;br /&gt;
&lt;br /&gt;
== Entstehungsgeschichte ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Zeitraum !! Ereignis&lt;br /&gt;
|-&lt;br /&gt;
| 2004–2007 || Entwicklung als Forschungsprojekt an der '''University of California, Santa Cruz (UCSC)''' durch '''Sage Weil''' im Rahmen seiner Doktorarbeit. Finanziert u.&amp;amp;nbsp;a. durch das U.S. Department of Energy und Lawrence Livermore National Laboratory.&lt;br /&gt;
|-&lt;br /&gt;
| 2006 || Erste Veröffentlichung als '''Open Source'''.&lt;br /&gt;
|-&lt;br /&gt;
| 2007 || Veröffentlichung der Dissertation: ''&amp;quot;Ceph: Reliable, Scalable, and High-Performance Distributed Storage&amp;quot;''&lt;br /&gt;
|-&lt;br /&gt;
| 2010 || Aufnahme des Ceph-Clients in den '''Linux Mainline-Kernel'''.&lt;br /&gt;
|-&lt;br /&gt;
| 2012 || Sage Weil gründet die Firma '''Inktank''' für kommerziellen Enterprise-Support.&lt;br /&gt;
|-&lt;br /&gt;
| 2014 || '''Red Hat übernimmt Inktank''' für ca. 175 Mio. USD. Ceph wird zum zentralen Baustein der Red Hat Storage-Strategie.&lt;br /&gt;
|-&lt;br /&gt;
| Heute || Aktive Community-Entwicklung unter der LGPL. Releases werden alphabetisch benannt (Luminous, Nautilus, Octopus, Quincy, Reef, Squid …). Beiträge von Red Hat, Canonical, SUSE u.&amp;amp;nbsp;v.&amp;amp;nbsp;m.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die Kernidee von Sage Weil war, ein verteiltes Dateisystem zu bauen, das '''ohne zentrale Metadaten-Server''' auskommt und stattdessen den '''CRUSH-Algorithmus''' nutzt, um die Datenverteilung rein rechnerisch zu bestimmen.&lt;br /&gt;
&lt;br /&gt;
== Analogie: Die verteilte Bibliothek ==&lt;br /&gt;
&lt;br /&gt;
Ceph lässt sich gut mit einer verteilten Bibliothek vergleichen:&lt;br /&gt;
&lt;br /&gt;
Stell dir vor, du hast '''drei Bibliotheken''' (Nodes) in einer Stadt. Statt jedes Buch nur in einer Bibliothek zu lagern, wird jedes Buch in '''Kopien (Replikate)''' auf mindestens zwei Bibliotheken verteilt. Wenn eine Bibliothek abbrennt, sind alle Bücher noch in den anderen verfügbar.&lt;br /&gt;
&lt;br /&gt;
* Die '''Bibliothekare''' entsprechen den OSDs – sie verwalten die Bücher.&lt;br /&gt;
* Der '''zentrale Katalog''' entspricht den MONs – er weiß, welches Buch wo liegt.&lt;br /&gt;
* Die '''Verwaltung''' entspricht dem MGR – sie sammelt Statistiken und bietet Übersicht.&lt;br /&gt;
&lt;br /&gt;
== Kernkomponenten ==&lt;br /&gt;
&lt;br /&gt;
=== MON (Monitor) ===&lt;br /&gt;
&lt;br /&gt;
Der ''Buchhalter'' des Clusters. MONs kennen den Zustand des gesamten Clusters und verwalten die ''Cluster Map''.&lt;br /&gt;
&lt;br /&gt;
* Es wird immer eine '''ungerade Anzahl''' benötigt (1, 3, 5) wegen des Quorum-Prinzips.&lt;br /&gt;
* In Proxmox läuft typischerweise ein MON auf jedem Node.&lt;br /&gt;
* MONs speichern '''keine Nutzdaten''', sondern nur Metadaten über den Cluster-Zustand.&lt;br /&gt;
&lt;br /&gt;
=== OSD (Object Storage Daemon) ===&lt;br /&gt;
&lt;br /&gt;
Die eigentlichen ''Arbeiter'' im Cluster. Jede physische Disk bekommt einen eigenen OSD.&lt;br /&gt;
&lt;br /&gt;
* OSDs speichern die Daten, replizieren untereinander und melden ihren Zustand an die MONs.&lt;br /&gt;
* Die Anzahl der OSDs bestimmt die Gesamtkapazität und Performance des Clusters.&lt;br /&gt;
* Fällt ein OSD aus, übernehmen die verbleibenden OSDs automatisch die Wiederherstellung (''Recovery'').&lt;br /&gt;
&lt;br /&gt;
=== MGR (Manager) ===&lt;br /&gt;
&lt;br /&gt;
Das ''Dashboard'' des Clusters. Manager sammeln Metriken und bieten Web-GUI sowie Monitoring-Schnittstellen.&lt;br /&gt;
&lt;br /&gt;
* Läuft in der Regel auf denselben Nodes wie die MONs.&lt;br /&gt;
* Stellt das Ceph-Dashboard in der Proxmox-Oberfläche bereit.&lt;br /&gt;
&lt;br /&gt;
=== Zusammenfassung der Rollen ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Komponente !! Rolle !! Anzahl (Empfehlung)&lt;br /&gt;
|-&lt;br /&gt;
| MON || Cluster-Zustand &amp;amp; Quorum || 3 (ungerade Anzahl)&lt;br /&gt;
|-&lt;br /&gt;
| OSD || Datenspeicherung &amp;amp; Replikation || 1 pro physischer Disk&lt;br /&gt;
|-&lt;br /&gt;
| MGR || Monitoring &amp;amp; Dashboard || 1–2 pro Cluster&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== CRUSH-Map und Placement Groups ==&lt;br /&gt;
&lt;br /&gt;
=== CRUSH-Algorithmus ===&lt;br /&gt;
&lt;br /&gt;
CRUSH ('''C'''ontrolled '''R'''eplication '''U'''nder '''S'''calable '''H'''ashing) ist das Herzstück von Ceph. Er bestimmt '''rein rechnerisch''', wo Daten gespeichert werden – ohne zentrale Lookup-Tabelle.&lt;br /&gt;
&lt;br /&gt;
Die '''CRUSH-Map''' ist ein Regelwerk, das sicherstellt:&lt;br /&gt;
* Replikate landen '''nie auf demselben Node'''.&lt;br /&gt;
* Die Verteilung berücksichtigt die physische Topologie (Racks, Nodes, Disks).&lt;br /&gt;
* Neue OSDs werden automatisch in die Verteilung aufgenommen.&lt;br /&gt;
&lt;br /&gt;
=== Placement Groups (PGs) ===&lt;br /&gt;
&lt;br /&gt;
Placement Groups sind eine '''Zwischenschicht''' zwischen den Objekten und den OSDs.&lt;br /&gt;
&lt;br /&gt;
Anstatt jedes einzelne Objekt individuell einem OSD zuzuordnen, werden Objekte in PGs gruppiert. Man kann sich PGs wie '''Postleitzahlen''' vorstellen: Statt jede Adresse einzeln zu routen, wird nach Postleitzahl sortiert.&lt;br /&gt;
&lt;br /&gt;
* Die Anzahl der PGs beeinflusst die Verteilungsgenauigkeit.&lt;br /&gt;
* Proxmox berechnet automatisch sinnvolle PG-Werte.&lt;br /&gt;
&lt;br /&gt;
== Pools und Proxmox-Integration ==&lt;br /&gt;
&lt;br /&gt;
=== Was ist ein Pool? ===&lt;br /&gt;
&lt;br /&gt;
Ein '''Pool''' ist ein logischer Speicherbereich in Ceph mit eigenen Regeln für:&lt;br /&gt;
* '''Replikationsfaktor''' (z.&amp;amp;nbsp;B. size=3, min_size=2)&lt;br /&gt;
* '''Placement Groups'''&lt;br /&gt;
* '''CRUSH-Regeln''' (auf welchen OSDs darf gespeichert werden?)&lt;br /&gt;
&lt;br /&gt;
=== Einrichtung in Proxmox (Überblick) ===&lt;br /&gt;
&lt;br /&gt;
# Ceph auf allen Nodes installieren (über die Proxmox-GUI unter ''Ceph'')&lt;br /&gt;
# '''MONs erstellen''' auf jedem Node&lt;br /&gt;
# '''OSDs erstellen''' – physische Disks zuweisen&lt;br /&gt;
# '''Pool anlegen''' mit gewünschtem Replikationsfaktor&lt;br /&gt;
# Pool als '''Proxmox-Storage''' einbinden (RBD)&lt;br /&gt;
&lt;br /&gt;
Danach steht der Ceph-Pool als Storage für VMs und Container zur Verfügung. Live-Migration funktioniert sofort, da alle Nodes auf denselben Daten arbeiten.&lt;br /&gt;
&lt;br /&gt;
== Wichtige Praxishinweise ==&lt;br /&gt;
&lt;br /&gt;
=== Mindestanforderungen ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Kriterium !! Empfehlung&lt;br /&gt;
|-&lt;br /&gt;
| Anzahl Nodes || Mindestens '''3''' (Quorum)&lt;br /&gt;
|-&lt;br /&gt;
| Netzwerk || Dediziertes Ceph-Netzwerk, mindestens '''10 GbE''' (eigenes VLAN empfohlen)&lt;br /&gt;
|-&lt;br /&gt;
| Disks || SSDs für Performance-Pools, HDDs für Kapazitäts-Pools&lt;br /&gt;
|-&lt;br /&gt;
| RAM || Richtwert: ca. 1–2 GB RAM pro OSD&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Replikationsfaktor und nutzbarer Speicher ===&lt;br /&gt;
&lt;br /&gt;
Der Standard-Replikationsfaktor ist '''size=3, min_size=2'''. Das bedeutet:&lt;br /&gt;
* Jedes Objekt wird auf '''3 OSDs''' gespeichert.&lt;br /&gt;
* Bei Ausfall eines OSDs sind noch '''2 Kopien''' verfügbar (Cluster bleibt voll funktional).&lt;br /&gt;
* '''Nutzbarer Speicher''' = ca. '''⅓ der Rohkapazität'''.&lt;br /&gt;
&lt;br /&gt;
''Beispiel:'' 3 Nodes mit je 1 TB = 3 TB roh → ca. '''1 TB nutzbar'''.&lt;br /&gt;
&lt;br /&gt;
=== Typische Stolpersteine ===&lt;br /&gt;
&lt;br /&gt;
* '''Recovery Storms:''' Wenn ein ausgefallener OSD zurückkehrt, beginnt eine Resynchronisation, die erhebliche I/O-Last erzeugen kann.&lt;br /&gt;
* '''Netzwerk-Bandbreite:''' Ceph ist netzwerkintensiv. Ohne dediziertes Netzwerk leidet die Performance aller Dienste.&lt;br /&gt;
* '''Falsche PG-Anzahl:''' Zu wenige PGs → ungleichmäßige Verteilung. Zu viele PGs → unnötiger Overhead.&lt;br /&gt;
* '''Gemischte Disk-Typen:''' SSDs und HDDs im selben Pool führen zu inkonsistenter Performance. Separate Pools verwenden.&lt;br /&gt;
&lt;br /&gt;
== Abgrenzung zu Alternativen ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Lösung !! Vorteile !! Nachteile&lt;br /&gt;
|-&lt;br /&gt;
| '''Ceph (nativ in Proxmox)''' || Nativ integriert, horizontal skalierbar, kein SPOF, kein externes Storage nötig || Mindestens 3 Nodes, Netzwerk-intensiv, Komplexität&lt;br /&gt;
|-&lt;br /&gt;
| '''ZFS-Replikation''' || Einfach einzurichten, gute Performance || Kein echtes Shared Storage, manuelles Failover&lt;br /&gt;
|-&lt;br /&gt;
| '''NFS/iSCSI (extern)''' || Bekannt, einfach || Externer Server = SPOF, zusätzliche Hardware nötig&lt;br /&gt;
|-&lt;br /&gt;
| '''GlusterFS''' || Einfacher als Ceph || Nicht nativ in Proxmox, weniger verbreitet&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Live-Demo: Hochverfügbarkeit testen ==&lt;br /&gt;
&lt;br /&gt;
Der effektivste Weg, Ceph zu verstehen, ist eine '''Live-Demo''':&lt;br /&gt;
&lt;br /&gt;
# VM auf dem Ceph-Pool erstellen und starten.&lt;br /&gt;
# Einen Node '''herunterfahren''' (auf dem die VM ursprünglich lief).&lt;br /&gt;
# Beobachten, wie die VM auf einem anderen Node '''automatisch weiterläuft'''.&lt;br /&gt;
# Ceph-Status prüfen: &amp;lt;code&amp;gt;ceph status&amp;lt;/code&amp;gt; zeigt den degradierten Zustand.&lt;br /&gt;
# Node wieder hochfahren und die '''automatische Recovery''' beobachten.&lt;br /&gt;
&lt;br /&gt;
Dieser ''&amp;quot;Wow-Moment&amp;quot;'' verdeutlicht den Mehrwert von Ceph besser als jede Theorie.&lt;br /&gt;
&lt;br /&gt;
== Nützliche Befehle ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Befehl !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ceph status&amp;lt;/code&amp;gt; || Gesamtstatus des Clusters (Health, OSDs, PGs)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ceph osd tree&amp;lt;/code&amp;gt; || Baumansicht aller OSDs und ihrer Zuordnung zu Nodes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ceph df&amp;lt;/code&amp;gt; || Speicherverbrauch pro Pool und gesamt&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ceph osd pool ls detail&amp;lt;/code&amp;gt; || Detaillierte Pool-Informationen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ceph health detail&amp;lt;/code&amp;gt; || Detaillierte Gesundheitsinformationen bei Warnungen&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rados bench&amp;lt;/code&amp;gt; || Einfacher Performance-Benchmark&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Zusammenfassung ==&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|'''Merkregel:''' Ceph verteilt Daten über mehrere Nodes, sodass kein einzelner Ausfall zum Datenverlust führt – und Proxmox kann das out of the box.}}&lt;br /&gt;
&lt;br /&gt;
== Quellen und weiterführende Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://docs.ceph.com/ Offizielle Ceph-Dokumentation]&lt;br /&gt;
* [https://pve.proxmox.com/wiki/Deploy_Hyper-Converged_Ceph_Cluster Proxmox Wiki: Deploy Hyper-Converged Ceph Cluster]&lt;br /&gt;
* [https://pve.proxmox.com/pve-docs/chapter-pveceph.html Proxmox VE Ceph-Dokumentation]&lt;/div&gt;</summary>
		<author><name>Maximilian.pottgiesser</name></author>
	</entry>
</feed>