SciELO - Scientific Electronic Library Online

 
 issue37Study of Energetic Advantage in a Reactive Distillation Process Using Internal and External Streams MethodAccessibility analysis applied to the Distribution of Compressed Natural Gas author indexsubject indexarticles search
Home Pagealphabetic serial listing  

Services on Demand

Article

Indicators

Related links

  • On index processCited by Google
  • Have no similar articlesSimilars in SciELO
  • On index processSimilars in Google

Share


Revista de Ingeniería

Print version ISSN 0121-4993

rev.ing.  no.37 Bogotá July/Dec. 2012

 

Clusters computacionales para la investigación: personalizables, eficientes, amigables y a costo cero

Research Computational Clusters: Customizable, Efficient, Easy to use and Free

Harold Enrique Castro Barrera(1)*, Edgar Eduardo Rosales Rosero(2)*, Mario José Villamizar Cano(3)*

(1) Doctor en Informática. Profesor asociado del Departamento de Ingeniería de Sistemas y Computación hcastro@uniandes.edu.co

(2) Magister en Ingeniería de Sistemas y Computación ee.rosales24@uniandes.edu.co

(3) Magister en Ingeniería de Sistemas y Computación. Profesor Instructor del Departamento de Ingeniería de Sistemas y Computación. mj.villamizar24@uniandes.edu.co

(*) Universidad de los Andes, Bogotá D.C., Colombia.

Recibido 25 de septiembre de 2011, aprobado 26 de octubre de 2012.


PALABRAS CLAVES

Sistemas distribuidos, hardware, software, progreso científico y tecnológico.

RESUMEN

Este artículo presenta UnaGrid/UnaCloud: una solución de infraestructura computacional oportunista, que provee recursos computacionales fundamentales (procesamiento, almacenamiento y redes) a bajo costo y por demanda, para soportar proyectos académicos y de e-Ciencia. La infraestructura computacional propuesta se provee a través del aprovechamiento oportunista de recursos computacionales ociosos, disponibles en un campus universitario. En este artículo se describen las arquitecturas definidas, las implementaciones desarrolladas y los casos de estudio. Los resultados obtenidos evidencian una alta eficiencia en la generación de resultados, superando las limitaciones de proyectos dependientes de un ágil aprovisionamiento de recursos computacionales, incluyendo iniciativas académicas y científicas.

KEY WORDS

Distributed systems, hardware, software, scientific and technological progress.

ABSTRACT

This paper presents UnaGrid/UnaCloud: an opportunistic computing infrastructure solution, which provides fundamental computing resources (processing, storage and networking) on demand and at lower cost, to support academic and e-Science projects. The proposed computing infrastructure is provided through the opportunistic use of idle computing resources available in a university campus. This paper describes the architectures defined, implementations deployed and test cases. The results obtained evidence high efficiency in result generation, improving limitations of projects depending on the agile provision of large computational capabilities, including scientific and academic initiatives.


INTRODUCCIÓN

Importantes avances científicos a nivel mundial, incluyendo disciplinas como la bioinformática, la ingeniería química, la física de altas energías, entre otras, han sido logrados a través de la utilización de infraestructuras cluster y grid computing dedicadas, capaces de proveer enormes capacidades de pro-cesamiento y almacenamiento [1]. Como una alternativa a las infraestructuras computacionales dedicadas, instituciones académicas han desarrollado diferentes iniciativas que buscan aprovechar la capacidad ociosa de computadores de escritorio convencionales, como aquellos utilizados por estudiantes, docentes y empleados administrativos [2]. Debido a la cantidad disponible de estos computadores y el hecho de que los mismos tienden a estar subutilizados por periodos significativos de tiempo; estas iniciativas proporcionan soluciones de infraestructura a gran escala y son muy atractivas económicamente. Desde el año 2007, en la Universidad de los Andes, se ha estado desarrollado UnaGrid [3], un proyecto que utiliza recursos computacionales ociosos para suplir a bajo costo, los enormes requerimientos computacionales de proyectos de e-Ciencia en áreas como la bioinformática, la ingeniería industrial y la ingeniería química, entre otras.

