2017-04-05 12 views
2

저는 df에 의해보고 된 바와 같이 debian 7.6에서 실행 중이던 26 기가 바이트 (58Tbytes 중)의 오래된 zfs 풀 (05-2012 작성)이 있습니다. 방금 os (debian 8.7)를 다시 설치했으며 이제 풀은 df에서 0 바이트로 표시되지만 zpool 목록에서는 1.04Tbyte "FREE"로 표시됩니다.ZFS는 여유 공간을 보여줍니다. 삭제할 수 없습니다.

나는이 개 질문이 :

1) 무엇은 zpool 목록 (무료의 차이 = 1.04Tbytes가)하고있는 AVAIL ZFS 목록 (= 0)?

2)이 1Tbyte의 여유 공간을 사용할 수 있습니까? 모든 스냅 샷을 삭제했는데 아무런 차이가 없습니다 ...

미리 감사드립니다. zfs(8) 사람 페이지에서

% df -h /contentA 
Filesystem  Size Used Avail Use% Mounted on 
contentA   58T 58T  0 100% /contentA 

% zpool list contentA 
NAME  SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT 
contentA 65T 64.0T 1.04T  16.0E  - 98% 1.00x ONLINE - 

% zfs list contentA 
NAME  USED AVAIL REFER MOUNTPOINT 
contentA 58.0T  0 58.0T /contentA 

% uname -a 
Linux myserver 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) x86_64 GNU/Linux 

% cat /etc/debian_version 
8.7 
+0

풀에 스냅 샷이 있습니까? 'zfs list -t all' ('contentA' 파일 시스템 자체 만이 그 이름과 일치하기 때문에'contentA'를 사용하지 마십시오. 명령에 포함 시키면 스냅 샷을 볼 수 없습니다. 솔라리스 11의 복사본에서 동작합니다 ...) –

답변

1

available 의미 :

The amount of space available to the dataset and all its children, 
assuming that there is no other activity in the pool. Because space 
is shared within a pool, availability can be limited by any number of 
factors, including physical pool size, quotas, reservations, or other 
datasets within the pool. 
일반적으로

말하기, 차이를 찾기 위해 처음 물건은 다른 데이터 세트에 설정된 예약으로, 그 데이터 세트의 밖에 같은 수영장.

그러나 귀하의 게시물에서 list에 대해 실행 한 데이터 세트가 다른 모든 하위 데이터 세트를 고려해야하는 풀의 루트 데이터 세트 일 수 있습니다. Oracle docs에 설명 된 것처럼 풀 구성에서 이와 같은 차이가 발생할 수있는 경우가 있습니다.

그러나 (다시)이 일반적으로, 논리 데이터 크기가 확장 (즉,이 풀은 절반 정도 available 공간 free 같은 공간을 보여 미러링 할 경우에 대비하고 메타 데이터를 저장해야합니다 공간에 적용되는 모든 바이트부터 당신 데이터 세트에 쓰기는 두 곳으로 복사해야합니다). 데이터 집합의 available이 0이므로 분명히 미래의 쓰기에 대한 예측 오버 헤드를 고려하지 않습니다.

최종 설명을 들려줍니다. ZFS는 공간 회계에 안전 메커니즘을 내장하여 사용자가 63/64th를 초과하는 풀을 채우지 못하도록합니다 (이는 당신의 경우 비율에 매우 근접한 것으로서 나를 강타합니다). ZFS는 디스크 온 상태를 수정하기 위해 항상 새로운 공간이 필요하기 때문에 (쓰기 중 복사 때문에), 제한을 초과하면 더 이상 풀을 삭제하지 않아 새로운 쓰기 공간을 확보하지 못할 수도 있습니다 이로 인해 읽기 전용이됩니다. 은 (는)입니다. ZFS에 패치를 적용하거나 제한을 무시하도록 튜너 블을 변경할 수도 있지만 권장하지는 않습니다!

+0

63/64에 대한 링크가 있습니까? 흥미로운 것 같습니다. – user121391

+1

@ user121391 어디서나 문서에 포함되어 있는지는 모르겠지만 여기서는 코드 (Linux의 ZFS)에 대한 제한이 정의되어 있습니다. https://github.com/zfsonlinux/zfs/blob/master/include/sys /dsl_synctask.h – Dan

+1

@Dan Illumos.org의 OpenSolaris 소스에서와 동일합니다. http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/common/fs/zfs/sys /dsl_synctask.h 따라서 모든 ZFS 구현에서 동일 할 수 있습니다. –