Hoy vamos a crear otro entorno de pruebas para jugar con el RAC, esta vez lo haremos con la herramienta de virtualización de Oracle VirtualBox ,en nuestro caso bajo un OSX 10.8
Los pasos que seguiremos son:
Para empezar, al igual que hicimos con el KVM instalaremos un servidor linux normal y corriente al que llamaremos Plantilla.Las características de la máquina serán:
- 4 Gb de RAM
- 4 Mb de targeta gráfica
- 1 Imagen de DVD montada con los fuentes de Oracle
- 4 Gb de SWAP
- 16Gb de disco duro
- Eliminamos el Audio y los USB
El sistema operativo que vamos a instalar es la última distribución de Oracle Linux (en nuestro caso 6.3), haremos la instalación mínima por defecto.
Actualizacion tenemos una entrada «futura» en la que se indica como hacer esta instalación de manera rápida Instalación Básica de Linux para un Oracle 11
Lo primero que vamos ha hacer es crear las 2 redes privadas que tendrán nuestros equipos.
En este ejemplo los equipos van a tener 3 interfaces de red:
- Eth0: Ip virtual de la red 192.168.1.X que hara la funcion de virtual
- Eth1: Ip virtual de la red 192.168.2.X que hara la funcion de privada
- Eth2: Ip de host asignada por el VirtualBox (10.0.4.X ) y que tendrá salida a internet
Desde las preferencias de nuestro virtualbox y crearemos 2 redes solo anfitrion de la siguiente forma:


Una vez repetida esta acción con las 3 redes, tendremos un apartado de configuración de red del VirtualBox similar a este:

Lo siguiente que tenemos que hacer es añadir 3 interfaces de red a nuestro equipo virtual asignando a cada nueva interfaz de red a una de estas 3 redes solo host que hemos creado.
En la pestaña de red tendremos nuestro Adaptador 1 creado automáticamente por la instalación de la forma

Nosotros tendremos que añadir el resto de adaptadores para que queden

donde debería de haber una correspondencia entre
- Adaptador2 ->vboxnet1
- Adaptador3 ->vboxnet2
Nuestro siguiente punto va a ser crear nuestros discos compartidos, para ello abriremos una ventana de terminal en el equipo en el que estemos instalando el VirtualBox y nos iremos a el directorio donde esten instalados las máquinas (en caso del OSX es en /Users/$usuario/VirtualBox VMs ) y ejecutaremos los siguientes comandos
mkdir discos
cd discos
VBoxManage createhd --filename asm1.vdi --size 5120 --format VDI --variant Fixed
VBoxManage createhd --filename asm2.vdi --size 5120 --format VDI --variant Fixed
VBoxManage createhd --filename asm3.vdi --size 5210 --format VDI --variant Fixed
VBoxManage createhd --filename asm4.vdi --size 1024 --format VDI --variant Fixed
VBoxManage createhd --filename asm5.vdi --size 1024 --format VDI --variant Fixed
Los ponemos como compartidos
VBoxManage modifyhd asm1.vdi --type shareable
VBoxManage modifyhd asm2.vdi --type shareable
VBoxManage modifyhd asm3.vdi --type shareable
VBoxManage modifyhd asm4.vdi --type shareable
VBoxManage modifyhd asm5.vdi --type shareable
Con esto tenemos creados los discos que usaremos en el RAC, ahora tenemos que añadirlos a nuestra maquina virtual,para ello iremos a la pestaña Almacenamiento de nuestra máquina y crearemos un nuevo interfaz del tipo SCSI, a este almacenamiento le añadiremos los 5 discos quedando de la manera:


Configuraciones del servidor
Llegados a este punto, tenemos todo el hardware listo para nuestra máquina virtual y el siguiente paso será configurarlo dentro del servidor.
Arrancaremos la máquina
Primero añadiremos en los ficheros de configuracion los requisitos de Oracle, en el fichero /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1054504960
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586
Al fichero /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
Y crearemos el usuario Oracle con:
groupadd -g 1000 oinstall
groupadd -g 1200 dba
useradd -u 1100 -g oinstall -G dba oracle
passwd oracle
En lo referente a las interfaces de red, añadiremos al fichero /etc/hosts las líneas:
# HOST eth0
# Direcciones para nuestros equipos (en una red normal seria publicas o de host)
192.168.1.1 exodar-priv.pamplona.name exodar-priv exodar
192.168.1.2 rac1-priv.pamplona.name rac1-priv rac1
192.168.1.3 rac2-priv.pamplona.name rac2-priv rac2
192.168.1.4 rac3-priv.pamplona.name rac3-priv rac3
192.168.1.5 rac4-priv.pamplona.name rac4-priv rac4
192.168.1.24 plantilla-priv.pamplona.name plantilla-priv
#Virtual Eth0 que cogeran los local listeners
192.168.1.12 rac1-vip.pamplona.name rac1-vip
192.168.1.13 rac2-vip.pamplona.name rac2-vip
192.168.1.14 rac3-vip.pamplona.name rac3-vip
192.168.1.15 rac4-vip.pamplona.name rac4-vip
#ETH0 que usara el RAC, ScaN comentadas ya que estan configuradas en round robin de dns
#192.168.2.20 ractest.pamplona.name ractest
#192.168.2.21 ractest.pamplona.name ractest
#192.168.2.22 ractest.pamplona.name ractest
#interconexcion Eth1
192.168.2.1 exodar-conn.pamplona.name exodar-conn
192.168.2.2 rac1-conn.pamplona.name rac1-conn
192.168.2.3 rac2-conn.pamplona.name rac2-conn
192.168.2.4 rac3-conn.pamplona.name rac3-conn
192.168.2.5 rac4-conn.pamplona.name rac4-conn
y configuraremos las interfaces de red modificando los ficheros
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
IPADDR=192.168.1.24
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
IPV6INIT=no
NAME=eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
IPADDR=192.168.2.24
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
IPV6INIT=no
NAME=eth1
/etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE=eth2
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
IPV6INIT=no
NAME=eth2
Después crearemos nuestros discos de ASM, para ello, primero habremos de particionar los discos /dev/sdb,/dev/sdc,/dev/sdd,/dev/sde y /dev/sdf . EL proceso será el mismo para los 5
# fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-16065, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-16065, default 16065):
Using default value 16065
Command (m for help): p
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xa03e3f05
Device Boot Start End Blocks Id System
/dev/sdd1 1 652 5237158+ 83 LinuxLinux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
#
Tras haber particionado los 5 discos crearemos discos ASM sobre ellos con el comando
# /usr/sbin/oracleasm createdisk DISK1 /dev/sdb1
Writing disk header: done
Instantiating disk: done
# /usr/sbin/oracleasm createdisk DISK2 /dev/sdc1
Writing disk header: done
Instantiating disk: done
# /usr/sbin/oracleasm createdisk DISK3 /dev/sdd1
Writing disk header: done
Instantiating disk: done
# /usr/sbin/oracleasm createdisk DISK4 /dev/sde1
Writing disk header: done
Instantiating disk: done
# /usr/sbin/oracleasm createdisk DISK5 /dev/sdf1
Writing disk header: done
Instantiating disk: done
#
Podremos comprobar que los discos estan creados con la orden
[root@pruebas ~]# oracleasm listdisks
DISK1
DISK2
DISK3
DISK4
DISK5
Y con eso ya tenemos un servidor que nos puede servir de plantilla para nuestras futuras pruebas del RAC.
En la siguiente entrada duplicaremos los servidores e instalaremos nuestro Oracle RAC 11g