Contacto

CONTACTAR EN CASO DE EMERGENCIAS Móvil +56963679637 - MAIL : CONSULTADBABLOCK@GMAIL.COM
- SOPORTE REMOTO EN BASE DE DATOS ORACLE - ORACLE LINUX - ORACLE VM SERVER - ORACLE RAC - ORACLE DATA GUARD
- UPGRADES - CAPACITACION

Tuesday, November 17, 2009

Creando una SAN en EOL 5 para Oracle RAC

Preparando un Target SCSI para Oracle RAC

Estaba trabajando con discos compartidos con la opción "eagerzerothick" en ESX 4.0. Esta configuración permite tener discos virtuales compartidos, los cuales son presentados a los nodos que componen la configuración de un Cluster de sistema operativo y en este caso utilizados para conformar los dispositivos asociados a una instancia ASM para Oracle RAC. La verdad que me complique bastante intentando hacer esto y las particiones presentadas a cada nodo funcionan sin problemas. Pero es necesario tener bastante conocimiento de ESX para que funcione. Los issues fueron bastantes y decidí preparar otra configuración mas simple de algo que conozco en mas detalle.

La solución fue implementar un Target SCSI, capaz de presentar Luns a los nodos como una SAN y asignar estos dispositivos particionados al Oracle ASM. Permitiendo configurar todo mediante la asignación lógica de los dispositivos pertenecientes a cada Nodo.

Revisemos el diagrama para entender la solución:



El diagrama muestra un único almacenamiento, el cual esta conformado por discos virtuales creados en el nodo donde se encuentra instalado el "SCSI target" o "tgt". En el Nodo Target los dispositivos son presentados como LUNs "Logical unit numbers". El protocolo Ip basado en un almacenamiento remoto vía red, proporcionara acceso a las LUNs, que a su vez serán descubiertas por los otros nodos y serán presentadas como dispositivos lógicos, los cuales deben ser particionados para su utilización y posterior configuración con Oracle ASMLib (createdisk).
Se crea una interfaz de red por cada nodo en un segmento distinto al definido para las publicas y privadas relacionadas al interconnect. Esta red solo será para trafico de paquetes al puerto 3260. También se instalaran los deamons iscsid y tgtd.


Definición de Servidor SAN

La siguiente configuración de requerimientos mininos esta corriendo en una maquina virtual con ESX 4.0.

Memoria: inicial 512MB
CPU: 1 Procesador
Disco: 1 Partición para S.0 - 20GB
1 Partición para Swap - Depende de la memoria de la maquina (memoria RAM * 2.5)
1 Partición para almacenamiento de discos. - 60GB
S.O : Oracle Enterprise Linux 5 (32Bit ò 64 Bit)
Red: 1 eth0

Instalar los siguientes paquetes en el Nodo Target (vmstorage01)

rpm -Uvh iscsi*

iscsi-initiator-utils-6.2.0.871-0.10.el5
iscsi-target-utils-0.0-5.20080917snap.el5

Es muy importante resolver las dependencias de paquetes que se necesitan al momento de instalar.

Configurando el dispositivo de Red para el nodo de almacenamiento

Se debe modificar el script que controla la configuración del dispositivo eth0 en la siguiente ruta:

cd /etc/sysconfig/network-scripts

editar: ifcfg-eth0 y configurar de la siguiente manera:

DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=1.99.1.254
NETMASK=255.255.0.0

Configurar nombre de maquina

editar /etc/host
1.99.1.254 vmstorage01.andoria.cl vmstorage01

Creación de discos para LUNs

dd if=/dev/zero of=/Storage/discos/disk01.dat bs=1M count=10240

Se ha creado un filesystem llamado Storage con una capacidad de 60GB. Dentro de este filesystem serán creados los discos virtuales, los cuales serán reconocidos posteriormente como Luns. Cada discos tendrá un tamaño de 10GB.

/Storage/discos/disk01.dat --> Disco de10GB.

Configuración del initiator

cd /etc/iscsi y modificar el archivo initiatorname.iscsi.

Se debe agregar el nombre del target SCSI y puerto donde corre el initiator para permitir la conexión de los Host clientes.

initiatorName=vmstorage01.andoria.cl:3260

Definiendo la ruta física de los discos

Editar el archivo targets.conf en la ruta /etc/tgt y agregar todos los discos creados en el paso 6. También se debe agregar el initiatorName para identificar la conocer la procedencia de los discos.



backing-store /Storage/discos/disk01.dat
backing-store /Storage/discos/disk02.dat
.
.
backing-store /Storage/discos/diskn.dat



Configurando el rc.local

La utilidad tgtadm (Linux SCSI Target Administración Utility), se encarga de asignar los discos a unidades lógicas numéricas permitiendo configurar una LUN.

tgtadm -lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /Storage/discos/disk01.dat

tgtadm --lld iscsi --op bin --mode target --tid 1 -I ALL

En el caso que se creen mas Luns, estas deben ser definidas en los archivos targets.conf y rc.local

Para detalles de cada una de las opciones: http://linux.die.net/man/8/tgtadm

Para determinar que esta funcionando y se crearon efectivamente las Luns, se deben ejecutar los siguientes comandos.

