重複排除が機能しているようですが、空き容量はありません。

重複排除が機能しているようですが、空き容量はありません。

Debian で zol を使用して重複排除をテストしています。

データをコピーする前にzvolにdedup = onを設定し、問題なくマウントされたボリュームにデータをコピーしました。

cp -r folder1/* folder2/その後、テストデータセットでこれを実行しました。最初のセットには非常に大きなファイルが含まれ、他のセットにはより小さなファイルがたくさん含まれていました。ただし、重複排除がまったく機能しないように、残りの空き容量が少なくなります。しかし、私が走るとき

g@d:/media$ sudo zpool status -D tank
  pool: tank
 state: ONLINE
  scan: scrub repaired 0B in 0 days 00:07:55 with 0 errors on Mon Aug  3 15:41:41 2020
config:

    NAME                                     STATE     READ WRITE CKSUM
    tank                                     ONLINE       0     0     0
      ata-VBOX_HARDDISK_VB9f852d8b-d6c16fc7  ONLINE       0     0     0

errors: No known data errors

 dedup: DDT entries 7234835, size 306B on disk, 174B in core

bucket              allocated                       referenced          
______   ______________________________   ______________________________
refcnt   blocks   LSIZE   PSIZE   DSIZE   blocks   LSIZE   PSIZE   DSIZE
------   ------   -----   -----   -----   ------   -----   -----   -----
     1    5.73M   22.9G   7.62G   7.62G    5.73M   22.9G   7.62G   7.62G
     2    81.5K    326M    147M    147M     164K    656M    295M    295M
     4     866K   3.38G   1.77G   1.77G    4.39M   17.6G   9.49G   9.49G
     8     191K    765M    265M    265M    2.10M   8.41G   2.92G   2.92G
    16    38.9K    155M   54.6M   54.6M     897K   3.50G   1.23G   1.23G
    32    11.1K   44.3M   15.5M   15.5M     474K   1.85G    665M    665M
    64    3.55K   14.2M   4.89M   4.89M     293K   1.15G    404M    404M
   128      775   3.03M   1.07M   1.07M     119K    478M    169M    169M
   256      255   1020K    319K    319K    75.7K    303M   94.6M   94.6M
   512       63    252K   85.5K   85.5K    37.2K    149M   50.4M   50.4M
    1K       14     56K     19K     19K    17.5K     70M   23.8M   23.8M
    2K        1      4K    512B    512B    2.48K   9.92M   1.24M   1.24M
 Total    6.90M   27.6G   9.86G   9.86G    14.3M   57.0G   22.9G   22.9G

27.6GBのみが使用されると推定されます。だが、64GBボリュームでは空きスペースが3.1GBしかなく、30GB程度にはならない。

zfs get all役に立つとしたら、結果は次のようになります。

g@d:/media$ sudo zfs get all
NAME       PROPERTY              VALUE                  SOURCE
tank       type                  filesystem             -
tank       creation              Sun Aug  2 14:51 2020  -
tank       used                  26.1G                  -
tank       available             48.0G                  -
tank       referenced            24K                    -
tank       compressratio         2.41x                  -
tank       mounted               yes                    -
tank       quota                 none                   default
tank       reservation           none                   default
tank       recordsize            128K                   default
tank       mountpoint            /tank                  default
tank       sharenfs              off                    default
tank       checksum              on                     default
tank       compression           off                    default
tank       atime                 on                     default
tank       devices               on                     default
tank       exec                  on                     default
tank       setuid                on                     default
tank       readonly              off                    default
tank       zoned                 off                    default
tank       snapdir               hidden                 default
tank       aclinherit            restricted             default
tank       createtxg             1                      -
tank       canmount              on                     default
tank       xattr                 on                     default
tank       copies                1                      default
tank       version               5                      -
tank       utf8only              off                    -
tank       normalization         none                   -
tank       casesensitivity       sensitive              -
tank       vscan                 off                    default
tank       nbmand                off                    default
tank       sharesmb              off                    default
tank       refquota              none                   default
tank       refreservation        none                   default
tank       guid                  8647552976627418118    -
tank       primarycache          all                    default
tank       secondarycache        all                    default
tank       usedbysnapshots       0B                     -
tank       usedbydataset         24K                    -
tank       usedbychildren        26.1G                  -
tank       usedbyrefreservation  0B                     -
tank       logbias               latency                default
tank       objsetid              54                     -
tank       dedup                 off                    default
tank       mlslabel              none                   default
tank       sync                  standard               default
tank       dnodesize             legacy                 default
tank       refcompressratio      1.00x                  -
tank       written               24K                    -
tank       logicalused           58.3G                  -
tank       logicalreferenced     12K                    -
tank       volmode               default                default
tank       filesystem_limit      none                   default
tank       snapshot_limit        none                   default
tank       filesystem_count      none                   default
tank       snapshot_count        none                   default
tank       snapdev               hidden                 default
tank       acltype               off                    default
tank       context               none                   default
tank       fscontext             none                   default
tank       defcontext            none                   default
tank       rootcontext           none                   default
tank       relatime              off                    default
tank       redundant_metadata    all                    default
tank       overlay               off                    default
tank       encryption            off                    default
tank       keylocation           none                   default
tank       keyformat             none                   default
tank       pbkdf2iters           0                      default
tank       special_small_blocks  0                      default
tank/data  type                  volume                 -
tank/data  creation              Sun Aug  2 14:54 2020  -
tank/data  used                  24.0G                  -
tank/data  available             48.0G                  -
tank/data  referenced            24.0G                  -
tank/data  compressratio         2.45x                  -
tank/data  reservation           none                   default
tank/data  volsize               63.5G                  local
tank/data  volblocksize          4K                     -
tank/data  checksum              on                     default
tank/data  compression           gzip-9                 local
tank/data  readonly              off                    default
tank/data  createtxg             38                     -
tank/data  copies                1                      default
tank/data  refreservation        none                   default
tank/data  guid                  5739931164781187131    -
tank/data  primarycache          all                    default
tank/data  secondarycache        all                    default
tank/data  usedbysnapshots       0B                     -
tank/data  usedbydataset         24.0G                  -
tank/data  usedbychildren        0B                     -
tank/data  usedbyrefreservation  0B                     -
tank/data  logbias               latency                default
tank/data  objsetid              80                     -
tank/data  dedup                 on                     local
tank/data  mlslabel              none                   default
tank/data  sync                  standard               default
tank/data  refcompressratio      2.45x                  -
tank/data  written               24.0G                  -
tank/data  logicalused           57.6G                  -
tank/data  logicalreferenced     57.6G                  -
tank/data  volmode               default                default
tank/data  snapshot_limit        none                   default
tank/data  snapshot_count        none                   default
tank/data  snapdev               hidden                 default
tank/data  context               none                   default
tank/data  fscontext             none                   default
tank/data  defcontext            none                   default
tank/data  rootcontext           none                   default
tank/data  redundant_metadata    all                    default
tank/data  encryption            off                    default
tank/data  keylocation           none                   default
tank/data  keyformat             none                   default
tank/data  pbkdf2iters           0                      default

単一パーティションでの重複排除の概念を誤って理解していますか?重複排除がブロックレベルで発生することを知っていますが、これがうまくいかない理由を理解しようとした週を過ごしました。

zfs dedupが何を間違っているのか教えてくれる人はいますか?

これが重要かどうかはわかりませんが、VirtualBoxで仮想マシンを使用しています。

報告された空き領域が間違っていることを確認するために、見えている空き領域以上のフォルダをコピーすることにしましたがNo space left on device

ベストアンサー1

おすすめ記事