Clustering con Openmosix

Para la Linuv Install Party 2003.

Miguel Colomer Pastor 10 de Mayo de 2003

1

000 estaciones con Red Hat.000 por segundo. – Con precios muy inferiores (sobre el 10%) se consigue potencias de c´ lculo similares a – No necesita especialistas en supercomputadores. • Necesita al menos dos nodos y normalmente no tienen m´ mero m´ ximo de u a nodos. – Audi.1. siendo uno de los mayores clusters del mundo.1 Ejemplos conocidos • Google: – 20. – FIAT.000 millones de busquedas al mes (y subiendo) esto equivale a unas 2. a • Necesita una red de intercomunicaci´ n. – Usan linux Red Hat. • Principales marcas constructoras de automoci´ n y aeron´ utica estan sustio a tuyendo supercomputadores Cray por clusters: – BMW.1 1. 2 .1 Introducci´ n o ¿Qu´ es? e • Un cluster no es m´ s que un conjunto de m´ quinas conectadas entre s´ para a a ı poder realizar un trabajo conjunto. 1. • Es una forma de sustituir Supercomputadores. siendo el ancho de banda un factor o limitante. – Posibilidad de reutilizar viejas m´ quinas que se vayan a descartar. o – Final Fantasy.000 nodos repartidos en 7 centros de datos independientes. • Renderizacion de Peliculas: – Shrek: DreamWorks us´ 1. – Boeing. – 5. s´ lo administradores o de sistemas.

o 1. aunque estas tareas pueden ı estar ejecutandose (o no) en el mismo nodo.2 Clusters trasparentes. ı ı • PVM MPI: no son ningun tipo de cluster en concreto. 1. • T´ cnicas de programaci´ n paralela. transu a parente y din´ mica. Existen diversas formas de clustering y de programaci´ n que no es trasparente o al usuario. ı • Se trabaja como se tratase de un multiprocesador. a • Veremos m´ s detalles en la secci´ n 8. ı • Beowulf: Es un tipo de clustering donde la programaci´ n paralela es expl´cita o ı y se ha de conocer la topolog´a muy espec´fica de la red.2 1. – Moshe Bar: quien empez´ OpenMosix bajo licencia GPL.3 Openmosix • OpenMosix es un proyecto que surgi´ de la separaci´ n de los dos princio o pales desarrolladores de Mosix: – Amnon Barak: actual desarrollador principal de Mosix. • Reparte procesos entre los nodos seg´ n su carga de forma autom´ tica.2. ı o • Un ejemplo de todo esto es Mosix y OpenMosix (versi´ n libre de Mosix).1 Tipos de clustering Clusters no trasparentes. simplemente son unas librer´as para el paso de mensajes entre tareas. • El programador no necesita conocer la existencia de la topolog´a de la red. e o o o uso de librer´as para programaci´ n paralela como PVM y MPI.2.1. ya que requieren recompilar las aplicaciones o el uso de librerias espec´ficas. a o 3 . como creaci´ n de diferentes procesos. o • Openmosix funciona simulando un sistema multiprocesador.

3 http://switch.openmosixview.4.4-new.tar.4.4.1 Instalaci´ n o Descargar el SW Deberemos descargar lo siguiente: • Kernel a parchear: en nuestro caso 2.20-2.tar.org/pub/linux/kernel/v2.dl.gz 2.bz2 • Parche 2.20.4.sourceforge.4.gz – Entramos en el directorio del kernel: cd /usr/src/linux – aplicamos el parche: patch -p1 <.4.gz /usr/src – Lo descomprimimos: gunzip /usr/src/openMosix-2..gz • Openmosix Tools 0.2 2.20.dl.4 http://www.20-2 4 .net/sourceforge/openmosix/openMosix-2.20-2 para soporte en kernel de OpenMosix http://switch.tar.20-2.gz si se ha descargado en formato gzip – Se crear´ el directorio /usr/src/linux-2.20 http://www.bz2 si se ha descargado en formato bzip2 – tar -xvzf /ruta/de/descarga/linux-2.sourceforge.kernel. es muy recomendable tener a un link llamado /usr/src/linux que apunte al kernel en uso.4.tar.4.2 Preparaci´ n del kernel o • Descompresi´ n del kernel: o Una vez descargado el kernel se deben realizar los siguientes pasos: – cd /usr/src – tar -xvjf /ruta/de/descarga/linux-2.net/sourceforge/openmosix/openmosix-tools-0./openMosix-2.4/linux-2.20-2.20 /usr/src/linux • Ahora pasaremos a parchear el kernel para incluirle las caracter´sticas de ı OpenMosix – Copiamos el parche al directorio de fuentes: cp /ruta/de/descarga/openMosix-2.4.com/download/openmosixview-1. conseguiremos esto con la orden ln -s /usr/src/linux-2.3.20.20.4.tgz • Opcionalmente aunque es bastante recomendable el OpenMosixView 1.4.

