IBM – Multipath for Oracle

Recientemente donde trabajo hemos tenido que configurar el Multipath para nuestras BD físicas. El MPP sirve para acceder por doble camino a las cabinas de almacenamiento que contienen los discos de la BD, usando para ello cualquiera de las dos controladoras conectadas al servidor. Solucionando un punto de fallo bastante delicado, ya que ¿que pasaría si el cable de fibra, una de las controladoras, el switch de fibra, etc cayeran?, la BD caería, transacciones sin finalizar, BD corrompida, etc.  Gracias sl MPP la BD no se daría cuenta que se a caído un camino ya que automáticamente vería los discos por la otra controladora/camino.

Bueno al tema:

Des-habilitar el MPP – RedHat

Si alguno de vosotros han probado el driver de MPP ofrecido por RHEL y han tenido problemas en su funcionamiento, aquí explico como des-habilitarlo:

Podéis encontraros problemas al intentar eliminar el paquete “device-mapper-multipath”:

[root@snaiderDB]# rpm -e device-mapper-multipath-0.4.7-34.el5
error: Failed dependencies:
device-mapper-multipath >= 0.4.7-9 is needed by (installed) mkinitrd-5.1.19.6-61.i386
device-mapper-multipath >= 0.4.7-9 is needed by (installed) mkinitrd-5.1.19.6-61.x86_64

Lo des habilitamos ya que es incompatible con el driver oficial de IBM:

chkconfig multipathd off
[root@snaiderDB ~]# chkconfig --list | grep multipathd
multipathd     	0:off	1:off	2:off	3:off	4:off	5:off	6:off

Editamos el fichero de configuración y ponemos todos los dispositivos en la lista blanca, por si el driver entrará en funcionamiento no use ningún disco para el MPP.

vim /etc/multipath.conf

blacklist {
        #devnode "sda$"
        devnode "*"
}

Instalación IBM RDAC MULTIPATH

Descargamos el driver desde la web de LSI para nuestro sistema de Almacenamiento y kernel de nuestro RHEL.

Instalación Kernel Source

Para poder compilar la utilidad de MPP necesitamos las fuentes del kernel de nuestro RHEL, podemos descargarlas desde la web oficial de RedHat

También necesitaremos las DEVEL’S del kernel

yum install redhat-rpm-config.noarch rpm-build.x86_64 gcc unifdef kernel-devel

Instalamos las fuentes

rpm -ivh kernel-2.6.9-89.EL.el4.src.rpm
cd /usr/src/redhat/SPECS
rpmbuild -bp --target=x86_64 kernel-2.6.spec
cp -a /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.x86_64 /usr/src/kernels/2.6.9-89.el4-x86_64

Nos aseguramos que el enlace simbólico a las fuentes sea correcto:

[root@snaiderDB]# ll /lib/modules/2.6.9-89.el4/
total 1316
lrwxrwxrwx 1 root root     46 Sep 23  2010 build -> ../../../usr/src/kernels/2.6.9-89.el4-x86_64
drwxr-xr-x 9 root root   4096 Sep 23  2010 kernel
-rw-r--r-- 1 root root 287931 Nov 30 10:46 modules.alias
-rw-r--r-- 1 root root     69 Nov 30 10:46 modules.ccwmap
-rw-r--r-- 1 root root 217321 Nov 30 10:46 modules.dep
-rw-r--r-- 1 root root    147 Nov 30 10:46 modules.ieee1394map
-rw-r--r-- 1 root root    375 Nov 30 10:46 modules.inputmap
-rw-r--r-- 1 root root   2314 Nov 30 10:46 modules.isapnpmap
-rw-r--r-- 1 root root     74 Nov 30 10:46 modules.ofmap
-rw-r--r-- 1 root root 217953 Nov 30 10:46 modules.pcimap
-rw-r--r-- 1 root root   4033 Nov 30 10:46 modules.seriomap
-rw-r--r-- 1 root root 148055 Nov 30 10:46 modules.symbols
-rw-r--r-- 1 root root 393321 Nov 30 10:46 modules.usbmap
lrwxrwxrwx 1 root root      5 Sep 23  2010 source -> build
drwxr-xr-x 3 root root   4096 Nov 30 10:46 weak-updates

Instalación del Driver RDAC

Una vez descargado lo descomprimimos e instalamos:

[root@snaiderDB]# cd linuxrdac-09.03.0C05.0455
[root@snaiderDB linuxrdac-09.03.0C05.0455]# make
[root@snaiderDB linuxrdac-09.03.0C05.0455]# make install

Editamos el “menu.tst” del sistema para que arranque con la nueva imagen de init que este driver genera.
ATENCIÓN: Ajustarlo para nuestro sistema

[root@snaiderDB]# vim /boot/grub/menu.lst
#-------------------------------------------------------------------------------
title Red Hat Linux (2.6.9-89.el4) with MPP support
        root (hd0,0)
        kernel /vmlinuz-2.6.9-89.el4 ro root=LABEL=/
        initrd /mpp-2.6.9-89.el4.img

Configuración CRS

Si nuestra estructura de BD es un Cluster antes de reiniciar el sistema para que tome la nueva imagen, necesitamos modificar un parámetro en el CRS para que en caso de desastre los nodos no se “maten” entre si (por “congelaciones” en la comunicación entre ambos).

Con variables de CRS