A pesar de sus notables logros, UnaGrid tiene limitaciones en el nivel de usabilidad y personalización del despliegue de infraestructuras computacionales dispuestas para su aprovechamiento por parte de los usuarios finales. Estas infraestructuras deben pre configurarse manualmente, implicando tiempos considerables para procesos de administración y despliegue. Estas problemáticas han sido abordadas por novedosos paradigmas de la computación, como es el caso de cloud computing [4], el cual permite ocultar la mayoría de complejidades asociadas a las infraestructuras computacionales, proporcionando acceso bajo demanda a servicios computacionales personalizables, de alta usabilidad y siempre disponibles a través de Internet. En cloud computing destaca el modelo Infrastructure as a Service (IaaS), del cual existen múltiples iniciativas académicas y comerciales, sin embargo, todas ellas están enfocadas en proveer recursos computacionales haciendo uso de infraestructuras dedicadas, que implican grandes inversiones en hardware y costos asociados a su mantenimiento.

Con el fin de retomar los beneficios obtenidos a través de UnaGrid y acceder a aquellos asociados al novedoso paradigma cloud computing, en 2009 se inició el desarrollo de una nueva solución de infraestructura denominada UnaCloud. El objetivo de UnaCloud es proveer grandes capacidades computacionales por medio de un modelo IaaS oportunista, esto es, el aprovechamiento de computadores de escritorio convencionales para la provisión bajo demanda de infraestructuras computacionales como un servicio. Además de agrupar grandes capacidades computacionales para el desarrollo de la e-Ciencia, UnaCloud también puede desplegar ambientes de ejecución personalizados, facilitando el desarrollo de actividades académicas en dependencia de la provisión automática de infraestructuras computacionales para su desarrollo.

En este artículo se describe brevemente a UnaGrid y cómo esta solución ha sido mejorada y extendida mediante el desarrollo de UnaCloud. El artículo está organizado de la siguiente forma: en la sección 2 se describe la arquitectura de UnaGrid y UnaCloud. En la sección 3 se describe la implementación de UnaCloud. En la sección 4 se detallan los resultados obtenidos de las aplicaciones ejecutadas en Una-Cloud. Finalmente, en la sección 5, se elaboran las conclusiones y se plantea un trabajo futuro orientado a dar continuidad al presente trabajo de investigación.

ARQUITECTURA DE SOLUCIÓN

Para obtener grandes capacidades computacionales generalmente se utilizan soluciones en cluster, compuestas por muchos servidores dedicados, entre los cuales uno asume el rol de maestro para la coordinación del procesamiento de varias tareas y los demás el rol de esclavos para la ejecución de dichas tareas. Como una alternativa, los grupos de investigación y sus instituciones disponen de laboratorios de cómputo que albergan una considerable cantidad de computadores de escritorio con importantes capacidades que tienden a estar subutilizadas. El aprovechamiento de estas capacidades no sólo permitiría la provisión de infraestructuras computacionales a bajo costo, sino que representaría una opción de mayor escalabilidad, debido a la posibilidad de agrupar una gran cantidad de recursos computacionales bajo un modelo de crecimiento horizontal. UnaGrid es una infraestructura grid oportunista que permite aprovechar estas capacidades para el desarrollo de diversos proyectos de e-Ciencia. Para logar esto, UnaGrid permite la conformación de Clusters Virtuales Personalizados (CVPs) ejecutados sobre computadores de escritorio convencionales.

Un CVP se conforma mediante el almacenamiento y ejecución de una imagen pre configurada de una máquina virtual en cada uno de los computadores de escritorio de un laboratorio de cómputo. Todas las máquinas virtuales actúan como esclavas del CVP y son ejecutadas como procesos en background y de baja prioridad, en forma paralela al desarrollo de las actividades informáticas de los usuarios. Este mecanismo de ejecución garantiza un impacto despreciable en el rendimiento percibido por el usuario actual del computador de escritorio. En forma adicional, un servidor dedicado ejecuta una máquina virtual que actúa como maestra del CVP, a la cual acceden los investigadores para ejecutar sus tareas. La ejecución de estas máquinas virtuales, conforman un CVP que tiene todas las configuraciones requeridas por el grupo de investigación que lo utilizará, emulando los ambientes na-tivos de múltiples aplicaciones de e-Ciencia.

