miércoles, junio 20, 2012

Resolución de problemas con cluster ServiceGuard de HP

Cuando tenemos un cluster como el cluster Service Guard de HP se supone que es para garantizar la alta disponibilidad. Lo más seguro es que tengamos a mano una lista de comandos para gestionar el cluster y los paquetes. Algo sencillo como esto que publiqué hace años.

PROBLEMA 1:

Un problema común es este: Vamos a levantar el paquete con el comando #cmrunpkg paqueteOracle, pero hay un error que impide que se levante el paquete. El problema es el cluster activa los VG-s, monta los filesystems e intenta levantar Oracle. Como falla el intento, desmonta filesystems y desactiva VG-s.

O sea, que no podemos intentar levantar Oracle sin el cluster porque ni siquiera tenemos los filesystems disponibles. Tampoco podemos ver los mensajes del alert por el mismo motivo.

Solución:
  1. Editar el fichero de configuración del cluster que se encuentra en /etc/cmcluster/paqueteOracle y tienen un nombre como paqueteOracle.config
  2. Al final del fichero en una sección llamada external_script vendrá el path a un fichero .sh que es el que hace el intento de levantar Oracle. Comentamos esa línea para que no se ejecute.
  3. Aplicamos la nueva configuración del cluster. Para ello primero se hace un #cmcheckconf -v -P /etc/cmcluster/paqueteOracle/paqueteOracle.config
  4. Y luego se aplica la configuración: cmapplyconf -P /etc/cmcluster/paqueteOracle/paqueteOracle.config
 De esta forma el cluster sólo activará los VG-s y montará los filesystems. Después nosotros podremos intentar arreglar Oracle por nuestra cuenta.

PROBLEMA 2:

Normalmente el cluster se deja configurado de forma que monitoriza el paquete. Para ello se utilizan toolkits específicas (toolkit oracle por ejemplo). Si ve que el paquete ha dejado de funcionar (porque hemos hecho un shutdown de la base de datos por ejemplo), el cluster levantará el paquete en el otro nodo.

Esto es un problema si lo que queremos es parar para cambiar un parámetro por ejemplo. Para evitarlo tenemos que indicar al cluster que estamos en MODO MANTENIMIENTO.

  1. Vamos al fichero de configuración del toolkit /opt/cmcluster/toolkit/oracle/haoracle.conf y buscamos la entrada MAINTENANCE_FLAG. Tiene que estar puesta como =yes para que funcione el punto segundo.
  2. Vamos al directorio de configuración del paquete (/etc/cmcluster/paqueteOracle), y creamos el fichero oracle.debug de esta forma: touch oracle.debug
  3. Ya podemos parar y arrancar manualmente Oracle porque el cluster no va a actuar.
---

Documentación de interés: Using the Oracle Toolkit in a HP Serviceguard Cluster (PDF de 49 hojas).
Saludos.

2 comentarios:

Anónimo dijo...

Hola Aitor, no sabes que bien me viene este post!
ya voy a probar unas cosas de un cluster de HP que se me pone caprichoso, y te cuento!
beso grande

alexav8

Aitor Iriarte dijo...

Aúpa Alexa, ¡Cuanto tiempo!
Me alegra que te sea de ayuda.
besos,