Cluster con OpenMosix y Ubuntu

Imagen de Taber

Cluster con OpenMosix y Ubuntu

|

El tema del Clustering es un tema que lleva años desarrollandose por la busqueda de las empresas de la alta disponibilidad o la gran capacidad de calculo, con un bajo precio. Gracias a la gente que desarrolla OpenMosix esto es muy sencillo. Asi podras montarte un cluster.

Resaltar que será un cluster de balanceo de carga, que lo unico que hara es mover programas de un nodo a otro, buscando siempre un equilibrio de carga. NO ejecutará un mismo programa de forma paralela (ya explicaré como hacerlo pero requiere de reprogramación... eso no suele gustar). Si solo montamos un Openmosix, tendremos N equipos respondiendo a todos los programas que lancen desde cualquier nodo, lo que hara que ningun nodo deje de responder al tener mucha carga.

OpenMosix no es mas que un parche para el kernel, pero es necesario que sea sobre un kernel limpio de otros parches (un kernel vainilla algooooo). Una vez aplicado el parche, al recompilarlo tendremos acceso a un nuevo menu que nos muestra la configuración de la parte del kernel que manejara el cluster.

Voy a escribir un manual pero de cabeza, ya que no tengo un cluster ahora mismo montado, perdon por si incluyo algun error.

Es importante resaltar que OpenMosix solo soporta hasta versiones 2.4.26 del kernel de manera estable, que el resto de versiones son utilizables y parece ser que algo mas inestables (la rama 2.6 tiene ciertos problemas al migrar procesos). De todas formas hay muchas web donde la gente adapta los parches para todas las versiones de tu kernel. No tienes que ceñirte a la version 2.4.26, ya que yo actualmente tengo parcheados 3 equipos con la version 2.6.27 y funcionan perfectamente (uso esa version ya que es la primera del kernel que soporta parcialmente SATA). Aqui teneis la web de Tab (que no tiene nada que ver conmigo algooooo ) donde tendreis mucha informacion y todos los parches de todas las versiones del kernel pero de manera "testing": http://openmosix.snarc.org/

Para parchear el kernel, hay que bajarnos el parche de la web de OpenMosix, aunque si queremos tambien podemos bajar directamente la imagen de kernel con el parche ya incluido. Parchear un kernel no es complejo:

Dentro de "/usr/src/" escribe:
patch -Np1 < ruta_al_parche_openmosix

Puede que no funcione, si falla mira la ruta del error donde espera que este el kernel, y pon un link con ese nombre. Creo que te lo buscara en "linux-openmosix" pero no estoy seguro.

make menuconfig (Revisa que tengas las "libncurses5-dev" instaladas o no funcionara.

Ahora se eligen dentro del apartado "openmosix" que se puedan migrar los procesos. Ya esta activado la funcionalidad que le hara funcionar como un cluster de balanceo de carga. El resto de las opciones dejalas tal cual, te recomiendo que desmarques la de "complex topology" ya que relentiza mucho las comunicaciones entre los nodos del kernel, asi como la de seguridad (si es que no vas a tener problema con tus usuarios algooooo ).
Ahora recompilamos (explicado un millos de veces):

make dep
make bzImage
cp arch/$$arch$$/boot/bzImage /boot/vmlinuz-$$kernel$$ (donde $$arch$$ es tu arquitectura y $$kernel$$ tu version del kernel)
make modules
make modules_install
mkinitrd -o /boot/initrd.img-$$kernel$$ /lib/modules/$$kernel$$
(donde $$kernel$$ es tu kernel openmosix)

Ahora configuramos grub a nuestro gusto. Esto es muy sencillo, mira cualquier manual para como hacerlo con los dos ficheros que hemos dejado en el directorio "boot".

Tras arrancar, tendremos toda la infraestructura del cluster montada, pero no se podra manejar. De la web de OpenMosix bajate las "openmosix-user" o tambien llamadas "userspace-tools", la cual instalará todas las herramientas (tendras que instalarlas, sigue el README que viene en el paquete o instalatelas con el RPM, mediante "alien" o algo similar). Ahora tendras varias herramientas para hacer que cluster "obedezca". Son muy completas, y en linea de comandos, os aconsejo que mireis su funcionamiento aqui.

Perfecto, para incluir nuevos nodos repite lo mismo en otro equipo, ten en cuenta que tienes que configurar la red correctamente... pero aunque todo esta bien configurado no sucede nada. Si arrancas otro equipo no se da cuenta que hay otros equipos con OpenMosix.
Bien, ahora, si quieres no tener que complicarte en configuraciones, usa el comando de las "openmosix-user" llamado "omdiscd". Arrancalo al iniciar el equipo (creo que meterlo en xinetd no es una buena idea, arrancalo con la maquina, por ejemplo en el "/etc/init.d/network").

Mencion especial para las herramientas de OpenMosixView, que manejan el cluster de manera grafica. Para mi son ya imprescidibles por la sencillez de uso (arrastra un proceso a un nodo y ... migrará algooooo ). Instalas sin pensartelo.

Existen otros tutoriales muy buenos y bastante mejores que este, os dejo un links sobre como montar un cluster con openmosix y con nodos sin disco duro: http://www.gentoo.org/doc/es/openmosix-howto.xml

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Interesante

De momento no tengo pensado crear un cluster, pero sí me interesa saber cómo están organizados y este artículo me ha ayudado a ello.
Me lo bajo para referencia futura algooooo

Gracias!!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.