wiki:SyncronizeDoc

Version 42 (modified by alonso, 11 years ago) (diff)

--

CREACION Y RESTAURACION DE IMAGENES USANDO SINCRONIZACIÓN

Hasta ahora la creación y restauración de imágenes en OpenGnsys se ha llevado a cabo usando un software de clonación que sólo permitía tener imágenes monolíticas, esto es, una vez creadas, si pretendiamos reparar un sistema operativo o simplemente devolverlo a su situación original era necesario enviar por la red la imagen completa, aunque el cambio hubiera sido mínimo.

La nueva funcionalidad con que queremos dotar al proyecto es precisamente que esta restauración del software original se pueda realizar a través de la sincronización de imágenes. Este método consistiría en tener almacenadas dichas imágenes en repositorios, de manera que, para tener actualizado el contenido de una partición o una carpeta determinada del cliente, sólo se enviarían desde el repositorio las diferencias, economizando así, tiempo y tráfico de red.

Implementación

Para mantener la compatibilidad, se ha mantenido el actual método de clonación y se ha incorporado la sincronizacion. Por tanto, en estos momentos, en Opengnsys, podemos tener dos tipos de imágenes:

  • Imágenes Monolíticas
  • Imágenes Sincronizadas

Como consecuencia de utilizar imágenes sincronizadas, aparecen dos conceptos:

  • Imágenes básicas: Son aquellas que pueden ser creadas y restauradas usando las ventajas de la sincronización y que contiene todo el software de un sistema operativo concreto instalado en una partición concreta.
  • Imágenes Incrementales: Son aquellas que se componen de las diferencias entre un sistema operativo al que se le ha instalado nuevo software o archivos, y una imagen básica creada de él, anteriormente. Normalmente las imágenes incrementales ocuparán mucho menos espacio que las imágenes básicas y se podrán tener las que se quiera, todas, evidentemente, referidas a la misma imagen básica, pero en ningún caso se podrán combinar, es decir, no se podrán restaurar dos imagenes incrementales juntas en un mismo equipo.

Documentación para el Usuario.-

Imágenes Básicas (Definición)

Para empezar a trabajar con imágenes sincronizadas, desde la consola, el procedimiento es el mismo que si lo hicieramos con las actuales imágenes monolíticas, esto es, antes de poder crearlas es necesario definirlas e introducir sus parámetros desde el formulario correspondiente. Para ello seleccionaremos la pestaña de Imágenes donde encontraremos tres carpetas que contendrán los distintos tipos de imágenes que pueden crearse. En nuestro ejemplo definiremos una imagen básica y una vez creada ésta, definiremos y crearemos una incremental. Después veremos cómo restaurar ambas y completar así este tutorial sobre la nueva técnica incorporada de imágenes sinronizadas.

Elegiremos la pestaña de Imagenes y posteriormente, pulsando con el botón secundario sobre la carpeta imágenes básicas, seleccionaremos, en el menú contextual, la opción "Definir nueva imagen":

En el marco de la derecha aparecerá un formulario para introducir los datos que definen una imagen básica:

Nombre.-Es el nombre canónico del archivo de imagen, es decir, el nombre que tendrá físicamente en el disco duro.Por tanto, en este campo, será obligatorio introducir sólo caracteres alfanuméricos.

Descripción.-Es una descripción breve de la imagen que se utilizará para identificarla a lo largo de la aplicación.

Partición.-La partición de la cual se quiere extraer la imagen.

Tipo de partición.-Es el tipo de partición seleccionada.

Repositorio.-Es la máquina que alojará la imagen cuando se cree. Al contrario que cuando utilizamos imágenes monolíticas, hacerlo con imágenes sincronizadas nos permite tener tantos repositorios queramos; basta con que en todos ellos esté funcionando el servicio de sincronización. Este servicio es rsync y es una programa que viene, en la mayoría de los casos, con la propia distribución de Linux. Más adelante veremos como se inicia y configura este servicio.

Ruta origen.- Si usamos la técnica de imágenes sincronizadas tenemos la ventaja de poder clonar parte de un sistema, o sea, de crear una imagen básica, no exclusivamente de la partición completa, sino de una carpeta en particular. Por ejemplo, supongamos que tenemos bien configuradas las directivas de seguridad de nuestro sistema para que el usuario sólo pueda acceder a su carpeta personal. En ese caso es más rápido tener una imagen de esta carpeta que será la única que tendremos que restaurar en la mayoría de las ocasiones. Luego, por seguridad, podríamos tener también una imagen mayor que contenga toda la partición, para casos más graves de deterioro del sistema.

