ccnet-WI: add a borg backup target on the QNAP alongside the PBS replica #24

Closed
opened 2026-07-14 07:45:36 +00:00 by claude-bot · 1 comment
Collaborator

docs/ccnet-wi-site.md documents ccnet-wi-pbs (CT101) as a pull-based offsite replica of the main site's PBS (aegis-unraid) onto ccnet-wi-qnap's RAID6 array — confirmed working 2026-07-13. There's no equivalent borg-based replica at this site, though: ccnet-borg-backup/ pushes CephFS archives (client swarm-cephfs) only to Unraid's borgserver, with no offsite copy of that data anywhere.

Scope: stand up a borg repo target on ccnet-wi-qnap (or a small CT alongside ccnet-wi-pbs, mirroring the QNAP-as-NFS-target pattern already in place) so CephFS backup data lands here too, alongside the PBS replica — giving this site full offsite coverage for both backup mechanisms the main site uses, not just one. Could be a direct borg push from swarm-mgr-01 (a second client name, e.g. swarm-cephfs-wi) or a periodic sync of the existing Unraid borgserver repo — needs scoping.

Related: ccnet-borg-backup/, docs/ccnet-wi-site.md's ccnet-wi-pbs section.

docs/ccnet-wi-site.md documents ccnet-wi-pbs (CT101) as a pull-based offsite replica of the main site's PBS (aegis-unraid) onto ccnet-wi-qnap's RAID6 array — confirmed working 2026-07-13. There's no equivalent borg-based replica at this site, though: ccnet-borg-backup/ pushes CephFS archives (client swarm-cephfs) only to Unraid's borgserver, with no offsite copy of that data anywhere. Scope: stand up a borg repo target on ccnet-wi-qnap (or a small CT alongside ccnet-wi-pbs, mirroring the QNAP-as-NFS-target pattern already in place) so CephFS backup data lands here too, alongside the PBS replica — giving this site full offsite coverage for both backup mechanisms the main site uses, not just one. Could be a direct borg push from swarm-mgr-01 (a second client name, e.g. swarm-cephfs-wi) or a periodic sync of the existing Unraid borgserver repo — needs scoping. Related: ccnet-borg-backup/, docs/ccnet-wi-site.md's ccnet-wi-pbs section.
Author
Collaborator

Done. WI-site offsite copy of the swarm-cephfs borg backup is live and verified.

Final design (see ccnet-borg-backup/README.md and docs/ccnet-wi-site.md's ccnet-wi-borgbackup section for full detail): a real second independent borg client (swarm-cephfs-wi), not a mirror — swarm-mgr-01 pushes directly to a dedicated borg serve target on a new unprivileged LXC, ccnet-wi-borgbackup (CT102, 10.20.10.253) on ccnet-wi-trixie, landing on the same QNAP array ccnet-wi-pbs already uses.

Delivered:

  • New CT + QNAP NFS export + one scoped firewall rule (swarm-mgr-01 → CT102, TCP 22 only)
  • Ansible-managed client on swarm-mgr-01, fully additive to the existing Unraid client (zero lines of the working swarm-cephfs config touched)
  • Initial 417.62 GB seed pushed and verified (8h1min, 327,805 files, clean exit)
  • Nightly incremental schedule live (04:30 UTC, offset from the primary's 03:15)
  • Restore drill passed: FUSE-mount + real borg extract, checksums verified against live data
  • Weekly borg check --repository-only now deployed for both destinations (added the same check to the original Unraid client too, once it turned up that one had never had scheduled verification at all) — both proven clean via a real manual run

Real gotchas hit and documented for next time: unprivileged Proxmox LXCs can't mount NFS at all (host-mount + bind-mount-point workaround), OPNsense's legacy write_config() silently no-ops on Model-layer changes, borg's ssh:// absolute-vs-relative path syntax.

Follow-up filed separately, not blocking this: #42 (WireGuard tunnel throughput tuning, p:low) and #41 (OPNsense API key for the WI firewall, p:low).

Done. WI-site offsite copy of the `swarm-cephfs` borg backup is live and verified. **Final design** (see `ccnet-borg-backup/README.md` and `docs/ccnet-wi-site.md`'s `ccnet-wi-borgbackup` section for full detail): a real second independent borg client (`swarm-cephfs-wi`), not a mirror — swarm-mgr-01 pushes directly to a dedicated `borg serve` target on a new unprivileged LXC, `ccnet-wi-borgbackup` (CT102, `10.20.10.253`) on `ccnet-wi-trixie`, landing on the same QNAP array `ccnet-wi-pbs` already uses. **Delivered:** - New CT + QNAP NFS export + one scoped firewall rule (swarm-mgr-01 → CT102, TCP 22 only) - Ansible-managed client on swarm-mgr-01, fully additive to the existing Unraid client (zero lines of the working `swarm-cephfs` config touched) - Initial 417.62 GB seed pushed and verified (8h1min, 327,805 files, clean exit) - Nightly incremental schedule live (04:30 UTC, offset from the primary's 03:15) - Restore drill passed: FUSE-mount + real `borg extract`, checksums verified against live data - Weekly `borg check --repository-only` now deployed **for both destinations** (added the same check to the original Unraid client too, once it turned up that one had never had scheduled verification at all) — both proven clean via a real manual run **Real gotchas hit and documented** for next time: unprivileged Proxmox LXCs can't mount NFS at all (host-mount + bind-mount-point workaround), OPNsense's legacy `write_config()` silently no-ops on Model-layer changes, borg's `ssh://` absolute-vs-relative path syntax. **Follow-up filed separately, not blocking this**: #42 (WireGuard tunnel throughput tuning, p:low) and #41 (OPNsense API key for the WI firewall, p:low).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
copper/ccnet-prod-devops#24
No description provided.