당신에겐 사진 라이브러리가 있습니다. 수년간의 추억. 정성껏 정리한 앨범들. 태그한 얼굴들. 가족과 공유한 링크들.
그런 다음 NAS를 업그레이드하고 — 파일만 옮기는 것으로는 충분하지 않다는 걸 깨닫게 됩니다. 데이터베이스 없이는 모든 앨범, 얼굴 태그, 당신이 정성껏 만든 추억을 잃게 됩니다. 사진은 있지만 조직화는 사라집니다.
DIY ZimaOS 서버에서 ZimaCube 2로 14,505장 사진과 925개 비디오 — 총 134 GiB — 를 옮겼습니다. 모든 앨범이 살아남았고, 모든 얼굴 태그가 그대로 유지되었습니다. 모든 공유 링크도 여전히 작동합니다.
제가 어떻게 했는지, 거의 잘못될 뻔한 점, 그리고 제 구형 환경에서 불가능했던 ZimaCube 2가 가져온 점을 정확히 설명합니다.
왜 Immich인가, 왜 지금인가
Immich는 이유가 있어 최고의 셀프 호스팅 사진 솔루션이 되었습니다. 구글 포토 수준의 기능 — 얼굴 인식, 의미 검색, 자동 백업 (휴대폰에서), 공유 앨범 — 을 제공하면서도 사진을 다른 서버에 보내지 않습니다.
하지만 Immich는 PostgreSQL에 그 핵심을 저장합니다. 데이터베이스는 앨범, 얼굴 벡터, 인물 클러스터, 스마트 검색용 CLIP 임베딩, 그리고 라이브러리를 당신만의 것으로 만드는 모든 메타데이터를 담고 있습니다. 데이터베이스 없이 파일만 옮기면 사진 폴더만 있고 빈 Immich 인스턴스가 됩니다.
이 마이그레이션의 규칙은 하나였습니다: 데이터 손실 제로. 새 서버가 검증될 때까지 기존 서버는 삭제하지 않았습니다.
Immich가 실제로 저장하는 것(그리고 그 이유)
파일을 건드리기 전에, 정확히 무엇을 이동해야 하는지 계획했습니다:
| 구성 요소 | 위치 | 내용 | 이동해야 하나요? |
| pgdata | /DATA/AppData/immich/pgdata | 전체 PostgreSQL — 앨범, 얼굴, 인물, 메타데이터 | ✅ 중요 |
| model-cache | /DATA/AppData/immich/model-cache | 다운로드된 CLIP/얼굴 인식 모델 | ✅ 재다운로드 방지 |
| 사진 라이브러리 | /DATA/Gallery/immich | 14,505장 사진 + 925개 비디오 + 썸네일 (134 GiB) | ✅ 실제 미디어 |
| 자동 백업 | /DATA/Gallery/immich/backups | 최근 14일간의 일일 데이터베이스 스냅샷 | 💡 이미 존재함 |
Immich는 또한 매일 오전 2시에 자동으로 데이터베이스 백업을 생성하며, 백업 디렉터리에 최근 14개를 보관합니다. 수동 덤프를 실행하기 전에 최근 자동 백업이 이미 있는지 확인하세요.
방법: ZimaOS 파일 앱 (LAN 복사)
두 머신 모두 같은 LAN에서 ZimaOS를 실행합니다. 그래서 내장된 파일 앱을 사용해 직접 LAN 전송이 가능했습니다 — 외장 드라이브, SCP 명령어, 중간 저장소 불필요.
1단계: 소스 머신 마운트
ZimaCube 2에서 파일 앱을 열고 → + 저장소 추가 → LAN 저장소 → 소스 머신 로컬 IP 입력 후 인증하세요. 이제 소스 머신 파일 시스템이 ZimaCube 2에서 탐색 가능한 저장소로 나타납니다.
2단계: 소스에서 Immich 중지
사람들이 건너뛰고 후회하는 단계입니다.복사 전에 Immich를 중지하세요. 실행 중인 PostgreSQL 인스턴스는 계속 쓰기 작업을 하므로 데이터베이스가 일관되고 플러시된 상태여야 합니다. 소스 머신에서: ZimaOS 앱 스토어 → Immich → 중지.
3단계: 두 디렉터리 모두 복사
ZimaCube 2 파일 앱에서 마운트된 소스로 이동하여 선택하세요:
| 소스 경로 | ZimaCube 2의 대상 경로 |
| /DATA/AppData/immich | /DATA/AppData/immich |
| /DATA/Gallery/immich | /DATA/Gallery/immich |
두 위치를 모두 선택하고 마이그레이션을 누르세요. 선택: 대상에서 덮어쓰기 및 소스에서 원본 유지 — 검증 전까지 소스를 삭제하지 마세요.
4단계: ZimaCube 2에 Immich 설치
ZimaOS 앱 스토어를 열고 Immich를 검색하세요. 중요 경고: 앱 스토어에는 여러 Immich 변형이 표시될 수 있습니다. 소스 머신에서 사용 중인 정확히 동일한 변형을 설치해야 합니다:
Immich (공식 ZimaOS/CasaOS 앱) — 이전에 사용하던 것이 이것이라면 사용하세요
BigBearCasaOS Immich — 다른 docker-compose 변수, 다른 postgres 자격 증명, 다른 데이터베이스 이름 — 공식 앱에서 직접 pgdata 복사와 호환되지 않음
설치 후 즉시 앱을 시작하지 마세요. Immich는 첫 실행 시 기존 pgdata 디렉터리를 감지하여 새 빈 데이터베이스를 초기화하지 않고 연결합니다.

