중복 제거가 작동하는 것 같지만 여유 공간이 없습니다.

중복 제거가 작동하는 것 같지만 여유 공간이 없습니다.

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.

관련 정보