UNIVERSIDAD DE CASTILLA-LA MANCHA ... - Grupo ARCO

UNIVERSIDAD DE CASTILLA-LA MANCHA ... - Grupo ARCO UNIVERSIDAD DE CASTILLA-LA MANCHA ... - Grupo ARCO

arco.esi.uclm.es
from arco.esi.uclm.es More from this publisher
10.05.2015 Views

82 CAPÍTULO 6. HYDRA 6.2.2. Agente de Base de Datos Para interactuar con la base de datos, se incorporó al Manager un agente que se encarga de hacer que dichas operaciones sean transparentes. Es decir, el Manager no ejecuta sentencias SQL, si no que invoca operaciones para almacenar Despliegues, obtener Imágenes, etc. Si en un futuro cambiase el modelo de la base de datos, o se utilizara otra forma de almacenamiento de la información, tan sólo el agente se vería afectado. Sólo habría que programar un nuevo agente que fuera capaz de manejar el nuevo modelo de persistencia. 6.2.3. Preparación de imágenes Una de las tareas más importantes que realiza el Manager es la preparación de las Imágenes para su distribución. La herramienta utilizada para el despliegue de las Imágenes es IcePatch2, que es un servicio del middleware Ice. IcePatch2 permite ahorrar ancho de banda de dos maneras: en primer lugar, no transmite los ficheros tal cual los encuentra, sino que los comprime antes con bzip. Por otra parte, una vez comprimido cada fichero, calcula el código MD5 [Riv92] correspondiente a cada uno, y almacena esta información en un fichero de texto, llamado IcePatch2.sum. Ambas operaciones las realiza el comando icepatch2calc. Una vez hecho esto, se utiliza icepatch2server para crear un servidor al que conectarse para descargar los ficheros. Cuando un cliente se conecta al servidor (mediante icepatch2client), descarga los ficheros comprimidos y el fichero .sum, que le servirá en primera instancia para detectar errores en la transmisión. Si todo ha ido bien, descomprimirá los ficheros y borrará los comprimidos. El fichero .sum tiene una segunda finalidad, y es que permite detectar cambios. Cuando alguien actualice la Imagen almacenada en el servidor, es de suponer que dicha actualización no afectará a todos los ficheros (aunque podría ser así, no es lo habitual). El uso del fichero .sum permite saber qué ficheros han cambiado o han sido añadidos o eliminados, y transmitir únicamente dichos cambios.

6.2. MANAGER 83 La idea, por tanto, es realizar la preparación con icepatch2calc en la Imagen y dejarla lista para su distribución. Sin embargo, el empleo de IcePatch2 tiene algunos inconvenientes que hubo que resolver. El primero de ellos se debe a los enlaces simbólicos. icepatch2calc no trata los enlaces como ficheros normales, sino que los sigue, accediendo al fichero al que apuntan en lugar de al propio enlace. Esto hace que no los añada a la lista de ficheros a transmitir, lo que deja muchos enlaces importantes (como por ejemplo, los que indican qué núcleo debe arrancarse) sin distribuir, haciendo que el sistema quede inutilizable. También nos tropezamos con los enlaces a ficheros especiales y ficheros de dispositivo, lo que hacía por ejemplo que icepatch2calc intentara añadir el contenido de un CD o de los dispositivos stdin, stdout y stderr, entre otros. Para evitar esto, es necesario añadir un paso previo en el que todos los enlaces simbólicos se almacenan en un fichero comprimido y después se borran. El fichero comprimido será el que se distribuya hacia los ordenadores clientes y luego será el instalador quien se ocupe de restaurarlos en el lugar que les corresponda. El segundo inconveniente implica a los permisos y los propietarios de los ficheros. Al descomprimir los ficheros, todos pertenecen al usuario que esté ejecutando el proceso icepatch2client, ya que es el que los está creando en ese momento. Esto es grave, porque impide por ejemplo que los usuarios puedan acceder a sus propios ficheros, incluidos los usuarios del sistema 2 . Además, algunos permisos como el bit sticky, el bit SUID y el bit SGID han de ser restaurados de forma especial. Por ello, fue necesario utilizar una aplicación auxiliar llamada metastore que almacenara la información sobre los permisos, el propietario y el grupo de cada archivo en un fichero. Este fichero, llamado permissions.hydra, se almacena junto al fichero IcePatch2.sum y se distribuye con la Imagen. El instalador, explicado en la sección 6.5, será el que invoque durante la instalación a la función complementaria de metastore 3 , que se encargará de restaurar los permisos originales de cada fichero. Una vez hecho esto, ya se puede llamar a icepatch2calc de forma que prepare el sistema para su despliegue. El proceso completo puede observarse en la figura 6.1. 2 Usuarios que representan servicios del sistema 3 http://david.hardeman.nu/software.php

6.2. MANAGER 83<br />

La idea, por tanto, es realizar la preparación con icepatch2calc en la Imagen y<br />

dejarla lista para su distribución. Sin embargo, el empleo de IcePatch2 tiene algunos<br />

inconvenientes que hubo que resolver.<br />

El primero de ellos se debe a los enlaces simbólicos. icepatch2calc no trata los enlaces<br />

como ficheros normales, sino que los sigue, accediendo al fichero al que apuntan en lugar<br />

de al propio enlace. Esto hace que no los añada a la lista de ficheros a transmitir, lo<br />

que deja muchos enlaces importantes (como por ejemplo, los que indican qué núcleo<br />

debe arrancarse) sin distribuir, haciendo que el sistema quede inutilizable. También<br />

nos tropezamos con los enlaces a ficheros especiales y ficheros de dispositivo, lo que<br />

hacía por ejemplo que icepatch2calc intentara añadir el contenido de un CD o de los<br />

dispositivos stdin, stdout y stderr, entre otros.<br />

Para evitar esto, es necesario añadir un paso previo en el que todos los enlaces<br />

simbólicos se almacenan en un fichero comprimido y después se borran. El fichero<br />

comprimido será el que se distribuya hacia los ordenadores clientes y luego será el<br />

instalador quien se ocupe de restaurarlos en el lugar que les corresponda.<br />

El segundo inconveniente implica a los permisos y los propietarios de los ficheros. Al<br />

descomprimir los ficheros, todos pertenecen al usuario que esté ejecutando el proceso<br />

icepatch2client, ya que es el que los está creando en ese momento. Esto es grave, porque<br />

impide por ejemplo que los usuarios puedan acceder a sus propios ficheros, incluidos<br />

los usuarios del sistema 2 . Además, algunos permisos como el bit sticky, el bit SUID y<br />

el bit SGID han de ser restaurados de forma especial.<br />

Por ello, fue necesario utilizar una aplicación auxiliar llamada metastore que almacenara<br />

la información sobre los permisos, el propietario y el grupo de cada archivo<br />

en un fichero. Este fichero, llamado permissions.hydra, se almacena junto al fichero<br />

IcePatch2.sum y se distribuye con la Imagen. El instalador, explicado en la sección 6.5,<br />

será el que invoque durante la instalación a la función complementaria de metastore 3 ,<br />

que se encargará de restaurar los permisos originales de cada fichero.<br />

Una vez hecho esto, ya se puede llamar a icepatch2calc de forma que prepare el<br />

sistema para su despliegue. El proceso completo puede observarse en la figura 6.1.<br />

2 Usuarios que representan servicios del sistema<br />

3 http://david.hardeman.nu/software.php

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!