• No results found

Inicialmente MagosCloud cuenta con un MCServer y al menos un MCLoadbalancer,

el servidor debe conocer los balanceadores disponibles. Al iniciar un nodo MCNode,

éste debe conocer la ubicación del servidor con quien se registra.

34

El componente MCServer registra los nodos y los asigna a uno de los balanceadores

existentes. Al recibir la solicitud de una nueva plataforma, MagosCloud, consulta los tipos de configuración asociados a ella y el número deseable de nodos, genera los nombres de acuerdo con la configuración y les asigna una dirección IP a cada uno. A continuación MCServer elige, de acuerdo con la carga actual, un balanceador de

carga y le asigna la instancia de plataforma, enviándole el listado de direcciones y nombres.

Ilustración 18 Estructura del proyecto para el módulo MCServer

El componente MCBalanceador (MCLoadBalancer) se encarga de recibir los reportes

de sus nodos asignados, y de las máquinas virtuales (nodos de instancia) instanciadas en ellas. Si hay una máquina virtual que no reporta estado en un periodo de tiempo definido, el balanceador iniciará una nueva, con el mismo nombre e IP, en uno de sus nodos asignados. Si la carga en las máquinas virtuales, para una determinada instancia de plataforma, es superior al límite definido, el balanceador solicitará al servidor una nueva dirección y nombre para un nodo de instancia.

Ilustración 19

El componente MCNode

del balanceador de carga e interactúa con el

eliminar y ejecutar comandos en las máquinas virtuales. En el caso de VMWare Workstation se utilizó la versión 1.10 de VIX, y su herramienta

implementar éstas funciones. máquina virtual, creando un

MCMVInstance en ella.

Ilustración

El componente MCMVInstance

recibe como parámetros el nombre de la máquina virtual instanciada, la dirección IP asignada, la dirección IP del

dirección IP del servidor de configuraciones que usará el agente

MCMVInstance se encarga de configurar la máquina virtual con estos datos e iniciar

35

19 Estructura del proyecto para el módulo MCBalanceador

reporta el estado de la máquina física, recibe las peticiones del balanceador de carga e interactúa con el hypervisor para clonar, iniciar, detener, eliminar y ejecutar comandos en las máquinas virtuales. En el caso de VMWare Workstation se utilizó la versión 1.10 de VIX, y su herramienta

implementar éstas funciones. MCNode utiliza esta funcionalidad para

máquina virtual, creando un linked clone de la máquina virtual base,

Ilustración 20 Estructura del proyecto para el módulo MCNode

MCMVInstance, que se incluye dentro de la máquina virtual base

recibe como parámetros el nombre de la máquina virtual instanciada, la dirección IP la dirección IP del balanceador de carga al cual le reportará el estado y

el servidor de configuraciones que usará el agente

encarga de configurar la máquina virtual con estos datos e iniciar

MCBalanceador

reporta el estado de la máquina física, recibe las peticiones ara clonar, iniciar, detener, eliminar y ejecutar comandos en las máquinas virtuales. En el caso de VMWare Workstation se utilizó la versión 1.10 de VIX, y su herramienta vmrun, para

utiliza esta funcionalidad para crear la de la máquina virtual base, y ejecutar

áquina virtual base, recibe como parámetros el nombre de la máquina virtual instanciada, la dirección IP balanceador de carga al cual le reportará el estado y la el servidor de configuraciones que usará el agente de Puppet. encarga de configurar la máquina virtual con estos datos e iniciar

el agente de Puppet, plataforma.

Ilustración 21

Cuando MCMVInstance

Puppet, este se comunica con el servidor de de Magos (MCServer). A su vez

nodos, que es dada por el componente

configuración para un nodo de instancia dado, por nombre resultado que incluye el listado de clases definidas en Puppet

necesarios que constituyen la configuración de la instancia de plataforma formato YAML.

Ilustración

El proyecto Util incluye funciones que son usadas en los componentes de

MagosCloud, como el manejo de

incluyendo la definición de los tipos de mensajes a intercambiar, clases comunes, la ejecución de comandos del sistema operativo y el manejo de los mensajes de salida.

36

que obtiene y aplica la configuración de la instancia de

21 Estructura del proyecto para el módulo MCMVInstance

MCMVInstance, en una instancia de plataforma, ejecuta el agente de

uppet, este se comunica con el servidor de Puppet (puppet master) en el servidor

. A su vez puppet master usa una definición externa d

nodos, que es dada por el componente PuppetEN. PuppetEN consulta a

configuración para un nodo de instancia dado, por nombre del nodo, y devuelve el resultado que incluye el listado de clases definidas en Puppet y los parámetros

que constituyen la configuración de la instancia de plataforma

Ilustración 22 Estructura del proyecto para el módulo MCPuppetEN

incluye funciones que son usadas en los componentes de sCloud, como el manejo de sockets para la comunicación entre ellos, definición de los tipos de mensajes a intercambiar, clases comunes, la ejecución de comandos del sistema operativo y el manejo de los mensajes de salida.

que obtiene y aplica la configuración de la instancia de

, en una instancia de plataforma, ejecuta el agente de ) en el servidor usa una definición externa de los consulta a MCServer la

, y devuelve el y los parámetros que constituyen la configuración de la instancia de plataforma, en

incluye funciones que son usadas en los componentes de para la comunicación entre ellos, definición de los tipos de mensajes a intercambiar, clases comunes, la ejecución de comandos del sistema operativo y el manejo de los mensajes de salida.

Tanto MCServer como MCBalanceador

usado EJB3 para manejar persistencia del lado de la aplicación y manejador de bases de datos.

Ilustración

MCServer persiste los diferentes tipos de plataforma

MagosCloud Core, sus tipos de configuración, número mínimo de nodos para cada tipo, las clases de Puppet que utiliza c

37

Ilustración 23 Estructura del proyecto Util

MCBalanceador requieren un módulo de persistencia, se ha

usado EJB3 para manejar persistencia del lado de la aplicación y MySql manejador de bases de datos.

Ilustración 24 Modelo de datos para MCServer

persiste los diferentes tipos de plataforma a los que da sop , sus tipos de configuración, número mínimo de nodos para cada tipo, las clases de Puppet que utiliza cada configuración y sus parámetros.

de persistencia, se ha MySql 5.5 como

a los que da soporte , sus tipos de configuración, número mínimo de nodos para cada

38

Para adicionar un nuevo tipo de plataforma basta con crear las definiciones de la configuración en Puppet y registrarlas en la base de datos con los parámetros que sean necesarios.

Si como valor de parámetro se utiliza <<lista:tipodeconfiguracion>> (por

ejemplo <<lista:nodoapache>>) el valor del parámetro será generado por

MagosCloud como un arreglo con la dirección IP de los nodos de instancia de la plataforma que tienen el tipo de configuración dado. De igual forma para obtener como valor de parámetro el id de configuración (id de la instancia de plataforma)

se utiliza el valor <<prefijo:idconf>>.

MCServer también persiste los nodos que se han registrado y el balanceador que

tienen asignado.

Ilustración 25 Modelo de datos MCLoadBalancer

MCLoadBalancer persiste los nodos que se han asignado al balanceador, así como

las máquinas virtuales, los reportes de estado recibidos y una bitácora con la información de las operaciones realizadas sobre las máquinas virtuales en el tiempo.

39