Software de planificación para generación dinámica de nodos de un

Anuncio
Software de Plantificación para
Generación Dinámica de Nodos de un
Cluster en Linux
Daniel Burbano, MCpE
César Eduardo Guzmán González, IS
Resumen
Abstract
El presente artículo, describe la implementación de la
primera fase del proyecto EVA R-GRID[1], propuesto por
el equipo de investigación en software libre de la Facultad
de Ingeniería de Sistemas de la Universidad El Bosque
(EQUIS).
The present article describes the development of the first
phase of the EVA R-Grid project proposed by the Free
Software Research Group (EQUIS) of the Systems
Engineering Faculty.
Esta fase tiene como objetivo principal desarrollar un
software que permita a un computador formar parte de
un Cluster cuando este se encuentre inactivo mediante la
recolección de datos de desempeño del mismo.
This phase main goal is the development of a software
that allows a computer become a part of a Cluster when it
is idle, through idleness detection. The idleness detection
is accomplished through the collecting of performance
data of the different components of the computer.
Palabras clave: Computación paralela, Proceso de
cargue, cluster, periodos de inactividad, inactividad.
Keywords: Parallel computing, boot process, cluster ,idle
periods, idleness.
20
Universidad El Bosque - Facultad de Ingeniería de Sistemas
I. INTRODUCCIÓN
Actualmente las máquinas de la sala de computadores de
la Facultad de Ingeniería de Sistemas de la Universidad El
Bosque son encendidas en la mañana y apagadas
alrededor de las diez de la noche, lo que indica que están
funcionando mas de doce horas diarias.
Teniendo en cuenta que en gran medida estos equipos se
encuentran la mayor parte del tiempo simplemente
encendidos en espera de ser utilizados, como en las
ocasiones en que en la sala no hay clase y se encuentran
disponibles para el uso de cualquier estudiante, en muchos
no hay una persona haciendo uso de ellos; ya sea
utilizando un procesador de texto o navegando en
Internet; y en gran parte de las veces cuando se está
dictando una clase, los grupos de estudiantes son tan
pequeños que varios computadores no son utilizados,
esto genera intervalos de tiempo en que permanecen
estos equipos encendidos sin ser empleados en la
realización de algún trabajo, además al terminar las clases
algunos computadores permanecen encendidos toda la
noche hasta la mañana del día siguiente por un periodo
aproximado de 8 horas, desperdiciando poder de
procesamiento, memoria y recursos de almacenamiento.
Para aprovechar esos periodos de inactividad de los
computadores, el grupo de investigación en Software
Libre de la Facultad de Ingeniería de Sistemas (EQUIS) ha
propuesto el desarrollo del Entorno Vir tual de
Aprendizaje Remoto en Grid (EVA R-Grid). El objetivo
principal del proyecto EVA R-Grid es desarrollar una
plataforma de aprendizaje virtual que permita realizar
prácticas reales mediante Internet utilizando una
arquitectura de Grid, ofreciendo al estudiante un
ambiente de trabajo que le permite realizar sus prácticas
usando los recursos informáticos con los que dispone el
cluster accediendo a ellos en el momento y lugar que se
ajuste a sus necesidades. El proyecto inicialmente está
enfocado a la enseñanza de herramientas de software
libre pero no se quiere limitar solo a estas herramientas.
Para el funcionamiento del Cluster, y la puesta en marcha
del proyecto, una de las primeras etapas es la
programación y la planificación de los recursos que
formarán parte del Cluster; dado que las máquinas de las
salas de computadores de la Facultad de Sistemas, son de
uso regular por los estudiantes, es necesario hacer que los
equipos formen parte del Cluster cuando no están siendo
utilizados. Para que el tiempo de operación del Cluster sea
lo más óptimo, se necesita que los computadores estén
operando sobre Linux el mayor tiempo posible, a causa de
esto se hace necesario programar la entrada automática
de los equipos que forman parte del Cluster.
En las siguientes secciones se explica el diseño del sistema
de monitoreo que comprende dos módulos principales, el
primer módulo que sirve para el cambio automático del
sistema operativo con el cual inicia el computador y el
sistema de detección de inactividad del computador, que
como su nombre lo indica detecta cuando el computador
no ha sido utilizado.
II. DISEÑO DE LA SOLUCIÓN
Como se mencionó anteriormente, los computadores son
utilizados por estudiantes, evitando esto que los mismos
se ejecuten constantemente sobre el sistema operativo
Linux. Se necesita un sistema que permita cambiar
automáticamente el sistema operativo sobre el cual se
encuentra trabajando el computador para que pase de
estar ejecutando Windows a ejecutar Linux, permitiendo
de esta manera que el computador pase a formar parte del
cluster.
El rol principal del sistema es detectar los periodos de
tiempo en los computadores en los que se encuentra
instalado y que pertenecen a la red, para así poder
aprovechar estos periodos y permitir que sus recursos
sean utilizados por el cluster. Basado en la detección de
estos intervalos de tiempo, el sistema reinicia el
computador para que inicie el sistema operativo Linux, sin
la intervención de ningún usuario.
El diseño del sistema se puede dividir en dos partes
principales, una que maneja la elección del sistema
operativo cuando el computador es iniciado y otra que
maneja la detección de los intervalos de tiempo en los que
la máquina está inactiva.
Elección del Sistema Operativo
El proceso de carga en los computadores [6] se inicia con
el BIOS. Este controla el inicio del computador, después
del POST (Power On Self Test) cuando los componentes de
hardware son inicializados, el BIOS del sistema identifica
el dispositivo de arranque que generalmente es una
partición del disco duro o un disquete, en el caso del disco
duro, lee el primer sector físico de este llamado Master
Boot Record (MBR) y lo carga en memoria, una vez
cargado en memoria, transfiere el control al MBR para
iniciar el proceso de carga del sistema operativo. El
proceso de arranque del computador se puede ver en la
figura 1.
POST
BIOS
MBR
CARGADOR DE
ARRANQUE
Figura 1. Proceso de arranque del computador
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
El MBR contiene la tabla de particiones y un código
ejecutable denominado cargador de arranque (ver figura
2), este examina la tabla de particiones e identifica la
partición activa, una vez localizada la partición activa,
ubica el primer sector de la partición llamado sector de
arranque y lo carga en memoria, finalmente el MBR
transfiere el control del arranque al sector de arranque
cargado en memoria.
Aunque el MBR es independiente del sistema operativo, el
sector de arranque de la partición activa es dependiente
tanto del sistema operativo como del tipo de sistemas de
archivos en el que se encuentra.
INITIAL
PROGRAM
LOADER
una partición FAT de 32MB aproximadamente que
contenga los archivos necesarios para el correcto
funcionamiento del gestor de arranque NTLDR.
La forma como deben quedar distribuidas las particiones
en el disco duro se muestra en la Figura 3.
1ª
Partición
2ª
Partición
FAT
32 MB
NTFS
Designado por
el usuario
3ª
Partición
EXT3
Designado por
el usuario
4ª
Partición
SWAP
Tamaño de RAM
del Sisitema
Figura 3. Particiones para funcionamiento de EVA R-Grid
TABLA DE
PARTICIONES
Figura 2. Componentes del Master Boot Record
El sector de arranque contenido en la partición activa es la
que permite cargar el sistema operativo con el que trabaja
el computador. Uno de los problemas de esta forma de
arranque es que sólo se puede arrancar el sistema
operativo contenido dentro de la partición activa.
Para brindar al sistema la posibilidad de tener varios
sistemas operativos instalados y poder arrancar el que el
usuario elija, se reemplaza el cargador de arranque por
defecto del MBR con otro cargador mas avanzado.
Los cargadores de arranque [6] funcionan en dos etapas,
la primera etapa es cargada por el MBR y la segunda etapa
es la que se encarga de todas las tareas requeridas para
cargar el sistema operativo específico, que ha elegido el
usuario ya sea manualmente o que ha configurado para
que cargue por defecto.
Los cargadores de arranque pueden ser configurados de
dos maneras, como cargador de arranque principal o
como cargador de arranque secundario. Cuando es
configurado como cargador de arranque principal la
primera etapa del cargador es instalada en el MBR, por
otra parte cuando son configurados como secundarios la
primera etapa es instalada en una partición activa, cuando
el MBR es ejecutado, utiliza el sector de arranque de la
partición activa ejecutando así el cargador de arranque.
El cargador de arranque más usado por Linux es Grub,
mientras que el cargador de arranque usado por Windows
NT, Windows 2000 y Windows XP se conoce como Ntldr.
Para el manejo del arranque del sistema operativo se crea
La primera partición debe ser de tipo primaria y debe ser
la primera creada dado que algunos sistemas no aceptan
que la información del arranque del sistema se encuentre
ubicada después del cilindro 1024, imposibilitando que el
computador pueda arrancar algún sistema operativo e
iniciar correctamente.
El sistema se encarga de cambiar el archivo de
configuración del gestor de arranque para que al reiniciar
Windows cargue el sistema operativo Linux.
III. DETECCIÓN DE INACTIVIDAD EN OTROS
SISTEMAS DISTRIBUIDOS
La utilización de computadores personales que no hacen
uso de todos sus recursos para formar parte de un sistema
de procesamiento paralelo o Cluster nació en 1978 como
un proyecto de Xerox, fue llevado a cabo por John F. Shoch
y Jon A. Hupp[4] en su centro de investigación en Palo
Alto, mejor conocido como PARC (Palo Alto Research
Center). El proyecto conocido como Worm o “gusano”
consiste en un programa que se ejecuta en una o más
máquinas. Los programas que son ejecutados en cada
computador individualmente son denominados como los
segmentos del gusano.
Para encontrar los computadores inactivos, cada
segmento que deseaba utilizar una máquina verificaba
mediante una consulta la disponibilidad de esta, una
máquina se consideraba disponible o inactiva cuando
estaba ejecutando un diagnóstico de memoria, al recibir
una respuesta positiva, el segmento se copiaba a través de
la red y solicitaba permiso para ejecutarse, una vez
concedido el permiso se utilizaba el protocolo ftp para
transferir el programa que se iba a ejecutar utilizando el
gusano, al terminar de ejecutarse el programa, el
segmento debía retornar el computador a un estado de
inactividad, para que pudiera ser accedido nuevamente
por el gusano.
21
22
Universidad El Bosque - Facultad de Ingeniería de Sistemas
La idea inicial del proyecto Worm de aprovechar los recursos
de cómputo inactivos fue retomada después por Michael
Litzkow, Miron Livny, y Matt Mutka[5], un grupo de
investigadores en la Universidad de Winsconsin, quienes
fundaron en 1988 el proyecto Condor.
Condor es un sistema especializado en la administración de
trabajos y recursos para trabajos que requieren un poder de
cómputo más grande del normal, como otros sistemas
similares Condor provee un mecanismo para la
administración de los trabajos, unas reglas para la
programación y la prioritización de los mismos, el monitoreo
y la administración de los recursos disponibles.
El funcionamiento básico consiste en que los usuarios envían
sus trabajos hacia Condor y basado en las reglas definidas,
Condor elige cuando y como ejecutarlos, una vez terminada la
ejecución retorna el resultado al usuario. Condor puede
también buscar y administrar poder de cómputo
desperdiciado a través de una red Ethernet, por ejemplo
cuando se configura para ejecutar trabajos en los
computadores solamente cuando el teclado y la CPU están
inactivos. Si un usuario regresa y presiona una tecla, el trabajo
hasta donde ha sido realizado es guardado y enviado a otro
computador para que continúe con el proceso desde donde se
había dejado, esto permite a Condor combinar todo el poder
de cómputo de una organización en un solo gran recurso.
SETI (Search for Extraterrestrial Intelligence) es una institución
establecida en 1984, cuyo objetivo es detectar vida
inteligente fuera del planeta Tierra, una de las formas de
detección es conocida como radio SETI, que usa radio
telescopios para escuchar señales de radio provenientes del
espacio, estas señales no son esperadas que ocurran de forma
natural, así que su detección brindaría evidencia de
tecnología extraterrestre. Analizar un espectro de frecuencia
requiere una gran cantidad de poder de cómputo, así que en
1995 David Gedye[1] propuso hacer el análisis del espectro
mediante una supercomputadora virtual que consistiera en
un gran número de computadoras conectadas mediante
Internet.
El proyecto conocido como seti@home consiste en un
servidor principal que recolecta datos del radio telescopio y
envía porciones de estos datos conocidas como unidades de
trabajo a los clientes que están conectados a él para que los
procesen.
Para la detección de inactividad de los computadores, el
programa cliente de seti@home detecta los periodos de
inactividad mediante el monitoreo de la actividad del usuario,
si este no usa el teclado o el mouse, el computador activa el
protector de pantalla, que es el programa cliente en este caso
y comienza a procesar la información enviada desde el
servidor central.
A. Detección de inactividad en EVA R-Grid
Para la detección de los periodos inactivos del
computador el sistema mide la utilización de los
componentes principales del equipo, como son el
porcentaje de uso del procesador, la cantidad de memoria
utilizada, el número de procesos que se ejecutan
actualmente y el porcentaje de utilización del disco duro.
Durante periodos de una hora el sistema recolecta datos
de uso de los dispositivos antes mencionados y con estos
determina si el computador ha sido o no utilizado a través
de unos umbrales estáticos definidos manualmente por el
administrador del sistema.
Para la recolección de los datos de uso del sistema se
utiliza una librería proporcionada por Windows y que se
viene utilizando desde la version 4.0 de Windows NT,
denominada PDH (Per formance Data Helper).
La librería PDH (Per formance Data Helper) [7] es una
mejora a las capacidades de monitoreo de desempeño de
Windows NT. Los datos de desempeño que Windows NT
proporciona y contienen información para un número
variable de objetos, instancias por objeto, y contadores
por tipo de objeto, los contadores son usados para medir
varios aspectos del desempeño; por ejemplo, el Objeto
Procesador incluye un contador para el porcentaje de
tiempo que el procesador está siendo utilizado.
PDH.DLL
WMI
Hi- Perf Provider InterfaceI
Registry DLL ProviderI
RegQueryValueEx
ADVAPI32.32DLL
System
System
Performance
System
Performance
DLL
Performance
DLL
DLL
PerfLib
Performance
Performance
Extension
Performance
Extension
DLL
Extension
DLL
DLL
Hi-Perf Data
Hi-Perf Data
Provider
Hi-Perf Data
Provider
Object
Provider
Object
Object
Figura 4 Librería Performance Data Helper (PDH)
Para que un programa pueda utilizar las características de
desempeño de Windows NT, es necesario el uso de
funciones que usan el registro de Windows, las funciones
de registro leen los blobs de datos desde la clave
HK EY_PER FOR M A NCE_DATA que cont iene la
información de desempeño; lo que hace la librería PDH es
empaquetar estos datos en una forma que no requiera
ninguna transformación, además la librería permite
especificar el objeto y el contador específico.
Revista de Tecnología - Journal of Technology • Volumen 6, No. 1, Enero - Junio 2007
B. Funcionamiento básico del sistema de monitoreo de
inactividad.
El funcionamiento del sistema de monitoreo de
inactividad de EVA R-Grid puede resumirse en los
siguientes pasos.
deben evaluar varios que comprendan características
importantes de la máquina como el uso de procesador, el
uso de memoria, el uso de disco duro y la cantidad de
procesos ejecutándose, para de esta manera poder hacer
un análisis más efectivo de la actividad total del equipo.
REFERENCIAS
1. El sistema inicia al arrancar el sistema operativo
Windows.
2. Verifica la hora y revisa en el horario si el computador
debe ser reiniciado. En caso de tener que ser reiniciado
modifica el archivo boot.ini para que el sistema operativo
Linux, arranque por defecto al iniciar el computador.
3. Si no es reiniciado, el sistema comienza a recolectar
datos de uso de los componentes del computador
mencionados anteriormente.
4. Al cambiar de hora, analiza los datos recolectados,
para determinar si el computador ha estado activo y
marca la hora en el horario para que el computador sea
reiniciado.
5. Vuelve al paso 2.
De esta manera, el sistema de monitoreo combina la
detección de inactividad, con el cambio del sistema
operativo, para manejar de manera automática el cambio
en el modo de operación del computado, para que pueda
formar parte del Cluster.
CONCLUSIONES
[1]ANDERSON, David P., et al. SETI@home: an
ex p er iment in public-re s ourc e comput ing En
Communications of the ACM, n.11. Vol 45 November
2002; p.56-61.
[2] BURBANO, Daniel; SABOGAL, Guiovanna y
ORGANISTA, Pedro. Entorno virtual de aprendizaje
remoto sobre Grid, EVA R-GRID. En: Revista de
Tecnología. V.5, No.1 (enerojunio 2006); p. 13-20
[3] BONNEY, Laurence. Boot Loader showdown: Getting
to know LILO and GRUB En:DeveloperWorks Linux de
IBM.[Página Web].2005,[consultado 15 septiembre
2006]. disponible en
< H t t p : / / w w w - 1 2 8 . i b m .c o m / d e v e l o p e r w o r k s /
linux/library/l-bootload.html>.
[4] SHOCH, John y HUPP, Jon. The `Worm' Programs -Early Experience with a Distributed Computation En
Communications of the ACM, n.3. vol.25, march 1982; p.
172-180.
[5] THAIN, Douglas;TANNENBAUM, Todd y BERMAN,
Livny. CONDOR AND THE GRID En BERMAN, Fran;
HEY, J. G. Anthony y FOX, Geoffrey. Grid Computing:
Making The Global Infrastructure a Reality.Inglaterra.
John Wiley & Sons Ltd, 2003.p. 299-332.
Al implementar un sistema de detección de inactividad se
debe tener en cuenta la carga que genera el programa en
los componentes para que los datos obtenidos sean
confiables y reflejen el verdadero desempeño de las
diferentes partes del equipo que están siendo medidas, el
programa debe hacer un uso eficaz de la memoria
disponible y debe utilizar la menor cantidad de memoria
posible para no afectar el rendimiento normal del equipo.
[6] USA,Microsoft Corporation, Soporte Microsoft
[do cument ación en line a], disp onible en
<http://support.Microsoft.com/kb/114841/>.
Además es importante resaltar que los parámetros
seleccionados para la detección del equipo no pueden ser
usados independientemente, es decir, que un solo
parámetro no refleja la utilización total del equipo, se
[ 7 ] USA , M i c r o s o ft Co r p o r a t i o n , M s d n
librar y[document ación en linea], disponible en
http://msdn.Microsoft.com/library/default.asp?url=/libra
ry/enus/perfctrs/perf/performance_counters_portal.asp
Artículo de investigación Científica y Tecnológica. Sometido a Arbitraje.
Los Autores
Daniel Alberto Burbano Sefair
Ingeniero electrónico, MCpE Ingeniería Eléctrica y Computadoras, docente de la Facultad de Sistemas de la
Universidad El Bosque, Coordinador línea Grid Computing del Equipo de Investigación en software Libre.
e-mail: [email protected]
Cesar Eduardo Guzmán
Ingeniero de Sistemas Universidad el Bosque, realizó su proyecto de grado bajo la línea de Grid Computing
del Equipo de investigación en Software Libre de la Universidad el Bosque, trabajo que fue reconocido como
Laureado en el 2007.
e-mail: [email protected]
23
Descargar