| 1 | [[TOC(heading=Índice)]] |
| 2 | |
| 3 | = Cambios de la versión 1.0.6 a la versión 1.1 (tipo archivo) = |
| 4 | |
| 5 | == En la versión 1.0.6 == |
| 6 | La imágenes se guardan en un archivo que contiene el sistema de ficheros EXT4/BTRFS con el contenido de la partición original. |
| 7 | |
| 8 | Cuando se va a crear o restaurar la imagen se monta el sistema de ficheros de la imagen sobre un directorio y se sincroniza con rsync dicho directorio con la partición. |
| 9 | |
| 10 | Para guardar la imagen en cache podemos enviar el fichero completo o montar el sistema de ficheros sobre un directorio y sincronizar los archivos que contiene. |
| 11 | |
| 12 | Nota: se recomienda el sistema de fichero EXT4 para las imágenes. |
| 13 | |
| 14 | === Características de está versión === |
| 15 | |
| 16 | __Tamaño de las imágenes__ |
| 17 | |
| 18 | La imagen ocupa lo mismo que los datos de la partición; no se ha encontrado forma de comprimirlos. (Se intentó con btrfs pero sin éxito). |
| 19 | |
| 20 | __Velocidad de transferencia__ |
| 21 | |
| 22 | Se mejora utilizando los protocolos multicast o torrent la primera vez que se manda la imagen a cache. Para ello es necesario que la imagen se “empaquete” en un archivo. |
| 23 | |
| 24 | === Comportamiento de los scripts === |
| 25 | |
| 26 | '''updateCache''' |
| 27 | |
| 28 | Al guardar la imagen en cache por primera vez se puede enviar el fichero completo utilizando los mismos protocolos que para las imágenes monolíticas o rsync. Rsync en más lento que multicast o torrent. |
| 29 | |
| 30 | Cuando ya existe la imagen en cache y se ha modificado la del servidor, para actualizar se montarán ambas imágenes y sólo se transferirán las diferencias. |
| 31 | |
| 32 | '''restoreBaseImage y restoreDiffImage''' |
| 33 | |
| 34 | Para copiar la imagen a la partición, ya sea de servidor o desde cache sólo podemos utilizar la sincronización con rsync. La primera tendrán que pasarse todos los datos pero las siguientes sólo los que se hayan modificado. |
| 35 | |
| 36 | Se tiene la opción de no borrar los ficheros nuevos que haya creado el usuario. Por defecto sí se borran. |
| 37 | |
| 38 | == En la versión 1.1 == |
| 39 | Las imágenes se guardan en un directorio. |
| 40 | |
| 41 | Cuando se va a crear o restaurar la imagen desde el repositorio se sincroniza el directorio de con rsync o multicast con la partición. |
| 42 | |
| 43 | De igual modo para guardar la imagen en cache utilizaremos rsync o multicast. |
| 44 | |
| 45 | Para transferir de la cache a la partición sólo podemos utilizar rsync. |
| 46 | |
| 47 | === Características de está versión === |
| 48 | __Tamaño de las imágenes__ |
| 49 | |
| 50 | Se mejora respecto a la versión anterior al clonar las imágenes con enlaces duros y utilizando en cache el sistema de ficheros btrfs con compresión. |
| 51 | |
| 52 | __Velocidad de transferencia__ |
| 53 | |
| 54 | Para permitir clonar las imágenes no podemos “empaquetarlas” en un archivo, esto no permite que use los protocolos multicast o torrent de igual forma que las monolíticas. |
| 55 | |
| 56 | Podemos utilizar multicast pero hemos de dar tres pasos: |
| 57 | * Detección de los ficheros a transferir con rsync. |
| 58 | * Transferencia de los ficheros empaquetado en un tar con multicast (udp-sender/udp-receiver). |
| 59 | * Creación de enlaces simbólicos o "duros" con rsync. |
| 60 | |
| 61 | === Comportamiento de los scripts === |
| 62 | |
| 63 | |
| 64 | '''initCache o mountCache''' |
| 65 | |
| 66 | La cache de los equipos se puede formatear en btrfs y montar de forma comprimida consiguiendo que las imágenes ocuparán menos espacio. Por defecto se mantiene el sistema de ficheros ext4 para la cache. |
| 67 | |
| 68 | '''createBaseImage''' |
| 69 | |
| 70 | Cuando se crea una nueva imagen primero se busca si existe otra del mismo sistema operativo y se clona (copia con enlaces duros) la más cercana en tamaño. Los datos que sean iguales de una a otra sólo ocuparán el espacio una vez. |
| 71 | |
| 72 | * Con el script '''cloneImage''' o la función ogCloneImage puedo elegir antes de crear la imagen cuál es la que considero más parecida a la nueva. |
| 73 | * La función '''ogInitImage''' es utilizada por createBaseImage para elegir cuál es la imagen más cercana clonarla con ogCloneImage. |
| 74 | |
| 75 | Nota: el script createDiffImage no clona una imagen existente por no tener un criterio para saber si son similares, pero si existiera una parecida sí podríamos clonarla antes de crear la imagen. |
| 76 | |
| 77 | '''updateCache''' |
| 78 | |
| 79 | Al guardar la imagen en cache por primera vez se puede utilizar multicast o rsync. Si utilizamos multicast se darán tres pasos: |
| 80 | |
| 81 | * Detección de los ficheros a transferir con rsync. |
| 82 | * Transferencia de los ficheros empaquetado en un tar con multicast (udp-sender/udp-receiver). |
| 83 | * Creación de enlaces simbólicos o "duros" con rsync. |
| 84 | |
| 85 | '''restoreBaseImage y restoreDiffImage''' |
| 86 | |
| 87 | Para copiar la imagen a la partición si el origen es el servidor podemos utilizar la sincronización con multicast con los mismos pasos que updateCache o con rsync. Cuando se restaura un grupo de ordenadores con multicast, estos mandarán el listado de los ficheros a transferir al servidor y el servidor los unirá en uno solo, mandando todos los ficheros que necesitan los equipos. |
| 88 | |
| 89 | Para copiar los datos de la cache a la partición se utilizará siempre rsync. |
| 90 | |
| 91 | Cuando existan datos en la partición sólo se transferirán los que se hayan cambiado o borrado. |
| 92 | |
| 93 | Se tiene la opción de no borrar los ficheros nuevos que haya creado el usuario. Por defecto sí se borran. |
| 94 | |
| 95 | == Pruebas de la versión 1.0.6 y 1.1 == |
| 96 | |
| 97 | Como queremos poder probar cual de las dos versiones es mejor en cuanto a velocidad de restauración y tamaño de las imágenes no se ha integrado el ticket en la rama de desarrollo. Para probar las dos versiones hay que hacer: |
| 98 | |
| 99 | * Versión 1.0.6: La versión 1.1 trae el código de las sincronizadas de la 1.0.6. |
| 100 | * Versión 1.1: Después de instalar o actualizar a la versión 1.1 hay que instalar el ticket bajando el [source:branches/version1.1-tickets/Sincronizadas-multicast-ticket770/installer-info/install.sh script de instalación] y lo ejecutándolo con sudo. |
| 101 | |
| 102 | Si queremos pasar imágenes de la versión 1.0.6 a la 1.1 se puede utilizar el script de servidor /opt/opengnsys/bin/convertimage. |