jueves, 29 de marzo de 2007

Cluster Express con ClusterKnoppix (OpenMosix)

Cluster Express con ClusterKnoppix (OpenMosix)


David Andrés Buitrago Arenas

Universidad Manuela Beltrán

Ingenieria de Sistemas


Resumen  Se describen en este documento las instrucciones básicas para el despliegue de un cluster de computo usando la distribución ClusterKnoppix (http://bofh.be/clusterknoppix) que usa la extensión del kernel de Linux OpenMosix (http://openmosix.sourceforge.net/).  OpenMosix permite crear un sistema operativo distribuído que balancea la carga de computo sobre las máquinas en un Cluster.    
  1. Condiciones iniciales
 Requerimientos  2 computadores como minimo en red 2 CD con el clusterknoppix quemado correctamente (lectura alta para las unidades)  La red a la que están conectados los equipos podría tener una de dos configuraciones posibles:  Configuración 1: La red puede tener el servicio de asignación dinámica de IP (DHCP) en cuyo caso el proceso descrito más adelante se simplificará considerablemente.  Configuración 2: Las IP de las máquinas del cluster deben asignarse estáticamente.  En este caso para la configuración de red asumiremos los siguientes parámetros (válidos por ejemplo en las salas de computo de la USB1):  IP Nodo X: 192.168.3.X Puerta de enlace predeterminada (Gateway): 192.168.3.129 Mascara de red (Netmask): 255.255.255.224            
  1. Arranque de ClusterKnoppix
 ClusterKnoppix es una distribución de Linux que corre directamente desde el CD y no requiere una instalación previa en el disco duro para ser utilizada.   Para iniciar el sistema operativo desde el CD-ROM es necesario arrancar la máquina asegurándose que el sistema de arranque (BIOS) busque primero el sistema operativo en el CD-ROM antes de hacerlo en cualquier otro dispositivo.  Si la máquina no esta configurada para arrancar de este modo, es necesario modificar los parámetros de la BIOS (consulte la documentación apropiada).  Algunos aspectos básicos de la configuración final de ClusterKnoppix pueden ser definidos en el arranque por medio de opciones literales que se ingresan en el símbolo 'boot:'.  Cuando se usa teclado en español es posible indicar por este mecanismo el conjunto de teclas que se usaran y asegurar así la configuración apropiada de este dispositivo.  El comando para configurar ClusterKnoppix de modo que reconozca el teclado en español es:  Comando 1:     boot: knoppix lang=es  NOTA: El teclado en el momento del arranque es reconocido como un teclado en inglés (alemán) de modo que es necesario encontrar la tecla que corresponde al símbolo '='.  En la mayoría de los teclados en español la tecla que corresponde a este símbolo en el teclado en inglés es [¿¡]. 
Figura 1. Escritorio del sistema X Windows de Knoppix
  1. Configuración Básica de ClusterKnoppix
 Una vez iniciado ClusterKnoppix y si el reconocimiento de los dispositivos es exitoso el sistema operativo arranca directamente el sistema X Windows y el gestor de escritorio.  En la figura 1 se identifican algunas de las componentes básicas del gestor de escritorio que usa por defecto ClusterKnoppix (KDE) que deben ser tenidas en cuenta para los propósitos de la configuración del Cluster. 
    1. Configuración de la red
 El primer paso en el establecimiento del cluster es la configuración de red.    Para el caso de la configuración 1 (DHCP) no es necesario hacer nada para tener la red preparada para iniciar los servicios de cluster.    Es necesario sin embargo verificar que una IP haya sido asignada efectivamente (lo que de entrada garantiza la conexión de la máquina a la red) y que los demás nodos del cluster sean 'visibles' desde cada maquina (ver pasos 2 y 5 más abajo). 

Figura 2. Consola de root (root shell) En el caso de la configuración 2 debe procederse según los siguientes lineamientos para tener acceso a la red y hacer visible el nodo desde esa misma red:
  1. Abrir una consola de administrador (root shell) – ver icono en submenu del escritorio (figura 2). Las acciones que se describen a continuación asumen que se esta trabajando sobre una consola de administrador.  Para abreviar usaremos el símbolo '#' para representar el símbolo del sistema.  Naturalmente en los comandos este símbolo no debe escribirse explícitamente.
  2. Asignación de una IP al nodo:
 Comando 2:
      # ifconfig eth0 192.168.3.X netmask 255.255.255.224
     donde X es el número asignado por la red al nodo respectivo.  Para verificar la correcta asignación de la IP a la máquina se puede ejecutar el comando:
 Comando 3:
      # ifconfig
     En el caso de asignación de IP dinámica este último paso es importante para verificar que la asignación fue realizada efectivamente.
  1. Configuración de la puerta de enlace:
 Comando 4:
      # route add -net 0.0.0.0 gw 192.168.3.129
  1. Verificación de la conectividad
 Comando 5:
      # ping -c 3 192.168.3.161
     El parámetro '-c 3' es requerido para limitar el número de paquetes que es enviado a la máquina respectiva.  El mismo comando debe repetirse con la IP de los demás nodos en el cluster.   
NOTA: La prueba de conectividad es conveniente hacerla también en el caso de asignación dinámica de IP. 
    1. Inicio de los servicios de OpenMosix
 En el caso de la configuración 2 (no DHCP) es apropiado reiniciar manualmente los servicios de OpenMosix para computación en cluster.  Para hacerlo se utiliza el script (equivalente a un archivo por lotes en windows) /etc/init.d/openmosix, así:  Comando 7:      # /etc/init.d/openmosix restart  La salida típica de este comando es:  openMosix: Using map file /etc/openmosix.map openMosix: WARN: Invalid configuration in map-file /etc/openmosix.map openMosix: Falling back to autodiscovery mode using /usr/sbin/omdiscd Initializing openMosix... Local processes already allowed to leave automatically. automatic load-balancing already enabled. Remote processes now allowed in. MFS access already enabled.  Para detener los servicios:    Comando 8:       # /etc/init.d/openmosix stop  La salida típica del comando es:  openMosix: Using map file /etc/openmosix.map openMosix: WARN: Invalid configuration in map-file /etc/openmosix.map openMosix: Falling back to autodiscovery mode using /usr/sbin/omdiscd Stopping openMosix... openMosix: All remote processes were expelled and no further remote processes accepted.  Si la configuración es la 1 (DHCP) los servicios de OpenMosix se inician automáticamente durante el arranque.  Uno de los servicios más importantes de OpenMosix es el que permite descubrir recursos en el cluster automáticamente (autodiscovery).  Si la configuración de red se realizo exitosamente y los servicios de OpenMosix funcionan apropiadamente no es necesario realizar ninguna configuración especial para que cada nodo en el cluster se 'percate' de la existencia de los demás. 
    1. Verificación de los servicios de OpenMosix
 Una vez iniciado OpenMosix y si el proceso de auto detección es exitoso es posible comenzar a utilizar los recursos de los demás nodos para constituir el cluster.  Para verificar el acceso a dichos servicios se puede proceder de la siguiente manera: 
  1. Verificación de acceso a los sistemas de archivos (disco duro) de los nodos en el cluster. OpenMosix utiliza el directorio /mfs para montar remotamente los sistemas de archivos de otros nodos en el nodo actual.  Para verificar que el sistema funciona se debe comprobar que el directorio este correctamente montado y que contenga los directorios correspondientes a los sistemas de archivos de los otros nodos:
 Comando 9:
      # ls /mfs   948 935 932 977  here  home  lastexec  magic  selected  Cada uno de los directorios numerados corresponde al sistema de archivos de cada nodo.  NOTA: El número que OpenMosix asigna a cada nodo obedece a la siguiente regla.   Supongamos que la IP de la máquina es 192.168.3.134.  Se toman los 2 últimos períodos de la IP de la máquina (3 y 134).  Se determina su representación en hexadecimal (0x3 y 0x86).  Se concatenan los dos números en hexadecimal (0x386) y se convierte el  número resultante en decimal (902).
  1. Verificación de acceso a la CPU de los nodos en el cluster.  Esto se puede conseguir utilizando el monitor de OpenMosix, openMosixView.  Para lanzar el monitor se utiliza el comando:
 Comando 10:
      # openmosixview &
 

 
 
 
 
 
 
 
 
 
 
 
 
Figura 3.  openmosixview y openmosixmigmon (monitor de migración)
     Un pantallazo de esta ampliación se muestra en la figura 3.  Si el proceso de descubrimiento de recursos funciono correctamente el monitor debe mostrar cada uno de los nodos configurados en el cluster.   Los nodos que aparezcan allí podrán recibir tareas de computo con el sistema de balanceo de carga de openMosix.
 NOTA: En ocasiones el proceso de descubrimiento puede tomar unos minutos cuando se agregan dinámicamente nuevos nodos al cluster de modo que si en un principio no se detectan otros nodos es necesario esperar o reiniciar repetidamente el servicio de openmosix (ver comando 7) hasta detectar los nodos nuevos.  
  1. Manipulación de sistemas de archivos en Knoppix
 Antes de continuar nuestra descripción de las pruebas sencillas que pueden realizarse usando ClusterKnoppix debemos detenernos un momento para entender el modo en el que pueden manipularse archivos y directorios en un sistema que corre Knoppix.    Cuando Knoppix arranca crea un sistema de archivos sobre la memoria RAM que es el único sobre el que se pueden crear archivos y directorios.  Una vez la máquina se apaga y dado que el sistema de archivos reposa sobre la memoria RAM toda la información almacenada allí desaparece.  Por ello se hace indispensable disponer de acceso a medios de almacenamiento permanente (sistemas de archivos en disco duro, memorias flash – usb, floopies e incluso la red).    Para acceder a medios de almacenamiento permanentes, como sucede en linux se debe montar el sistema de archivos del dispositivo sobre uno de los directorios de KNOPPIX.  Los dispositivos que son detectados automaticamente por Knoppix tienen asignado automaticamente un directorio en /mnt que puede ser determinado usando el comando:  Comando 11:
    # mount  /dev/root on / type ext2 (rw) /dev/scd0 on /cdrom type iso9660 (ro) /dev/cloop on /KNOPPIX type iso9660 (ro) /ramdisk on /ramdisk type tmpfs (rw,size=1639232k) /proc/bus/usb on /proc/bus/usb type usbdevfs (rw,devmode=0666) automount(pid567) on /mnt/auto type autofs (rw,fd=4,pgrp=567,minproto=2,maxproto=4) /dev/sda1 on /mnt/sda1 type vfat (rw) mfs on /mfs type mfs (rw,dfsa=1) /dev/hda1 on /mnt/hda1 type ntfs (ro,nosuid,nodev,umask=000,uid=1000,gid=1000)
 En la salida mostrada arriba se pueden identificar los sistemas de archivos correspondientes al disco duro (/dev/hda1) y un sistema de archivos correspondiente a una memoria flash (/dev/sda1).  Para montar cualquiera de estos sistemas de archivos se usa el comando:  Comando 12:    # mount /mnt/sda1

Con el que se montaría por ejemplo la memoria flash detectada por el sistema.

De no aparecer en la lista del comando 11 se puede (si se conoce) montar el dispositivo manualmente usando el comando

 Comando 13:    # mount /dev/sda1 /mnt/test 

Este comando permitiría montar el dispositivo de la memoria flash en el directorio /mnt/test.


Una vez montado el dispositivo es posible ejecutar los comandos propios de linux para manipular archivos y directorios. Por ejemplo si se desea copiar el archivo documento.doc de la memoria flash al sistema de archivos de knoppix se usará:


Comando 14:    # cp -rf /mnt/sda1/documento.doc /home/knoppix 

Obviamente previamente la memoria flash debio haber sido montada en el directorio /mnt/sda1. Y viceversa si se quiere copiar el directorio 'Pruebas' del sistema de archivos de Knoppix a la memoria flash se usa:


Comando 15:    # cp -rf /home/knoppix/Pruebas /mnt/sda1 

Para desmontar un dispositivo de almacenamiento se usa el comando.


Comando 16:    # umount /mnt/sda1 

La operación de desmontado solo surtirá efecto si el directorio asociado al sistema de archivos no esta siendo utilizado (hay un usuario sobre uno de los directorios del sistema de archivos, existe un programa abierto usando un archivo en el sistema de archivos, etc.)


En los ejemplos presentados arribas se uso una memoria flash para almacenar permanentemente archivos y directorios que se usan en Knoppix. Las particiones del disco duro también podrían utilizarse en el caso que tuvieran un sistema de archivos distinto a NTFS. La versión de Knoppix asumida aquí (ClusterKnoppix v.3.6) no tiene incluídos los drivers para ESCRIBIR sobre este tipo de sistema de archivos aunque se los puede LEER.


Usando dispositivos de almacenamiento permanente es posible guardar la configuración específica del sistema para utilizarla en una ejecución posterior sin necesidad de repetir el proceso de configuración inicial. Para ello se debe ejecutar el comando:


Comando 17:    # saveconfig 

Y seguir las instrucciones solicitadas por el aplicativo. Una vez guarda la configuración la próxima vez que se inicie Knoppix y se quiera utilizar la configuración guardada se entra en el símbolo de arranque la opción:

Comando 18:     boot: knoppix myconfig=scan  Tenga en cuenta (como se comento a propósito del comando 1) que el teclado esta configurado en inglés (alemán) de modo que cualquier símbolo especial que necesite utilizar en el prompt 'boot' (por ejemplo '=', '/') debe buscarlo a ciegas. 

Si se desea conservar además de los archivos de configuración, otros archivos entonces los archivos que se desean conservar deberán localizarse en el directorio /home/knoppix/Desktop.

 

1 comentarios:

felipe dijo...

hola que tal, tengo un problema, al visualizar el articulo de Cluster Express con ClusterKnoppix (OpenMosix)no puedo ver el articulo completo me pregunto si podrias subir el archivo talvez en formato pdf en algun servidor para poder descargarlo, ya que tengo un trabajo escolar donde tengo que montar un servidor y el ClusterKnoppix me parece una gran opcion ademas me parecio muy interesante, ya estube buscando sitios donde hablen de ClusterKnoppix pero solo ahy informacion en ingles y su articulo es muy ilustrado, bueno le dejo mi direccion de correro felipe851211@hotmail.com gracias

Sun Microsystems - Hispanoamérica - Historias principales

Sun HPC Watercooler

Sun Grid Features

Sun Grid Compute Utility Headlines

Intel® Investor Relations

Intel Technology & Research

Supercomputing Online

Grid Meter

Grids now and forever!

West Coast Grid

OASIS Press

EnterTheGrid - the largests directory on Grid computing in the world

Eu-Brein RSS

Scalable Computing - IEEE Technical Committee on Scalable Computing

Semantic Grid

Tangosol, Inc. RSS Feed

Licencia Creative Commons