#  Crear imagen

## Introducción
OpenGnsys permite capturar el contenido de un sistema de archivos en forma de imagen. En esta sección se describe cómo realizar una imagen monolítica, es decir, una imagen que guarda el contenido completo del sistema de archivos en un único fichero. Esta imagen podrá almacenarse en un repositorio asignado previamente al cliente y será utilizada en posteriores restauraciones en otros equipos. 

- Imágenes monolíticas: contienen una copia exacta del sistema de archivos. Se crean y restauran de forma completa. Aunque solo cambien unos pocos ficheros, en cada restauración se transfiere toda la información.

- Imágenes Git: permiten almacenar los cambios en un repositorio Git. Se compara el origen y el
destino y sólo se transfieren los cambios utilizando las funcionalidades de Git. Esta modalidad es gestionada por el componente complementario oggit, que se describe más adelante en este manual.

## Preparación del cliente modelo

Clonar una imagen supone realizar una copia exacta del sistema de ficheros en otros
clientes. Sin embargo, los distintos sistemas operativos realizan una cierta personalización independiente para cada equipo. Por lo tanto, el cliente modelo debe cumplir ciertos aspectos de configuración dependiendo del sistema operativo que vaya a utilizarse para acceder a los datos almacenados en la imagen.

El equipo modelo debe presentar una arquitectura de hardware homogénea con respecto al resto de los equipos destino. Esto incluye tanto la familia del procesador, como el tipo y configuración de la controladora de discos, modo de arranque (BIOS/UEFI), y la disposición general de particiones y discos. Aunque OpenGnsys realiza ciertos ajustes automáticos tras la restauración mediante su sistema de personalización BuildToOrder, la compatibilidad a nivel de drivers y hardware base sigue siendo un factor determinante, especialmente en sistemas Windows.

En sistemas antiguos como Windows XP, la restauración sólo tendrá éxito si la controladora de disco (IDE, AHCI, SATA, etc.) es idéntica en el equipo destino, ya que no existen mecanismos de adaptación automáticos. En sistemas más modernos, a partir de Windows 7, OpenGnsys es capaz de aplicar una serie de modificaciones en el arranque que permiten cierta independencia del hardware original (concepto BuildToOrder), aunque sus resultados pueden variar según la versión del sistema operativo y el tipo de hardware.

Es importante destacar que Windows 10 no está completamente optimizado para BuildToOrder, por lo que no se recomienda reutilizar una imagen creada sobre una controladora SATA para restaurarla en un equipo con controladora IDE, o viceversa. En estos casos, la buena práctica consiste en crear dos imágenes diferenciadas, cada una sobre un equipo modelo representativo de su familia de hardware.

Otro aspecto relevante es el tamaño de las particiones en el equipo modelo. Para que la imagen pueda ser desplegada correctamente, el tamaño de la partición en el equipo destino debe ser igual o superior al del modelo original. Se recomienda que la partición origen disponga de al menos un 10% de espacio libre adicional al tamaño de los datos del sistema de ficheros, con un mínimo absoluto de 1 GB libre para garantizar una operación de captura fluida y sin errores.

Además, es aconsejable que las particiones en el modelo no excedan las dimensiones típicas de los equipos destino, para evitar conflictos durante la restauración y asegurar una mayor reutilización de la imagen en diferentes entornos.

Antes de ejecutar el comando de creación de imagen, es imprescindible que el cliente modelo esté correctamente configurado:

- Debe estar encendido y arrancado mediante ogLive.

- Tener un sistema operativo instalado funcional.

- Haber realizado limpieza del sistema y optimización del disco.

- Tener configurado OGAgent si se desea gestión posterior del cliente.

- Evitar el uso de particiones LVM, RAID o discos dinámicos.

- El sistema operativo debe estar contenido en una única partición.

### Acceso al comando “Crear imagen”
Desde la consola web de administración, se accede al comando de creación de imagen siguiendo estos pasos:

- Ir a la pestaña Grupos.

- Seleccionar la Unidad Organizativa y localizar el cliente modelo.

- Pulsar sobre el icono de acciones (tres puntos verticales) del cliente encendido.

