Вы находитесь на странице: 1из 9

INFORME FINAL DEL PROTOTIPO: Cluster Beowulf de 16 Nodos

Dr. Isidro Robledo Vega Divisin de Estudios de Posgrado e Investigacin Instituto Tecnolgico de Chihuahua Febrero de 2009

1.- Introduccin
Dentro de los proyectos ejecutados previamente por el grupo de Automtica e Informtica Industrial se han desarrollado sistemas de inspeccin y control basados en visin de mquina para los cuales se ha seleccionado el tipo de hardware y sus interfases para interactuar con el sistema de gestin del taller ArquiTAM [1], generalmente los diseos del software se han planteado sobre una plataforma de programacin Windows. Preocupados por los cambios en la orientacin de los sistemas operativos de Microsoft hacia un ambiente de casa o negocio, hemos decidido migrar el desarrollo de nuestros sistemas a plataformas open source, que no sean dependientes del sistema Windows. En la actualidad existe un inters particular en el uso de herramientas open source para este tipo de aplicaciones, con muchas compaas, universidades y laboratorios deseando construir sistemas sofisticados sin tener la necesidad de comprar costosos sistemas operativos en tiempo real [2]. Nos dimos a la tarea de buscar la plataforma hardware ms apropiada para realizar la conversin de nuestros sistemas de software sobre plataformas open source. Debido a que el proyecto involucra otros aspectos de procesamiento que tienen que ver con cmputo distribuido decidimos construir un sistema de multiprocesamiento que permitiera cubrir las necesidades de las diferentes tareas involucradas. Tomado en cuenta diferentes opciones por costo y disponibilidad decidimos construir un clster de computadoras. Beowulf es un tipo de clster de computadoras para realizar Cmputo de Alto Desempeo. La caracterstica principal de un clster Beowulf es que utiliza componentes de bajo costo, los nodos son PCs de escritorio que se interconectan por medio de una red Ethernet y corren con Sistema Operativo Linux de libre distribucin. Es una alternativa accesible que permite el desarrollo de cmputo cientfico [3].

2.- Construccin fsica del Clster (Hardware)


Se decidi construir un clster Beowulf de 16 nodos con el sistema operativo Linux, especficamente la distribucin Fedora de 64 bits, para lo cual se adquirieron los siguientes componentes: 16 Tarjetas madre Foxconn 45CMX 16 Procesadores Pentium Core 2 Duo E6320 16 dimms de 1 GB de Memoria DDR 16 Discos duro SATA de 80 GB 16 Tarjetas de red Gigaethernet 16 gabinetes Alaska con fuente de 300 watts 1 Unidad de DVD Re-escribible 3 switches Gigaethernet de 8 puertos 3 Unidades de respaldo de energa

Se hizo el ensamble de cada uno de los 16 nodos que componen el clster con los componentes listados. Se realiz la conexin en red de los equipos y se designo un nodo maestro al que se le instal una unidad de DVD re-escribible. La Figura 1 muestra los gabinetes que contienen los 16 nodos del clster construido.

Figura 1.- Clster Beowulf del Laboratorio de Sistemas Inteligentes y Visin por Computadora.

3.- Instalacin del Sistema Operativo del Clster


El sistema operativo Linux tiene las siguientes caractersticas que lo hacen el ms popular: es monoltico, realiza procesamiento multitarea, maneja memoria virtual, maneja memoria paginada, cumple con la especificacin POSIX, se tiene libre acceso al cdigo fuente, soporta el ambiente de programacin GNU completo incluyendo gcc, g++, g77, gdb, gprof, emacs, y otros [4]. Existen diferentes distribuciones del sistema operativo Linux que son adecuadas para los clsters Beowulf, las ms populares son: Red Hat (www.redhat.com) o Enterprise Linux o Fedora (gratuito) Novell SuSE (www.novell.com) o SuSE Linux Enterprise o OpenSuSE (gratuito) Debian (www.debian.org) Gentoo (www.gentoo.org)

Canonical LTD - Ubuntu (www.ubuntu.com) Turbolinux (www.turbolinux.com) Mandriva (www.mandriva.com) Slackware (www.slackware.com)

