Beiträge

Wie man mit Ceph das Datenwachstum kontrollieren und optimieren kann

Wenn man den neuesten Prognosen Glauben schenkt, so wird der Speicherplatzbedarf weltweit noch weiter zunehmen. Durch Big Data Analytics sowie unzählige Sensordaten, die zu jeder Zeit des Tages entstehen, lässt sich das Datenwachstum nicht mehr aufhalten.¹

Das Datenwachstum im Überblick

Das Datenwachstum im Überblick

Diese Entwicklung führt bei den meisten Unternehmen zu einem Problem. Sie müssen den eigenen Bedarf an Speicherplatz so gut wie möglich vorhersehen. Nur so können sie entsprechende Kapazitäten dort zur Verfügung stellen, wo sie dringend von Nöten sind. In den verschiedenen Bereichen steigt die Datenmenge auch unterschiedlich an. Des Weiteren sind sehr unterschiedliche Anforderungen an diese Daten gegeben. Eine einfache Erhöhung der Brutto-Speicherkapazität der Systeme reicht daher nicht mehr aus. Bestimmte Bereiche benötigen genau zur richtigen Zeit diese erhöhte Speicherkapazität.

Eine „Modernisierung“ ist Pflicht!

Beim Thema Datenwachstum denken viele Administratoren hauptsächlich darüber nach, wie sie es schaffen können, so viel Speicher wie möglich frei zu bekommen. Dies könnte durch die Ankopplung einer (weiteren) JBOD Erweiterung an den vorhandenen netzwerkgebundenen Speicher (NAS) geschehen. Schließlich ist dieses Vorgehen bis dato in vielen Bereichen das Standardverfahren.

Allerdings müssen die Ressourcen in einer zeitgemäßen IT-Infrastruktur flexibel bereit gestellt sein und vor allem auch genau dann, wenn sie von Nöten sind. Um diesen neuen Anforderungen zu entsprechen, sollte Sie die Speicherumgebung ab jetzt modernisieren.

Wer an dieser Stelle mit hohen Kosten rechnet, kann aber aufatmen. Die vorhandene Infrastruktur kann man durchaus weiter verwenden, falls sie noch nicht veraltet ist. Sie wird lediglich mit entsprechenden Technologien so flexibel und skalierbar wie möglich gemacht. Denn so wie sich die Geschäftsbereiche sehr schnell an sich ändernde Anforderungen anpassen, muss dies auch die Infrastruktur der IT tun. Mit Ceph ist die Umsetzung dieser Modernisierung einfacher umsetzbar.

Was ist Ceph?

Bei Ceph handelt es sich um eine verteilte Storage-Lösung. Gemeinsam mit RADOS (reliable autonomic distributed object store) ist Ceph ein Objektspeicher, der sich über eine beliebige Anzahl an Servern überreichlich verteilen lässt. Drei Arten von Speicher sind dem Nutzer hier geboten: Der Objektspeicher, der Blockspeicher und CephFS. Letzteres ist ein verteiltes Dateisystem. Kopien der Objekte werden hier gespeichert. Sollten Daten beschädigt sein, so kann Ceph diese durch die Kopien, die sich auf anderen Speichermedien befinden, wiederherstellen. So heilt es sich quasi selbst und kann einen Ausfall der verschiedenen Komponenten jederzeit auffangen.²

An anderer Stelle wurden die mit dieser Software-Defined-Storage-Lösung einhergehenden Herausforderungen schon rudimentär erklärt. In diesem Artikel wird nun genauer erläutert, mit welchen Möglichkeiten die Speichersysteme durch Ceph ideal genutzt werden können. Des Weiteren geht es hier auch darum, wie sich die Investitionskosten schnellstmöglich auszahlen.