UnaGrid permite que varios CVPs puedan ser ejecutados (incluso simultáneamente) en un laboratorio de cómputo. Para lograr esto, una imagen de máquina virtual de cada CVP debe ser almacenada en cada uno de los computadores de escritorio. El despliegue de las máquinas virtuales de un CVP lo realizan los investigadores por medio de un portal Web que permite que los investigadores desplieguen los CVPs pre configurados manualmente, garantizando la ejecución exclusiva de una máquina virtual en cada computador de escritorio (evitando la competencia de recursos). UnaGrid también permite la agregación de CVPs mediante el uso de middlewares grid como es el caso de Globus Toolkit. Finalmente, una solución NFS-NAS dedicada y centralizada puede ser utilizada para almacenar los datos producidos o requeridos por los diferentes CVPs.

A pesar de los beneficios descritos, UnaGrid efectúa una asignación estática de recursos computacionales, de tal forma que los mismos únicamente pueden ser cambiados por los administradores de la infraestructura física de soporte, lo cual aumenta la complejidad de la solución. Estas limitaciones fueron abordadas en la solución sucesora UnaCloud, la cual busca proveer un mayor grado de personalización, usabilidad, alcance funcional (uso en entornos académicos) y facilidad de despliegue y administración de las infraestructuras computacionales. UnaCloud hace uso del modelo IaaS del paradigma cloud computing, teniendo como objetivo administrar, desplegar y entregar recursos computacionales personalizados dinámicamente (hardware y software) haciendo uso de una infraestructura física aprovechada de manera oportunista. El objetivo de UnaCloud es permitir que las capacidades de los computadores de escritorio puedan ser agrupadas y utilizadas tanto por usuarios que requieran grandes capacidades computacionales para el desarrollo de la e-Ciencia (usuarios Grid) como por usuarios individuales que requieran de la ágil provisión de recursos computacionales para realizar sus actividades y prácticas académicas (usuarios IaaS). La disponibilidad de los recursos es dependiente del patrón de comportamiento de los usuarios que los utilizan y por lo tanto, en su primera versión UnaCloud no garantiza ningún tipo de Calidad de Servicio (QoS).

Como se aprecia en la figura 1, la arquitectura de UnaCloud incluye un sistema de información Web y una infraestructura computacional basada en computadores de escritorio, cuya integración es capaz de articular una infraestructura computacional oportunista, que provee bajo demanda servicios computacionales fundamentales, sistemas operativos y aplicaciones.

Figura 1. Arquitectura e implementación de UnaCloud

En UnaCloud hay cuatro tipos de usuarios. Los usuarios del modelo IaaS buscan desplegar ambientes de ejecución personalizados, sin tener en cuenta la ubicación física donde se ejecutan. Los usuarios IaaS acceden a través del portal Web y personalizan el despliegue de sus máquinas virtuales con configuraciones de propósito general. Los usuarios Grid (aquellos que anteriormente utilizaban UnaGrid) realizan despliegues de máquinas virtuales requeridas en proyectos de e-Ciencia, seleccionado los computadores de escritorio donde específicamente desean efectuar su despliegue. Los usuarios IaaS-Grid cumplen los dos roles anteriores. El usuario administrador accede a todas las opciones disponibles para los usuarios IaaS y Grid, y adicionalmente, tiene acceso a funcionalidades asociadas con servicios de administración de la infraestructura.

UnaCloud tiene dos componentes principales: UnaCloud Server y UnaCloud Client. Estos componentes fueron desarrollados haciendo uso tecnologías abiertas como es el caso de Java (EE y SE), GlassFish y MySQL, con el fin de garantizar su interoperabilidad y extensibilidad. UnaCloud Server es un portal Web que actúa como un punto de entrada seguro para los usuarios de UnaCloud, incentivando un modelo de autoservicio. UnaCloud Server se encarga de entregar y preparar dinámicamente las infraestructuras computacionales solicitadas por los usuarios finales, proporcionar servicios para administrar ambientes personalizados de ejecución y gestionar la información de los recursos físicos y virtuales. UnaCloud Server se encarga de contactar y entregar todas las órdenes a los UnaCloud Clients, quienes se encargan de ejecutar las máquinas virtuales en los computadores de escritorio. Para esto se utiliza un paso de mensajes seguro que incorpora mecanismos de autenticación y no repudio.

