OpenMosix y Clusters en Gentoo
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
# 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:
- Code maturity level options --->
- Prompt for development and/or incomplete code/drivers
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:
-
mosmon - monitor openMosix. Permite ver el estado de todos
los nodos, incluyendo uso del cpu, memoria instalada, memoria
usada, etc.
-
mtop - Versión mejorada de top, que enseña en qué nodo
corre actualmente un proceso.
-
mps - Versión mejorada de ps. Enseña el número del nodo
también.
-
mosctl whois - Esta es tan útil ya que mosmon y las demás
herramientas solo dan el número del nodo. Con mosctl whois
nodenumber podemos averiguar el número ip o nombre del
anfitrión del nodo.
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)
El contenido de este documento está registrado bajo los términos de
la licencia
Creative Commons - Reconocimiento / Compartir Igual
|