Agrega compatibilidad con bastidores de Cassandra

En esta sección, se proporciona orientación general para escalar operaciones de Cassandra haciendo que Cassandra en Apigee Edge para reconocimiento de bastidores en la nube privada.

Para obtener más información sobre por qué es importante reconocer el bastidor de anillos de Cassandra, consulta lo siguiente: recursos:

¿Qué es un bastidor?

Un rack de Cassandra es una agrupación lógica de nodos de Cassandra dentro del anillo. Cassandra usa bastidores para garantizar que las réplicas se distribuyan entre diferentes agrupaciones lógicas. Como resultado, las operaciones se envían no solo a un nodo, sino a varios nodos, cada uno en un bastidor independiente, lo que proporciona una mayor disponibilidad y tolerancia a errores.

Los ejemplos de esta sección usan tres bastidores Cassandra, que es la cantidad de bastidores que se que admite Apigee en topologías de producción.

La instalación predeterminada de Cassandra en Apigee Edge para la nube privada supone un único bastidor lógico y ubica todos los nodos del centro de datos que contiene. Aunque esta configuración es fácil de instalar y administrar, es susceptible a errores si falla una operación en uno de esos nodos.

En la siguiente imagen, se muestra la configuración predeterminada del anillo de Cassandra:

1 bastidor con 3 nodos
(Figura 1) Configuración predeterminada: Todos los nodos en un solo bastidor

En una configuración más sólida, cada nodo se asignaría a un bastidor y a operaciones también se ejecutarían en réplicas de cada bastidor.

En la siguiente imagen, se muestra un anillo de 3 nodos. En esta imagen, se muestra el orden en que se replicados en el anillo (en el sentido de las manecillas del reloj) y destaca el hecho de que no hay dos nodos en el mismo bastidor:

3 bastidores, con 1 nodo en cada bastidor
(Figura 2) Configuración compatible con el bastidor: tres nodos, uno en cada uno bastidor

En esta configuración, las operaciones se envían a un nodo, pero también a réplicas de ese nodo en otros bastidores (en el sentido de las manecillas del reloj).

Agrega reconocimiento de bastidor (con 3 nodos)

Todas las topologías de instalación de producción de Apigee Edge para la nube privada tienen al menos tres nodos de Cassandra, que en esta sección se refiere a "IP1", "IP2" e "IP3". De forma predeterminada, cada uno de estos nodos se encuentra en el mismo bastidor “ra-1”.

En esta sección, se describe cómo asignar los nodos de Cassandra a bastidores separados para que todas las operaciones se envían a los nodos de réplica en grupos lógicos separados dentro del anillo.

Para asignar nodos de Cassandra a diferentes bastidores durante la instalación, haz lo siguiente:

  1. Antes de ejecutar el instalador, inicia sesión en el nodo de Cassandra y abre el siguiente archivo de configuración silencioso para editar:
    /opt/silent.conf

    Crea el archivo si no existe y asegúrate de configurar el entorno de usuario un propietario.

  2. Edita la propiedad CASS_HOSTS, una lista de direcciones IP separadas por espacios (no DNS ni entradas de nombre de host) que usa la siguiente sintaxis:
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    El valor predeterminado es un anillo de Cassandra de tres nodos, con cada nodo asignado al bastidor 1 y los datos centro 1, como se muestra en el siguiente ejemplo:

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. Cambia las asignaciones de bastidor para que el nodo 2 esté asignado al bastidor 2 y el nodo 3 al bastidor 3 bastidor 3, como se muestra en el siguiente ejemplo:
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    Al cambiar las asignaciones del bastidor, le indicas a Cassandra que cree dos lógicas adicionales (bastidores), que proporcionan réplicas que reciben todas las operaciones que recibe el primer nodo.

    Para obtener más información sobre el uso de la propiedad de configuración CASS_HOSTS, consulta Referencia del archivo de configuración de Edge.

  4. Guarda los cambios en el archivo de configuración y ejecuta el siguiente comando para instalarlo Cassandra con tu configuración actualizada:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config

    Por ejemplo:

    /opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
  5. Repite este procedimiento con cada nodo de Cassandra en el anillo, en el orden en que los nodos se asignan en la propiedad CASS_HOSTS. En este caso, debes instalar Cassandra en el siguiente orden:
    1. Nodo 1 (IP1)
    2. Nodo 2 (IP2)
    3. Nodo 3 (IP3)

