4P by GN⁺ 1달전 | ★ favorite | 댓글 1개
  • Garage는 데이터센터 외부 환경에서도 안정적으로 동작할 수 있는 S3 호환 객체 저장소
  • 단일 의존성 없는 바이너리로 제공되어 모든 Linux 배포판에서 쉽게 실행 가능
  • 데이터는 3개 존(zone) 에 복제되어 높은 중복성과 내결함성을 확보
  • Amazon S3 API를 구현해 Nextcloud, Matrix, Mastodon 등 다양한 애플리케이션과 호환
  • 낮은 하드웨어 요구사항과 공개 연구 기반 설계로 분산 시스템 접근성을 확대

개요

  • Garage는 데이터센터 외부에서도 안정적으로 운영 가능한 S3 객체 저장소로, 인터넷을 통해 여러 데이터센터에 걸쳐 실행 가능
  • 웹사이트 호스팅, 미디어 저장, 백업 타깃 등 다양한 용도로 사용 가능

설계 목표

  • 경량성과 효율성을 중시해 개발된 시스템
    • 단일 의존성 없는 실행 파일로 배포되어 모든 Linux 배포판에서 동작
    • 빠른 배포와 안전한 운영을 위해 시스템 관리자 친화적으로 설계
  • 모든 환경에서 배포 가능하도록 설계되어, 전용 백본망 없이도 인터넷 상에서 여러 데이터센터 간 운영 가능
  • 네트워크 장애, 지연, 디스크 오류, 운영자 실수에도 견딜 수 있는 높은 복원력 확보

최소 요구사항

  • CPU: 최근 10년 내 x86_64, ARMv7 또는 ARMv8
  • RAM: 1GB
  • 디스크 공간: 최소 16GB
  • 네트워크: 지연 200ms 이하, 대역폭 50Mbps 이상
  • 이기종 하드웨어 지원으로 중고 장비를 활용한 클러스터 구성 가능

데이터 복원성과 호환성

  • 각 데이터 조각(chunk)은 3개 존에 복제되어 저장
  • Amazon S3 API를 구현해 기존 애플리케이션과 즉시 호환
    • 지원 예시: Nextcloud, Matrix, Cyberduck, Mastodon, Rclone, PeerTube

기술적 기반

  • Garage는 최신 분산 시스템 연구 성과를 기반으로 설계
    • Amazon의 Dynamo 키-값 저장소
    • Conflict-Free Replicated Data Types (CRDTs)
    • Maglev 소프트웨어 네트워크 로드 밸런서

후원 및 자금 지원

  • Garage 프로젝트는 여러 차례 공공 자금 지원을 받음
    • 2021–2022: NGI POINTER – 3명 풀타임 직원 1년 지원
    • 2023–2024: NLnet / NGI0 Entrust – 1명 풀타임 직원 1년 지원
    • 2025: NLnet / NGI0 Commons Fund – 1.5명 풀타임 직원 1년 지원
  • 유럽연합 Horizon 2021 연구혁신 프로그램Next Generation Internet 프로그램의 재정 지원을 받음
  • 추가 후원이나 지원 계약을 통한 참여 가능 (연락처: garagehq@deuxfleurs.fr)
