Copias de Respaldo IV: Archivando con Dar

Enviado por Black Rider el 8 Noviembre, 2011 - 20:30.

PRESENTANDO DAR

Dar (Disk ARchive) es un archivador similar a Tar. Como su nombre indica, es una aplicación especialmente indicada para guardar datos en discos, ya sean CD, DVD o discos duros.

A pesar de no estar tan difundido como Tar, Dar es bastante útil y presenta algunas ventajas frente a su hermano mayor. Algunas de ellas son:

>>Dar soporta métodos de cifrado para archivadores de varios volúmenes de forma nativa (ver más adelante).

>>Dar genera archivos secuenciales similares a los de Tar, pero soporta índices. Ésto significa que, en general, listar los contenidos de un archivador Dar es más rápido. Encontrar y extraer archivos concretos es también más llevadero con Dar que con Tar, dado que Tar no soporta índices y debe escanear todo el “tarball” para encontrar los archivos, mientras que Dar sólo tiene que buscarlos en el índice.

>>La creación de archivadores que se extienden varios volúmenes se más intuitiva que con Tar, y presenta un manejo más sencillo.

>>Soporta mejor la corrupción del archivador. Si un fichero Dar sufre algún desperfecto, es más probable que sobrevivan datos utilizables en él que en un Tar.

>>Incluye compresión nativa y capacidades de filtrado inteligente. Puede indicarse que se aplique compresión a determinados archivos, y no a todos.

Las principales desventajas de Dar son:

>>No está tan difundido como Tar. Si creas una copia de respaldo de todo el sistema con Dar, deberás asegurarte de que tus medios de restauración (como, por ejemplo, tus Live CD) incluyen Dar. Generalmente, es fácil remasterizar un CD de Knoppix e incluir Dar en él.

>>No tiene soporte por parte de ninguna interfaz gráfica, tal como file-roller.

>>Los propios autores de Dar reconocen que no es un formato tan estable como Tar (en el sentido de que el formato cambia con más frecuencia) y recomiendan Tar sobre Dar para la grabación de cintas de datos.

Ahora que tienes una idea de por qué deberías estar usando Dar, o por qué deberías estar usando otra cosa, vayamos directos al grano.

COPIA DE RESPALDO SENCILLA

Ejemplifico aquí cómo hacer una copia de respaldo de la carpeta de un usuario:

$ cd /home/BlackRider
$ dar --alter=atime --empty-dir -c /mnt/usb/Backup

Esto generará un archivo llamado Backup.dar en /mnt/usb. Dar es capaz de gestionar los metadatos de tus archivos (permisos, usuarios y demás) de forma eficaz. Las opciones que he aplicado para el ejemplo hacen lo siguiente:

--> alter=atime : Cambia el atime del software del sistema (el que está siendo respaldado). En caso de omitirse, Dar accede a los archivos para copiarlos y luego restaura el atime previo. Esto puede llevar a la modificación del ctime de los archivos, lo cual puede disparar las alarmas de tu software de seguridad o romper algunas aplicaciones.

--> empty-dir : Por defecto, Dar no archiva directorios vacíos. Con esta opción, sí serán tenidos en cuenta.

COPIA DE RESPALDO DE MÚLTIPLES VOLÚMENES

Un mismo archivador Dar puede dividirse en fragmentos más manejables. Esto es útil cuando se quiere guardar un archivo Dar muy grande en CD o DVD. La gran ventaja de Dar es que, debido a su estructura, si se crea un fichero que ocupa varios DVD y uno de ellos resulta destruido, es posible recuperar datos de los DVD supervivientes de forma sencilla.

$ cd /home/BlackRider
$ dar --alter=atime --empty-dir --slice 620M --first-slice 400M -c /mnt/usb/Backup

-- > slice 620M : Se indica que cada fragmento debe ocupar 620M.
-- > first-slice 400M: Se indica que el primer fragmento ocupará 400M, en vez de los 620 indicados. Esto es útil si pretendes guardar el primer volumen en un dispositivo que ya está parcialmente en uso, y el resto en medios vacíos. Por ejemplo, puedes grabar un CD con una copia remasterizada de Slitaz (distro Live) y el primer volúmen.

Los volúmenes resultantes serán numerados, por lo que los archivos de salida serán de la forma Backup.1.dar, Backup.2.dar, etc.

CIFRADO

La gran ventaja de Dar frente a Tar, al menos para mi, es que el primero soporta cifrado de forma nativa incluso en archivadores multivolúmen. Aunque Tar también puede producir archivadores cifrados, el proceso es tan engorroso que resulta más sencillo emplear Dar directamente.

Los mecanismos criptográficos disponibles son_

--> Uno malo: scrambling. Es rápido, casi no afectará a la velocidad de creación del backup ni su restauración, su consumo de memoria y CPU son ridículas. ¿La pega? Pues que es criptográficamente inadecuado para protegerse de enemigos más peligrosos que tu primo de 12 años.