Después de la instalación, debes verificar la configuración de Cassandra.

Verifica la configuración de Cassandra

Luego de instalar una configuración de Cassandra optimizada para bastidores, puedes comprobar que los nodos estén asignados a los diferentes bastidores mediante el comando nodetool status, como que se muestra a continuación:

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

(Ejecuta este comando en uno de los nodos de Cassandra).

Los resultados deberían ser similares a los siguientes, donde aparece la columna Rack. muestra los diferentes ID de bastidor para cada nodo:

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 habilitaste la autenticación JMX para Cassandra, también debes pasar tu nombre de usuario y contraseña de nodetool. Para obtener más información, consulta Usa nodetool para administrar los nodos del clúster.

Instala un anillo de seis nodos

Para obtener redundancia adicional, puedes expandir el anillo de Cassandra a seis nodos. En este caso, asignar dos nodos a cada uno de los tres bastidores. Esta configuración requiere tres nodos adicionales: Nodo 4 (IP4), Nodo 5 (IP5) y Nodo 6 (IP6).

En la siguiente imagen, se muestra el orden en que las operaciones se replican en el anillo. (en el sentido de las manecillas del reloj) y destaca el hecho de que, durante la replicación, no hay dos nodos adyacentes en el mismo bastidor:

3 bastidores, con 2 nodos en cada bastidor
(Figura 3) Anillo de Cassandra de 6 nodos: dos nodos en cada uno tres bastidores

En esta configuración, cada nodo tiene dos réplicas más: una en cada uno de los otros dos bastidores. Para Por ejemplo, el nodo 1 del bastidor 1 tiene una réplica en el bastidor 2 y el bastidor 3. Las operaciones enviadas al nodo 1 también se enviados a las réplicas en los otros bastidores, en el sentido de las manecillas del reloj.

Para expandir un anillo de Cassandra de tres nodos a un anillo de Cassandra de seis nodos, configura los nodos en la de la siguiente manera en tu archivo de configuración silencioso:

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

Al igual que con un anillo de tres nodos, debes instalar Cassandra en el mismo orden en que los nodos aparecen en la propiedad CASS_HOSTS:

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

* Realiza los cambios en el archivo de configuración silencioso antes de ejecutar la utilidad de configuración. en el cuarto nodo (la segunda máquina en el pedido de instalación de Cassandra).

Expandir a 12 nodos

Para aumentar aún más la tolerancia a errores y la disponibilidad, puedes incrementar el número de nodos en el anillo de 6 a 12. Esta configuración requiere seis nodos adicionales (IP7 a IP12).

En la siguiente imagen, se muestra el orden en que las operaciones se replican en el anillo. (en el sentido de las manecillas del reloj) y destaca el hecho de que, durante la replicación, no hay dos nodos adyacentes en el mismo bastidor:

3 bastidores, con 4 nodos en cada bastidor
(Figura 4) Anillo de Cassandra de 12 nodos: Cuatro nodos en cada uno de tres nodos bastidores

El procedimiento para instalar un anillo de 12 nodos es similar al de instalar un anillo de tres o seis nodos: establece CASS_HOSTS en los valores especificados y ejecuta el instalador en el orden especificado.

Para expandirte a un anillo de Cassandra de 12 nodos, configura los nodos de la siguiente manera en tu de 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"

Al igual que con los anillos de tres y seis nodos, debes ejecutar el instalador en los nodos en el orden que aparecen los nodos en el archivo de configuración:

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

* Debes realizar estos cambios antes de instalar Apigee Edge para la nube privada en el 7o nodo (la segunda máquina en el orden de instalación de Cassandra).