- Estréllate y Arde - https://www.estrellateyarde.org -
Clusters OpenMosix en Linux
OpenMosix (openmosix.sourceforge.net) es un parche para el kernel Linux que permite a varias máquinas actuar como un sistema multiprocesador grande. Lo que hace OpenMosix es balancear la carga de trabajo entre todos los nodos que forman el cluster: migra los procesos, independientemente de en qué nodo se han originado, al nodo con menos carga de trabajo.
Su mayor ventaja es que las aplicaciones no tienen que estar programadas específicamente para OpenMosix ya que trabaja con aplicaciones normales (no paralelizadas), siendo su funcionamiento transparente al usuario. Pero tiene una limitación: sólo migra procesos que no usen memoria compartida, por lo que no migra procesos multi-hilo.
OpenMosix está formado por los siguientes componentes:
Ahora las malas noticias
La última versión estable de OpenMosix es para el kernel 2.4.26 y por el momento no habrá versión para el kernel 2.6 (la versión beta en desarrollo llegó hasta el kernel 2.6.15), ya que el 15/07/2007 OpenMosix comunicaba su cierre y no se sabe si el proyecto continuará con otro nombre (Simple Openmosix 2.6, sourceforge.net/projects/om-2-6/).
Recursos
# File_system Mount_point Type Options Dump Pass mfs /mfs mfs dfsa=1 0 0
Para activar la funcionalidad de openMosix en el kernel e iniciar el demonio de autodescubrimiento omdiscd ejecutaremos el comando:
# /etc/init.d/openmosix start
Las herramientas de usuario de openMosix (OpenMosixTools, paquete openmosix-user) son una serie de comandos que permiten administrar openMosix desde una consola. Algunos de ellos son:
Para administar openMosix desde el entorno gráfico usaremos OpenMosixView (openmosixview.com, paquete openmosixview), un frontal para las OpenMosixTools. Para lanzar OpenMosixView ejecutaremos el comando:
# openmosixview
OpenMosixView monitoriza la carga de cada nodo:
Nos permite administrar los nodos:
Gestionar los procesos:
Migrar procesos manualmente a otros nodos:
Manejar procesos remotos:
Visualizar gráficamente la carga de cada nodo:
Incluso administrar procesos arrastrándolos (drag and drop):
awk 'BEGIN {for(i=0;i<10000;i++)for(j=0;j<10000;j++);}' &
Y lanzarlo con el comando:
$ for i in `ls /etc/` ; do ./test_mosix ; done
Con mosmon podremos ver cómo migran los procesos a otros nodos:
Para matar todos los procesos awk:
$ pkill awk
$ ./start_openMosix_test.sh
- Descargamos la escena de Blender blacksmith.tgz y la descomprimimos.
- Abrimos /blacksmith/blacksmith.blend, seleccionamos la escena 04_06 y configuramos
el render a 640x480 y formato .jpg.
- Descargamos el script de Marc O. Gloor render.gz que será el encargado de dividir el trabajo
en tantos procesos como nodos. Lo descomprimimos en el directorio /blacksmith y le damos
permisos de ejecución. Para ejecutarlo (4 nodos, 230 imágenes):
$ ./render blacksmith.blend 1 231 4
- Cuando termine tendremos 230 .jpg que podremos convertir en vídeo con mencoder:
$ mencoder "mf://*.jpg" -mf fps=12 -o blacksmith.avi -ovc lavc -lavcopts vcodec=msmpeg4v2:vbitrate=800
- Utilizaremos el script makemovie.tar.gz (incluye varias escenas .pov de ejemplo).
- Lo descomprimimos en el directorio /makemovie y le damos permisos de ejecución.
- Para ejecutarlo el comando es:
$ ./makemovie pov-tut
- El script lanza una instancia de POV-Ray por cada escena .pov a renderizar, crea las imágenes .ppm, las convierte a .jpg y genera con ellas un vídeo .avi.
Podemos disponer de un cluster OpenMosix al instante si utilizamos un live-CD que tenga esa funcionalidad: sólo tendremos que bootear las máquinas desde el CD y conseguiremos un cluster funcionando. Hay varios live-CD que nos permiten hacerlo, veamos algunos:
Article printed from Estréllate y Arde: https://www.estrellateyarde.org
URL to article: https://www.estrellateyarde.org/discover/cluster-openmosix-en-linux
Click here to print.
Copyright © 2010 Estrellate y Arde