--> Muchos buenos: blowfish, aes, twofish, serpent y camellia. Todos son algoritmos públicos considerados como seguros. La página web de Dar afirma que sus implementaciones son adecuadas y no son susceptibles de sufrir ataques por marca de agua o codebooks.

Para crear una copia de respaldo con cifrado del malo:

$ dar --alter=atime -K scrambling: --empty-dir -c /mnt/usb/Backup

Ahora un ejemplo con cifrado del bueno:

$ dar --alter=atime -K twofish: --empty-dir --slice 620M --first-slice 400M -c /mnt/usb/Backup

CREAR COPIAS DE RESPALDO DIFERENCIALES

Crear una copia de respaldo diferencial consiste en tomar un backup completo del sistema el primer día, y a partir de ese momento tomar sólo copias de los elementos que cambian a lo largo del tiempo. Puedes dirigirte a mi entrada anterior sobre rsync para averiguar por qué esto es útil y cómo funciona.

Veamos un ejemplo. Para crear copias de respaldo de una carpeta...

Día uno:

$ dar --fs-root /home/blackrider/Mis_Novelas  --alter=atime --empty-dir -c /mnt/usb/Backup_full-`date -I`

Día dos y sucesivos:

$ dar --fs-root /home/blackrider/Mis_Novelas -A [[[[backup anterior]]] --alter=atime --empty-dir -c /mnt/usb/Backup-`date -I`

Por supuesto, también se pueden realizar copias de respaldo diferenciales con archivos de varios volúmenes. Además, no es necesario suministrarle a Dar el backup inicial completo para realizar copias diferenciales (lo cual puede ser engorroso si tu copia de respaldo ocupa 30 DVD). Es posible extraer los índices del primer backup y luego utilizarlos para tu política incremental.

Extraer los índices:

$ dar -A [[[ruta hacia el backup inicial]]] -C /mnt/usb/index_full

En caso de que tu archivador esté dividido en volúmenes, probablemente sólo necesites suministrar el primero y el último.

Siguiendo con el ejemplo anterior, para crear una nueva copia incremental mediante el índice obtenido se haría:

$ dar --fs-root /home/blackrider/Mis_Novelas -A /mnt/usb/index_full -c /mnt/usb/Backup-`date -I`

EXTRAER LOS DATOS

Para listar el contenido de los backup anteriores:

$ dar -l /mnt/usb/Backup

Para extraer los archivos de un .dar sencillo:

$ cd /home/blackrider
$ dar -x /mnt/usb/Backup

En caso de que la copia de respaldo esté cifrada, hay que suplir el parámetro -K y el algoritmo utilizado.

Los archivadores de varios volúmenes se extraen del mismo modo. Dar extraerá los contenidos de cada volumen secuencialmente, uno tras otro. Si alguno de ellos está ausente, Dar extraerá los contenidos de los anteriores y pedirá que se le proporcione el que falta antes de proseguir.

Para restaurar un backup diferencial, basta con restaurar el Dar original (el full backup) y luego los incrementales subsiguientes en orden. Si creas una copia de respaldo completa el lunes, una diferencial el martes y otra el jueves, para restaurar el estado en el que se encontraba el sistema el jueves se debe extraer el Dar del lunes, después el del martes y finalmente el del jueves.

COMPRESIÓN Y FILTRADO

Se puede ordenar a Dar que aplique compresión sobre los archivos que almacena. El algoritmo de compresión se aplicará a los ficheros uno por uno, al contrario que Tar, que crea un archivador y lo comprime en bloque.

Para aplicar compresión, se utiliza una opción del tipo

-z [[algoritmo:]nivel]

Como, por ejemplo:

-z bzip2:9

En muchos casos, queremos excluir de la compresión determinados tipos de archivos. Concretamente, muy pocos algoritmos de compresión sin pérdida tienen un impacto significativo cuando se emplean con contenido multimedia. Otras veces, nos basta con comprimir solamente un conjunto concreto de archivos. Para ello, tenemos:

--exclude-compression : Excluye de la compresión todos los archivos que coincidan con la expresión dada.

--include-compression : Sólo los archivos cubiertos por esta máscara serán comprimidos.

AUTOMATIZAR TAREAS

Un uso típico de Dar es el de crear archivadores de varios volúmenes y grabar cada volumen en un DVD.

En muchos casos, lo que los usuarios hacen es crear todo el archivador en el disco duro y luego grabarlo en sus medios de almacenamiento definitivo. Esto es viable para volúmenes de datos pequeños, pero si quieres realizar una copia de respaldo de un directorio de 750 Gb y tu disco duro dispone sólo de 1000Gb, la cosa falla. Por ello, lo recomendable es crear un volumen, grabarlo a DVD, borrarlo del disco duro y comenzar a escribir el segundo volumen, etc.

Dar dispone de una opción para ejecutar scripts entre la creación de un volumen y el siguiente, de modo que muchas tareas se pueden automatizar para que el usuario no tenga que hacerlas a mano. Por ejemplo:

$ dar -p -E “openssl dgst -md5 %p/%b* >> %p/%b.txt” -c /ruta/al /archivador

-p : Pausa entre la creación de cada volumen y pide confirmación para continuar.
-E : Ejecuta la cadena dada tras crear cada volumen. Léase el manual para más detalles.

El ejemplo anterior genera un archivo de texto que contiene los md5 de los archivos que Dar va creando. Del mismo modo, se pueden ejecutar scripts más complejos. Por ejemplo, se puede hacer que se genere una imagen iso con cada volumen y se grabe en un DVD de forma automática. El lector habrá notado que dar puede pasarle a la orden entrecomillada variables propias ( %p y %b, en nuestro caso). Hay más información sobre el uso de estas variables en el man page.

El manual de Dar tiene mucho más que ofrecer que esta breve introducción. Si te estás planteando usar esta aplicación, deberías leerlo. En mi opinión, Dar tiene más sentido que Tar para grabar backups cifrados de gran tamaño en DVD. En cualquier otra situación, yo utilizo Tar, que está mejor soportado, aunque Dar sigue teniendo muchas ventajas en otros ámbitos. En todo caso, Dar es una buena herramienta libre a disposición de los usuarios.

PRÓXIMA ENTREGA: USO BÁSICO DE TAR (PARTE I)

Imagen de Debish
Enviado por Debish el 8 Noviembre, 2011 - 22:28.

En este sí que me pillas de lleno. Jamás había usado Dar. Cacharrearé con él a ver cómo se desenvuelve.

Como siempre, muy buena entrada clap

Imagen de cnicolas
Enviado por cnicolas el 10 Noviembre, 2011 - 07:51.

Muy buen entrada, reconozco que desconocia Dar hasta que lo nombraste en tu anterior entrada y solo he hecho alguna minima prueba con el, pero tu guia es bastante completa

Imagen de ZorroPlateado
Enviado por ZorroPlateado el 10 Noviembre, 2011 - 08:08.

En la wiki aparece ya un artículo creado por mí hace tiempo.

La única pega que me he encontrado en producción con dar backup es referente al cifrado, mi backups son de 20GB para arriba y al usar el cifrado se daban errores en el momento de crear el empaquetado del backup.....

Por lo demás estupendo.

Imagen de cnicolas
Enviado por cnicolas el 10 Noviembre, 2011 - 08:25.
ZorroPlateado escribió:

En la wiki aparece ya un artículo creado por mí hace tiempo.

Sinceramente, desconocia la guia shamed , ademas el front-end Kdar puede hacerlo mas amigable

Imagen de Black Rider
Enviado por Black Rider el 10 Noviembre, 2011 - 15:11.
ZorroPlateado escribió:

En la wiki aparece ya un artículo creado por mí hace tiempo.

¡Ooops! Bueno, mejor que la información aparezca muchas veces a que no aparezca ninguna.

ZorroPlateado escribió:

La única pega que me he encontrado en producción con dar backup es referente al cifrado, mi backups son de 20GB para arriba y al usar el cifrado se daban errores en el momento de crear el empaquetado del backup.....

Es por este tipo de defectos que hay que probar las aplicaciones de respaldo antes de usarlas.

¿Puedo preguntar en qué versiones se manifiesta este fallo? Tengo entendido que Dar ha sufrido algunas correcciones importantes últimamente. Desde luego, Dar no me ha causado problemas a mí, pero lo cierto es que no lo uso demasiado.

Voy a respaldar 30 Gb de información ahora mismo con Dar, para ver si consigo reproducir algún problema. Yo uso Dar 2.4.2.

Imagen de ZorroPlateado
Enviado por ZorroPlateado el 10 Noviembre, 2011 - 20:41.

Pienso que lo mejor es tener la doc bien centralizada, mejor hubiera modificado/ampliado la wiki,, pero no seré yo quien le diga a nadie como hacer las cosas.

El error es el famoso warning por culpa del cifrado que te pego a continuación:

too large elastic buffer or elastic buffer incoherent structure

Solo al dejar de usar el cifrado se acaban los problemas, y en internet nadie daba con la solución. Esto me ocurrió en junio del 2010,, y por aquellos tiempos creo que tenia montado una Debian Etch....

Cuentanos que tal te va con tus 30GB cifrados eyebrows

Imagen de Black Rider
Enviado por Black Rider el 10 Noviembre, 2011 - 21:55.

Pienso también que habría sido mejor echarle un vistazo a la wiki, pero es que no me di cuenta de que existía una sección para Dar :-) Tengo que pasarme por ahí cuando tenga tiempo.

Por cierto, que he experimentando respaldando grandes cantidades de datos con diversos algoritmos de cifrado, y no he disparado ningún fallo. Parece ser que el problema que mencionas está corregido. De hecho, el changelog hace referencia a algunos arreglos respecto a los archivadores cifrados.

Gracias por pasarte por aquí para hablarnos de este detalle.

Imagen de sercari
Enviado por sercari el 12 Noviembre, 2011 - 00:24.

Excelente entrada, Gracias.
En la pagina del proyecto se enumeran algunas limitaciones:
http://dar.linux.free.fr/doc/Limitations.html

Saludos.