2017-04-05 8 views
2

私は古いzfsプール(05-2012作成)を持っていて、debian 7.6で動作し、dfによって報告された26Gバイトの空き容量(58Tバイト)を持っています。私はos(debian 8.7)を再インストールしました。そして、プールはdfで0バイト空きとして表示されますが、zpoolリストでは1.04Tbyte "FREE"と表示されます。ZFSは空きスペースを表示していますが、削除できません

私は2つの質問があります:ZFSリストでのzpoolリスト内FREE間の差(= 1.04Tbytes)とは何

1)およびAVAIL(= 0)?

2)この1Tバイトの空き領域を使用するためにできることはありますか?私はすべてのスナップショットを削除しましたが、これは違いがありませんでした...

ありがとうございます。 zfs(8) manページから

% 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'ファイルシステムそのものだけがその名前と一致するので、コマンドに含めるとスナップショットは表示されません。私のSolaris 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に詳述されているように、プール構成によってこのような違いが生じる場合があります。しかし

(再び)、これらは通常、あなたの論理的なデータサイズが拡大した場合には、冗長性とメタデータの保存に必要となるスペースに適用されます(つまり、すべてはあなたをバイト以来プールが、freeスペースの半分ほどavailableスペースを表示ミラーリングデータセットへの書き込みは2つの場所にコピーする必要があります)。データセットのavailableはゼロであるため、これは将来の書き込みの予測オーバーヘッドを単純に考慮したものではありません。

それは私に最終的な説明をもたらします。 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実装で同じように見えます。 –

関連する問題