JmG Virtual Consulting, S.L. - Líderes y Expertos en Soluciones de Virtualización de Sistemas
 

Tag Archive | "Openfiler"

Como crear un Cluster SAN con Openfiler – Parte II


En la primera parte, te explique brevemente como instalar y montar el motor DRDB.

En esta segunda parte, te explicare como configurar el Hearbeat y a finalizar la instalación y configuración de OpenFiler en una configuración en Cluster de alta disponibilidad.

Heartbeat

Para configurar heartbeat nos hará falta crear dos ficheros, authkeys y ha.cf. En authkeys definimos el método de autenticación entre nodos del cluster. Podéis poner sencillamente esto:

auth 2
2 crc

Lo copiáis al nodo 2 y atención, aseguraos que los permisos sobre este fichero en ambos nodos es 600, ya que de lo contrario heartbeat no arrancará. Ahora el ha.cf:

debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
udpport 694
bcast eth0
keepalive 5
warntime 10
deadtime 120
initdead 120
auto_failback off
node batman
node robin

Importante: Aseguraos que la eth sobre la que vais a comprobar el heartbeat es la correcta (en mi caso solo tengo una eth en cada servidor así que no hay mucha probabilidad de error). Ah y cambiad los nombre de los nodos (lineas “node”) con el nombre de vuestros nodos. Cuando acabéis, copiadlo al nodo 2 y añadid heartbeat al inicio del sistema.

chkconfig –level 2345 heartbeat on

Ahora es cuando tenemos que empezar a mover ficheros de configuración a la partición que hemos creado para el cluster y linkarlos, de manera que cuando hagamos el failover el nodo secundario monte dicha partición (que está replicada con drbd) y pueda arrancar los servicios correctamente:

En nuestro nodo primario:
• mkdir /cluster_metadata
• mount /dev/drbd0 /cluster_metadata
• mv /opt/openfiler/ /opt/openfiler.local
• mkdir /cluster_metadata/opt
• cp -a /opt/openfiler.local /cluster_metadata/opt/openfiler
• ln -s /cluster_metadata/opt/openfiler /opt/openfiler
• rm /cluster_metadata/opt/openfiler/sbin/openfiler
• ln -s /usr/sbin/httpd /cluster_metadata/opt/openfiler/sbin/openfiler
• rm /cluster_metadata/opt/openfiler/etc/rsync.xml
• ln -s /opt/openfiler.local/etc/rsync.xml /cluster_metadata/opt/openfiler/etc/
• mkdir -p /cluster_metadata/etc/httpd/conf.d

y editamos el fichero /opt/openfiler.local/etc/rsync.xml para que parezca algo así:

<?xml version=”1.0″ ?>
<rsync>
<remote hostname=”10.188.188.2″/> ## IP address of peer node.
<item path=”/etc/ha.d/haresources”/>
<item path=”/etc/ha.d/ha.cf”/>
<item path=”/etc/ldap.conf”/>
<item path=”/etc/openldap/ldap.conf”/>
<item path=”/etc/ldap.secret”/>
<item path=”/etc/nsswitch.conf”/>
<item path=”/etc/krb5.conf”/>
</rsync>

Tened en cuenta en “hostname” poner la IP del nodo 2. En el nodo 2 nos basta con:
• mkdir /cluster_metadata
• mv /opt/openfiler/ /opt/openfiler.local
• ln -s /cluster_metadata/opt/openfiler /opt/openfiler

El link simbolico está “roto”, pero se arregla al hacer el failover, ya que se montará la partición en el directorio /cluster_metadata. Hacemos lo mismo con el fichero /opt/openfiler.local/etc/rsync.xml, pero en el nodo 2 tenemos que poner la IP del nodo 1.

Ahora la configuración del heartbeat que trae openfiler. Esto sólo hay que hacerlo en el nodo 1. Editamos /cluster_metadata/opt/openfiler/etc/cluster.xml y lo dejamos tal que así:

<?xml version=”1.0″ ?>

<cluster>

<clustering state=”on” />

<nodename value=”batman” />

