Redis Sentinel - es ist ein frei verteilbares System, das hohe Verfügbarkeit und Fehlertoleranz in Redis, einer beliebten Open-Source-Datenbank, bietet. Der Sentinel bietet einen Mechanismus zur automatischen Fehlererkennung und zum Umschalten zwischen dem Assistenten und seinen Replikaten im Falle von Problemen.
Mit dem Redis Sentinel können Sie problemlos einen Redis-Cluster einrichten, der aus mehreren Servern besteht und das System auch bei Ausfällen ununterbrochen betreiben kann. Dabei überwacht Sentinel den Status der Server, erkennt automatisch Fehler und ergreift Maßnahmen, um die Integrität wiederherzustellen.
Das Funktionsprinzip von Redis Sentinel basiert auf der Bereitstellung mehrerer unabhängiger Prozesse, die auf verschiedenen Servern ausgeführt werden. Diese Prozesse tauschen regelmäßig Informationen aus und treffen Entscheidungen auf der Grundlage gemeinsamer Vereinbarungen. Wenn ein Problem mit dem Assistenten erkannt wird, weist Sentinel die Assistenten-Rolle automatisch einem der Replikate zu und aktualisiert die Liste der Clients, damit sie mit dem neuen Assistenten arbeiten.
In diesem Artikel werden wir die grundlegenden Funktionsweisen von Redis Sentinel, die Konfiguration eines Redis-Clusters mit dem Sentinel und die Anwendung einiger gebräuchlicher Befehle zur Verwaltung des Redis Sentinel im Detail betrachten.
Was ist ein Redis Sentinel?
Redis ist auf maximale Leistung und Benutzerfreundlichkeit ausgerichtet, bietet jedoch keine integrierten Tools für die Hochverfügbarkeit. Mit der Redis Sentinel-Architektur können Sie Backups (Slaves) erstellen und Clients automatisch zu diesen wechseln, wenn der primäre Server ausfällt. Dadurch wird die Fehlertoleranz des Systems erhöht und der Datenverlust minimiert.
Redis Sentinel funktioniert nach dem Abstimmungsprinzip. Der Redis Sentinel umfasst mehrere unabhängige Prozesse, von denen jeder ein Beobachter des Status der Redis-Server ist. Wenn das System Probleme mit dem primären Masterserver erkennt, werden die Sentinel-Knoten zu einer Gruppe zusammengestellt, eine Abstimmung durchgeführt und ein neuer Master gewählt. Danach werden die Informationen über den neuen Assistenten an die Kunden weitergegeben.
Mit dem Redis Sentinel können Sie umfangreiche Redis-Konfigurationen erstellen. Es bietet einen Mechanismus zur automatischen Erkennung und Verbindung mit Assistenten und Slaves sowie zur Überwachung des Status und der Verfügbarkeit von Servern.
Grundlegende Funktionen des Redis Sentinel:
- Überwachung des Status von Redis-Servern.
- Konfigurieren Sie Clients automatisch zu einem neuen Assistenten, wenn der aktuelle Assistent ausfällt.
- Wählt automatisch einen neuen Assistenten aus, wenn der aktuelle Assistent ausfällt.
- Schaltet Clients automatisch zu Slaves um, wenn der Master ausfällt.
- Überwachen der Serverkonfiguration.
- Automatische Wiederherstellung der Clusterkonfiguration nach einem Fehler.
Mit dem Redis Sentinel können Sie zuverlässige und fehlertolerante Redis-basierte Systeme erstellen, die eine hohe Verfügbarkeit und einen permanenten Datenzugriff garantieren.
Grundlegende Funktionsweise von Redis Sentinel
Überwachen des Serverstatus: Redis Sentinel überwacht ständig den Status aller Server im Cluster. Er überprüft die Verfügbarkeit der Server und Failovers zum Replikat, wenn der Coreserver ausfällt.
Automatische Fehlererkennung: Wenn der Redis Sentinel einen Fehler des Coreservers erkennt, wählt er automatisch eines der Replikate aus, um die Rolle des Coreservers zu übernehmen. Es sendet außerdem einen Befehl an alle Clients, damit sie mit dem neuen Coreserver beginnen können.
Wechseln zum Replikat: Der Redis Sentinel wählt ein Replikat aus, um die Rolle des Coreservers zu übernehmen, basierend auf verschiedenen Faktoren wie Verfügbarkeit, Priorität und Zeitpunkt der letzten Synchronisierung mit dem Coreserver. Wenn kein Replikat die Bedingungen erfüllt, kann Redis Sentinel selbst ein neues Replikat erstellen, um den ausgefallenen Server zu ersetzen.
Konfiguration verwalten: Mit dem Redis Sentinel können Sie auch die Clusterkonfiguration verwalten. Es überwacht Änderungen an der Serverkonfiguration und passt seine Konfiguration automatisch an, um diese Änderungen widerzuspiegeln. Wenn Sie Server hinzufügen oder entfernen, hilft Redis Sentinel auch bei der Neukonfiguration der Clients, damit sie mit der neuen Konfiguration arbeiten.
Diese Grundprinzipien des Redis Sentinel-Betriebs gewährleisten die Stabilität und den kontinuierlichen Betrieb von Redis-Clustern, sodass Sie schnell auf Serverausfälle und -ausfälle reagieren können.
Einrichten und Installieren von Redis Sentinel
Um den Redis Sentinel zu installieren und zu konfigurieren, müssen Sie einige Schritte ausführen:
- Installieren Sie Redis auf Ihrem System. Anweisungen zur Installation von Redis finden Sie auf der offiziellen Redis-Website.
- Erstellen Sie eine Konfigurationsdatei für den Sentinel. Diese Datei definiert die Einstellungen für den Sentinel, z. B. den Port, die Adressen der überwachten Redis-Server und andere Einstellungen. Hier ist ein Beispiel für die Redis Sentinel-Konfigurationsdatei:
| # Beispiel für die Redis Sentinel-Konfigurationsdatei |
|---|
| port 26379 |
| sentinel monitor mymaster 127.0.0.1 6379 2 |
| sentinel down-after-milliseconds mymaster 5000 |
| sentinel failover-timeout mymaster 10000 |
| sentinel parallel-syncs mymaster 1 |
In diesem Beispiel überwacht der Sentinel den Redis-Server mit dem Namen "mymaster" an Adresse 127.0.0.1 und Port 6379. Falls der Server innerhalb von 5 Sekunden nicht verfügbar ist, erklärt Sentinel ihn für fehlerhaft und versucht, den Failover-Prozess an einen anderen Server weiterzuleiten. Das Zeitlimit für den Failover-Prozess beträgt 10 Sekunden, und die Daten werden parallel mit nur einem Server synchronisiert.
- Starten Sie Redis Sentinel mit dem Befehl redis-sentinel /path/to/redis-sentinel.conf , wobei /path/to/redis sentinel ist.conf ist der Pfad zu Ihrer Sentinel-Konfigurationsdatei.
Nach erfolgreichem Start wird der Sentinel mit der Überwachung des Redis-Masterservers beginnen und, falls dieser nicht verfügbar ist, automatisch zu einem der Slave-Server wechseln.
Jetzt ist der Redis Sentinel konfiguriert und einsatzbereit. Damit können Sie die hohe Verfügbarkeit und Ausfallsicherheit Ihrer Redis-Infrastruktur gewährleisten.
Schritt 1: Installieren des Redis Sentinel
Stellen Sie sicher, dass Redis auf Ihrem Server installiert ist, bevor Sie mit der Installation von Redis Sentinel beginnen.
1. Öffnen Sie eine Eingabeaufforderung und führen Sie den folgenden Befehl aus, um das Redis Sentinel-Archiv herunterzuladen:
wget http://download.redis.io/redis-stable/sentinel.conf
2. Entpacken Sie das Archiv mit dem Befehl:
unzip sentinel.zip
3. Navigieren Sie zum Ordner mit den entpackten Dateien:
cd sentinel
4. Kopieren Sie die ausführbare Sentinel-Datei.conf zum Redis-Verzeichnis:
cp sentinel.conf /usr/local/bin/redis/
5. Öffnen Sie die Sentinel-Datei.conf und bearbeiten Sie es, indem Sie die Adressen und Ports des Masterservers und der Slave-Server angeben.
6. Speichern Sie die Änderungen, und schließen Sie die sentinel-Datei.conf.
Glückwunsch! Redis Sentinel wurde erfolgreich auf Ihrem Server installiert.
Schritt 2: Konfiguration des Redis Sentinel
Nachdem der Redis Sentinel erfolgreich installiert wurde, müssen Sie ihn konfigurieren, um ihn für die Arbeit mit Ihrer Client-Anwendung und den Redis-Servern zu konfigurieren.
Die Hauptkonfigurationsdatei von Sentinel ist sentinel.conf. Es enthält Einstellungen für alle Komponenten, einschließlich des Assistenten und des Slave des Redis-Servers.
Beginnen wir mit der Analyse der grundlegenden Sentinel-Einstellungen.conf:
port: dieser Parameter gibt den Port an, auf dem der Redis Sentinel ausgeführt wird. Der Standardport ist Port 26379.
sentinel monitor: in diesem Parameter geben Sie den Namen Ihres Redis-Masterservers und seine IP-Adresse und seinen Port an. Beispiel: sentinel monitor mymaster 127.0.0.1 6379 2. Die letzte Zahl (2) ist die Anzahl der vom Assistenten verwendeten Slave-Server.
sentinel auth-pass: wenn Sie über ein Passwort für den Zugriff auf den Redis-Assistenten oder seine Slave-Funktionen verfügen, können Sie es mit dieser Option angeben. Zum Beispiel: sentinel auth-pass mymaster password.
sentinel down-after-milliseconds: dieser Parameter gibt die Zeit in Millisekunden an, in der der Sentinel den Redis-Server als nicht verfügbar ansieht, es sei denn, er erhält eine Antwort von ihm. Der Standardwert ist 30.000 ms (30 Sekunden).
sentinel parallel-syncs: dieser Parameter gibt an, wie viele Slave-Server gleichzeitig mit dem Assistenten synchronisiert werden können. Der Standardwert ist 1.
sentinel failover-timeout: dieser Parameter gibt die Zeit in Millisekunden an, die der Sentinel auf die Ausführung der Failover-Prozedur wartet, wenn der Redis-Assistent nicht verfügbar ist. Der Standardwert ist auf 180.000 ms (3 Minuten) festgelegt.
Dies sind nur einige der grundlegenden Einstellungen, die Sie in der Sentinel-Datei konfigurieren können.conf. Es wird empfohlen, die offizielle Redis-Dokumentation zu lesen, um weitere Informationen zu den Sentinel-Einstellungen zu erhalten.
So arbeiten Sie mit dem Redis Sentinel
1. Konfigurieren der Konfiguration
Zuerst müssen Sie die Konfiguration für den Sentinel vorbereiten. In der Sentinel-Datei.conf legt Parameter wie Adressen und Ports für die Überwachung von Redis-Servern, die Anzahl der Quorumleser, die Zeitdauer, in der der Sentinel überwacht wird, und vieles mehr fest.
2. Starten des Redis Sentinel
Nachdem Sie die Konfiguration konfiguriert haben, können Sie Redis Sentinel mit dem Befehl redis-sentinel /path/to/sentinel starten.conf. Der Sentinel beginnt mit der Überwachung der Redis-Server und sorgt für ein automatisches Umschalten, wenn einer der Server ablehnt.
3. Hinzufügen eines Assistenten
Um einen Masterserver zu einem Cluster hinzuzufügen, führen Sie den Befehl sentinel monitor aus, der den Namen des Assistenten, seine IP-Adresse und seinen Port sowie die Anzahl der Quorumleser für die Entscheidungsfindung angibt. Der Sentinel beginnt mit der Überwachung des Assistenten und wechselt automatisch zum Ersatzserver, wenn der Assistent dies ablehnt.
4. Hinzufügen von Ersatzservern
Nachdem Sie den Assistenten hinzugefügt haben, müssen Sie Ersatzserver mit dem Befehl sentinel set down-after-milliseconds hinzufügen, wobei die Zeit in Millisekunden angegeben wird, in der Sentinel den Server für nicht verfügbar hält. Ersatzserver werden verwendet, wenn der Master dies ablehnt.
5. Statusüberwachung
Redis Sentinel überwacht ständig den Status des Master-Servers und der Ersatzserver. Wenn der Assistent fehlschlägt, wählt der Sentinel einen der Ersatzserver aus, um den Cluster fortzusetzen. Außerdem benachrichtigt Sentinel den Systemadministrator über Ereignisse mit vordefinierten Befehlen wie sentinel get-master-addr-by-name und sentinel slaves .
6. Automatische Wiederherstellung
Redis Sentinel bietet eine automatische Wiederherstellung nach einem Ausfall des Assistenten. Nachdem der Assistent wiederhergestellt wurde, gibt Sentinel ihn an den Cluster zurück und schaltet den Ersatzserver in den Slave-Modus um. Alle Daten, die beim Ausfall des Assistenten geändert wurden, werden mit dem Ersatzserver synchronisiert.
Wenn Sie diese Vorgehensweise befolgen, können Sie mit dem Redis Sentinel eine hohe Verfügbarkeit und Fehlertoleranz für Daten in einem Redis-Cluster erzielen.
Schritt 1: Initialisieren von Master und Slave
Führen Sie die folgenden Schritte aus, um den Assistenten und den Slave zu initialisieren:
- Erstellen Sie eine Redis-Konfigurationsdatei für Master und Slave. In dieser Datei werden die Verbindungseinstellungen und die Datenbankeinstellungen definiert.
- Starten Sie den Redis-Server mit der erstellten Konfigurationsdatei für den Assistenten. Dies kann mit dem Befehl redis-server erfolgen.
- Starten Sie den Redis-Server mit der erstellten Slave-Konfigurationsdatei. Dazu wird auch der Befehl redis-server verwendet.
- Konfigurieren Sie den Masterserver und den Slave-Server so, dass sie miteinander kommunizieren. Dazu müssen Sie in den Konfigurationsdateien die Adressen und Ports des Assistenten und des Slave angeben und den Replikationsmechanismus konfigurieren.
Nachdem Sie diese Schritte ausgeführt haben, sind der Master und die Slaves bereit, mit dem Redis Sentinel zu arbeiten. Im nächsten Abschnitt werden wir uns mit dem Konfigurationsprozess für Redis Sentinel befassen.