OpenMosix y Clusters en Gentoo

Michael Imhof  Autor
Michael Andrews  Autor
Sven Vermeulen  Revisor
Xavier Neys  Revisor
Alberto García Hierro  Traductor
José Alberto Suárez López  Traductor
John Christian Stoddart  Traductor

Actualizado 20 de noviembre, 2003
Esta traducción ha dejado de tener soporte

1.  Introducción

Acerca de este COMO

Este COMO le ayudará a crear un cluster openMosix. Estará basado en la distribución Gentoo Linux. Hemos intentado hacerlo lo más amistoso posible para el usuario, de manera que los novatos puedan entenderlo fácilmente. Mientras que un usuario experimentado puede unir sin problemas los múltiples documentos COMO sobre openMosix, nodos sin disco y como unir todo esto a través de la red, esperamos poder faciliar el procedimiento para los usuarios menos experimentados.

Nota: Si planea crear el cluster openMosix con nodos sin disco, debería leer la sección acerca del kernel, más adelante, para aprender a compilar el kernel con el soporte openMosix y luego nuestra Nodos sin disco en Gentoo, volviendo acá al terminar para proceder con la instalación propiamente dicha del cluster.

Acerca de openMosix

OpenMosix es un parche al kernel de Linux que permite a varias máquinas actuar como la imagen de un solo sistema (denominado en inglés SSI). El resultado de esto son múltiples máquinas pareciendo un sistema multiprocesador grande. En el momento de escribir esto, estoy usando la última liberación del parche del kernel openMosix, versión 2.4.22, y las herramientas de usuario de openMosix 0.3.4. Existe una gran variedad de información acerca de openMosix en http://openmosix.sourceforge.net. No es fácil poner en clúster diferentes versiones de las fuentes del kernel parcheadas y nos hemos dado cuenta de que los parches no son compatibles hacia atrás. OpenMosix migra procesos pesados explícitamente cuando está ejecutando binarios a.out o ELF, o cuando un proceso pesado se divide. No migrará procesos livianos como los p-threads, o procesos pesados que usen memoria compartida.

Para más información acerca de openMosix, visite su página web.

Acerca del cluster

Nuestro cluster estará formado por máquinas individuales (nodos) compartiendo recursos de computación con el fin de incrementar la capacidad de procesamiento de todos los nodos. No es necesario que todos los nodos tengan la misma arquitectura, pero hace que la tarea de ponerlos en clúster sea más sencilla.

Antes de comenzar

Debería tener Gentoo instalado en las computadoras que desee integrar al cluster. Además, necesita las fuentes del kernel openMosix parcheadas convenientemente por Gentoo.

Para conseguir estas fuentes simplemente use emerge:

Listado de Código 1.1: Consiguiendo las fuentes del kernel parcheadas

# emerge openmosix-sources

2.  Configurando el kernel

Acerca de los kernels

El kernel es el software que se sitúa entre el hardware y el resto de software cargado en su máquina, en esencia el corazón de un sistema operativo basado en kernel. Al iniciar su máquina, el BIOS ejecuta las instrucciones que encuentra en el espacio reservado para el inicio de su disco duro. Estas instrucciones son normalmente un gestor de arranque que carga su kernel. Una vez que el kernel se ha cargado, todos los procesos son manejados por él.

Para más información acerca de los kernels y de su configuración es posible que desee echarle un vistazo a este COMO, http://www.tldp.org/HOWTO/Kernel-HOWTO.html.

Configurando el kernel

El kernel puede ser tan grande y personalizado como desee, pero hay unas pocas opciones que necesita activar.

Importante: Es extremadamente importante enlazar las fuentes openmosix a /usr/src/linux como se muestra a continuación.

Listado de Código 2.1: Enlazando /usr/src/linux a openmosix

# cd /usr/src
# rm linux
# ln -s linux-2.4.22-openmosix linux

Luego, modifique la configuración de su kernel:

Listado de Código 2.2: Modificando la configuración del kernel

# cd /usr/src/linux
# make menuconfig

Debería encontrarse con una interfaz gráfica gris y azul que le ofrece una alternativa segura para editar el archivo /usr/src/linux/.config a mano. Si su kernel está funcionando bien actualmente, tal vez desee salvar el archivo de configuración actual:

Listado de Código 2.3: Respaldando la configuración del kernel

# cp .config .config_working

