Com explica la wikipèdia els fitxer tipus “sparse” optimitzen millor l’espai en disc no escrivint els blocks d’informació que no contenen dades.
Aquests tipus de fitxers són àmpliament utilitzats entorns per disc de les màquines virtuals tipus KVM o VMWARE per discs en mode ThinProvisioning.
En GNU/Linux (i d’altres *nix) hi han diferents comandes què ens permeten treballar amb aquest tipus de fitxers.
du: Per identificar si un fitxer està en mode sparse o no
ls: Per identificar si un fitxer està en mode sparse o no
cp: Per poder copiar aquest tipus de fitxers i/o convertir-los en sparse.
rsync, tar i potser algún altre que em deixo.
Exemples:
Per identificar si un fitxer està en mode sparse o no podem utilitzar tant ‘du’ com ‘ls’:
ls -lha
total 44G
drwxr-xr-x 2 root root 47 29 gen 21:37 .
drwxr-xr-x 5 root root 4,0K 21 des 12:49 ..
-rw-r--r-- 1 root root 32G 29 gen 21:55 disk0.raw
-rw-r--r-- 1 root root 32G 13 abr 2013 disk0.raw.original
du -sh disk0.raw.original
32G disk0.raw.original
ls -lksh disk0.raw.original
32G -rw-r--r-- 1 root root 32G 13 abr 2013 disk0.raw.original
ls -lksh disk0.raw
12G -rw-r--r-- 1 root root 32G 29 gen 21:55 disk0.raw
du -sh disk0.raw
12G disk0.raw
Es pot apreciar que amb un simple ‘ls’ el tamany que ocupen els fitxers és el real i no el que hauria de ser si els dos fitxers fóssin de caràcter “normal” que llavors ocuparien 64G.
En el cas que ens interessés convertir un fitxer “normal” a tipus sparse per estalviar disc real podem utilitzar ‘cp’:
cp --sparse=always fitxer.original fitxer.convertit.tipus.sparse
D’aquesta manera podem estalviar disc o taxes de transferència en cas de voler replicar màquines virtuals entre hosts per exemple.
En el cas del dd:
dd of=disk-server.img bs=1G seek=30 count=0