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 for Private Cloud compatible avec les racks.

Pour en savoir plus sur l'importance de rendre votre anneau Cassandra compatible avec les racks, consultez les ressources suivantes :

Qu'est-ce qu'un rack ?

Un rack Cassandra est un regroupement logique de nœuds Cassandra au sein de l'anneau. Cassandra utilise des racks pour s'assurer que les instances répliquées sont réparties entre différents regroupements logiques. Par conséquent, les opérations sont envoyées non pas à un seul nœud, mais à plusieurs nœuds, chacun sur un rack distinct, ce qui offre une tolérance aux pannes et une disponibilité accrues.

Les exemples de cette section utilisent trois racks Cassandra, ce qui correspond au nombre de racks compatibles avec Apigee dans les topologies de production.

L'installation par défaut de Cassandra dans Apigee Edge pour Private Cloud suppose un seul rack logique et place tous les nœuds d'un centre de données dans celui-ci. 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 montre 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 seraient également exécutées 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 qu'aucun nœud ne se trouve sur le même rack :

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

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

Ajouter la reconnaissance des racks (avec trois nœuds)

Toutes les topologies d'installation de production d'Apigee Edge pour Private Cloud comportent au moins trois nœuds Cassandra, que cette section désigne par "IP1", "IP2" et "IP3". 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'instance répliquée 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 silencieuse suivant pour le modifier :
    /opt/silent.conf

    Créez le fichier s'il n'existe pas et assurez-vous de définir l'utilisateur "apigee" comme propriétaire.

  2. Modifiez la propriété CASS_HOSTS, une liste d'adresses IP (et non d'entrées DNS ou de noms d'hôte) séparées par des espaces, 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 illustré dans 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 illustré dans 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 (racks) supplémentaires, 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 les nœuds 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 tenant compte des racks, vous pouvez vérifier que les nœuds sont attribués aux différents racks à l'aide de la commande nodetool status, comme illustré dans l'exemple suivant :

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

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

Le résultat doit 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 Utiliser nodetool pour gérer les nœuds de cluster.

Installer un anneau à six nœuds

Pour une redondance supplémentaire, 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 chacun des deux autres racks. Par exemple, le nœud 1 du rack 1 possède une instance répliquée dans le rack 2 et le rack 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 étendre un anneau Cassandra de trois nœuds à un anneau Cassandra de six nœuds, configurez les nœuds de la manière suivante dans votre fichier de configuration silencieuse :

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 l'ordre d'apparition des nœuds 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 au fichier de configuration silencieux avant d'exécuter l'utilitaire de configuration sur le quatrième nœud (la deuxième machine dans l'ordre d'installation de Cassandra).

Passer à 12 nœuds

Pour augmenter davantage la tolérance aux pannes et la disponibilité, vous pouvez augmenter le nombre de nœuds Cassandra dans l'anneau de six à 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 données et exécutez le programme d'installation dans l'ordre spécifié.

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

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 effectuer ces modifications avant d'installer Apigee Edge pour Private Cloud sur le septième nœud (la deuxième machine dans l'ordre d'installation de Cassandra).