In diesem Artikel erfahren Sie, wie Sie ein unterbrechungsfreies Ceph-Cluster-Upgrade von Ceph 19.2 (Squid) auf Ceph 20.2 (Tentacle) unter Proxmox VE durchführen – optimiert für die Proxmox-Weboberfläche (Web-GUI) mit Bulk-Restarts und ergänzt um die notwendigen Konsolenbefehle.
Für bestehende Ceph-Installationen kann vor bzw. nach dem Upgrade eine gesonderte Key-Ring-Rotation bzw. Migration erforderlich sein (CephX Key Migration Procedure). Ausführliche Hintergrundinformationen und den aktuellen Diskussionsverlauf finden Sie im offiziellen Proxmox Forum: Proxmox Forum: CephX Key Migration Procedure & Ceph Squid EOL.
Inhaltsverzeichnis
- Ausgangslage & Voraussetzungen
- Schritt 1: Ceph-Paketquellen anpassen
- Schritt 2: noout-Flag im OSD-Cluster setzen
- Schritt 3: Paket-Upgrade auf allen Nodes durchführen
- Schritt 4: Monitor-Dienste (MON) neu starten
- Schritt 5: Manager-Dienste (MGR) neu starten
- Schritt 6: OSD-Dienste neu starten
- Schritt 7: Tentacle-Funktionen und OSD-Release aktivieren
- Schritt 8: CephFS MDS Daemons aktualisieren
- Schritt 9: noout-Flag wieder aufheben
- Schritt 10: Cluster-Zustand & Versionen verifizieren
- Fazit
Ausgangslage & Voraussetzungen
Ein Upgrade eines produktiven Ceph-Clusters von Version 19.2 (Squid) auf Version 20.2 (Tentacle) erfolgt im laufenden Betrieb (Rolling Upgrade). Um einen unterbrechungsfreien Betrieb sicherzustellen, werden die Daemons in einer strikt vorgegebenen Reihenfolge aktualisiert: Monitore (MON), gefolgt von Managern (MGR), Object Storage Daemons (OSD) und Metadaten-Servern (MDS).
Vor dem Upgrade sind folgende Bedingungen zu prüfen:
- Der Ceph-Cluster befindet sich im Status
HEALTH_OK. - Alle Cluster-Nodes sind erreichbar und verfügen über aktuellen Paketstand.
- Es laufen keine aktiven Rebalancing- oder Backfilling-Prozesse.
Schritt 1: Ceph-Paketquellen anpassen
Auf jedem Knoten des Ceph-Clusters muss das Repository von squid auf tentacle umgestellt werden. Dies erfolgt über eine Anpassung der Datei /etc/apt/sources.list.d/ceph.sources.
# Auf jedem Ceph-Cluster-Node ausführen:
sed -i 's/squid/tentacle/' /etc/apt/sources.list.d/ceph.sources
Zur Gegenprüfung können Sie den Inhalt der Quellen-Datei einsehen:
# Paketquellen-Eintrag verifizieren:
cat /etc/apt/sources.list.d/ceph.sources
Types: deb
URIs: http://download.proxmox.com/debian/ceph-tentacle
Suites: trixie
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Schritt 2: noout-Flag im OSD-Cluster setzen
Um zu verhindern, dass Ceph während des sukzessiven Neustarts der Daemons temporär unerreichbare OSDs als out markiert und ein unnötiges, ressourcenintensives Rebalancing der Placement Groups (PGs) startet, wird das globale Flag noout gesetzt.
Variante A: Über die Proxmox-Weboberfläche (Web-GUI)
Navigieren Sie im Web-GUI zu [Node oder Cluster] → Ceph → OSD. Klicken Sie in der oberen Menüleiste auf Manage Global Flags (bzw. Globale Flags verwalten), setzen Sie das Häkchen bei noout und bestätigen Sie den Dialog.
Variante B: Über die CLI
# OSD-Flag noout setzen:
ceph osd set noout
noout is set
Schritt 3: Paket-Upgrade auf allen Nodes durchführen
Aktualisieren Sie nun die Paketlisten und führen Sie das Upgrade auf die Ceph-Tentacle-Pakete auf jedem Cluster-Knoten durch.
Variante A: Über die Proxmox-Weboberfläche (Web-GUI)
Navigieren Sie auf dem jeweiligen Knoten zu [Node] → Updates, klicken Sie auf Refresh (Neu laden) und anschließend auf Upgrade. Es öffnet sich das Terminal-Fenster zur Bestätigung der Paketinstallation.
Variante B: Über die CLI
# Auf jedem Ceph-Cluster-Node ausführen:
apt update
apt full-upgrade
Schritt 4: Monitor-Dienste (MON) neu starten
Nach der Paketinstallation müssen die Daemons neu gestartet werden, um die neue Binärversion zu laden. Das Upgrade beginnt zwingend mit den Ceph-Monitoren (MON).
Web-GUI: Bulk-Restart der MON-Dienste
Proxmox VE bietet hierfür eine komfortable Funktion: Navigieren Sie zu Ceph → Monitor und nutzen Sie die Schaltfläche Bulk-Restart für die MON-Dienste. Alternativ können Sie die Monitore nacheinander über das Drei-Punkte-Menü neu starten.
CLI Alternative
Wenn Sie die Dienste über die Konsole neu starten, führen Sie den Vorgang unbedingt nacheinander pro Node durch. Überprüfen Sie nach jedem einzelnen MON-Neustart zuerst den Cluster-Gesundheitsstatus (ceph health) sowie das Quorum (ceph mon stat), bevor Sie den Monitor auf dem nächsten Node neu starten!
# Monitor-Dienst auf dem Node neu starten:
systemctl restart ceph-mon.target
# Ceph Health und Quorum verifizieren (vor dem Wechsel zum nächsten Node!):
ceph health
ceph mon stat
root@pve-1:~# ceph mon stat
e6: 3 mons at {pve-1=[v2:10.30.20.11:3300/0,v1:10.30.20.11:6789/0],pve-2=[v2:10.30.20.12:3300/0,v1:10.30.20.12:6789/0],pve-3=[v2:10.30.20.13:3300/0,v1:10.30.20.13:6789/0]} removed_ranks: {} disallowed_leaders: {}, election epoch 128, leader 0 pve-2, quorum 0,1,2 pve-2,pve-3,pve-1
Schritt 5: Manager-Dienste (MGR) neu starten
Im nächsten Schritt werden alle Ceph-Manager-Dienste (MGR) auf den Cluster-Nodes neu gestartet.
Web-GUI: Bulk-Restart der MGR-Dienste
Verwenden Sie im Bereich Ceph → Monitor / Manager die Funktion Bulk-Restart für die MGR-Dienste, um alle Manager geordnet neu zu starten.
CLI Alternative
# Manager-Dienste auf dem Node neu starten:
systemctl restart ceph-mgr.target
# Manager-Status prüfen:
ceph mgr stat
root@pve-1:~# ceph mgr stat
{
"epoch": 92,
"available": true,
"active_name": "pve-3",
"num_standby": 1
}
Schritt 6: OSD-Dienste neu starten
Sobald MON und MGR aktualisiert sind, werden alle OSD-Dienste (Object Storage Daemons) auf den Nodes neu gestartet.
Web-GUI: Bulk-Restart der OSD-Dienste
Navigieren Sie zu Ceph → OSD und wählen Sie die Funktion Bulk-Restart. Proxmox startet die OSDs node-übergreifend neu. Dank des zuvor gesetzten noout-Flags entstehen hierbei keine Rebalancing-Verzögerungen.
CLI Alternative
Starten Sie die OSDs node-weise nacheinander neu. Prüfen Sie nach jedem Knoten unbedingt den Cluster-Zustand mit ceph status oder ceph health detail: Bis auf die erwartete noout-Warnung müssen alle Placement Groups active+clean sein und es dürfen keine Rebalancing- oder Degraded-Warnungen vorliegen, bevor der nächste Node neu gestartet wird!
# OSD-Dienste auf dem jeweiligen Node neu starten:
systemctl restart ceph-osd.target
# OSD-Zustand und Flags prüfen:
ceph osd stat
# Cluster-Health verifizieren (außer noout darf hier keine Warnung/Rebalancing stehen!):
ceph health
root@pve-1:~# ceph osd stat
12 osds: 12 up (since 2m), 12 in (since 4M); epoch: e821
flags noout
Schritt 7: Tentacle-Funktionen und OSD-Release aktivieren
Nachdem alle OSDs auf die neue Version aktualisiert und neu gestartet wurden, wird das Mindest-Release auf tentacle festgeschrieben. Dieser Schritt verbietet ältere (Pre-Squid) OSDs und schaltet alle neuen Tentacle-exklusiven Cluster-Funktionen frei.
# Mindest-OSD-Release auf Tentacle setzen:
ceph osd require-osd-release tentacle
Schritt 8: CephFS MDS Daemons aktualisieren
Falls in Ihrem Cluster CephFS im Einsatz ist, müssen die Metadata-Server (MDS) ebenfalls neu gestartet werden.
Wenn im Cluster genau ein CephFS-Dateisystem betrieben wird, können Sie die MDS-Dienste komfortabel über die Proxmox-Weboberfläche via Bulk-Restart MDS Services neu starten.
CLI Alternative
Auch bei den MDS-Daemons gilt: Aktualisieren bzw. starten Sie die Dienste nacheinander pro Host neu (idealerweise zuerst die Standby-MDS, zuletzt die aktive MDS) und prüfen Sie jeweils den Status:
# Metadata-Server auf dem Node neu starten:
systemctl restart ceph-mds.target
# CephFS-Status und MDS-Zustand prüfen:
ceph fs status
Schritt 9: noout-Flag wieder aufheben
Nachdem alle Daemons (MON, MGR, OSD, MDS) erfolgreich auf Tentacle aktualisiert und aktiv sind, muss das zu Beginn gesetzte noout-Flag wieder entfernt werden, damit Ceph im regulären Betriebsmodus Ausfälle normal behandeln kann.
Variante A: Über die Proxmox-Weboberfläche (Web-GUI)
Navigieren Sie zu [Node oder Cluster] → Ceph → OSD, öffnen Sie Manage Global Flags, deaktivieren Sie das Häkchen bei noout und speichern Sie die Änderung.
Variante B: Über die CLI
# OSD-Flag noout aufheben:
ceph osd unset noout
root@pve-3:~# ceph osd unset noout
noout is unset
Schritt 10: Cluster-Zustand & Versionen verifizieren
Abschließend verifizieren Sie den vollständigen Cluster-Zustand und prüfen, ob alle Daemons auf dem neuen Tentacle-Release laufen:
1. Ceph Health Status in der Proxmox-Weboberfläche (Web-GUI) prüfen
In der Proxmox VE Weboberfläche können Sie den Zustand des Ceph-Clusters direkt visuell verifizieren: Navigieren Sie in der linken Server-Ansicht auf einen beliebigen Ceph-Knoten und wählen Sie das Menü Ceph. Auf dem Übersichts-Dashboard sehen Sie sofort den Statusindikator (grünes Häkchen mit HEALTH_OK), die aktiven Services (MON, MGR, OSDs) sowie die Speicherauslastung und den Zustand der Placement Groups (alle active+clean).
2. Cluster-Health via CLI prüfen
# Cluster-Gesundheitsstatus abfragen:
ceph status
root@pve-3:~# ceph status
cluster:
id: 2e644556-0cf6-466f-9850-0304095e558d
health: HEALTH_OK
services:
mon: 3 daemons, quorum pve-2,pve-3,pve-1 (age 3m) [leader: pve-2]
mgr: pve-3(active, since 4m), standbys: pve-1
mds: 1/1 daemons up, 2 standby
osd: 12 osds: 12 up (since 3m), 12 in (since 4M)
rbd-mirror: 1 daemon active (1 hosts)
data:
volumes: 1/1 healthy
pools: 4 pools, 577 pgs
objects: 1.29k objects, 4.3 GiB
usage: 13 GiB used, 587 GiB / 600 GiB avail
pgs: 577 active+clean
io:
client: 4.2 KiB/s rd, 3.8 KiB/s wr, 4 op/s rd, 1 op/s wr
3. Aktive Daemon-Versionen abfragen (CLI)
# Installierte Ceph-Daemon-Versionen abrufen:
ceph versions
root@pve-3:~# ceph versions
{
"mon": {
"ceph version 20.2.4 (4302593b7d5304637a99b628879b32886b798252) tentacle (stable - None)": 3
},
"mgr": {
"ceph version 20.2.4 (4302593b7d5304637a99b628879b32886b798252) tentacle (stable - None)": 2
},
"osd": {
"ceph version 20.2.4 (4302593b7d5304637a99b628879b32886b798252) tentacle (stable - None)": 12
},
"mds": {
"ceph version 20.2.4 (4302593b7d5304637a99b628879b32886b798252) tentacle (stable - None)": 3
},
"rbd-mirror": {
"ceph version 20.2.4 (4302593b7d5304637a99b628879b32886b798252) tentacle (stable - None)": 1
},
"overall": {
"ceph version 20.2.4 (4302593b7d5304637a99b628879b32886b798252) tentacle (stable - None)": 21
}
}
Fazit
Durch die Kombination aus der Proxmox-Weboberfläche für Bulk-Restarts und Global-Flag-Verwaltung sowie gezielten CLI-Befehlen lässt sich das Ceph-Upgrade von Squid auf Tentacle zügig, übersichtlich und ohne Downtime für laufende virtuelle Maschinen und Container durchführen. Wichtig bleibt das Einhalten der Upgrade-Reihenfolge (MON → MGR → OSD → MDS) sowie das abschließende Freischalten des Releases via ceph osd require-osd-release tentacle.
Sie benötigen Unterstützung bei Ihrem Proxmox VE oder Ceph Cluster?
Proxmox VE & Ceph Support
Ob Ceph-Major-Upgrade, Keyring-Rotation, Performance-Tuning oder ganzheitliche Cluster-Architektur: Unsere zertifizierten Spezialisten unterstützen Ihr IT-Team schnell, praxisnah und auf Augenhöhe.
