Cluster Linux

download Cluster Linux

If you can't read please download the document

Transcript of Cluster Linux

Pasos para crear un clusterAutor: Sergio Gonzlez Gonzlez

ResumenDocumento en el que se explican los pasos necesarios, sin entrar en profundidad, para montar dos tipos de clusters: de alta disponibilidad (HA) y de alto rendimiento (HP).

Tabla de contenidos1. Introduccin1.1. Tipos de clusters: conceptos bsicos2. Cluster de alta disponibilidad, Ultra Monkey2.1. Componentes de Ultra Monkey2.2. Consideraciones previas, el problema de los datos2.3. Instalacin de Ultra Monkey3. Cluster de alto rendimiento, OpenMosix3.1. ClusterKnoppix, un cluster con un Live CDA. Sobre este documentoBibliografa1. IntroduccinLa finalidad de este documento es explicar de forma breve cmo montar dos tipos de clusters: aquellos destinados a la alta disponibilidad y los destinados al alto rendimiento. El primer tipo utilizar las tecnologas: Ultra Monkey: (HeartBeat, LVS, Ldirectord, MON) y NTP, entre otras; y el segundo: OpenMosix. Este documento est basado en la rama de desarrollo de la distribucin Debian GNU/Linux, ms conocida como Sid. Aunque los pasos que aqu se detallan son fcilmente adaptables a otras distribuciones de GNU/Linux. Tambin se destaca que para leer este documento se han de poseer unos conocimientos avanzados en administracin de sistemas GNU/Linux, ya sean para configurar aspectos como la red, el ncleo Linux o distintas partes del sistema. Aspectos que no entran dentro de este artculo y de los cuales existe una documentacin muy extensa, como la que se lista en el apartado: Documentacin general sobre GNU/Linux de la Bibliografa. 1.1. Tipos de clusters: conceptos bsicosNormalmente, al disear un cluster se piensa en solucionar alguno de los siguientes problemas:Mejora de rendimiento

Abaratamiento del coste

Distribucin de factores de riesgo del sistema

Escalabilidad

Para solucionar este tipo de problemas, se han implementado distintas soluciones. Aqu veremos dos de ellas: cluster de alta disponibilidad y de alto rendimiento. Nota

Los clusters de alta disponibilidad son bastante ortogonales a los clusters de alto rendimiento, en lo relativo a funcionalidad. Los clusters de alta disponibilidad pretenden dar servicios 24*7, de cualquier tipo, son clusters donde la principal funcionalidad es estar controlando y actuando para que un servicio, o varios, se encuentren activos durante el mximo perodo de tiempo posible.

Nota

Los clusters de alto rendimiento han sido creados para compartir el recurso ms valioso de un ordenador: el tiempo de proceso. Generalmente se utilizan en ambientes cientficos o en grandes empresas, donde se utilizan para la compilacin o renderizacin. Cualquier operacin que necesite altos tiempos de CPU y millones de operaciones, puede ser utilizada en un cluster de alto rendimiento, siempre que se encuentre un algoritmo que sea paralelizable. Existen clusters que pueden ser denominados de alto rendimiento tanto a nivel de sistema como a nivel de aplicacin. A nivel de sistema tenemos openMosix (el que trataremos en esta documentacin), mientras que a nivel de aplicacin se encuentran otros como MPI, PVM, Beowulf y otros muchos. En cualquier caso, estos clusters hacen uso de la capacidad de procesamiento que pueden tener varias mquinas.