Möchte man sein bestehendes RAID erweitern, so geht dies nur mühsam vonstatten. Und irgendwann kommt der Punkt, an dem keine zusätzlichen Erweiterungen mehr verwaltet werden können. Legt man zusätzlich auch noch Wert auf Markenprodukte, so kann eine Erweiterung recht teuer werden. Daher sollte man derartige Investitionen im Vorfeld gründlich überdenken. Ebenso sollte die vorhandene IT-Infrastruktur in dem Punkt hinterfragt werden, ob sie in ihrem momentanen Zustand noch für die Arbeitsweisen und Unternehmensziele passt.

Kosten durch intelligent verteilte Objekte minimieren

Ceph als Software-Defined-Straoge-Lösung ist bestens geeignet, um den Preis, der für ein GB ansteht, zu reduzieren. Dies geschieht zum einen durch das Einsetzen von commodity Hardware und zum anderen dadurch, dass teure SAS- oder SSD-Festplatten für eine gute Leistung nicht notwendig sind. Durch wenige, als I/O-Cache eingesetze, SSD-Festplatten erreicht man dennoch die benötigte Performance. Dazu werden diese SSD-Festplatten beispielsweise den SATA HDDs vorgeschalten, die um einiges langsamer, jedoch auch deutlich günstiger sind. Die Kosten für ein GB sinken und bei vielen Anwendungen ist hiermit schon ein gutes Preis-/Leistungsverhältnis erreicht.

Für die optimale Nutzung des Speichersystems gibt es jedoch einen Punkt, der noch viel wichtiger ist. Ceph hat die Möglichkeit verschiedene Pools zu erzeugen, die man wiederum verschiedenen Festplatten zuordnen kann. Diese Festplatten heißen in der Sprache von Ceph OSDs.Auf diese Weise kann der Administrator für unterschiedliche Anwendungsmöglichkeiten gezielt verschiedene Pools verwenden. Hierfür genügt ihm der Zugriff auf immer denselben Cluster, was dazu führt, dass der Aufwand für Administrationsarbeiten sinkt.

Ein konkretes Beispiel für die Kostensenkung

Für eine Datenbankanwendung würde so beispielsweise das Betreiben auf einem eher kleinen Pool nur mit SSDs ausreichen. Die Virtuelle Maschine nutzt hingegen nur SATA HDDs, vor die evtl. noch ein Cache geschalten ist. Die Virtuelle Maschine kann auf vglw. günstigem Speicher betrieben werden, da die  Leistung ihres Betriebssystems nicht sehr stark von den Zugriffszeiten abhängt. Die kostspieligen SSDs können also optimal für die Datenbanken genutzt werden.

Man kann also durch Pools sehr granulär entscheiden, welcher Typ I/O innerhalb eines Ceph Clusters welche Art Festplatte nutzt. Dass man hierbei alles innerhalb eines denkbar logischen Systems verwalten kann, ist im Gegensatz zu lokalen Speicherpools, bzw. unterschiedlichen NAS- oder SAN-Systemen der große Vorteil. Das Ceph Cluster System liegt hierbei über der vorhandenen Hardware. So ist es problemlos möglich, bei Bedarf die Kapazität zu erhöhen.

Außerdem ist es möglich, dass man nur einzelne Pools bei Bedarf durch passende Erweiterungen oder Festplatten erweitert. Dies kann man jederzeit kurzfristig und kostengünstig umsetzen. Auf diese Weise nutzt man den Speicherplatz dann und dort, wo man ihn benötigt und verschwendet seine Kapazität nicht über längere Zeiträume. Wurde zuvor zusätzlicher Speicherplatz benötigt und eingebunden, so kann dieser jederzeit problemlos an anderer Stelle eingesetzt werden. Hierfür ist kein physisches Eingreifen nötig und der laufende Betrieb wird nicht gestört.

Angepassten Replikationsraten sorgen für das Feintuning