Si en este campo no se especifica nada se entenderá que se quiere crear una imagen completa del sistema. La sintaxis para indicar la ruta de una carpeta concreta será la utilizada por los sistemas Linux, en todos los casos, esto es, si queremos crear una imagen básica de la carpeta practicas que cualga de home, la forma de indicarlo será:

  • /home/practicas.

Y en el caso de que sea en un sistema Windows donde tengamos la siguiente carpeta "c:\Document and Setting\practicas", la sintaxis sera igualmente:

  • /Document and Setting/practicas

Comentarios.- Donde se podrán escribir las observaciones se crea conveniente.

Perfil software.-Este dato es de consulta y sólo tendrá contenido cuando se haya creado realmente la imagen. Aún así, nunca se tendrá acceso a él para modificarlo porque se actualiza automáticamente tras este proceso de creación. Esto será un indicador de que la imagen no es sólo una definición sino que existe y está alojada en su repositorio. El proceso de creación de una Imagen tanto si se utiliza el método de imagenes monolíticas como sincronizadas es el siguiente:

  • Definición de la imagen.
  • Envío de un comando de "Creación de imagen básica" desde la consola a un cliente determinado.
  • El cliente hace un inventario completo si se trata de una copia del sistema operativo o de la carpeta si se ha especificado una ruta concreta y lo engloba en un perfil software que puede existir o crearlo nuevo.
  • El cliente sincroniza con su repositorio el contenido de la partición o parte de ella y envía por la red las diferencias. En caso de no existir la imagen por ser la primera vez que se envía el comando, la copia será completa.
  • Una vez acabada la sincronizacion notifica al servidor de administración el resultado de este proceso.
  • El servidor de administración actualiza, en la base de datos, el perfil software de la imagen. Este perfil contentrá el inventario anterior pudiéndose conocer, por tanto, qué aplicaciones están instaladas en ella.

Imágenes Básicas (Creación)

Una vez hemos introducidos los parámetros que configuran una imagen y que van a condicionar su creación, pasamos a dicho proceso cuyos pasos ya hemos visto anteriormente. Para esto seleccionaremos un ordenador modelo al que le hemos instalado un sistema operativo con todas sus actualizaciones y algún software de uso general, como lectores de archivos o pequeñas aplicaciones muy utilizadas. Pulsando con el botón derecho del ratón sobre éste, elegiremos la opción "Sincronización" del menú contextual y luego seleccionaremos "Crear Imagen Básica":

En el marco de la derecha se mostrara la siguiente pantalla donde completaremos los datos necesarios para la creación:

Imagen / Repositorio.-En este desplegable seleccionaremos una imagen básica que previamente hallamos definido. Si no aparecieran todas se debe a que la consola realiza un filtro teniendo en cuenta los datos aportados en la definición. Así, por ejemplo, si hemos definido una imagen con un campo partición distinto al de la linea donde se encuentra el desplegable, ésta no aparecerá; igualmente pasaría si el tipo de partición fuese distinto.

Opciones Adicionales.-Las opciones adicionales pueden dejarse en blanco o bien seleccionar una combinación de ellas. Normalmente, el proceso de creación de una imagen tiene lugar enviando los datos a un repositorio; este repositorio está enlazado con la imagen desde que se definió y si seguimos adelante, ese será el lugar donde se enviaran los datos pero opcionalmente podemos marcar las siguientes opciones:

  • Borrar la Imagen Previamente.- Puede ocurrir que sea la primera vez que se ejecuta este comando con esta imagen porque nunca antes hubiera sido creada. Si fuera así, en el proceso de creación, se enviaría todo el contenido de la imagen al repositorio. En caso contrario tendría lugar una sincronización entre la partición o la carpeta origen con la información almacenada en el servidor. Estaríamos en el caso de haber creado previamente una imagen de ese sistema pero que de nuevo se ha vuelto a modificar instalándole software o archivos; en este caso sólo se enviarían al repositorio los cambios producidos. Si quisieramos aprovechar este momento para hacer un nuevo backup de todo, porque la imagen almacenada en el servidor ya no nos merece garantía al estar corrupta u otros motivos, podemos forzar a su eliminación previa al envío, marcando esta opción.
  • Copiar imagen en cache.- Puede ocurrir también que nuestro ordenador modelo tenga definida una partición caché y queramos, en el mismo acto, sincronizar la imagen también con ella. Para ello basta con marcar esta opción.
  • Borrarla previamente de la cache.- Si tampoco nos fiamos del estado de la imagen en caché y hemos seleccionado la opción anterior podemos forzar a que se copie completamente en ella marcando esta opción.