2. Cluster de alta disponibilidad, Ultra MonkeyActualmente existen muchos proyectos destinados a proveer de alta disponibilidad a un sistema, uno de ellos es Ultra Monkey (es el que se ha utilizado como base para esta documentacin). Ultra Monkey es un proyecto que integra distintas herramientas de Software Libre para conseguir balanceo de carga y alta disponibilidad en redes de rea local. Estas herramientas son: LVS, HearBeat, Ldirectord y MON, que se definirn en los siguientes apartados. 2.1. Componentes de Ultra Monkey2.1.1. LVS (Linux Virtual Server)LVS se implementa como un conjunto de parches al kernel Linux y un programa de espacio de usuario denominado ipvsadm. El sistema que tiene instalado LVS es denominado director o balanceador de carga, cuya funcin no es otra que balancear las peticiones de red que recibe entre un conjunto de servidores reales que se encuentran detrs de l. LVS funciona a nivel TCP/IP, lo que se conoce como un conmutador de nivel 4. Lo que ve LVS son direcciones y puertos de origen y destino, y toma decisiones para balancear la carga con esta informacin. LVS toma las decisiones cuando se abre una conexin (SYN), manteniendo una tabla de conexiones, para saber a que servidor real[1] enviar un paquete perteneciente a una conexin ya establecida. Por lo tanto, el balanceo de carga que realiza LVS tiene, en principio, granularidad[2] a nivel de conexin. LVS permite balancear muchos protocolos distintos, en principio puede balancear cualquier protocolo que trabaje en un solo puerto, y puede trabajar con protocolos que usen varios puertos, mediante persistencia o marcas de firewall. Cuando se usan servicios persistentes, cada entrada en la tabla de LVS ya no corresponde a una conexin TCP (direcciones y puertos de origen y destino), sino que slo usa las direcciones para identificar una conexin (se pierde granularidad). Se puede usar iptables o ipchains para marcar los paquetes pertenecientes a un servicio virtual (con una marca de firewall) y usar esa marca para que LVS identifique los paquetes pertenecientes al servicio virtual. LVS se ha usado con HTTP, HTTPS, Telnet, FTP, Squid, servidores de streaming QT, Real y Windows Media, incluso se ha empezado a aadirle soporte para IPSec (FreeSWAN). LVS realiza balanceo de carga y facilita la alta disponibilidad entre los servidores reales (si alguno deja de funcionar, se elimina del cluster mediante ipvsadm; cuando vuelva a estar operativo, se aade de nuevo con ipvsadm). Sin embargo, el balanceador de carga pasa a ser un SPOF[3], si se quiere alta disponibilidad se tiene que aadir un balanceador de respaldo y usar software de alta disponibilidad que le permita tomar el papel del balanceador de carga principal, esto lo conseguimos con HearBeat. 2.1.2. HearBeatEsta tecnologa implementa heartbeats, cuya traduccin directa sera: latidos de corazn. Funciona enviando peridicamente un paquete, que si no llegara, indicara que un servidor no est disponible, por lo tanto se sabe que el servidor ha cado y se toman las medidas necesarias. Dichos latidos se pueden enviar por una linea serie, por UDP o por PPP/UDP. De hecho los desarrolladores de HeartBeat recomiendan el uso de puertos serie por varias razones, entre las que destacan que estn aislados de las tarjetas de red. Tambin incluye toma de una direccin IP y un modelo de recursos, incluyendo grupos de recursos. Soporta mltiples direcciones IP y un modelo servidor primario/secundario. Se ha probado satisfactoriamente en varias aplicaciones, como son: servidores DNS, servidores proxy de cach, servidores web y servidores directores de LVS. El proyecto LVS recomienda HeartBeat para aumentar la disponibilidad de su solucin, pero no es parte de LVS. En Linux-HA Heartbeat es un servicio de bajo nivel. Cuando un ordenador se une al cluster, se considera que el ordenador se ha unido al canal de comunicaciones, por lo tanto late; cuando sale, implica que ha dejado el canal de comunicaciones. Cuando un ordenador deja de latir y se considera muerto, se hace una transicin en el cluster. La mayora de los mensajes de manejo del cluster que no son heartbeats se realizan durante estas transiciones. Los mensajes de Heartbeat se envan por todas las lineas de comunicacin a la vez, de esta manera, si una linea de apoyo cae, se avisar de ese problema antes de que la linea principal caiga y no haya una lnea secundaria para continuar el servicio. Heartbeat tambin se preocupa por la seguridad, permitiendo firmar los paquetes con CRC de 32 bits, MD5 y SHA1. Esto puede evitar el desastre que podra provocarse si un nodo no miembro se enmascarase como nodo miembro del cluster. El problema es que el entorno donde se ejecuta Heartbeat no debe parar nunca y con suerte ese entorno se mantendr comunicado y funcionando durante aos. Hay varias operaciones de mantenimiento de seguridad que necesitan ser efectuadas en ese tiempo, como pueden ser cambio de claves y de protocolos de autentificacin. Heartbeat est preparado para esos cambios disponiendo de ficheros para la configuracin. Heartbeat tiene el problema, si no se dispone de una lnea dedicada, aunque sta sea una lnea serie, al tener un trfico que aunque pequeo es constante, suele dar muchas colisiones con otros trficos que puedan ir por la misma red. Por ejemplo, openMosix y Heartbeat en una misma red que no tenga gran ancho de banda no funcionan bien, sobre todo si hay bastantes nodos, pues los heartbeats se envan de cualquier nodo a cualquier nodo, por lo que podran llegar a ser un trfico voluminoso. 2.1.3. LdirectordPensado especialmente para ser usado junto con LVS, utiliza Heartbeat. Monitoriza que los servidores reales sigan funcionando peridicamente, enviando una peticin a una url conocida y comprobando que la respuesta contenga una cadena concreta. Si un servidor real falla, entonces el servidor es quitado del conjunto de servidores reales y ser reinsertado cuando vuelva a funcionar correctamente. Si todos los servidores fallan, se insertar un servidor de fallos, que ser quitado una vez que los servidores vuelvan a funcionar. Tpicamente, este servidor de fallos es el propio host desde el que se realiza el monitoraje. 2.1.4. MON (Service Monitoring Daemon)Mon es un software para la monitorizacin del sistema. Mon permite definir una serie de alarmas y acciones a ejecutar cuando un servicio deja de funcionar. Mon se utiliza ampliamente como componente de monitorizacin de recursos para Heartbeat. Mon se compone de dos partes:Monitores: Son programas (escritos normalmente en Perl) que se ejecutan peridicamente para comprobar el estado de un servicio. Devuelven xito o fallo. Hay muchos monitores escritos, y para una gran variedad de servicios, y tambin se pueden escribir monitores nuevos.

