In diesem Abschnitt finden Sie allgemeine Informationen zur Skalierung von Cassandra-Vorgängen, indem Sie Cassandra in Apigee Edge for Private Cloud Rack-fähig machen.
Weitere Informationen dazu, warum es wichtig ist, Ihren Cassandra-Ring rack-aware zu machen, finden Sie in den folgenden Ressourcen:
- Replikation (Cassandra-Dokumentation)
- Cassandra-Architektur und Strategie für den Replikationsfaktor
Was ist ein Rack?
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. Daher werden Vorgänge nicht nur an einen Knoten, sondern an mehrere Knoten gesendet, die sich jeweils in einem separaten Rack befinden. Dies sorgt für eine höhere Fehlertoleranz und Verfügbarkeit.
In den Beispielen in diesem Abschnitt werden drei Cassandra-Racks verwendet. Das ist die Anzahl der Racks, die von Apigee in Produktionstopologien unterstützt werden.
Bei der Standardinstallation von Cassandra in Apigee Edge for Private Cloud wird von einem einzelnen logischen Rack ausgegangen, in dem alle Knoten in einem Rechenzentrum platziert werden. Diese Konfiguration ist zwar einfach zu installieren und zu verwalten, aber anfällig für Fehler, wenn ein Vorgang auf einem dieser Knoten fehlschlägt.
Die folgende Abbildung zeigt die Standardkonfiguration des Cassandra-Rings:
In einer robusteren Konfiguration würde jeder Knoten einem separaten Rack zugewiesen und Vorgänge würden auch auf Replikaten auf jedem dieser Racks ausgeführt.
Die folgende Abbildung zeigt einen Ring mit drei Knoten. Dieses Bild zeigt die Reihenfolge, in der Vorgänge im Ring repliziert werden (im Uhrzeigersinn), und hebt hervor, dass sich keine zwei Knoten im selben Rack befinden:
In dieser Konfiguration werden Vorgänge an einen Knoten gesendet, aber auch an Replikate dieses Knotens in anderen Racks (im Uhrzeigersinn).
Rack-Awareness hinzufügen (mit 3 Knoten)
Alle Installationstopologien von Apigee Edge for Private Cloud für die Produktion haben mindestens drei Cassandra-Knoten, die in diesem Abschnitt als „IP1“, „IP2“ und „IP3“ bezeichnet werden. Standardmäßig befinden sich alle diese Knoten im selben Rack, „ra-1“.
In diesem Abschnitt wird beschrieben, wie Sie die Cassandra-Knoten separaten Racks zuweisen, 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 Konfigurationsdatei für die unbeaufsichtigte Installation zur Bearbeitung:
/opt/silent.conf
Erstellen Sie die Datei, falls sie nicht vorhanden ist, und machen Sie den Nutzer „apigee“ zum Inhaber.
- Bearbeiten Sie das Attribut
CASS_HOSTS, 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, wobei 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 Rackzuweisungen 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"
Wenn Sie die Rackzuweisungen ändern, weisen Sie Cassandra an, zwei zusätzliche logische Gruppierungen (Racks) zu erstellen. Diese stellen dann Replikate bereit, die alle Vorgänge empfangen, die vom ersten Knoten empfangen werden.
Weitere Informationen zur Verwendung des Konfigurationsattributs
CASS_HOSTSfinden 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 der 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_HOSTSzugewiesen 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 rack-aware Cassandra-Konfiguration können Sie mit dem Befehl nodetool status prüfen, ob die Knoten den verschiedenen Racks zugewiesen sind. Beispiel:
/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 in der Spalte Rack die verschiedenen Rack-IDs für jeden Knoten angezeigt werden:
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 auch Ihren Nutzernamen und Ihr Passwort an nodetool übergeben. Weitere Informationen finden Sie unter Clusterknoten mit nodetool 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. Für diese Konfiguration sind drei zusätzliche Knoten erforderlich: Knoten 4 (IP4), Knoten 5 (IP5) und Knoten 6 (IP6).
Die folgende Abbildung zeigt die Reihenfolge, in der Vorgänge im Ring repliziert werden (im Uhrzeigersinn). Außerdem wird hervorgehoben, dass sich während der Replikation keine zwei benachbarten Knoten im selben Rack befinden:
In dieser Konfiguration hat jeder Knoten zwei weitere Replikate: eines in jedem der anderen beiden Racks. Beispiel: Knoten 1 in Rack 1 hat ein Replikat in Rack 2 und Rack 3. Vorgänge, die an Knoten 1 gesendet werden, werden auch an die Replikate in den anderen Racks im Uhrzeigersinn 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 Konfigurationsdatei für die unbeaufsichtigte Installation so:
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 aufgeführt sind:
- Knoten 1 (IP1)
- Knoten 4 (IP4)*
- Knoten 2 (IP2)
- Knoten 5 (IP5)
- Knoten 3 (IP3)
- Node 6 (IP6)
* Nehmen Sie die Änderungen in der Konfigurationsdatei für die unbeaufsichtigte Installation vor, bevor Sie das Einrichtungsprogramm auf dem vierten Knoten (dem zweiten Computer in der Cassandra-Installationsreihenfolge) ausführen.
Auf 12 Knoten erweitern
Wenn Sie die Fehlertoleranz und Verfügbarkeit weiter erhöhen möchten, können Sie die Anzahl der Cassandra-Knoten im Ring von sechs auf zwölf erhöhen. Für diese Konfiguration sind sechs zusätzliche Knoten (IP7 bis IP12) erforderlich.
Die folgende Abbildung zeigt die Reihenfolge, in der Vorgänge im Ring repliziert werden (im Uhrzeigersinn). Außerdem wird hervorgehoben, dass sich während der Replikation keine zwei benachbarten Knoten im selben Rack befinden:
Das Verfahren zum Installieren eines Rings mit 12 Knoten ähnelt dem Installieren 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.
Wenn Sie auf einen Cassandra-Ring mit 12 Knoten erweitern möchten, konfigurieren Sie die Knoten in Ihrer Konfigurationsdatei für die unbeaufsichtigte Installation so:
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 einem Ring mit drei und sechs Knoten müssen Sie das Installationsprogramm auf den Knoten in der Reihenfolge ausführen, in der die Knoten in der Konfigurationsdatei angezeigt werden:
- Knoten 1 (IP1)
- Knoten 7 (IP7)*
- Knoten 4 (IP4)
- Knoten 8 (IP8)
- Knoten 2 (IP2)
- Node 9 (IP9)
- Knoten 5 (IP5)
- Knoten 10 (IP10)
- Knoten 3 (IP3)
- Knoten 11 (IP11)
- Node 6 (IP6)
- Knoten 12 (IP12)
* Sie müssen diese Änderungen vornehmen, bevor Sie Apigee Edge for Private Cloud auf dem siebten Knoten (dem zweiten Computer in der Cassandra-Installationsreihenfolge) installieren.