Chroma의 디스크 형식은 SQLite와 Parquet로 이루어져
chroma_store/ 디렉터리에는 SQLite 메타데이터 DB와 컬렉션별 Parquet 파일이 있어. 백업은 쓰기 작업을 멈춘 상태에서 이 디렉터리를 복사하는 것이고, 복원은 새 PersistentClient가 복사본을 가리키게 하는 것이야.
실제 서비스에서 통하는 백업 절차
- 쓰기 작업을 잠시 멈춰. 멈출 수 없다면 백업 중 들어온 쓰기를 잃을 수 있음을 받아들여야 해.
tar -cf chroma-$(date +%F).tar chroma_store/로 묶거나rsync로 나란한 디렉터리에 복사해.- 새 클라이언트로 복사본을 열고 문서 개수를 검증해.
- 압축 파일을 S3, NAS, 다른 Mac처럼 호스트 밖의 저장소로 보내.
복구 훈련
분기마다 한 번은 지난주 백업을 chroma_store_recovery/에 복원하고 스크립트가 그곳을 가리키게 한 뒤 검색이 여전히 되는지 확인해. 한 번도 복원해 보지 않은 백업은 백업이라고 믿으면 안 돼.