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.

 

Guia Practica de Comandos Basicos en Linux

Guia Practica de Comandos Basicos en Linux

David Andrés Buitrago Arenas

Universidad Manuela Beltrán

Ingeniería de Sistemas


Objetivo

Dar a conocer los comandos mas usados en Linux de igual forma profundizar en el uso de protocolos de comunicación como ftp, ssh, subir y bajar procesos del sistema y de igual forma con los demonios del sistema.



Comando

Descripción

Ejemplos

cat fich1 [...fichN]

Concatena y muestra un archivos

cat /etc/passwd

archivos

cat dict1 dict2 dict

Cd

Cambia de directorio

cd /tmp

ls

Lista el contenido del directorio

ls -l /usr/bin

pwd

Muestra la ruta del directorio actual

Pwd

rm fich

Borra un fichero.

rm foo.c

rm -r dir

Borra un todo un directorio

rm -rf prog_dir

rmdir dir

Borra un directorio vacío

rmdir prog_dir

find dir test acción

Encuentra archivos.

find . -name ``.bak'' -print

grep [-cilnv] expr archivos

Busca patrones en archivos

grep mike /etc/passwd

mkdir dir

Crea un directorio.

mkdir tmp

mv fich1 ...fichN dir

Mueve un archivo(s) a un directorio

mv a.out prog1

mv fich1 fich2

Renombra un archivo.

mv .c prog_dir

less / more fich(s)

Visualiza página a página un archivo.

more muy_largo.c

less acepta comandos vi.

less muy_largo.c

ln [-s] fich acceso

Crea un acceso directo a un archivo

ln -s /users/mike/.profile .

tail -count fich

Muestra el final de un archivo

tail prog1.c

vi fich

Edita un archivo.

vi .profile



Comando/Sintaxis

Descripción

Ejemplos

at [-lr] hora [fecha]

Ejecuta un comando mas tarde

at 6pm Friday miscript

cal [[mes] año]

Muestra un calendario del mes/año

cal 1 2025

date [mmddhhmm] [+form]

Muestra la hora y la fecha

date

echo string

Escribe mensaje en la salida estándar

echo ``Hola mundo''

kill [-señal] PID

Matar un proceso

kill 1234

man comando

Ayuda del comando especificado

man gcc

man -k printer

passwd

Cambia la contraseña.

passwd

ps [axiu]

Muestra información sobre los procesos

ps -ux

que se están ejecutando en el sistema

ps -ef

who / rwho

Muestra información de los usuarios

who

conectados al sistema.

Comparación de Comandos Linux / DOS

Linux

DOS

Significado

cat

type

Ver contenido de un archivo.

cd, chdir

cd, chdir

Cambio el directorio en curso.

chmod

attrib

Cambia los atributos.

clear

cls

Borra la pantalla.

ls

dir

Ver contenido de directorio.

mkdir

md, mkdir

Creación de subdirectorio.

more

more

Muestra un archivo pantalla por pantalla.

mv

move

Mover un archivo o directorio.

rmdir

rd, rmdir

Eliminación de subdirectorio.

rm -r

deltree

Eliminación de subdirectorio y todo su contenido.





FTP

Acrónimo de File Transfer Protocol (Protocolo de Transferencia de Ficheros), que permite transmitir datos entre dos ordenadores conectados a Internet. En realidad, FTP es una forma especial de conectarse (login) a otro ordenador para recuperar y/o enviar archivos. Mediante FTP puedes traer archivos de un ordenador al tuyo -lo que se denomina download-, pero también puedes copiar los tuyos a otro ordenador -a esta acción se la suele denominar upload


comandos basicos:


get: Para bajar ficheros
put: Para subir ficheros
lid: Especifica el directorio local sobre el que vamos a trabajar
cd: se utiliza para moverse a través de los directorios
delete: borra un fichero del servidor remoto
oppend: permite reanudar una descarga que haya sido interrumpida
open: abre una sesión en el FTP
close: termina la sesión con el FTP
bye: cierra la sesión y sale del programa de forma que todas las sesiones abiertas se cierran
ls: muestra el contenido del servidor remoto
mput: sube varios ficheros al servidor
mget: baja varios ficheros al ordenador local
user: sirve para cambiar el usuario con el que nos hemos conectado al FTP
bynary: nos sitúa en modo binario
ascii: nos sitúa en modo de ficheros de texto


SSH

Es el nombre de un protocolo y del programa que lo implementa. Este protocolo sirve para acceder a máquinas a través de una red, de forma similar a como se hacía con telnet. La diferencia principal es que SSH usa técnicas de cifrado para que ningún atacante pueda descubrir el usuario y contraseña de la conexión ni lo que se escribe durante toda la sesión; aunque es posible atacar este tipo de sistemas por medio de ataques de REPLAY y manipular así la información entre destinos.

Daemons

Un Daemon (demonio en español) es un script, un proceso que normalmente esta cargado en memoria esperando una señal para ser ejecutado.

Que estén cargados en memoria no significan que ocupan CPU por lo que por muchos que tengamos, podremos trabajar sin problemas con el ordenador.

Los daemons son procesos que se ejecutan en modo background.
Normalmente cada daemon tiene asociado un shell script situado en la carpeta /etc/init.d/ que nos permite iniciarlo, pararlo o ver su estado.
Esta carpeta puede variar dependiendo de la distribución, ya que por ejemplo en red hat están en /etc/rc.d/

Para arrancar, lanzar un daemon tenemos que utilizar el comando start.

Para pararlo tendremos que utilizar el comando stop.

Preferible utilizar help, o hacer el intento /etc/init.d/eldemonio [ENTER], seguido saldra las intrucciones como reiniciar, parar, iniciar, el estado.

El comando restart reinicia el daemon haciendo que se vuelvan a leer los archivos de configuración del mismo.

Para ejecutar un daemon debemos llamarlo con su ruta completa y pasarle el parámetro que nos interese.

Bibliografía

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