Hacker News 의견들
  • 최근 내부 테스트에서 Garage를 꽤 광범위하게 검증했음
    배포는 MinIO보다 조금 더 간단했지만, 고속 성능에서는 뒤처졌음
    25G NIC 환경에서 MinIO는 20~25Gbps까지 도달했지만 Garage는 약 5Gbps 수준에서 제한되었음
    Garage가 이런 고성능 사용 사례를 목표로 하지 않는다는 인상임
    다음에는 RustFSCeph/Rook도 함께 검토할 예정임
    MinIO의 최근 방향성 때문에 결국 다른 대안을 찾아야 할 것 같음

    • Garage는 공식적으로 최고 성능을 목표로 하지 않음
      “고성능은 설계와 인프라를 제약하므로, 우리는 미니멀리즘을 통한 성능을 추구한다”는 철학임
      (Design Goals 문서)
      다만 성능 병목이 어디서 생기는지는 흥미로운 부분임. MinIO보다 병렬 처리가 적을 수도 있음
    • S3만 필요하다면 Rook은 추천하지 않음
      복잡도가 매우 높아, 제대로 이해하지 않으면 클러스터가 망가졌을 때 복구가 어려움
    • 테스트 목록에 SeaweedFS도 포함해보길 제안함
  • 로컬 개발용으로는 흥미로운 프로젝트로 보임
    하지만 프로덕션 설정 가이드를 보면 약간 겁이 남
    Garage는 메타데이터 저장 시 자체 체크섬 및 무결성 검증을 하지 않기 때문에 BTRFS나 ZFS 같은 파일시스템을 권장함
    기본 LMDB 엔진은 비정상 종료 시 데이터 손상 위험이 있어, 정기 스냅샷이 필요함
    SQLite도 가능하지만, 기본 DB가 전원 장애에 취약하다는 점이 의외였음

    • 트랜잭션 지원, 빠른 속도, Rust 바인딩, 기본 체크섬 및 무결성 검증을 모두 갖춘 임베디드 KV 스토어를 알고 있다면 알려달라 함
      바로 Garage에 통합하겠다고 함
    • 로컬 개발에서는 MinIO를 써왔지만, 그 버전이 이제 유지보수되지 않음
      Garage의 최소 요구사항이 RAM 1GB라는 점이 다소 부담스러웠음
    • 전원 장애 시 데이터 손상 문제는 소프트웨어로 완전히 해결하기 어려움
      PLP(전원 손실 보호) 기능이 있는 NVMe 드라이브나 UPS 사용을 권장함
  • MinIO 사태 이후 Garage 채택이 급증하는 걸 보고 있음
    Repoflow의 벤치마크 비교 글이 유용했음
    RustFS도 흥미로웠지만 비기술적 이유로 제외했음
    MinIO를 대체할 때의 팁이 있으면 듣고 싶음

    • 직접 써보진 않았지만 Versity S3 Gateway도 좋아 보임
      GitHub 링크 참고
      Ceph S3 Gateway와의 비교도 궁금함
    • RustFS를 제외한 이유가 궁금하다는 질문이 있었음
    • 이전 논의와 업무 경험상 Garage는 안정적인 대체재로 보임
    • 벤치마크에서 SeaweedFS도 좋은 성능을 보였음
  • Deuxfleurs 공식 사이트는 지금까지 본 웹사이트 중 가장 아름다운 디자인

    • 예술적으로는 훌륭하지만, 가독성과 접근성은 떨어지는 편임
  • 로컬 개발 및 테스트용으로 Garage를 사용 중임
    s5cmd와 함께 15GB, 6만 개 이상의 오브젝트를 60초 내로 시드 가능함
    Docker로 API, DB, 캐시, 오브젝트 컨테이너를 포함한 스테이징 환경 복제가 2분 내 완료됨
    설정이 매우 간단하고 안정적으로 동작 중임
    이전에는 LocalStack S3를 썼지만 영속성 부족이 문제였고, MinIO OSS도 유지보수가 중단됨
    SeaweedFS와 RustFS도 검토했지만 Garage가 가장 손쉬웠음

  • Garage는 테스트 코드와 벤치마크에서 매우 인상적이었음
    단일 실행 파일로 배포가 간단하고 문서도 잘 되어 있음
    하지만 오브젝트 태그 기능 부재는 큰 아쉬움이었음
    클라우드 API 세계에서는 태그가 기본 기능이라, 이 부분이 개선되길 바람

    • 개발팀이 피드백을 감사히 받아들였다고 답변함
  • Garage를 정말 좋아함
    단순한 S3 대안 그 이상으로, 하이퍼 컨버지드 아키텍처에서도 유용함
    로컬 머신에서 데이터를 우선 읽고, 필요할 때만 네트워크를 사용하는 구조가 멋짐

    • 어떤 설정으로 사용 중인지 궁금하다는 질문이 있었음
  • Erasure coding이 없다는 점은 내결함성과 효율성 측면에서 손실이 큼

    • LTO 테이프 라이브러리에서 사용하려 했는데, 복제 기반의 내결함성만 제공되는 게 걱정이었음
      하드웨어 장애 시 어떻게 복구되는지가 주요 우려였음
  • 데이터 엔지니어링 스크립트에서 Garage가 유용했음
    대부분의 도구가 S3 통합을 지원하므로, Garage에 데이터를 덤프하고 나중에 클라우드로 확장하기 쉬움

  • 최근 Garage를 테스트해봤음
    약 300개의 문서(1GB)를 업로드 후 삭제하려 했는데, S3 서비스가 컨테이너 내에서 크래시되어 재시작해야 했음
    멋진 프로젝트이지만, 내 경험상 아직 신뢰성은 부족함