En la parte superior de la interfaz debería apareceropenMosix ---. Si no, necesitará hacer emerge a las fuentes del kernel con el parche openMosix (code listing 1.1). Entre en los siguientes submenús y asegúrese que las siguientes opciones estén marcadas como integradas al kernel (y NO como módulos):

Listado de Código 2.4: Opciones del Menuconfig

openMosix --->
    [*] openMosix process migration support
    [ ] Support clusters with a complex network topology
    [*] Stricter security on openMosix ports
    (1) Level of process-identity disclosure (0-3)
    [*] openMosix File-System
    [ ] Poll/Select exceptions on pipes
    [ ] Disable OOM Killer
    [ ] Load Limit

Code maturity level options  --->
    [*] Prompt for development and/or incomplete code/drivers

Networking options --->
    <*> Packet socket
    [ ]   Packet socket: mmapped IO
    < > Netlink device emulation
    [ ] Network packet filtering (replaces ipchains)
    [ ] Socket Filtering
    <*> Unix domain sockets
    [*] TCP/IP networking
    [*]   IP: multicasting

File systems --->
    [*] /proc file system support
    [*] /dev file system support (EXPERIMENTAL)
    [*]   Automatically mount at boot 

Nota: Estas opciones de configuración del kernel deben agregarse a la configuración específica de su sistema, la idea no es reemplazarlas completamente.

Una vez reconfigurado el kernel querrá reconstruirlo:

Listado de Código 2.5: Recompilando el kernel y los módulos

# make dep
# make clean bzImage modules modules_install
(Make sure /boot is mounted before copying to it)
# cp arch/i386/boot/bzImage /boot/bzImage-openmosix

Ahora agregue una entrada para el kernel nuevo en lilo.conf o grub.conf (dependiendo del gestor de arranque que usa) y haga que el kernel nuevo sea la opción por defecto. Ahora que la imagen bzImage ha sido copiada al directorio /boot, todo lo que tendrá que hacer es re-iniciar el sistema.

Opciones Faltantes

Si le faltan opciones en la configuración del kernel, asegúrese revisar:

3.  Configuración de nodos openMosix

Instación de herramientas de usuario openMosix

De manera que el cluster pueda migrar procesos, necesitamos instalar algunos binarios en el área de usuarios. Además un servidor openMosix necesita estar operando, de manera que un nodo pueda unirse a un cluster y hacer uso pleno de las características de openMosix. Para obtener estos binarios y archivos, use emerge:

Listado de Código 3.1: Instalando las herramientas de usuario openMosix

# emerge openmosix-user

Configuración de los nodos openMosix

Ya no se requeriere crear o modificar el archivo /etc/openmosix.map. Las versiones más nuevas de las herramientas de usuario disponen de un demonio con facultades de autodescubrimiento que automaticamente descubre todos los nodos en la red.

Cree el directorio /mfs en cada nodo y móntelo si desea usar el sistema de archivos openMosix (altamente recomendado) que permite acceso a todos sus nodos.

Listado de Código 3.2: mkdir /mfs

# mkdir /mfs

Listado de Código 3.3: Entrada ejemplo en /etc/fstab

none                    /mfs            mfs             noauto,dfsa=1          0 0

Nota: No todos los nodos tienen que estar encendidos y corriendo para que openMosix funcione correctamente.

Iniciando openMosix

Iniciando openMosix es realmente sencillo. El siguiente comando activará la funcionalidad de openMosix en el kernel e iniciará el demonio de autodescubrimiento que mantiene conocimiento de los nodos disponibles.

Listado de Código 3.4: Iniciando openMosix

# /etc/init.d/openmosix start

4.  Herramientas de usuario de openMosix

Herramientas de la línea de comando

El paquete openMosix-user instala varias herramientas útiles en su sistema. Para nombrar unas cuantas:

La prueba de stress de openMosix test puede ser usada para determinar si todo en el cluster está funcionando como debería y cómo se desempeña bajo carga. Este paquete se llama openmosixtest:

Listado de Código 4.1: Emerge openmosixtest

# emerge openmosixtest

El ebuild informará cómo correr la prueba.

Herramientas Gráficas

Para obtener una perspectiva gráfica del cluster y observar la migración de procesos, puede usar openmosixview.

Listado de Código 4.2: Emerge openmosixview

# emerge openmosixview

Para ejecutar esta maravillos aplicación, solo escriba openmosixview:

Listado de Código 4.3: Ejecutando openmosixview

# openmosixview

5.  Recursos

openMosix

Agregados a openMosix (ebuilds disponibles)