Optimierung des Ceph-Speichers mit fortschrittlichen Netzwerklösungen
Optimierung des Ceph-Speichers mit fortschrittlichen Netzwerklösungen

Optimierung des Ceph-Speichers mit fortschrittlichen Netzwerklösungen

Herausforderungen bei herkömmlichen Speicherlösungen

In den letzten Jahren hat unser Unternehmen seinen Virtualisierungsstack mit einem traditionellen Speicheransatz betrieben, wobei dedizierte Speichergeräte wie Dell EMC-Speicherbays verwendet und diese über iSCSI oder Fibre Channel (FC) mit unseren Servern verbunden wurden. Aus Redundanzgründen haben wir die Anzahl der Geräte verdoppelt. Unsere Full-Flash-Speicherlösungen wurden von Huawei bereitgestellt.
Mit unserem kontinuierlichen Bestreben, unseren Kunden Cloud-Ressourcen zur Verfügung zu stellen, die vollständig innerhalb der Grenzen Luxemburgs entstehen und die Datenhoheit gewährleisten, sowie mit unserem fortschreitenden KI-Forschungsprojekt ist der Bedarf an einer hoch skalierbaren und zuverlässigen Datenspeicherlösung erheblich gestiegen.

Erster Lösungsversuch

Wetterkarte, die die physische Verbindung der beiden SANs zeigt
Wetterkarte, die die physische Verbindung der beiden SANs zeigt
Um dieser neuen Anforderung gerecht zu werden, haben wir uns zunächst für eine Änderung unseres Ansatzes entschieden. Wir sind zu einem dedizierten Storage Area Network (SAN) übergegangen. Wir betreiben zwei Rechenzentren und haben zwei unabhängige SANs eingerichtet, die jeweils einen Switch pro Seite verwenden und über zwei geografisch getrennte passive Wellenlängen verbunden sind. Die Speicherplätze und Server wurden jeweils mit beiden SANs verbunden, sodass wir über vier Speicherpfade verfügten. Diese Konfiguration nutzte Multi-Path, um Redundanz über mehrere Pfade zu gewährleisten, die selbst nicht redundant waren. Jeder Server verfügte über zwei Netzwerkkarten, wobei ein Port pro Karte mit jedem SAN verbunden war, was insgesamt vier Pfade ergab. Diese Konfiguration stellte sicher, dass wir im Falle eines Ausfalls eines einzelnen Geräts nie mehr als zwei Pfade verlieren würden.
Trotz dieser Maßnahmen stellten wir nach der vollständigen Implementierung fest, dass wir nicht die erwartete Leistung erzielten. Herkömmliche Speichersysteme bringen oft Herausforderungen wie Skalierbarkeitsprobleme, Verwaltungsaufwand und Herstellerabhängigkeit mit sich, was uns zusätzlich motivierte, nach alternativen Lösungen zu suchen.
Angesichts der aktuellen geopolitischen Lage und des Mangels an in Europa hergestellter Speicherhardware haben wir uns für einen anderen Ansatz entschieden. Durch die Beseitigung von Herstellerabhängigkeiten und die Rückkehr zu einem Kernaspekt unserer Identität – Open-Source-Lösungen – wollen wir Innovationen fördern und die Flexibilität unserer Infrastruktur erhalten.

Ceph entdecken: Ein neuer Ansatz für die Speicherung

Unsere Systemadministratoren, die stets daran interessiert sind, neue Technologien zu erforschen, schlugen vor, Ceph für unsere Speicheranforderungen zu verwenden. Unsere bisherigen Erfahrungen mit herkömmlichen Speichersystemen waren nicht zufriedenstellend, sodass wir motiviert waren, etwas Innovatives und potenziell Robusteres zu erforschen.
Ceph ist eine Open-Source-Speicherplattform, die für hervorragende Leistung, Zuverlässigkeit und Skalierbarkeit entwickelt wurde. Sie vereint Objekt-, Block- und Dateispeicher in einem einzigen Cluster und ist damit eine vielseitige Lösung für verschiedene Speicheranforderungen.
Nach einer Analyse, die zu dem Schluss kam, dass Ceph unsere Anforderungen in Bezug auf Redundanz und Skalierbarkeit erfüllen kann, haben wir uns für die richtige Hardware entschieden. Die Wahl fiel auf Supermicro-Server. Die Server laufen mit 2x AMD EPYC 7313 16-Core-Prozessoren und 128 GB RAM.
Für die Netzwerkeinrichtung haben wir uns entschieden, die vorhandene Infrastruktur mit den beiden unabhängigen SANs zu nutzen. Nach anfänglichen Schwierigkeiten bei der Suche nach den richtigen Konfigurationen und dem Warten auf die Lieferung der Hardware waren wir bereit, mit den Tests zu beginnen. Allerdings stießen wir bald auf ein erhebliches Hindernis.
In Ceph gibt es zwei unterschiedliche Netzwerke:
  • Cluster-Netzwerk:
    • Wird von den Servern verwendet, um Daten untereinander zu synchronisieren.
  • Öffentliches Netzwerk:
    • Verarbeitet den Datenverkehr für das Cluster-Management (MONITOR).
    • Erleichtert Ceph-Verbindungen zu Datennutzern, wie z. B. Virtualisierungshosts.
