viernes, 3 de junio de 2011

FIlesystem en Cluster OCFS2 para Centos / Red Hat

Saludos desde el ciberespacio lectores virtuales (?)

En esta nueva entrega os explicare como instalar un filesystem en cluster (Oracle Cluster Filesystem 2). Muy util para soluciones de alta disponibilidad, es bastante simple de instalar comparado a otras opciones, como por ejemplo GFS2 de RedHat. Yo lo utilizo para compartir logfiles de una instalacion en cluster de PostgreSQL, pero sirve para cualquier cosa...
En mi configuracion se instalo sobre una unidad iscsi, compartida entre dos servidores (Nodos), uno real y otro virtual (con xen).

La instalacion se debe realizar en todos los nodos que vayan a compartir el filesystem.

Primero se instalan las dependencias en los nodos
yum install -y vte

Luego se descargan los paquetes de OCFS2, para mi caso de 64 bits, si necesitan para 32 bits los pueden descargar de http://oss.oracle.com/projects/ocfs/files/

wget http://oss.oracle.com/projects/ocfs2/dist/files/RedHat/RHEL5/x86_64/1.4.7-1/2.6.18-238.9.1.el5/ocfs2-2.6.18-238.9.1.el5-1.4.7-1.el5.x86_64.rpm
wget http://oss.oracle.com/projects/ocfs2-tools/dist/files/RedHat/RHEL5/x86_64/1.4.4-1/ocfs2-tools-1.4.4-1.el5.x86_64.rpm
wget http://oss.oracle.com/projects/ocfs2-tools/dist/files/RedHat/RHEL5/x86_64/1.4.4-1/ocfs2console-1.4.4-1.el5.x86_64.rpm
rpm -ivh ocfs2-2.6.18-238.9.1.el5-1.4.7-1.el5.x86_64.rpm ocfs2-tools-1.4.4-1.el5.x86_64.rpm ocfs2console-1.4.4-1.el5.x86_64.rpm
 Luego se instalan los rpm

rpm -ivh ocfs2-2.6.18-238.9.1.el5-1.4.7-1.el5.x86_64.rpm ocfs2-tools-1.4.4-1.el5.x86_64.rpm ocfs2console-1.4.4-1.el5.x86_64.rpm

Para el nodo con kernel xen, difiere un poco la instalacion

wget http://oss.oracle.com/projects/ocfs2/dist/files/RedHat/RHEL5/x86_64/1.4.7-1/2.6.18-238.el5/ocfs2-2.6.18-238.el5xen-1.4.7-1.el5.x86_64.rpm
wget http://oss.oracle.com/projects/ocfs2-tools/dist/files/RedHat/RHEL5/x86_64/1.4.4-1/ocfs2-tools-1.4.4-1.el5.x86_64.rpm
wget http://oss.oracle.com/projects/ocfs2-tools/dist/files/RedHat/RHEL5/x86_64/1.4.4-1/ocfs2console-1.4.4-1.el5.x86_64.rpm

rpm -ivh ocfs2-2.6.18-238.el5xen-1.4.7-1.el5.x86_64.rpm ocfs2-tools-1.4.4-1.el5.x86_64.rpm ocfs2console-1.4.4-1.el5.x86_64.rpm 

En alguno de los dos nodos, ahora, hay que darle formato al disco:



mkfs.ocfs2 --fs-features=nosparse,inline-data /dev/mapper/mpath2p1

(cambiar /dev/mapper/mpath2p1 por la unidad correspondiente segun el caso)

ahora se activa el o2cb. NOTA: va a tirar un error la primera vez


/etc/init.d/o2cb enable

Writing O2CB configuration: OK
Loading filesystem "configfs": OK
Mounting configfs filesystem at /sys/kernel/config: OK
Loading stack plugin "o2cb": OK
Cluster not known

Luego se edita el archivo /etc/ocfs2/cluster.conf con la configuracion de los nodos y el nombre del cluster
node:
        ip_port = 7777
        ip_address = 10.10.10.30
        number = 0
        name = db02.crapfields.com.ar
        cluster = ocfs2

node:
        ip_port = 7777
        ip_address = 10.10.10.20
        number = 1
        name = db01.crapfields.com.ar
        cluster = ocfs2

cluster:
        node_count = 2
        name = ocfs2

Ahora si, se inicia el servicio
/etc/init.d/o2cb start
de paso, ya lo agrego como servicio del sistema
chkconfig o2cb on

Finalmente se monta la unidad

mount /dev/mpath/mpath2p1 /u02

En el caso de necesitar que se monte la unidad al inicio del sistema, editar el archivo /etc/fstab

/dev/mapper/mpath2p1     /u02                   ocfs2   _netdev,datavolume     0 0


y eso es todo! Espero que les sirva.