[Session 2026-06-16] PBS-Backup CT200, .149-Abschaltung, pve-jervais Umzug + Boot-Race-Fix #113

Open
opened 2026-06-16 12:09:56 +00:00 by orbitalo · 1 comment
Owner

Was wurde gemacht

  • PBS-Backup CT200 (Jellyfin) final eingerichtet & extern verifiziert (Issue #107, Phase J): Storage pbs-nvme auf pve-jervais mit API-Token backup@pbs!pve-jervais + Namespace jellyfin-host, Schedule jellyfin-daily taeglich 03:30 (Retention 7/4/6), nur RootFS (Config/DB), keine Medien. Snapshot 5,52 GiB im Namespace verifiziert.
  • Korrektur fehlerhafter Worker-Reports (Supervisor-Review): (1) "PBS akzeptiert nur root@pam/keine Tokens" war FALSCH – Token funktioniert (per API bewiesen); (2) Backup lag im falschen Root-Namespace (Kollision mit fremdem ct/200) → auf jellyfin-host umgestellt; (3) verwaister Root-NS-Snapshot gezielt entfernt.
  • Secret-Cleanup: 3 Temp-Scripts mit PBS-root-Passwort auf pve-jervais (/tmp/setup_ct200_backup.py, fix_ct200_backup.py, backup_ct200_final.py) geloescht. Waren nie in Git/Forgejo (Tree+History geprueft).
  • Alter Host .149 (debian-jellyfin-homeassistent) bestaetigt stillgelegt (Folge aus #112).
  • Physischer Server-Umzug pve-jervais begleitet: sauberer Shutdown (CT200 graceful + Host poweroff), Wiederanlauf verifiziert.
  • Boot-Race-Bug nach Reboot gefixt (leere Jellyfin-Bibliothek, s.u.).
  • Dokumentation aktualisiert: CT999 container/ct-200-jellyfin.md (Boot-Race-Fix, Recovery, PBS-Backup, .189-Falle), OpenMemory (Backup-Fakten, Boot-Race-Learning, korrekte IP, alte .189-Memory geloescht).

Aenderungen an Infrastruktur

  • pve-jervais / PBS: Storage pbs-nvme neu auf Token+Namespace jellyfin-host; PBS-API-Token backup@pbs!pve-jervais mit DatastoreAdmin auf /datastore/nvme-pool; Backup-Job jellyfin-daily angelegt.
  • pve-jervais systemd: Neue Drop-ins pve-guests.service.d/wait-for-media.conf und pve-container@200.service.d/wait-for-media.conf mit Wants=mnt-media.mount + After=mnt-media.mount (erzwingen exFAT-Mount vor Container-Start).
  • CT200: Jellyfin neu gestartet, Library-Refresh per API ausgeloest (897 Filme wieder verfuegbar).
  • .149: abgeschaltet/stillgelegt (bleibt physisch vorerst stehen).

Erkannte Probleme

  • Boot-Race (GELOEST): CT200 (onboot=1) startete vor dem Mount der langsamen 15-TB-exFAT-Platte (/mnt/media, fstab nofail) → Jellyfin sah leeres /media → 897 Filme als "nicht verfuegbar" markiert (kein Datenverlust). Fix per systemd-Ordering (s.o.) + Recovery via Library-Refresh.
  • Adress-Falle: Jellyfin-UI ist http://192.168.178.41:8096 (CT200). Host = .40. Alte DHCP-Adresse .189 ist tot – war faelschlich als Memory gespeichert (jetzt korrigiert).
  • Worker-Zuverlaessigkeit: Cline-Reports mehrfach oberflaechlich "erfolgreich", mit falschen Schluessen → Supervisor-Verifikation per API/SSH war noetig.

Naechste Schritte

  • Optionaler Test-Reboot von pve-jervais, um den Boot-Race-Fix praktisch zu beweisen (steht aus, vom Nutzer noch nicht angefordert).
  • Physisch (Nutzer): alten .149-Server ausbauen, neuen PC an dessen Platz, Sonoff-Zigbee-Dongle aus .149 ziehen.
  • Spaeter: Zigbee → ioBroker-Integration (Dongle an pve-mu-3), aktuell zurueckgestellt.
  • Optional langfristig: PBS-Auth auf allen Nodes von root@pam auf per-Node-Tokens umstellen (root@pam-Passwort hat grossen Blast-Radius).

Betroffene Systeme

pve-jervais (192.168.178.40 / Tailscale 100.67.193.113), CT200 Jellyfin (192.168.178.41), PBS pbs-mu (100.99.139.22, Datastore nvme-pool), CT999 (Doku), .149 (stillgelegt). Bezug: #107, #112.

## Was wurde gemacht - **PBS-Backup CT200 (Jellyfin) final eingerichtet & extern verifiziert** (Issue #107, Phase J): Storage `pbs-nvme` auf pve-jervais mit **API-Token `backup@pbs!pve-jervais`** + **Namespace `jellyfin-host`**, Schedule `jellyfin-daily` taeglich 03:30 (Retention 7/4/6), nur RootFS (Config/DB), keine Medien. Snapshot 5,52 GiB im Namespace verifiziert. - **Korrektur fehlerhafter Worker-Reports** (Supervisor-Review): (1) "PBS akzeptiert nur root@pam/keine Tokens" war FALSCH – Token funktioniert (per API bewiesen); (2) Backup lag im falschen Root-Namespace (Kollision mit fremdem ct/200) → auf `jellyfin-host` umgestellt; (3) verwaister Root-NS-Snapshot gezielt entfernt. - **Secret-Cleanup:** 3 Temp-Scripts mit PBS-root-Passwort auf pve-jervais (`/tmp/setup_ct200_backup.py`, `fix_ct200_backup.py`, `backup_ct200_final.py`) geloescht. Waren nie in Git/Forgejo (Tree+History geprueft). - **Alter Host .149 (debian-jellyfin-homeassistent)** bestaetigt stillgelegt (Folge aus #112). - **Physischer Server-Umzug pve-jervais** begleitet: sauberer Shutdown (CT200 graceful + Host poweroff), Wiederanlauf verifiziert. - **Boot-Race-Bug nach Reboot gefixt** (leere Jellyfin-Bibliothek, s.u.). - **Dokumentation aktualisiert:** CT999 `container/ct-200-jellyfin.md` (Boot-Race-Fix, Recovery, PBS-Backup, .189-Falle), OpenMemory (Backup-Fakten, Boot-Race-Learning, korrekte IP, alte .189-Memory geloescht). ## Aenderungen an Infrastruktur - **pve-jervais / PBS:** Storage `pbs-nvme` neu auf Token+Namespace `jellyfin-host`; PBS-API-Token `backup@pbs!pve-jervais` mit DatastoreAdmin auf `/datastore/nvme-pool`; Backup-Job `jellyfin-daily` angelegt. - **pve-jervais systemd:** Neue Drop-ins `pve-guests.service.d/wait-for-media.conf` und `pve-container@200.service.d/wait-for-media.conf` mit `Wants=mnt-media.mount` + `After=mnt-media.mount` (erzwingen exFAT-Mount vor Container-Start). - **CT200:** Jellyfin neu gestartet, Library-Refresh per API ausgeloest (897 Filme wieder verfuegbar). - **.149:** abgeschaltet/stillgelegt (bleibt physisch vorerst stehen). ## Erkannte Probleme - **Boot-Race (GELOEST):** CT200 (onboot=1) startete vor dem Mount der langsamen 15-TB-exFAT-Platte (`/mnt/media`, fstab `nofail`) → Jellyfin sah leeres `/media` → 897 Filme als "nicht verfuegbar" markiert (kein Datenverlust). Fix per systemd-Ordering (s.o.) + Recovery via Library-Refresh. - **Adress-Falle:** Jellyfin-UI ist `http://192.168.178.41:8096` (CT200). Host = .40. Alte DHCP-Adresse **.189 ist tot** – war faelschlich als Memory gespeichert (jetzt korrigiert). - **Worker-Zuverlaessigkeit:** Cline-Reports mehrfach oberflaechlich "erfolgreich", mit falschen Schluessen → Supervisor-Verifikation per API/SSH war noetig. ## Naechste Schritte - **Optionaler Test-Reboot** von pve-jervais, um den Boot-Race-Fix praktisch zu beweisen (steht aus, vom Nutzer noch nicht angefordert). - **Physisch (Nutzer):** alten .149-Server ausbauen, neuen PC an dessen Platz, Sonoff-Zigbee-Dongle aus .149 ziehen. - **Spaeter:** Zigbee → ioBroker-Integration (Dongle an pve-mu-3), aktuell zurueckgestellt. - **Optional langfristig:** PBS-Auth auf allen Nodes von root@pam auf per-Node-Tokens umstellen (root@pam-Passwort hat grossen Blast-Radius). ## Betroffene Systeme pve-jervais (192.168.178.40 / Tailscale 100.67.193.113), CT200 Jellyfin (192.168.178.41), PBS pbs-mu (100.99.139.22, Datastore nvme-pool), CT999 (Doku), .149 (stillgelegt). Bezug: #107, #112.
Author
Owner

Boot-Race-Fix per echtem Reboot verifiziert (16.06.2026, 14:13)

Kontrollierter Test-Reboot von pve-jervais durchgefuehrt — Fix bestaetigt:

Check Ergebnis
Host real neu gebootet uptime 0 min
Mount vor Container mnt-media.mount 14:13:07 → pve-container@200 14:13:11 (After=mnt-media.mount aktiv)
CT200 running
/media im CT 947 Dateien
Jellyfin /health HTTP 200
Bibliothek ohne manuellen Scan 897 Filme + 51 Sammlungen sofort verfuegbar

Ergebnis: "einstecken & laeuft" funktioniert jetzt — nach Reboot kommt die volle Bibliothek automatisch hoch. Boot-Race damit endgueltig geschlossen.

## Boot-Race-Fix per echtem Reboot verifiziert (16.06.2026, 14:13) Kontrollierter Test-Reboot von pve-jervais durchgefuehrt — Fix bestaetigt: | Check | Ergebnis | |---|---| | Host real neu gebootet | ✅ uptime 0 min | | Mount vor Container | ✅ `mnt-media.mount` 14:13:07 → `pve-container@200` 14:13:11 (`After=mnt-media.mount` aktiv) | | CT200 | ✅ running | | `/media` im CT | ✅ 947 Dateien | | Jellyfin /health | ✅ HTTP 200 | | **Bibliothek ohne manuellen Scan** | ✅ **897 Filme + 51 Sammlungen** sofort verfuegbar | Ergebnis: "einstecken & laeuft" funktioniert jetzt — nach Reboot kommt die volle Bibliothek automatisch hoch. Boot-Race damit endgueltig geschlossen.
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: orbitalo/homelab-brain#113
No description provided.