UnaCloud Client es un agente liviano, portable y fácil de instalar en un computador de escritorio. Este cliente se basa en el modelo de operación de soluciones oportunistas previas como es el caso de: GIMPS, Distributed.net y SETI@home (2). UnaCloud Client se ejecuta como un proceso en background y de baja prioridad, con el fin de aprovechar recursos computacionales ociosos en forma no intrusiva al usuario del computador de escritorio. El cliente recibe las órdenes de UnaCloud Server, personaliza dinámicamente todas las configuraciones requeridas por el usuario final y procede a ejecutar y administrar las máquinas virtuales, adaptándose al sistema operativo e hypervisor local.

IMPLEMENTACIÓN

La implementación de UnaCloud Server permite la persona-lización de ambientes de ejecución requeridos por los usuarios Grid e IaaS a través de interfaces Web para seleccionar cinco tipos de configuraciones: software (versión del sistema operativo y las aplicaciones), hardware (disco duro, memoria RAM y número de núcleos de la CPU), cantidad (el número de máquinas virtuales a ejecutar), ubicación (opcional, utilizada por los usuarios Grid) y el tiempo de ejecución total. Una vez terminada la personalización, UnaCloud se encarga de realizar el despliegue de las máquinas virtuales en los computadores de escritorio disponibles y los usuarios pueden acceder a su ambiente de ejecución por medio de mecanismos seguros de acceso remoto, incluyendo escritorio remoto, VNC o SSH. Para ello, el portal Web provee a los usuarios los datos necesarios para acceder a las máquinas virtuales, incluyendo el mecanismo y puerto de acceso remoto, el usuario y la clave del administrador del sistema operativo. Los usuarios finales de UnaCloud pueden monitorear el estado de su ambiente de ejecución, así como monitorear y ejecutar operaciones sobre las máquinas virtuales, incluyendo apagado, reinicio y cambio del tiempo de ejecución. UnaCloud almacena automáticamente trazabilidad del uso de la infraestructura a nivel de usuario y provee al administrador facilidades para administrar los equipos físicos por medio de operaciones de apagado, reinicio, cierre de sesión y monitoreo.

El cliente UnaCloud ha sido desplegado en tres laboratorios de cómputo (Waira I, Waira II y Alan Turing) en la Universidad de los Andes, cuyos computadores usan Windows XP como sistema operativo base. Cada laboratorio tiene 35 computadores de escritorio con un procesador Intel Core i5 (3.47 GHz) y 8 GB de RAM. UnaCloud Server ha sido instalado en una máquina virtual localizada en un centro de datos (por razones de disponibilidad). La infraestructura de red utilizada se basa en tres switiches de acceso y un switich multicapa, interconectados mediante enlaces Gigabit Ethernet. Al igual que en UnaGrid, UnaCloud Client ejecuta una máquina virtual por cada computador de escritorio. El hypervisor tipo II utilizado (los hypervisores tipo I no pueden ser instalados en computadores de escritorio) es VMware Workstation. Adicionalmente, los servicios del hypervisor son accedidos a través de las librerías VIX. El esquema de la implementación realizada se ilustra en la figura 1b.

PRUEBAS Y RESULTADOS

El primer caso de estudio utilizó un CVP de bioinformática, el cual fue desplegado por un usuario Grid de UnaCloud para procesar aplicaciones de proyectos desarrollados por el Departamento de Biología de la Universidad de los Andes. Estos proyectos tienen como objetivo el análisis del genoma del café, la yuca y la papa, con el fin de mejorar las producciones afectadas por diferentes organismos biológicos. El CVP fue ejecutado en 35 máquinas virtuales configuradas de manera dinámica con 1 GB de memoria RAM y dos núcleos de CPU. El maestro del CVP fue ejecutado en una máquina dedicada. El despliegue localizado de las 35 máquinas virtuales sobre los computadores de escritorio tomó un tiempo de ejecución de 7 segundos y el tiempo que les tomó a las máquinas virtuales iniciar el sistema operativo (Debian 4.0) para permitir el acceso por SSH, fue de aproximadamente 3 minutos, tiempo a partir del cual los 35 esclavos estaban listos para ejecutar trabajos enviados por los usuarios finales.