- En el menú contextual, hacer clic en la opción Crear imagen.
![oggui-cloneengine-crear-imagen-acceso.png](../assets/images/screenshots/oggui-cloneengine-crear-imagen-acceso.png)



### Formulario de creación de imagen monolítica
Al acceder a Crear imagen, se abre un formulario que consta de tres secciones:

- Configuración de tipo de imagen:

- Seleccionar el tipo de imagen: en este caso, Monolítica.

- Configuración de imagen:

- Introducir el nombre canónico de la imagen. Este nombre identificará el fichero que se generará y debe estar compuesto únicamente por caracteres alfanuméricos (sin espacios ni guiones bajos).

- Selección de partición:

- Seleccionar la partición del disco donde se encuentra el sistema operativo que se desea capturar. Esta partición debe ser válida y tener un sistema de archivos reconocido.

![oggui-cloneengine-crear_imagen.png](../assets/images/screenshots/oggui-cloneengine-crear_imagen.png)

Una vez completado el formulario, pulsar en el botón Ejecutar (arriba a la derecha) para iniciar el proceso de creación.

### Proceso de creación de imagen
Al ejecutar el comando, el cliente entra en modo ejecución y muestra una interfaz informativa con los distintos pasos del proceso:

![oggui-cloneengine-crear_imagen_cliente_status.png](../assets/images/screenshots/oggui-cloneengine-crear_imagen_cliente_status.png)

Durante todo este proceso, no debe apagarse ni reiniciarse el cliente. En pantalla se muestra el avance paso a paso y los comandos internos que ejecuta el sistema (createImage.py, partclone, etc.).


# Despliegue de  imagen

El despliegue de imagen es el proceso mediante el cual se restaura en un equipo cliente una copia exacta del sistema operativo, aplicaciones y configuraciones previamente capturadas en forma de imagen. En este manual diferenciamos dos tipos de despliegue:

- **Despliegue de imagen monolítica**: Se restaura una imagen completa del sistema operativo, sobrescribiendo todo el contenido del disco destino.
- **Despliegue de imagen Git**: Se restauran únicamente los cambios desde una versión anterior, utilizando las funcionalidades de Git para optimizar la transferencia de datos.


## Modos de transmisión de imágenes
Durante el proceso de despliegue de imágenes, OpenGnsys permite seleccionar diferentes protocolos de transmisión de datos entre el origen de la imagen (REPO o CACHE) y el cliente destino. Esta elección puede influir directamente en el rendimiento de la clonación y la carga de red, especialmente cuando se realiza de forma simultánea a múltiples equipos.

A través de la interfaz web, estos modos pueden seleccionarse en la sección Configuración de imagen al preparar una acción de restauración.

![oggui-cloneengine-crear_imagen_monolitica_tipo_transmicion.png](../assets/images/screenshots/oggui-cloneengine-crear_imagen_monolitica_tipo_transmicion.png)

### **Unicast**
En el modo Unicast, los datos de la imagen se transfieren directamente desde el repositorio remoto (REPO) hacia cada cliente destino mediante una conexión punto a punto. En caso de que la imágen ya este presente en la partición CACHE del cliente destino, restaurará el sistema operativo a partir de esa imagen. Este método es sencillo de configurar y no requiere características especiales en la red, aunque puede suponer una carga significativa para el servidor cuando se despliega la imagen a múltiples equipos simultáneamente, ya que se realiza una transferencia independiente para cada cliente.

![oggui-cloneengine-metodoTransmisionUnicast-esquema.png](../assets/images/screenshots/oggui-cloneengine-metodoTransmisionUnicast-esquema.png)

### **Multicast**
El modo Multicast permite enviar los datos de la imagen una única vez desde el servidor, siendo recibidos simultáneamente por todos los clientes conectados. Esta técnica reduce considerablemente el uso de ancho de banda y la carga del servidor, siendo especialmente eficaz cuando se necesita restaurar la misma imagen en un gran número de equipos, como ocurre en aulas o laboratorios. Para su correcto funcionamiento, la red debe estar habilitada para tráfico multicast, y tanto el servidor como los clientes deben encontrarse preferiblemente en la misma subred.