Una vez seleccionadas todas las opciones se hace click sobre el botón tipo radio de la primera columna, se seleccionan las opciones de ejecución que nos permite hacer un seguimiento del comando (Incluir cola de acciones), programarlo en el tiempo o guardarlo como procedimiento o tarea para ejecutarlo posteriormente, y por último se pulsa sobre el botón aceptar.

Imágenes Básicas (Restauración)

Cuando la imagen ya está creada, alojada en su repositorio y opcionalmente en la caché del equipo que sirvió de modelo, podemos restaurarla en otro equipo utilizando también la técnica de sincronización. De la misma manera, si es la primera vez que se hace, el volcado será completo, pero si no, el proceso de restauración será una sincronización entre la información almacenada en el repositorio o caché, y la partición local correspondiente. (Actualmente sólo se ha implementado la restauración desde caché local o repositorio pero se contempla la posibilidad de hacerlo usando como origen de datos cualquier otra fuente como pueden ser una partición o cache de cualquier otro cliente).

Para restaurar una imagen primero hay que seleccionar cualquiera de estos ámbitos de aplicación:

  • Un ordenador
  • Un grupo de ordenadores
  • Un aula

No tiene sentido aplicar el comando de restauración a un grupo de aulas y mucho menos a toda la Unidad Organizativa ya que probablemente los equipos y su función sean distintos de un aula a otra y por tanto también sus imágenes.

Elijamos un aula para este supuesto. Pulsando sobre ella con el botón derecho, seleccionaremos en el menú contextual la opción "Sincronización" y luego "Restaurar Imagen Básica". La pantalla que nos aparece tendrá una apariencia parecida a esta:

En ella se observa la configuración de particiones de los equipos del aula, que seguramente será la misma en todos. Los datos que hay completar son:

Imagen.-Es la descripción de la imagen que se quiere restaurar. Análogamente a la pantalla de creación, en el desplegable aparecerán sólo las imagenes que esten ya creadas y que concuerden con las características de la partición: Número y tipo.

Desde.-Cuando se restaura una imagen básica por el procedimiento de sincronización podemos optar por hacerlo desde la caché local o desde un repositorio. En ambos casos el contenido de la partición se sincroniza con ellos. En este punto se pueden dar ciertas situaciones en las que conviene aclarar cual sería el comportamiento de la Aplicación:

  • Se elije restaurar desde repositorio:
    • Se hace sin pasar por la caché, o sea, directamente entre repositorio y partición.

  • Se elije restaurar desde caché:
    • El equipo no tiene caché: El sistema devolvería un error de unidad no existente.
    • El equipo sí tiene caché: Primero se actualiza la cache sincronizando la imagen contenida en ella con el repositorio y posteriormenter se copia a la partición. Con esto nos aseguramnos que la imagen en la cache local estará actualizada en todo momento.

Opciones Adicionales.-Igual que en la creación de Imagenes, estas opciones complementan el uso del comando de restauración.

  • Borrar la Partición Previamente.-Marcando esta casilla forzamos a que la restauración sea completa y no sincronizada ya sea desde cache o desde repositorio.
  • Copiar Imagen en cache.-Se usa para asegurarnos de que la caché esté actualizada. De esta forma, aún en el caso de elegir la restauración desde repositorio, la imagen también se copiaría en ella.
  • Borrarla previamente de la caché.-Si se ha marcado la casilla anterior y se desea una copia completa en lugar de una sincronización, habrá que marcar esta otra.

Análogamente, una vez seleccionadas todas las opciones se hace click sobre el botón tipo radio de la primera columna, se seleccionan las opciones de ejecución que nos permite hacer un seguimiento del comando (Incluir cola de acciones), programarlo en el tiempo o guardarlo como procedimiento o tarea para ejecutarlo posteriormente, y por último se pulsa sobre el botón aceptar.

Imágenes Incrementales (Definición).-