Die Herausforderung bestand darin, dass das öffentliche Netzwerk in Ceph nur mit einem einzigen IP-Netzwerk konfiguriert werden kann. Diese Einschränkung hätte unsere Anforderungen an die Redundanz erheblich behindern können.
Um dieses Problem anzugehen, haben wir zwei mögliche Lösungen in Betracht gezogen:
  1. Neue Chassis-Schalter:
    1. Ein Vorschlag sah den Kauf neuer Chassis-Switches vor. Dies hätte das Problem zwar möglicherweise gelöst, war jedoch mit hohen Kosten verbunden und bot nur begrenzte zusätzliche Vorteile.
  1. Stapeln von Switches mit LACP:
    1. Die zweite Idee, die ebenfalls in Foren häufig vorgeschlagen wurde, bestand darin, die Switches zu stapeln und das Link Aggregation Control Protocol (LACP) zu verwenden. Dieser Ansatz widersprach jedoch unserer ursprünglichen Designphilosophie für die beiden SANs. Wir hatten das Stapeln aufgrund negativer Erfahrungen in der Vergangenheit bewusst vermieden, da es beispielsweise zu einer Aufteilung der Stapel während des Betriebs kommen konnte, was zu Netzwerkausfällen oder Schleifen führte, die das gesamte Netzwerk störten.

Innovative Routing-Lösungen für Ceph

Während wir nach Lösungen suchten, schlug unsere Netzwerkabteilung eine innovative Idee vor. Obwohl das öffentliche Netzwerk von Ceph nur ein IP-Präfix verarbeiten kann, müssen nicht alle IPs innerhalb derselben Broadcast-Domäne liegen. Diese Erkenntnis veranlasste uns, das Routing des Datenverkehrs als praktikable Lösung in Betracht zu ziehen.

Anfängliche Routing-Einrichtung

Unsere ursprüngliche Routing-Lösung sah vor, zwei Ceph-Knoten mit jedem SAN-Layer-3-Switch zu verbinden. Die Switches sollten OSPF (Open Shortest Path First) ausführen und die Netzwerke jedes Knotens ankündigen. Jeder Knoten wurde über alle vier seiner Schnittstellen in einem einzigen LACP-Portkanal (Link Aggregation Control Protocol) verbunden. Dieser Ansatz hatte mehrere Vor- und Nachteile:
Vorteile:
  • Einfache Einrichtung: OSPF läuft auf nur vier Switches, was den Konfigurationsprozess vereinfacht.
  • Schnittstellenredundanz: LACP bietet Redundanz auf Schnittstellenebene und erhöht damit die Zuverlässigkeit.
Nachteile:
  • Auswirkungen eines Switch-Ausfalls: Der Ausfall eines Switches führt zum Verlust von zwei gesamten Ceph-Knoten, wodurch die Redundanz beeinträchtigt wird.
  • Begrenzte Lastverteilung: Die Lastverteilung ist auf den LACP-Trunk beschränkt, wodurch die verfügbare Bandbreite möglicherweise nicht vollständig genutzt wird.

Optimierte Routing-Lösung

