Alta disponibilidad con “failure groups” en ASM

Hoy nos gustaría compartir con vosotros una funcionalidad de ASM que no solemos utilizar demasiado pero que nos puede ayudar a mejorar la alta disponibilidad de nuestro entorno.

Esta funcionalidad son los Failure Groups de ASM. Oracle los define como la forma de agrupar discos que tienen un mismo punto de fallo y nos permite definir en un mismo grupo los discos que comparten una misma tarjeta de fibra o cabina.

En este ejemplo, tenemos un rac de varios nodos que utilizan dos cabinas distintas en una misma localización. Esta funcionalidad nos permite por ejemplo actualizar el firmware de una de ellas mientras se sigue dando servicio desde la segunda. Un ejemplo de un diskgroup utilizando esta funcionalidad es el siguiente:

CREATE DISKGROUP TEST NORMAL REDUNDANCY
FAILGROUP failure_group_1 DISK
‘ORCL:DISK6’ NAME diskcabina1_a1,
‘ORCL:DISK7’ NAME diskcabina1_a2
FAILGROUP failure_group_2 DISK
‘ORCL:DISK8’ NAME diskcabina2_b1,
‘ORCL:DISK9’ NAME diskcabina2_b1;

En este ejemplo se crea un diskgroup con redundancia normal y dos discos en cada cabina. Esto nos permite intervenir en cualquiera de ellas sin que se produzca una caída de la instancia. Cuanto tiempo puede estar la cabina en mantenimiento?, lo podemos definir con el parámetro disk_repair_time. Un ejemplo de utilización es el siguiente:

 alter diskgroup test set attribute ‘disk_repair_time’ = ’10h’; 

El valor por defecto es de 3.6 horas, pero en algunos casos puede ser insuficiente para solucionar el problema, por lo que se recomienda aumentar. Este parámetro permite a la funcionalidad ASM Fast Mirror Resync actualizar los datos en los discos que no han estado disponibles sin tener que recrear el grupo de fallo. Hay que tener cuidado con subirlo demasiado ya que el espacio reservado en el diskgroup para esta funcionalidad aumenta y nos resta espacio para datos.

Una vez solucionado el problema en el acceso a los discos se lo podemos indicar al ASM mediante el comando:

ALTER DISKGROUP test ONLINE ALL;

Nos permite poner online todos los discos de la cabina de ese diskgroup con un solo comando.

Una vez que hemos comprobado que se han puesto online, empezarán los trabajos de sincronización de datos y tendremos de nuevo los discos actualizados al momento.

Hay que tener cuidado con realizar las operativas en la segunda cabina sin haber puesto online los de la primera ya que entonces tendríamos un problema de disponibilidad.

Esperamos que os sea de utilidad.

Un saludo.

 

Equipo DBA.