Changes between Version 2 and Version 3 of SyncronizeBtrfs


Ignore:
Timestamp:
Jun 27, 2017, 12:05:53 PM (7 years ago)
Author:
irina
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SyncronizeBtrfs

    v2 v3  
    88 * comparar la imagen con el contenido de la partición y crear una imagen diferencial con los archivos que difieran y la información de los archivos que sobran, de forma que al restaurar primero la imagen completa y luego la diferencial la partición destino quede como la del equipo modelo.
    99
    10 La sincronización de imágenes se introducirá en la versión 1.0.5 en modo de prueba. Tenemos dos aproximaciones diferentes que denominamos SYNC1 y SYNC2 la diferencia principal es que la versión 1 guarda los datos de las imágenes en un directorio del servidor y la versión 2 lo empaqueta en un archivo que contiene un sistema de ficheros, según el kernel del cliente de opengnsys será ext4 o btrfs.
     10La sincronización de imágenes se introducirá en la versión 1.0.5 en modo de prueba. Tenemos dos aproximaciones diferentes que denominamos "tipo directorio" y "tipo archivo" la diferencia principal es que la versión 1ª guarda los datos de las imágenes en un directorio del servidor y la versión 2ª lo empaqueta en un archivo que contiene un sistema de ficheros, según el kernel del cliente de OpenGnsys será ext4 o btrfs.
    1111
    1212Estos sistemas de ficheros son de lectura y escritura, por lo que nos permite modificar la imagen una vez creada. Además el btrfs permite montarlo en modo comprimido, de forma que la compresión y descompresión se realiza de modo transparente para el usuario.
    1313
    14 En esta página vamos a documentar los procedimientos que se utilizan en la versión sync2, aunque si se van a hacer pruebas es mejor instalar la versión 1.0.5 o utilizar los script bajados del proyecto.
     14En esta página vamos a documentar los procedimientos que se utilizan en la versión tipo archivo, con los comandos del sistema operativo. Si se van a hacer pruebas es mejor instalar la versión 1.0.5 o 1.0.6 para utilizar las funciones y los script del proyecto.
    1515
    1616'''Procedimiento'''
    1717
    18 Creamos imágenes (en cache o repo). Creamos un archivo vacío, lo montamos en modo loop y creamos dentro de él un sistema de ficheros. Montamos el sistema de fichero y clonamos dentro con los datos de la partición sincronizandolos con rsync.
    19 
    20 Para restaurar montaremos la imagen (en cache o repo) y utilizaremos rsync para sincronizar la partición. La partición puede estar vacía o haber sido restaurada y luego modificada por el uso.
    21 
    22 Para windows restauraremos las ACL con ntfs-3g.secaudit
     18__Creamos imágenes (en cache o repo).__
     19
     20 * Creamos un archivo vacío, lo montamos en modo loop y creamos dentro de él un sistema de ficheros.
     21 * Montamos el sistema de fichero y clonamos dentro con los datos de la partición sincronizándolos con rsync.
     22 * Para windows crearemos un backup de las ACL con ntfs-3g.secaudit
     23
     24__Restauramos imágenes.__
     25
     26  * Montamos la imagen (en cache o repo)
     27  * Utilizaremos rsync para sincronizar la partición.
     28  * Para windows restauraremos las ACL con ntfs-3g.secaudit
     29
     30  La partición puede estar vacía o haber sido restaurada y luego modificada por el uso.
    2331
    2432En el servidor puedo montar la imagen y modificar, borrar o añadir los archivos que queramos.
     
    3846La imagen será un archivo con un sistema de fichero que contenga los datos de la partición.
    3947
    40 Creamos el archivo vacío:
     48__Creamos el archivo vacío__
     49
     50Podemos utilizar los comandos dd o truncate, dd tarda bastante y truncate es inmediato:
    4151{{{
    4252dd if=/dev/zero of=$IMGFILE bs=1024 count=$SIZEREQUIRED
     53}}}
     54
     55o:
     56{{{
     57truncate --size=">$SIZEREQUIRED"k "$IMGFILE"
    4358}}}
    4459
     
    4661SIZEREQUIRED: tamaño de la imagen en kilobytes.
    4762
    48 
     63__Creamos el sistema de ficheros__
    4964
    5065Detectamos cual es el kernel del cliente para elegir el sistema de ficheros a utilizar. Si es menor que 3.7 usamos ext4, si es mayor o igual btrfs:
     
    5469}}}
    5570
    56 
    57 Creamos el sistema de ficheros:
     71Utilizamos el comando mkfs del fs elegido:
     72
    5873{{{
    5974LOOPDEVICE=$(losetup -f)
    60 if [ $IMGFS == "EXT4" ]; then
    61       losetup $LOOPDEVICE "$IMGNAME.img"
    62       resize2fs -f $LOOPDEVICE &> $REPOLOG
    63 else
    64       mount -o compress=lzo  "$IMGNAME.img" "$DIRMOUNT"
    65       btrfs filesystem resize max "$DIRMOUNT"  2>&1 > $REPOLOG
     75if [ "$IMGFS" == "EXT4" ]; then
     76      mkfs.ext4 -i 4096  -b 4096 -L "${2##*\/}" $LOOPDEVICE 2>&1 |tee -a $OGLOGCOMMAND
     77else
     78      mkfs.btrfs  -L "${2##*\/}" $LOOPDEVICE 2>&1 | tee -a $OGLOGCOMMAND
    6679fi
    6780}}}
     
    7083
    7184
    72 Sincronización imagen:
     85__Sincronización imagen__
    7386
    7487Montamos la imagen y la partición que queremos clonar y sincronizamos tomando como origen la partición.
    7588
    76 Montamos la imagen. En el servidor:
    77 {{{
     891) Montamos la imagen. En el servidor:
     90{{{
     91LOOPDEVICE=$(losetup -f)
    7892if [ $IMGFS == "EXT4" ]; then
    7993     mount $OPTMOUNT -t ext4 $1 $2
     
    8599OPTMOUNT: ro cuando restauramos, vacío al crearla, ya que por defecto es de lectura y escritura.
    86100
    87 Montamos la partición, en el cliente:
     1012) Montamos la partición, en el cliente:
    88102{{{
    89103ogMount 1 X
    90104}}}
    91105
    92 # Creamos la lista del contenido.
     1063) Creamos la lista del contenido.
    93107
    94108{{{
    95109mkdir /tmp/vacio
    96 # Creamos la lista del contenido y lo situamos en la particion a copiar.
    97110rsync -aHvn --delete /mnt/sdaX/ /tmp/vacio > /tmp/ogimg.lista
    98111}}}
    99112
    100 Sólo para windows: creamos la lista de acl:
     1134) Sólo para windows: creamos la lista de acl:
    101114
    102115{{{
     
    109122}}}
    110123
    111 # Sincronizamos la imagen desde la partición.
     1245) Sincronizamos la imagen desde la partición.
    112125
    113126{{{
     
    118131}}}
    119132
    120 Es mejor utilizar el servicio de rsync en el servidor ya que cuando utilizamos rsync sobre samba va peor, la transferencia es más lenta. Este tema excede el objeto de está documentación.
    121 
    122 Desmontamos la imagen. En el servidor:
     1336) Desmontamos la imagen. En el servidor:
    123134{{{
    124135umount /opt/opengnsys/images/mount/$IMGNAME
    125136}}}
    126137
     138Importante: Es mejor utilizar el servicio de rsync en el servidor ya que cuando utilizamos rsync sobre samba va peor, la transferencia es más lenta. Este tema excede el objeto de está documentación.
     139
     140== Redimensionar imagen ==
     141Cuando se crea una imagen por segunda vez puede ser necesario que el tamaño sea mayor. Se creará exactamente como la primera vez salvo que en vez de crear el archivo de imagen y su sistema de fichero los redimensiono.
     142
     1431) Redimiensiono el archivo
     144
     145{{{
     146truncate --size=">$NEWSIZEREQUIRED"k "$IMGFILE"
     147}}}
     148
     1492) Redimiensiono el sistema de ficheros
     150
     151{{{
     152LOOPDEVICE=$(losetup -f)
     153if [ $IMGFS == "EXT4" ]; then
     154      losetup $LOOPDEVICE "$IMGNAME.img"
     155      resize2fs -f $LOOPDEVICE &> $REPOLOG
     156else
     157      mount -o compress=lzo  "$IMGNAME.img" "$DIRMOUNT"
     158      btrfs filesystem resize max "$DIRMOUNT"  2>&1 > $REPOLOG
     159fi
     160}}}
     161
    127162
    128163== Restaurar - Sincronizar una imagen tipo ext4 o btrfs ==
     
    130165La imagen puede estar en la cache o en repo.
    131166
    132 Montamos la imagen:
    133 Montamos la imagen. En el servidor:
     1671) Montamos la imagen, por ejemplo en el servidor
    134168
    135169{{{
     
    145179}}}
    146180
    147 Montamos la partición, en el cliente:
     1812) Montamos la partición, en el cliente
    148182{{{
    149183ogMount 1 X
    150184}}}
    151185
    152 Sincronizamos la partición tomando como origen la imagen. La partición puede estar vacía o haber sido restaurada con anterioridad y sólo hay que restaurar las modificaciones que haya hecho por el uso.
     1863) Sincronizamos la partición tomando como origen la imagen
     187
     188La partición puede estar vacía o haber sido restaurada con anterioridad y sólo hay que restaurar las modificaciones que haya hecho por el uso.
    153189
    154190{{{
     
    156192}}}
    157193
    158 Sólo para windows restauramos las ACL:
     1944) Sólo para windows restauramos las ACL
    159195
    160196{{{
     
    167203# Restauramos las acl:
    168204ntfs-3g.secaudit -se /dev/sdaX /tmp/ogimg.acl
     205}}}
     206
     2075) Desmontamos la imagen
     208
     209{{{
     210{
     211umount /opt/opengnsys/images/mount/$IMGNAME
    169212}}}
    170213