zfs 重复数据删除率“低”

zfs 重复数据删除率“低”

在 Solaris 11 中,在名为 I 的池中mypool激活重复数据删除

zfs set dedup=on mypool

然后我创建了两个 100 MB 文件:file1及其副本file1copy.只是它们的名称不同:它们的内容是相同的。

的挂载点mypool/mypool。如果我将 和 复制file1file1copy/mypool,则输出

zpool list mypool

表示DEDUP比率为勉强1.34x。为什么??

然后,遵循指南我创建了一个文件系统

zfs create -o dedup=on -o mypool/archive

然后是两个用户的文件系统mypool/archive/amypool/archive/b它从父文件系统继承了重复数据删除功能。

如果现在我复制file1mypool/archive/afile1copymypool/archive/b仍然有一个DEDUP比例1.34x。只有2当我把相同的文件,比如说file1,进入两个都 mypool/archive/amypool/archive/b。为什么??

简单的名字差异就能有力地摧毁重复数据删除吗?重复数据删除不应该在块级别起作用吗?


1) 输出zdb -S mypool

Simulated DDT histogram:

bucket              allocated                       referenced          
______   ______________________________   ______________________________
refcnt   blocks   LSIZE   PSIZE   DSIZE   blocks   LSIZE   PSIZE   DSIZE
------   ------   -----   -----   -----   ------   -----   -----   -----
     1    1.48K    189M    189M    189M    1.48K    189M    189M    189M
     2      800    100M    100M   99.9M    1.56K    200M    200M    200M
 Total    2.26K    289M    289M    288M    3.04K    389M    389M    388M

dedup = 1.35, compress = 1.00, copies = 1.00, dedup * compress / copies = 1.35

2) 输出zdb -b mypool

Traversing all blocks to verify nothing leaked ...

    No leaks (block sum matches space maps exactly)

    bp count:            3679
    bp logical:     410970112      avg: 111707
    bp physical:    408433664      avg: 111017     compression:   1.01
    bp allocated:   615948288      avg: 167422     compression:   0.67
    bp deduped:     157286400    ref>1:    800   deduplication:   1.26
    SPA allocated:  458661888     used: 76.47%

mypool/archive/amypool/archive/b文件夹中还有另一个文件。

答案1

并非所有数据都是“可重复数据删除”的。这里有一篇文章解释了

相关内容