<resource value=”MailTo::it@company.com::ClusterFailover”/>

<resource value=”IPaddr::192.168.1.10/24″ />

<resource value=”drbddisk::”>

<resource value=”LVM::vg0drbd”>

<resource value=”Filesystem::/dev/drbd0::/cluster_metadata::ext3::defaults,noatime”>

<resource value=”MakeMounts”/>

</cluster>

Con esto lo que hacemos es definir a Batman (nodo 1) como el nodo primario. A su vez le decimos que añada un recurso al cluster como una IP virtual (la ip del cluster) y que monte la partición de los ficheros de configuración del cluster.

Ahora, hay que hacer lo mismo que con los ficheros de configuración del openfiler, pero con los de los diferentes servicios. Por partes.

iSCSI

- en el nodo 1:
• mv /etc/ietd.conf /cluster_metadata/etc/
• ln -s /cluster_metadata/etc/ietd.conf /etc/ietd.conf
• mv /etc/initiators.allow /cluster_metadata/etc/
• ln -s /cluster_metadata/etc/initiators.allow /etc/initiators.allow
• mv /etc/initiators.deny /cluster_metadata/etc/
• ln -s /cluster_metadata/etc/initiators.deny /etc/initiators.deny

- en el nodo 2:
• rm /etc/ietd.conf
• ln -s /cluster_metadata/etc/ietd.conf /etc/ietd.conf
• rm /etc/initiators.allow
• ln -s /cluster_metadata/etc/initiators.allow /etc/initiators.allow
• rm /etc/initiators.deny
• ln -s /cluster_metadata/etc/initiators.deny /etc/initiators.deny

FTP

- En el nodo 1:
• mv /etc/proftpd /cluster_metadata/etc/
• ln -s /cluster_metadata/etc/proftpd/ /etc/proftpd

- En el nodo 2:
• rm -rf /etc/proftpd
• ln -s /cluster_metadata/etc/proftpd/ /etc/proftpd

SAMBA Y NFS.

Aquí tuve un pequeño problemita con el tuto de how to forge. Esto es lo que dice:

Nodo 1;
• mkdir /cluster_metadata/etc
• mv /etc/samba/ /cluster_metadata/etc/
• ln -s /cluster_metadata/etc/samba/ /etc/samba
• mkdir -p /cluster_metadata/var/spool
• mv /var/spool/samba/ /cluster_metadata/var/spool/
• ln -s /cluster_metadata/var/spool/samba/ /var/spool/samba
• mkdir -p /cluster_metadata/var/lib
• mv /var/lib/nfs/ /cluster_metadata/var/lib/
• ln -s /cluster_metadata/var/lib/nfs/ /var/lib/nfs
• mv /etc/exports /cluster_metadata/etc/
• ln -s /cluster_metadata/etc/exports /etc/exports

Aunque esto, me dio error en el paso “mv /var/lib/nfs/ /cluster_metadata/var/lib/”. El caso es que hay un demonio por ahí que tiene algo que ver con rpc que bloquea el directorio. Para solucionarlo hice esto:

Reemplazar todas las ocurrencias de /var/lib/nfs/rpc_pipefs por /var/lib/rpc_pipefs en los ficheros /etc/modprobe.conf.dist y /etc/idmapd.conf. Lo podeis hacer a manija o con este mini-script en perl:

