linux user group brescia

immagine del castello

Archivio della mailing list

backuppare (e comprimere) un device intero con tar

Luca Coianiz luca a coianiz.it
Gio 15 Nov 2007 15:37:14 UTC
On Thu, 15 Nov 2007, Andrea Gelmini wrote:
>Il 15/11/07, Luca Coianiz<luca a coianiz.it> ha scritto:
>>  Secondo voi ha senso eseguire il backup compresso via tar bzip2 di un
>> intero device? (es. /dev/hdb1)
>proprio perchè tutto è file (anche se questo punto è stato piu' volte
>contestato da linus), ti basta usare cat, ma anche questo risulterebbe
>ridondante.
>proprio perchè tutto è file, quindi, ti basta leggere direttamente da file:
>bzip2 -9 </dev/md0 >gino_backup.bz2

 Mitico!.. esattamente quel che mi serviva, grazie! :-)

 Ho fatto cosi':

home:/backup # time bzip2 -vv -9 < /dev/hdb1 > /backup/hdb1.bz2
  (stdin):
    block 1: crc = 0xac66d8e1, combined CRC = 0xac66d8e1, size = 899981
    too repetitive; using fallback sorting algorithm
    block 2: crc = 0x ecd1563, combined CRC = 0x5600a4a0, size = 899981
    block 3: crc = 0xd527ca17, combined CRC = 0x79268357, size = 899981
    block 4: crc = 0x13891b42, combined CRC = 0xe1c41dec, size = 899981
    block 5: crc = 0x37d331e0, combined CRC = 0xf45b0a39, size = 899981
    block 6: crc = 0xcb445d3b, combined CRC = 0x23f24948, size = 899981
    too repetitive; using fallback sorting algorithm
    block 7: crc = 0xfa8400e6, combined CRC = 0xbd609276, size = 899981
(...)
    block 35: crc = 0x522bfbdc, combined CRC = 0x81a3dfba, size = 277358
    too repetitive; using fallback sorting algorithm
    final combined CRC = 0x81a3dfba
    7.891:1,  1.014 bits/byte, 87.33% saved, 32868352 in, 4165192 out.

real    4m15.408s
user    3m59.940s
sys     0m0.240s

home:/backup # df -H
Filesystem            Size  Used Avail Use% Mounted on
/dev/md0               40G   35G  3.5G  91% /
/dev/hda1              32M  5.7M   24M  19% /boot
/dev/hdb1              32M  5.7M   24M  19% /boot1
shmfs                 197M     0  196M   0% /dev/shm
/dev/hdd1              29G   38M   28G   1% /backup
home:/backup # l -h
total 4.0M
drwxr-xr-x    3 root     root         4.0k Nov 15 16:11 ./
drwxr-xr-x   20 root     root         4.0k Nov 15 06:51 ../
-rw-r--r--    1 root     root         4.0M Nov 15 16:15 hdb1.bz2
drwx------    2 root     root          16k Nov 14 22:23 lost+found/

 Chiaramente hdb1 e' un device "quasi vergine", nel senso che e' la copia,
file per file, di un altro device/partizione ma in pratica non viene usato
dal sistema (per questo l'ho usato per il test: se lo sdereno non perdo
nulla), come faceva notare il buon Enrico parlando di settori usati (quindi
il fattore di compressione e' assolutamente di fantasia: dei 32MB allocati
ne sono usati solo 5,7).

>ovvio che scrivere sullo stesso device sorgente è rischioso, nel senso
>che la situazione del filesystem, quando andrai a recuperarlo, sara'
>irrimediabilmente corrotta.
>quindi conviene copiare o su un altro device oppure via rete su
>un'altra macchina, sfruttando lo stesso principio. se pensiamo a
>netcat, per esempio:
>bzip2 -9 </dev/md0 | nc -p 9999 macchina_di_destinazione

 Assolutamente, diciamo che da un device/partizione "sgonfio" (32MB
allocati, 5,7MB usati) ho ottenuto, su un altro device (/backup/ montato in
/dev/hdd1), un file hdb1.bz2 da 4MB. Un fattore di compressione
spannometrico tra il 20% ed il 30%. Il tutto in 4 minuti.

 Andando a comprimere /dev/md0 da 35GB (su 40GB allocati) mi aspetto
performances di compressione peggiori, anche se spero in un 10-20%.

 Rimane un po' il dubbio, salvo provare, se rasando /dev/hdb1 e
ricostruendolo (mkfs...) un bzip2 -d < /backup/hdb1.bz2 > /dev/hdb1 farebbe
tornare tutto come prima: mi fido o faccio la prova? :-D

>ci sarebbero anche altri trucchetti per affrontare questi casi, ma non
>vorrei uscire dal seminato.
>ad ogni modo, con il costo odierno dello storage, tanto vale tenere
>una copia paro paro con strumenti come mirrordir/rsync et similia, che
>ti permettono di avere un backup immediatamente accessibile e,
>soprattutto, di aggiornarlo in tempo reale.

 Ah si, son d'accordo, e' che stavo smanettando attorno al vecchio server:
investire su quello, ora, avrebbe poco senso. Ho giusto connesso un disco da
30GB (hdd1) per vedere se i 35GB del RAID1 (md0) ci stavano, zippandoli. ;-)

 Grazie ancora!

	LC




Maggiori informazioni sulla lista Lug