Ajouter la compatibilité avec les racks Cassandra

Cette section fournit des conseils généraux pour le scaling des opérations de Cassandra en rendant Cassandra sur Apigee Edge pour le rack de cloud privé.

Pour en savoir plus sur l'importance de détecter les racks d'anneaux Cassandra, consultez les ressources suivantes:

Qu'est-ce qu'un rack ?

Un rack Cassandra est un regroupement logique de nœuds Cassandra dans l'anneau. Cassandra utilise des racks pour garantir que les instances répliquées sont réparties entre différents groupes logiques. Par conséquent, les opérations ne sont pas envoyées à un seul nœud, mais à plusieurs nœuds, chacun sur un rack distinct, offrant ainsi une meilleure tolérance aux pannes et une meilleure disponibilité.

Les exemples de cette section utilisent trois racks Cassandra, qui correspondent au nombre de racks pris en charge par Apigee dans les topologies de production.

L'installation par défaut de Cassandra dans Apigee Edge pour Private Cloud suppose l'utilisation d'un seul rack logique et y place tous les nœuds dans un centre de données. Bien que cette configuration soit simple à installer et à gérer, elle est susceptible d'échouer si une opération échoue sur l'un de ces nœuds.

L'image suivante illustre la configuration par défaut de l'anneau Cassandra:

1 rack avec 3 nœuds
(Figure 1) Configuration par défaut: tous les nœuds sur un seul rack

Dans une configuration plus robuste, chaque nœud serait attribué à un rack distinct, et les opérations s'exécuteraient également sur des instances répliquées sur chacun de ces racks.

L'image suivante montre un anneau à trois nœuds. Cette image montre l'ordre dans lequel les opérations sont répliquées sur l'anneau (dans le sens des aiguilles d'une montre) et met en évidence le fait que deux nœuds ne se trouvent pas sur le même rack:

3 racks, avec un nœud dans chaque rack
(Figure 2) Configuration en rack: trois nœuds, un sur chaque rack

Dans cette configuration, les opérations sont envoyées à un nœud, mais également aux instances répliquées de ce nœud situées sur d'autres racks (dans le sens des aiguilles d'une montre).

Ajouter la détection du rack (avec 3 nœuds)

Toutes les topologies d'installation de production d'Apigee Edge pour le cloud privé comportent au moins trois nœuds Cassandra, appelés "IP1", "IP2" et "IP3" dans cette section. Par défaut, chacun de ces nœuds se trouve dans le même rack : "ra-1".

Cette section explique comment attribuer les nœuds Cassandra à des racks distincts afin que toutes les opérations soient envoyées aux nœuds d'instances répliquées dans des regroupements logiques distincts au sein de l'anneau.

Pour attribuer des nœuds Cassandra à différents racks lors de l'installation:

  1. Avant d'exécuter le programme d'installation, connectez-vous au nœud Cassandra et ouvrez le fichier de configuration silencieux suivant pour le modifier :
    /opt/silent.conf

    Créez le fichier s'il n'existe pas et assurez-vous de faire de l'utilisateur « apigee » un propriétaire.

  2. Modifiez la propriété CASS_HOSTS, une liste d'adresses IP séparées par des espaces (et non des entrées DNS ou de nom d'hôte) qui utilise la syntaxe suivante :
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    La valeur par défaut est un anneau Cassandra à trois nœuds, chaque nœud étant attribué au rack 1 et au centre de données 1, comme le montre l'exemple suivant:

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. Modifiez les attributions de racks de sorte que le nœud 2 soit attribué au rack 2 et le nœud 3 au rack 3, comme le montre l'exemple suivant :
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    En modifiant les attributions de racks, vous demandez à Cassandra de créer deux regroupements logiques supplémentaires (racks), qui fournissent ensuite des instances répliquées qui reçoivent toutes les opérations reçues par le premier nœud.

    Pour en savoir plus sur l'utilisation de la propriété de configuration CASS_HOSTS, consultez la documentation de référence sur le fichier de configuration Edge.

  4. Enregistrez les modifications apportées au fichier de configuration et exécutez la commande suivante pour installer Cassandra avec votre configuration mise à jour :
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config

    Exemple :

    /opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
  5. Répétez cette procédure pour chaque nœud Cassandra de l'anneau, dans l'ordre dans lequel ils sont attribués dans la propriété CASS_HOSTS. Dans ce cas, vous devez installer Cassandra dans l'ordre suivant :
    1. Nœud 1 (IP1)
    2. Nœud 2 (IP2)
    3. Nœud 3 (IP3)

Après l'installation, vous devez vérifier la configuration de Cassandra.