Hasta aquí, la forma de actuar del usuario con respecto a la creación y restauración de imagenes básicas es prácticamente la misma que para las imágenes monoliticas sólo que al hacerlo el sistema, de forma sincronizada, los tiempo deberían acortarse. Pero al introducir la creación y restauración de imagenes por sincronización, ha aparecido un nuevo concepto: el de las Imagenes Incrementales que vamos a explicar con un ejemplo.

Imaginemos un supuesto donde se solicita que en un aula se imparta un curso de diseño gráfico y otro de programación, no solapados en el tiempo, o solapados. Para el primero es necesario instalar varios programas de retoque de imágenes, maquetadores, dibujo vectorial, etc. Para el segundo bases de datos, compiladores y entornos gráficos de desarrollo, ambos suponiendo para la partición del sistema anfritión un aumento de muchos Megas, incluso GigasBytes?. Pues, para resolver este supuesto es muy aconsejable utilizar imagenes incrementales que consistiría en tener una imagen básica para ambos cursos, la misma, e instalar, en cada caso, el software necesario para cada uno de ellos, creando respectivamente una imagen incremental. La forma de proceder seria la siguiente:

1- Teniendo en cuenta que ya poseo una imagen básica del sistema --en caso de no tenerla se procedería a instalarlo y crearla-- efectúo una restauración de esta imagen básica en un equipo cualquiera.

2- Me siento delante de la máquina e instalo el software para el curso de diseño gráfico.

3- Defino y creo una imagen incremental referida a la imagen básica que restauré previamente.

4- Vuelvo a restaurar la imagen básica, borrando así cualquier resto del software de diseño.

5- Instalo las herramientas, compiladores, Entornos de desarrollo visual, etc, para el curso de programación.

6- Vuelvo a definir y crear otra imagen incremental también referida a la imagen básica primitiva.

Al final de este proceso tendría lo siguiente

  • Una imagen básica.
  • Una imagen incremental para el curso de Diseño Gráfico.
  • Una imagen incremental para el curso de Programación.

Las combinaciones que tengo son las siguientes:

  • Si restauro la imagen básica tengo precisamente eso, en el ordenador, una imagen básica.
  • Si restauro la incremental de diseño tengo todo lo que contenía la imagen básica más el software para ese curso.
  • Si restauro la incremental de programación vuelvo a tener todo lo que contenía la básica, sin restos del otro curso, y con el software a punto para el de programación.

Resumiendo, aunque una imagen incremental ocupe mucho menos espacio que una báscia al haberse creado sobre ella y contener sólo los cambios, al restaurarse, el sistema realiza una sincronización de la partición con la imagen básica eliminando así cualquier vestigio de otras instalaciones y posteriormente copia estos cambios, todo en el mismo proceso.

Por tanto en la pantalla de definicón de una imagen incremental podemos encontrar los siguientes campos:

Nombre.-Es el nombre canónico del archivo de imagen incremental que contendrá los cambios con respecto a la imagen básica, es decir, el nombre que tendrá físicamente en el disco duro. Por tanto, en este campo, será obligatorio introducir sólo caracteres alfanuméricos.

Descripción.-Es una descripción breve de la Imagen Incremental que se utilizará para identificarla a lo largo de la aplicación.

Imagen básica.-Se trata de la Imagen Básica sobre la que se detectarán los cambios. El proceso de creación de una imagen incremental consiste en comparar el contenido de una partición con una imagen básica almacenada en un repositorio y guardar las diferencias en un archivo; este archivo se almacenará en el mismo repositorio donde la imagen básica utilizada para generarlo.

Imágenes Incrementales (Creación).-

La pantalla de creación de las Imágenes Incrementales es idéntica a la de las Imágenes Básicas con la diferencia de que en el desplegable donde se selecciona la imagen a crear aparecen sólo Imagenes Incrementales con las mismas limitaciones y concordancias con la fila de partición que la imagen básica a la que están adscritas.

Imágenes Incrementales (Restauración).-

La pantalla de restauración de las Imágenes Incrementales es también idéntica a la de las Imágenes Básicas y también con la diferencia de que en el desplegable sólo aparecen Imagenes Incrementales ya creadas.

Por lo demás, todo lo dicho anteriormente en el proceso de creación y restauración de Imágenes Básicas, se hace extensivo a las Incrementales.

Attachments (20)