docs: add post migration burn-in check

This commit is contained in:
2026-05-31 21:45:58 +02:00
parent 1d98945a67
commit c9c8f9e7ce
+122
View File
@@ -0,0 +1,122 @@
# Post-Migration Burn-in Check - 2026-05-31
Stand: 2026-05-31 21:45 MESZ
## Ergebnis
Der Nachlauf nach den Stateful-Migrationen ist gruen. Es gibt keine offenen Renovate-PRs, keine `unhealthy` Container und die aktuellen Dump-Artefakte wurden nach den Migrationen neu erzeugt und auf Lesbarkeit geprueft.
## Renovate
- Manueller Lauf: `2026-05-31T19-39-01Z`
- Ergebnis: `rc=0`
- Gitea: keine offenen PRs
- Renovate entfernte die verwaisten Branches:
- `renovate/major-major-updates`
- `renovate/postgres-18.x`
- `renovate/redis-8.x`
## Live Burn-in
- `docker ps --filter health=unhealthy`: keine Treffer
- Relevante Laufzeitstaende:
- `postgresql17`: `postgres:18.4`
- `mealie-postgres`: `postgres:18.4`
- `nextcloud-postgres`: `postgres:18.4`
- `immich_postgres`: `ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0`
- `Redis`, `nextcloud-redis`, `immich_redis`: `redis:8.8.0-alpine`
- `monitoring-grafana`: `grafana/grafana:13.0.1`
HTTP-Smoke vom Host:
| Dienst | Status |
|---|---:|
| `https://monitoring.kaleschke.info` | 302 |
| `https://immich.kaleschke.info` | 200 |
| `https://cloud.kaleschke.info` | 302 |
| `https://paperless.kaleschke.info` | 302 |
| `https://mealie.kaleschke.info` | 200 |
| `https://mail.kaleschke.info` | 302 |
Log-Nachlauf:
- `mail-archiver`: fruehere transienten `57P01`-Fehler stammen vom DB-Restart; spaeterer Sync meldet `New: 0, Failed: 0, Deleted: 0`.
- `monitoring-grafana`: nach Härtung keine neuen `level=error`, `permission denied`, `fatal` oder `panic` Treffer.
## Backup- und Dump-Frische
`ops/borg-ui/scripts/pre-backup-dumps.sh` wurde nach den Migrationen erneut ausgefuehrt. Dabei wurde ein Drift behoben: `grafana.sqlite` wird jetzt aus dem aktiven Docker-Volume `monitoring_grafana_data` gelesen, nicht mehr aus dem historischen Pfad `/mnt/user/appdata/grafana`.
Aktuelle relevante Dump-Zeiten:
| Artefakt | Zeit |
|---|---|
| `postgresql17-globals.sql` | 2026-05-31 21:41 |
| `mealie.dump` | 2026-05-31 21:42 |
| `nextcloud.dump` | 2026-05-31 21:42 |
| `immich.dump` | 2026-05-31 21:42 |
| `postgresql17-authelia.dump` | 2026-05-31 21:42 |
| `postgresql17-mailarchiver.dump` | 2026-05-31 21:42 |
| `postgresql17-paperless.dump` | 2026-05-31 21:42 |
| `grafana.sqlite` | 2026-05-31 21:42 |
| `komodo-mongo.archive.gz` | 2026-05-31 21:42 |
Lesbarkeit:
- `pg_restore -l`: ok fuer Mealie, Nextcloud, Immich, Authelia, Mailarchiver, Paperless
- `sqlite3 PRAGMA quick_check`: ok fuer Grafana, Gitea, Vaultwarden, Speedtest, Borg UI
- `gzip -t`: ok fuer `komodo-mongo.archive.gz`
Borg-UI letzter vollstaendiger Backup-Job:
- `#41 completed`, Start `2026-05-31 02:30:13`, Ende `2026-05-31 02:31:26`
- Hinweis: Dieser Borg-Lauf war vor den Tagesmigrationen. Die Dumps sind jetzt frisch; der naechste regulaere Borg-Lauf muss sie off-site aufnehmen.
## Restore-Drill-Vorbereitung
- `run-restore-checks.sh freshness`: Critical `0`, Warnings `0`
- `immich --what-if`: ok, nutzt VectorChord/pgvector-Test-Postgres und Redis 8
- `paperless --what-if`: ok nach Fix der fehlenden Execute-Bits
- Naechster sinnvoller echter Restore-Drill: Paperless, weil er jetzt den shared PostgreSQL-18-Dump und Redis-8-Testpfad abdeckt.
Nebenbefund behoben:
- Mehrere Restore-Test-Skripte waren im Git nicht ausfuehrbar. Dateimodus auf `100755` korrigiert.
## Monitoring / Grafana 13
- `/api/health`: `database=ok`, `version=13.0.1`
- SQLite/Unified-Storage-Check:
- `data_source=3`
- `resource` enthaelt `4` Dashboards und `1` Folder
- `unifiedstorage_migration_log=3`
- Grafana-13-Fixes:
- `GF_PLUGINS_PREINSTALL_DISABLED=true`
- leere Provisioning-Verzeichnisse `alerting/` und `plugins/` versioniert
- `user: "0"` gesetzt, damit hostseitige `600 root` Secret-Dateien lesbar bleiben
## Alt-Volumes fuer spaetere Freigabe
Nicht vor Burn-in-Freigabe loeschen.
| Pfad | Zweck | Groesse |
|---|---|---:|
| `/mnt/user/appdata/postgresql17` | Shared PostgreSQL-17-Rollback | 1.8G |
| `/mnt/user/appdata/mealie/postgres` | Mealie PostgreSQL-17-Rollback | 70M |
| `/mnt/user/appdata/nextcloud/postgres` | Nextcloud PostgreSQL-17-Rollback | 71M |
| `/mnt/user/appdata/immich_postgres` | Immich pgvecto.rs-Rollback | 460M |
Aktive Vergleichspfade:
| Pfad | Zweck | Groesse |
|---|---|---:|
| `/mnt/user/appdata/postgresql18` | Shared PostgreSQL 18 aktiv | 2.2G |
| `/mnt/user/appdata/mealie/postgres18` | Mealie PostgreSQL 18 aktiv | 70M |
| `/mnt/user/appdata/nextcloud/postgres18` | Nextcloud PostgreSQL 18 aktiv | 72M |
| `/mnt/user/appdata/immich_postgres_vectorchord` | Immich VectorChord aktiv | 633M |
## Offene bewusste Punkte
- Alt-Volumes bleiben bis zur Erinnerung am 2026-06-02 gesperrt.
- Der naechste regulaere Borg-Lauf soll nachziehen; danach kann die Alt-Volume-Freigabe fundierter entschieden werden.
- Ein echter Paperless-Restore-Drill ist der beste naechste risikoarme Test.