| 51 | |
| 52 | |
| 53 | ==== Pruebas con Btrfs ==== |
| 54 | |
| 55 | Permite montar con compresión de forma transparente. Pero: |
| 56 | * du muestran el tamaño de los datos como si estuvieran descomprimidos (según la documentación por coherencia con los sistemas de ficheros anteriores) |
| 57 | * df sí muestra la ocupación del sistema de ficheros teniendo en cuenta la compresión. Para saber el tamaño de una imagen habría que calcular la ocupación del repositorio (cache o repo) antes y después de crearla. |
| 58 | |
| 59 | __Prueba creación de una imagen__ |
| 60 | |
| 61 | || Partición cliente || df \\ /dev/sda1 14G '''3,8G''' 9,5G 29% /mnt/sda1 || |
| 62 | || Imagen en cliente || ls $OGCAC$OGIMG \\ !UbuntuSync \\ df \\/dev/sda4 39G '''1,9G''' 35G 6% /opt/opengnsys/cache || |
| 63 | || Imagen en servidor || du -sh !UbuntuSync \\ '''3,7G''' !UbuntuSync || |
| 64 | |
| 65 | __Prueba creación de dos imágenes una clonada de otra__ |
| 66 | |
| 67 | Tamaño de los datos en las particiones del cliente (con df): |
| 68 | || Partición 1 cliente || /dev/sda1 14632408 '''3877776''' 9988280 28% /mnt/sda1 || '''3,7G''' || |
| 69 | || Partición 2 cliente || /dev/sda2 29397972 '''20644320''' 7237848 75% /mnt/sda2 || '''20G''' || |
| 70 | |
| 71 | Al crear la segunda imagen el primer paso es clonar la imagen del mismo sistema operativo que tenga el tamaño más parecido. |
| 72 | |
| 73 | Tamaño de las imágenes en la partición cache (con df): |
| 74 | || Creo imagen de la primera partición || /dev/sda4 40000000 '''2030032''' 36181552 6% /opt/opengnsys/cache || '''2,0G''' || |
| 75 | || Creo imagen de la segunda partición || /dev/sda4 40000000 '''11574108''' 27603108 30% /opt/opengnsys/cache || '''11G '''|| |
| 76 | |
| 77 | Nota: al copiar la imagen en Btrfs es necesario incluir la opción -P para que no siga los enlaces simbólicos. En ext4 no se presenta este problema. |
| 78 | |
| 79 | |
| 80 | |
| 81 | Creo diferencial |
| 82 | |
| 83 | '''En servidor: cp -al Ubuntu14 Ubuntu14bis \\ |
| 84 | En cliente: rsync -aHAX --password-file=/scripts/passrsync --exclude 'coredump' --numeric-ids --progress --inplace --delete /mnt/sda1/ opengnsys@$ogrepo::syncimages/Ubuntu14bis''' |
| 85 | |
| 86 | Error: diff Ubuntu14/etc/hosts Ubuntu14bis/etc/hosts → son iguales |
| 87 | |
| 88 | Solución: Para que no se mantenga el enlace y no reescriba los ficheros de otras imágenes hay que eliminar la opción –inplace. |
| 89 | |
| 90 | == Problema de velocidad de transferencia == |
| 91 | |
| 92 | Hasta ahora para transferir una imagen a la partición destino se utiliza rsync, ya esté en el repositorio o en cache. Vamos a utilizar multicast si la transferencia es desde el repositorio y tar de la partición cache a la definitiva si está en local. |
| 93 | |
| 94 | Se realizan varios pasos: |
| 95 | |
| 96 | * En cada cliente con rsync se crea un listado con los ficheros que hay que modificar y se envían al servidor (unificándolo con los que ya se hayan mandado). |
| 97 | * El servidor envía a todos los clientes los ficheros del listado por multicast y si es desde cache a la partición se usa tar. |
| 98 | * Cada cliente vuelve a ejecutar rsync para comparar los atributos y enlaces. |
| 99 | |
| 100 | |
| 101 | |
| 102 | |
| 103 | === Influencia del cambio de imagen === |
| 104 | La primera vez que copiamos a la cache el comando restaurar realiza dos pasos:primero pasa la imagen del servidor a la cache y luego de la cache. Aunque estos pasos son independientes en las pruebas se aprecia que '''el paso de transferir la imagen de la cache a la partición dura mucho más si se ha realizado antes un updateCache''' de la imagen completa. |
| 105 | |
| 106 | Repetimos la última prueba sin borrar la cache, ni modificar la imagen en el servidor (4 pruebas) |
| 107 | || updateCache || rsync || total || |
| 108 | || 0m 35s || 2m 4s || 2m 51s || |
| 109 | |
| 110 | Nota: no hemos probado que pasa si la modificación de la imagen en el servidor es menor. |
| 111 | |
| 112 | |
| 113 | == Pruebas descartadas == |
| 114 | |
| 115 | === Espacio en disco === |
| 116 | |
69 | | * du muestran el tamaño de los datos como si estuvieran descomprimidos (según la documentación por coherencia con los sistemas de ficheros anteriores) |
70 | | * df sí muestra la ocupación del sistema de ficheros teniendo en cuenta la compresión. Para saber el tamaño de una imagen habría que calcular la ocupación del repositorio (cache o repo) antes y después de crearla. |
71 | | |
72 | | __Prueba creación de una imagen__ |
73 | | |
74 | | || Partición cliente || df \\ /dev/sda1 14G '''3,8G''' 9,5G 29% /mnt/sda1 || |
75 | | || Imagen en cliente || ls $OGCAC$OGIMG \\ !UbuntuSync \\ df \\/dev/sda4 39G '''1,9G''' 35G 6% /opt/opengnsys/cache || |
76 | | || Imagen en servidor || du -sh !UbuntuSync \\ '''3,7G''' !UbuntuSync || |
77 | | |
78 | | __Prueba creación de dos imágenes una hija de otra__ |
79 | | |
80 | | Tamaño de los datos en las particiones del cliente (con df): |
81 | | || Partición 1 cliente || /dev/sda1 14632408 '''3877776''' 9988280 28% /mnt/sda1 || '''3,7G''' || |
82 | | || Partición 2 cliente || /dev/sda2 29397972 '''20644320''' 7237848 75% /mnt/sda2 || '''20G''' || |
83 | | |
84 | | Al crear la segunda imagen el primer paso es clonar la imagen del mismo sistema operativo que tenga el tamaño más parecido. |
85 | | |
86 | | Tamaño de las imágenes en la partición cache (con df): |
87 | | || Creo imagen de la primera partición || /dev/sda4 40000000 '''2030032''' 36181552 6% /opt/opengnsys/cache || '''2,0G''' || |
88 | | || Creo imagen de la segunda partición || /dev/sda4 40000000 '''11574108''' 27603108 30% /opt/opengnsys/cache || '''11G '''|| |
89 | | |
90 | | Nota: al copiar la imagen en Btrfs es necesario incluir la opción -P para que no siga los enlaces simbólicos. En ext4 no se presenta este problema. |
| 138 | * df u du muestran el tamaño de los datos como si estuvieran descomprimidos (según la documentación por coherencia con los sistemas de ficheros anteriores) |
| 139 | * Al crear el sistema de ficheros no hay opción de compresión, por lo que el tamaño es igual si los datos están comprimidos o sin comprimir. |
| 140 | |
| 141 | |
152 | | Errores resueltos: |
153 | | |
154 | | '''rsync -aHAX --password-file=/scripts/passrsync --exclude 'coredump' --numeric-ids --progress --inplace --delete /mnt/sda1/ opengnsys@$ogrepo::syncimages/otra''' |
155 | | |
156 | | La segunda vez no syncroniza nada → aunque está comprimido rsync compara bien los archivos |
157 | | |
158 | | Error haciendo imagen de Ubuntu 16 (sólo este error) |
159 | | * rsync: set_acl: sys_acl_set_file(media/instalcdc, ACL_TYPE_ACCESS): Operation not supported (95) |
160 | | * Solución: zfs set acltype=posixacl sync # Para que soporte acl |
161 | | |
162 | | |
163 | | |
164 | | |
165 | | Creo diferencial |
166 | | |
167 | | '''En servidor: cp -al Ubuntu14 Ubuntu14bis \\ |
168 | | En cliente: rsync -aHAX --password-file=/scripts/passrsync --exclude 'coredump' --numeric-ids --progress --inplace --delete /mnt/sda1/ opengnsys@$ogrepo::syncimages/Ubuntu14bis''' |
169 | | |
170 | | Error: diff Ubuntu14/etc/hosts Ubuntu14bis/etc/hosts → son iguales |
171 | | |
172 | | Solución: Para que no se mantenga el enlace y no reescriba los ficheros de otras imágenes hay que eliminar la opción –inplace. |
173 | | |
174 | | |
175 | | |
176 | | |
177 | | ==== Sistemas de ficheros descartados ==== |
178 | | __FuseCompress__ |
179 | | Según su página en [[https://github.com/tex/fusecompress github]] "El archivo se vuelve ilegible cuando llega a una condición de espacio insuficiente." Descartado. |
180 | | |
181 | | __CompFUSEd__ |
182 | | Parece que el proyecto está abandonado: últimas informaciones de 2009. Descartado |
183 | | |
184 | | __Btrfs__ |
185 | | Permite montar con compresión de forma transparente. Pero: |
186 | | * df u du muestran el tamaño de los datos como si estuvieran descomprimidos (según la documentación por coherencia con los sistemas de ficheros anteriores) |
187 | | * Al crear el sistema de ficheros no hay opción de compresión, por lo que el tamaño es igual si los datos están comprimidos o sin comprimir. |
188 | | |
189 | | |
190 | | == Problema de velocidad de transferencia == |
191 | | |
192 | | Hasta ahora para transferir una imagen a la partición destino se utiliza rsync, ya esté en el repositorio o en cache. Vamos a utilizar multicast si la transferencia es desde el repositorio y tar de la partición cache a la definitiva si está en local. |
193 | | |
194 | | Se realizan varios pasos: |
195 | | |
196 | | * En cada cliente con rsync se crea un listado con los ficheros que hay que modificar y se envían al servidor (unificándolo con los que ya se hayan mandado). |
197 | | * El servidor envía a todos los clientes los ficheros del listado por multicast y si es desde cache a la partición se usa tar. |
198 | | * Cada cliente vuelve a ejecutar rsync para comparar los atributos y enlaces. |
199 | | |
200 | | |
201 | | |
202 | | === Uso de tar: descartado === |
| 203 | |
| 204 | === Velocidad de transferencia === |
| 205 | |
| 206 | ==== Uso de tar: descartado ==== |
| 207 | |
| 208 | Sustituir el rsync para pasar de la partición cache a la partición definitiva por el comando tar. |
| 209 | |
| 210 | De la imagen del servidor a la cache transfiere por multicast y de la cache a la partición se pasa con un archivo tar: |
| 211 | |
| 212 | {{{ |
| 213 | cd $OGCAC$OGIMG/$NOMBRE_IMG |
| 214 | tar -c | - tar -x -C /mnt/sdaX |
| 215 | }}} |
| 216 | |