Ceph Pacific - Hinzufügung von OSD's bei mehreren Filesystemen CephFS

PaCephist

New Member
Hi!


Ich bin begeisterter Ceph-User und baue mir gerade manuell in der VM einen 4-Debian-Server-Cluster zusammen, was grundsätzlich gut funktioniert.

Angefangen habe ich mit Octopus Ver.15.x und bin aktuell bei Pacific Ver.16.2.7 angelangt.

Der Vorteil bei Ceph-Pacific ist die Möglichkeit mehrere, voneinander getrennte Filesysteme (CephFS) gleichzeitig nutzen zu können.

Auf jedem Server laufen:

- Monitor
- OSD‘s (2 HDD‘s für block.db und 1xSSD für Bluestore Journal der beiden HDD‘s)
- Metadata Server
- Managers

Zuerst legte ich auf jedem Server nur eine Block-OSD HDD inkl. Journal SSD LVM für das Indexing an.

So ergab sich ein kleiner Cluster von 4 Servern mit je einer OSD.

Als Vorbereitung für ein CephFS erstellte ich darauf zwei Pools: cephfs-data und cephfs-meta.

cephfs-data ist ein Erasure coded Pool (k=2, m=2)
cephfs-meta ist ein replicated Pool (min_size=2, size=4)

Daraus erstellte ich ein Filessystem mit dem Namen cephfs (app cephfs), basierend auf 4 Servern und insgesamt 4 OSD‘s (0,1,2,3) mit dem Einsatz eines MDS.

Gemountet über fstab oder mount-fuse kann ich das FS erreichen, Daten schreiben und lesen.

Alle vier OSD‘s füllen sich gleichmäßig (Übersicht der OSD Usage über Dashboard des Clusters)

Bei einem Filesystem sollte es nicht bleiben und die Kapazität des Clusters war auch etwas klein geraten.

So erzeugte ich auf jedem Server je eine weitere OSD für block.db und teilte dieser OSD ein Journal-LVM auf der SSD zu

Die gleiche Prozedur wie oben beschrieben mit folgenden Details:

Server1: OSD 0, 4
Server2: OSD 1, 5
Server3: OSD 2, 6
Server4: OSD 3, 7

Pools:

Erasure coded: cephfs-data, cephfs-data2
Replicated: cephfs-meta, cephfs-meta2

Filesysteme:

1. cephfs (cephfs-data, cephfs-meta, erstellt bei 4 verfügbaren OSD‘s 0,1,2,3 zu dem Zeitpunkt)
2. cephfs2 ( cephfs-data2, cephfs-meta2, erstellt bei allen verfügbaren OSD‘s 0,1,2,3,4,5,6,7 )

Jedes Filesystem benötigt mind. einen aktiven MDS, somit laufen zwei aktive MDS und 2 im Standby.

Über den Parameter --client_fs werden die jeweiligen FS separat gemountet und sind erreichbar.

Jetzt besteht der Cluster aus 4 Servern, 8 OSD‘s und zwei Filesystemen.

Beim Schreiben der Daten auf FS 1. werden die Daten allerdings nur über die ersten 4 OSD‘s (0,1,2,3) verteilt, als das erste FS erstellt wurde.

Sobald das FS 2. mit Daten befüllt wird, werden alle acht OSD‘s mit Daten gleichmäßig befüllt.

Wie kann man dem FS 1. mitteilen, dass er ebenfalls die Daten auf allen 8 OSD‘s verteilen soll?

Damit ist die Kapazitätserweiterung für CephFS 1 gemeint, nach der Cluster-Erweiterung um 4 weitere OSD‘s. Hat jemand eine Idee?


Gruß, PaCeph-ist!
 
Back
Top