El demonio mon: Lee un fichero de configuracin, que especifica los nodos/servicios que hay que monitorizar y con que frecuencia. Tambin especifica las acciones (alertas en la terminologa de mon) a realizar cuando un nodo/servicio deja de responder o se recupera. Estas alertas tambin suelen ser scripts en Perl.

2.2. Consideraciones previas, el problema de los datosEn un cluster que ofrezca algn servicio en red se supone que cada servidor debe poseer los mismos datos, por ejemplo, una granja de servidores web debera compartir las mismas pginas web, un cluster de servidores POP debera compartir los mismos mensajes de correo, etc. Esto crea un problema Cmo se hace que los nodos compartan los mismos datos, sin dar lugar a conflictos? Como en todo, para este problema van a existir diversas soluciones. La mejor solucin depender de cul sea el problema concreto. Por ejemplo, si tenemos un sitio web con un contenido que no cambia a menudo, puede ser suficiente hacer mirroring cada cierto tiempo, si tenemos varios sitios web que cambian continuamente de contenido, esta solucin puede no ser tan buena. De todas formas, para el ejemplo que aqu mostraremos, vamos a suponer que cada servidor real posee sus propios datos. 2.3. Instalacin de Ultra MonkeyLos pasos que vamos a realizar para instalar Ultra Monkey son los siguientes: Configurar las fuentes de APT

Actualizar la configuracin de los mdulos

Actualizar el kernel

Actualizar el gestor de arranque

Reiniciar

Instalar los paquetes restantes

Configurar el sistema

2.3.1. Configurar las fuentes de APTPartiendo de una distribucin Debian GNU/Linux correctamente instalada, el primer paso que hemos de realizar, es aadir las siguientes fuentes a nuestro /etc/apt/sources.list: deb http://www.ultramonkey.org/download/2.0.1/ sid maindeb-src http://www.ultramonkey.org/download/2.0.1 sid main

Estas dos lneas nos van a proveer de los paquetes (tanto en formato fuente como en binario) necesarios para poner en marcha un sistema de alta disponibilidad con Ultra Monkey. Importante

Aunque las instalacin la realizaremos sobre Sid, la distribucin en desarrollo de Debian, los mismos pasos se pueden seguir para Woody, la distribucin estable de Debian; la nica diferencia son las fuentes a aadir. En caso de utilizar la distribucin estable, hemos de aadir las siguientes fuentes a nuestro /etc/apt/sources.list: deb http://www.ultramonkey.org/download/2.0.1/ woody maindeb-src http://www.ultramonkey.org/download/2.0.1 woody main

Ahora actualizamos la base de datos de paquetes de nuestra distribucin con el siguiente comando: # apt-get update

2.3.2. Actualizar la configuracin de los mdulosComo el ncleo que instalaremos a continuacin usa una imagen initrd, que provee los mdulos necesarios para arrancar el sistema, es especialmente importante que la configuracin de los mdulos de su sistema est al da. En particular, es necesario que cualquier mdulo necesario para arrancar el sistema, como los controladores SCSI, estn presentes en su /etc/modules. Una vez aadidos los mdulos necesarios al archivo anterior, ejecute update-modules antes de instalar el ncleo. 2.3.3. Actualizar el kernelUltra Monkey pone a su disposicin LVS (Linux Virtual Server), que no est disponible en el ncleo por defecto de la distribucin Debian Sid. Por este motivo, se necesita un ncleo modificado. Es recomendable que instale este ncleo tanto en los ordenadores destinados a ser directores, como en los servidores reales. Este ncleo provee la posibilidad de ocultar sus interfaces para que no respondan a las peticiones arp[4]. La forma ms fcil de hacer esto es instalar uno de los ncleos empaquetados que provee Ultra Monkey para Debian GNU/Linux. Estos se pueden instalar con apt-get ejecutando uno de los siguientes conjuntos de comandos[5]: Arquitectura 386:

# apt-get install kernel-image-2.4.20-3-ipvs-386

# apt-get install kernel-headers-2.4.20-3-ipvs-386

# apt-get install kernel-pcmcia-modules-2.4.20-3-ipvs-386

Arquitectura Pentium:

# apt-get install kernel-image-2.4.20-3-ipvs-586tsc

# apt-get install kernel-headers-2.4.20-3-ipvs-586tsc

# apt-get install kernel-pcmcia-modules-2.4.20-3-ipvs-586tsc

Arquitecturas Pentium Pro, Celeron, Pentium II, Pentium II o Pentium IV:

# apt-get install kernel-image-2.4.20-3-ipvs-686

# apt-get install kernel-headers-2.4.20-3-ipvs-686

# apt-get install kernel-pcmcia-modules-2.4.20-3-ipvs-686

Arquitecturas SMP Pentium Pro, Celeron, Pentium II, Pentium II y Pentium IV:

# apt-get install kernel-image-2.4.20-3-ipvs-686-smp

