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::[email protected]::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


Via http://feedproxy.google.com/~r/ElBlogDeVirtualizacionEnEspanol/~3/k6AoCRRwVvM/como-crear-cluster-san-con-openfiler-parte-ii-2.html

Related Posts with Thumbnails
Tagged with:  

Comments are closed.

Free WordPress Themes