Immich trên Proxmox với ZFS mirror: cài đặt và sao lưu 3-2-1
Đăng ngày 2026-10-27
Immich là thư viện ảnh và video tự lưu trữ (self-hosted) có sao lưu từ điện thoại. Hướng dẫn này trình bày một cách thiết lập có thể chịu được hỏng ổ đĩa: Immich chạy trong một VM trên Proxmox, ảnh nằm trên ZFS mirror, và bên trên là một bản sao lưu 3-2-1 thực sự. Giả định rằng bạn đã cài sẵn Proxmox và có hai ổ đĩa cùng dung lượng cho mirror.
Phần cứng: mức tối thiểu chính thức
| Hạng mục | Tối thiểu | Khuyến nghị |
|---|---|---|
| RAM | 6 GB | 8 GB |
| CPU | 2 nhân | 4 nhân |
| Lưu trữ cơ sở dữ liệu | SSD cục bộ, tuyệt đối không dùng thư mục chia sẻ qua mạng | |
Nguồn: Immich requirements (trang cập nhật 2026-10-08, kiểm tra 2026-10-19). Cùng trang đó ghi chú rằng ảnh thu nhỏ và video đã chuyển mã làm tăng dung lượng thư viện khoảng 10–20%, và nếu chỉ có 4 GB RAM thì nên tắt machine learning.
Bước 1 — Tạo ZFS mirror
- Trong Proxmox: Datacenter → node → Disks → ZFS → Create: ZFS, chọn cả hai ổ đĩa, RAID level là Mirror.
- Mirror hai ổ cho dung lượng bằng một ổ; một trong hai ổ hỏng cũng không mất dữ liệu.
- Thêm nó làm nơi lưu trữ cho đĩa VM, hoặc tạo một dataset (ví dụ
tank/photos) để gắn vào VM.
Bước 2 — Tạo VM
- Tạo một VM Debian hoặc Ubuntu với cấu hình ít nhất bằng mức tối thiểu ở trên. Đặt đĩa hệ thống của VM trên SSD để cơ sở dữ liệu Postgres nằm trên SSD cục bộ.
- Đặt loại CPU là
host(hoặc một loại khác hỗ trợ x86-64-v2); container machine learning của Immich yêu cầu x86-64-v2 trên amd64. - Thêm đĩa ảo thứ hai nằm trên ZFS mirror để chứa ảnh và mount nó, ví dụ tại
/srv/photos.
Immich ghi tài liệu Docker Compose trong VM là cách được hỗ trợ; chạy bên trong container LXC được mô tả là không khuyến nghị.
Bước 3 — Cài đặt Immich
- Cài Docker và plugin Compose.
- Tải
docker-compose.ymlvàexample.envchính thức từ tài liệu cài đặt của Immich. - Trong
.env, đặtUPLOAD_LOCATION=/srv/photos/libraryvà giữDB_DATA_LOCATIONtrên đĩa hệ thống SSD. - Chạy
docker compose up -d, mở cổng 2283, tạo tài khoản quản trị, cài ứng dụng điện thoại và bật sao lưu.
Bước 4 — Sao lưu 3-2-1
Mirror bảo vệ bạn khi một ổ đĩa chết, chứ không bảo vệ khỏi việc xóa nhầm, ransomware hay hỏa hoạn. Tài liệu của chính Immich khuyến nghị chiến lược 3-2-1: 3 bản sao, trên 2 loại phương tiện lưu trữ, 1 bản ở nơi khác (off-site).
| Bản sao | Ở đâu | Cách thực hiện |
|---|---|---|
| 1 | ZFS mirror (đang chạy) | Chính Immich |
| 2 | Ổ USB ngoài hoặc máy thứ hai | ZFS snapshot + zfs send, hoặc restic/borg |
| 3 | Off-site (bucket đám mây hoặc máy chủ của một người bạn) | restic/borg có mã hóa |
Hãy sao lưu cả hai phần. Immich tự tạo bản dump cơ sở dữ liệu trong UPLOAD_LOCATION/backups (mặc định: hằng ngày lúc 2:00 sáng, giữ 14 bản gần nhất). Các bản dump đó chỉ chứa siêu dữ liệu — không có ảnh — nên tác vụ sao lưu của bạn phải chép toàn bộ UPLOAD_LOCATION, trong đó đã bao gồm các bản dump. Nguồn: Immich backup and restore, kiểm tra 2026-10-19.
Hãy thử khôi phục một lần: dựng một VM tạm, khôi phục tệp và một bản dump, rồi đăng nhập.
Còn gì khác có thể chạy trên cùng máy chủ
- Một dịch vụ đồng bộ tệp (ví dụ Syncthing) trên cùng mirror.
- Một máy chủ quản lý mật khẩu, được sao lưu bằng cùng tác vụ off-site.
- Giám sát (SMART của đĩa và cảnh báo ZFS scrub) — khoản bảo hiểm rẻ nhất trong danh sách.
Câu hỏi thường gặp
- Mirror có phải là bản sao lưu của tôi không?
- Không. Nó chỉ là dự phòng. Xóa một bức ảnh là xóa ngay trên cả hai ổ.
- Tôi có thể đặt cơ sở dữ liệu trên ZFS mirror qua NFS không?
- Immich nói rằng cơ sở dữ liệu tuyệt đối không nên nằm trên thư mục chia sẻ qua mạng. Hãy để nó trên SSD cục bộ.
- Bản thân ZFS cần bao nhiêu RAM?
- ZFS dùng RAM trống làm cache (ARC) và nhả lại khi bị thiếu; hãy tính RAM cho VM trước, rồi để máy chủ host dùng phần còn lại.
Nguồn
- Yêu cầu hệ thống của Immich — đã kiểm tra 2026-10-19
- Sao lưu và khôi phục của Immich — đã kiểm tra 2026-10-19
Liên quan (tiếng Hàn): Tổng hợp kiến thức phát triển (개발 지식 모음, tiếng Hàn)
🌐 English · Español · Bahasa Indonesia · 日本語 · ไทย · Tiếng Việt · 中文