Tareas de mantenimiento de Apache Cassandra

En esta sección, se describen las tareas de mantenimiento periódicas de Cassandra.

Mantenimiento antientropía

Los nodos de anillo de Apache Cassandra requieren un mantenimiento periódico para garantizar la coherencia entre todos los nodos. Para realizar este mantenimiento, usa el siguiente comando:

apigee-service apigee-cassandra apigee_repair -pr

Apigee recomienda lo siguiente cuando ejecuta este comando:

  • Se ejecuta en cada nodo de Cassandra (en todas las regiones o centros de datos).
  • Ejecuta en un nodo a la vez para garantizar la coherencia entre todos los nodos del anillo. La ejecución de trabajos de reparación en varios nodos al mismo tiempo puede afectar el estado de Cassandra.

    Para verificar si un trabajo de reparación en un nodo se completó de forma correcta, busca en el archivo system.log del nodo una entrada con el UUID de la sesión de reparación más reciente y la frase “la sesión se completó de forma correcta”. Aquí hay un ejemplo de una entrada de registro:

    INFO [AntiEntropySessions:1] 2015-03-01 10:02:56,245 RepairSession.java (line 282) [repair #2e7009b0-c03d-11e4-9012-99a64119c9d8] session completed successfully"
    Ref: https://support.datastax.com/hc/en-us/articles/204226329-How-to-check-if-a-scheduled-nodetool-repair-ran-successfully
  • Se ejecuta durante períodos de cargas de trabajo relativamente bajas (la herramienta impone una carga significativa en el sistema).
  • Ejecuta al menos cada siete días para eliminar problemas relacionados con las "eliminaciones olvidadas" de Cassandra.
  • Ejecuta la prueba en nodos diferentes en días distintos o prográmala para que haya varias horas entre su ejecución en cada nodo.
  • Usa la opción -pr (rango de particiones) para especificar el rango del particionador principal del nodo solamente.

Si habilitaste la autenticación JMX para Cassandra, debes incluir el nombre de usuario y la contraseña cuando invoques a nodetool. Por ejemplo:

apigee-service apigee-cassandra apigee_repair -u username -pw password -pr

También puedes ejecutar el siguiente comando para verificar las opciones compatibles de apigee_repair:.

apigee-service apigee-cassandra apigee_repair -h

Nota: apigee_repair es un wrapper para la reparación de Nodetool de Cassandra, que realiza verificaciones adicionales antes de realizar la reparación de Cassandra.

Para obtener más información, consulta los siguientes recursos:

Mantenimiento de archivos de registro

Los registros de Cassandra se almacenan en el directorio /opt/apigee/var/log/cassandra de cada nodo. De forma predeterminada, se puede crear un máximo de 50 archivos de registro, cada uno con un tamaño máximo de 20 MB. Una vez que se alcanza este límite, los registros más antiguos se borran cuando se crean registros más nuevos.

Si descubres que los archivos de registro de Cassandra ocupan demasiado espacio, puedes editar la configuración de log4j para modificar la cantidad de espacio asignado a los archivos de registro.

  1. Edita /opt/apigee/customer/application/cassandra.properties para establecer las siguientes propiedades. Si ese archivo no existe, créalo:
    conf_logback_maxfilesize=20MB
    # max file size
    conf_logback_maxbackupindex=50 # max open files
  2. Reinicia Cassandra con el siguiente comando:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart

Mantenimiento del espacio en el disco

Debes supervisar el uso del disco de Cassandra con regularidad para garantizar que al menos el 50% de cada disco esté libre. Si el uso del disco aumenta por encima del 50%, te recomendamos que agregues más espacio en el disco para reducir el porcentaje en uso.

Cassandra realiza las siguientes operaciones de forma automática para reducir su propio uso del disco:

  • Eliminación de tokens de autenticación cuando estos vencen. Sin embargo, podría tardar un par de semanas en liberar espacio en el disco que usaban los tokens, según tu configuración. Si la eliminación automática no es adecuada para mantener suficiente espacio en el disco, comunícate con el equipo de asistencia a fin de obtener información sobre cómo borrar tokens de forma manual y recuperar espacio.
  • Compactación de datos. Recomendamos cambiar la estrategia de compactación de los espacios de claves a LeveledCompactionStrategy, que ofrece mejores estrategias de uso de disco que la SizeTieredCompactionStrategy predeterminada. Consulta la sección Estrategia de compactación nivelada.

Nota: Cuando Cassandra realiza compactaciones de datos, puede requerir una cantidad considerable de ciclos de CPU y memoria. Sin embargo, el uso de recursos debería volver a la normalidad una vez que se completen las compactaciones. Puedes ejecutar el comando 'Nodetool compactionstats' en cada nodo para verificar si se está ejecutando la compactación. El resultado de compactionstats te informa si hay compactaciones pendientes para ejecutar y el tiempo estimado de finalización.