FreeBSD : 압축을 켠 상태에서 zfs의 실제 파일 크기를 아는 방법?


18

저는 FreeBSD 9.0 x64 에서 zfs를 사용 하고 있으며 매우 만족하지만 압축되지 않은 크기의 디렉토리를 계산하기가 어렵습니다.

분명히 나는 ​​디렉토리를 걸고 ls로 모든 파일 크기를 계산할 수 있지만 그 목적을 위해 du에 대한 추가 키가 필요합니다.

그렇다면 압축을 사용하여 zfs에있는 dir의 디렉토리 크기를 어떻게 알 수 있습니까?

조언을 위해 미리 당신에게 말하면, 나는 'find ./ -type d -exec ls -l'{} '\; | 아 wk ... '!


4
일부 해결책은 다음 답변을 참조하십시오. serverfault.com/questions/254013/file-size-with-zfs-compression
Zanchey

3
중복 제거를 사용하는 경우 "실제"크기를 무엇이라고 생각하십니까?
ryandenki

답변:


23

du와 함께 -A플래그를 사용하십시오 .

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

매우 편리합니다. -d재귀 적 인 선함 을 위해 작동 합니다.

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

정말 좋은 해결책! 그리고 가장 좋은 것은 "상자에서 바로"입니다!
Alexander

5
참고로, 사용중인 버전에 du-A 옵션이없는 경우 -A는 "명확한 크기"를위한 것이며을 통해 사용할 수 있습니다 --apparent-size. Ubuntu 16.04 / du 8.25에는 -A가없는 것처럼 보이므로 다른 사람이 해당 문제를 겪을 수 있습니다.
Jim Rubenstein

12

GNU 버전을 du(1)다음 과 같이 설치할 수 있습니다 .

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

그런 다음 --apparent-size플래그를 사용할 수 있습니다 .

/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
이를 위해 포트를 사용할 이유 가 없습니다 . 기본 OS du-A플래그 와 함께 사용하십시오 .
Sean

10
이것은 Linux의 ZFS에 유용합니다. GNU du에는 -A옵션 이 없습니다 .
jakar

1
리눅스에 ZFS는 du있다 --apparent-size여기에 허용 솔루션에 대한 주석에서 : serverfault.com/a/434655/145009
롭 페이즐리에게

0

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  -

그러나 df -sh는 결과를 보여줍니다 (중복되지 않은 크기)

df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
storage        zfs        16T   14T  1.9T  89% /storage
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.