brief.ing.gg

WIKI

네트워크 드라이브 마운트

네트워크 드라이브 마운트

FUSE·WebDAV·S3 같은 원격 저장소를 로컬 파일시스템처럼 사용하는 방식의 차이는 무엇인가.

Scope

핵심 질문

원격 저장소를 로컬 파일시스템처럼 마운트할 때 FUSE, WebDAV, SMB, S3 계열은 어떤 차이를 가지는가?

Research

핵심 근거

  • 네트워크 드라이브는 원격 객체나 파일 프로토콜을 로컬 filesystem API에 매핑한다.
  • protocol마다 random write, locking, metadata, latency 특성이 다르다.
  • object storage를 filesystem처럼 보이게 만드는 경우 POSIX semantics가 완전히 일치하지 않을 수 있다.

Draft

네트워크 드라이브 마운트는 원격 저장소를 애플리케이션이 일반 파일처럼 접근할 수 있게 만드는 추상화다.

프로토콜 차이

SMB와 NFS는 파일공유를 목적으로 설계되어 directory, locking, random write 같은 전통적 filesystem 동작에 비교적 잘 맞는다.

WebDAV는 HTTP 기반으로 단순하지만 latency가 크고 일부 filesystem 동작의 효율이 낮을 수 있다.

S3 같은 object storage는 key-value object 모델이므로 rename이나 append 같은 POSIX 파일 동작이 자연스럽지 않다. FUSE layer가 이를 흉내내지만 비용이 생긴다.

Cache

원격 latency를 줄이기 위해 local metadata와 file cache를 사용하는 경우가 많다. Cache 정책이 잘못되면 다른 client의 변경이 늦게 보이거나 충돌할 수 있다.

핵심

마운트가 가능하다는 것과 로컬 디스크처럼 동작한다는 것은 다르다. 실제 workload의 read/write 패턴과 필요한 consistency semantics를 기준으로 protocol을 선택해야 한다.