• Compilaci´ n: o Como deberiais saber debemos hacer: – make dep – make clean – make bzImage – make modules – make modules install ¡Ya tenemos el kernel compilado! • Instalaci´ n del kernel. estas son las opciones de la secci´ n de OpenMosix m´ s recomendo a ables. adem´ s lo instalaremos como otro arranque opcional por si a algo falla poder rearrancar el sistema con alg´ n otro kernel.4. vamos a suponer que usamos el programa de aro ranque Lilo.20-openmosix 5 .– Ya tenemos el kernel con las caracter´sticas de OpenMosix.4. ı • Configuraci´ n del kernelcon el comando make xconfig o Para esta parte se recomienda haber realizado alguna compilaci´ n del kernel o 2. u – cp arch/i386/boot/bzImage /boot/vmlinuz-2.20.

3 Instalacion de las OpenMosix tools 0. – tar -xvzf openmosixview-1. dejandola as´: ı OPENMOSIX=/usr/src/linux – Ahora realizaremos la compilaci´ n propiamente dicha: o make all • Instalaci´ n: se ha de realizar un simple make install o 2.3 • Descompresi´ n: o • Compilaci´ n: o – Antes de nada editar el fichero configuration y buscamos la definici´ n o de la variable OPENMOSIX.4.tar.gz .tgz .3/.4-new.3 – cd /usr/src – cp /ruta/de/descarga/openmosix-tools-0. – tar -xvzf openmosix-tools-0.new • Descompresi´ n: o 6 .new/.20-openmosix label=OpenMosix read-only Seguido de las dem´ s opciones a a˜ adir al arranque del lilo.gz – Se crear´ el directorio openmosixview-1.3.4. a n 2.conf y a˜ adir: n image=/boot/vmlinuz-2.4 Instalaci´ n de OpenMosixView 1. entramos en el: a cd openmosix-tools-0.tgz – Se crear´ el directorio openmosix-tools-0.tar.4 o – cd /usr/src – cp /ruta/de/descarga/openmosixview-1. entramos en el: a cd openmosixview-1.4.– Se ha de editar el archivo /etc/lilo.3.4-new.

• Compilaci´ n: o – ./configure – make para la compilaci´ n. o – make install para instalarlo. 7 .

a • Ejemplo de configuraci´ n: o 1 2 3 4 sid 1 potato 1 woody 1 sarge 1 • Configuraci´ n equivalente: o 1 sid 4 • Ejemplo con ALIAS.3 192.168.168. la configuraci´ n a o quedar´a asi: ı 8 .3 3.1.1. o con unos nodos espec´ficos.1 192. woody y sarge son interfaces de la misma m´ quina.168.168.1.2 192.1. – El nombre es el que le corresponde en /etc/hosts.4 sid potato woody sarge • Ahora pasaremos a editar el fichero /etc/openmosix. ı • Se recomienda poner en /etc/hosts una entrada por cada IP del nodo y a˜ adirle un nombre de dominio local. su sintaxis es la que sigue: – <identificador><nombre del nodo><rango> ´ – El identificador debe ser unico para cada nodo. – El rango define cuantos nodos con IPs consecutivas existen a partir de la definida.map. como por ejemplo: n 192. sin muchos cambios. – En el rango tambi´ n puede ponerse la palabra ALIAS si ese nodo e posee m´ s de un interfaz de red.1 Configuraci´ n del cluster o Modo manual • Para clusters muy definidos. normalmente esta a 1. suponemos que con los datos del /etc/hosts anterior.