Bei der Wahl eines passenden Level bei einem klassischen RAID, kommt es drauf an, welcher Anwendungszweck für dieses RAID angedacht ist. Ceph ermöglicht auch hier eine sehr individuelle und auch kurzfristige Entscheidung. Die Anzahl der anzulegenden Replikationen für jedes einzelne Objekt, definiert man, sobald man einen neuen Pool anlegt. Für ein Backup ist möglicherweise eine einfache Kopie eines unwichtigen Dokumentes ausreichend.

Wichtige geschäftliche Unterlagen sollten bei einem Backup jedoch evtl. mehrfach kopiert werden. Es ist außerdem möglich, den Speicherort für diese Kopien festzulegen. So ist beispielsweise die Speicherung auf einer anderen Festplatte oder sogar in einem anderen Brandabschnitt möglich. Auf diese Weise kann man Ceph noch idealer nutzen. Der Speicherplatz, der durch die einzelne Kopie der unwichtigen Unterlagen gespart wird, kann an anderer Stelle gewinnbringend eingesetzt werden.

Zusammenfassung

Ceph ist also ideal geeignet, wenn man trotz zu erwartendem Datenwachstum Kosten sparen möchte. Die bereits vorhandene Hardware kann man weiter nutzen. Bei eventuell anstehenden Neuanschaffungen muss man nicht auf teure Marken setzen. Durch die Möglichkeit, die unterschiedlichen Anwendungen mit ihren unterschiedlichen Geschwindigkeiten auf verschiedene Pools zu verteilen, sorgt für eine optimale Nutzung der Hardwareleistung.

Ebenso gewinnbringend ist die Möglichkeit, das Replikationslevel individuell festlegen zu können. Hierbei werden zusätzliche Kapazitäten frei, die an anderer Stelle sinnvoll eingesetzt werden können. Hohe Kosten für Markenprodukte entfallen. Der Administrationsaufwand reduziert sich dadurch, dass man sich statt auf viele verschiedene Speichersysteme, nur noch auf ein einzelnes stützt. Wenn man das Ceph Cluster optimal auf sein Unternehmen und dessen spezifische Anwendungen anpasst, erhält man einen sehr guten ROI in vielen Bereichen. Deshalb lohnt es sich, einmal über die Anschaffung eines solchen modernen Speichersystems Gedanken zu machen. Denken Sie an das unvermeidbare Datenwachstum.

Verweise:

1. https://www.storage-insider.de/weltweite-datenmenge-soll-sich-bis-2020-verzehnfachen-a-442411/  letzter Aufruf 03.12.2017.
2. https://de.wikipedia.org/wiki/Ceph letzter Aufruf 03.12.2017

vgl. https://www.eetimes.com/author.asp?section_id=36&doc_id=1330462 letzter Aufruf 03.12.2017
vgl. http://ceph.com/geen-categorie/how-data-is-stored-in-ceph-cluster/ letzter Aufruf, 03.12.2017
vgl. http://docs.ceph.com/docs/jewel/ letzter Aufruf 03.12.2017.

Die richtige Ceph Netzwerkstruktur

, ,

Warum das richtige Netzwerk bei Ceph so wichtig ist

Vor der Integration eines Ceph storage-clusters steht jeder Linux-Administrator irgendwann vor der Frage, welches Netzwerk (Ethernet, Infiniband, Omnipath) er verwenden möchte. Das hängt zunächst selbstverständlich vom zu erwartenden Workload und der Anzahl der Clients ab. Allerdings gibt es noch einen wichtigen weiteren Faktor den es zu beachten gibt. Ceph nutzt viele unabhängige Festplatten. RAID Arrays bieten sich nicht an, da die Performance mit  jeder zusätzlichen Festplatte wunderbar linear skaliert. Die vielen einzelnen Festplatten sowie der Aufbau des Ceph Clusters bringen es mit sich, dass alle Datenblöcke auf mehrere Knoten verteilt werden müssen. Je nach implementiertem Regelwerk sogar über Racks oder Rechenzentren hinweg. Das schafft Ausfallsicherheit. Jedoch bedeutet das, dass bei jedem Lese- oder Schreibzugriff eine Kommunikation mit allen Ceph-Nodes über das Netzwerk stattfinden muss, um alle notwendigen Datenblöcke zu erreichen.