**Parámetros para la descarga mediante Multicast**
Para configurar la transmisión Multicast, es necesario ajustar los siguientes parámetros:

- Puerto: El puerto utilizado para la transmisión Multicast. Este puerto debe ser accesible para todos los clientes que reciban la imagen. Es importante que todos los equipos estén configurados para escuchar en este puerto específico.
!!! note Nota
    El puerto debe estar en el rango 9000-9050 y además debe ser número par.

- Dirección IP Multicast: La dirección IP Multicast a la que se enviará la imagen. Esta dirección debe estar dentro del rango de direcciones Multicast, por ejemplo, 239.1.1.1.

- Modo Multicast: Este parámetro define el tipo de transmisión. Puede configurarse en:

    - Full duplex: Permite la comunicación bidireccional, es decir, los clientes pueden enviar y recibir datos simultáneamente.

    - Half duplex: Los clientes sólo pueden recibir datos del servidor, pero no pueden enviar datos de vuelta. Es más adecuado para casos donde los clientes no necesitan interactuar con el servidor.

- Velocidad: La velocidad de transmisión en Mbps, que se utiliza para controlar el ancho de banda dedicado a la transferencia de la imagen.

- Máximo de clientes: Este parámetro define el número máximo de clientes que pueden recibir la transmisión Multicast simultáneamente. Es útil para controlar la carga de la red y asegurarse de que el tráfico Multicast no sobrecargue los recursos de la red.

- Tiempo máximo de espera: Este parámetro establece el tiempo máximo en segundos que el sistema esperará para iniciar la transmisión. Esto es útil para dar tiempo a los clientes a que se conecten antes de que empiece el envío de la imagen.

![oggui-cloneengine-metodoTransmisionMulticast-esquema.png](../assets/images/screenshots/oggui-cloneengine-metodoTransmisionMulticast-esquema.png)


### **Torrent (P2P)**
En el método de P2P (Peer-to-Peer), los equipos colaboran entre sí para compartir fragmentos de la imagen a medida que la descargan. Este enfoque permite disminuir la carga en el servidor principal, ya que los equipos (clientes) no solo descargan, sino que también pueden redistribuir partes de la imagen a otros clientes. Los modos de configuración de P2P definen el papel de cada equipo dentro de este proceso colaborativo.

- Seeder: Este equipo ya posee la imagen completa y se configura para distribuirla a otros equipos en la red. Su función principal es proporcionar la imagen a otros clientes.

- Leecher: El Leecher es un equipo que está descargando la imagen desde los Seeders o desde otros peers. Nunca proporciona fragmentos de la imagen, solo descarga.

- Peer: El Peer es un equipo que, a medida que descarga partes de la imagen, también las comparte con otros clientes. Esto ayuda a balancear la carga entre los equipos participantes, maximizando la eficiencia del proceso de distribución.

Este sistema de distribución descentralizada es particularmente útil en redes con muchos nodos, ya que reduce la dependencia del servidor central, optimizando el uso de la red y mejorando la velocidad de transferencia al permitir que cada cliente actúe tanto como receptor como distribuidor.

![oggui-cloneengine-metodoTransmisionP2P-esquema.png](../assets/images/screenshots/oggui-cloneengine-metodoTransmisionP2P-esquema.png)


### **Direct (Unicast direct / Multicast direct)**
Las variantes directas de Unicast y Multicast eliminan la etapa intermedia de almacenamiento en la caché local del cliente. En los modos Unicast (direct) y Multicast (direct), la imagen se transfiere directamente desde el repositorio a la partición de destino. Este método permite reducir el tiempo total de despliegue y es útil cuando no se desea conservar temporalmente la imagen o no se dispone de espacio suficiente en CACHE. No obstante, requiere una red estable y continua, ya que cualquier interrupción durante la restauración podría invalidar el proceso.


## Referencias Adicionales

Para información adicional sobre el Motor de Clonación, consulte:

- Guía de administración del sistema
- Documentación de la API de clonación
- Registros de cambios y actualizaciones
