2d1b541847
- BitLocker baerchen: bewusst deaktiviert - Veeam Storage Encryption: bewusst unverschluesselt - Stromverbrauch: bewusst ohne Messung (geschlossen) - Nextcloud 2FA: geparkt bis OIDC die App-Login-Ebene erreicht - Authelia: Catch-all *.kaleschke.info one_factor -> two_factor (Repo-Baseline; Host-Merge + restart + authelia-diff.sh als aktiver Schritt offen) - Authelia OIDC und Gast-/IoT-Netz als aktive Bloecke aufgenommen - MASTER_TODO: Operator-Entscheidung-Sektion ohne offene Punkte Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
210 lines
8.4 KiB
Markdown
210 lines
8.4 KiB
Markdown
# Hardware Inventory - KalliLab CORE
|
|
|
|
Status: Hardware-Baseline erfasst; USV/Power-Loss ist als bewusst akzeptiertes Betreiber-Risiko dokumentiert.
|
|
Host: `Kallilabcore`
|
|
Letzte Pruefung: 2026-05-26
|
|
Doku-Stand Betreiberentscheidungen: 2026-06-05
|
|
Naechster Review: 2026-08-26
|
|
|
|
## Betreiber-Entscheidungen (Stand 2026-06-05)
|
|
|
|
Diese drei Punkte waren bisher diffuse TBDs und sind jetzt als bewusste
|
|
Entscheidungen festgehalten. Details in den jeweiligen Abschnitten unten.
|
|
|
|
| Thema | Entscheidung | Review-Trigger |
|
|
|---|---|---|
|
|
| USV / Power Loss | **Bewusst auf Q3/2026 geparkt.** Keine Anschaffung dieses Quartal; Power-Loss bleibt akzeptiertes Risiko. | Naechstes Hardware-Upgrade, erneuter realer Stromausfall mit Datenfolge, oder Q3-Review (ab 2026-07-01) |
|
|
| Cold-Backup-Rotation | **Bewusst Hetzner-only.** Off-site bleibt allein das Hetzner-Borg-Repo; keine zweite rotierende Cold-Kopie. | Stark wachsender Datenwert, wiederholte Hetzner-Probleme, oder geaenderte Betreiber-Praeferenz |
|
|
| Stromverbrauch messen | **Bewusst ohne Messung (Entscheidung 2026-06-06).** Kein Messgeraet; Werte bleiben dauerhaft offen, kein Beschaffungs-Todo. | Nur falls spaeter doch ein Messgeraet angeschafft wird oder Strom-/Kostenfrage relevant wird |
|
|
|
|
## Zweck
|
|
|
|
Dieses Dokument beschreibt die physische Basis des Homelabs. Es ist die Grundlage fuer Capacity Planning, Restore-Zeit, Ersatzteilplanung, USV-Verhalten und Entscheidungen wie Immich-ML, Plex-Transcoding oder Storage-Erweiterung.
|
|
|
|
## Host
|
|
|
|
| Feld | Wert |
|
|
|---|---|
|
|
| Hostname | Kallilabcore |
|
|
| Standort | Heim-LAN, physischer Standort TBD |
|
|
| Betriebssystem | Unraid |
|
|
| Unraid-Version | 7.2.4 |
|
|
| Rolle | Single-Host Homelab, Docker Compose via Komodo |
|
|
| Boot-Medium | Samsung Flash Drive, 59.8G, FAT32 |
|
|
| Flash-Backup | In Borg-Scope aufgenommen, siehe `docs/RESTORE_MATRIX.md` |
|
|
|
|
## CPU
|
|
|
|
| Feld | Wert |
|
|
|---|---|
|
|
| Modell | 12th Gen Intel(R) Core(TM) i5-12400F |
|
|
| Kerne / Threads | 6 Kerne / 12 Threads |
|
|
| Architektur | x86_64 |
|
|
| Relevante Flags | AVX, AVX2, FMA, AES, VT-x vorhanden; kein AVX-512 |
|
|
| iGPU / Quick Sync | Nein, `F`-CPU ohne iGPU |
|
|
|
|
Pruefkommando:
|
|
|
|
```bash
|
|
cat /proc/cpuinfo | awk '/model name|flags/ {print; if(/flags/) exit}'
|
|
lscpu
|
|
```
|
|
|
|
## RAM
|
|
|
|
| Feld | Wert |
|
|
|---|---|
|
|
| Gesamt | 31 GiB |
|
|
| 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:
|
|
|
|
```bash
|
|
free -h
|
|
dmidecode -t memory | grep -E "Size|Speed|Locator|Type" | head -40
|
|
```
|
|
|
|
## Mainboard und Controller
|
|
|
|
| Feld | Wert |
|
|
|---|---|
|
|
| Mainboard | Gigabyte Technology Co., Ltd. B760M DS3H DDR4 |
|
|
| 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:
|
|
|
|
```bash
|
|
dmidecode -t baseboard | head -30
|
|
lspci
|
|
```
|
|
|
|
## Netzwerk-Hardware
|
|
|
|
| Interface | Speed | Rolle | Bemerkung |
|
|
|---|---:|---|---|
|
|
| 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:
|
|
|
|
```bash
|
|
ip -br link
|
|
ethtool <interface>
|
|
tailscale ip -4
|
|
```
|
|
|
|
## Storage
|
|
|
|
| Slot | Device | Modell | Seriennummer | Groesse | Filesystem | Rolle | Health |
|
|
|---|---|---|---|---:|---|---|---|
|
|
| Cache | `nvme0n1p1` | Samsung SSD 970 EVO Plus 2TB | `S4J4NM0W609649H` | 1.8T | XFS | Appdata/system/domains | SMART passed |
|
|
| Disk1 | `md1p1` / physisch `sdc` | WDC WD60EFAX-68JH4N1 | `WD-WX32D90PC0V0` | 5.5T | XFS auf md1p1 | Array-Daten | SMART passed |
|
|
| Parity | physisch `sdb` | TOSHIBA HDWG480 | `2460A03VFA3H` | 7.3T | n/a | Parity | SMART passed |
|
|
| Boot | `sda1` | Samsung Flash Drive | `0375125090000587` | 59.8G | FAT32 | Unraid Boot | aktiv |
|
|
| Cold Backup | bewusst keiner | n/a | n/a | n/a | n/a | Externe Rotation | **bewusst Hetzner-only** (Entscheidung 2026-06-05); off-site allein via Hetzner-Borg |
|
|
|
|
Pruefkommando:
|
|
|
|
```bash
|
|
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
|
|
```
|
|
|
|
## SMART / Health
|
|
|
|
| Device | Letzter Check | Kritische Werte | Bewertung |
|
|
|---|---|---|---|
|
|
| /dev/nvme0n1 | 2026-05-26 | Critical Warning `0x00`, Percentage Used `0%`, Media Errors `0`, Power On Hours `370`, Written `5.87 TB` | gut |
|
|
| /dev/sdb | 2026-05-26 | Reallocated `0`, Pending `0`, Uncorrectable `0`, CRC `1`, Power On Hours `8971` | gut, CRC-Wert beobachten |
|
|
| /dev/sdc | 2026-05-26 | Reallocated `0`, Pending `0`, Uncorrectable `0`, CRC `0`, Power On Hours `14174` | gut |
|
|
|
|
Pruefkommando:
|
|
|
|
```bash
|
|
smartctl -a /dev/nvme0n1
|
|
smartctl -a /dev/sdb
|
|
smartctl -a /dev/sdc
|
|
```
|
|
|
|
## USV / Power Loss
|
|
|
|
| Feld | Wert |
|
|
|---|---|
|
|
| USV vorhanden | Nein / 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:
|
|
|
|
- Aktueller Befund 2026-05-26: keine funktionierende USV-Absicherung nachgewiesen.
|
|
- `apcupsd` ist zwar auf dem System vorhanden, aber nicht aktiv.
|
|
- **Operator-Entscheidung 2026-06-05: USV-Anschaffung bewusst auf Q3/2026 geparkt.** Keine Beschaffung in diesem Quartal.
|
|
- Power-Loss bleibt damit ein bewusst akzeptiertes Risiko fuer Docker-/DB-State und laufende Writes.
|
|
- Review-Trigger (einer reicht): naechstes Hardware-Upgrade, ein erneuter realer Stromausfall mit Datenfolge, oder der Q3-Review ab 2026-07-01.
|
|
- Wenn die Entscheidung in Q3 zugunsten einer USV kippt, ist das Mindestkriterium ein USB-HID-faehiges Geraet (~600-900 VA), das von `apcupsd` erkannt wird, damit der bereits vorkonfigurierte Shutdown-Pfad ohne Zusatzsoftware greift.
|
|
|
|
## Stromverbrauch
|
|
|
|
**Bewusst ohne Messung (Operator-Entscheidung 2026-06-06).** Es wird kein
|
|
Messgeraet beschafft; Idle/Normal/Backup/Last bleiben dauerhaft offen. Kein
|
|
offener Todo. Falls spaeter doch eine Mess-Steckdose angeschafft wird, reicht
|
|
ein einziger Messdurchlauf, um die Tabelle zu fuellen.
|
|
|
|
| Zustand | Verbrauch | Messmethode | Datum |
|
|
|---|---:|---|---|
|
|
| Idle | offen | schaltbare Mess-Steckdose, 10 min Mittelwert ohne aktive Jobs | nach Beschaffung |
|
|
| Normalbetrieb | offen | Mess-Steckdose, typischer Tagbetrieb mit laufenden Apps | nach Beschaffung |
|
|
| Backup-Lauf | offen | Mess-Steckdose, waehrend naechtlichem Borg-Lauf | nach Beschaffung |
|
|
| Last | offen | Mess-Steckdose, unter CPU-Last (z. B. Immich-ML/Parity-Check) | nach Beschaffung |
|
|
|
|
Beschaffungs-Trigger: einfache schaltbare Energiemess-Steckdose; danach ein
|
|
einziger Messdurchlauf reicht, um diese Tabelle dauerhaft zu fuellen.
|
|
|
|
## Ersatzteil- und Lifecycle-Plan
|
|
|
|
| Komponente | Trigger | Massnahme |
|
|
|---|---|---|
|
|
| Cache-NVMe | >70 % Fuellstand oder SMART-Warnung | Zweite NVMe / Pool-Entscheidung; aktuell 6 % belegt |
|
|
| Disk1 | >80 % Fuellstand oder SMART-Warnung | Array-Erweiterung / Ersatz; aktuell 33 % belegt |
|
|
| 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 | Anschaffung 2026-06-05 bewusst auf Q3/2026 geparkt; Trigger: Hardware-Upgrade, realer Stromausfall mit Datenfolge, oder Q3-Review |
|
|
|
|
## Audit-Kommandos
|
|
|
|
```bash
|
|
hostname
|
|
uname -a
|
|
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
|
|
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
|
|
```
|