• No se han encontrado resultados

Antecedentes

In document UNIVERSIDAD REY JUAN CARLOS (página 39-42)

3. Simulación de un sistema Cloud

3.2. Antecedentes

Como ya se ha comentado en el capítulo anterior, Grid es una de las tecnologías que componen un sistema Cloud. Los sistemas Grid comenzaron a utilizarse antes de que surgiera el paradigma Cloud Computing. Para poder experimentar con diferentes aspectos de la tecnología Grid sin tener que hacer un despliegue de múltiples nodos distribuidos geográficamente, se desarrollaron herramientas de simulación específicas, entre las que cabe destacar GridSim ([34]), SimGrid ([35]) y GangSim ([36]). A continuación se explicará brevemente cada una de estas herramientas y cuál es su propósito.

GridSim ([34]) es una herramienta de simulación desarrollada en la Universidad de Melbourne, escrita en el lenguaje de programación Java cuyo código fuente tiene licencia GNU/GPL. Esta herramienta se basa en la simulación de eventos discretos haciendo uso del motor SimJava ([41]). Permite realizar simulaciones que cuenten con una gran cantidad de recursos. Dichos recursos pueden ser heterogéneos y utilizar políticas de planificación de tiempo compartido o espacio compartido. Es posible configurar múltiples parámetros, como la capacidad de cómputo de los recursos, su localización (según su zona horaria), la opción de reserva de recursos o el soporte para usar planificadores tanto estáticos como dinámicos. También permite que múltiples usuarios puedan enviar sus trabajos y se ejecuten de manera simultánea en el mismo recurso. Además cabe destacar que es extensible, lo que permite implementar nuevas políticas de manera sencilla.

SimGrid ([35]) es un entorno de desarrollo de libre distribución con licencia GNU/LGPL llevado a cabo en la Universidad de California en San Diego, utilizado para la simulación de sistemas Grid y escrito en su mayor parte en el lenguaje de programación C. Este entorno proporciona funcionalidad para realizar evaluaciones de aplicaciones distribuidas y sus políticas de planificación en entornos que cuentan con recursos heterogéneos. Permite definir diferentes parámetros de los recursos, como su capacidad de cómputo, su disponibilidad o su carga de trabajo, que puede modelarse como constantes o bien tomando los datos de trazas de sistemas reales. También permite definir parámetros de las tareas a ejecutar por los usuarios, así como utilizar diferentes modelos de red.

GangSim ([36]) es una herramienta de simulación desarrollada por el departamento de ciencias de la computación de la universidad de Chicago. Los módulos de simulación están escritos en el lenguaje de programación Perl, y cuenta con una interfaz en formato HTML que es generada con un conjunto de scripts CGI. Su principal propósito es el estudio del comportamiento de diferentes políticas de planificación en los sistemas Grid. En concreto, proporciona un entorno que permite modelar los diferentes sitios o centros de computació n con gran cantidad de recursos y diferentes organizaciones virtuales (Virtual Organizations). Este simulador permite modelar distintas políticas de planificación tanto para los centros de computación como para las organizaciones virtuales.

Pero la simulación de sistemas Cloud añade cierta complejidad que se escapa de los objetivos de estos simuladores utilizados para sistemas Grid. Por ello, además de las herramientas de simulación de sistemas Grid, se pueden encontrar otro tipo de entornos de simulación como MDCSim ([37]). Se trata de una plataforma de simulación que permite modelar y analizar el comportamiento de centros de datos multicapa que cuenten con un gran número de nodos. En concreto, la funcionalidad de los centros de datos se encuentra distribuida en tres capas de abstracción, que son la capa de comunicaciones, la capa del kernel

y la capa a nivel de usuario. Esta última ofrece una arquitectura de tres capas correspondiente a una aplicación web, que incluye servidor web, servidor de aplicaciones y servidor de base de datos. Es posible modificar la configuración de cada una de dichas capas y evaluarlas por separado bajo diferentes cargas de trabajo y número de usuarios. Los parámetros del centro de datos que permite analizar esta herramienta son la latencia y el consumo de potencia, que pueden medirse a nivel global de todo el centro de datos o a nivel individual de cada capa.

Otra herramienta disponible es GreenCloud ([38]), desarrollada como una extensión del simulador de redes Ns2 ([47]) y de libre distribución con licencia GNU/GPL. Se trata de un simulador que se centra en el consumo de energía de los centros de datos que componen un sistema Cloud. En concreto, es posible estudiar el consumo de energía de manera detallada de los servidores y los elementos de interconexión, como switches o hubs, simulando sobre estos componentes diferentes tipos de cargas de trabajo. Además incluye algunas técnicas de ahorro de energía para aplicar sobre dichos componentes, permitiendo emplearlas de manera individual o bien combinándolas. También permite simular el funcionamiento de la red con diferentes configuraciones y topologías.

Por otro lado, CloudSim ([6]) es una herramienta de código abierto bajo la licencia GNU/LGPL. Se basa en la simulación de eventos discretos y está escrito íntegramente en el lenguaje de programación Java. Permite modelar y simular entornos Cloud, así como realizar evaluación de algoritmos de aprovisionamiento de recursos en este tipo de sistemas. Entre algunas de sus características importantes destaca el motor de virtualización que incluye para la creación y gestión de servicios virtualizados en la simulación, la posibilidad de realizar simulaciones de entornos Cloud de gran escala en una única máquina física y una única máquina virtual de Java, o la posibilidad de ampliar su funcionalidad con nuevas políticas de planificación y aprovisionamiento. Permite modelar centros de datos compuestos por un conjunto de máquinas físicas que simulan la ejecución de máquinas virtuales, de tal forma que ofrece la posibilidad de simular servicios IaaS. Además incluye la posibilidad de modelar el comportamiento de las aplicaciones o tareas que se ejecutan sobre las máquinas virtuales en términos de sus instrucciones a ejecutar, y definir cargas de trabajo variables sobre ellas.

Una opción distinta al uso de herramientas de simulación específicas pasa por definir y construir un modelo que se ajuste a lo que interese simular del sistema a analizar (como por ejemplo un sistema Cloud) y ejecutarlo con Repast ([42]), Matlab ([43]), o algún software para simulación de eventos discretos. Aunque así el simulador se ajusta perfectamente a las funcionalidades que se necesiten, el esfuerzo que implica construir una simulación de este tipo desde cero hace que no se recurra casi nunca a esta opción.

In document UNIVERSIDAD REY JUAN CARLOS (página 39-42)

Documento similar