Se pueden obtener los medios de instalacin desde el sitio web de la distribucin Linux seleccionada. Se seleccion Fedora de 64 bits para instalarlo en los nodos del clster ya que es una de las distribuciones que cuenta con mayor soporte de la comunidad de desarrollo de Linux. Se descarg el software directamente del sitio web de Red Hat y se instal directamente al nodo maestro desde la unidad de DVD. Los servicios bsicos instalados fueron: Servicios de Red TCP/IP y admnistradores de red; Fuentes del kernel; Compiladores y libreras de Lenguaje C, C++ y Fortran; editor de textos Emacs; Sistema X Windows con libreras de desarrollo; xntp para sincronizacin de tiempo; autofs para compartir sistemas de archivos automticamente; NFS server (knfsd, knfsd-clients); ssh y rsync.

4.- Configuracin del Nodo Maestro


Una vez instalado el nodo maestro se crea un directorio compartido en red con la distribucin de Linux a instalar en los nodos. Para hacer el directorio disponible por medio de la red se agreg la siguiente lnea al archivo /etc/exports
/Fedora 10.6.200.0/255.255.255.0(rw,no_root_squash)

Se usa el comando exportfs a para poner disponible el directorio. Para instalar la distribucin de Linux en los nodos esclavos, se prepar una memoria USB con los archivos necesarios para arrancar Linux y conectarlo al directorio NFS del nodo maestro donde se encuentran los medios de instalacin. Se modific el archivo /etc/hosts agregando los nombres de los nodos del cluster 10.6.200.1 10.6.200.2 10.6.200.3 10.6.200.4 10.6.200.5 10.6.200.6 10.6.200.7 10.6.200.8 10.6.200.9 10.6.200.10 10.6.200.11 10.6.200.12 lsivcc01.itchihuahua.edu.mx lsivcc02.itchihuahua.edu.mx lsivcc03.itchihuahua.edu.mx lsivcc04.itchihuahua.edu.mx lsivcc05.itchihuahua.edu.mx lsivcc06.itchihuahua.edu.mx lsivcc07.itchihuahua.edu.mx lsivcc08.itchihuahua.edu.mx lsivcc09.itchihuahua.edu.mx lsivcc10.itchihuahua.edu.mx lsivcc11.itchihuahua.edu.mx lsivcc12.itchihuahua.edu.mx lsivcc01 lsivcc02 lsivcc03 lsivcc04 lsivcc05 lsivcc06 lsivcc07 lsivcc08 lsivcc09 lsivcc10 lsivcc11 lsivcc12

10.6.200.13 10.6.200.14 10.6.200.15 10.6.200.16

lsivcc13.itchihuahua.edu.mx lsivcc14.itchihuahua.edu.mx lsivcc15.itchihuahua.edu.mx lsivcc16.itchihuahua.edu.mx

lsivcc13 lsivcc14 lsivcc15 lsivcc16

Se modificaron los archivos /etc/hosts.equiv y /etc/shosts.equiv agregando los nombres de todos los nodos del clster con el fin de permitir sesiones con ssh y rsync lsivcc01 lsivcc02 lsivcc03 lsivcc04 lsivcc05 lsivcc06 lsivcc07 lsivcc08 lsivcc09 lsivcc10 lsivcc11 lsivcc12 lsivcc13 lsivcc14 lsivcc15 lsivcc16