crsctl set css disktimeout 300
crsctl get css disktimeout
CRS-4678: Successful get disktimeout 300 for Cluster Synchronization Services.

Reiniciamos el sistema

Configuración del MPP

Por último hay que retocar uno de los valores de este driver para evitar el efecto “pingpong” es decir que los discos mapeados al cluster se pasen de una controladora a otra.

[root@snaiderDB]# vim /etc/mpp.conf
#-------------------------------------------------------------
DisableLUNRebalance=3

Rehacemos la imagen

[root@snaiderDB]# mppUpdate 
Detected 2 QLogic Host Adapter Port(s) on the system
Creating new MPP initrd image...
[root@snaiderDB]# shutdown -r now

Revisión funcionamiento

[root@snaiderDB]# mppUtil -V
Linux MPP Driver Version: 09.03.0C05.0455

Comprobamos que vemos los discos por ambas controladoras

[root@snaiderDB]# ls -1R /proc/mpp/
/proc/mpp/:
CABINA-DS500

/proc/mpp/CABINA-DS500:
controllerA
controllerB
virtualLun0
virtualLun1
virtualLun2
virtualLun3
virtualLun4
virtualLun5
virtualLun6
virtualLun7
virtualLun8
virtualLun9

/proc/mpp/CABINA-DS500/controllerA:
qla2xxx_h5c0t1

/proc/mpp/CABINA-DS500/controllerA/qla2xxx_h5c0t1:
LUN0
LUN1
LUN2
LUN3
LUN4
LUN5
LUN6
LUN7
LUN8
LUN9

/proc/mpp/CABINA-DS500/controllerB:
qla2xxx_h6c0t0

/proc/mpp/CABINA-DS500/controllerB/qla2xxx_h6c0t0:
LUN0
LUN1
LUN2
LUN3
LUN4
LUN5
LUN6
LUN7
LUN8
LUN9
[root@snaiderDB]#

Esta puede ser una solución para cabinas de IBM y casí cualquier RHEL, este driver es muy estable y el MPP es transparente para el S.O, es decir no genera alias de dispositivos para funcionar en MultiPath.

Upgrade Oracle RAC from 11.2.0.2 to 11.2.0.3

Bueno en este manual voy a explicar como realizar la actualización de un RAC 11.2.0.2 a la nueva versión 11.2.0.3, proceso que tuve que realizar hace poco en el trabajo.

Oracle con las últimas versiones ha ido tomando el buen abito de realizar las instalaciones en un $ORACLE_HOME diferente al usado el la versión “activa”.

Lee el resto de esta entrada

OwnCloud – Tu propia Nube

Si tienes tu propio servidor y te interesa tener tu propia nube sin restricciones de espacio puedes usar OWNCLOUD, montando así tu propio servidor WebDav. Para realizar la instalación solo necesitas un Mysql y un servidor web corriendo Apache, con las siguientes dependencias instaladas:

Lee el resto de esta entrada

Reverse SSH Tunneling

Que es el Reverse SSH Tunneling?, básicamente se trata de realizar una conexión del equipo A –> B y poder usar esta conexión de forma inversa, es decir conectarte del equipo B –> A, saltándose así el Firewall que bloquea la conexiones ssh entrantes. Puede ser muy util como VPN casero, ya que la transmisión se realiza de forma cifrada. Lee el resto de esta entrada

Toad en Linux

Bueno en está entrada voy a explicar como hacer funcionar el Software Toad for Oracle en un Linux. Vamos a realizar una emulación de un sistema Windows XP usando para ello la herramienta Wine, para llevar a acabo esta tarea necesitaremos: Lee el resto de esta entrada

Memcached

Memcached es una utilidad empleada para cachear en memoria RAM datos u objetos continuamente usados, evitando así el acceso continuo a una BD o en definitiva a una unidad de almacenamiento. Para servidores web hay una utilidad llamada memcache, sin D, la cual permite ínter actuar a nuestro servidor con dicha utilidad. Más info aquí. Lee el resto de esta entrada

Autentificación exclusiva FTP

Saludos a todos los lectores, el otro día instalando un ftp en plano con autentificación local de usuario me encontré con la duda de que shell tenía que asignar a un usuario si solo quería que se conectará al FTP y no pudiera acceder mediante otro método. La shel /bin/false no era valida y el usaurio nos e podía autentificar, así que creé una nueva shell: Lee el resto de esta entrada

Cisco VPN en Ubuntu

Si tienes Ubuntu con una versión superior 10.10 (kernel > 2.6.38+) estás de enhorabuena, no necesitas instalar el cliente de Cisco para conectarte a la VPN del trabajo.
El Administrador de Redes del propio Ubuntu puede serte de mucha utilidad si isntalas la herramienta network-manager-vpnc la cual soporta Cisco IPSec VPNs Lee el resto de esta entrada

DBD+DBI with Basic InstantClient

En esta entrada voy a explicar como instalar los módulos para conectarse a una BD Oracle teniendo un Instanclient como base, estos módulos podrán servirnos para realizar chequeos de Nagios a una BD 10g o 11g (check_oracle_health), en un post anterior explique como configurar el isntanclient con tnsping. Ahora vamos a suponer que es una instalación nueva. Lee el resto de esta entrada

Firewall for passive FTP server

En una publicación anterior expliqué como montar un servidor ftp+ldap, ahora vamos a acnfigurar el firewall para permitir únicamente las conexiones que nos interesan: Lee el resto de esta entrada

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.