Ceph: Generelle Frage zu Placement Groups
Hallo,
ich spiele derzeit ein bisschen mit Proxmox und Ceph herum, dabei stößt man früher oder später auf die "Placement Groups". Das Prinzip ist mir, denke ich, soweit bekannt... Objekte werden in Gruppen auf den Pools verteilt, die Pools enthalten wiederum die OSD (SSD, HDD)... somit könnte man definieren wie oft ein Objekt auf verschiedene OSDs skaliert wird (korrigieren wenn ich falsch liege).
Die Frage die sich mir jetzt konkret stellt:
Beim erstellen des OSD Pools in Proxmox muss man die "pg_num" setzen. Da man die PG selbst berechnen muss und die Formel lautet 'OSD * 100 / Replicas', stelle ich mir nun die Frage was an Stelle des "OSD" in der Berechnung kommen soll.
Kann man dies frei definieren oder gibt es da einen Richtwert? Spielt die Rolle der OSDs/Platten eine Rolle?
Mal als Beispiel: Drei mal OSD Monitor mit jeweils 4 OSDs, gesamt 12. Die OSDs sind jeweils 300Gb Platten. Aus diesen 12 Platten/OSDs möchte ich jetzt einen Pool machen, wo jeder OSD Monitor jeweils eine Replikation eines Objektes hält.
Was müsste jetzt berechnet und in der "pg_num" gesetzt werden? Was wäre ein "guter Wert" und wäre dies ebenfalls Best-Practice?
Vielen Dank im voraus.
Gruß
ich spiele derzeit ein bisschen mit Proxmox und Ceph herum, dabei stößt man früher oder später auf die "Placement Groups". Das Prinzip ist mir, denke ich, soweit bekannt... Objekte werden in Gruppen auf den Pools verteilt, die Pools enthalten wiederum die OSD (SSD, HDD)... somit könnte man definieren wie oft ein Objekt auf verschiedene OSDs skaliert wird (korrigieren wenn ich falsch liege).
Die Frage die sich mir jetzt konkret stellt:
Beim erstellen des OSD Pools in Proxmox muss man die "pg_num" setzen. Da man die PG selbst berechnen muss und die Formel lautet 'OSD * 100 / Replicas', stelle ich mir nun die Frage was an Stelle des "OSD" in der Berechnung kommen soll.
Kann man dies frei definieren oder gibt es da einen Richtwert? Spielt die Rolle der OSDs/Platten eine Rolle?
Mal als Beispiel: Drei mal OSD Monitor mit jeweils 4 OSDs, gesamt 12. Die OSDs sind jeweils 300Gb Platten. Aus diesen 12 Platten/OSDs möchte ich jetzt einen Pool machen, wo jeder OSD Monitor jeweils eine Replikation eines Objektes hält.
Was müsste jetzt berechnet und in der "pg_num" gesetzt werden? Was wäre ein "guter Wert" und wäre dies ebenfalls Best-Practice?
Vielen Dank im voraus.
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 377409
Url: https://administrator.de/forum/ceph-generelle-frage-zu-placement-groups-377409.html
Ausgedruckt am: 13.05.2025 um 10:05 Uhr
1 Kommentar
Moin,
Jop, es gibt "Best Practices" von ceph:
https://ceph.com/pgcalc/
Wenn ich das mal so grob durch den calculator dort geworfen habe, komme ich auf 512, (was auch in die Richtung geht, die im Proxmox forum empfohlen wird).
Aber am besten fängst du einfach klein an, denn größer geht immer, andersrum eher nicht so.
Weitere infos: https://pve.proxmox.com/wiki/Ceph_Server#Ceph_Pools
Gruß
Chris
Jop, es gibt "Best Practices" von ceph:
https://ceph.com/pgcalc/
Wenn ich das mal so grob durch den calculator dort geworfen habe, komme ich auf 512, (was auch in die Richtung geht, die im Proxmox forum empfohlen wird).
Aber am besten fängst du einfach klein an, denn größer geht immer, andersrum eher nicht so.
Weitere infos: https://pve.proxmox.com/wiki/Ceph_Server#Ceph_Pools
Gruß
Chris