Procesos background de ACFS

Una vez tenemos un dispositivo bajo /dev/asm/ podemos trabajar con el como si de un disco normal fuera, pero, para poder trabajar en un sistema en cluster necesitaremos ACFS o una solución de terceros.

Procesos background de ACFS

Oracle lanza nuevos procesos para las instancias de ASM que tienen asociados filesystems ACFS
Estos procesos son :

00:00:04 asm_vdbg_+ASM1
00:00:00 asm_vmb0_+ASM1
00:00:00 asm_vbg0_+ASM1
00:00:43 asm_acfs_+ASM1

VDBG.- Volume driver background (asm_vdbg_+ASM1)

Este proceso es el encargado de pasarlas peticiones del ASM al driver de ASDM.
Es tan importante que si muriera de manera no planificada tiraría abajo la instancia ASM

VBGn Volume background process (asm_vmb0_+ASM1)

Es un pool de procesos worker que son los que se encargan de las peticiones entre ASM y ADVM
El nombre es muy similar al anterior,, pero el otro acaba en G y estos en numero

ACFS background process (asm_acfs_+ASM1)

Gestionan todas las transiciones del estado de los miembros del cluster en el ACFS

ACFS background process (asm_acfs_+ASM1)

Gestionan todas las transiciones del estado de los miembros del cluster en el ACFS

Volume Menbership background process (asm_vmb0+ASM1)

The Volume Membership Background processes (VMB0) plays the role of an I/O barrier and I/O fencing function. Interestingly, during an ASM instance failure, this process continues to exist until the ADVM driver has had a chance to write out pending I/O. +ASM_vmb_.trc

Script de arranque de ACFS

Hoy vamos a ver como llevar a cabo de manera automática la carga de los módulos de ACFS en un OEL6

Como vimos en la entrada anterior, no hay un script de arranque del ACFS, además de esto, los binarios están bajo la rama de directorios del GRID_HOME, por lo que es muy probable que no se encuentren si no se cargan las variables de entorno correctas.

Así pues, que vamos ha hacer nosotros es crear un script de inicio que arranque el ACFS.
El scritpt lo llamaremos acfsload y lo dejaremos bajo /etc/init.d.
El contenido será

#!/bin/sh

# chkconfig: 2345 30 21
# description: Load Oracle ACFS drivers at system boot
export GRID_HOME=/app/grid/11.2.0
export PATH=$PATH:$GRID_HOME/bin

case "$1" in
  start)
	$GRID_HOME/bin/acfsload start -s
	;;
 stop)
        $GRID_HOME/bin/acfsload stop -s
        ;;
status)
	echo " ACFS Soportado"
        $GRID_HOME/bin/acfsdriverstate  -orahome $GRID_HOME supported
	echo " ACFS Instalado"
        $GRID_HOME/bin/acfsdriverstate  -orahome $GRID_HOME installed
 	echo " ACFS Cargado"
        $GRID_HOME/bin/acfsdriverstate  -orahome $GRID_HOME loaded
       echo " ACFS Version"
        $GRID_HOME/bin/acfsdriverstate  -orahome $GRID_HOME version
	echo " Módulos cargados"
	lsmod|grep oracle
        ;;
 *)
	echo "Usage: $0 start|stop|status"
	                exit 1
	;;
esac

Y lo cargaremos :

 cd /etc/rc3.d/
 ln -s ../init.d/acfsload S99acfsload

Comprobación de la instalación de ACFS

Hoy vamos a ver la instalación de ACFS en Linux.

Lo primero de todo es que hay que tener en cuenta que ACFS no está soportada por defecto para todos los kernels, la manera de saber si tu kernel esta soportado por defecto o has de instalar algun tipo de parche es consultando la nota ACFS Support On OS Platforms (Certification Matrix). (Doc ID 1369107.1)

ACFS ( Oracle ASM Cluster File System ) es como el propio nombre indica una nueva funcionalidad de Oracle que nos va a permitir montar sistemas de ficheros sobre discos ASM. Esta nueva funcionalidad nos va a permitir entre otras cosas el beneficiarnos de todas las características de ASM ( redundancia,stripping,mirroring ) para los sistemas de ficheros compartidos en red.

La documentación de Oracle dice que está disponible para todos los sistemas operativos habituales (AIX,SOLARIS,Linux…) , pero nosotros nos centraremos en su instalación en Linux.

Lo primero que llama la atención es que la instalación no crea ficheros de arranque, incluso puede darse el caso de una instalación correcta del grid control en la que no se haya instalado el ADVM/ACFS y no lo sepamos.

La manera de comprobar el estado del ACFS es mediante el comando acfsdriverstate

[root@rac1 ~]# acfsdriverstate 
ACFS-9211: usage: acfsdriverstate [-h] [-orahome ] {installed | loaded | version | supported} [-s]

Ejecutaremos

En este caso podemos ver como si que tenemos un kernel soportado y lo tenemos cargado e instalado, pero ,veamos los siguientes casos con los que nos podemos encontrar:

ACFS no soportado

Puede darse el caso de que la version que tenemos de kernel no esté soportado para el ACFS.
En este caso obtendremos el error ACFS-9459

ACFS-9459: ADVM/ACFS is not supported on this OS version: '3.8.13-98.el6uek.x86_64'

Esto se puede probar también con el comando

[root@rac1 ~]# cd $GRID_HOME/bin/
[root@rac1 ~]# ./acfsdriverstate  -orahome $GRID_HOME supported

Y la solución a este problema será seguir las indicaciones de ACFS Support On OS Platforms (Certification Matrix). (Doc ID 1369107.1)

ACFS no instalado

Puede darse el caso de que tengamos una version correcta, pero no tengamos instalado los binarios en la distribución.

Esto podemos comprobarlo con

[root@rac1 ~]# cd $GRID_HOME/bin/
[root@rac1 ~]# ./acfsdriverstate  -orahome $GRID_HOME installed
ACFS-9204: false

En este caso deberemos de proceder a la instalacion mediante el comando:

[root@rac1 ~]# cd $GRID_HOME/bin/
./acfsload install

ACFS no cargado

Este es posiblemente el caso mas común que nos podamos encontrar, que es que esté instalado, pero que no haya arrancado con el sistema.

Esto lo comprobaremos con :

[root@rac1 ~]# cd $GRID_HOME/bin/
[root@rac1 ~]# ./acfsdriverstate  -orahome $GRID_HOME loaded
ACFS-9204: false

Y la carga es algo tan sencillo como el comando acfsload start -s
Podremos ver si está cargado mirando los moódulos del sistema operativo

root@rac1 ~]# lsmod |grep ora
oracleacfs           1990406  0 
oracleadvm            250040  0 
oracleoks             427672  2 oracleacfs,oracleadvm
oracleasm              54297  1 

Comprobacion de la version que tenemos

Si tenemos el AFS instalado y cargado, que menos que poder saber la version que tenemos, para ello usaremos la único flag que no hemos visto hasta ahora

[root@rac1 ~]# ./acfsdriverstate  -orahome $GRID_HOME version
ACFS-9325:     Driver OS kernel version = 2.6.32-279.el6.x86_64(x86_64).
ACFS-9326:     Driver Oracle version = 130707.

Hasta aquí lo más básico del ACFS, que es tenerlo listo en el sistema .

Más información en: