Dieser Abschnitt enthält eine allgemeine Anleitung für Skalierungsvorgänge von Cassandra, indem Cassandra auf Apigee Edge für Private Cloud-Rack entsprechend eingerichtet wird.
Weitere Informationen darüber, warum es wichtig ist, Ihr Cassandra-Ringrack aufzudecken, finden Sie in den folgenden Ressourcen:
- Replikation (Cassandra-Dokumentation)
- Cassandra-Architektur und Replikationsfaktorstrategie
Was ist ein Gestell?
Ein Cassandra-Rack ist eine logische Gruppierung von Cassandra-Knoten innerhalb des Rings. Cassandra verwendet Racks, um sicherzustellen, dass Replikate auf verschiedene logische Gruppierungen verteilt sind. Infolgedessen werden Vorgänge nicht nur an einen Knoten, sondern an mehrere Knoten in einem separaten Rack gesendet, was eine höhere Fehlertoleranz und Verfügbarkeit bietet.
In den Beispielen in diesem Abschnitt werden drei Cassandra-Racks verwendet. Dies entspricht der Anzahl der Racks, die von Apigee in Produktionstopologien unterstützt werden.
Die Standardinstallation von Cassandra in Apigee Edge für Private Cloud geht von einem einzelnen logischen Rack aus und platziert alle Knoten in einem darin enthaltenen Rechenzentrum. Obwohl diese Konfiguration einfach zu installieren und zu verwalten ist, ist sie anfällig für Fehler, wenn ein Vorgang auf einem dieser Knoten fehlschlägt.
Die folgende Abbildung zeigt die Standardkonfiguration des Cassandra-Ringes:
In einer robusteren Konfiguration wird jeder Knoten einem separaten Rack zugewiesen und Vorgänge werden auch für Replikate auf jedem dieser Racks ausgeführt.
Die folgende Abbildung zeigt einen Ring mit 3 Knoten. Dieses Bild zeigt die Reihenfolge, in der Vorgänge über den Ring repliziert werden (im Uhrzeigersinn). Außerdem wird hervorgehoben, dass sich keine zwei Knoten auf demselben Rack befinden:
In dieser Konfiguration werden Vorgänge an einen Knoten, aber auch an Replikate dieses Knotens auf anderen Racks (im Uhrzeigersinn) gesendet.
Rack-Bekanntheit erhöhen (mit 3 Knoten)
Alle Installationstopologien in der Produktion von Apigee Edge for Private Cloud haben mindestens drei Cassandra-Knoten, die in diesem Abschnitt als „IP1“, „IP2“ und „IP3“ bezeichnet werden. Standardmäßig befindet sich jeder dieser Knoten im selben Rack "ra-1".
In diesem Abschnitt wird beschrieben, wie die Cassandra-Knoten separaten Racks zugewiesen werden, sodass alle Vorgänge an Replikatknoten in separaten logischen Gruppierungen innerhalb des Rings gesendet werden.
So weisen Sie Cassandra-Knoten während der Installation verschiedenen Racks zu:
- Bevor Sie das Installationsprogramm ausführen, melden Sie sich beim Cassandra-Knoten an und öffnen Sie die folgende stumme Konfigurationsdatei zur Bearbeitung:
/opt/silent.conf
Erstellen Sie die Datei, wenn sie nicht vorhanden ist, und legen Sie den Nutzer „apigee“ als Eigentümer fest.
- Bearbeiten Sie das Attribut
CASS_HOSTS
. Dies ist eine durch Leerzeichen getrennte Liste von IP-Adressen (keine DNS- oder Hostnameneinträge), die die folgende Syntax verwendet:CASS_HOSTS="IP_address:data_center_number,rack_number [...]"
Der Standardwert ist ein Cassandra-Ring mit drei Knoten, bei dem jeder Knoten Rack 1 und Rechenzentrum 1 zugewiesen ist, wie im folgenden Beispiel gezeigt:
CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
- Ändern Sie die Rack-Zuweisungen so, dass Knoten 2 Rack 2 und Knoten 3 Rack 3 zugewiesen wird, wie im folgenden Beispiel gezeigt:
CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"
Durch Ändern der Rack-Zuweisungen weisen Sie Cassandra an, zwei zusätzliche logische Gruppierungen (Racks) zu erstellen, die dann Replikate bereitstellen, die alle vom ersten Knoten empfangenen Vorgänge empfangen.
Weitere Informationen zum Verwenden des Konfigurationsattributs
CASS_HOSTS
finden Sie in der Referenz zur Edge-Konfigurationsdatei. - Speichern Sie die Änderungen an der Konfigurationsdatei und führen Sie den folgenden Befehl aus, um Cassandra mit Ihrer aktualisierten Konfiguration zu installieren:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config
Beispiel:
/opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
- Wiederholen Sie diesen Vorgang für jeden Cassandra-Knoten im Ring in der Reihenfolge, in der die Knoten im Attribut
CASS_HOSTS
zugewiesen sind. In diesem Fall müssen Sie Cassandra in der folgenden Reihenfolge installieren:- Knoten 1 (IP1)
- Knoten 2 (IP2)
- Knoten 3 (IP3)
Nach der Installation sollten Sie die Cassandra-Konfiguration prüfen.
Cassandra-Konfiguration prüfen
Nach der Installation einer Cassandra-Konfiguration mit Rack-Unterstützung können Sie prüfen, ob die Knoten den verschiedenen Racks zugewiesen sind. Dazu verwenden Sie den Befehl nodetool status
, wie das folgende Beispiel zeigt:
/opt/apigee/apigee-cassandra/bin/nodetool status
(Sie führen diesen Befehl auf einem der Cassandra-Knoten aus.)
Die Ergebnisse sollten in etwa so aussehen, wobei die Spalte Rack die verschiedenen Rack-IDs für jeden Knoten enthält:
Datacenter: dc-1 ======================== Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns Host ID Rack UN IP1 737 MB 256 ? 554d4498-e683-4a53-b0a5-e37a9731bc5c ra-1 UN IP2 744 MB 256 ? cf8b7abf-5c5c-4361-9c2f-59e988d52da3 ra-2 UN IP3 723 MB 256 ? 48e0384d-738f-4589-aa3a-08dc5bd5a736 ra-3
Wenn Sie die JMX-Authentifizierung für Cassandra aktiviert haben, müssen Sie Ihren Nutzernamen und Ihr Passwort auch an nodetool
übergeben. Weitere Informationen finden Sie unter Mit nodetool Clusterknoten verwalten.
Ring mit sechs Knoten installieren
Für zusätzliche Redundanz können Sie den Cassandra-Ring auf sechs Knoten erweitern. In diesem Fall weisen Sie jedem der drei Racks zwei Knoten zu. Diese Konfiguration erfordert zusätzliche drei Knoten: Knoten 4 (IP4), Knoten 5 (IP5) und Knoten 6 (IP6).
Die folgende Abbildung zeigt die Reihenfolge, in der Vorgänge über den Ring repliziert werden (im Uhrzeigersinn). Außerdem wird hervorgehoben, dass sich während der Replikation keine zwei benachbarten Knoten auf demselben Rack befinden:
In dieser Konfiguration hat jeder Knoten zwei weitere Replikate: eines in jedem der beiden anderen Racks. Knoten 1 in Rack 1 hat beispielsweise ein Replikat in Rack 2 und Rack 3. An Knoten 1 gesendete Vorgänge werden im Uhrzeigersinn auch an die Replikate in den anderen Racks gesendet.
Wenn Sie einen Cassandra-Ring mit drei Knoten auf einen Cassandra-Ring mit sechs Knoten erweitern möchten, konfigurieren Sie die Knoten in Ihrer stillen Konfigurationsdatei wie folgt:
CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"
Wie bei einem Ring mit drei Knoten müssen Sie Cassandra in derselben Reihenfolge installieren, in der die Knoten im Attribut CASS_HOSTS
angezeigt werden:
- Knoten 1 (IP1)
- Node 4 (IP4)*
- Knoten 2 (IP2)
- Knoten 5 (IP5)
- Knoten 3 (IP3)
- Knoten 6 (IP6)
* Nehmen Sie Ihre Änderungen in der stillen Konfigurationsdatei vor, bevor Sie das Einrichtungsdienstprogramm auf dem vierten Knoten (dem zweiten Rechner in der Cassandra-Installationsreihenfolge) ausführen.
Auf 12 Knoten erweitern
Um die Fehlertoleranz und Verfügbarkeit weiter zu erhöhen, können Sie die Anzahl der Cassandra-Knoten im Ring von sechs auf 12 erhöhen. Diese Konfiguration erfordert zusätzliche sechs Knoten (IP7 bis IP12).
Die folgende Abbildung zeigt die Reihenfolge, in der Vorgänge über den Ring repliziert werden (im Uhrzeigersinn). Außerdem wird hervorgehoben, dass sich während der Replikation keine zwei benachbarten Knoten auf demselben Rack befinden:
Das Verfahren zum Installieren eines Rings mit 12 Knoten ähnelt der Installation eines Rings mit drei oder sechs Knoten: Setzen Sie CASS_HOSTS
auf die angegebenen Werte und führen Sie das Installationsprogramm in der angegebenen Reihenfolge aus.
Zur Erweiterung auf einen Cassandra-Ring mit 12 Knoten konfigurieren Sie die Knoten in Ihrer stillen Konfigurationsdatei wie folgt:
CASS_HOSTS="IP1:1,1 IP7:1,2 IP4:1,3 IP8:1,1 IP2:1,2 IP9:1,3 IP5:1,1 IP10:1,2 IP3:1,3 IP11:1,1 IP6:1,2 IP12:1,3"
Wie bei Ringen mit drei und sechs Knoten müssen Sie das Installationsprogramm auf Knoten in der Reihenfolge ausführen, in der die Knoten in der Konfigurationsdatei aufgeführt sind:
- Knoten 1 (IP1)
- Node 7 (IP7)*
- Knoten 4 (IP4)
- Knoten 8 (IP8)
- Knoten 2 (IP2)
- Knoten 9 (IP9)
- Knoten 5 (IP5)
- Knoten 10 (IP10)
- Knoten 3 (IP3)
- Knoten 11 (IP11)
- Knoten 6 (IP6)
- Knoten 12 (IP12)
* Sie müssen diese Änderungen vornehmen, bevor Sie Apigee Edge für Private Cloud auf dem 7. Knoten (der zweiten Maschine in der Cassandra-Installationsreihenfolge) installieren.