Ajouter la compatibilité avec les racks Cassandra

Cette section fournit des conseils généraux pour le scaling des opérations de Cassandra en faisant de Cassandra sur Apigee Edge pour Private Cloud.

Pour en savoir plus sur l'importance de la compatibilité avec les racks Cassandra, consultez les ressources suivantes : ressources:

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. En tant que les opérations sont envoyées non pas à un seul nœud, mais à plusieurs nœuds, chacun sur un rack distinct, offrant une plus grande tolérance aux pannes et une plus grande disponibilité.

Les exemples de cette section utilisent trois racks Cassandra, ce qui correspond 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 un seul rack logique et place tous les nœuds d'un centre de données qu'il contient. Bien que cette configuration soit simple à installer et à gérer, il 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:

<ph type="x-smartling-placeholder">
</ph> 1 rack avec 3 nœuds
(Figure 1) Configuration par défaut: tous les nœuds d'un même rack

Dans une configuration plus robuste, chaque nœud serait affecté à un rack et des opérations distincts s'exécutent également sur des instances répliquées de 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), ce qui met en évidence le fait que deux nœuds ne sont pas sur le même rack:

<ph type="x-smartling-placeholder">
</ph> 3 racks, avec un nœud dans chaque rack
(Figure 2) Configuration compatible avec le rack: trois nœuds, un sur chaque nœud rack

Dans cette configuration, les opérations sont envoyées à un nœud, mais également aux instances répliquées de ce nœud sur les 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 d'Apigee Edge pour Private Cloud comportent au moins trois nœuds Cassandra, que cette section fait référence à "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 affecter les nœuds Cassandra à des racks distincts afin que toutes les opérations sont envoyés aux nœuds d'instances répliquées en groupes logiques distincts au sein du cercle.

Pour attribuer des nœuds Cassandra à différents racks pendant 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 modification:
    /opt/silent.conf

    S'il n'existe pas, créez le fichier et assurez-vous que le un utilisateur comme propriétaire.

  2. Modifiez la propriété CASS_HOSTS, une liste d'adresses IP séparées par des espaces (et non DNS ou entrées 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 rack 1 centre 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 2. rack 3, comme le montre l'exemple suivant:
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

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

    Pour en savoir plus sur l'utilisation de la propriété de configuration CASS_HOSTS, consultez 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: <ph type="x-smartling-placeholder">
      </ph>
    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 Cassandra

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

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

Vous devez exécuter cette commande sur l'un des nœuds Cassandra.

Les résultats doivent 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 mot de passe à nodetool. Pour en savoir plus, consultez Utilisez nodetool pour gérer les nœuds de cluster.

Installer un anneau à six nœuds

Pour obtenir une redondance supplémentaire, vous pouvez étendre l'anneau Cassandra jusqu'à six nœuds. Dans ce cas, vous et attribuer deux nœuds à chacun des trois racks. Cette configuration nécessite trois nœuds supplémentaires: Node 4 (IP4), Node 5 (IP5) et Node 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 souligne qu'au cours de la réplication, aucun nœud adjacent n'est sur le même rack:

<ph type="x-smartling-placeholder">
</ph> 3 racks, avec deux 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 dispose de deux autres instances répliquées, une dans chacun des deux autres racks. Pour exemple, le nœud 1 du rack 1 a 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 étendre un anneau Cassandra à trois nœuds à un anneau Cassandra à six nœuds, configurez les nœuds dans le 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 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)

* Effectuez vos modifications dans le fichier de configuration silencieuse 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).

Développer jusqu'à 12 nœuds

Pour améliorer davantage la tolérance aux pannes et la disponibilité, vous pouvez augmenter le nombre de six à 12 nœuds. 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 souligne qu'au cours de la réplication, aucun nœud adjacent n'est sur le même rack:

<ph type="x-smartling-placeholder">
</ph> 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'installation 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 à 12 nœuds, configurez les nœuds comme suit dans votre environnement configuration Terraform:

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 de dont les nœuds 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 du l'ordre d'installation de Cassandra).