Festplattenzugriff = Netzwerkzugriff bei Ceph

Da also jeder Zugriff auf eine der vorhandenen Festplatten auch ein Netzwerkzugriff ist, sollte man unbedingt auf ein 10 GE Netzwerk zurückgreifen um alle Ceph Knoten untereinander zu verbinden. 10 GE stellt hierbei das absolute Minimum dar. Möchten Sie Ceph richtig im produktiven Betrieb mit mehreren clients einsetzen, kommt ein 1 GE Netzwerk wirklich extrem schnell an seine Grenzen. Hier ist nicht nur der Datenverkehr zu den Clients und zwischen den Ceph Knoten bei der konkreten Datenabfrage zu betrachten. Ceph muss schließlich auch alle Replikationen auf den vorhandenen Servern und Festplatten des Clusters verteilen. Im besonderen wenn eine der Festplatten oder ein ganzer Server ausfällt, repliziert Ceph automatisch die Daten bis wieder die gewünschte Anzahl an Repliken vorliegt.

Netzwerkoptimierung

Dieses Verhalten kann durch getrennte Netzwerke optimiert werden. Ein Netzwerk übernimmt dann die Kommunikation zu den clients. Das zweite Netzwerk ist ausschließlich für die OSD Replikationen zuständig.

Die Konfiguration

Um zwei separate Netzwerke zu nutzen, müssen die Netzwerke innerhalb der ceph.conf eingetragen werden. Hierzu genügt es bereits die Netz ID mit entsprechendem Prefix anzugeben.

[global]

public network = 172.10.10.0/24

cluster network = 172.10.11.0/24

Sobald die Ceph Konfiguration auf allen Knoten verteilt wurde und die Services neu gestartet sind, werden die Netzwerke entsprechend verwendet. Damit wurde ein möglicher Flaschenhals in der Architektur  des Clusters optimiert bzw. verhindert.

Software Defined Storage mit CEPH

, , ,

Datenwachstum als Herausforderung der IT

Das stetige Wachstum der Datenmengen ist ein Problem, dem sich jede IT-Abteilung früher oder später stellen muss. Nutzen Sie ausschließlich klassische Speicherlösungen wie SAN oder NAS müssen die zur Verfügung stehenden Kapazitäten irgendwann mühsam erweitert werden. Eine solche Maßnahme hat des öfteren auch eine kurze downtime zur Folge, da nicht jede Erweiterung im laufenden Betrieb möglich ist.

Damit stellt sich bereits ein weiteres großes Problem ein. Kunden erwarten heutzutage, dass IT-Services zu 100 % an jedem Tag und zu jeder Stunde verfügbar sind. Downtimes werden immer weniger toleriert, besonders im Bereich von Rechenzentren sowie des Hostings. Eine mögliche Lösung um diese Zeiten zu minimieren oder gar völlig auszuschließen bietet beispielsweise Software Defined Storage oder kurz SDS.

Ceph geht neue Wege

Ceph Architektur

Abbildung 1
Ceph Architektur

Schwierigkeiten bei Software Defined Storage

CEPH ist aber keineswegs perfekt und bringt selbstverständlich auch Nachteile mit sich. Ein Merkmal mit dem man sich vor der Inbetriebnahme auseinandersetzen muss, sind die Latenzen die SDS im Vergleich zu Direct Attached Storage (DAS) mit sich bringt. Die erhöhte Komplexität des Software Stacks in Kombination mit den verwendeten Netzwerkverbindungen erhöhen die Latenz pro IO signifikant.

Es erweist sich als äußerst schwierig die Latenz unter den Wert von einigen Millisekunden für Schreibvorgänge zu senken. Woher diese Latenz kommt lässt sich verdeutlichen, wenn man sich die Arbeitsweise von CEPH bei Schreibvorgängen etwas genauer betrachtet (Abbildung 2).

