J'ai une partition formatée en zfs en utilisant zfs-fuse pour linux (Ubuntu).
Je l'ai utilisé pendant un certain temps, puis j'ai activé la déduplication et la compression (zfs set compression=on/dedup=on). Maintenant je pense que j'ai des fichiers qui sont dédupliqués et compressés, et des fichiers qui ne le sont pas encore.
C'était bien, mais parfois j'étais confus. Voyons voir, la commande suivante consommerait presque 4GB de mon stockage zfs :
cp oldfile.4GB newfile.4GB
.. et cela consommerait presque zéro :
cp newfile.4GB newfile.4GB.2
C'est parce que l'ancien fichier n'est pas encore compressé, donc la déduplication n'a pas eu lieu, je pense.
Mon idée est la suivante : si je peux trouver d'anciens fichiers qui ne sont pas encore déduits/compressés, je peux les copier/renommer/supprimer par lots pour éliminer les doublons et les redondances. Mais comment puis-je vérifier cela ?
Je sais que je peux recopier le contenu entier de mon stockage si cela fonctionne (encore mieux avec la vérification de l'horodatage de chaque fichier), mais je serais plus heureux si j'avais zfsstat
-qui affiche certaines propriétés des fichiers.
EDIT : Vérifié le conseil de jlliagre sur mon environnement.
First, made some dataset and directories:
$ sudo zfs create zfs/test
$ sudo install -d -m 1777 /zfs/test/orig /zfs/test/copy
Created some files:
$ yes > /zfs/test/orig/yes.1s & sleep 1; kill %1
$ dd if=/dev/zero of=/zfs/test/orig/zero.1M bs=1K count=1024
$ dd if=/dev/urandom of=/zfs/test/orig/rand.1M bs=1K count=1024
Turned compression on, and copy above files:
$ sudo zfs set compress=on zfs/test
$ cp /zfs/test/orig/* /zfs/test/copy
Now the directories look like:
$ ls -hil /zfs/test/*
/zfs/test/copy:
total 1.5K
10 -rw-r--r-- 1 kimura kimura 1.0M Mar 2 01:30 rand.1M
11 -rw-r--r-- 1 kimura kimura 40M Mar 2 01:30 yes.1s
12 -rw-r--r-- 1 kimura kimura 1.0M Mar 2 01:30 zero.1M
/zfs/test/orig:
total 42M
9 -rw-r--r-- 1 kimura kimura 1.0M Mar 2 01:29 rand.1M
7 -rw-r--r-- 1 kimura kimura 40M Mar 2 01:29 yes.1s
8 -rw-r--r-- 1 kimura kimura 1.0M Mar 2 01:29 zero.1M
And zdb tool shows some information:
kimura@kimura-desktop:~$ sudo zdb zfs/test
Dataset zfs/test [ZPL], ID 196, cr_txg 108306, 44.2M, 12 objects
Object lvl iblk dblk dsize lsize %full type
0 7 16K 16K 16K 16K 37.50 DMU dnode
-1 1 16K 512 1K 512 100.00 ZFS user/group used
-2 1 16K 512 1K 512 100.00 ZFS user/group used
1 1 16K 512 1K 512 100.00 ZFS master node
2 1 16K 512 1K 512 100.00 ZFS delete queue
3 1 16K 512 1K 512 100.00 ZFS directory
4 1 16K 512 1K 512 100.00 ZFS directory
5 1 16K 512 1K 512 100.00 ZFS directory
6 1 16K 512 1K 512 100.00 ZFS directory
7 3 16K 128K 39.8M 39.8M 100.00 ZFS plain file
8 2 16K 128K 1.00M 1M 100.00 ZFS plain file
9 2 16K 128K 1.00M 1M 100.00 ZFS plain file
10 2 16K 128K 1.00M 1M 100.00 ZFS plain file
11 3 16K 128K 1.41M 39.8M 100.00 ZFS plain file
12 2 16K 128K 0 128K 0.00 ZFS plain file
Je peux voir que "oui" et "zéro" sont bien compressés.