Worum es geht :
Wenn Sie über Ceph nachdenken oder diskutieren, ist die häufigste Frage, die Ihnen in den Sinn kommt: “Welche Hardware soll ich für meinen CEPH-Storage-Cluster auswählen?” und ja, wenn Sie wirklich an diese Frage gedacht haben, gratuliere ich Ihnen, dass Sie es mit der Ceph-Technologie ernst meinen und das sollten Sie auch, denn CEPH IST DIE ZUKUNFT DES STORAGE.
Ceph läuft auf Commodity-Hardware, Ohh Yeah!! das weiß jetzt jeder. Es wurde entwickelt, um einen Multi-Petabyte-Speicher-Cluster aufzubauen und gleichzeitig unternehmenstaugliche Funktionen zu bieten. Kein Single Point of Failure, Skalierung auf Exabytes, selbstverwaltend und selbstheilend (spart Betriebskosten), läuft auf Commodity-Hardware (keine Herstellerbindung, spart Kapitalinvestitionen).
Ceph Überblick :-
Der einzige Speichercluster von Ceph ist RADOS (Reliable Autonomic Distributed Object Store). Ceph verwendet den leistungsstarken CRUSH-Algorithmus (Controlled Replication Under Scalable Hashing) zur Optimierung der Datenplatzierung, Selbstverwaltung und Selbstheilung. Die RESTful-Schnittstelle wird von Ceph Object Gateway (RGW) aks Rados GateWay bereitgestellt und virtuelle Festplatten werden von Ceph Block Device (RBD)
Ceph Übersicht – Image Credit : Inktank
# Ceph OSD ( Object Storage Daemons ) speichert Daten in Objekten, verwaltet die Datenreplikation, Wiederherstellung, Rebalancing und liefert Stage-Informationen an Ceph Monitor. Es wird empfohlen, 1 OSD pro physischer Festplatte zu verwenden.
# Ceph MON (Monitors) hält den Gesamtzustand des Clusters aufrecht, indem es den Status der Cluster-Maps einschließlich Monitor-Map, OSD-Map, Placement Group (PG)-Map und CRUSH-Map verwaltet. Monitors empfängt Statusinformationen von anderen Komponenten, um Maps zu pflegen und diese Maps an andere Monitor- und OSD-Knoten weiterzuleiten.
# Ceph RGW ( Object Gateway / Rados Gateway ) RESTful API-Schnittstelle, die mit Amazon S3 , OpenStack Swift kompatibel ist.
# Ceph RBD ( Raw Block Device ) Bietet Blockspeicher für VM / Bare Metal sowie reguläre Clients, unterstützt OpenStack und CloudStack . Beinhaltet Enterprise Features wie Snapshot , Thin Provisioning , Kompression.
# CephFS ( File System ) verteilter POSIX NAS Speicher.
Ein paar Faustregeln :-
- Betreiben Sie OSD auf einem dedizierten Storage Node ( Server mit mehreren Platten ) , die eigentlichen Daten werden in Form von Objekten gespeichert.
- Betreiben Sie Monitor auf einer separaten dedizierten Hardware oder koexistiert mit Ceph Client Nodes ( andere als OSD Node ) wie RGW , CephFS Node . Für die Produktion wird empfohlen, Monitore auf dedizierten, kostengünstigen Servern zu betreiben, da Monitore nicht ressourcenhungrig sind.
Monitor-Hardware-Konfiguration :-
Monitor hält den Zustand des gesamten Clusters aufrecht, er enthält PG-Protokolle und OSD-Protokolle. Es werden mindestens drei Monitorknoten für ein Cluster-Quorum empfohlen. Ceph-Monitor-Knoten sind nicht ressourcenhungrig, sie können auch mit relativ wenig CPU und Speicher arbeiten. Ein 1U-Server mit einem kostengünstigen Prozessor E5-2603, 16 GB RAM und einem 1-GbE-Netzwerk sollte in den meisten Fällen ausreichend sein. Wenn PG-, Monitor- und OSD-Protokolle auf der lokalen Festplatte des Monitorknotens gespeichert werden, stellen Sie sicher, dass Sie über ausreichend lokalen Speicherplatz verfügen, damit dieser nicht überfüllt wird.
Ungesunde Cluster erfordern mehr Speicherplatz für Protokolle, der bis zu GB und sogar Hunderte von GB betragen kann, wenn der Cluster für eine sehr lange Zeit ungesund ist. Wenn die ausführliche Ausgabe auf den Monitorknoten eingestellt ist, werden diese zwangsläufig eine große Menge an Protokollierungsinformationen erzeugen. Lesen Sie die Ceph-Dokumentation für die Einstellung des Monitor-Logs.
Es wird empfohlen, den Monitor auf entfernten Knoten zu betreiben, anstatt auf allen Knoten oder auf virtuellen Maschinen auf physisch getrennten Maschinen, um einen Single Point of Failure zu vermeiden.
Die Planungsphase:-
Die Bereitstellung eines Ceph-Clusters in der Produktion erfordert ein wenig Hausaufgaben, Sie sollten die unten stehenden Informationen sammeln, damit Sie einen besseren und zuverlässigeren und skalierbaren Ceph-Cluster entwerfen können, der zu Ihren IT-Anforderungen passt. Diese sind sehr spezifisch für Ihre Bedürfnisse und Ihre IT-Umgebung. Diese Informationen werden Ihnen helfen, Ihre Speicheranforderungen besser zu gestalten.
- Geschäftsanforderungen
- Budget?
- Brauchen Sie Ceph-Cluster für den täglichen Betrieb oder SPEZIAL
- Technische Anforderungen
- Welche Anwendungen werden auf Ihrem Ceph-Cluster laufen?
- Welche Art von Daten wird auf Ihrem Ceph-Cluster gespeichert werden?
- Soll der Ceph-Cluster hinsichtlich Kapazität und Leistung optimiert werden?
- Wie hoch sollte die nutzbare Speicherkapazität sein?
- Welche Wachstumsrate wird erwartet?
- Wie viele IOPS sollte der Cluster unterstützen?
- Wie viel Durchsatz sollte der Cluster unterstützen
- Wie viel Datenreplikation (Zuverlässigkeitsgrad) benötigen Sie?
Sammeln Sie so viele Informationen wie möglich während der Planungsphase, das wird alle Antworten geben, die erforderlich sind, um einen besseren Ceph-Cluster zu konstruieren.
Der physische Knoten und die Clustertechnik:-
Zusätzlich zu den oben gesammelten Informationen, berücksichtigen Sie auch die Rackdichte und das Energiebudget, die Kosten für den Platz im Rechenzentrum, um die optimale Knotenkonfiguration zu bestimmen. Ceph repliziert Daten über mehrere Knoten in einem Speichercluster, um Datenredundanz und höhere Verfügbarkeit zu gewährleisten. Es ist wichtig, dies zu berücksichtigen.
- Sollten sich die replizierten Knoten im selben Rack oder in mehreren Racks befinden, um SPOF zu vermeiden?
- Sollte der OSD-Verkehr innerhalb des Racks bleiben oder sich über ein dediziertes oder gemeinsames Netzwerk über mehrere Racks erstrecken?
- Wie viele Knotenausfälle können toleriert werden?
- Wenn die Knoten über mehrere Racks verteilt sind, erhöht sich der Netzwerkverkehr, und die Auswirkungen der Latenz und die Anzahl der Netzwerk-Switch-Sprünge sollten berücksichtigt werden.
- Die Gesamtkapazität des Clusters wird um einige Bruchteile reduziert.
- Der Gesamtdurchsatz des Clusters wird um einige Bruchteile reduziert.
- Der Cluster tritt in einen schreibintensiven Wiederherstellungsprozess ein.
# POC-Umgebung – Kann mindestens 3 physische Knoten mit je 10 OSDs haben. Dies bietet eine Verfügbarkeit des Clusters von 66 % bei Ausfall eines physischen Knotens und 97 % Betriebszeit bei Ausfall eines OSD. RGW- und Monitor-Knoten können auf OSD-Knoten platziert werden, was jedoch die Leistung beeinträchtigen kann und für die Produktion nicht empfohlen wird.
# Produktionsumgebung – mindestens 5 physisch getrennte Knoten und mindestens 100 OSD @ 4 TB pro OSD, die Clusterkapazität beträgt über 130 TB und bietet 80 % Betriebszeit bei Ausfall eines physischen Knotens und 99 % Betriebszeit bei Ausfall eines OSD. RGW und Monitore sollten sich auf separaten Knoten befinden.
Auf der Grundlage der Ergebnisse der Planungsphase und der physischen Knoten und der Cluster-Phase schauen Sie sich die auf dem Markt verfügbare Hardware entsprechend Ihrem Budget an.
OSD CPU-Auswahl :-
< Im Aufbau … Bleiben Sie dran >