close
Warning:
Failed to sync with repository "ogBrowser-Git": (1366, "Incorrect string value: '\\xF0\\x9F\\x93\\xA6 I...' for column 'message' at row 1"); repository information may be out of date. Look in the Trac log for more information including mitigation strategies.
- Timestamp:
-
Jun 27, 2017, 10:05:53 AM (8 years ago)
- Author:
-
irina
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
v2
|
v3
|
|
8 | 8 | * 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. |
9 | 9 | |
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. |
| 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 "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. |
11 | 11 | |
12 | 12 | Estos 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. |
13 | 13 | |
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. |
| 14 | En 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. |
15 | 15 | |
16 | 16 | '''Procedimiento''' |
17 | 17 | |
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. |
23 | 31 | |
24 | 32 | En el servidor puedo montar la imagen y modificar, borrar o añadir los archivos que queramos. |
… |
… |
|
38 | 46 | La imagen será un archivo con un sistema de fichero que contenga los datos de la partición. |
39 | 47 | |
40 | | Creamos el archivo vacío: |
| 48 | __Creamos el archivo vacío__ |
| 49 | |
| 50 | Podemos utilizar los comandos dd o truncate, dd tarda bastante y truncate es inmediato: |
41 | 51 | {{{ |
42 | 52 | dd if=/dev/zero of=$IMGFILE bs=1024 count=$SIZEREQUIRED |
| 53 | }}} |
| 54 | |
| 55 | o: |
| 56 | {{{ |
| 57 | truncate --size=">$SIZEREQUIRED"k "$IMGFILE" |
43 | 58 | }}} |
44 | 59 | |
… |
… |
|
46 | 61 | SIZEREQUIRED: tamaño de la imagen en kilobytes. |
47 | 62 | |
48 | | |
| 63 | __Creamos el sistema de ficheros__ |
49 | 64 | |
50 | 65 | Detectamos 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: |
… |
… |
|
54 | 69 | }}} |
55 | 70 | |
56 | | |
57 | | Creamos el sistema de ficheros: |
| 71 | Utilizamos el comando mkfs del fs elegido: |
| 72 | |
58 | 73 | {{{ |
59 | 74 | LOOPDEVICE=$(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 |
| 75 | if [ "$IMGFS" == "EXT4" ]; then |
| 76 | mkfs.ext4 -i 4096 -b 4096 -L "${2##*\/}" $LOOPDEVICE 2>&1 |tee -a $OGLOGCOMMAND |
| 77 | else |
| 78 | mkfs.btrfs -L "${2##*\/}" $LOOPDEVICE 2>&1 | tee -a $OGLOGCOMMAND |
66 | 79 | fi |
67 | 80 | }}} |
… |
… |
|
70 | 83 | |
71 | 84 | |
72 | | Sincronización imagen: |
| 85 | __Sincronización imagen__ |
73 | 86 | |
74 | 87 | Montamos la imagen y la partición que queremos clonar y sincronizamos tomando como origen la partición. |
75 | 88 | |
76 | | Montamos la imagen. En el servidor: |
77 | | {{{ |
| 89 | 1) Montamos la imagen. En el servidor: |
| 90 | {{{ |
| 91 | LOOPDEVICE=$(losetup -f) |
78 | 92 | if [ $IMGFS == "EXT4" ]; then |
79 | 93 | mount $OPTMOUNT -t ext4 $1 $2 |
… |
… |
|
85 | 99 | OPTMOUNT: ro cuando restauramos, vacío al crearla, ya que por defecto es de lectura y escritura. |
86 | 100 | |
87 | | Montamos la partición, en el cliente: |
| 101 | 2) Montamos la partición, en el cliente: |
88 | 102 | {{{ |
89 | 103 | ogMount 1 X |
90 | 104 | }}} |
91 | 105 | |
92 | | # Creamos la lista del contenido. |
| 106 | 3) Creamos la lista del contenido. |
93 | 107 | |
94 | 108 | {{{ |
95 | 109 | mkdir /tmp/vacio |
96 | | # Creamos la lista del contenido y lo situamos en la particion a copiar. |
97 | 110 | rsync -aHvn --delete /mnt/sdaX/ /tmp/vacio > /tmp/ogimg.lista |
98 | 111 | }}} |
99 | 112 | |
100 | | Sólo para windows: creamos la lista de acl: |
| 113 | 4) Sólo para windows: creamos la lista de acl: |
101 | 114 | |
102 | 115 | {{{ |
… |
… |
|
109 | 122 | }}} |
110 | 123 | |
111 | | # Sincronizamos la imagen desde la partición. |
| 124 | 5) Sincronizamos la imagen desde la partición. |
112 | 125 | |
113 | 126 | {{{ |
… |
… |
|
118 | 131 | }}} |
119 | 132 | |
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: |
| 133 | 6) Desmontamos la imagen. En el servidor: |
123 | 134 | {{{ |
124 | 135 | umount /opt/opengnsys/images/mount/$IMGNAME |
125 | 136 | }}} |
126 | 137 | |
| 138 | Importante: 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 == |
| 141 | Cuando 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 | |
| 143 | 1) Redimiensiono el archivo |
| 144 | |
| 145 | {{{ |
| 146 | truncate --size=">$NEWSIZEREQUIRED"k "$IMGFILE" |
| 147 | }}} |
| 148 | |
| 149 | 2) Redimiensiono el sistema de ficheros |
| 150 | |
| 151 | {{{ |
| 152 | LOOPDEVICE=$(losetup -f) |
| 153 | if [ $IMGFS == "EXT4" ]; then |
| 154 | losetup $LOOPDEVICE "$IMGNAME.img" |
| 155 | resize2fs -f $LOOPDEVICE &> $REPOLOG |
| 156 | else |
| 157 | mount -o compress=lzo "$IMGNAME.img" "$DIRMOUNT" |
| 158 | btrfs filesystem resize max "$DIRMOUNT" 2>&1 > $REPOLOG |
| 159 | fi |
| 160 | }}} |
| 161 | |
127 | 162 | |
128 | 163 | == Restaurar - Sincronizar una imagen tipo ext4 o btrfs == |
… |
… |
|
130 | 165 | La imagen puede estar en la cache o en repo. |
131 | 166 | |
132 | | Montamos la imagen: |
133 | | Montamos la imagen. En el servidor: |
| 167 | 1) Montamos la imagen, por ejemplo en el servidor |
134 | 168 | |
135 | 169 | {{{ |
… |
… |
|
145 | 179 | }}} |
146 | 180 | |
147 | | Montamos la partición, en el cliente: |
| 181 | 2) Montamos la partición, en el cliente |
148 | 182 | {{{ |
149 | 183 | ogMount 1 X |
150 | 184 | }}} |
151 | 185 | |
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. |
| 186 | 3) Sincronizamos la partición tomando como origen la imagen |
| 187 | |
| 188 | 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. |
153 | 189 | |
154 | 190 | {{{ |
… |
… |
|
156 | 192 | }}} |
157 | 193 | |
158 | | Sólo para windows restauramos las ACL: |
| 194 | 4) Sólo para windows restauramos las ACL |
159 | 195 | |
160 | 196 | {{{ |
… |
… |
|
167 | 203 | # Restauramos las acl: |
168 | 204 | ntfs-3g.secaudit -se /dev/sdaX /tmp/ogimg.acl |
| 205 | }}} |
| 206 | |
| 207 | 5) Desmontamos la imagen |
| 208 | |
| 209 | {{{ |
| 210 | { |
| 211 | umount /opt/opengnsys/images/mount/$IMGNAME |
169 | 212 | }}} |
170 | 213 | |