web-dev-qa-db-ja.com

zfs重複排除の「低い」比率

Solaris 11では、mypoolという名前のプールで重複排除をアクティブにしました

zfs set dedup=on mypool

次に、2つの100MBファイルfile1とそのコピーfile1copyを作成しました。名前だけが異なります。内容は同じです。

mypoolのマウントポイントは/mypoolです。 file1file1copyの両方を/mypoolにコピーすると、

zpool list mypool

DEDUPの比率がほとんど1.34xであることを示します。なぜ??

次に、 this ガイドに従ってファイルシステムを作成しました

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

次に、親ファイルシステムから重複排除を継承した2人のユーザーのファイルシステムmypool/archive/amypool/archive/b

ここで、file1mypool/archive/aにコピーし、file1copymypool/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/aフォルダーとmypool/archive/bフォルダーの両方に、別のファイルもありました。

3
BowPark

すべてのデータが「重複排除可能」であるとは限りません。 this を説明する記事がここにあります

1
Warwick