El segundo caso de estudio fue utilizado para probar las funcionalidades de UnaCloud para usuarios IaaS. Para ello se realizó el despliegue de máquinas virtuales utilizadas en prácticas académicas de desarrollo de software y minería de datos, por estudiantes de la Universidad. Las pruebas fueron realizadas mediante el despliegue no localizado de 70 máquinas virtuales en los computadores de escritorio del laboratorio Waira. El despliegue de estas máquinas tomó 13 segundos y el tiempo que le tomó al sistema operativo de las máquinas virtuales (Windows XP) proveer el acceso por escritorio remoto fue de aproximadamente 4 minutos. Los dos casos de estudio demuestran y validan la manera como UnaCloud provee un modelo IaaS oportunista, que puede ser fácilmente utilizado por usuarios Grid o IaaS que requieran ejecutar ambientes de ejecución personalizados en actividades académicas o de investigación. Los resultados corroboran los aportes de UnaCloud al mejoramiento de su predecesor UnaGrid, incorporando las características, ventajas y oportunidades del paradigma Cloud Computing.

NIVEL DE INTRUSIÓN

Con el fin de evaluar el nivel de intrusión de UnaGridJUna-Cloud sobre los computadores de escritorio mientras los usuarios realizan sus actividades informáticas, se realizaron tres pruebas de rendimiento. En la primera prueba se evaluó el impacto a los usuarios cuando estos ejecutan aplicaciones intensivas en procesamiento. Para ello se ejecutó una apli-cación intensiva en CPU en el ambiente del usuario final, en tres escenarios diferentes: sin la ejecución de una máquina virtual y con la ejecución de la máquina virtual (haciendo uso intensivo de procesamiento) teniendo asignado un núcleo y dos núcleos de la CPU. Los resultados obtenidos se muestran en la figura 2a. Estos resultados evidencian que la ejecución de la máquina virtual de procesamiento en background afecta en menos del 1% el rendimiento percibido por los usuarios de los computadores de escritorio.

En la segunda prueba se evaluó el impacto a los usuarios finales cuando estos corren aplicaciones intensivas en Entrada/Salida (E/S), para esto, en el ambiente del usuario final se ejecutan operaciones de compresión de archivos de diferentes tamaños. Estas pruebas utilizaron los mismos escenarios de la primera prueba y los resultados se muestran en la figura 2b. Los resultados evidencian un impacto menor al 3% en el rendimiento percibido por los usuarios de los computadores de escritorio.

La tercera prueba fue realizada con el fin de monitorear el uso simultáneo de la CPU por parte del usuario y por parte de la máquina virtual ejecutada en background, teniendo esta última asignados los dos núcleos de la CPU. Para ello se ejecu-taron tareas intensivas en procesamiento en los dos ambientes. En esta prueba se controlaban las necesidades de recursos del usuario final y se dejaba sin control el consumo posible para la máquina virtual. En la figura 2c. se puede ver cómo la máquina virtual únicamente consume los ciclos de procesamiento no utilizados por el usuario del computador, garantizando un impacto despreciable en el rendimiento percibido y permitiendo el consumo efectivo de ciclos de procesamiento ociosos por parte de las infraestructuras UnaGrid y UnaCloud.

APLICACIONES EJECUTADAS

UnaGrid y UnaCloud también han sido utilizadas para ejecutar aplicaciones de diferentes áreas como ingeniería química, ingeniería industrial y biología. Una de las aplicaciones eje-cutadas en el área de ingeniería industrial es el framework JG2A [5] utilizado para solucionar un problema de optimización en el enrutamiento de vehículos y en el diseño de rutas. En el área de ingeniería química se utilizó la aplicación BSGrid [6] para simular el comportamiento de redes de regulación genética haciendo uso de métodos estocásticos con el fin de analizar el comportamiento de la bacteria Bacillus thuringiensis. En el área de biología se utilizó la aplicación HMMER para hacer análisis de secuencias genéticas del genoma Phytophthora infestans [7]. En la tabla 1a se describen los detalles de las aplicaciones ejecutadas en la infraestructura oportunista, así como los tiempos requeridos para la generación de resultados. Estos resultados demuestran que infraestructuras como UnaGrid y UnaCloud, le permiten a los grupos de investigación obtener resultados en tiempos mucho más cortos.

