Betrieb und Verifikation
Betreiben Sie die selbst gehostete VM-Konsole als privilegierte Komponente des KVM-Hosts. Container-Health allein reicht nicht: verifizieren Sie den Pfad Browser → API → libvirt → Gast.
Startup-Check
docker compose -f docker-compose.self-hosted.yml ps
docker compose -f docker-compose.self-hosted.yml logs --tail=200 backend frontend
virsh -c qemu:///system list --allDann bestätigen, dass UI lädt und Backend-Mode self-hosted mode meldet. Feature-Map prüfen statt anzunehmen, ein gehostetes Feature sei vorhanden.
End-to-End-Smoke-Test
Disposable, lizenzierte Test-ISO nutzen:
- ISO hochladen und angezeigte Größe und Name verifizieren;
- kleine VM mit expliziten CPU-, Memory-, Disk- und Netzwerk-Wahlen anlegen;
- starten und VNC-Konsole öffnen;
- Boot-Fortschritt sichtbar und Tastatureingabe erreicht Gast;
- VM stoppen;
- löschen und bestätigen, dass Domain, Overlays und temporäres NVRAM bereinigt werden;
- Backend neu starten und bestätigen, dass kein stale replacement launch blockiert.
Interpretieren Sie erfolgreichen Boot nicht als Hardware-Zertifizierung, Application-Korrektheit, Patch-Compliance oder Beweis, dass ein Installer abgeschlossen wurde.
Operative Signale
Mindestens überwachen:
- Frontend- und API-Erreichbarkeit;
- Backend-libvirt-Konnektivität;
- freier Host-Memory und Disk Space;
- fehlgeschlagene Uploads und Guest-Launch-Fehler;
- Gast-Domains, Overlays, NVRAM und Netzwerk-Inventar;
- persistent cleanup journal unter
TEST_STORAGE_DIR; - Container-Restart-Loops und Backend-Exceptions.
Die Evaluierungs-Compose-Datei konfiguriert kein externes Alerting.
Häufige Fehler
| Symptom | Prüfen |
|---|---|
/dev/kvm permission denied | Host-Gruppenmitgliedschaft und Device-Mapping; Device nicht world-writable machen |
| Keine libvirt-Verbindung | Daemon-Status, Socket-Pfad, KVM_URI und Container-Mount |
| Upload abgelehnt | Dateityp, freier Platz, Image-Directory-Berechtigungen und konfiguriertes Size-Limit |
| Gast kann Source-Image nicht öffnen | Host/Container absolute-path identity und read permission |
| VNC trennt | Gast-Zustand, libvirt graphics endpoint, Proxy-Pfad und Browser-Konsolen-Diagnostik |
| Replacement launch blockiert | Persisted cleanup journal, stale domain/overlay/NVRAM und Backend-Logs |
Shutdown
Disposable Gäste in der UI stoppen oder löschen, bevor der Stack stoppt. Dann:
docker compose -f docker-compose.self-hosted.yml downDanach libvirt-Domains, Images, Netzwerke und named volume inventarisieren. Container stoppen entfernt nicht automatisch jede host-owned Ressource.