피드로 돌아가기
I built a faster alternative to cp and rsync — here's how it works
Dev.toDev.to
Infrastructure

디스크 물리 오프셋 정렬과 Deduplication으로 구현한 고속 복사 도구

I built a faster alternative to cp and rsync — here's how it works

krit.k83 (ΚρητικόςIGB)2026년 4월 5일3intermediate

Context

cp -r 명령의 디렉토리 순차 읽기 방식에 따른 HDD 헤드 이동 오버헤드 발생. SFTP 프로토콜의 높은 통신 비용으로 인한 원격 전송 속도 저하. 복사 전 대상 저장소의 여유 공간 확인 불가 문제.

Technical Solution

  • FIEMAP, fcntl, FSCTL을 활용한 파일별 물리 디스크 오프셋 식별 및 블록 위치 기반의 순차 읽기 전략
  • xxHash-128 및 SHA-256 기반의 파일 해싱을 통한 중복 데이터 식별 및 Hard Link 생성 방식의 Deduplication 적용
  • SQLite 데이터베이스를 활용한 해시 값 저장 및 이전 복사 이력 기반의 중복 파일 스킵 로직 구현
  • SFTP 대신 raw SSH 채널을 통해 약 100MB 단위의 tar 배치 파일을 스트리밍하는 전송 구조
  • 원격지에서 tar xf - 명령을 통한 즉각적인 디스크 쓰기로 임시 파일 생성 및 프로토콜 오버헤드 제거

Impact

  • 92K 파일 대상 Local 복사 시 378.9 MB 데이터 절감 및 17.9초 소요
  • LAN 환경 원격 전송 시 SFTP 대비 3배 빠른 속도 달성
  • 92K 파일 중 46,951개의 중복 파일을 감지하여 378.5 MB 전송량 절감

Key Takeaway

논리적 파일 구조가 아닌 물리적 저장 위치를 기반으로 I/O 패턴을 최적화하여 하드웨어 성능을 극대화하는 접근 방식.


다량의 소형 파일을 HDD로 복사하거나 SFTP 전송 속도가 병목인 환경에서 물리 오프셋 정렬 및 tar 스트리밍 방식 검토

원문 읽기