🔍검색

Trang chủ › Hướng dẫn

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ụcTối thiểuKhuyến nghị
RAM6 GB8 GB
CPU2 nhân4 nhân
Lưu trữ cơ sở dữ liệuSSD 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

  1. Trong Proxmox: Datacenter → node → Disks → ZFS → Create: ZFS, chọn cả hai ổ đĩa, RAID level là Mirror.
  2. 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.
  3. 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

  1. 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ộ.
  2. Đặ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.
  3. 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

  1. Cài Docker và plugin Compose.
  2. Tải docker-compose.yml và example.env chính thức từ tài liệu cài đặt của Immich.
  3. Trong .env, đặt UPLOAD_LOCATION=/srv/photos/library và giữ DB_DATA_LOCATION trên đĩa hệ thống SSD.
  4. 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Ở đâuCách thực hiện
1ZFS mirror (đang chạy)Chính Immich
2Ổ USB ngoài hoặc máy thứ haiZFS snapshot + zfs send, hoặc restic/borg
3Off-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ủ

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

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 · 中文

📤 공유