[root@vmstorage01 ~]# tgtadm --lld iscsi --op show --mode target
Target 1: vmstorage01.andoria.cl:vmstorage01
System information:
Driver: iscsi
State: ready
I_T nexus information:
I_T nexus: 10
Initiator: iqn.1994-05.com.redhat:29d1d814e590 ---> Cliente nodo VMRAC1
Connection: 0
IP Address: 1.99.1.252
I_T nexus: 11
Initiator: iqn.1994-05.com.redhat:4258579d9357 ----> Cliente nodo VMRAC2
Connection: 0
IP Address: 1.99.1.251
LUN information:
LUN: 0
Type: controller
SCSI ID: deadbeaf1:0
SCSI SN: beaf10
Size: 0 MB
Online: Yes
Removable media: No
Backing store: No backing store
LUN: 1
Type: disk
SCSI ID: deadbeaf1:1
SCSI SN: beaf11
Size: 10737 MB
Online: Yes
Removable media: No
Backing store: /Storage/discos/disk01.dat
LUN: 2
Type: disk
SCSI ID: deadbeaf1:2
SCSI SN: beaf12
Size: 10737 MB
Online: Yes
Removable media: No
Backing store: /Storage/discos/disk02.dat

Hasta aquí, la configuración esta terminada.

Presentando las Luns a un nuevo nodo

Se definen dos nodos para la configuración de Oracle RAC. En este caso el nuevo nodo se ha denominado VMRAC1. Para la presentación de las Luns, se debe instalar el paquete
en EOL 5:

rpm -Uvh iscsi-initiator-utils-6.2.0.871-0.10.el5.rpm

[root@vmrac1 ~]# rpm -qa | grep initiator
iscsi-initiator-utils-6.2.0.871-0.10.el5

Este package debe estar instalado en todos los nodos que componen la configuración de Oracle RAC. Este package también fue instalado en el nodo VMRAC2.

Verificando los nuevos dispositivos

Este comando realizara el descubrimiento de los nuevos dispositivos en forma automática:

[root@vmrac1 iscsi]# iscsiadm -m discovery -t sendtargets -p vmstorage01
1.99.1.253:3260,1 vmstorage01.bizware.cl:vmstorage01


En el directorio /dev se encuentran los distintos dispositivos asociados a particiones, hardware, etc.

ls -ltr /dev/sd*

[root@vmrac1 dev]# ls -ltr sd*
brw-r----- 1 root disk 8, 2 Nov 22 22:21 sda2
brw-r----- 1 root disk 8, 0 Nov 22 22:21 sda
brw-r----- 1 root disk 8, 1 Nov 22 22:22 sda1
brw-r----- 1 oracle oinstall 8, 80 Nov 22 22:22 sdf
brw-r----- 1 oracle oinstall 8, 16 Nov 22 22:22 sdb
brw-r----- 1 oracle oinstall 8, 48 Nov 22 22:22 sdd
brw-r----- 1 root oinstall 8, 96 Nov 22 22:22 sdg
brw-r----- 1 oracle oinstall 8, 128 Nov 22 22:22 sdi
brw-r----- 1 oracle oinstall 8, 144 Nov 22 22:22 sdj
brw-r----- 1 oracle oinstall 8, 160 Nov 22 22:22 sdk
brw-r----- 1 oracle oinstall 8, 32 Nov 22 22:22 sdc
brw-r----- 1 oracle oinstall 8, 64 Nov 22 22:22 sde
brw-r----- 1 root oinstall 8, 112 Nov 22 22:22 sdh


Con Fdisk vamos a crear la nueva partición. Esto genera los nuevos dispositivos para ser configurados con OracleASM.

brw-r----- 1 root disk 8, 17 Nov 23 01:24 sdb1
brw-r----- 1 root disk 8, 33 Nov 23 01:24 sdc1
brw-r----- 1 root disk 8, 65 Nov 23 01:24 sde1
brw-r----- 1 root disk 8, 49 Nov 23 01:24 sdd1
brw-r----- 1 root disk 8, 81 Nov 23 01:24 sdf1
brw-r----- 1 root oinstall 8, 113 Nov 27 11:10 sdh1
brw-r----- 1 root oinstall 8, 97 Nov 27 11:10 sdg1
brw-r----- 1 oracle oinstall 8, 129 Nov 27 12:12 sdi1
brw-r----- 1 oracle oinstall 8, 161 Nov 27 12:12 sdk1
brw-r----- 1 oracle oinstall 8, 145 Nov 27 12:12 sdj1

Podemos observar que hay ciertos dispositivos asignados al usuario root con grupo oinstall y otros asignados al usuario oracle grupo oinstall. Por definición solamente los dispositivos que serán asociados al OCR mediante el Clusterware deben pertenecer al root, el Voting Disk y particiones que soportaran los discos de ASM deben pertenecer al usuario oracle.