Ein synchroner IO muss vom Client zur primären OSD gesendet werden. Die primäre OSD schickt anschließend die Anzahl konfigurierter Replikationen zu weiteren OSD’s und deren Journalen. Sobald die Repliken auf den Journalen aller OSD’s vorliegen, wird der Vorgang an die primäre OSD bestätigt. Hat die primäre OSD nun alle Bestätigungen erhalten, wird eine Bestätigung an den Client gesendet und dieser kann den nächsten IO senden. Das verdeutlicht schon weshalb es bereits zu Latenzen innerhalb des Software Stacks kommt.

SDS mit Ceph - Arhcitektur

Abbildung 2

Zusätzlich spielt auch das eingesetzte Netzwerk bei Ceph eine entscheidende Rolle. Es gilt hier zunächst unnötige Hops zu vermeiden, da jeder Hop etwa 200us Latenz mit sich bringt. Ein 10GE Netzwerk gilt hierbei als das absolute Minimum, welches Sie beim Einsatz von Ceph oder einem anderen verteilten Speichersystem verwenden sollten. Das verringert Latenzen und erhöht die Bandbreite. Eine zusätzliche Verbesserung bringt Ihnen selbstverständlich der Einsatz von RDMA, jedoch müssen hier die Kosten beachtet werden. All diese Faktoren spielen eine wichtige Rolle und müssen optimiert werden um Latenzen unter dem 2ms Level zu erhalten und dabei eine Balance zwischen Kosten und Nutzen zu finden, was natürlich nicht immer einfach ist.

 

Anforderungen an eine gute SDS Lösung

Damit Sie nach der Einführung einer SDS Lösung wie Ceph nicht enttäuscht sind, gibt es einige Punkte zu beachten. SSDs oder (Enterprise SSD oder NVME SSD) für die Journale, in denen die Schreibvorgänge gecached werden, sowie ein 10GE Netzwerk sind nach herrschender Meinung innerhalb der Ceph Community und unseren eigenen Erfahrungen ein Muss. Für die OSD’s sollten nach Möglichkeiten SAS3 HDD’s verwendet werden. Es ist auch denkbar bei Bedarf einen Teil der OSD’s rein aus SSDs zu erstellen und gesondert zur Verfügung zu stellen. Wichtig ist zudem keine RAID Arrays zu verwenden. Ceph profitiert stark von vielen unabhängigen Festplatten. Einem schwerwiegenden Datenverlust entgehen Sie zudem indem Sie mehrere Server mit möglichst vielen Festplatten (OSD’s) bereitstellen

Die CPU sollte möglichst viele Prozessor-Kerne haben, und der Arbeitsspeicher mit etwa 1-2 GB pro OSD berechnet werden um hier keinen Flaschenhals zu generieren. Der Einsatz von RDMA muss wohl überlegt sein und kommt auf den speziellen Workload an. Werden extrem niedrige Latenzen und hohe Bandbreite über 10 GE benötigt bietet es sich eventuell eher an auf ein spezielles Storage System wie GPFS, BeeGFS oder Lustre  in Kombination mit Infiniband/Omnipath zu setzen.

Fazit zu Ceph

Zusammenfassend lässt sich sagen, dass Software Defined Storage definitiv eine gute Möglichkeit darstellt, um stetig wachsende Datenbestände einfacher zu verwalten. Jedoch hat Software Defined Storage genau wie jede andere Lösung gewisse Einschränkungen denen man sich bewusst sein muss. Im modernen IT-Betrieb wird man aber nicht auf SDS verzichten können. Die mitgebrachten Vorteile wie Skalierbarkeit, einfache Erweiterung und eine sehr hohe Verfügbarkeit werden zunehmend wichtiger.

Weiterführende Links zum Thema: