Immich บน Proxmox ด้วย ZFS Mirror: การติดตั้งและการสำรองข้อมูล 3-2-1
เผยแพร่ 2026-10-27
Immich คือคลังภาพและวิดีโอที่โฮสต์เอง พร้อมระบบสำรองข้อมูลจากโทรศัพท์ คู่มือนี้แสดงการตั้งค่าที่ทนต่อความเสียหายของดิสก์ คือรัน Immich ใน VM บน Proxmox เก็บภาพบน ZFS mirror และเพิ่มการสำรองข้อมูลแบบ 3-2-1 จริงจังซ้อนอีกชั้น โดยสมมติว่าคุณติดตั้ง Proxmox แล้ว และมีดิสก์ขนาดเท่ากันสองลูกสำหรับทำ mirror
ฮาร์ดแวร์: ขั้นต่ำตามเอกสารทางการ
| รายการ | ขั้นต่ำ | แนะนำ |
|---|---|---|
| RAM | 6 GB | 8 GB |
| CPU | 2 คอร์ | 4 คอร์ |
| พื้นที่เก็บฐานข้อมูล | SSD ในเครื่อง ห้ามใช้เน็ตเวิร์กแชร์ | |
ที่มา: Immich requirements (หน้าอัปเดตเมื่อ 2026-10-08 ตรวจสอบเมื่อ 2026-10-19) หน้าเดียวกันระบุว่าภาพขนาดย่อและวิดีโอที่แปลงรหัสจะเพิ่มขนาดคลังราว 10–20% และหากมี RAM เพียง 4 GB ควรปิดการเรียนรู้ของเครื่อง (machine learning)
ขั้นตอนที่ 1 — สร้าง ZFS mirror
- ใน Proxmox: Datacenter → node → Disks → ZFS → Create: ZFS เลือกดิสก์ทั้งสองลูก และตั้ง RAID level เป็น Mirror
- mirror สองดิสก์ให้ความจุเท่ากับดิสก์หนึ่งลูก และดิสก์ลูกใดลูกหนึ่งเสียได้โดยข้อมูลไม่สูญหาย
- เพิ่มเป็นที่เก็บข้อมูลสำหรับดิสก์ของ VM หรือสร้างเดตาเซ็ต (เช่น
tank/photos) เพื่อส่งเข้าไปใน VM
ขั้นตอนที่ 2 — สร้าง VM
- สร้าง VM แบบ Debian หรือ Ubuntu ตามขั้นต่ำข้างต้นเป็นอย่างน้อย วางดิสก์ระบบของ VM บน SSD เพื่อให้ฐานข้อมูล Postgres อยู่บน SSD ในเครื่อง
- ตั้งชนิด CPU เป็น
host(หรือชนิดอื่นที่รองรับ x86-64-v2) เพราะคอนเทนเนอร์ machine-learning ของ Immich ต้องการ x86-64-v2 บน amd64 - เพิ่มดิสก์เสมือนลูกที่สองบน ZFS mirror สำหรับเก็บภาพ แล้วเมานต์ เช่นที่
/srv/photos
Immich ระบุว่า Docker Compose ใน VM เป็นวิธีที่รองรับ ส่วนการรันใน LXC container ไม่แนะนำ
ขั้นตอนที่ 3 — ติดตั้ง Immich
- ติดตั้ง Docker และปลั๊กอิน Compose
- ดาวน์โหลด
docker-compose.ymlและexample.envทางการจากเอกสารการติดตั้งของ Immich - ใน
.envตั้งUPLOAD_LOCATION=/srv/photos/libraryและให้DB_DATA_LOCATIONอยู่บนดิสก์ระบบที่เป็น SSD - รัน
docker compose up -dเปิดพอร์ต 2283 สร้างบัญชีผู้ดูแล ติดตั้งแอปบนโทรศัพท์ แล้วเปิดการสำรองข้อมูล
ขั้นตอนที่ 4 — การสำรองข้อมูลแบบ 3-2-1
mirror ป้องกันดิสก์เสีย แต่ไม่ป้องกันการลบ แรนซัมแวร์ หรือไฟไหม้บ้าน เอกสารของ Immich เองแนะนำกลยุทธ์ 3-2-1 คือ 3 สำเนา บนสื่อ 2 ประเภท และ 1 สำเนาอยู่นอกสถานที่
| สำเนา | ที่เก็บ | วิธีการ |
|---|---|---|
| 1 | ZFS mirror (ที่ใช้งานอยู่) | Immich เอง |
| 2 | ดิสก์ USB ภายนอกหรือเครื่องที่สอง | ZFS snapshots + zfs send หรือ restic/borg |
| 3 | นอกสถานที่ (คลาวด์บักเก็ตหรือเซิร์ฟเวอร์ของเพื่อน) | restic/borg พร้อมเข้ารหัส |
สำรองให้ครบทั้งสองส่วน Immich สร้างไฟล์ดัมพ์ฐานข้อมูลอัตโนมัติใน UPLOAD_LOCATION/backups (ค่าเริ่มต้น: ทุกวันเวลา 2:00 น. เก็บล่าสุด 14 ไฟล์) ดัมพ์เหล่านั้นมีเฉพาะเมทาดาทา ไม่มีภาพ ดังนั้นงานสำรองของคุณต้องคัดลอก UPLOAD_LOCATION ทั้งหมด ซึ่งจะรวมดัมพ์เหล่านั้นไว้ด้วย ที่มา: Immich backup and restore ตรวจสอบเมื่อ 2026-10-19
ลองกู้คืนสักครั้ง: สร้าง VM ชั่วคราว กู้ไฟล์และดัมพ์ แล้วลองล็อกอิน
อะไรอีกที่วางบนเซิร์ฟเวอร์เดียวกันได้
- บริการซิงก์ไฟล์ (เช่น Syncthing) บน mirror เดียวกัน
- เซิร์ฟเวอร์ตัวจัดการรหัสผ่าน สำรองด้วยงานนอกสถานที่เดียวกัน
- การมอนิเตอร์ (SMART ของดิสก์และการแจ้งเตือน ZFS scrub) ซึ่งเป็นประกันที่ถูกที่สุดในรายการนี้
คำถามที่พบบ่อย
- mirror คือการสำรองข้อมูลของฉันหรือไม่
- ไม่ใช่ มันคือความซ้ำซ้อน การลบภาพหนึ่งภาพจะลบบนดิสก์ทั้งสองลูกทันที
- วางฐานข้อมูลบน ZFS mirror ผ่าน NFS ได้หรือไม่
- Immich ระบุว่าฐานข้อมูลไม่ควรอยู่บนเน็ตเวิร์กแชร์เด็ดขาด ให้เก็บไว้บน SSD ในเครื่อง
- ZFS เองต้องใช้ RAM เท่าไร
- ZFS ใช้ RAM ที่ว่างเป็นแคช (ARC) และคืนให้เมื่อระบบต้องการ ให้จัดสรร RAM ของ VM ก่อน แล้วปล่อยส่วนที่เหลือให้โฮสต์ใช้
แหล่งที่มา
- ข้อกำหนดของ Immich — ตรวจสอบเมื่อ 2026-10-19
- การสำรองและกู้คืนข้อมูลของ Immich — ตรวจสอบเมื่อ 2026-10-19
ที่เกี่ยวข้อง (ภาษาเกาหลี): รวมความรู้การพัฒนา (개발 지식 모음)
🌐 English · Español · Bahasa Indonesia · 日本語 · ไทย · Tiếng Việt · 中文