🔍검색

首页 › 指南

在 Proxmox 上用 ZFS 镜像搭建 Immich:安装与 3-2-1 备份

发布日期 2026-10-27

Immich 是一个支持手机备份的自托管照片和视频库。本指南介绍一套能经受磁盘故障的方案:在 Proxmox 上的虚拟机里运行 Immich,照片存放在 ZFS 镜像上,再加上真正的 3-2-1 备份。这里假设你已经安装好 Proxmox,并有两块容量相同的磁盘用于做镜像。

硬件:官方最低要求

项目最低推荐
内存6 GB8 GB
CPU2 核4 核
数据库存储本地 SSD,绝不能放在网络共享上

来源:Immich 系统要求(页面更新于 2026-10-08,核对于 2026-10-19)。该页面还提到,缩略图和转码后的视频会使媒体库大小增加约 10–20%;如果内存只有 4 GB,应关闭机器学习功能。

第 1 步 — 创建 ZFS 镜像

  1. 在 Proxmox 中:Datacenter → node → Disks → ZFS → Create: ZFS,选中两块磁盘,RAID 级别选 Mirror。
  2. 两块磁盘的镜像只有一块磁盘的容量;任意一块磁盘损坏都不会丢失数据。
  3. 把它添加为虚拟机磁盘的存储,或者创建一个数据集(例如 tank/photos)挂载给虚拟机使用。

第 2 步 — 创建虚拟机

  1. 创建一台 Debian 或 Ubuntu 虚拟机,配置至少达到上面的最低要求。把虚拟机的系统盘放在 SSD 上,这样 Postgres 数据库就位于本地 SSD。
  2. 将 CPU 类型设为 host(或其他支持 x86-64-v2 的类型);在 amd64 上,Immich 的机器学习容器要求 x86-64-v2。
  3. 在 ZFS 镜像上添加第二块虚拟磁盘用于存放照片,并挂载,例如挂载到 /srv/photos。

Immich 的文档把虚拟机中的 Docker Compose 作为受支持的方式;在 LXC 容器中运行则被描述为不推荐。

第 3 步 — 安装 Immich

  1. 安装 Docker 和 Compose 插件。
  2. 从 Immich 安装文档下载官方的 docker-compose.yml 和 example.env。
  3. 在 .env 中设置 UPLOAD_LOCATION=/srv/photos/library,并让 DB_DATA_LOCATION 保留在 SSD 系统盘上。
  4. 运行 docker compose up -d,打开 2283 端口,创建管理员账户,安装手机应用并开启备份。

第 4 步 — 3-2-1 备份

镜像只能防范磁盘损坏,防不了误删、勒索软件或火灾。Immich 自己的文档推荐 3-2-1 策略:3 份副本,存放在 2 种不同介质上,其中 1 份放在异地。

副本位置方式
1ZFS 镜像(在线使用)Immich 本身
2外接 USB 磁盘或另一台机器ZFS 快照 + zfs send,或 restic/borg
3异地(云存储桶或朋友的服务器)带加密的 restic/borg

两部分都要备份。Immich 会在 UPLOAD_LOCATION/backups 中自动生成数据库转储(默认每天凌晨 2:00,保留最近 14 份)。这些转储只包含元数据——不含照片——所以你的备份任务必须复制整个 UPLOAD_LOCATION,其中就包含这些转储。来源:Immich 备份与恢复,核对于 2026-10-19。

请至少测试一次恢复:启动一台临时虚拟机,恢复文件和一份转储,然后登录。

同一台服务器上还能放什么

常见问题

镜像就是我的备份吗?
不是。它只是冗余。删除一张照片会立刻在两块磁盘上同时删除。
可以通过 NFS 把数据库放在 ZFS 镜像上吗?
Immich 表示数据库绝不能放在网络共享上。请把它放在本地 SSD。
ZFS 本身需要多少内存?
ZFS 会把空闲内存用作缓存(ARC),并在内存紧张时让出;先确定虚拟机的内存预算,剩下的再留给宿主机。

来源

相关(韩语): 开发知识汇总(개발 지식 모음)

🌐 English · Español · Bahasa Indonesia · 日本語 · ไทย · Tiếng Việt · 中文

📤 공유