web-dev-qa-db-ja.com

ZFSファイルシステムの空き領域が予期せず欠落しています

この質問は数か月後も未解決の制作上の問題であるため、完全に言い換えます。

私はFreeBSD7.3-RELEASE-p1に基づくFreeNAS0.7.2ボックスを持っており、RAIDz1で4x1TBSATAドライブを備えたZFSを実行しています。

1TBのスパースファイルを作成および削除した後、1TBの使用可能スペースが失われたようです。これは数ヶ月前に起こりました。

この表は、現状を示しています。

command         actual             expected           ok/not ok

du -c           1.47TB used        1.47TB used        ok

zfs list        used 2.48TB        used 1.47TB        not ok
                avail 206GB        avail 1.2TB        not ok

zpool list      size 3.64TB        size 3.64TB        ok
                used 3.31TB        used 1.95TB        not ok
                avail 334GB        avail 1.69TB       not ok

Windows right   Disk size 2.67TB   Disk size 2.67TB   ok
  click disk,   Used 2.47TB        Used 1.47          not ok
  properties    free 206GB         free 1.2TB         not ok

Windows select  total file size    total file size
  all files,      1.48TB             1.48TB           ok
  right click, 
  properties
  • プールのどこにもスナップショットはありません
  • 圧縮がオフです
  • 重複排除はオフです
  • ZFSプールバージョンは13です
  • ZFS FSバージョンは3です
  • FreeNASの「埋め込み」バージョンを使用する
  • ファイルは、入力として/ dev/zeroを使用してddで作成され、rmを使用して削除され、すべてrootとして使用されました。
  • ファイルは間違いなく削除されました
  • WindowsはSMB経由でフォルダを見ることができます
  • Windowsのバージョンは7です
  • 以下の回答者によって提案されたバグがZFSプールおよびFS私が使用しているFreeBSDのバージョン)で解決されたかどうかを判断する方法がわからない

好きな質問をしてください。どこからでもシェルを箱に入れることができます。

アドバイスや考えを本当に感謝します。トム

3
tomfanning

解決策は最終的にzfs-discussメーリングリストを介してもたらされました- この投稿

zfs list -t snapshotの出力がある時点で変更されたようで、余分なスペースを消費する非表示のスナップショットがありました。

There was a change where snapshots are no longer shown by default.
This can be configured back to the old behaviour setting the zpool 
"listsnapshots" property to "on"

Otherwise, you need to use the "-t snapshot" list.

But, a much better method of tracking this down is to use: 
    zfs list -o space

That will show the accounting for all dataset objects.
 -- richard

これをここに投稿して、この時間の後でも答えとしてマークする価値があると思いました。

8
tomfanning

listsnapshotsは、zfs listのデフォルト出力がスナップショットを表示するかどうかのみを制御するプロパティです。 「スナップショットを有効または無効にする」ことはありません。

スナップショットを含むすべてを一覧表示するには、次のコマンドを使用します。

zfs list -t all

スナップショットのみを一覧表示するには、次のコマンドを使用します。

zfs list -t snapshot

editこのZFSバグ に遭遇した可能性があります。このバグが原因であることを確認するには、スパースファイル以外で再試行してください。このバグは、mkfileまたは/dev/zeroからコピーして作成されたような大きなスパースファイルでのみ発生するはずです。

このバグはSolarisで修正されていますが、使用しているFreeBSDバージョンにはまだ存在している可能性があります。

2
Wim Coenen

BE間にデルタファイルがあります。使用する beadm listBEがあるかどうかを確認します。以前のBEを削除すると、デルタデータがディスクにマージ/コミットされ、その非表示スペースが解放されます。同じ日付としてマークされたサブBEのセット全体を破棄した後にのみ、スペースが表示される場合があります。

1
user452706