FreeBSD: Come conoscere la dimensione del file reale su zfs con la compressione attivata?


18

Sto usando zfs sul mio FreeBSD 9.0 x64 e ne sono abbastanza soddisfatto, ma trovo difficile contare la dimensione reale della directory, non compressa.

Sicuramente posso camminare sulla directory e contare ogni dimensione di file con ls, ma mi aspetterei qualche chiave in più per du a tale scopo.

Quindi, come posso dire la dimensione della directory per dir posizionato su zfs con la compressione attivata ?

Grazie in anticipo per il consiglio, non posso ricordare che non esiste un modo così 'semplice', senza 'find ./ -type d -exec ls -l' {} '\; | awk ... '!


4
Vedi questa risposta per alcune soluzioni: serverfault.com/questions/254013/file-size-with-zfs-compression
Zanchey

3
Se usi la deduplicazione, quale considereresti la dimensione "reale"?
Ryandenki,

Risposte:


23

Usa il ducon la sua -Abandiera:

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

Molto maneggevole. Funziona anche con la -dbontà ricorsiva:

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

Davvero un'ottima soluzione! E il migliore è lì "proprio dalla scatola"!
Alexander,

5
Solo una nota, se la tua versione di dunon ha l'opzione -A, -A è per "dimensione apparente", che è disponibile tramite --apparent-size. Ubuntu 16.04 / du 8.25 non sembra avere -A, quindi sembra che qualcun altro potrebbe incorrere in quel problema.
Jim Rubenstein,

12

È possibile installare la versione GNU di du(1):

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

Quindi puoi usare la --apparent-sizebandiera:

/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  .

4
C'è NO ragione per usare una porta per questo. Usa il sistema operativo di base ducon il suo -Aflag.
Sean,

10
Questo è utile per ZFS su Linux. GNU dunon ha -Aun'opzione.
Jakar

1
ZFS su Linux duha --apparent-sizedal commento sulla soluzione accettata qui: serverfault.com/a/434655/145009
Rob Paisley

0

prova ad usare il comando 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  -

ma df -sh mostra il risultato (dimensione non deduplicata)

df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
storage        zfs        16T   14T  1.9T  89% /storage
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.