▲GN⁺ 2024-10-31 | parent | ★ favorite | on: OpenZFS 중복 제거 기능 개선, 사용 자제 권고(despairlabs.com)Hacker News 의견 제목에 끌려 클릭했지만 ZFS에 관심이 없었음에도 거의 모든 글을 읽게 되었음. 글이 명확하게 설명되어 있었고, 모바일 CSS 테마가 특히 마음에 들었음. 간결한 요약은 글의 하단에 있음. copy_file_range 논의 외에도, 파일 시스템에서 동일한 해시를 가진 1MB 이상의 파일을 찾아 선택적으로 중복 제거를 적용할 수 있으면 좋겠음. 전통적인 중복 제거의 문제는 오버헤드가 너무 커서 특정 작업 부하를 제외하고는 효과를 보기 어려움. Pure와 Dell/EMC 배열에서 VMWare 작업 부하에 대해 3:1 중복 제거/압축 절감 효과를 보았음. 중복 제거의 효과는 해시되는 블록의 크기에 크게 영향을 받음. 블록이 작을수록 일치하는 블록이 있을 확률이 높아짐. 개인적으로 4KB 블록 크기를 선호함. "오프라인" 중복 제거나 "게으른" 중복 제거를 원함. 중복 제거가 활성화되면 모든 쓰기와 해제 작업이 중복 제거 테이블에 대한 조회와 쓰기를 요구함. 데이터 쓰기 시 빠르게 완료되기를 원함. 빠른 중복 제거에 대해 매우 기대하고 있음. ArchiveBox 데이터에 ZFS 중복 제거를 사용하고 싶었음. 많은 URL을 아카이브하고 파일 시스템이 모든 것을 압축하도록 하는 것이 가능해질 것 같음. 개인 아카이브에 ZFS 중복 제거를 사용해 왔으며, 현재 디스크 공간을 3배 줄이고 있음. ZFS는 신뢰성 면에서 매우 잘 작동했으며, 데이터 손실을 방지할 수 있었음. 일반적인 중복 제거는 이론적으로는 좋지만 실제로는 잘 작동하지 않음. IPFS는 가변 크기의 조각을 사용하여 데이터를 중복 제거하려고 하지만 실제로는 차이가 없고 복잡성만 증가시킴. 디스크 컨트롤러의 전용 하드웨어가 ECC 같은 계산을 위해 블록의 해시를 시스템에 노출할 수 있도록 개선되면 좋겠음. 파일 시스템의 API가 완전히 다른 형태였으면 좋겠음. 모든 OS의 파일 시스템 API는 호환성 때문에 고착되어 있음. 쓰기 성능이 중요하다면, 쓰기 시 중복 제거를 할 필요가 없음. 중복 제거는 나중에, 동시에, 그리고 낮은 우선순위로 수행하면 됨.
Hacker News 의견
제목에 끌려 클릭했지만 ZFS에 관심이 없었음에도 거의 모든 글을 읽게 되었음. 글이 명확하게 설명되어 있었고, 모바일 CSS 테마가 특히 마음에 들었음. 간결한 요약은 글의 하단에 있음.
copy_file_range논의 외에도, 파일 시스템에서 동일한 해시를 가진 1MB 이상의 파일을 찾아 선택적으로 중복 제거를 적용할 수 있으면 좋겠음.전통적인 중복 제거의 문제는 오버헤드가 너무 커서 특정 작업 부하를 제외하고는 효과를 보기 어려움. Pure와 Dell/EMC 배열에서 VMWare 작업 부하에 대해 3:1 중복 제거/압축 절감 효과를 보았음.
중복 제거의 효과는 해시되는 블록의 크기에 크게 영향을 받음. 블록이 작을수록 일치하는 블록이 있을 확률이 높아짐. 개인적으로 4KB 블록 크기를 선호함.
"오프라인" 중복 제거나 "게으른" 중복 제거를 원함. 중복 제거가 활성화되면 모든 쓰기와 해제 작업이 중복 제거 테이블에 대한 조회와 쓰기를 요구함. 데이터 쓰기 시 빠르게 완료되기를 원함.
빠른 중복 제거에 대해 매우 기대하고 있음. ArchiveBox 데이터에 ZFS 중복 제거를 사용하고 싶었음. 많은 URL을 아카이브하고 파일 시스템이 모든 것을 압축하도록 하는 것이 가능해질 것 같음.
개인 아카이브에 ZFS 중복 제거를 사용해 왔으며, 현재 디스크 공간을 3배 줄이고 있음. ZFS는 신뢰성 면에서 매우 잘 작동했으며, 데이터 손실을 방지할 수 있었음.
일반적인 중복 제거는 이론적으로는 좋지만 실제로는 잘 작동하지 않음. IPFS는 가변 크기의 조각을 사용하여 데이터를 중복 제거하려고 하지만 실제로는 차이가 없고 복잡성만 증가시킴.
디스크 컨트롤러의 전용 하드웨어가 ECC 같은 계산을 위해 블록의 해시를 시스템에 노출할 수 있도록 개선되면 좋겠음.
파일 시스템의 API가 완전히 다른 형태였으면 좋겠음. 모든 OS의 파일 시스템 API는 호환성 때문에 고착되어 있음.
쓰기 성능이 중요하다면, 쓰기 시 중복 제거를 할 필요가 없음. 중복 제거는 나중에, 동시에, 그리고 낮은 우선순위로 수행하면 됨.