Changes between Initial Version and Version 1 of Syncronize1.1


Ignore:
Timestamp:
Jan 20, 2017, 1:30:49 PM (8 years ago)
Author:
irina
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Syncronize1.1

    v1 v1  
     1[[TOC(headinf=Índice)]]
     2{{{
     3#!div style="width:50%; background: #ffd; font: bold italic large sans-serif">
     4En construcción
     5}}}
     6
     7
     8= Pruebas de mejoras en imágenes sincronizadas =
     9== Introducción ==
     10Actualmente no están utilizando las imágenes sincronizadas por tener una serie de problemas:
     11 * Falta de compresión en la imagen, por lo que ocupa mucho espacio en el servidor.
     12 * La transferencia es más lenta que las imágenes monolíticas.
     13 * Las Acl de Windows se tiene que restaurar de forma independiente, después de restaurar los archivos.
     14
     15En está página mostraremos los resultados de las últimas pruebas que estamos haciendo.
     16
     17== Problema de espacio en disco ==
     18
     19=== Concepto imágenes "hijas" ===
     20
     21Observando como trabaja rsnapshop vemos que al crear una nueva copia de seguridad de un dispositivo toma como punto de partida una anterior y luego aplica rsync entre el equipo origen y el nuevo backup. OpenGnsys podría utilizar este procedimiento para imágenes similares.
     22
     23|| Primera copia:  || rsync user@equipo_remoto::/carpeta        backup1 ||
     24|| Segunda copia: || cp -al backup1 backup2 \\ rsync user@equipo_remoto::/carpeta       backup2 ||
     25
     26La opción -l del comado cp crea enlaces “duros” a los archivos en vez que copiarlos, de esta forma no se ocupa nuevo espacio en el disco duro y es mucho más rápido.
     27
     28En rsync es imprescindible __no usar la opción “--inplace”__
     29
     30 Si no se usa esta opción, rsync copia el archivo que está sincronizando en un fichero temporal y al final sustituye el original, eliminando el enlace entre los archivos de distintas imágenes.
     31
     32 Si ponemos esta opción rsync modifica directamente el archivo, no rompe el enlace y modifica todas la imágenes que tengamos.
     33
     34Desaparecería en concepto de diferencial, ya que todas contienen los datos completos. Tendríamos imágenes hermanas o hijas, tomando como partida una imagen parecida y luego sincronizándola con la partición del equipo modelo.
     35
     36Las imágenes serían tipo directorio, ya que es la única forma de hacer enlaces entre archivos de varias imágenes.
     37
     38Más información en [[http://www.mikerubel.org/computers/rsync_snapshots Easy Automated Snapshot-Style Backups with Linux and Rsync] (rsnapshop se basa en este artículo).
     39
     40=== Compresión de los datos en el servidor ===
     41Encontramos varios procedimientos:
     42 * Montar los dispositivos remotos con compresión: no lo hemos probado
     43{{{
     44sshfs -o nonempty,sshfs_sync,compression=yes username@host:/path/archives/ /mounted/compress
     45}}}
     46
     47 * Sistemas de fichero comprimidos. Encontramos varios:
     48  * Btrfs
     49  * ZFS
     50  * FUSE: FuseCompress or CompFUSEd.
     51
     52==== Pruebas con ZFS ====
     53Las pruebas se hacen con Ubuntu16, ya que los nuevos kernel traen mejor soporte para este sistema de ficheros.
     54
     55ZFS permite gestionar varios dispositivos (discos o archivos) para crear un pool y en el puede definir los sistemas de ficheros que queramos.
     56
     57Por comodidad usamos un archivo para el dispositivo.
     58
     59Creamos un sistema de fichero con compresión y acl:
     60
     61{{{
     62truncate --size="10"G /opt/opengnsys/images/store
     63zpool create sync /opt/opengnsys/images/store
     64zfs create sync/images
     65zfs set compression=on sync/images
     66zfs set acltype=posixacl sync
     67}}}
     68
     69Opciones de montaje:
     70{{{
     71Mount
     72sync/images on /sync/images type zfs (rw,relatime,xattr,posixacl)
     73}}}
     74
     75
     76Configuramos el demonio rsync en el servidor para compartir el directorio de las imágenes sincronizadas. En /etc/rsyncd.conf:
     77{{{
     78    [ogimages]
     79    comment = Carpeta de imagenes sincronizadas
     80    path = /sync/images
     81    read only = no
     82    list = yes
     83    uid = root
     84    gid = root 
     85    auth users = opengnsys
     86    secrets file = /etc/rsyncd.secrets
     87}}}
     88
     89Tamaño de los datos
     90
     91En Ubuntu 16.04
     92
     93|| Recién creado || df -h → sync/images                   10094464       0  10094464   0% /sync/images  ||
     94|| Creamos imagen Ubuntu14 \\ origen 1.1Gb || df -h → sync/images                   9.7G  584M  9.1G   6% /sync/images \\  sudo du -sh Ubuntu14 → 609M  Ubuntu14 ||
     95
     96|| Creo Ubuntu 16 \\ origen 3,9G || df -h → sync/images                   9.7G  2.6G  7.1G  27% /sync/images \\ sudo du -sh  * → 609M   Ubuntu14 \\                         → 2.1G      Ubuntu16 ||
     97|| Creo diferencial \\ cp -al Ubuntu14 Ubuntu14bis \\ rsync (sin opción --inplace) || df -h → sync/images                   9.7G  2.6G  7.1G  27% /sync/images \\ sudo du -sh  * → 609M otra \\    → 2.1G       Ubuntu16\\  → 629M      Ubuntu14bis ||
     98
     99Rsync compara correctamente los ficheros de la partición origen a la imagen comprimida.
     100
     101Observamos que hay diferencias entre los archivos de las distintas imágenes:
     102{{{
     103diff Ubuntu14/etc/hosts Ubuntu14bis/etc/hosts
     10410a11,12
     105>
     106> 192.168.2.10  ogrepo
     107}}}
     108
     109Errores resueltos:
     110
     111'''rsync -aHAX  --password-file=/scripts/passrsync  --exclude 'coredump' --numeric-ids --progress --inplace --delete   /mnt/sda1/ opengnsys@$ogrepo::syncimages/otra'''
     112
     113La segunda vez no syncroniza nada → aunque está comprimido rsync compara bien los archivos
     114
     115Error haciendo imagen de Ubuntu 16 (sólo este error)
     116 * rsync: set_acl: sys_acl_set_file(media/instalcdc, ACL_TYPE_ACCESS): Operation not supported (95)
     117 * Solución: zfs set acltype=posixacl sync   # Para que soporte acl
     118
     119
     120
     121
     122Creo diferencial
     123
     124'''En servidor: cp -al Ubuntu14 Ubuntu14bis \\
     125En cliente: rsync -aHAX  --password-file=/scripts/passrsync  --exclude 'coredump' --numeric-ids --progress --inplace --delete   /mnt/sda1/ opengnsys@$ogrepo::syncimages/Ubuntu14bis'''
     126
     127Error: diff Ubuntu14/etc/hosts Ubuntu14bis/etc/hosts → son iguales
     128
     129Solución: Para que no se mantenga el enlace y no reescriba los ficheros de otras imágenes hay que eliminar la opción –inplace.
     130
     131
     132
     133
     134==== Sistemas de ficheros descartados ====
     135__FuseCompress__
     136Segú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.
     137
     138__CompFUSEd__
     139Parece que el proyecto está abandonado: últimas informaciones de 2009. Descartado
     140
     141__Btrfs__
     142Permite montar con compresión de forma transparente. Pero:
     143 * 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)
     144 * 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.
     145
     146