diff --git a/homelab-overview.md b/homelab-overview.md index 37257b6..ed6e3d7 100644 --- a/homelab-overview.md +++ b/homelab-overview.md @@ -218,12 +218,26 @@ Prometheus scrapes **Node Exporter** (port 9100) from every host: siklos, proxmo ## Backup Strategy -| Source | Tool | Destination | -|---|---|---| -| All VMs | Proxmox Backup Server (PBS) | Local PBS at 192.168.88.60 | -| Nextcloud data | Kopia (Docker on siklos) | TrueNAS NFS | -| Immich photos | Kopia (Docker on VM 113) | Backblaze B2 | -| Docker configs | Gitea repo | `jgitta/homelab-configs` | +| Source | Tool | Schedule | Destination | +|---|---|---|---| +| All VMs/CTs (except 107) | PBS job `pbs-backup` | Mon/Wed/Fri 21:00 | PBS datastore `pbs-store` (TrueNAS NFS) | +| VMs 113 (photos) + 114 (ocis) | PBS job `B2 offsite` | Sun 03:00 | PBS datastore `b2-offsite` → Backblaze B2 | +| PBS configuration | Cron on PBS VM | Nightly 02:30 | TrueNAS NFS (`pbs-config-backup/`) | +| Nextcloud data | Kopia (Docker on siklos) | — | TrueNAS NFS | +| Docker configs | Gitea repo | — | `jgitta/homelab-configs` | + +### PBS (VM 107, 192.168.88.60) — verified 2026-07-14 + +PBS has two datastores: + +- **`pbs-store`** — local path `/mnt/pbs-dataset/pbs-store`, which is an NFS mount from TrueNAS (`192.168.88.24:/mnt/pool1/pbs-dataset`). Receives the Mon/Wed/Fri full-fleet backups. Retention: keep-daily=7, keep-weekly=4, keep-monthly=3. +- **`b2-offsite`** — S3 backend pointing at Backblaze bucket `jg-kopia` (endpoint `s3.us-east-005.backblazeb2.com`), local cache at `/pbs-data`. Receives the Sunday 3 AM backups of VMs 113 and 114 only. This replaced the old Kopia → B2 workflow. Retention: keep-daily=7, keep-weekly=2. + +**Finding data in the Backblaze web UI:** browse `jg-kopia` bucket → `b2-offsite/` folder → `.chunks/`. PBS deduplicates, so weekly runs upload only new/changed chunks — sparse upload activity between Sundays is normal. Verify connectivity from the pbs host with: `proxmox-backup-manager s3 check backblaze-b2 jg-kopia` + +**PBS config backup (added 2026-07-14):** VM 107 is deliberately excluded from VM backups (circular). Instead, a nightly cron (`/etc/cron.d/pbs-config-backup`, 2:30 AM) runs `/usr/local/bin/backup-pbs-config.sh`, which tars `/etc/proxmox-backup/` to `/mnt/pbs-dataset/pbs-config-backup/` on TrueNAS (mode 600 — contains B2 credentials; 30-day rotation). **Disaster recovery:** install fresh PBS, extract the newest tarball into `/etc/proxmox-backup/`, and it reconnects to both datastores with all settings intact. + +**Proxmox backup jobs** (`/etc/pve/jobs.cfg` on 192.168.88.25): `pbs-backup` covers all guests with `all 1` + `exclude 107`, so new VMs are included automatically. A third job (Proxmox-TrueNAS-NFS, vzdump to NFS) is disabled. ---