Garage - S3 호환 분산 객체 스토리지 오픈소스
(git.deuxfleurs.fr)- 중소규모의 셀프 호스팅을 위해 설계된 Amazon S3 호환 분산 개체 스토리지 서비스
- 서로 다른 물리적 위치에서 실행되는 노드로 구성된 스토리지 클러스터를 위해 설계
- 멀티 사이트를 지원하면서도 경량
- 높은 복원력: 네트워크 장애, 네트워크 지연, 디스크 장애, 시스템 관리자 오류에 강함
- 모든 리눅스 배포판에서 실행되는 의존성 없는 바이너리 제공
- 빠른 배포, 안전한 운영: 시스템 관리자 친화적
- 지원 기능
- S3 API 호환 (전체는 아님)
- Geo-distribution : 장애 대응을 위해 여러 위치에 데이터 사본 저장
- 간단한 배포. 외부 의존성 없음
- 유연한 토폴로지 : 쉽게 노드를 추가/삭제 가능하며 자동으로 리밸런싱
- 여러개의 복제 모드 지원 : 1,2,3,5,7,,,
- 중복 제거 및 선택적으로 압축(Zstd)
- 속도를 저하시키는 RAFT가 없음
- 정적 웹사이트 호스팅을 위한 웹서버
- 버켓이 여러개의 Alias 보유가능
- 클러스터 관리 API
- Prometheus 데이터 포맷 기반 메트릭 제공
- Kubernetese 및 Nomad 연동
- IP 변경 지원
- K2V API(실험적) : Key/Value 스토리지 API
Hacker News 의견
-
Minio를 2년간 사용 후 Garage로 이동했음
- Minio는 작은 파일 처리에 어려움이 있음
- SSD는 문제를 어느 정도 해결하지만 HDD는 그렇지 않음
- 동기화 모드에서도 Minio는 성능 저하가 발생함
- Garage로 이동 후 20-30배 성능 향상을 경험함
-
콘텐츠 주소 지정 Blob 스토리지가 필요함
- 불변 블롭을 해시로 저장하면 복잡성과 성능 오버헤드를 줄일 수 있음
- 소프트 삭제와 결합하면 모든 작업이 멱등성이 되고, 블롭은 쉽게 캐시 가능함
- IPFS와 같은 대규모 솔루션이 있지만, 로컬 배포용으로 S3 대체제가 필요함
-
Garage를 오래 사용했지만 AWS sigv4 프로토콜이 불편함
- API 키를 헤더로 보내고 싶음
- AWS SDK를 사용하지 않고 파일을 주고받고 싶음
- AWS sigv4의 보안 이점에 관심이 없음
- 다른 인증 방식을 고려해 주길 바람
-
SeaweedFS도 훌륭함
-
Garage의 낮은 메모리 사용량을 높이 평가함
- AWS S3로 일부 버킷을 자동으로 백업하는 기능이 필요함
-
Garage는 쌍으로 저장소 복제를 지원함
- 10GB 디스크와 1TB 디스크가 있을 때 RAID1 유사 미러링만 지원함
- 저장 용량이 10GB로 제한됨
-
Apache Ozone은 Hadoop 위에서 실행되는 객체 저장소의 대안임
-
로컬에서 S3 호환성을 갖춘 간단한 솔루션이 필요함
- 개발 작업과 테스트를 위해 추천할 만한 것이 있는지 궁금함