5단계: 기존 자격 증명으로 로그인
http://192.168.x.x:2283에서 Immich를 열고 원본 인스턴스와 동일한 사용자 이름과 비밀번호로 로그인하세요. 전체 라이브러리 — 앨범, 얼굴, 사람, 설정 — 이 그대로 유지됩니다.

6단계: 작업 대기열 확인
프로필 → 관리 → 작업 대기열로 이동하세요. pgdata 마이그레이션 후 데이터베이스에는 이미 이전에 처리된 모든 결과가 포함되어 있으므로 대부분의 대기열은 활성: 0 / 대기: 0으로 표시됩니다.
대기열 중 누락 항목 수가 표시되면, 누락 버튼을 클릭하여 처리되지 않은 자산만 처리하세요:
| 대기열 | 실행 시기 누락 |
| 썸네일 생성 | 사진 미리보기가 빈 화면으로 표시되면 |
| 메타데이터 추출 | 자산에 GPS/위치/날짜 정보가 없으면 |
| 스마트 검색 | 시맨틱 검색 결과가 없으면 |
| 얼굴 인식 | 얼굴 데이터가 불완전해 보인다면 |
마이그레이션 통계
| 지표 | 값 |
| 이전된 사진 | 14,505 |
| 이전된 비디오 | 925 |
| 총 데이터 | 134 GiB |
| 전송 시간 (2.5GbE) | 약 12분 |
| 앨범 보존 | 모두 |
| 얼굴 태그 보존 | 모두 |
| 공유 링크 보존 | 모두 |
| 데이터 손실 | 제로 |
왜 ZimaCube 2가 이 작업을 가치 있게 만들었는가
나는 단순히 같은 경험을 위해 마이그레이션한 것이 아닙니다. ZimaCube 2는 내가 사용하던 구형 DIY ZimaOS 박스가 따라올 수 없던 세 가지 업그레이드를 제공합니다:
2.5GbE 전송. 사진 라이브러리는 계속 커집니다. 모든 전체 백업, 대용량 가져오기, 마이그레이션은 표준 기가비트 대비 2.5배의 대역폭 혜택을 누립니다. ZimaCube 2의 듀얼 2.5GbE 덕분에 백업을 포화 상태로 만들면서도 네트워크는 원활하게 유지됩니다.
데이터베이스용 NVMe 스토리지. Immich PostgreSQL 데이터베이스는 회전식 하드디스크보다 NVMe에서 훨씬 뛰어난 성능을 발휘합니다. 썸네일 생성, 스마트 검색 쿼리, 얼굴 인식 등 모든 작업이 pgdata에서 읽어옵니다. ZimaCube 2 NVMe 풀에서는 HDD에서 지연되던 데이터베이스 작업이 이제 즉시 처리됩니다.
6베이 확장성. 오늘은 134 GiB. 내년은 어떨까요? ZimaCube 2는 6개의 SATA 베이와 7번째 베이의 4개 M.2 슬롯을 갖추고 있어 이 사진 라이브러리는 수년간 저장 공간 한계 없이 성장할 수 있습니다.