3 Iniciando el cluster • Al instalar las OpenMosixTools se habr´ creado el script /etc/init.d/ – Para a˜ adir nuestro script de openmosix a este directorio basta con n hacer: ln -s /etc/init.d/openmosix start – Relanzarlo para que recargue la configuraci´ n con /etc/init. parar y relanzar el script que activa al nodo en el cluster: – Lanzarlo con /etc/init.1 2 3 3 sid 1 potato 1 woody 1 sarge ALIAS 3.d/openmosix stop • Si queremos que se active autom´ ticamente al arrancar el sistema y se dea sactive al apagarlo deberemos a˜ adirlo al directorio donde est´ n los scripts n a por runlevel. 9 . • no requiere una configuraci´ n est´ tica y manual.d/openmosix /etc/rc2.d/openmosix o restart – Pararlo para que el nodo salga del cluster con /etc/init. a • Podemos lanzar.2 Modo automatico • omiscd se encarga del autodescubrimiento de nodos en el cluster. o a • Emplea comunicaci´ n por multicast. – Para averiguar el runlevel en el que arranca tu distribuci´ n por defecto: o runlevel – Por ejemplo obtenemos que es el nivel 2. entonces los scripts que cargamos al arrancar el sistema se encuentran en: /etc/rc2.d/openmosix. o 3.d/S20openmosix – Se a˜ ade S20 delante del nombre para marcar el orden en el que arn rancan los diferentes scripts.

ı • Podemos configurar este sistema de ficheros a˜ adiendo en /etc/fstab: n mymfs /mfs mfs dfsa=1. con lo que la transferencia de ficheros se delega a unos demonios espec´ficos.4 Configuraci´ n del Sistema de Ficheros oMFS o Como se ver´ en la secci´ n 8 Openmosix realiza los accesos a disco interceptando a o las llamadas al sistema que se realizan.noauto 0 0 • Se debe crear antes de montarlo el directorio en cuesti´ n: o mkdir /mfs • Una vez arrancado y puesto en marcha el Cluster: mount /mfs 10 . de forma parecida a NFS. Para evitarlo se puede utilizar este sistema de ficheros. produciendo much´simo overhead de coı municaciones.

. 11 . . a – mps es como el comando top de siempre solo que tambi´ n indica el e nodo. • Dentro de las openMosix View: – openmosixview muestra en entorno gr´ fico la carga de los nodos y a hace de interfaz para el resto de herramientas. – mosmon crea una gr´ fica que muestra la carga de cada nodo en aproxa imadamente tiempo real..5 Uso de las herramientas • Dentro de las openmosix Tools se puede encontrar: – mtop es como el comando top de siempre solo que incluye una columna para indicar el nodo donde se est´ ejecutando el proceso.

– openmosixmigmon es una divertida aplicaci´ n gr´ fica para migrar proo a cesos con el rat´ n de un nodo a otro. 12 ... o .

postgresSQL. • Adecuado para tareas muy paralelizables.. Matlab 6. Oracle.6 6. a • Si un nodo posee PVM o MPI las tareas se pueden repartir por todo el cluster. • Pensado para PC’s de escritorio.2 Inconvenientes Principales • Para la comunicaci´ n entre tareas. no pueden aprovechar las cualidades de openmosix.. • No hay que recompilar ninguna aplicaci´ n gracias a la transparencia que o otorga el estar implementado en Kernel. donde las tareas son muy independientes entre s´. librer´as de paso o ı ı de mensajes. por ejemplo: maje -j 8 bzImage usar´a 8 procesos para compilar el kernel. 13 . o 6. ı – John the ripper: famosa herramienta para crackear passwords. aunque se puede usar para c´ lculos. • Posibilidad de migrar expl´citamente a un nodo tareas en concreto (´ til para ı u tareas que usan mucha CPU).1 Ventajas e inconvenientes Ventajas Principales • Transparencia. pero en la versi´ n estandard no se puede usar Memoria como partida. se puede usar tuber´as. mysSQL. si cada ı proceso migra a un nodo ganaremos much´simo tiempo. – Matlab 5 – Pasar un CD a mp3 o a ogg como veremos en la secci´ n 7. – Programas como el Apache. ı • Adecuado para tareas secuenciales. • Aplicaciones y tareas comunes que se pueden realizar: – Compilar: el comando make posee un par´ metro -j que indica el n´ mero a u de procesos a usar para compilar. trabajas como en un multiprocesador. ya que simplemente se repartiran por el cluster.

