Ceph dont´s: replication size von 2

Immer wieder begegne ich Leuten, die eine Replikation von 2 bei einem replicated Ceph Pool verwenden.

Wenn man genau weiß was man da tut kann man soetwas machen. Ich würde dringend davon abraten.

Ein einfacher Grund dafür ist, dass man zu zweit keine eindeutige Mehrheit bilden kann, sondern immer mindestens ein Dritter dabei sein muss.

Es gibt Fehlerszenarien bei denen es schnell passieren kann, dass beide OSDs (osdA und osdB) einer Placement Group (replication size = 2) nicht verfügbar sind. Wenn eine osdA ausfällt besitzt der Cluster nur noch eine Kopie des Objekts und dann würde durch den Defaultwert (min_size = 2)  am Pool, der Cluster keine Schreiboperationen mehr auf das Object zulassen.

Falls min_size=1 (nicht empfohlen) könnte dann die osdB kurz weg ist und die osdA wieder zurückkommt. Jetzt weiß osdA nicht, ob während Ihrer Offlinephase weitere Schreiboperationen auf osdB vorgenommen worden sind.

Da kann man dann nur hoffen, dass alle osds wieder zurückkommen oder man darf dann manuel die Entscheidung für die aktuellsten Datensatz treffen. Während sich im Hintergrund immer mehr blocked_requests im Cluster ansammeln, die gerne auf die Daten zugreifen wollen würden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

98 − 95 =