Administración de un clúster de procesamiento desde dispositivos móviles con Android
A Processing Cluster's Administration from the Android Mobiles Devices
Diego Germán Amézquita-Mesa*
Germán Amézquita-Becerra**
Omaira Isabel Galindo-Parra***
* App Solutions (Tunja, Boyacá - Colombia). amdgerman@gmail.com
** M.Sc. Universidad Pedagógica y Tecnológica de Colombia (Tunja, Boyacá - Colombia). german.amezquita@uptc.edu.co
*** Universidad Pedagógica y Tecnológica de Colombia (Tunja, Boyacá - Colombia). omaira.galindo@uptc.edu.co
Fecha de Recepción: 29 de Diciembre de 2013 Fecha de Aprobación: 28 de Enero de 2014
Resumen
Este artículo describe el proceso de implementación de un sistema de administración y monitoreo para el clúster de procesamiento (grupo de servidores), propuesto por el grupo de investigación INFELCOM, perteneciente a la Universidad Pedagógica y Tecnológica de Colombia, Uptc. El sistema fue implementado usando servicios web y programación para móviles con Android. Dicho sistema permite a los usuarios monitorear el estado del clúster en tiempo real desde su dispositivo móvil, y realizar algunas actividades preventivas o correctivas, disminuyendo así el tiempo de respuesta para solucionar los inconvenientes presentados. Las actividades que puede realizar el usuario son configurables por el administrador del sistema, a través de la creación y configuración de comandos acordes con las necesidades.
Palabras clave: Administración de clúster, Desarrollo de aplicaciones móviles, servicios web, clúster de procesamiento.
Abstract
This article describes the monitoring and administration system implementation process, for the processing cluster (servers group) proposed by the INFELCOM Research Group, which belongs to the Pedagogical and Technological University of Colombia, UPTC. The system was implemented by using web services and mobile programming for android devices.
This system allows the users to check from their mobile devices, the cluster state in real time, so they can make some preventives and/ or correctives actions, and by that, decreasing the response time to solve the problems. The activities that the user can do are configurable by the system administrator, through the creation and configuration commands, according to their needs.
Keywords: Cluster Administration, Mobile Applications Development, Web Services, Processing Cluster.
I. Introducción
En los procesos académicos e investigativos es indispensable aprovechar todos los recursos disponibles (hardware, software y humano), de tal manera que se establezcan infraestructuras que apoyen la obtención de nuevo conocimiento; es así como la Escuela de Ingeniería de Sistemas y Computación, de la Universidad Pedagógica y Tecnológica de Colombia, y en particular el Grupo de Investigación en Informática, Electrónica y Comunicaciones, INFELCOM, conformó un clúster de procesamiento que contribuye a generar conocimiento, desde el proceso de selección de la infraestructura por utilizar, hasta el aprovechamiento en los procesos investigativos de otras áreas.
Teniendo en cuenta que la tecnología dispuesta para el clúster puede presentar fallas de diferente índole, se hace indispensable buscar mecanismos que permitan disminuir los tiempos de respuesta en la solución de los problemas; es por esto que se determinó como solución el desarrollo de una aplicación para dispositivos móviles, desde la cual se puede monitorear el estado del clúster y realizar algunas acciones preventivas y correctivas.
El sistema de monitoreo y administración se desarrolló para móviles con sistema operativo Android 2.3 o superior, adicionando librerías para cumplir con los patrones definidos por Google [1], para mejorar la presentación de la aplicación.
Este artículo se centra en describir el proceso y la integración de elementos que permiten la administración del clúster desde dispositivos móviles con sistema operativo Android, exponiendo los diferentes aspectos que se tuvieron en cuenta para dicho proceso.
II. Clúster de procesamiento del grupo Infelcom
El clúster dispuesto por el grupo INFELCOM tiene como finalidad mejorar el rendimiento en la ejecución de algoritmos que requieran grandes cantidades de tiempo-máquina, y, por ende facilitar la obtención de resultados en los procesos investigativos.
Como todo proceso de investigación requiere de una etapa de experimentación, al clúster se le han realizado múltiples cambios, tanto en la cantidad de nodos de ejecución como en las características técnicas de cada uno de ellos, con el fin de conocer a fondo de forma más detallada su funcionamiento, sus fortalezas y debilidades.
En la actualidad, como se presenta en la Fig. 1, el clúster se encuentra conformado a nivel de hardware por:
Dos servidores "Blade HP" [2] (con dos procesadores Xeon de 4 núcleos cada uno).
Dos WorkStation con un procesador Xeon cada uno.
Y a nivel de software por:
Sistema operativo Linux Centos en versiones iguales o superiores a la 5.5; con esta configuración se ha establecido un clúster homogéneo.
Condor [3]: Es el programa encargado de administrar la carga de trabajo del clúster, permitiendo que se transfieran los programas y datos a cada uno de los nodos seleccionados para el procesamiento, teniendo en cuenta que por cada núcleo del procesador se debe realizar dicha transmisión, dado que serán los encargados de realizar el procesamiento; para los procesadores INTEL, que utilizan tecnología Hiper-threading [4], por cada núcleo se pueden ejecutar dos procesos simultáneos; por lo tanto, se transmiten dos copias de los programas y los datos para cada núcleo que se utilice.
MPI (Message Passing Interface) [5]: Corresponde a un conjunto de librerías que permiten a los procesos comunicarse y compartir información, y adicionalmente permite implementar la programación concurrente y, por ende, el aprovechamiento de los múltiples procesadores.
Gcc-c++ [6]: Lenguaje de programación con soporte a la programación estructurada y orientada a objetos, con el cual se desarrollan los algoritmos para ser ejecutados en el clúster.
• Shell [7]: Lenguaje de programación que se fundamenta en la interpretación de comandos en plataformas Linux y Unix, y corresponde a una de las herramientas más utilizadas por los administradores de estos sistemas operativos.
Como resultado se ha establecido una arquitectura mínima que permite aprovechar la escalabilidad y la adaptabilidad para dos tipos de configuraciones [8]:
Clúster de alto rendimiento [3]: que permite que los nodos o dispositivos pertenecientes al clúster trabajen en forma paralela, dividiendo los procesos grandes en unos más pequeños, los cuales son ejecutados por cada uno de los nodos.
Clúster de alta disponibilidad [3]: garantiza que siempre se cuente con la disponibilidad de los recursos de cómputo necesarios para cumplir una tarea; siempre y cuando no sobrepase la capacidad de cómputo disponible en el clúster.
III. Metodología y administración del clúster desde móviles Android
Esta investigación fue dirigida por las fases descritas en la metodología de desarrollo XP (Extreme Programing) [10], las cuales permitieron realizar un desarrollo rápido e interactuar con el administrador y usuarios del clúster durante todo el proyecto, de tal manera que permitió encontrar la mejor manera de interactuar con el clúster desde los dispositivos móviles. De acuerdo con la metodología XP, se implementaron las fases de: planificación, diseño, desarrollo y pruebas. Para el desarrollo del proyecto se tomó como base la infraestructura del clúster, y sobre esta se implementó el sistema de administración y monitoreo del clúster.
Como se evidencia en la Fig. 2, uno de los servidores se ha destinado a contener máquinas virtuales, que cumplen tareas específicas para el funcionamiento del clúster; para los propósitos de la administración del clúster se ha instalado una nueva máquina virtual, que contendrá los servicios indispensables para soportar el sistema de administración y monitoreo del clúster.
A. Programas instalados
Apache-Tomcat en su versión 7.0.30 [11]: Corresponde a un contenedor de aplicaciones web, sobre el cual se instaló el servicio web encargado de recibir y enviar peticiones http.
MySQL en su versión 5.5.27 [12]: Soporta el almacenamiento de la información necesaria para administrar el clúster.
SSH (Secure Shell) [13]: Programa que permite el acceso a servidores de forma remota y segura; para ello cada uno de los nodos tiene instalado un servidor SSH.
JSCH [14]: Librería de Java, que permite conexión desde java vía SSH a los nodos del clúster.
B. Implementación de la aplicación para la administración
Para lograr la administración remota del clúster se han establecido dos aplicaciones que interactúan, así:
Servidor Web: Esta aplicación está orientada a recibir peticiones desde los móviles, validarla, almacenarla y ejecutarla en los nodos que el usuario solicite, y posteriormente enviar los resultados al móvil en los formatos preestablecidos (ver Fig. 3).
Aplicación móvil: La aplicación se ha diseñado e implementado para Android en su versión 2.3 o superior, con lo que se busca disminuir los limitantes para realizar las actividades de monitoreo o actividades preventivas o correctivas sobre el clúster. Adicionalmente, esta aplicación se ha diseñado teniendo en cuenta los patrones de diseño planteados por Google [1]; para ello se han utilizado las librerías ActionBarSherlock [15], CardUI [16] y SlidingMenu [17], cada una de las cuales cumple con distintos aspectos; también se ha utilizado la librería AndroidPlot [18], para la realización de gráficas.
C. Funcionamiento del servidor web
El funcionamiento del servidor web se centra en dos actividades, principalmente; la primera, orientada a la configuración de los comandos (ver Fig. 3), y la segunda, a la ejecución de estos sobre los nodos del clúster (ver Fig. 3, parte inferior).
Desde la aplicación móvil, el administrador del sistema, a través del módulo de configuración de comandos, crea o modifica cada una de las acciones que se podrán ejecutar sobre el clúster; estas configuraciones corresponden a la construcción de "shells", que son almacenados en la base de datos para su posterior utilización. En su etapa de instalación inicial se han establecido 8 acciones (ver Tabla 1).
Teniendo en cuenta que este tipo de clúster es escalable y, al mismo tiempo, puede ser heterogéneo, a los comandos se les han adicionado tags que permiten identificar el sistema operativo o versiones particulares sobre las cuales correrá el "shell"; de esta manera se puede definir más de un "shell" para el mismo comando.
La estructura de los comandos "shells", está definida por:
Message: corresponde a un mensaje de advertencia que se despliega en el móvil, y puede ser utilizado para informar las características del comando y su importancia.
Command: corresponde a los comandos enmarcados dentro de una etiqueta, que identifica el sistema operativo.
Name: en caso de ser un comando compuesto, se puede especificar el nombre de cada una de las subdivisiones, seguido de un nuevo comando. Esto permite que en el móvil aparezca un submenú, con cada una de las opciones para el mismo comando.
Adicionalmente, se han definido parámetros generales de configuración que establecen algunas reglas para el funcionamiento del sistema, como son: la cantidad de peticiones simultáneas y los tiempos máximos de respuesta para considerar que la comunicación se ha perdido, entre otras.
La ejecución de los comandos sobre el clúster está sujeta a la correcta instalación y configuración del servidor SSH sobre cada uno de los nodos del clúster. Cumpliendo con este requisito, el comando es extraído de la base de datos y enviado al nodo, o nodos, en los cuales se requiere de su ejecución. Es importante destacar que la pérdida de comunicación con alguno de los nodos requiere de la intervención directa del administrador sobre el nodo afectado, con el fin de realizar la revisión y los ajustes necesarios para su puesta en funcionamiento.
IV. Conclusiones
Dependiendo del tamaño y el uso, un clúster de procesamiento requiere de una administración especializada y oportuna, lo que los hace poco atractivos para muchos investigadores y administradores de sistemas; sin embargo, establecer mecanismos de monitoreo y administración de fácil manejo y disponibles desde cualquier móvil con acceso a Internet hace que los administradores encuentren puntos a favor.
La implementación de este tipo de sistemas se encuentra limitada por la cantidad de recursos disponibles para realizar las pruebas, y así evaluar el correcto funcionamiento cuando se cuenta con cientos o miles de nodos en un clúster.
El diseño establecido por el sistema permite que no solo los clúster de procesamiento sean monitoreados, sino cualquier servidor, grupo de servidores o computadores de escritorio, gracias a la facilidad para crear comandos ajustados a los sistemas operativos y necesidades de los administradores.
V. Trabajos futuros
Debido a que Android no es el único sistema operativo móvil, en la actualidad es recomendable crear aplicaciones con las mismas funcionalidades en los demás sistemas operativos: iOS, Windows Phone, Blackberry OS, Firefox OS y entre otros.
Teniendo en cuenta que el clúster de procesamiento del grupo de investigación INFELCOM tiene como uno de sus objetivos la integración con otros clúster de procesamiento externos a la Universidad, a través de RENATA, se hace indispensable realizar los estudios, diseños e implementaciones necesarias para que este sistema sea promovido a un sistema de monitoreo y gestión de una malla computacional.
Los clústers de procesamiento existentes en el mundo están construidos en diferentes arquitecturas y en sistemas heterogéneos; por lo tanto, se recomienda realizar un análisis de los parámetros necesarios, para que este sistema se adapte a diferentes clúster de procesamiento.
Referencias
[1] Google. Patterns. [Online]. HYPERLINK "http://developer.android.com/about/index.html".
[2] Hewlett Packard. [Online]. HYPERLINK "http://h17007.www1.hp.com/us/en/enterprise/servers/bladesystem/index.aspx"\l ".UkuLnoafjNk".
[3] Condor Team. HTCondor. [Online]. HYPERLINK "http://research.cs.wisc.edu/htcondor/htc.html" http://research.cs.wisc.edu/htcondor/htc.html.
[4] Intel. http://www.intel.es/content/www/es/es/architecture-and-technology/hyper-threading/hyper-threading-technology.html?wapkw=hper+threading. [Online].
[5] Argonne National Laboratory. [Online]. HYPERLINK "http://www.mcs.anl.gov/research/projects/mpi/".
[6] Free Software Foundation Inc. GNU. [Online]. HYPERLINK "http://gcc.gnu.org/".
[7] The University of Utah. [Online]. HYPERLINK "http://web.utah.edu/thorne/computing/L03_cshell_part1.pdf".
[8] J. M. Bravo-Caro. Universidad de Huelva. [Online]. HYPERLINK "http://www.uhu.es/josem.bravo/AD/Tema3.pdf".
[9] Hewlett-Packard. Servidores Blade. [Online]. HYPERLINK http://www8.hp.com/us/en/products/enclosures/index.html#!view=grid&page=1.
[10] A gentle introduction. Extreme Programming. [Online], HYPERLINK http://www.extremeprogramming.org/.
[11] The Apache Software Foundation. [Online]. HYPERLINK "http://tomcat.apache.org/".
[12] MySQL. [Online]. HYPERLINK "http://www.mysql.com/products/".
[13] W. Stallings. Cisco. [Online]. HYPERLINK "http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_12-4/124_sshhtml".
[14] JCraft Inc. JCraft. [Online]. HYPERLINK "http://www.jcraft.com/jsch/".
[15] ActionBarSherlock. [Online]. HYPERLINK "http://actionbarsherlock.com/".
[16] NADAV FIMA. [Online]. HYPERLINK "http://nadavfima.com/cardsui-view-library/".
[17] Github. [Online]. HYPERLINK "https://github.com/jfeinstein10/SlidingMenu".
[18] AndroidPlot. [Online]. HYPERLINK "http://androidplot.com/".