Commit Graph
16 Commits
Author SHA1 Message Date
Julien LutranandClaude Fable 5 3de6d01b58 restic-backup: install upstream 0.19.1 (Debian's 0.18.0 misses needed fixes)
Live-tree mid-walk deletion crash (0.18.1 #5421), faster index
loading (0.19.0 #5713) and lower check memory (#5610), index repair
robustness, clean exit codes, and the empty-snapshot-on-inaccessible-
source fix (0.19.1 #5667). Upgrades via restic self-update.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 12:58:48 +02:00
Julien LutranandClaude Fable 5 de72120105 restic-backup: two-bucket layout (restic-data + restic-incus), two drivers
Giants merged into restic-data (single nightly invocation, one index
load, --group-by host retention); instances leg gets per-instance
mountpoints — restic picks parents by host+path, a shared mountpoint
would cause nightly full re-reads.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 12:50:07 +02:00
Julien LutranandClaude Fable 5 fb410259c5 restic-backup: restic becomes THE S3 tool — full rewrite
Four buckets (data/nextcloud/seafile/instances), instances leg via
incus file mount (no plugin architecture in restic/rustic — mount the
source instead of forking the tool), nightly driver spec, parallel
plakar comparison week, plakar retirement plan (kloset kept for
PlakarKorp/plakar#2338 debugging), interim ks2 replica push until the
FTTH/nuc leg.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 12:44:48 +02:00
Julien LutranandClaude Fable 5 3dec0c0a7b restic-backup: note rustic as format-compatible escape hatch (lock-free prune, lower RAM)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 12:17:23 +02:00
Julien LutranandClaude Fable 5 3381fe62bf restic-backup: prune tuning (--max-unused 10%, --max-repack-size 4G) with churn-based rationale
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 12:14:50 +02:00
Julien LutranandClaude Fable 5 93450a6fed restic-backup: appdata lives under nextcloud/data/, fix exclude paths
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 12:12:39 +02:00
Julien LutranandClaude Fable 5 d5dd6933af restic-backup: dry-run exclude verification, tmpfs-cache rejection, arc_min initramfs + headroom caveat
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 12:08:22 +02:00
Julien LutranandClaude Fable 5 dcc5c87cf1 Draft restic-backup: giant fs trees to S3, option analysis, migration gate
pack-size 64 MiB (object count vs prune amplification), split repos
for index RAM, cache on /backup, read-concurrency vs the seek-bound
walk, nextcloud preview excludes, ARC floor before seeding, weekly
rotating read-data-subset verification, and the analysis of a full
plakar->restic migration (conclusion: the split is a reasonable end
state, gated on PlakarKorp/plakar#2338).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 11:55:38 +02:00
Julien LutranandClaude Fable 5 1325f8b7a5 plakar-s3-data: growth issue filed upstream as PlakarKorp/plakar#2338
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 09:29:28 +02:00
Julien LutranandClaude Fable 5 7967b61920 plakar-incus-integration: analyze the giant-instance seek-bound wall
Per-file access to cold, tiny-file trees on HDD is ~275 IOPS whatever
the importer; only zfs send reads sequentially. Options recorded,
direction: per-file for the 16 small instances, zfs send for
nextcloud/seafile.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-24 22:23:09 +02:00
Julien LutranandClaude Fable 5 6c392356e8 plakar-s3-data: leg live; restore tests must target /backup, not tmpfs
- status: S3 kloset seeded, restore-tested, nightly cron installed
- restore-test paths moved off /tmp — it is a 16G tmpfs on ks4 and the
  10 GiB dumps restore sat in RAM squeezing the ZFS ARC
- seafile-fs note rewritten: cause unknown, local-kloset bisect next;
  nextcloud 3-4h/night cost tracked for the upstream growth issue

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-24 17:04:40 +02:00
Julien LutranandClaude Fable 5 ae82d9f682 plakar-s3-data: seed done except seafile-fs (EINTR livelock, excluded)
Seafile's block store wedged the fs walker for 12h in an lstat
preemption/EINTR livelock on the live pool; coverage moves to the
incus leg reading the sdb replica. Restore test + cron are the
remaining steps of the data leg.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-24 00:07:01 +02:00
Julien LutranandClaude Fable 5 4b73d77803 plakar-incus-integration: chain the S3 instance leg after incus-copy
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-23 09:29:01 +02:00
Julien LutranandClaude Fable 5 7da9c7cdae plakar-incus-integration: record Route B upstreaming decision
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-23 09:05:01 +02:00
Julien LutranandClaude Fable 5 79ad1b7179 Document the ks2 decommission plan and the new ks4 backup legs
- ks2/: decommission plan with release gates (rental ends Sep 30),
  nuc-seed and final-decommission runbooks
- ks4/local-backup-cron.md: leg-1 cron re-enabled, ks2 rsync stopgap,
  full-resend caveat when refreshes lapse past snapshots.expiry
- ks4/plakar-s3-data.md: plakar direct-to-S3 leg (auto-discovered DB
  dumps incl. grants/globals, fs sources, exclude list, restore test)
- ks4/plakar-incus-integration.md: design + scaffold status of the
  plakar incus importer
- README.md: index ks2/, update the ks4 durability bullet

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-23 08:56:28 +02:00
Julien LutranandClaude Fable 5 ee9eaee889 Initial import: nuc and ks4 infrastructure documentation
README with instance tables and nuc<->ks4 network flow chart;
per-container install/troubleshooting docs for nuc (jellyfin
server/client, transmission-bt, bare-metal reinstall) and the
ks4 two-leg backup scheme (incus-copy over wireguard).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-09 22:50:07 +02:00