Platform as a service integration for scientific computing using DIRAC
- Fernandez Albor, Victor Manuel
- Tomás F. Pena Director/a
- Ricardo Graciani Díaz Codirector/a
- Juan Jose Saborido Silva Codirector/a
Universidad de defensa: Universidade de Santiago de Compostela
Fecha de defensa: 17 de julio de 2015
- Francisco Javier González Castaño Presidente/a
- José Carlos Cabaleiro Domínguez Secretario/a
- Xoán C. Pardo Vocal
- Javier López Cacheiro Vocal
- Andrei Tsaragorodtsev Vocal
Tipo: Tesis
Resumen
Cada día crece más la demanda de recursos de computación requeridos por los investigadores, capacidades de cálculo que coexisten con el creciente volumen de datos generados actualmente. Estos investigadores están a demandar un servicio de Computación de Altas Prestaciones (HPC) que permitan la ejecución de sus simulaciones a través de la computación distribuida para poder acceder a los máximos recursos posibles, facilitando este acceso de la forma más cómoda y segura para ellos. El término computación distribuida se utiliza para describir cualquier tipo de operación que implique un sistema distribuido, es decir, varios equipos que se comunican a través de una red. En este sentido, los sistemas distribuidos incluyen desde sistemas fuertemente conectados, como un supercomputador paralelo o un cluster, a débilmente acoplados, como en el caso de Grid Computing. El cluster implica un conjunto de nodos casi idénticos próximos entre sí, conectados a través de Gigabit o redes de fibra óptica. En el caso de la computación Grid puede ser visto como la federación de recursos de cómputo. Estos recursos generalmente están débilmente acoplados, son heterogéneos y geográficamente dispersos. El Grid Computing puede definirse según Ian Foster como "la capacidad de habilitar el uso compartido de recursos para resolución de problemas en organizaciones virtuales de carácter dinámico y multi-institucionales". Así, el Grid proporciona una infraestructura de computación distribuida que permite el uso de recursos de cómputo a múltiples organizaciones virtuales (VO), donde se entiende como VO al conjunto dinámico de personas o instituciones distribuidas físicamente. Este organización virtual suele estar sujeta a un conjunto de reglas y condiciones en la gestión de dichos recursos. Dentro del trabajo que presenta esta tesis, se explora un nuevo enfoque para el diseño de sistemas distribuidos, centrándose en una mezcla de diferentes tecnologías Grid, junto con otras tecnologías novedosas en el campo de la computación distribuida como es el caso del Cloud o las herramientas para procesamiento en el área del Big Data. Todo ello se intentará combinar con una solución escalable para aprovisionamiento del software específico de las organizaciones virtuales. Dentro del proceso de planificación y creación del nuevo enfoque, se describe también el conjunto de software intermedio encargado de conectar los recursos. Este software es necesario debido a que, por lo general, los recursos mencionados estarán físicamente distribuidos, y pertenecerán a diferentes organizaciones que podrían poseer posibles barreras políticas o administrativas, como es el caso de Universidades en donde las políticas de acceso a recursos internos pueden ser bastante restrictivas. Hoy en día, estas Universidades poseen redes conectadas con los centros de investigación con una velocidad y fiabilidad que posibilitan la ejecución de trabajos de cálculo científico de manera distribuida, y disponen tanto de recursos de cómputo existentes en aulas de informática utilizados para docencia, laboratorios, etc., como clusters de ordenadores pertenecientes a grupos de investigación, que en muchas ocasiones están infrautilizados en épocas de baja demanda. El uso de tecnologías distribuidas como el Grid o el Cloud, parte del trabajo de esta tesis, permitirá que estos recursos computacionales heterogéneos puedan ser reutilizados por los investigadores para realizar simulaciones, aportando una mayor cantidad de cómputo a la ya existente y deslocalizando los recursos entre distintos lugares alrededor del planeta. Para ello, se contará con soluciones software como es el caso de DIRAC, un software open-source creado como herramienta Grid dentro del proyecto LHCb, y que hoy en día es utilizado por un montón de organizaciones como es el caso de la Iniciativa Grid Europea (EGI) o el sistema de envío de trabajos al Grid en Francia (France-Grilles). DIRAC funciona como un sistema distribuido con agentes que permiten la utilización de distinto tipo de recursos de cómputo para la ejecución de tareas de cómputo de los investigadores. Otras herramientas que serán relevantes para la creación del nuevo sistema serán los gestores Cloud. Para la selección de los sistemas Cloud más adecuados fue necesario hacer un estudio que recogiese los más idóneos para la infraestructura que se quería crear, y algunos de los que se han elegido son bien conocidos como es el caso de CloudStack u OpenNebula. Y por último, en la integración de aplicaciones provenientes del campo del Big Data, se ha utilizado la herramienta de MapReduce Hadoop junto con otras del ecosistema como es el caso de Hive o Pig. Y en cuanto al tema de aprovisionamiento de software entre distintas plataformas, CernVM-FS constituirá la base de la solución de distribución de software presentada en esta tesis. Por lo tanto, el objetivo de esta tesis podría sintetizarse como la creación de un sistema de envío de trabajos, que permita ser utilizado por varias organizaciones virtuales, basado en un software creado para funcionar en entornos Grid, pero que se adaptará para trabajar con entornos basados en Cloud Computing y el Big Data. Y que contará con un repositorio de software centralizado para proporcionar el software necesario para la ejecución de aplicaciones. Puesto que el uso de recursos no dedicados es un requisito, el mecanismo propuesto deberá de realizar la asignación entre clusters no dedicados y dedicados y deberá de proporcionar diferentes plataformas dependiendo del grupo de usuarios que necesiten ejecutar trabajos. En otras palabras, el sistema deberá de permitir enviar trabajos de investigadores a Clouds federados y aulas de ordenadores de organismos, adaptándose a las políticas de acceso que hayan sido definidas. Deberá ser capaz de utilizar la plataforma más apropiada para su software, y adaptarse a los requisitos del proyecto Formiga-Cloud, que busca la creación de sistemas de envíos de trabajos en instituciones con recursos dedicados y no dedicados. Por lo tanto se pueden considerar como objetivos principales de esta tesis los siguientes: \begin{itemize} \item La integración de recursos dedicados y no dedicados, tales como salas de ordenadores en universidades y colegios. Esto permitiría aumentar la potencia de cálculo, especialmente por la noche y los fines de semana, cuando no hay actividad académica. \item La inclusión de una solución escalable para la distribución de software. Necesario para lograr una baja latencia y maximizar la eficiencia en el uso de los recursos. \item Una gestión sencilla de la infraestructura y de la herramienta que permita el envío de trabajos. Esta herramienta deberá de permitir el uso por varias comunidades de usuarios. Esto facilitará que los investigaciones se centren en su trabajo en lugar de preocuparse por las características específicas del hardware y software en las instalaciones donde se ejecutan los trabajos. \item Cada grupo de usuarios (Organización Virtual) tendrá una plataforma específica, software y prioridades de los usuarios para ejecutar su trabajo. \item La integración de software de Big Data como Hadoop bajo entornos Cloud para la ejecución de los trabajos con que permitan la ejecución de conjuntos de datos distribuidos. \item Posibilidad de incorporar indistintamente recursos Grid, Cloud o clusters Big Data cuando sea necesario y de proveedores externos. \item La incorporación de múltiples gestores de Cloud. El entorno Cloud con el que se inicia la creación del sistema estará basado en CloudStack, ya que se supone que es barato, fácil de usar y administrar. Pero será necesario que la solución propuesta permita la integración del mayor número de gestores Cloud posibles. \end{itemize} Para la creación de todo el sistema, este trabajo comenzó con la obtención minuciosa de los requisitos necesarios, para pasar después a un proceso de integración básica. Posteriormente se estudió la optimización de un conjunto representativo de paquetes de software científico ejecutado en entornos Cloud. Para ello, fue necesario la realización de estudios estadísticos lo más próximos posible a los entornos en producción para poder determinar y crear las infraestructuras adaptadas evitando así la pérdida de rendimiento de los trabajos en la utilización de los recursos Cloud. Por último en el proceso de desarrollo se creó y probó el sistema de envío de trabajos que requerirá de grandes volúmenes de datos distribuidos, haciendo uso de software Big Data. Como resultado de todo este trabajo se diseñaron nuevos sistemas y componentes, detallados a lo largo de los capítulos de la tesis. El diseño y la versatilidad de las soluciones empleadas demuestran la capacidad de extensión de DIRAC, que está basado en normas de desarrollo Opensource. Estas extensiones creadas para DIRAC han sido desarrolladas haciendo uso de prototipos de ciclo de vida y técnicas de reingeniería de software. Dentro del proceso de validación de los nuevos sistemas y componentes, se crearon métricas y simulaciones que han permitido demostrar la viabilidad de las tecnologías Cloud en la computación científica. Dichas simulaciones se utilizaron para analizar estadísticamente el rendimiento del software que se ejecutó en los entornos virtualizados y con respecto a entornos sin virtualizar. Así que uno de los principales desafíos de este trabajo fue conocer si el Cloud proporcionaba el suficiente rendimiento en configuraciones de máquinas virtuales típicas. Como resultado, a raíz del análisis estadístico se encontraron algunos problemas de rendimiento relacionados con arquitecturas hardware, en la utilización de un software específico denominado GAUSS utilizado en el experimento LHCb del Centro Europeo para la Investigación Nuclear o CERN. Y en cuanto al estudio estadístico, se demostró que el tiempo de CPU de las simulaciones dentro del Cloud, posee significancia pero esta es dependiente del software que se ha analizado. Se demostró que hay diferencias significativas en función de la duración del trabajo. Por otro lado la cantidad de memoria, cuando es superior a 2 GB, no parece ser un factor importante en el rendimiento de este tipo de trabajos a diferencia del número de nucleos de CPU que se empleen, donde sí se observó un aumento en el rendimiento proporcional al aumento de los mismos. Por lo tanto, como parte de la conclusión de esta tesis se puede aseverar que así como los servicios en el Cloud adquieran madurez en la ejecución de simulaciones en el campo de la física de altas energías, la correcta configuración de hipervisores del tipo KVM será una decisión a tener en cuenta importante con el fin de alcanzar un rendimiento óptimo con este software específico de física de altas energías. Se ha demostrado que diferentes grupos de investigadores en el área de física de altas energías pueden aprovecharse de las oportunidades de las tecnologías Cloud, optimizando su rendimiento. En cuanto a la parte de distribución de software de distintos grupos de usuarios con la herramienta CernVM-FS, a través de pruebas comparativas se ha demostrado que se mejora sustancialmente, con respecto a los otros sistemas analizados como es el caso de NFS o servidores HTTP que proveen del software a través de internet. Estos estudios comparativos permitieron el diseño y creación de un procedimiento de distribución de software detallado. En esta tesis se muestra la forma de obtener software accediendo a un repositorio de CernVM-FS, con mejoras en la escalabilidad y evitando problemas como la alta latencia utilizando varios sistemas de almacenamiento en caché a distintos niveles. Dentro del diseño del procedimiento para la distribución del software, se analizan los sistemas oportunistas como es el caso del software denominado Parrot, que interpreta el protocolo utilizado por CernVM-FS. Los resultados muestran que este software puede ser una opción en casos muy sencillos, pero cuando la complejidad aumenta es poco fiable. Dentro del proceso de desarrollo prototipado, se realizaron y evaluaron varios prototipos, que van escalando en complejidad y se adaptan a los requerimientos propuestos inicialmente. En el primero de los prototipos que permitió una integración de DIRAC y CloudStack fue probado junto con la infraestructura del proyecto FormigaCloud. En el segundo, se realizaron pruebas sobre los conceptos multi-sitio, varias organizaciones virtuales y multiplataforma. Y como resultado, se definió una nueva arquitectura flexible para la construcción de servicios federados con cloud híbridos. Esta arquitectura se denominó Rafhyc y se organiza en capas. Los resultados de las pruebas realizadas sobre Rafhyc demuestra la capacidad de la arquitectura para integrar los recursos agregados para cálculo científico así como una gestión eficiente de imágenes. Y dado que los servicios de Cloud federados ganan madurez, adopciones como Rafhyc permitirán automatizar los servicios federados al proporcionar toda la información necesaria para aplicar eficientemente sistemas como la optimización de precios y obtener recursos a un nivel más avanzado. Finalmente, en esta tesis también se ha diseñado, implementado y probado la integración de un software Big Data como es Hadoop con DIRAC en la agregación de recursos federados. Durante la creación de la arquitectura fueron creados nuevos componentes, que permiten que clusters Big Data puedan ser integrados de una manera sencilla con otro tipo de recursos como es el caso de los clusters Grid o Cloud. Para las pruebas de agregación se utilizaron cuatro conjuntos de datos distribuidos entre distintos centros de cálculo. Este sistema federado constaba de tres instituciones en dos países distintos, entre los que se encontraban la Universidade de Santiago de Compostela (España), el Centro de Supercomputación de Galicia (España) y el Instituto de Física de Altas Energías ( Beijing). Para testear la agregación federada de recursos se diseñó un proceso de validación con diferentes fases, con el fin de verificar la estabilidad y la fiabilidad de la solución en la primera de ellas, en donde se ejecutaron trescientas simulaciones en cuatro clusters de Big Data de las tres instituciones mencionadas con volúmenes de datos de tamaño pequeño y medio, utilizando el equivalente en horas o cinco días sin interrupción, con casi 10,20 GB en lectura de datos en el sistema de archivos de Hadoop (HDFS) y 2,33 GB en escritura sobre HDFS. Una vez finalizada la primera base en donde se comprobó la estabilidad, en una segunda se evaluaron tres características, el alto IO, el balanceo de carga de CPU y IO, y por último el uso de CPU en condiciones de carga elevada. Los resultados, que procesaron del orden de 46 GB de datos con diferentes fuentes de entrada de tamaño medio 0,5 GB, 1 GB y 2 GB, demostraron que con DIRAC y Big Data es posible aprovechar la potencia de cálculo agregado, y que es eficiente en cuanto al balanceo de carga, demostrando así que la integración de un sistema Grid como DIRAC y el ecosistema de Big Data en un contexto federado es posible. Como trabajo futuro en la hoja de ruta está incluir la creación de un multischeduler en Cloud, la integración con Hadoop con conjuntos de grandes volúmenes de datos de aplicaciones reales, y la inserción de Hadoop Streaming para ejecutar trabajos escritos en diferentes lenguajes de programación, como Python o Perl.