Show HN: ZeroFS – A log-structured filesystem for S3
ZeroFS는 S3 호환 버킷을 NFS나 9P를 통해 POSIX 파일 시스템으로, 또는 NBD를 통해 원시 블록 장치로 제공하는 로그 구조 파일 시스템입니다. 이 시스템은 데이터를 기록할 때 불변 객체로 저장하고 압축 및 암호화를 적용하여 S3에 업로드하며, 최근 읽기 작업은 로컬 캐시에서 마이크로초 단위로 처리하여 매우 빠른 접근 속도를 제공합니다.
ZeroFS는 데이터의 무결성과 고가용성을 보장하기 위해 광범위한 테스트와 메커니즘을 갖추고 있습니다. Jepsen 테스트와 xfstests와 같은 테스트 스위트가 변경 사항마다 실행되어 POSIX 시맨틱스를 검증하며, 장애 주입을 통한 페일오버 테스트를 통해 시스템의 일관성을 확인합니다. 또한, 쓰기 작업이 S3에 반영되었는지 확인하는 정직한 fsync 기능과 읽기 복제본을 통해 높은 안정성을 확보합니다.
이 시스템은 NFS, 9P, NBD와 같은 다양한 프로토콜을 지원하며, 지리적으로 분산된 세 개의 S3 리전에 걸쳐 ZFS 미러를 구성하여 글로벌 데이터 분산을 가능하게 합니다. 데이터는 XChaCha20-Poly1305로 암호화되고 zstd 또는 lz4로 압축되며, 체크포인트와 TRIM 지원을 통해 효율적인 공간 관리가 가능합니다.
ZeroFS는 S3를 기본 저장소로 사용하면서도 전통적인 파일 시스템의 안정성과 성능을 요구하는 개발자들에게 새로운 접근 방식을 제공합니다. 이는 S3 환경에서 데이터의 무결성, 보안, 그리고 고가용성을 동시에 달성하고자 하는 요구사항을 충족시키는 데 중점을 둡니다.
ZeroFS는 데이터의 무결성과 고가용성을 보장하기 위해 광범위한 테스트와 메커니즘을 갖추고 있습니다. Jepsen 테스트와 xfstests와 같은 테스트 스위트가 변경 사항마다 실행되어 POSIX 시맨틱스를 검증하며, 장애 주입을 통한 페일오버 테스트를 통해 시스템의 일관성을 확인합니다. 또한, 쓰기 작업이 S3에 반영되었는지 확인하는 정직한 fsync 기능과 읽기 복제본을 통해 높은 안정성을 확보합니다.
이 시스템은 NFS, 9P, NBD와 같은 다양한 프로토콜을 지원하며, 지리적으로 분산된 세 개의 S3 리전에 걸쳐 ZFS 미러를 구성하여 글로벌 데이터 분산을 가능하게 합니다. 데이터는 XChaCha20-Poly1305로 암호화되고 zstd 또는 lz4로 압축되며, 체크포인트와 TRIM 지원을 통해 효율적인 공간 관리가 가능합니다.
ZeroFS는 S3를 기본 저장소로 사용하면서도 전통적인 파일 시스템의 안정성과 성능을 요구하는 개발자들에게 새로운 접근 방식을 제공합니다. 이는 S3 환경에서 데이터의 무결성, 보안, 그리고 고가용성을 동시에 달성하고자 하는 요구사항을 충족시키는 데 중점을 둡니다.