Kritischer Bug in CEPH Squid: betroffen alle cluster mit EC pools

qXt69WEV2a7fgbET

Active Member
Oct 10, 2018
16
8
43
Hi,

wollte euch mal bescheid geben, dass es einen sehr kritischen Bug im CEPH Release Squid gibt.
https://tracker.ceph.com/issues/70390

Sobald in einem CEPH Cluster der Version Squid mit Erasure Coded Pools eine neue OSD hinzugefügt wird, wird diese in kurzer Zeit crashen.
Fügt man mehrere OSDs auf verschiedenen Hosts hinzu treten durch die crashenden OSDs inactive PGs auf und verursachen somit einen hohen impact.

Das Problem kann mit dem Config Setting umgangen werden:
```
ceph config set osd bluestore_elastic_shared_blobs 0
```

Das Problem betrifft nur OSDs welche im Squid Release angelegt wurden. (festzustellen mittels ```ceph osd metadata | grep -e "when_created" -e "osd"```)
Das Config Setting hilft leider nicht mehr sobald das Kind in den Brunnen gefallen ist.

Im worst case bleibt als einzige recovery Möglichkeit die OSDs zu stoppen, den Cluster zu pausieren, inactive PGs aus den OSDs manuell herunterzuladen und dann in funktionierenden gestoppten OSDs zu importieren, sowie anschließend das config setting zu setzen und die buggy osds neu zu erstellen.

LG
 
Sobald in einem CEPH Cluster der Version Squid mit Erasure Coded Pools eine neue OSD hinzugefügt wird, wird diese in kurzer Zeit crashen.
Autsch! Ich hatte gerade am Wochende zwei OSD hinzufügt. Nur im Homelab, nicht im Job - aber dennoch ärgerlich.

Dem Bug kann ich nicht wirklich entnehmen, ob ein "out --> Stop --> Destroy" + neu anlegen hinreichendes Vorgehen ist. Also ohne dein "den Cluster zu pausieren, inactive PGs aus den OSDs manuell herunterzuladen". Ich mache das jetzt einfach mal...

In jedem Fall: danke für den Hinweis!

Nachtrag: ich hatte noch keinen solchen Crash.
 
Last edited:
Autsch! Ich hatte gerade am Wochende zwei OSD hinzufügt. Nur im Homelab, nicht im Job - aber dennoch ärgerlich.

Dem Bug kann ich nicht wirklich entnehmen, ob ein "out --> Stop --> Destroy" + neu anlegen hinreichendes Vorgehen ist. Also ohne dein "den Cluster zu pausieren, inactive PGs aus den OSDs manuell herunterzuladen". Ich mache das jetzt einfach mal...

In jedem Fall: danke für den Hinweis!

Nachtrag: ich hatte noch keinen solchen Crash.
Genau, es reicht vorher einmal das config setting zu setzen und anschließen sicherzustellen, dass alle bereits in Squid angelegten OSDs neu erstellt wurden.

Der Crash trifft vor allem dann auf wenn genügend viele Daten aus dem EC Pool auf die OSDs geschrieben wurden.
 
  • Like
Reactions: UdoB
Wir haben einen neuen Build von Ceph mit Version 19.2.1-pve3 hochgeladen in dem die bluestore_elastic_shared_blobs Option per Default deaktiviert ist, also so wie es Upstream auch gerade für ein neues Release vorbereitet.
 
  • Like
Reactions: fba and UdoB