Tabla 1.a Resultados de aplicación

Tabla 1.b Resultados de aplicación

Finalmente, para comparar el tiempo de ejecución de un trabajo en un CVP y en un cluster dedicado, tres aplicaciones fueron usadas: HMMER, BLAST y BSGrid. Los resultados mostrados en la tabla 1b, registran un sobrecosto máximo del 17% en el tiempo requerido para ejecutar los trabajos en la infraestructura oportunista. Esto evidencia que UnaGrid y Una Cloud pueden obtener capacidades de procesamiento similares a las ofrecidas por soluciones dedicadas, a un costo mucho menor. Para esta última prueba se utilizó la infraestructura en condiciones normales de uso por los usuarios regulares de las salas de cómputo, evidenciando la alta disponibilidad de recursos computacionales en dichas salas.

CONCLUSIONES Y TRABAJO FUTURO

UnaCloud representa una convergencia entre el paradigma cloud computing y las infraestructuras computacionales oportunistas. Los resultados no sólo demuestran la viabilidad de la convergencia, sino también ofrecen oportunidades promisorias para satisfacer los requerimientos computacionales personalizados de múltiples grupos de investigación e iniciativas académicas. Adicionalmente, UnaCloud representa una solución atractiva para construir y desplegar infraestructuras computacionales a gran escala, solucionando la problemática de sub utilización de recursos y evitando las inversiones financieras en hardware dedicado y sus costos asociados.

Actualmente se trabaja en el desarrollo de herramientas para generar y proveer calidad de servicio, personalización de la infraestructura de red bajo demanda y la integración con otras infraestructuras cloud computing. Adicionalmente, se busca evaluar la escalabilidad, usabilidad e impacto de la infraestructura en pro del desarrollo de nuevos proyectos de e-Ciencia, para esto es necesario que un mayor número de instituciones a nivel nacional aporten sus recursos computacionales y conformen grupos de investigación conjuntos que permitan integrar mayores capacidades computacionales. El modelo, la arquitectura y el despliegue de UnaCloud, per-mitirán que en un futuro cercano sus beneficios puedan ser aprovechados y replicados a otras instituciones a nivel nacional, reduciendo la brecha computacional disponible para los investigadores nacionales con respecto a las de sus pares en otras latitudes.


REFERENCIAS BIBLIOGRÁFICAS

[1] I. Foster y C. Kesselman. The Grid 2: Blueprint for a future computing infrastructure. Elsevier. 2003.         [ Links ]

[2] H. Castro, E. Rosales y M. Villamizar. "Desktop Grids and Volunteer Computing Systems". En Computational and Data Grids: Principles, Designs, and Applications. USA: IGI Global (IGI), 2010.         [ Links ]

[3] H. Castro, E. Rosales, M. Villamizar y A. Miller (2010, Mayo). "UnaGrid - On Demand Opportunistic Desktop Grid". Presentado en: 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing (CCGRID 2010);         [ Links ].

[4] R. Buyya, Y. Chee Shin y S. Venugopal (2009, Mayo). "Market-Oriented Cloud Computing: Vision, Hype, and Reality for Delivering IT Services as Computing Utilities". Presentado en: 9th IEEE/ACM International Symposium on Cluster Computing and the Grid (CC-Grid 2009);         [ Links ].

[5] A. Bernal, M.A. Ramirez, H. Castro, J.L.Walteros and A.L. Medaglia (2009, Abril). "JG2A: A Grid-enabled object-oriented framework for developing genetic algorithms". Presentado en: IEEE Systems and Information Engineering Design Symposium (SIEDS'09) .         [ Links ]

[6] M. Villamizar, H. Castro, and A. González (2009, Octubre). "BacteriumSimulatorGrid (BSGrid) - Tool for Si-mulating the Behavior of the Bacillus thuringiensis (B. thuringiensis) Bacterium in Cluster and Grid Infrastructures". Presentado en: HIBI '09. International Workshop on High Performance Computational Systems Biology.         [ Links ]

[7] A. M. Vargas. "Characterization of Phytophthora infestans Populations in Colombia". First Report of the A2 Mating Type. PHYTOPATHOLOGY. 2009, pp. 82-88.         [ Links ]