El mantenimiento de un sistema resulta incluso más delicado y costoso (en tiempo) que su correcta instalación. En este capítulo se tomará contacto con todas las herramientas con las que cuenta openMosix para poder gestionar tu sistema.
La recomendación que lanzamos desde este manual es que pruebes con ellas para conocer exactamente la respuesta de tu cluster, ya que más tarde puede facilitarte la detección de errores o configuraciones poco adecuadas.
|
migrate [PID] [openMosix_ID] envia una petición de migrado del proceso identificado con el ID, al nodo que indiquemos..
mon es un monitor de los daemons basado en el terminal y da información relevante sobre el estado actual que puede ser visualizada en diagramas de barras.
mosctl es la principal utilidad para la configuración de openMosix. Su sintaxis es:
mosctl [stay|nostay] [block|noblock] [quiet|noquiet] [nomfs|mfs] [expel|bring] [gettune|getyard|getdecay]
mosct whois [openMosix_ID|IP-address|hostname] mosct [getload|getspeed|status|isup|getmem|getfree|getutil] [openMosix_ID] mosctl setyard [Processor-Type|openMosix_ID||this] mosctlsetspeed interger-value mosctlsetdecay interval [slow fast]
Con mosrun ejecutaremos un comando especialemte configurado en un nodo establecido.
El comando mosrun puede ser ejecutado con diversas opciones.
Para evitar complicaciones innecesarias viene con ciertas pre-configuraciones para ejecutar las tareas con configuraciones especiales de openMosix.
|
setpe es una utilidad de configuración manual del nodo sintaxis:
setpe -w -f [hpc_map] setpe -r [-f [hpc_map]] setpe -off
-w lee la configuración de openMosix desde un fichero (normalmente /etc/hpc.map).
-r escribe la configuración actual de openMosix en un fichero (normalmente /etc/hpc.map).
-off desactiva la configuración actual del cluster.
tune es una utilidad de calibración y optimización de openMosix (para más información recurra a las páginas man de tune).
Existen utilidades adicionales a la interfície de /proc y a las línias de comandos. Por ejemplo existen unos parches para ps y para top (llamados mps y mtop) los cuales muestran adicionalmente el ID de nuestro nodo openMosix en una columna. Esta posibilidad es interesante para encontrar dónde ha migrado un cierto proceso.
Para clusters pequeños pueden sernos muy útiles las utilidades de openMosixView, una GUI para las tareas de administración más comunes y que más adelante se detalla en un capítulo.
omdiscd genera un envío de paquetes multicast (a todas las direcciones, en nuestro caso, nodos) para notificar a los otros nodos que hemos añadido uno nuevo. Esto significa que al añadir un nodo sólo tendremos que iniciar omdiscd en él.
Debemos ocuparnos de algunos requisitos previos como pueden ser una buena configuración de la red de interconexión de los nodos, principalmente para el correcto enrutamiento de paquetes. Sin una ruta por defecto deberemos especificar a omdiscd la interfície con la opción -i. De otra forma acabará con un error parecido al siguiente:
Aug 31 20:41:49 localhost omdiscd[1290]: Unable to determine address of default interface. This may happen because there is no default route configured. Without a default route, an interface must be: Network is unreachable Aug 31 20:41:49 localhost omdiscd[1290]: Unable to initialize network. Exiting.
Un ejemplo de buena configuración podría ser la siguiente:
[root@localhost log]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 10.0.0.99 0.0.0.0 UG 0 0 0 eth0
La importancia de poder automatizar el reconocimiento de nuevos nodos conectados al sistema ha facilitado que se llegue a la simplicidad con la que contamos actualmente para iniciar dicha detección, con el comando omdiscd.
Ahora echando un vistazo a los logfiles tendríamos que ver algo parecido a
Sep 2 10:00:49 oscar0 kernel: openMosix configuration changed: This is openMosix #2780 of 6 configured) Sep 2 10:00:49 oscar0 kernel: openMosix #2780 is at IP address 192.168.10.220 Sep 2 10:00:49 oscar0 kernel: openMosix #2638 is at IP address 192.168.10.78 Sep 2 10:00:49 oscar0 kernel: openMosix #2646 is at IP address 192.168.10.86 Sep 2 10:00:49 oscar0 kernel: openMosix #2627 is at IP address 192.168.10.67 Sep 2 10:00:49 oscar0 kernel: openMosix #2634 is at IP address 192.168.10.74
Tendremos el cluster listo para ser utilizado.
omdiscd tiene otras opciones entre las que cuentan poder ejecutarse como un demonio (por defecto) o en background (segundo plano) donde la salida será la pantalla (la salida estándar), con el comando omdiscd -n. La interfície, como ya se ha indicado, debe ser especificada con la opción -i.
Ahora vamos a ver brevemente la herramienta showmap. Esta utilidad nos mostrará el nuevo mapa.
[root@oscar0 root]# showmap My Node-Id: 0x0adc Base Node-Id Address Count ------------ ---------------- ----- 0x0adc 192.168.10.220 1 0x0a4e 192.168.10.78 1 0x0a56 192.168.10.86 1 0x0a43 192.168.10.67 1 0x0a4a 192.168.10.74 1
Existen otras muchas utilidades que pueden sernos útiles para la detección automática de nodos, como un mecanismo de routing para clusters con más de una red de conexión. Toda esta información es actualizada constantemente y podremos encontrarla en los ficheros README y DESIGN de las herramientas de usuario.
#define ALPHAtendremos que comentarla ya que nosotros estamos trabajando en plataforma x86.
Si quisiéramos tener un historial más detallado podemos editar main.c para escribir
log_set_debug(DEBUG_TRACE_ALL); (en la línia 84 aproximadamente)
ahora podremos ejecutar
make clean
make
Esto ocurre con algunas targetas PCMCIA. Una solución posible sería poner la interfície en modo promíscuo, tal como se detalla seguidamente:
Aug 31 20:45:58 localhost kernel: openMosix configuration changed: This is openMosix #98 (of 1 configured) Aug 31 20:45:58 localhost kernel: openMosix #98 is at IP address 10.0.0.98 Aug 31 20:45:58 localhost omdiscd[1627]: Notified kernel to activate openMosix Aug 31 20:45:58 localhost kernel: Received an unauthorized information request from 10.0.0.99
Algo que podríamos probar es forzar manualmente nuestro NIC a modo promíscuo y/o multicast, así:
ifconfig ethx promisco
ifconfig ethx multicast
Podremos ejecutar igualmente
tcpdump -i eth0 ether multicast
Si se nos muestra simulated es que seguramente hemos olvidado poner el comentario a la línia #define ALPHA, sería:
Aug 31 22:14:43 inspon omdiscd[1422]: Simulated notification to activate openMosix [root@inspon root]# showmap My Node-Id: 0x0063 Base Node-Id Address Count ------------ ---------------- ----- 0x0063 10.0.0.99 1 [root@inspon root]# /etc/init.d/openmosix status OpenMosix is currently disabled [root@inspon root]#