Backup con ddrescue

consoleHo voluto provare ddrescue al posto del classico dd soprattutto per la possibilità di usare i file sparsi.
Come sapete dd copia l'intero device passato in input, non fa differenza che lo spazio nel filesystem sia occpuato (per la presenza di file) o libero. Questo comporta un dispendio in termini di tempo e spazio.

Ho fatto dei semplici test usando due device lvm da 1G.
Il primo (in) è formattato con ext3 e ha 20M di dati veri e propri.
Il secondo (out) non è neanch formattato.

Confronto dd e gddrescue senza uso dell'opzine --sparse

dd /dev/vg00/in /dev/vg00/out        2m21.889s
ddrescue /dev/vg00/in /dev/vg00/out    1m53.992s


Confronto dd e gddrescue CON uso dell'opzine --sparse

ddrescue -S /dev/vg00/in /dev/vg00/out    0m24.435s

Confronto ddrescue con e senza opzione --sparse nel creare un file immagine

ddrescue -S /dev/vg00/in out.img    0m21.199s
ddrescue /dev/vg00/in out.img        1m7.725s

Confronto spazio occupato su disco (dimensione apparente)
ls -lh out*
-rw-r--r-- 1 root root 1,0G 11 ago 11.01 out.img
-rw-r--r-- 1 root root 1,0G 11 ago 11.05 out_nosparse.img

Confronto spazio occupato su disco (dimensione effettiva)
du -kh out*
71M     out.img
1,1G    out_nosparse.img

Ho provato a comprimere con lzma e gzip i file ottenuti

ls -lh out*.gz
-rw-r--r-- 1 root root 64M 11 ago 11.53 out.img.lzma
-rw-r--r-- 1 root root 64M 11 ago 11.54 out_nosparse.img.lzma

ls -lh out*.gz
-rw-r--r-- 1 root root 65M 11 ago 11.58 out.img.gz
-rw-r--r-- 1 root root 65M 11 ago 11.59 out_nosparse.img.gz

Nota 1: du -kh restituisce lo stesso valore di ls -lh.
Nota 2: lzma oltre 8 minuti, gzip 30 secondi.

CONSIDREZIONE

Gli algoritmi di compressione sono molto efficienti nel comprimere lo spazio vuoto.
Un'immagine compressa fatta con dd e con ddrescue sono equivalenti in termini di spazio occupato su disco nonostante lo spazio effettivo dei file non compressi siano diversi.
Non mi sembra sia possibile usare una pipe con ddrescue.
Questa non ci permette di avere subito un'immagie compressa tramite ddrescue come si potrebbe fare con dd:

dd if=/dev/vg00/in | gzip -c > out_nosparse.img.gz

In termini di tempo penso convenga usare ddrescue con l'opzione --sparse per fare una copia da device a device.
Per creare un'immagine compressa forse conviene dd per evitare di occupare troppo spazio su disco seppur non effettivo.