Vraag FreeBSD: Hoe weet je de echte bestandsgrootte op zfs met compressie?


Ik gebruik zfs op mijn FreeBSD 9.0 x64 en er best blij mee zijn, maar ik vind het moeilijk om echte, niet gecomprimeerde directory-bestanden te tellen.

Natuurlijk kan ik over de map lopen en elke bestandsgrootte tellen met ls, maar ik verwacht voor dat doel een extra sleutel voor du.

Zo, hoe kan ik de grootte van de map bepalen voor dir geplaatst op zfs met compressie ingeschakeld?

Thamk je op voorhand voor het advies, ik kan het simpelweg niet bedenken dat er niet zo'n 'simpele' manier is, zonder 'find ./ -type d -exec ls -l' {} '\; | awk ... '!


15
2018-02-21 05:48


oorsprong


Zie dit antwoord voor enkele oplossingen: serverfault.com/questions/254013/file-size-with-zfs-compression - Zanchey
Als u deduplicatie gebruikt, wat zou u dan als de 'echte' maat beschouwen? - ryandenki


antwoorden:


Gebruik de du met zijn -A vlag:

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

Heel handig. Het werkt zelfs met -d voor recursieve goedheid:

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

20
2017-10-04 00:09



Echt een goede oplossing! En het beste is het "direct uit de doos"! - Alexander
Gewoon een notitie, als uw versie van du heeft niet de -A optie, -A is voor "schijnbare grootte", die beschikbaar is via --apparent-size. Ubuntu 16.04 / du 8.25 lijkt niet -A te hebben, dus het lijkt erop dat iemand anders dit probleem tegen kan komen. - Jim Rubenstein


Je zou de GNU-versie van kunnen installeren du(1):

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

Dan kunt u de --apparent-size vlag:

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

11
2018-02-21 06:30



Geweldig bedankt! - Alexander
Er bestaat NEE reden om hiervoor een poort te gebruiken. Gebruik het basissysteem du met zijn -A vlag. - Sean
Dit is handig voor ZFS op Linux. GNU du heeft geen -A keuze. - jakar
ZFS op Linux's du heeft --apparent-size uit de reactie op de geaccepteerde oplossing hier: serverfault.com/a/434655/145009 - Rob Paisley


probeer de opdracht zpool te gebruiken:

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

maar df -sh toont resulterende (niet gededupliceerde grootte)

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

0
2018-03-06 12:03