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
유지합니다 . 내가 넣을 때만DEDUP
1.34x
2
동일한파일, 말 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
모든 데이터가 "중복 제거 가능"하지는 않습니다. 설명하는 글이 있어요이것