Encoding: Betreiberentscheidungen zu Encoder, Zeitfenster, Abbruch und Ein-/Ausgabe dokumentiert; HandBrake-Image gepinnt.

HandBrake linuxserver/handbrake:1.11.2-ls48 mit amd64-Manifest-Digest
sha256:fda92bd1...48a3c7 gepinnt und per Pull im rootless Store von
gn-encoding verifiziert. Zeitfenster 00:00-06:00 Uhr Europe/Berlin mit
geordnetem Stopp und naechtlichem Retry; NFS-Mounts fuer Ein- und Ausgabe.
GNENC-000/001 aktualisiert.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
2026-10-19 15:06:57 +02:00
parent ba7d829410
commit aa5b37a191
2 changed files with 30 additions and 17 deletions
@@ -25,11 +25,16 @@
- Das Encoding-Ansible-Projekt unter `llm-server/encoding/ansible/` verwaltet
und verifiziert den Encoding-Grundzustand (Konto, Pfade, CPU-Isolation,
rootless Store); Check-Mode und Idempotenzlauf meldeten jeweils `changed=0`.
- Es sind noch kein Encoding-Image, kein Container, keine Quadlet-Unit und kein
Timer eingerichtet.
- Das Image `linuxserver/handbrake:1.11.2-ls48` ist mit dem amd64-Manifest-Digest
`sha256:fda92bd1b43a07a770b10ad793172b10451ba1690803112dbaf2b48a6148a3c7`
gepinnt und per Pull im rootless Store von `gn-encoding` verifiziert.
- Es sind noch kein Container, keine Quadlet-Unit und kein Timer eingerichtet.
## Nächste Festlegungen
Vor einer Encoding-Implementierung müssen insbesondere Encoder und
Container-Image, Ein- und Ausgabeverfahren, genaue Zeitfenster, CPU-/I/O-Grenzen,
Abbruchverhalten am Ende des Zeitfensters und Aufbewahrung festgelegt werden.
Am 19.10.2026 festgelegt: HandBrake im Image `linuxserver/handbrake:1.11.2-ls48`
(amd64-Manifest-Digest gepinnt), nächtliches Zeitfenster 00:00–06:00 Uhr
Europe/Berlin mit geordnetem Stopp und nächtlichem Retry sowie NFS-Mounts für
Ein- und Ausgabe. Noch offen: Codecs und Qualitätsprofile, NFS-Server- und
Exportdetails, Queue- und Fehlerverhalten, Aufbewahrung, Benachrichtigung sowie
CPU-/I/O-Grenzen nach einem Lasttest unter Inferenzlast.
@@ -27,8 +27,9 @@ unabhängig konkurrierende Sollzustände auf denselben Host anwenden.
| Containertrennung | eigener rootless Podman-Store und eigener rootverwalteter Quadlet-Pfad | eingerichtet; Grundzustand per Ansible verwaltet und verifiziert; noch keine Workload definiert |
| Rechenressource | Encoding ist nach Betreiberfestlegung rein CPU-basiert und erhält keinen GPU-Zugriff | Planungsentscheidung; reale Last noch nicht gemessen |
| Parallelität | darf parallel zu AI Production oder AI Testing laufen | Planungsentscheidung |
| Zeitsteuerung | automatische Ausführung ausschließlich außerhalb der Stoßzeiten, zunächst nachts | Richtung festgelegt; konkrete Uhrzeiten fehlen |
| Anwendungen | konkrete Encoder, Images, Profile und Queue sind noch nicht gewählt | offen |
| Zeitsteuerung | nächtlich 00:00–06:00 Uhr Europe/Berlin; am Fensterende geordneter Stopp, unfertige Jobs starten nächtlich erneut | Betreiberentscheidung 19.10.2026 |
| Anwendung | HandBrake im Image `linuxserver/handbrake:1.11.2-ls48` mit gepinntem amd64-Manifest-Digest `sha256:fda92bd1b43a07a770b10ad793172b10451ba1690803112dbaf2b48a6148a3c7` | Betreiberentscheidung 19.10.2026; Digest aufgelöst und per Pull im gn-encoding-Store bestätigt |
| Ein-/Ausgabe | NFS-Mounts auf `/var/lib/ghostnet-encoding/input` und `/var/lib/ghostnet-encoding/output` | Betreiberentscheidung 19.10.2026; Server- und Exportdetails offen |
## 3. Zielbild
@@ -145,19 +146,26 @@ CPU-Isolation (keine GPU-Gruppenmitgliedschaft, kein Lesezugriff auf `/dev/kfd`
oder DRM-Render-Nodes). Solange die offenen Entscheidungen in Abschnitt 7 nicht
getroffen sind, stellt die Rolle zusätzlich sicher, dass weder Quadlet-Dateien
noch Container für `gn-encoding` existieren. Check-Mode und zwei
aufeinanderfolgende Läufe meldeten jeweils `ok=30 changed=0 failed=0`.
aufeinanderfolgende Läufe meldeten jeweils `ok=30 changed=0 failed=0`. Das
gepinnte HandBrake-Image `linuxserver/handbrake:1.11.2-ls48`
(`sha256:fda92bd1…48a3c7`) wurde anschließend in den rootless Store von
`gn-encoding` gezogen; der Pull bestätigte den Manifest-Digest.
## 7. Offene Entscheidungen
1. Welcher Encoder und welches fest versionierte Container-Image werden genutzt?
2. Welche Codecs, Qualitätsprofile und Hardwarekompatibilitäten sind erforderlich?
3. Woher kommen Eingabedateien, und wie werden fertige Dateien abgeholt?
4. Welches konkrete nächtliche Zeitfenster und welche Zeitzone gelten?
5. Darf ein laufender Job das Zeitfenster überschreiten oder wird er gestoppt?
6. Welche CPU-, Speicher- und I/O-Grenzen schützen die KI-Dienste?
7. Wie werden Warteschlange, Wiederholung, Teilresultate und Fehler behandelt?
8. Welche Aufbewahrungs-, Backup- und Löschregeln gelten für Video- und
Am 19.10.2026 wurden Encoder und Image (HandBrake, gepinnter Digest), das
nächtliche Zeitfenster (00:00–06:00 Uhr Europe/Berlin), das Abbruchverhalten am
Fensterende (geordneter Stopp, nächtlicher Retry) und das Ein-/Ausgabeverfahren
(NFS-Mounts) festgelegt. Offen bleiben:
1. Welche Codecs, Qualitätsprofile und Hardwarekompatibilitäten sind erforderlich?
2. Welche NFS-Server-Adresse, Export-Pfade und Mount-Optionen gelten für Ein- und Ausgabe?
3. Wie werden Warteschlange, Wiederholung, Teilresultate und Fehler behandelt?
4. Welche Aufbewahrungs-, Backup- und Löschregeln gelten für Video- und
Arbeitsdateien?
9. Welche Statusanzeige oder Benachrichtigung benötigen Nutzer?
5. Welche Statusanzeige oder Benachrichtigung benötigen Nutzer?
6. Welche CPU-, Speicher- und I/O-Grenzen schützen die KI-Dienste? Konkrete
Grenzwerte werden erst nach einem repräsentativen Encoding-Test unter
gleichzeitiger Inferenzlast festgelegt (Abschnitt 4).
Diese Werte werden nicht vorab in Playbooks angenommen.