Agrega nodos de Cassandra

Cuando se agregan nodos de Cassandra a un clúster, es esencial considerar los dos puntos clave siguientes:

  • Las posiciones existentes de los nodos en el anillo de Cassandra no deben cambiar para minimizar la transmisión y mantener un anillo equilibrado.
  • El número de nodos en todos los centros de datos debe ser coherente.

Para garantizar el primer objetivo, es crucial duplicar la cantidad de nodos en el clúster de Cassandra cada vez que se agregan nodos nuevos.

Por ejemplo, si comienzas con una topología estándar de instalación de clústeres de 12 nodos distribuida en dos centros de datos, tendrás un total de seis nodos de Cassandra, tres en cada centro de datos. Para expandir este clúster, debes agregar tres nodos a cada centro de datos y aumentar la cantidad total de nodos a 12 (seis nodos en cada centro de datos). Si se requiere más expansión, debes agregar seis nodos adicionales a cada centro de datos, lo que da como resultado un recuento total de 24 nodos (12 nodos en cada centro de datos).

En este documento, se proporcionan instrucciones para agregar tres nodos de Cassandra nuevos a un Edge existente para la instalación de la nube privada. Se pueden seguir los mismos pasos para agregar nodos adicionales. Siempre asegúrate de que, cuando expandas tu clúster, dupliques la cantidad de nodos.

Para obtener una lista de los requisitos del sistema para un nodo de Cassandra, consulta la sección Requisitos de instalación.

Configuración de Edge existente

Todas las topologías de Edge compatibles para un sistema de producción especifican que se usan tres modelos de Cassandra nodos. Los tres nodos se especifican en la propiedad CASS_HOSTS en el archivo de configuración como se muestra a continuación:

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
APIGEE_ADMINPW=Secret123
LICENSE_FILE=/tmp/license.txt
MSIP=$IP1 
USE_LDAP_REMOTE_HOST=n
LDAP_TYPE=1
APIGEE_LDAPPW=secret
MP_POD=gateway
REGION=dc-1
ZK_HOSTS="$IP1 $IP2 $IP3"
ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1" 
SKIP_SMTP=n
SMTPHOST=smtp.example.com
SMTPUSER=smtp@example.com
SMTPPASSWORD=smtppwd

Ten en cuenta que la propiedad REGION especifica el nombre de la región como “dc-1”. Lo necesitas cuando agregues los nuevos nodos de Cassandra.

Modificando el archivo de configuración para agregar los tres nuevos nodos de Cassandra

En este ejemplo, los tres nodos de Cassandra nuevos se encuentran en las siguientes direcciones IP:

  • 10.10.0.14
  • 10.10.0.15
  • 10.10.0.16

Primero, debes actualizar el archivo de configuración de Edge para agregar los nodos nuevos:

IP1=10.10.0.1
IP2=10.10.0.2
IP3=10.10.0.3
# Add the new node IP addresses.
IP14=10.10.0.14
IP15=10.10.0.15
IP16=10.10.0.16
HOSTIP=$(hostname -i)
ADMIN_EMAIL=opdk@google.com
...
# Update CASS_HOSTS to add each new node after an existing nodes. 
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP14:1,1 $IP2:1,1 $IP15:1,1 $IP3:1,1 $IP16:1,1" 

Esto garantiza que los nodos existentes conserven su configuración de token inicial y el token inicial de cada nodo nuevo se encuentra entre los valores de token de los nodos existentes.

Configurar Edge

Después de editar el archivo de configuración, debes hacer lo siguiente:

  • Reconfigura los nodos de Cassandra existentes
  • Instala Cassandra en los nodos nuevos
  • Vuelve a configurar el servidor de administración

Reconfigura el Cassandra existente nodos

En los nodos de Cassandra existentes:

  1. Vuelve a ejecutar setup.sh con "-p c". y el nuevo archivo de configuración:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile

Instala Cassandra en los nodos nuevos

Usa el siguiente procedimiento para instalar Cassandra en los nodos nuevos.

En cada nodo de Cassandra nuevo:

  1. Instala Cassandra en los tres nodos:
    1. Instalar apigee-setup en el primer nodo, como se describe en Instala el Utilidad de configuración de Apigee de Edge
    2. Instala Cassandra en el primer nodo con el archivo de configuración actualizado:
      /opt/apigee/apigee-setup/bin/setup.sh -p c -f updatedConfigFile
    3. Repite estos dos pasos para los nuevos nodos de Cassandra restantes.
  2. Volver a compilar los tres nuevos nodos de Cassandra y especificar que el nombre de la región sea el centro de datos en la que agregarás el nodo (dc-1, dc-2, etcétera). En este ejemplo, es dc-1:
    1. En el primer nodo, ejecuta lo siguiente:
      /opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h nodeIP rebuild dc-1

      Donde nodeIP es la dirección IP del nodo de Cassandra.

      Solo debes pasar tu nombre de usuario y contraseña si habilitar la autenticación JMX para Cassandra.

    2. Repite este paso en los nodos de Cassandra nuevos restantes.

Vuelve a configurar el servidor de administración

En un nodo de servidor de administración

  1. Vuelve a ejecutar setup.sh para actualizar el servidor de administración de los nodos de Cassandra agregados recientemente:
    /opt/apigee/apigee-setup/bin/setup.sh -p ms -f updatedConfigFile

Reiniciar todos los routers y mensajes Procesadores

  1. En todos los routers:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  2. En todos los procesadores de mensajes:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Espacio libre en el disco Nodos de Cassandra

Después de agregar un nodo nuevo, puedes usar el comando nodetool cleanup en la nodos preexistentes para liberar espacio en el disco. Este comando borra los tokens de configuración que no son ya que pertenecen al nodo de Cassandra preexistente.

Para liberar espacio en el disco en nodos de Cassandra preexistentes después de agregar un nodo nuevo, ejecuta el comando siguiente comando:

/opt/apigee/apigee-cassandra/bin/nodetool [-u username -pw password] -h cassandraIP cleanup

Solo debes pasar tu nombre de usuario y contraseña si habilitar la autenticación JMX para Cassandra.

Verificar recompilación

Usa los siguientes comandos para verificar si se volvió a compilar correctamente:

nodetool [-u username -pw password] -h nodeIP netstats

Este comando debe indicar MODE: Normal cuando el nodo está activo y los índices de seguridad.

nodetool [-u username -pw password] -h nodeIP statusthrift

Debe indicar que el servidor de segunda mano se está ejecutando, lo que permite que Cassandra acepte un cliente nuevo solicitudes.

nodetool [-u username -pw password] -h nodeIP statusbinary

Debe indicar que se está ejecutando el transporte nativo (o protocolo binario).

nodetool [-u username -pw password] -h nodeIP describecluster

Se debe mostrar que los nodos nuevos usan la misma versión de esquema que los nodos anteriores.

Para obtener más información sobre el uso de nodetool, consulta la documentación de uso de Nodetool.