Mobile-Menu

Speichertipp: Kernkomponente für Clusterkoordination und Serviceverwaltung Verteilte Schlüssel-Werte-Datenbank für konsistente Systeme: etcd

Von Thomas Joos 3 min Lesedauer

Anbieter zum Thema

etcd ist ein verteilter, konsistenter Key-Value-Store für kritische Systemdaten. Das in Go entwickelte System nutzt den Raft-Konsensalgorithmus, um Konfigurationen, Clusterzustände und Serviceinformationen zuverlässig zu speichern und synchron über mehrere Knoten zu replizieren.

Der hochverfügbare Key-Value-Store etcd speichert kritische Zustandsdaten in verteilten Umgebungen.(Bild:  Midjourney / KI-generiert)
Der hochverfügbare Key-Value-Store etcd speichert kritische Zustandsdaten in verteilten Umgebungen.
(Bild: Midjourney / KI-generiert)

etcd stellt einen hochverfügbaren, konsistenten Key-Value-Store bereit, der kritische Zustandsdaten in verteilten Umgebungen speichert. Das System basiert auf dem Raft-Konsensalgorithmus, um Replikation, Ausfallsicherheit und Datenkonsistenz über mehrere Knoten hinweg sicherzustellen. Entwickelt in Go, bildet etcd die Grundlage vieler moderner Plattformen wie Kubernetes, Container-Laufzeiten oder Service-Orchestratoren, in denen eine zuverlässige Koordination zwischen Komponenten erforderlich ist.

Architektur und Funktionsprinzip

Ein etcd-Cluster besteht aus einer ungeraden Anzahl von Mitgliedern, die gemeinsam einen Konsens über alle Schreiboperationen bilden. Das Quorum bestimmt die minimale Anzahl an Stimmen, die notwendig ist, um einen Eintrag als bestätigt zu betrachten. Jeder Knoten kann als Leader oder Follower agieren. Der Leader koordiniert alle schreibenden Operationen, Follower replizieren diese. Fällt der Leader aus, initiiert Raft automatisch eine Neuwahl. Diese Architektur garantiert, dass zu jedem Zeitpunkt nur ein gültiger Leader aktiv ist, und verhindert Split-Brain-Szenarien.

Alle Einträge werden als Raft-Log in der richtigen Reihenfolge auf die Festplatte geschrieben und regelmäßig kompaktiert. etcd behält damit den exakten Verlauf des Schlüsselraums, bis eine automatische oder manuelle Kompaktierung ausgelöst wird. Persistente Logs stellen sicher, dass nach einem Neustart der vollständige Zustand wiederhergestellt werden kann.

Die Kommunikation erfolgt über gRPC mit TLS-Verschlüsselung. Die empfohlene Umgebung setzt auf SSD-Speicher, da Schreib- und Latenzzeiten die Stabilität und Wahlzyklen direkt beeinflussen. Eine typische Clusterkonfiguration umfasst drei bis fünf Mitglieder, um eine Balance zwischen Fehlertoleranz und Replikationsaufwand zu erreichen.

Datenmodell und API

etcd stellt einen einfachen, transaktionalen Schlüsselwertspeicher zur Verfügung, der kleine Datenmengen vollständig im Speicher hält. Der Zugriff erfolgt über das Tool „etcdctl“, das grundlegende Operationen wie „put“ und „get“ bereitstellt. Anwendungen kommunizieren direkt über die gRPC-API, die sowohl synchrone als auch Watch-basierte Aufrufe unterstützt. Damit lassen sich Änderungen am Schlüsselraum in Echtzeit verfolgen, was etcd als zentrales Konfigurations- und Synchronisationssystem prädestiniert.

Durch die Versionierung jedes Schlüssels ist Multi-Version-Concurrency-Control (MVCC) möglich. Dadurch kann etcd parallele Lesezugriffe bedienen und gleichzeitig konsistente Schreiboperationen durchführen. Kompaktierungen und Defragmentierungen verhindern, dass das Datenvolumen die Speichergrenze überschreitet. Das Standardlimit liegt bei 2 GB, kann jedoch angepasst werden.

Sicherheitsmechanismen und Zugriffskontrolle

TLS ist standardmäßig aktiviert und kann um Client-Zertifikatsauthentifizierung ergänzt werden. Jedes Mitglied kommuniziert ausschließlich über verschlüsselte Verbindungen. Der Cluster überprüft sowohl eingehende als auch ausgehende Zertifikate. Administratoren steuern den Zugriff über Authentifizierungstokens und rollenbasierte Policies. Die interne Struktur von etcd schützt vor Konfigurationsfehlern, indem riskante Replikations- oder Mitgliedschaftsänderungen abgelehnt werden.

etcd bietet einen Key-value-Storage für Container-Umgebungen.(Bild:  Joos – etcd)
etcd bietet einen Key-value-Storage für Container-Umgebungen.
(Bild: Joos – etcd)

Installation und lokale Clusterumgebung

Für Testzwecke lässt sich ein lokaler Drei-Knoten-Cluster über das Tool „goreman“ starten. Das zugehörige „Procfile“ definiert Mitglieder mit den Namen „infra1“, „infra2“ und „infra3“. Nach „goreman start“ laufen alle Instanzen lokal und bilden ein funktionierendes Cluster. Jedes Mitglied akzeptiert Lese- und Schreiboperationen, leitet Schreibanforderungen jedoch an den aktuellen Leader weiter.

Der einfachste Einstieg erfolgt über die vorgefertigten Binärpakete für Linux, macOS, Windows oder Docker. Nach Installation lässt sich der Dienst direkt mit „etcd“ starten. Der Server lauscht anschließend auf Port 2379 und 2380. Mit dem Kommando

etcdctl put mykey "testwert"

legt man einen Schlüssel ab und liest ihn mit

etcdctl get mykey

wieder aus. Damit ist ein funktionsfähiger Einzelknoten aktiv, der sich beliebig zu einem Cluster erweitern lässt.

Einsatzgebiete und Integration

etcd kommt als Koordinationsdienst in komplexen, containerisierten Umgebungen zum Einsatz. Kubernetes nutzt es als zentrales Backend für alle API-Objekte, darunter Pods, Services, Deployments und Secrets. Andere Systeme wie CoreOS locksmith, Doorman oder Vulcand verwenden etcd als konsistente Speicherbasis für verteilte Zustände.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Data-Storage und -Management

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Aktuelles eBook

Open-Source-Storage – Speicher-Software zum Nulltarif

eBook Open-Source-Storage
eBook „Open-Source-Storage“
(Bild: Storage-Insider)

Der Bedarf an Speicherkapazität steigt von Tag zu Tag – nicht nur, um die Daten von Produkten, Kunden und Transaktionen zu sichern, sondern auch, um Compliance-Anforderungen zu erfüllen und Auditierungen gut zu überstehen. Eine leistungsfähige Storage-Lösung ist also gefragt. Eine kostenlose Option bietet Open-Source-Software für Storage, insbesondere dann, wenn man sie selbst den eigenen Anforderungen anpassen darf.

Die Themen im Überblick:

  • Warum Storage als Open Source?
  • NAS & Objektspeicher
  • Backup & Disaster Recovery
  • Dateisysteme
  • Technologiestapel & Ökosysteme

(ID:50638993)