– Exise un parche adicional en http://mcaserta. o incluso mio graci´ n de hilos POSIX creados con la llamada al sistema clone(). 14 .com/maask/ que a´ n esta u en desarrollo y es bastante inestable que proporciona posibilidad de migraci´ n de procesos que usen memoria compartida. no hilos (salvo con el parche anteriormente mencionado). o • Solo migran procesos.

... usando 3 nodos: ∗ Duron 700 512 MB RAM ∗ Pentium 3 550 64 MB RAM ∗ Pentium 2 350 128 MB RAM 15 ...4.57 segundos • Compilaci´ n del kernel 2. Pentium 3 550 34 segundos Pentium 2 350 Pentium 4 2400 36. .. y hemos o ı probado a renderizar en un cluster alguna imagen 3D como esta: . Los tiempos de renderizaci´ n fueron: o ...7 Pruebas y demos • Povray: existe una versi´ n de povray que usa las librer´as de PVM.20: o – De forma local a cada nodo con el comando make bzImage – En el cluster con el comando make bzImage -j 3. Nodos Tiempo usado Duron 700 42 segundos Duron 700 .

.. Nodos Tiempo Duron 700 12 min 50 segs Cluster 6 min 50 segs 16 .... Cada mp3 se ha comprimido con la orden: bladeenc -quit -quiet <cancion>-256 -copy -crc.. Nodo Modo Tiempo Duron 700 local 14 min 19 seg Duron 700 cluster 13 min 11 seg Pentium 3 550 local 15 min 53 seg Pentium 3 550 cluster 14 min 7 seg • Pasar un CD a mp3 con bladeenc: Esta prueba se ha realizado con el cluster descrito anteriormente.

8 ¿C´ mo funciona? o • Los nodos se intercambian informaci´ n de carga para saber que nodos est´ n o a m´ s dispuestos para aceptar procesos. – Con esta opci´ n se consigue evitar un overhead de comunicaciones o de llamadas al sistema. • Las llamadas al sistema para el acceso al sistema de ficheros tambi´ n se e capturan y se mandan al nodo origen. • Las llamadas al sistema que manda el remote al nodo origen son atendidas por una parte del kernel especializada llamada deputy. 17 . y si no puede atenderlas por s´ mismo. salvo que se utilice el sistema de ficheros oMFS. delegando estas a los demonios propios del oMFS. • Con esto se consigue que el proceso no note la diferencia con su ejecuci´ n o local. en la medida de lo posible al nodo que posee el fichero. a • Se intenta igualar las cargas de los nodos dos a dos • Existe una parte en el kernel remoto llamada remote que se encarga de encapsular a los procesos que han migrado a un nodo que se encarga de capturar las llamadas al sistema. – Existe adem´ s la opci´ n de DFSA (activada en el ejemplo de la secci´ n a o o 4) que cuando esta activada el cluster trata de migrar el proceso. las ı manda al nodo origen.

ipng. http://howto. http://howto.cineca.php?radice=Diapositiva&last=32 • OpenMosix Wiki.it/streaming/openmosix/slides moshe.be/openMosixWiki/ • OpenMosix Howto.ipng. a e 18 .9 Bibliograf´a utilizada ı • Linux clusters state of the art.be/openMosix-HOWTO/ • Y muchas m´ s webs que encontr´ con google. http://www. de Moshe Bar.

Sign up to vote on this title
UsefulNot useful