zfs 중복 제거율 "낮음"

zfs 중복 제거율 "낮음"

Solaris 11에서는 I라는 풀에서 mypool중복 제거를 활성화합니다 .

zfs set dedup=on mypool

그런 다음 두 개의 100MB 파일을 만들었습니다. file1및 해당 복사본 file1copy은 이름만 다르고 내용은 동일합니다.

마운트 지점 mypool은 입니다 /mypool. 합계를 출력 file1에 복사 하면file1copy/mypool

zpool list mypool

DEDUP비율이 거의 없음을 나타냅니다 1.34x. 왜? ?

그런 다음이것가이드 파일 시스템을 만들었습니다.

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

그 다음에는 상위 파일 시스템의 중복 제거 기능을 상속받은 2인용 파일 시스템이 있습니다 mypool/archive/a.mypool/archive/b

file1지금은 에 복사 mypool/archive/a하고 file1copy여전히 비율을 mypool/archive/b유지합니다 . 내가 넣을 때만DEDUP1.34x2동일한파일, 말 file1, 입력둘 다 mypool/archive/a그리고 mypool/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.

답변1

모든 데이터가 "중복 제거 가능"하지는 않습니다. 설명하는 글이 있어요이것

관련 정보