Skip to content

precious — the NVMe copy of the irreplaceable data

/home/angel/precious/: Immich originals + upload + profile + all DB dumps, and EmbeddedEra in full. 21,166 files, 92 GB (09-08). On the root NVMe, so no combination of array-disk failures reaches it. It does not survive the NVMe itself, fire, or theft — that is item 05.

Why this shape

Parity protects against one disk; rsnapshot lives on disk1 (an array disk). Neither survives a two-disk loss or a cage/HBA fault. A copy on the only non-array device closes that gap for the two datasets that cannot be re-downloaded.

Shape

  • Refreshed by /usr/local/bin/precious-sync.sh (angel's crontab, 20 2 * * *; first Sunday of the month 05:00 --verify-full). Log /var/log/precious-sync.log. Own Kuma monitor via PRECIOUS_KUMA_PUSH_URL in /etc/rescue-kit.conf.
  • Guards (precious-sync.sh:98-111): /mnt/storage must be a mountpoint; source trees must exist; source and destination must be different block devices; refuses to run as root.
  • Never --delete: the copy only grows. A deletion is the accident it exists to survive. Prune by hand with --report-extra.
  • Motion-photo trap: 13 Samsung assets have their only original under encoded-video/. The script re-derives that list from the Immich DB every run rather than hard-coding it (precious-sync.sh:14-16).
  • precious/RESTORE.txt — the restore procedure. Two gotchas recorded there: the Postgres superuser is immich, not postgres; the cluster dump's role statements error harmlessly on a fresh instance.
  • Verified 09-02 four ways: rsync exit 0; full sha256 manifests both sides (0 mismatches); 40-file random sample; every one of 8,039 DB rows re-resolved against the copy.

Connected to

  • owns: nothing; it is a copy
  • owned-by: datasets
  • joins: history-repo (copy 3 — the versioned one), containers/immich (reads the DB for the motion-photo list; needs immich-postgres up), automation/alerting
  • looks-like-but-is-not: the rescue USB (configs, not data); Storage-snapshots (on an array disk).

If you change this

  • Hits: free space on / (248 GB free; the copy is 92 GB and only grows) · the monthly --verify-full window (reads every byte) · ~/.claude/projects and anything else on the NVMe competes for the same 468 GB.
  • Does not hit: parity, rsnapshot, the array.

Surfaces

Surface Role
angel crontab 02:20 nightly; 05:00 first-Sunday full verify
Uptime Kuma heartbeat "Precious"

See

  • Source: /usr/local/bin/precious-sync.sh · /home/angel/precious/RESTORE.txt · ~/rescue-kit/precious-sync.sh (the source copy)