perl -i.orig -pe ‘
if (m,^[^#], and m,/var/lib/nfs/rpc_pipefs,)
{print “#”, $_; s,,/var/lib/rpc_pipefs,;}
‘ \
/etc/modprobe.conf.dist \
/etc/idmapd.conf
service nfslock stop
service nfs stop
service rpcidmapd stop
/bin/umount -a -t rpc_pipefs
mv /var/lib/nfs/rpc_pipefs /var/lib/
/bin/mount -t rpc_pipefs sunrpc /var/lib/rpc_pipefs
service rpcidmapd start

Con esto movéis el directorio rpc_pipefs fuera de la carpeta /var/lib/nfs asi que os dejara moverla. Luego, podéis deshacer el proceso (cambiad las expresiones en el script) para que los locks de nfs se guarden en la partición compartida de configuración del cluster, de manera que cuando se haga el failover, se conserven.

Nodo 2:
• rm -rf /etc/samba/
• ln -s /cluster_metadata/etc/samba/ /etc/samba
• rm -rf /var/spool/samba/
• ln -s /cluster_metadata/var/spool/samba/ /var/spool/samba
• rm -rf /var/lib/nfs/
• ln -s /cluster_metadata/var/lib/nfs/ /var/lib/nfs
• rm -rf /etc/exports
• ln -s /cluster_metadata/etc/exports /etc/exports

Hecho esto, creamos el primer volume group en el nodo 1:
• vgcreate vg0drbd /dev/drbd1
• lvcreate -L 400M -n lv001 vg0drbd

Tened siempre como mínimo un volume group con un logical volumen dentro porque si no el heartbeat no arrancara. Luego lo podréis borrar con la interfaz de openfiler y hacerlo al gusto, pero este es para que no de error al arrancar.

Luego en el nodo 1:
• rm /opt/openfiler/etc/httpd/modules
• ln -s /usr/lib64/httpd/modules /opt/openfiler/etc/httpd/modules
(si tenéis la arquitectura x86, como yo, le quitáis el “64” al “lib64” y listo)

Ahora reiniciamos openfiler,

service openfiler restart

Y tendremos que activar o desactivar algún servicio mediante la interfaz para que escriba el fichero /etc/ha.d/haresources. Cuando lo tengamos, lo copiamos al nodo 2.

Y ahora solo queda aplicar el 2º axioma de la informática, reiniciar. Reiniciamos los dos nodos, y al arrancar deberíamos tener el cluster activo. Ahora podéis entrar a la interfaz de administración a través de la IP del cluster (la que hayáis definido previamente) y probar.

Si tenéis algún problema, mirad en los ficheros de log del heartbeat (/var/log/ha-log y /var/log/ha-debug) de los dos nodos, y probad a parar y arrancar el openfiler en los dos nodos, para ver que errores genera.

Ahora podemos exportar con iSCSI, de manera que con los ESXi podemos adjuntar el storage en dos o más servidores. Esto nos sirve para que si uno de los dos “muere”, podamos arrancar la máquina virtual directamente en el otro, tal y como estaba cuando se paró.

Bueno aquí os dejo este Post esta semana y espero poder volver a estar con vosotros la próxima semana para contaros algo nuevo siempre y cuando desde mi humilde opinión.

Un saludo

Posted in Publicaciones, Software, reviews, vSphereComments (10)

Como crear un Cluster SAN con Openfiler – Parte I


¿Hola que tal de nuevo?. Pido mis disculpas a José María y todos nuestros lectores por el retraso en mis POSTS ya que he tenido un ligero contratiempo a lo largo de este mes que me ha hecho ir más lento con vosotros de lo que yo quisiera.

Una vez explicado esto, quería haceros llegar algo que ya he probado y que me ha sorprendido por su funcionamiento con un programa de almacenamiento SAN como es Openfiler (Código Abierto). Como realizar un Cluster entre SAN con Openfiler para la redundancia de nuestras VMs?.

Mirando en varios Blogs y otros donde ponían como realizarlo (HOW to) os transmito paso a paso como realizarlo. Aunque cabe reseñar antes de empezar, que todo se basa en el protocolo DRDB, el cual es básicamente una replicación continua vía TCP/IP mediante nuestra red Ethernet.

Lo primero es descargar e instalar openfiler en las dos máquinas. Hay una imagen para x86 o para x86_64 según las máquinas de que dispongáis. Durante la instalación, haced las particiones idénticas en los dos servidores, y cuando reiniciéis, os tendréis que asegurar que no se montan las particiones que se van a replicar entre los dos servidores. En mi caso, hice el siguiente particionado:

• /dev/hda1 — /boot – 150MB
• /dev/hda2 — / — 10GB
• /dev/hda3 – swap – 1024MB
• /dev/hda5 – 512MB – Será donde guardemos los ficheros de config para el cluster.
• /dev/hda6 – 12,9 GB – Haremos un share SMB
• /dev/hda7 – 12,9 GB – La usaremos como target iSCSI para VMWare

Para que nos quede un poco mas claro, las particiones que replicaremos serán las de datos y la de configuración del cluster. Las de sistema no será necesario replicarlas ya que el sistema está instalado en ambos nodos. Aseguraos también de que los dos nodos resuelven correctamente el nombre del otro y opcionalmente, montad la autentificación por claves de ssh, para no tener que escribir el password cada vez que hagáis un scp.

DRBD

Montar drbd es bastante sencillo. Lo primero que tenéis que hacer es aseguraros de que las particiones estén vacías, ya que es muy probable que durante la instalación hayáis creado un sistema de ficheros sobre ellas. Si fuese así:

dd if=/dev/zero of=/dev/hdaX bs=1M count=1

Con esto borráis las particiones y las dejáis impolutas para que podáis empezar a replicar. Lo siguiente, editamos el fichero /etc/drbd.conf en el nodo 1. Ahí tendremos que especificar un par de opciones generales y los arrays que váis a crear:

Ejemplo del fichero de configuración.

Luego lo copiamos al nodo 2. Una vez tenemos el fichero de configuración podemos crear los arrays (esto hay que hacerlo en ambos nodos):

• drbdadm create-md cluster_metadata
• drbdadm create-md vg0drbd
• drbdadm create-md vg1drbd

Y arrancamos el servicio drbd en los dos nodos. Si miráis el fichero /proc/drbd, veréis que el estado de los discos es inconsistente y que ambos nodos estan como secundarios. Así que en el nodo 1 hacéis:

• drbdsetup /dev/drbd0 primary -o
• drbdsetup /dev/drbd1 primary -o
• drbdsetup /dev/drbd2 primary –o

Con esto hemos puesto al nodo 1 como primario en todas las particiones que gestiona drbd. Ahora si miráis el /proc/drbd, veréis como está replicando los datos. Ahora hay que añadir drbd al inicio del sistema y ya de paso, creamos el sistema de ficheros en la partición que nos guardará los ficheros de configuración del cluster.

• chkconfig –level 2345 drbd on (en ambos nodos)
• mkfs.ext3 /dev/drbd0 (en el nodo 1)

En este punto, con los arrays creados, nos referiremos siempre al los dispositivos drbd para I/O para cualquier operación con discos.
Siguiente, editamos el fichero /etc/lvm/lvm.conf y cambiamos el filtro de esto:

• filter = [ "a/.*/" ]

a esto:

• filter = [ "r|/dev/hda*|" ]

y procedemos a crear el physical volume sobre drbd1 (el otro sera sobre drbd2, ya que el 0 no será gestionado por lvm).

• pvcreate /dev/drbd1

En la siguiente parte, te contare la parte del heartbeat y de como terminar la configuración de drdb.

Hasta la próxima semana.

Posted in ESX, ESXi, Estrategia, Publicaciones, Software, VMware, vSphereComments (10)

Page 1 of 11

Sigue el blog Virtualización en Español

Blog Sponsors

101 Secretos de VMware vSphere

101 Secretos de VMware vSphere por Jose Maria Gonzalez

Descubre todos los secretos de VMware vSphere 4 y aprueba el examen de certificación oficial VMware VCP-410 GARANTIZADO. Regístrate y recibe un capitulo del libro totalmente gratuito

 

Consigue una copia gratis de mi eBook



VMware Site Recovery Manager 1.1 download gratis 

Nombre:
Email:


Mi Empresa

JmG Virtual Consulting, expertos en Servicios y Soluciones de Virtualizacion

 

Anuncios

Info

El Blog de Virtualizacion en Español via RSS

 

Jose Maria Gonzalez en Linked

 

Subcríbete al blog

Introduce tu email::

Delivered by FeedBurner

 

Soporta el Blog

Soporta el Blog de Virtualizacion en Español

 

Sígueme en Twitter

Sigue el Blog de Virtualizacion en Español en Twitter