- Framework 노트북과 JBOD를 활용해 자체 S3 스토리지를 구축하여 10TB 용량을 저렴하게 운영하고 있으며, 4개월간 관리 없이도 안정적으로 작동
- 화면이 없는 중고 Framework 노트북에 ZFS와 garage S3를 설치하여 홈 서버로 활용, AppGoblin의 SDK 추적 프로젝트를 위한 대용량 저장소로 사용 중
- 4개월간 서버를 전혀 신경 쓰지 않았다가 로그인했을 때 10TB가 사용되었고 업그레이드 대기 상태였으며, 재시작 후에도 모든 것이 정상 작동
- garage S3를 v1에서 v2로 업그레이드하는 과정도 문제없이 완료되어 안정적인 운영 경험 확보
- USB로 노트북과 JBOD를 연결하는 비표준 ZFS 구성으로 초기에 문제가 있었으나, 메타데이터를 노트북 내부로 이동하여 해결
프로젝트 배경 및 동기
-
5개월 전 자체 S3 호스팅 결정
- AppGoblin의 상위 10만 개 Android 및 iOS 앱 SDK 추적 작업 진행 중
- 대용량 저장 공간이 필요했지만 비용 절감을 원함
- 기존 클라우드 S3 대신 셀프 호스팅 방식 선택
하드웨어 구성
-
Framework 노트북 활용
- 화면이 없는 중고 Framework 노트북을 저렴하게 구매
- 구형 모델이어서 홈 서버로 사용하기에 적합
- 노트북의 휴대성과 저전력 특성 활용
-
JBOD(Just a Bunch of Disks) 추가
- 대용량 저장을 위한 외장 디스크 어레이
- USB를 통해 노트북과 연결
소프트웨어 스택
-
ZFS 파일 시스템
- 데이터 무결성과 스냅샷 기능 제공
- JBOD를 ZFS 풀로 구성
-
garage S3
- 경량 분산 S3 호환 스토리지 솔루션
- Deuxfleurs에서 개발한 오픈소스 프로젝트
- S3 API 호환성 제공
4개월간의 무관리 운영
-
설치 후 4개월간 서버를 전혀 신경 쓰지 않음
- 여행, 업무, 바쁜 일상 중에도 S3는 지속적으로 사용
- 서버에 대해 생각할 필요가 없었음
-
로그인 후 발견한 사항
- 10TB의 저장 공간이 사용됨
- 시스템이 업그레이드를 위한 재시작을 참을성 있게 기다리고 있었음
-
재시작 결과
- 긴장하며 재시작을 실행
- 모든 것이 정상적으로 다시 작동하여 안도
garage S3 업그레이드
-
v1에서 v2로의 업그레이드
- 대기 중이던 주요 버전 업그레이드 발견
- 업그레이드 과정이 문제없이 진행됨
- 좋은 주말이었다고 평가
기술적 경고 사항 및 해결
-
비표준 ZFS 구성에 대한 인지
- USB를 통해 노트북과 JBOD를 연결하는 것은 다소 비표준적인 ZFS 사용 사례
- Reddit 커뮤니티로부터 이에 대한 경고를 받음
-
초기 문제 발생
- garage가 대량의 읽기와 쓰기를 수행할 때 ZFS 문제 발생
- 초기 설정에서 SQLite 메타데이터도 JBOD/ZFS에 저장되어 있었음
-
문제 해결
- 메타데이터를 노트북의 내부 스토리지로 이동
- 이후 ZFS 문제가 해결되고 안정적으로 작동