Vérifier la configuration de Cassandra

Après avoir installé une configuration Cassandra compatible avec les racks, vous pouvez vérifier que les nœuds sont attribués aux différents racks à l'aide de la commande nodetool status, comme le montre l'exemple suivant:

/opt/apigee/apigee-cassandra/bin/nodetool status

(Vous exécutez cette commande sur l'un des nœuds Cassandra.)

Les résultats devraient ressembler à ce qui suit, où la colonne Rack affiche les différents ID de rack pour chaque nœud:

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

Si vous avez activé l'authentification JMX pour Cassandra, vous devez également transmettre votre nom d'utilisateur et votre mot de passe à nodetool. Pour en savoir plus, consultez la page Utiliser Nodetool pour gérer les nœuds de cluster.

Installer un anneau à six nœuds

Pour obtenir une redondance accrue, vous pouvez étendre l'anneau Cassandra à six nœuds. Dans ce cas, vous attribuez deux nœuds à chacun des trois racks. Cette configuration nécessite trois nœuds supplémentaires : le nœud 4 (IP4), le nœud 5 (IP5) et le nœud 6 (IP6).

L'image suivante montre l'ordre dans lequel les opérations sont répliquées sur l'anneau (dans le sens des aiguilles d'une montre) et met en évidence le fait que lors de la réplication, deux nœuds adjacents ne se trouvent pas sur le même rack:

3 racks, avec 2 nœuds dans chaque rack
(Figure 3) Anneau Cassandra à six nœuds: deux nœuds sur chacun des trois racks

Dans cette configuration, chaque nœud possède deux instances répliquées supplémentaires, une dans chacune des deux autres racks. Par exemple, le nœud 1 du rack 1 possède une instance répliquée dans les racks 2 et 3. Les opérations envoyées au nœud 1 sont également envoyées aux instances répliquées des autres racks, dans le sens des aiguilles d'une montre.

Pour développer un anneau Cassandra à trois nœuds en un anneau Cassandra à six nœuds, configurez les nœuds de la manière suivante dans votre fichier de configuration silencieux:

CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"

Comme pour un anneau à trois nœuds, vous devez installer Cassandra dans le même ordre que celui dans lequel les nœuds apparaissent dans la propriété CASS_HOSTS:

  1. Nœud 1 (IP1)
  2. Nœud 4 (IP4)*
  3. Nœud 2 (IP2)
  4. Nœud 5 (IP5)
  5. Nœud 3 (IP3)
  6. Nœud 6 (IP6)

* Apportez vos modifications dans le fichier de configuration silencieux avant d'exécuter l'utilitaire de configuration sur le quatrième nœud (la deuxième machine de l'ordre d'installation Cassandra).

Développer à 12 nœuds

Pour améliorer davantage la tolérance aux pannes et la disponibilité aux pannes, vous pouvez augmenter le nombre de nœuds Cassandra dans l'anneau (de 6 à 12). Cette configuration nécessite six nœuds supplémentaires (IP7 à IP12).

L'image suivante montre l'ordre dans lequel les opérations sont répliquées sur l'anneau (dans le sens des aiguilles d'une montre) et met en évidence le fait que lors de la réplication, deux nœuds adjacents ne se trouvent pas sur le même rack:

3 racks, avec 4 nœuds dans chaque rack
(Figure 4) Anneau Cassandra à 12 nœuds: quatre nœuds sur chacun des trois racks

La procédure d'installation d'un anneau à 12 nœuds est semblable à celle d'un anneau à trois ou six nœuds : définissez CASS_HOSTS sur les valeurs indiquées et exécutez le programme d'installation dans l'ordre spécifié.

Pour passer à un anneau Cassandra à 12 nœuds, configurez les nœuds de la manière suivante dans votre fichier de configuration silencieux:

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"

Comme pour les anneaux à trois et six nœuds, vous devez exécuter le programme d'installation sur les nœuds dans l'ordre dans lequel ils apparaissent dans le fichier de configuration:

  1. Nœud 1 (IP1)
  2. Nœud 7 (IP7)*
  3. Nœud 4 (IP4)
  4. Nœud 8 (IP8)
  5. Nœud 2 (IP2)
  6. Nœud 9 (IP9)
  7. Nœud 5 (IP5)
  8. Nœud 10 (IP10)
  9. Nœud 3 (IP3)
  10. Nœud 11 (IP11)
  11. Nœud 6 (IP6)
  12. Nœud 12 (IP12)

* Vous devez apporter ces modifications avant d'installer Apigee Edge for Private Cloud sur le 7e nœud (la deuxième machine de l'ordre d'installation Cassandra).