FreeBSD: Comment connaître la taille réelle d'un fichier sur zfs avec la compression activée?

18

J'utilise zfs sur mon FreeBSD 9.0 x64 et j'en suis assez content, mais j'ai du mal à compter la taille réelle du répertoire, pas compressé.

Je peux sûrement parcourir le répertoire et compter chaque taille de fichier avec ls, mais je m'attendrais à une clé supplémentaire pour du à cette fin.

Alors, comment savoir la taille du répertoire pour dir placé sur zfs avec compression activée ?

Merci d'avance pour les conseils, je ne peux tout simplement pas me souvenir qu'il n'y a pas une telle manière 'simple', sans 'find ./ -type d -exec ls -l' {} '\; | awk ... '!

Alexandre
la source
4
Voir cette réponse pour quelques solutions: serverfault.com/questions/254013/file-size-with-zfs-compression
Zanchey
3
Si vous utilisez la déduplication, quelle serait selon vous la "vraie" taille?
ryandenki

Réponses:

23

Utilisez le duavec son -Adrapeau:

root@pg78:/usr/local/pgsql/data/base/218204 # du -A -h 221350.219
1.0G    221350.219
root@pg78:/usr/local/pgsql/data/base/218204 # du -h 221350.219
501M    221350.219

Très utile. Cela fonctionne même -dpour la bonté récursive:

root@pg78:/usr/local/pgsql/data/base # du -h -c -d0 .
387G    .
387G    total
root@pg78:/usr/local/pgsql/data/base # du  -A -h -c -d0 .
518G    .
518G    total
Sean
la source
Vraiment une bonne solution! Et le meilleur c'est qu'il est là "dès la boîte"!
Alexander
5
Juste une note, si votre version de dun'a pas l'option -A, -A est pour "taille apparente", qui est disponible via --apparent-size. Ubuntu 16.04 / du 8.25 ne semble pas avoir -A, il semble donc que quelqu'un d'autre puisse rencontrer ce problème.
Jim Rubenstein
12

Vous pouvez installer la version GNU de du(1):

cd /usr/ports/sysutils/coreutils && make install clean

Ensuite, vous pouvez utiliser le --apparent-sizedrapeau:

/space# zfs create space/comptest
/space# zfs set compression=on space/comptest
/space# dd if=/dev/zero of=/space/comptest/zerofile bs=1M count=40
/space/comptest# gdu
2K      .
/space/comptest# gdu --apparent-size
40961K  .
Zanchey
la source
4
Il n'y a aucune raison d'utiliser un port pour cela. Utilisez l'OS de base duavec son -Adrapeau.
Sean
10
Ceci est utile pour ZFS sous Linux. GNU dun'a pas d' -Aoption.
jakar
1
ZFS sur Linux dua --apparent-sizedu commentaire sur la solution acceptée ici: serverfault.com/a/434655/145009
Rob Paisley
0

essayez d'utiliser la commande zpool:

zpool list
NAME      SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
storage  8.93T  6.59T  2.34T         -    60%    73%  2.13x  ONLINE  -

mais df -sh montre le résultat (taille non dédupliquée)

df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
storage        zfs        16T   14T  1.9T  89% /storage
shcherbak
la source