From a3d77d7529cf572949087f01229e1b18c9820307 Mon Sep 17 00:00:00 2001 From: Micha Date: Tue, 26 May 2026 19:39:42 +0200 Subject: [PATCH] Document hardware capacity baseline --- docs/AUDIT_2026-05-25_TODO.md | 8 ++--- docs/CAPACITY_AND_LIFECYCLE.md | 22 +++++++------- docs/HARDWARE_INVENTORY.md | 54 ++++++++++++++++++++-------------- docs/MIGRATION_LOG.md | 7 +++++ 4 files changed, 55 insertions(+), 36 deletions(-) diff --git a/docs/AUDIT_2026-05-25_TODO.md b/docs/AUDIT_2026-05-25_TODO.md index 9f2e5a8..83984d4 100644 --- a/docs/AUDIT_2026-05-25_TODO.md +++ b/docs/AUDIT_2026-05-25_TODO.md @@ -15,15 +15,15 @@ Status: Arbeitsliste fuer die Umsetzung. Authelia-2FA/OIDC bleibt bewusst spaet, Kontext bewusst gesichert, bevor weitere Live-Aenderungen passieren: -1. Hardware-/USV-Audit abschliessen: CPU/RAM/Mainboard/NIC/Disks/SMART sind erfasst; offen bleiben USV/Strom/BIOS. `apcaccess` ist vorhanden, `apcaccess status` lieferte zuletzt Connection refused. -2. Policy-Warnings triagieren: Plex Host-Netz, mutable Tags bei `ddns-updater`, `glances`, `scrutiny` und `monitoring-influxdb3-core` als Root-Ausnahme bewerten. +1. Policy-Warnings triagieren: Plex Host-Netz, mutable Tags bei `ddns-updater`, `glances`, `scrutiny` und `monitoring-influxdb3-core` als Root-Ausnahme bewerten. +2. USV-Entscheidung treffen: aktuell ist keine funktionierende USV-Abschaltung nachgewiesen. 3. Authelia 2FA/OIDC weiterhin nicht anfassen; das bleibt bewusst der letzte Block. ## Sprint 0 - Inventar und Baseline | Status | Aufgabe | Ergebnis | |---|---|---| -| in Arbeit | Hardware-Inventar ausfuellen | CPU, RAM, Mainboard, NIC, Disks und SMART erfasst; USV/Strom/BIOS offen | +| erledigt | Hardware-Inventar ausfuellen | CPU, RAM, Mainboard, BIOS, NIC, Controller, Disks, SMART und Capacity-Baseline erfasst; USV ist als nicht validiert dokumentiert | | in Arbeit | Netzwerk-Inventar ausfuellen | Host-IP, Gateway, Tailscale-IP und AdGuard-Bind erfasst; Router-/VLAN-Details offen | | offen | Externe Abhaengigkeiten dokumentieren | `docs/EXTERNAL_DEPENDENCIES.md` enthaelt Provider, Kritikalitaet, Ausfallplan | | offen | Services-Recovery-Pfade beschreiben | `docs/SERVICES_RECOVERY.md` enthaelt Gitea-/Komodo-/Secrets-Sonderpfade | @@ -66,7 +66,7 @@ Kontext bewusst gesichert, bevor weitere Live-Aenderungen passieren: | Status | Aufgabe | Ergebnis | |---|---|---| | offen | Familien-Onboarding schreiben | Nextcloud, Immich, Vaultwarden, 2FA-Verlust, Ausfallverhalten kurz erklaert | -| offen | Capacity-/Lifecycle-Review erstellen | Wachstum, Schwellenwerte, Upgrade-Trigger und Disk-Replacement-Plan dokumentiert | +| erledigt (Baseline) | Capacity-/Lifecycle-Review erstellen | Cache 6 %, Array/User-Shares 33 %, lokale Backups 2.2G; externe Backup-/Cold-Storage-Groessen bleiben offen | | offen | USV-Test oder USV-Entscheidung | Power-Loss-Verhalten ist bekannt und dokumentiert | ## Sprint 5 - Auth und Frontdoor, bewusst zuletzt diff --git a/docs/CAPACITY_AND_LIFECYCLE.md b/docs/CAPACITY_AND_LIFECYCLE.md index 4533972..c65fd8c 100644 --- a/docs/CAPACITY_AND_LIFECYCLE.md +++ b/docs/CAPACITY_AND_LIFECYCLE.md @@ -1,6 +1,6 @@ # Capacity and Lifecycle - KalliLab CORE -Status: Template, auszufuellen nach Hardware-/Storage-Audit. +Status: Initiale Capacity-Baseline 2026-05-26; externe Backup-/Cold-Storage-Groessen offen. ## Zweck @@ -10,9 +10,10 @@ Dieses Dokument haelt Wachstum, Schwellenwerte und Upgrade-Trigger fest. Es verh | Bereich | Groesse | Belegt | Frei | Schwellwert | Bewertung | |---|---:|---:|---:|---:|---| -| Cache | TBD | TBD | TBD | 70 % Planung / 85 % Aktion | TBD | -| Disk1 | TBD | TBD | TBD | 80 % Planung / 90 % Aktion | TBD | -| Backups lokal | TBD | TBD | TBD | TBD | TBD | +| Cache | 1.9T | 97G | 1.8T | 70 % Planung / 85 % Aktion | gruen, 6 % belegt | +| Disk1 / Array | 5.5T | 1.8T | 3.7T | 80 % Planung / 90 % Aktion | gruen, 33 % belegt | +| User Shares gesamt | 5.5T | 1.8T | 3.7T | 80 % Planung / 90 % Aktion | gruen, entspricht aktuell Disk1 | +| Backups lokal | 5.5T geteilter Array-Space | 2.2G unter `/mnt/user/backups` | 3.7T Share-frei | Review bei Borg-/Dump-Wachstum | lokal nicht unabhaengig vom Array | | Hetzner Borg | TBD | TBD | TBD | TBD | TBD | | Externe Cold-Platte | TBD | TBD | TBD | TBD | TBD | @@ -28,11 +29,12 @@ du -sh /mnt/user/documents /mnt/user/photos /mnt/user/media /mnt/user/backups 2> | Bereich | Erwartetes Wachstum | Risiko | Naechste Aktion | |---|---|---|---| -| Immich Fotos/Videos | TBD | hoechster privater Datentopf | Restore-Test priorisieren | -| Paperless Dokumente | TBD | wichtig, moderates Wachstum | Restore-Test existiert | +| Medien | aktuell ca. 1.7T | groesster Speicherblock | Array-Erweiterung vor 80 % planen | +| Immich Fotos/Videos | aktuell ca. 23G | hoechster privater Datentopf | Restore-Test priorisieren | +| Paperless/Dokumente | aktuell ca. 199M im Documents-Share | wichtig, moderates Wachstum | Restore-Test existiert, Share-Wachstum beobachten | | Nextcloud | TBD | Familiennutzung kann stark wachsen | Quota/Backup pruefen | -| Monitoring/Loki | TBD | Retention kann Disk fuellen | Retention dokumentieren | -| Borg Dumps | TBD | Retention und Excludes pruefen | Borg-Stale + Groessenprofil | +| Monitoring/Loki | begrenzt durch Retention | Retention kann Disk fuellen | Retention und Volume-Groesse bei Reviews pruefen | +| Borg Dumps | aktuell ca. 2.2G lokale Backups | Retention und Excludes pruefen | Borg-Stale + Groessenprofil | ## Upgrade-Trigger @@ -45,6 +47,7 @@ du -sh /mnt/user/documents /mnt/user/photos /mnt/user/media /mnt/user/backups 2> | RAM >90 % ueber 10 Minuten regelmaessig | RAM-Ausbau oder Service-Limits pruefen | | Borg-Laufzeit deutlich steigend | Scope, Netzwerk und Ziel pruefen | | SMART-Warnung | Ersatz planen, Restore-/Backup-Frische pruefen | +| Keine USV-Abschaltung | USV anschaffen/anschliessen oder Power-Loss-Risiko bewusst akzeptieren | ## Restore-Zeitziele @@ -59,5 +62,4 @@ du -sh /mnt/user/documents /mnt/user/photos /mnt/user/media /mnt/user/backups 2> | Datum | Befund | Entscheidung | |---|---|---| -| TBD | Initial ausfuellen | TBD | - +| 2026-05-26 | Cache 6 %, Array/User-Shares 33 %, lokale Backups 2.2G; keine validierte USV-Abschaltung | Capacity gruen; naechste operative Risiken sind USV-Entscheidung und externe Backup-/Cold-Storage-Groessen | diff --git a/docs/HARDWARE_INVENTORY.md b/docs/HARDWARE_INVENTORY.md index 429375a..eaf4d7b 100644 --- a/docs/HARDWARE_INVENTORY.md +++ b/docs/HARDWARE_INVENTORY.md @@ -1,6 +1,6 @@ # Hardware Inventory - KalliLab CORE -Status: Initialer Host-Audit erfasst, offene Punkte markiert. +Status: Hardware-Baseline erfasst; USV/Power-Loss bleibt offene Betreiberentscheidung. Host: `Kallilabcore` Letzte Pruefung: 2026-05-26 Naechster Review: 2026-08-26 @@ -43,8 +43,10 @@ lscpu | Feld | Wert | |---|---| | Gesamt | 31 GiB | -| Belegt im Normalbetrieb | ca. 7.8 GiB genutzt, ca. 23 GiB verfuegbar | -| Slots / Ausbau | 4x 8 GB DDR4 belegt | +| Belegt im Normalbetrieb | ca. 7.9 GiB genutzt, ca. 23 GiB verfuegbar | +| Slots / Ausbau | 4x 8 GB DDR4 belegt, gemischte Module | +| Module | Crucial CT8G4DFS8266.C8FE, Crucial CT8G4DFS8213.C8FDD1, 2x G.Skill F4-3600C17-8GVK | +| Konfigurierter Takt | 2133 MT/s | | ECC | Nein | Pruefkommando: @@ -59,8 +61,9 @@ dmidecode -t memory | grep -E "Size|Speed|Locator|Type" | head -40 | Feld | Wert | |---|---| | Mainboard | Gigabyte Technology Co., Ltd. B760M DS3H DDR4 | -| BIOS/Firmware | TBD | -| SATA/HBA Controller | Onboard, Details TBD | +| BIOS/Firmware | American Megatrends International F21, Release 2025-06-19 | +| SATA/HBA Controller | Intel Raptor Lake SATA AHCI Controller, onboard | +| NVMe Controller | Samsung SM981/PM981/PM983 NVMe Controller | | NVMe Slots | mindestens 1 belegt | Pruefkommando: @@ -74,7 +77,7 @@ lspci | Interface | Speed | Rolle | Bemerkung | |---|---:|---|---| -| eth0 / bond0 / br0 | 1 Gbit/s full duplex | LAN | Host-IP `192.168.178.58/24`, Gateway `192.168.178.1` | +| eth0 / bond0 / br0 | 1 Gbit/s full duplex | LAN | Realtek RTL8125 2.5GbE Controller, Link aktuell 1G; Host-IP `192.168.178.58/24`, Gateway `192.168.178.1` | | tailscale1 | virtuell | VPN | Tailscale IPv4 `100.80.98.33` | Pruefkommando: @@ -123,28 +126,29 @@ smartctl -a /dev/sdc | Feld | Wert | |---|---| -| USV vorhanden | Unklar | -| Modell | TBD | -| Verbindung | TBD | -| Software | `apcaccess` vorhanden, aber `apcupsd` auf `localhost:3551` antwortet nicht | -| Laufzeit im Idle | TBD | -| Shutdown-Schwelle | TBD | -| Letzter Shutdown-Test | TBD | +| USV vorhanden | Nicht validiert / keine erkannte USV | +| Modell | Kein APC/Eaton/CyberPower-Geraet per `lsusb` erkannt | +| Verbindung | `apcupsd` ist auf USB vorkonfiguriert, aber kein passendes USB-USV-Geraet sichtbar | +| Software | `apcaccess` vorhanden; `apcupsd` laeuft nicht, `localhost:3551` liefert Connection refused | +| Konfigurierte Schwellen | `BATTERYLEVEL 5`, `MINUTES 3`, `TIMEOUT 0`, aber inaktiv solange `apcupsd` nicht laeuft | +| Laufzeit im Idle | Nicht messbar | +| Letzter Shutdown-Test | Nicht durchgefuehrt | Bewertung: -- Wenn keine USV vorhanden ist: Risiko fuer Docker-/DB-State und laufende Writes bleibt offen. -- Wenn USV vorhanden ist: Shutdown-Pfad muss mindestens einmal getestet und dokumentiert werden. -- Aktueller Befund 2026-05-26: USV-Status ist nicht validiert; `apcaccess status` liefert `Connection refused`. +- Aktueller Befund 2026-05-26: keine funktionierende USV-Absicherung nachgewiesen. +- `apcupsd` ist zwar auf dem System vorhanden, aber nicht aktiv. +- Power-Loss bleibt damit ein bewusst offenes Risiko fuer Docker-/DB-State und laufende Writes. +- Naechste Entscheidung: echte USV anschliessen und Shutdown testen oder Risiko bewusst akzeptieren und dokumentieren. ## Stromverbrauch | Zustand | Verbrauch | Messmethode | Datum | |---|---:|---|---| -| Idle | TBD | TBD | TBD | -| Normalbetrieb | TBD | TBD | TBD | -| Backup-Lauf | TBD | TBD | TBD | -| Last | TBD | TBD | TBD | +| Idle | TBD | externes Messgeraet erforderlich | TBD | +| Normalbetrieb | TBD | externes Messgeraet erforderlich | TBD | +| Backup-Lauf | TBD | externes Messgeraet erforderlich | TBD | +| Last | TBD | externes Messgeraet erforderlich | TBD | ## Ersatzteil- und Lifecycle-Plan @@ -155,6 +159,7 @@ Bewertung: | Parity | Kleiner als neue groesste Datenplatte | Parity-Upgrade vor Datenplatten-Upgrade | | Boot-USB | Lesefehler oder Alter TBD | Flash-Backup verifizieren, Ersatzstick vorbereiten | | RAM | Swap/OOM oder Immich/Nextcloud-Druck | Ausbau planen | +| USV | keine funktionierende USV-Abschaltung | USV anschaffen/anschliessen oder Risiko schriftlich akzeptieren | ## Audit-Kommandos @@ -165,13 +170,18 @@ cat /etc/unraid-version 2>/dev/null || true lscpu free -h dmidecode -t baseboard | head -30 +dmidecode -t bios -t system -t baseboard dmidecode -t memory | grep -E "Size|Speed|Locator|Type" | head -40 +lspci | egrep -i 'sata|ahci|raid|nvme|ethernet|network' ip -br link +ethtool eth0 tailscale ip -4 lsblk -o NAME,SIZE,MODEL,SERIAL,FSTYPE,MOUNTPOINT,VENDOR -findmnt -no FSTYPE /mnt/cache /mnt/disk1 /boot -df -h /mnt/cache /mnt/disk1 /mnt/user +df -Th /mnt/cache /mnt/disk1 /mnt/user /boot smartctl -a /dev/nvme0n1 | head -100 smartctl -a /dev/sdb | head -100 smartctl -a /dev/sdc | head -100 +apcaccess status +/etc/rc.d/rc.apcupsd status +lsusb ``` diff --git a/docs/MIGRATION_LOG.md b/docs/MIGRATION_LOG.md index 41e0883..d063840 100644 --- a/docs/MIGRATION_LOG.md +++ b/docs/MIGRATION_LOG.md @@ -17,6 +17,13 @@ Dieses Dokument ist nur noch ein historischer Verlauf. Der aktuelle operative Ab ## Historische Meilensteine +### 2026-05-26 - Hardware-/Capacity-Baseline abgeschlossen + +- Hardware-Inventar auf Host-Befund aktualisiert: BIOS AMI F21 vom 2025-06-19, Intel Raptor Lake SATA AHCI, Samsung NVMe Controller und Realtek RTL8125 2.5GbE mit aktuellem 1G-Link. +- RAM-Baseline dokumentiert: 4x 8 GB DDR4 ohne ECC, gemischte Module, aktuell 2133 MT/s konfiguriert. +- Capacity-Baseline dokumentiert: Cache 1.9T mit 97G genutzt (6 %), Disk1/User-Shares 5.5T mit 1.8T genutzt (33 %), lokale Backups 2.2G unter `/mnt/user/backups`. +- USV-Befund dokumentiert: `apcupsd` ist vorhanden und auf USB vorkonfiguriert, laeuft aber nicht; `apcaccess status` liefert Connection refused und `lsusb` zeigt keine erkannte USV. Power-Loss bleibt damit eine offene Betreiberentscheidung. + ### 2026-05-26 - Komodo/Gitea-Restdrift bereinigt - Der alte Komodo-Stack `grafana` wurde als historischer Altstand inert gemacht: keine Repo-Dateipfade, kein Webhook, keine alte Stack-ENV, keine `missing_files`/`remote_errors`. Rollback bleibt Git-Historie, nicht der alte Komodo-Stack.