Cómo añadir discos a una instancia Oracle ASM

El siguiente procedimiento sirve para añadir nuevos discos a una instancia ASM (Automatic Storage Management). El proceso pasa por localizar los discos a añadir, particionarlos y finalmente marcarlos para ser usados por ASM. Este último punto se realiza con los paquetes de ASM que podemos instalar en Oracle Linux.

Los paquetes de ASM los podemos instalar con yum o rpm:

# rpm -qa | grep asm
oracleasm-support-2.1.8-1.el6.x86_64
kmod-oracleasm-2.0.6.rh1-2.el6.x86_64
# yum install oracleasm-support kmod-oracleasm

Una vez que tenemos las herramientas instaladas, lo primero que hacemos es localizar el disco/s a añadir a ASM. Una forma sencilla es, por ejemplo, sacar un listado de los WWN en /dev/disk/by-id/ e identificarlos según el LUN ID/WWN y su mapeo en /dev/sd*:

# ls -l /dev/disk/by-id/

lrwxrwxrwx. 1 root root 10 Dec 22 08:57 /dev/disk/by-id/wwn-0x600144f0956df03d0000549811880007 -> ../../sdaa

Una vez localizado, lo particionamos de forma estándar. Si no lo particionamos a la hora de marcarlo como ASM fallará:

# fdisk -cu /dev/sdaa

Command (m for help): p

Disk /dev/sdaa: 53.7 GB, 53687091200 bytes
64 heads, 32 sectors/track, 51200 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8f594f83

    Device Boot      Start         End      Blocks   Id  System

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-51200, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-51200, default 51200): 
Using default value 51200

Command (m for help): w

A partir de aquí ya podemos hacer uso de la herramienta oracleasm:

# /etc/init.d/oracleasm 
Usage: /etc/init.d/oracleasm {start|stop|restart|enable|disable|configure
|createdisk|deletedisk|querydisk|listdisks|scandisks|status}

Para marcar el disco para su uso en ASM simplemente indicamos la etiqueta con la que se identificará y el dispositivo:

# /etc/init.d/oracleasm createdisk DATA15 /dev/sdaa1
Marking disk "DATA15" as an ASM disk:              [  OK  ]

Listamos los discos para verificar que el nuevo que hemos añadido aparece:

# /etc/init.d/oracleasm listdisks

Y finalmente, en el resto de nodos del Oracle RAC hacemos un scandisk para que aparezca el nuevo disco:

# /etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks:       [  OK  ]

Y un listdisks para confirmar:

# /etc/init.d/oracleasm listdisks