포토 라이브러리를 ZimaCube 2로 마이그레이션하기 →
셀프 호스팅 사진 설정을 구축 중이신가요? 개인 클라우드 스토리지 장치 가이드, ZimaCube 2에서의 Docker & CI/CD 심층 분석, 그리고 ZimaCube 2 Pro 개봉기를 읽어보세요.
자주 묻는 질문
앨범과 얼굴 태그를 잃지 않고 Immich를 ZimaCube 2로 마이그레이션할 수 있나요?
네 — 하지만 사진 파일과 pgdata 디렉터리(PostgreSQL 데이터베이스)를 모두 복사해야 합니다. 데이터베이스는 모든 앨범, 얼굴 벡터, 사람 클러스터, 메타데이터를 저장합니다. 사진만 옮기면 조직화되지 않은 파일만 얻습니다. 두 디렉터리를 함께 복사해야 라이브러리가 온전하게 유지됩니다.
Immich 데이터를 ZimaCube 2로 가장 빠르게 전송하는 방법은 무엇인가요?
두 머신이 같은 LAN에 있고 ZimaOS를 실행 중이라면, 내장된 파일 앱의 LAN 스토리지 마운트를 사용하세요. ZimaCube 2의 2.5GbE 연결을 통해 134 GiB를 약 10~15분 만에 전송할 수 있습니다. 더 큰 라이브러리나 다른 네트워크에 있는 머신은 외장 USB 드라이브가 다음으로 좋은 옵션입니다.
마이그레이션 시 Immich 앱 스토어 버전이 중요한가요?
네 — 매우 중요합니다. ZimaOS 앱 스토어에는 여러 Immich 변형(공식 버전 vs BigBearCasaOS)이 표시될 수 있습니다. 이들은 서로 다른 docker-compose 변수—postgres 자격 증명, 데이터베이스 이름, 네트워크 설정을 사용하므로 호환되지 않습니다. 소스 머신과 정확히 같은 변형을 설치해야 복원된 데이터베이스가 연결됩니다.
복사 전에 소스에서 Immich를 중지해야 하나요?
네. 실행 중인 PostgreSQL 인스턴스는 지속적으로 기록합니다. 라이브 데이터베이스를 복사하면 일관성 없는 상태가 될 위험이 있습니다. 소스 머신에서 Immich를 중지한 후 폴더를 복사하고 대상에서 시작하세요. 소스 머신은 마이그레이션 확인 전까지 꺼두거나 백업용으로 켜둘 수 있습니다.
Immich가 ZimaCube 2에서 필요한 저장 공간은 얼마인가요?
포토 라이브러리 크기와 PostgreSQL 데이터베이스(라이브러리와 함께 성장), 썸네일 캐시 및 트랜스코딩된 비디오 버전을 위한 공간을 계획하세요. 14,500장의 사진이 있는 134 GiB 라이브러리는 오버헤드를 포함해 대략 150~160 GiB를 사용합니다. ZimaCube 2의 6개 SATA 베이는 확장 공간을 제공합니다.
지마 캠페인 허브
더 읽어보기

나는 이케아 칼락스를 ZimaCube 2와 함께 10인치 랙 홈랩으로 바꿨다
랙 마운트형 홈랩은 멋지게 들리지만, 거실에 기업용 제트 엔진이 들어오는 것은 원하지 않는다는 사실을 깨닫게 됩니다. 10인치 미니 랙 운동이 그 해답입니다. 여기서는 컴팩트한...

한 대의 기기가 내 전체 클라우드를 대체한 방법 — ZimaCube 2에서 Nextcloud와 로컬 AI 활용하기
클라우드 저장소 비용 지불을 중단하세요. 셀프 호스팅 NAS와 Nextcloud를 사용하여 파일을 안전하게 동기화하고 자체 하드웨어에서 빠른 로컬 AI 어시스턴트를 실행하는 방법을 알아보세요.

ZimaCube 2 첫인상 — 6베이 NAS에 이 정도 가성비는 미쳤다
우리의 ZimaCube 2 스탠다드 리뷰를 읽어보세요. 이 6베이 NAS는 인텔 i3, 썬더볼트 4, 4개의 NVMe 슬롯, 그리고 강력한 ZimaOS를 갖춘 최고의 홈랩 가치를 제공합니다.

