← 기술 목록으로

오픈소스 RAW 데이터 오브젝트 스토리지 구축 (SeaweedFS)

오픈소스 생태계의 메타·바이너리·Git 원본을 외부 의존 없이 재현 가능하게 대규모 보존하는 자체 미러 인프라 설계·구축

기간2026-05 (설계) ~ 06 (구축)
소속래브라도랩스(LabradorLabs) · 데이터파트
역할데이터파트 파트리더 · 설계·구축 주도
SeaweedFSS3HaystackXFSZFSForgejoPostgreSQLEC(6+2)

1배경

오픈소스 생태계의 메타정보(npm·PyPI·Maven·Go 패키지, CVE·OSV·SPDX 라이선스), 바이너리(tarball·wheel·jar 등), Git 원본(RAW repo)을 대규모로 수집·보존하는 자체 미러 인프라가 필요했습니다.

2핵심 설계 — 데이터의 "수정 패턴"으로 저장소 분리

모든 데이터를 한 저장소에 몰지 않고, 데이터가 어떻게 수정되는가를 기준으로 저장소를 나눴습니다.

메타 · 바이너리 → 오브젝트 스토리지

한 번 쓰고 key로 읽는(write-once, read-by-key) 패턴.

SeaweedFS(S3 호환) · 오브젝트 볼륨 파일시스템 XFS

Git 원본 → 파일시스템

잠금·부분수정·ref 갱신·index 재작성이 잦은 패턴.

ZFS 위 bare repo · 미러 자동화는 Forgejo Mirror에 위임

메타 · 바이너리 write-once

git 원본 잦은 갱신

filer 매핑

Forgejo DB

수집: 메타 · 바이너리 · git

SeaweedFS S3 Haystack

Forgejo Mirror bare repo

볼륨 FS: XFS

EC 6+2 서버 간 복제

ZFS: checksum · scrub · 복제

PostgreSQL

3기술 선택의 근거

검토했으나 미채택: JuiceFS로 git까지 오브젝트 스토리지에 통합하는 완전 통합 안 — git의 다수 작은 객체 워크로드에서 clone/fetch 성능 저하와 추상화 다중첩(디버깅 난이도)으로 제외.

4임팩트

외부 의존 제거 — 레지스트리·API rate limit에 종속되지 않는 자체 미러 확보
재현 가능한 보존 — 수집 시점의 메타·바이너리·git을 재현 가능하게 장기 보관
확장 가능한 기반 — 작은 파일 대량 + git 갱신을 각각 적합한 저장소로 처리하는 인프라 기반 마련

5역할

데이터파트 파트리더로서 저장소 분리 설계 → 기술 선택 근거 정리 → 구축 착수를 주도했습니다. 데이터의 수정 패턴에 맞춰 오브젝트 스토리지와 파일시스템을 나누고, 작은 파일 대량 저장(SeaweedFS·Haystack)과 git 무결성·복제(ZFS·Forgejo)를 각각 최적화해, 외부 의존 없는 확장 가능한 데이터 인프라 기반을 마련했습니다.

2026-05 설계 문서화, 6월 구축 착수.