Cassandra-Rack-Unterstützung hinzufügen

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:

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:

1 Rack mit 3 Knoten
(Abbildung 1) Standardkonfiguration: Alle Knoten auf einem einzelnen Rack

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:

3 Racks mit 1 Knoten in jedem Rack
(Abbildung 2) Rack-sensitive Konfiguration: drei Knoten, einer in jedem Rack

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:

  1. 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.

  2. 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"
  3. Ä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.

  4. 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
  5. 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:
    1. Knoten 1 (IP1)
    2. Knoten 2 (IP2)
    3. 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:

3 Racks mit 2 Knoten in jedem Rack
(Abbildung 3) Cassandra-Ring mit 6 Knoten: Zwei Knoten auf jedem von drei Racks

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:

  1. Knoten 1 (IP1)
  2. Node 4 (IP4)*
  3. Knoten 2 (IP2)
  4. Knoten 5 (IP5)
  5. Knoten 3 (IP3)
  6. 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:

3 Racks mit je 4 Knoten in jedem Rack
(Abbildung 4) Cassandra-Ring mit 12 Knoten: Vier Knoten auf jedem der drei Racks

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:

  1. Knoten 1 (IP1)
  2. Node 7 (IP7)*
  3. Knoten 4 (IP4)
  4. Knoten 8 (IP8)
  5. Knoten 2 (IP2)
  6. Knoten 9 (IP9)
  7. Knoten 5 (IP5)
  8. Knoten 10 (IP10)
  9. Knoten 3 (IP3)
  10. Knoten 11 (IP11)
  11. Knoten 6 (IP6)
  12. 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.