# apt-get install kernel-headers-2.4.20-3-ipvs-686-smp

# apt-get install kernel-pcmcia-modules-2.4.20-3-ipvs-686-smp

Arquitecturas AMD K6, K6-II o K6-III:

# apt-get install kernel-image-2.4.20-3-ipvs-k6

# apt-get install kernel-headers-2.4.20-3-ipvs-k6

# apt-get install kernel-pcmcia-modules-2.4.20-3-ipvs-k6

Arquitecturas AMD Duron o Athlon:

# apt-get install kernel-image-2.4.20-3-ipvs-k7

# apt-get install kernel-headers-2.4.20-3-ipvs-k7

# apt-get install kernel-pcmcia-modules-2.4.20-3-ipvs-k7

Arquitecturas SMP AMD Duron o Athlon:

# apt-get install kernel-image-2.4.20-3-ipvs-k7-smp

# apt-get install kernel-headers-2.4.20-3-ipvs-k7-smp

# apt-get install kernel-pcmcia-modules-2.4.20-3-ipvs-k7-smp

De todas maneras, si desea compilar su propio ncleo, ha de tener en cuenta que necesita los parches IPVS y Hidden Interface para ejecutar Ultra Monkey. Estos parches se pueden instalar desde paquetes deb usando el comando apt-get. Para ello teclee: # apt-get install kernel-patch-2.4-hidden-interface

# apt-get install kernel-patch-2.4-ipvs

Los pasos necesarios para parchear y compilar en ncleo para obtener el soporte de LVS no se vern en esta documentacin. De todas formas, si est familiarizado con este tipo de actividades, no le ser muy difcil obtenerlo. 2.3.4. Actualizar el gestor de arranqueEl ncleo instalado hace uso de una imagen initrd para proveer los mdulos en arranque del sistema. Debido a esto, debe asegurarse que su archivo de configuracin de LILO: /etc/lilo.conf, posea una lnea para el initrd y que se haya actualizado para el ncleo actual. Un ejemplo de un archivo /etc/lilo.conf que cumple estas caractersticas se puede ver a continuacin: lba32boot=/dev/sdaroot=/dev/sda3install=/boot/boot-menu.bmap=/boot/mapdelay=20vga=normal

default=Linux

image=/boot/vmlinuz-2.4.20-3-ipvs-686label=Linuxread-onlyinitrd=/boot/initrd.img-2.4.20-3-ipvs-686

image=/vmlinuzlabel=LinuxOLDread-onlyoptional

Una vez que ha actualizado su archivo /etc/lilo.conf, ejecute: # /sbin/lilo -v

2.3.5. ReiniciarComo se ha instalado un nuevo ncleo, necesitar reiniciar el sistema para que los cambios tengan efecto. Para ello ejecute: # /sbin/shutdown -r now

2.3.6. Instalar los paquetes restantesUltra Monkey viene con algunos paquetes adicionales. Estos paquetes slo son necesarios para aquellos sistemas que van a ejecutar HearBeat y pueden ser obtenidos usando apt-get, como se muestra a continuacin: # apt-get install ultramonkey

Durante la instalacin de los paquetes necesarios, se realizarn una serie de preguntas con el objeto de configurar su sistema. Ha de responderlas de forma que se adapten a sus requerimientos y sistema[6]. Hemos de tener especial cuidado a la hora de configurar el paquete ipvsadm, durante la instalacin del mismo le preguntar para configurar el archivo /etc/ipvsadm.rules. Ha de responder , ya que de sino interferir con la forma que tiene Ultra Monkey de configurar ipvsadm. Pantalla de configuracin 1 de ipvsadmPantalla de configuracin de ipvsadmOtra de las preguntas que le har el sistema al instalar ipvsadm ser para configurar el demonio de sincronizacin de IPVS. Es recomendable que no seleccione nada para la configuracin del demonio de sincronizacin, ya que en algunos casos interfiere en la forma en que Ultra Monkey ejecuta LVS. Pantalla de configuracin 2 de ipvsadmPantalla de configuracin de ipvsadmPara finalizar, instalaremos el paquete mon y el paquete ntp-simple[7], para lo cual ejecutaremos: # apt-get install mon ntp-simple

Una vez finalizada la instalacin, slo nos queda configurar MON para adaptarlo a nuestras necesidades. Puede consultar la pgina web de la aplicacin, as como leer la documentacin que ha instalado el propio paquete (/usr/share/doc/mon/) y ver los scripts de ejemplo que provee dicho paquete (/usr/share/doc/mon/examples). 2.3.7. Configurar el sistemaLa pgina de Ultra Monkey provee de una gran variedad de ejemplos y formas de configuracin de un cluster de alta disponibilidad. Por este motivo, remitimos a la pgina de topologas de dicho proyecto para saber ms acerca de las distintas posibilidades y formas de configurar nuestro cluster. 3. Cluster de alto rendimiento, OpenMosixLos pasos para montar un cluster de alto rendimiento con OpenMosix son muy simples: Parchear, configurar y compilar el ncleo Linux con OpenMosix. Una forma de hacerlo, es instalando el parche de OpenMosix para el ncleo, mediante apt-get. Para ello teclee:

# apt-get install kernel-patch-openmosix

Una vez instalado el ncleo, hemos de reiniciar el sistema. El segundo paso es instalar las utilidades de administracin para OpenMosix, para ello tecleamos:

# apt-get install openmosix

Adicionalmente podemos instalar el programa openMosixview:

# apt-get install openmosixview

Una vez tenemos todas las aplicaciones necesarias, slo nos queda configurar el cluster para adaptarlo a nuestras necesidades. Como los pasos para realizar esta tarea son muy simples y estn perfectamente detallados en el The OpenMosix HOWTO, no los voy a repetir aqu, por lo que le remito a dicho manual para leerlos. 3.1. ClusterKnoppix, un cluster con un Live CDAun siendo extremadamente sencilla la instalacin de OpenMosix, se puede facilitar aun ms gracias a Win Vandersmissen. Win ha adaptado una distribucin KNOPPIX [8] para que nada ms arrancar, configure y ponga en funcionamiento un cluster con OpenMosix transparentemente al usuario. La distribucin se llama ClusterKnoppix. Para hacer uso de esta distribucin, no tenemos ms que grabar la imagen ISO en un CD y arrancar el ordenador con este CD en la unidad de CD-ROM. Despus de un rato, la distribucin habr detectado el hardware del ordenador, lo habr configurado y habr arrancado el cluster OpenMosix, buscando inmediatamente nuevos nodos (transparentemente), que sern aadidos al cluster en caso de ser encontrados. Aviso

Le recomiendo, que nada ms arrancar la distribucin, establezca una clave para el usuario knoppix. Esto se debe a que la distribucin ClusterKnoppix hace uso de SSH para la comunicacin entre nodos, y si no se ha establecido una clave para dicho usuario, ser imposible la comunicacin.Para realizar esto, abra una consola y teclee lo siguiente: $ sudo bash

# passwd knoppix

Tras lo cual, ya puede teclear una nueva clave para dicho usuario. Repita este procedimiento para cada nodo.

Nota

Para ver el estado del cluster, puede hacer uso de openMosixview, aplicacin que le permite configurar y administrar el cluster de una manera muy cmoda (vea el El manual para el clustering con openMosix para ms informacin). Arranque la aplicacin desde una consola, para ver los mensajes que lanza y para poder teclear la clave del usuario knoppix en las conexiones SSH que realiza.

Cmo montar un cluster con Linux En este POST voy a explicar varias cosas. Explicar que es un cluster para que sirve un cluster, como configurarlo y montar un cluster bajo un sistema Linux.

Que es un cluster?

Un cluster es un conjunto de ordenadores (nodos) que estan conectados entre si por medio de una red, comparten recursos con el objetivo de realizar tareas y funciones como si fuesen un nico ordenador, (memoria distribuida).

Para que sirve un cluster?

Para cuando queramos realizar tareas que necesiten grandes requerimientos de memoria y CPU y para ahorrarnos horas de trabajos en tareas y operaciones.

Que necesitamos para montar un cluster?

Se necesita mnimo 2 nodos (ordenadores) y un medio de comunicacin entre ellos para que puedan compartir los recursos y las tareas, (red).....::Proceso de Instalacin ::....
Vamos a necesitar: 2 PC con Linux, Red, Puerto serie, el paquete HeardBeat y un sistema de ficheros con Journaling.

Que es el paquete de HeartBeat?

Es un paquete de software que funciona de manera similar al System V o init, pero en vez de un solo ordenador, pasara a ejecutar los servicios en los nodos, basndoses en que no le llegan respuestas, stas se hacen por medio de ping y por pulsaciones del cable serie.

Que es STONITH?

Es una tcnica usada por HeartBeat, que se asegura que un servidor supuestamente muerto no interfiera en el funcionamiento del cluster. Concretamente significa que el servidor secundario nota que el primario no funciona y este le hara un DDOS al primario para asegurarse que ha sido un falso positivo y el nodo secundario tomara el control.

Que son los Balanceadores de Carga?

Permite optimizar la utilizacin de los recursos de un cluster mediante la asignacin de tareas a los nodos con menor carga de trabajo, o con mayor cantidad de recursos libres.
El balanceo de carga se realiza mediante la calendarizacin de trabajos o a travs de la migracin de procesos.

Preparar el Hardware.

Instalamos los discos, pero sin crear todava ningn sistema de ficheros.
Instalaremos las NICs y las configuraremos con IPs privadas de la misma subred en los rangos 192.168.0.0/16 o el rango 10.0.0/8.
Comunicaremos los PCs entre s con un cable serial.
Conectamos cada ordenadora su UPS.

Instalar el Software.

Necesitaremos varios paquetes de software:
heartbeat-1.0.3
heartbeat-pils-1.03
heartbeat-stonith-1.0.3

Cada uno de ellos se encuentran en los repositorios de cada distribucion, o se incluye como paquete en los CDs de instalacin. Podemos usar por ejemplo el apt-get para la instalacin.

Por ltimo nos queda instalar el servicio que queramos dar, por ejemplo, samba, apache...

Configurando DRBD.

DRBD se configura en el fichero /etc/erbd.conf

El cdigo:resource drbd0 {protocol=Cfsckcmd=/bin/truedisk {disk-size=80418208do-panic}net {sync-rate=8M # bytes/sectimeout=60connect-int=10ping-int=10}on Zeus { # Zeus es el nombre del servidor principaldevice=/dev/nb0disk=/dev/hda1address=192.168.1.1port=7789}on SolarUX { #SolarUX es el nombre del servidor secundariodevice=/dev/nb0disk=/dev/hda1address=192.168.1.2port=7789}}
Crear el sistema de ficheros.

Vamos a crear el sistema de ficheros para Zeus(servidor primario) es importante usar un sistema de fichero con journaling como ext3, reiserfs...

Crearemos 2 particiones del mismo tamao en el dispositivo /dev/nb0, los 2 servidores con reiserfs ya que se considera ms seguro.

Instrucciones a ejecutar en Zeus.Root@Zeus:~# /etc/init.d/drbd start

Le respondemos "yes" para que nos ponga a Zeus como primario. Ahora crearemos el sistema de archivos y lo montamos:Root@Zeus:~# mkfs -t reiserfs /dev/nb0 datadisk /dev/nb0 start

Por ltimo si usamos una conexin Ethernet de 1 GB para la sincronizacin, cambiaremos los parmetros de este para que nos funcione en modo fullduplex.

Configurando Heartbeat.

Tiene 3 ficheros de configuracin:
1. ha.cf Configura informacin bsica del cluster.
2. haresources.cf Configura los grupos de recursos tipo init.
3. authkeys Configura la autentificacin de red.

ha.cf le aporta a heartbeat la informacin de configuracin bsica. Configura los nodos, pulsaciones serials, la manera de registrar los logs intervalo de tiempo muerto y pulsaciones.

Ejemplo de nuestro ha.cf:logfacility local7 # servicio de syslogkeepalive 1 #Intervalo pulsacinwarntime 2 #Pulsacin Tardadeadtime 10 # Tiempo control Fallosnice_failback onnode Zeus SolarUXping 10.10.10.254 # Direccin del Routerbcast eth0 eth1 #Broadcast Interfaces Heartbeatserial /dev/ttyS0 #Enlace Serial Heartbeatrespawn /usr/lib/Heartbeat/ipfailstonith_host Zeus apcsmart SolarUX /dev/ttyS1stonith_host SolarUX apcsmart Zeus /dev/ttyS1

Fichero /etc/ha.d/haresources.

Este fichero crea un grupo de recursos que en teora pertenecen a Zeus asociados a una IP virtual 10.10.10.20 y los recursos a servir.

1- NFS (Network File System)
2- SAMBA (compartir archivos windows)
3- DHCP (asignacin dinmica de IPs)
4- POSTFIX (servidor de correo electrnico)

Cdigo:Zeus 10.10.10.20 datadisk::drbd0 nfslock nfsserver smb dhcpd postfix

Heartbeat administra perfectamente la mayora de los servicios que vienen en los V System init llamados tambin scripts de arranque, sin embargo, es que una de las condiciones que tiene heartbeat para que administre los scripts, es que debe de tener el mismo nombre en todos los nodos.

Fichero /etc/ha.d/authkeys.

Contiene el mtodo de autenticacin basado en (sha1) con la clave que se usar para firmar los paquetes. Este fichero tiene que ser idntico en todos los servidores, y ningn usuario debe de tener acceso a la lectura excepto el root:auth 11 sha1 RandomPasswordfc970c94efb

Configuracin de los servicios.

Tenemos que deshabilitar los servicios para que no sean controlados por init sino por heartbeat. Esto lo conseguiremos con el siguiente comando:Root@Zeus:~# chkconfig -del nfslock nfsserver smb dhcpd postfix

Configurando el /etc/fstab.

Tenemos que tener muchsimo cuidado con la particin /home, eliminamos dicho fichero y creamos esta:/dev/nb0 /home reiserfs noauto 0 0

Nota: si home ya est montado lo desmontamos con umount /home

Configuracin del fichero /etc/hosts.

Si no tenemos un servidor DNS corriendo en nuestra red, tendremos que usar nuestro archivo /etc/hosts quedando de esta manera:10.10.10.20 Cluster # IP virtual cluster192.168.1.1 Zeus #Servidor Primario192.168.1.2 SolarUX # Servidor Segundario (Nodo)

Montando todo el sistema.

Ahora vamos a configurar el servidor secundario para que monte /home desde NFS aadiendo lo siguiente en /etc/fstab.Cluster:/home /home nfs defaults 0 0

Una vez est la particin NFS montada creamos el directorio /home/HA.config y creamos la siguiente estructura de directorios:/etcpostfix/samba/exportsdhcpd.conf/varlib/dhcpdsambanfsspool/postfix/mail/

Despus de montar la estructura de directorios tendramos que crear enlaces simblicos por ejemplo:ln -s /home/HA.config/etc/samba/smb.cf /etc/samba/smb.cf

Ahora desmontamos /home de la siguiente manera:Root@Zeus:~# datadisk /dev/nb0 stopRoot@Zeus:~# /etc/init.d/drbd stop

Tambin podemos configurar SAMBA para que escuche en la interface del cluster, modificando dentro de la directiva {global} de /etc/samba/smb.cf

Cdigo:

Interfaces = 127.0.0.1/8 10.10.10.20/24 Comprobando si todo funciona DRBD. Arrancamos drbd tanto en Zeus como en SolarUX con:Root@Zeus:~# /etc/init.d/drbd start

Una vez iniciado comprobaremos en Zeus si ha arrancado con:Root@Zeus:~# cat /proc/drbd

Veramos algo as 0: cs:SyncingAll st:Primary/Secondary. Esto significa que todo ha sido arrancado perfectamente y que una sincronizacin completa est en marcha. Esta sincronizacin tarda un poco y se puede ver el progreso en /proc/drbd heartbeat:Root@Zeus:~# /etc/init.d/Heartbeat startRoot@Zeus:~# ifconfig |grep 10.10.10.20Root@Zeus:~# /etc/init.d/nfslock statusRoot@Zeus:~# /etc/init.d/smb statusRoot@Zeus:~# /etc/init.d/dhcpd statusRoot@Zeus:~# /etc/init.d/postfix status

/home tiene que estar montado en cluster y todos los servicios tendran que estar corriendo Delegando Funciones. Ahora heartbeat tiene que ser capaz de retransmitir todos los trabajos a SolarUX, lo haremos con:Root@Zeus:~# /usr/sbin/Heartbeat/hb_standby

Ahora hacemos los pasos de arriba de heartbeat en SolarUX y comprobamos si todo funciona correctamente, si es as, delegamos funciones a Zeus.Root@SolarUx:~# /usr/sbin/Heartbeat/hb_standby

Comprobaremos en Zeus y si es as ya casi hemos terminado.

Desconectamos el cable de red a Zeus y en unos segundos SolarUX tendra que responder a la IP virtual 10.10.10.20 y darnos servicios.

Crear un Cluster en UBUNTU

martes, 24 de agosto de 2010

Publicado por Sistemas Operativos Distribuidos en mircoles, 24 de junio de 2009Paso 6 Se instala el paquete OpenSSH Server


Con la instruccin sudo apt-get install OpenSSH -Server. O desde Gestor de paquetes Synaptic se escribe en la opcin de buscar el nombre del paquete que OpenSSH-Server.


Paso 7 Comuniacin entre nodos(NODO MAESTRO)

Cambias de usuario con la instruccin
su - mpiu
despus te vas al HOME del usuario mpiu con la instruccin :
cd /$HOME
despus de entrar al HOME se crea la llave DSA para mpiu con la instruccin:
sudo ssh-keygen -t dsa
Cuando se crea la llave, enviar tres preguntas las cuales debers dejar en blanco (dar solo enter)
Se agregarn las llaves para dar permisos.
Las claves se encontrarn dentro del directorio de trabajo que es
/mirror /mpiu
Para entrar al ssh, tecleamos
cd .ssh
y dentro de ese directorio se pone la siguiente instruccin:
cat id_dsa.pub >> authorized_keys.

NODO CLIENTE
Para comprobar que la instruccin se realiz de manera correcta el nodo cliente tendr que hacer una conexin con el nodo servidor con la siguiente instruccin:
ssh hostname o bien
ssh nombre de la maquina del nodo maestro

NOTA: Verificar que el servicio de ssh este corriendo en el servidor
Adems cuando se haga la conexin no deber pedir contrasea y entrar automticamente al nodo maestro.

8.- Instalacin de GCC
Para instalar el paquete build-essential ejecuta en la terminal la siguiente instruccin:
Sudo apt-get install build- essential
O en la paquetera de Synaptic.

9.- Instalacin de otras paqueteras
Se deber instalar el siguiente paquete lam-runtime
Sudo apt-get install lam-runtime
O en la paquetera de Synaptic.

10.- Instalacin de MPICH2
Se descargar el paquete
MPICH2 desde la pagina siguiente:
www-unix.mcs.anl.gov/mpi/mpich
se tendrn que extraer los archivos de MPICH2 , y se crear una carpeta llamada MPICH dentro de el directorio mirror con la siguiente instruccin :
/mirror $ mkdir mpich2
Y los archivos se extraen con la siguiente instruccin:
tar xvf mpich2-(y la versin de mpich que se descarg).
Despus de la descarga debern de entrar al $HOME y agregar las siguientes lneas al archivo bashrc esto es para agregar un PATH:
sudo gedit bashrc o bien
sudo vi bashrc
export PATH=/mirror/mpich2/bin:$PATH
export PATH
LD_LIBRARY_PATH=/mirror/mpich2/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
despus de cambiar el bashrc, tendremos que agregar esta ruta al document o environment , que se encuentra en el directorio /etc, para modificarlo tendremos que entrar a ese directorio con las siguientes instrucciones:
cd /etc
ya que estamos dentro del directorio etc ejecutamos la siguiente instruccin:
sudo gedit environment y le agregamos la siguiente ruta:
:/mirror/mpich2/bin
NOTA: SI NO FUNCIONA LA INSTRUCCIN GEDIT SE TENDRA QUE EJECUTAR LA SIGUIENTE :
Sudo vi environment.

A continuacin se tendr que reiniciar la mquina, para que los cambios sean reconocidos.
Ahora se configura el mpich con los siguientes pasos:
tendr que entrar a la carpeta que se cre cuando se extrajeron los archivos de MPICH.
Cuando entramos al directorio de mpich2-1.(versin encontrada) se tendr que ejecutar la siguiente instruccin:
./configure -- prefix= /mirror/mpich2
Es a la carpeta donde se guardaran los archivos de mpich.
Las siguientes instrucciones se ejecutaran para instalar el mpich.
Sudo make
Sudo make install.

Para comprobar que el MPICH esta bien instalado dentro del computador se ejecutaran las siguientes instrucciones:
Which mpd
Which mpiexec
Which mpirun
Nos tendr que dar la ruta de instalacin de cada uno. Si no la muestra quiere decir que el mpich esta mal instalado el mpich o bien esta mal configurado el bashrc o el environment.

11.- Crear el MPD
El mpd se crea dentro del directorio mpiu:
/mirror/mpiu
Ya estando dentro de este la instruccin que se ejecutar es la siguiente:
Sudo vi.mpd.conf
Dentro de este archivo se escribirn los nombres de los nodos participantes.
En el $HOME de mpiu se cre un documento llamado .mpd.conf en este cuando ejecutamos la siguiente instruccin
echo secretword=something >> ~/.mpd.conf
en el archivo se guard la palabra something lo comprobamos con la siguiente instruccin:
sudo vi .mpd.conf.
despus de checar que el archivo este bien, se ejecutara la siguiente instruccin:
chmod 600.mpd.conf.
para probar que los nodos estn compartidos y se har la prueba con el:
mpd & (se corre el demonio)
mpdtrace (muestra en que maquina esta corriendo)
mpdallexit (detiene o mata el proceso)
La instruccin para ejecutarla en mas maquinas es
Mpdboot -n 2 -f /mirror/mpiu/mpd.hosts
Mpd$
Mpdtrace (aqui tendr que msotrar el nombre de las maquinas donde va a correr)
Mpiexec -np 6 ./cpi
Corre y nos muestra los procesos y que estn corriendo en las maquinas.Publicado por Sistemas Operativos Distribuidos en Pasos Introductorios
1.-Identificar servidor (nodo maestro) y clientes (esclavos)
2.-Saber la direccin IP de cada lado, tanto servidor como cliente
A) Ver que el dominio sea el mismo, por ejemplo de la siguiente direccin el dominio sera el nmero 2: 192.168.2.130.
B) Tecle un ping en cada terminal (ping 192.168.2.130)
b.a) Identificando si existe no comunicacin
b.b) Si no existe entonces: ver los posibles factores que impiden conexin, cable de red e internet entre otros.
Ping de NODO MAESTRO -------ESCLAVO

Ping de ESCLAVO ------- NODO MAESTRO
3.-Verificar si cuenta con conexion a internet


Paso 1
Dar pings en cada Terminal
-En servidor poner ping + IP del esclavo
-En esclavo poner ping +IP del servidor


Paso 2 Selecciona la opcin Sistema, enseguida gestor de paquetes, click en repositorios y descargar.Aparecer una ventana en la cual, selecciona todas las opciones de arriba menos"CD-ROM".

Entrar al Directorio etc y se modifica el hosts agregando la IP del servidor.(Lado esclavo)

En este ejemplo en el hosts que se modifica es angie el cual es nodo esclavo al igual que teresita y el servidor es amsav. Al modificar se guarda.

Paso 3
Instalar el nfs-kernel-server en ambos nodos
Servidor ir a sistema despus elegir gestor de paquetes buscar nfs e instalar nfs-kernel-server el nfs-common lo da por default.
3.1 Ir a configuracin de los servicios y desactivar nfs-kernel-server(esclavo)
Paso 4
Crear una carpeta la cual se llame mirror dentro de usuario normal
Instruccin: sudo mkdir mirror

Paso5 (Ambos nodos) Crear un usuario (mpiu) que se encuentre dentro de la carpeta mirror
Instruccin: ir a sistema, grupos usuarios, aparece la siguiente pantalla:Al colocar el usuario y perfil debe seleccionar perfil administrador para que se apliquen todos los privilegios.No dar aceptar hasta verificar Avanzado
En avanzado en el directorio se colocar en carpeta mirror y en grupo se selecciona grupo Mpiuen dado caso que no aparezca grupo cancelar operacion e ir al paso siguiente: Agregamos grupo Mpiu y vemos que el Id grupo sea el mismo Id de Usuario

Al terminar este paso este es el resultado:
/mirror/mpiu/mpiu