Para configurar la sincronizacin de tiempo, se debe activar la sincronizacin con un servidor de tiempo externo (para mayor informacin ver http://tf.nist.gov/service/its.htm). Se modific el archivo /etc/ntp.conf para permitir que el nodo maestro distribuya el tiempo en los nodos esclavos agregando las siguientes lneas: server time.cacr.caltech.edu broadcast 10.6.200.255 Para compartir la particin /scratch en la red se modific el archivo /etc/exports agregando la lnea:
/scratch 10.6.200.0/255.255.255.0(rw,no_root_squash)

Se configur el servicio autofs de la siguiente manera: se agreg la siguiente lnea al archivo /etc/auto.master
/data /etc/auto.beowulf --timeout 600

Se cre el archivo /etc/auto.beowulf con las lneas:

lsivcc01 lsivcc02 lsivcc03 lsivcc04 lsivcc05 lsivcc06 lsivcc07 lsivcc08 lsivcc09 lsivcc10 lsivcc11 lsivcc12 lsivcc13 lsivcc14 lsivcc15 lsivcc16

-fstype=nfs -fstype=nfs -fstype=nfs -fstype=nfs -fstype=nfs -fstype=nfs -fstype=nfs -fstype=nfs -fstype=nfs -fstype=nfs -fstype=nfs -fstype=nfs -fstype=nfs -fstype=nfs -fstype=nfs -fstype=nfs

lsivcc01:/scratch lsivcc02:/scratch lsivcc03:/scratch lsivcc04:/scratch lsivcc05:/scratch lsivcc06:/scratch lsivcc07:/scratch lsivcc08:/scratch lsivcc09:/scratch lsivcc10:/scratch lsivcc11:/scratch lsivcc12:/scratch lsivcc13:/scratch lsivcc14:/scratch lsivcc15:/scratch lsivcc16:/scratch

Se cre el directorio /home/local y se movi todo el contenido del directorio /usr/local a este directorio. Se cre un enlace simblico desde /usr/local hasta /home/local corriendo el siguiente comando
>ln -s /home/local /usr/local

Las libreras de software para cmputo paralelo como MPICH y PVM se instalan en /usr/local y quedarn disponibles en /home/local para todos los nodos. De esta forma solo se tiene que actualizar el software en el nodo maestro.

5.- Configuracin de los Nodos Esclavos


Se instal el sistema operativo Linux desde la ubicacin compartida en el nodo maestro, esto se llevo a cabo gracias a que se prepar una memoria USB con los archivos necesarios para el arranque de los nodos y la conexin por medio de la red hacia el directorio compartido con el sistema de instalacin en el nodo maestro. Una vez instalado el sistema operativo se procedi a compartir la particin /scratch del nodo en la red modificando el archivo /etc/exports agregando la lnea
/scratch 10.6.200.0/255.255.255.0(rw,no_root_squash)

Se copiaron los siguientes archivos desde el nodo maestro usando el comando rsync.
/etc/hosts /etc/hosts.equiv /etc/shosts.equiv /etc/auto.master

/etc/auto.beowulf

Se agreg la siguiente lnea al archivo /etc/auto.beowulf


home -fstype=nfs lsivcc01:/home

Se ejecutaron los siguientes comandos con el fin de que el directorio /home del nodo esclavo sea un enlace simblico al directorio /home del nodos maestro
>rm fr /home >ln s /data/home /home

Se activ la sincronizacin del tiempo con el nodo principal. Los usuarios del clster deben tener cuenta en todos los nodos. Para agregar un usuario nuevo se crea la cuenta en el nodo maestro utilizando el software para administracin de cuentas de usuario de la distribucin Linux. Para duplicar la cuenta en los nodos esclavo se debe sincronizar los archivos /etc/passwd y /etc/shadow del nodo maestro a los dems nodos usando el siguiente comando
>rsync /etc/passwd lsivcc02:/etc >rsync /etc/shadow lsivcc02:/etc

La sincronizacin se debe de hacer como usuario root desde el nodo maestro y repetirlo para todos los nodos del clster. Tambin requiere que los nodos no soliciten contrasea al inicio de la sesin SSH. Para lograr esto, cada usuario debe ejecutar los siguientes comandos desde su sesin en el nodo maestro
>ssh-keygen t rsa (return return return) >cd ~/.ssh >cp id_rsa.pub authorized_keys >cd .. >chmod go-w .ssh .ssh/authorized_keys

Los pasos descritos anteriormente se llevaron a cabo en uno de los nodos esclavos (lsivcc02) se revisaron y cuando el nodo quedo completamente funcional se dise un programa contenido en script de un archivo por lotes (configuarcion_nodo_eclavo.sh) que desarrolla la configuracin completa del nodo corrindolo desde la misma memoria USB que se utiliz para la instalacin del sistema operativo.

6.- Libreras MPICH


MPICH es una implementacin portable del estndar MPI (Message Passing Interface), este es un estndar para libreras de paso de mensajes para aplicaciones de memoria distribuida usado en el cmputo en paralelo [5]. MPICH es una librera de software libre con diferentes implementaciones para diferentes plataformas.

En el prototipo de Cluster Beowulf de 16 nodos desarrollado se instal MPICH2. El conjunto de libreras de MPICH2 ya se incluye en el DVD de la distribucin de Fedora 12, por lo que se realiz la instalacin directa en todos los nodos. Se prob la disponibilidad de los comandos principales en todos los nodos corriendo las siguientes instrucciones: >which mpd >which mpicc >which mpiexec Una vez seguros de MPICH2 est corriendo en que todos los nodos se procede a hacer pruebas con MPD (Message Passing Deamon) que es un demonio administrador de procesos para poder iniciar de manera escalada trabajos con MPI bastante grandes. MPD inicia un anillo de demonios en los nodos que permite correr programas MPI utilizando la librera MPICH2. Por seguridad para correr y probar un anillo de demonios es necesario crear un archivo en el directorio home llamado .mpd.conf que contenga la lnea: secretword=<secreto> donde <secreto> es una cadena de caracteres conocida solo por el dueo del directorio. Se genera este archivo para lectura y escritura solo para el dueo con:
>cd $HOME >touch .mpd.conf >chmod 600 .mpd.conf

Se utiliza el editor emacs para agregar la lnea anterior. Se prueba creando un anillo con un solo nodo en la mquina local y corriendo un comando de MPD y despus se cierra el anillo con las siguientes instrucciones:
>mpd & >mpdtrace >mpdallexit

La salida del comando mdptrace deber ser el nombre de la mquina donde se est corriendo. Para correr los demonios en todos los nodos es necesario crear un archivo con la lista de los nombres de todos los nodos, uno por lnea. El nombre del archivo deber ser mpd.hosts. Los nombres de los nodos sern utilizados con ssh para correr MPD en cada uno de ellos, as es que se debe asegurar que se pueda entrar a cada uno de los nodos en la lista utilizando ssh sin tener que teclear una contrasea. Lo cual se hizo previamente y se detall al final de la seccin anterior. Para iniciar los demonios en los nodos listados en mpd.hosts se corre el comando:
>mpdboot n <no. de nodos> -f mpd.hosts

El nmero de nodos puede ser entre 1 y el nmero de nodos listados en mpd.hosts. Para saber cules nodos estn corriendo un demonio se utiliza el comando mpdtrace. Se puede probar cuanto tiempo lleva a un mensaje viajar por todo el anillo con el comando mpdringtest y correr programas multiprocesos con el comando mpiexec. El comando mdpallexit cierra todos los demonios. Una vez probados todos estos comandos se podrn correr procesos en paralelo utilizando todos los nodos del Cluster Beowulf desarrollado.

7.- Conclusiones
Se dise y ensambl fsicamente el prototipo de un Clster Beowulf con 16 nodos, se instal en cada uno de sus nodos el sistema operativo Linux en su distribucin Fedora 12 de 64 bits. Se instalaron y configuraron todos los paquetes necesarios para que los nodos interacten en una red de cmputo Giga-Ethernet y puedan compartir sus algunos de sus directorios que le dan a esta red la caracterstica de un Clster Beowulf, en el cual se instal y prob la librera MPICH2 que permite correr programas en forma paralela en los nodos del clster. El prototipo del Cluster Beowulf de 16 nodos es 100% funcional y est ubicado en el Laboratorio de Sistemas Inteligentes y Visin por Computadora de la Divisin de estudios de Posgrado del Instituto Tecnolgico de Chihuahua. Actualmente de est usando para el desarrollo de aplicaciones y prueba de plataformas open source para procesamiento de imgenes y visin por computadora como parte del proyecto DGEST Modelado y Control de un Sistema Automtico de Fabricacin clave UR.CHI107. Se pretende ir adicionando ms nodos al clster y seguir desarrollando software para procesamiento en paralelo que permita el desarrollo eficiente de los proyectos del grupo de Automtica e Informtica Industrial.

6.- Referencias
[1] Acosta, J., F. Sastrn, Schematic Architecture: Reference Architecture / Frameworks / Particular nd Models for the Shop Floor Environment, 32 Annual Conf. of the IEEE Industrial Electronics Society, Pars France, November 2006. nd [2] Gropp, W., Lusk, E., Sterling, T., Beowulf Cluster Computing with Linux, 2 . Edition, MIT Press, 2003. [3] Sterling, T., Salmon, J., Becker, D., Savarese, D.F., How to Build a Beowulf, A Guide to the Implementation and Application of PC Clusters, MIT Press, 1998. [4] Vrenios, A., Linux Cluster Architecture, Sams Publishing, 2002. [5] Pacheco, P.S., Parallel Programing with MPI, Morgan Kaufmann Publishers, 1997.

Вам также может понравиться