Wetterkarte, die die physischen Verbindungen der endgültigen Routing-Lösung zeigt
Wetterkarte, die die physischen Verbindungen der endgültigen Routing-Lösung zeigt
Da wir mit den Einschränkungen des ursprünglichen Ansatzes unzufrieden waren, haben wir eine robustere Lösung entwickelt: Full Routing. In dieser Konfiguration führt jeder Ceph-Knoten FRRouting (FRR) und OSPF unabhängig voneinander aus. Diese Konfiguration bietet mehrere wesentliche Vorteile:
  • Verbesserte Redundanz: Jeder Knoten ist mit zwei Switches verbunden, sodass der Ausfall eines Switches nicht zum Verlust des Knotens führt. Um die Zuverlässigkeit weiter zu erhöhen, wird Bidirectional Forwarding Detection (BFD) eingesetzt, um bei einem oder mehreren Verbindungsausfällen Fehler innerhalb von Sekundenbruchteilen zu erkennen. Zusätzlich wird Equal-Cost Multi-Path (ECMP)-Routing verwendet, um mehrere redundante Routen bereitzustellen und so die allgemeine Ausfallsicherheit des Netzwerks zu verbessern.
  • Effiziente Nutzung von Schnittstellen: Sowohl das öffentliche als auch das Cluster-Netzwerk werden innerhalb desselben gerouteten Netzwerks betrieben, sodass Ceph die gesamte Bandbreite des Servers für beide Netzwerke dynamisch entsprechend den aktuellen Anforderungen nutzen kann.
  • Dienststabilität: Cluster- und öffentliche Dienste werden auf Loopback-IPs ausgeführt, sodass sie nicht an bestimmte Schnittstellen gebunden sind, die ausfallen könnten.
  • Verbesserte Lastverteilung: Die Lastverteilung wird durch den Einsatz von Equal-Cost Multi-Path (ECMP)-Routing verbessert, das jedem Ziel acht verschiedene Pfade zur Verfügung stellt. Diese Konfiguration ermöglicht eine effektive Verteilung des Datenverkehrs über mehrere Routen, optimiert die Bandbreitennutzung und sorgt für eine ausgewogene Lastverteilung.

Ergebnisse und Erkenntnisse

Nach der Implementierung der vollständigen Routing-Lösung für unseren Ceph-Cluster haben wir eine Reihe von Tests durchgeführt, um dessen Leistung und Redundanz zu bewerten. Es ist wichtig zu beachten, dass die Ceph-Instanz noch nicht vollständig optimiert ist, aber die ersten Ergebnisse sind vielversprechend. Wir haben zufällige Lese-/Schreibgeschwindigkeiten von 3,6 GB/s erreicht, was eine deutliche Verbesserung gegenüber unserer vorherigen Konfiguration darstellt. Diese Tests wurden mit branchenüblichen Benchmarking-Tools durchgeführt, um Genauigkeit und Zuverlässigkeit zu gewährleisten.
Zusätzlich zu den Leistungstests haben wir auch die Redundanz des Systems bewertet. Unsere Tests haben ergeben, dass ein Knoten alle Verbindungen bis auf eine verlieren kann, ohne dass dies Auswirkungen auf die Funktionalität hat, abgesehen von einer Verringerung der verfügbaren Bandbreite. Ebenso können alle Verbindungen zwischen den Rechenzentren (Inter-DC) bis auf eine ausfallen, ohne dass dies Auswirkungen auf das System hat, obwohl dies ebenfalls zu einer Verringerung der verfügbaren Bandbreite führt. Diese Ergebnisse bestätigen die Robustheit und Zuverlässigkeit unserer gerouteten Ceph-Lösung.

Zukunftspläne

Mit Blick auf die Zukunft erwägen wir mehrere Verbesserungen, um unsere Ceph-Infrastruktur weiter zu optimieren. Eines unserer Hauptziele ist es, mehr Verbindungen zwischen den Rechenzentren innerhalb der SANs hinzuzufügen. Diese Erweiterung wird eine noch bessere Lastverteilung zwischen den Rechenzentren ermöglichen und so eine optimale Leistung und Ausfallsicherheit gewährleisten.
Durch die kontinuierliche Bewertung und Optimierung unserer Netzwerkkonfiguration wollen wir einen hochoptimierten Ceph-Cluster erreichen, der unsere Anforderungen an Leistung und Redundanz erfüllt und letztendlich unsere Kerngeschäftsprozesse effektiver unterstützt.
 

Sprechen Sie mit einem Experten

Sprechen Sie direkt mit unseren Experten, die Ihnen gerne Einblicke und Antworten geben.