En esta configuración se han creado dos dispositivos para OCR de 600MB, tres dispositivos para Voting Disk de 600MB y cuatro particiones de 10GB, las cuales soportaran los discos de ASM y posteriormente almacenaran la base de datos. Es importante recordar que ya no es necesario crear los raw devices y simplemente todo puede ir almacenados en particiones. Para el caso de 11gR2 la instancia de ASM es creada al inicio para que el OCR y Voting Disk sean almacenados en discos de ASM directamente.

asignación de permisos a los distintos dispositivos

Se debe configurar el archivo /etc/rc.local de la siguiente manera:

[root@vmrac1 etc]# cat rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

chown oracle:oinstall /dev/sdb1
chown oracle:oinstall /dev/sdc1
chown oracle:oinstall /dev/sdd1
chown oracle:oinstall /dev/sde1
chown oracle:oinstall /dev/sdf1
chown root:oinstall /dev/sdg1 ----> OCR01
chown root:oinstall /dev/sdh1 ----> OCR02
chown oracle:oinstall /dev/sdi1
chown oracle:oinstall /dev/sdj1
chown oracle:oinstall /dev/sdk1


Instalando ASM

Todos los packages deben ser instalados en todos los nodos que componen el ambiente de Oracle RAC.
Para bajar los paquetes necesarios para la versión de sistema operativo, consultar el siguiente Link:

http://www.oracle.com/technology/tech/linux/asmlib/index.html

-rw-r--r-- 1 root root 129621 Nov 17 10:25 oracleasm-2.6.18-164.el5PAE-2.0.5-1.el5.i686.rpm
-rw-r--r-- 1 root root 85222 Nov 17 10:25 oracleasm-support-2.1.3-1.el5.i386.rpm
-rw-r--r-- 1 root root 13769 Nov 17 10:25 oracleasmlib-2.0.4-1.el5.i386.rpm
[root@vmrac1 tmp]# rpm -Uvh oracleasm-2.6.18-164.el5PAE-2.0.5-1.el5.i686.rpm
error: Failed dependencies:
oracleasm-support >= 2.0.0 is needed by oracleasm-2.6.18-164.el5PAE-2.0.5-1.el5.i686
[root@vmrac1 tmp]# rpm -Uvh oracleasm-support-2.1.3-1.el5.i386.rpm
Preparing... ########################################### [100%]
1:oracleasm-support ########################################### [100%]
[root@vmrac1 tmp]# rpm -Uvh oracleasm-2.6.18-164.el5PAE-2.0.5-1.el5.i686.rpm
Preparing... ########################################### [100%]
1:oracleasm-2.6.18-164.el########################################### [100%]
[root@vmrac1 tmp]# rpm -Uvh oracleasmlib-2.0.4-1.el5.i386.rpm
Preparing... ########################################### [100%]
1:oracleasmlib ########################################### [100%]

[root@vmrac1 tmp]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting without typing an
answer will keep that current value. Ctrl-C will abort.

Default user to own the driver interface []: oracle
Default group to own the driver interface []: oinstall
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]

Instalar y configurar de la misma manera en todos los nodos del ambiente Oracle RAC.

Creando los discos de ASM

conectarse como root al nodo 1 y ejecutar lo siguiente:

[root@vmrac1 ~]# /etc/init.d/oracleasm createdisk DISK01 /dev/sdb1
Marking disk "DISK01" as an ASM disk: [ OK ]
[root@vmrac1 ~]# /etc/init.d/oracleasm createdisk DISK02 /dev/sdc1
Marking disk "DISK02" as an ASM disk: [ OK ]
[root@vmrac1 ~]# /etc/init.d/oracleasm createdisk DISK03 /dev/sdd1
Marking disk "DISK03" as an ASM disk: [ OK ]
[root@vmrac1 ~]# /etc/init.d/oracleasm createdisk DISK04 /dev/sde1
Marking disk "DISK04" as an ASM disk: [ OK ]
[root@vmrac1 ~]# /etc/init.d/oracleasm createdisk DISK05 /dev/sdf1
Marking disk "DISK05" as an ASM disk: [ OK ]

[root@vmrac1 ~]# /etc/init.d/oracleasm listdisks
DISK01
DISK02
DISK03
DISK04
DISK05
[root@vmrac1 ~]# /etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks: [ OK ]

nodo 2:

[root@vmrac2 init.d]# ./oracleasm scandisks
Scanning the system for Oracle ASMLib disks: [ OK ]
[root@vmrac2 init.d]# ./oracleasm listdisks
DISK01
DISK02
DISK03
DISK04
DISK05

verificar los discos de ASM a nivel de Sistema Operativo:

cd /dev/oracleasm/disks

brw-rw---- 1 oracle oinstall 8, 17 Nov 23 01:24 DISK01
brw-rw---- 1 oracle oinstall 8, 33 Nov 23 01:24 DISK02
brw-rw---- 1 oracle oinstall 8, 49 Nov 23 01:24 DISK03
brw-rw---- 1 oracle oinstall 8, 65 Nov 23 01:24 DISK04
brw-rw---- 1 oracle oinstall 8, 81 Nov 23 01:24 DISK05


Hasta aquí la configuración de los discos y ASM esta completada. Ahora se puede proceder para crear la instancia en RAC y la base de datos.

Saludos.
Alberto
Viva Linux!!!!!!

No comments: