sites: Inventar und Registry an echte Knoten (pve44–pve61) angepasst; ADR-0001/0002/0006 und PLAN §1.3/1.4/9 ergänzt

Inventar mit pve44–pve61 und den Ada-Rechnern gode-pc-05/06 (M4000 weiter
disabled). Registry-ops auf gpu-pve44/gpu-pve48/infra laut Placement, bei
den Ada-Slots entfallen pve_node und vmid (Worker-Registry v2, Task 6.4).
Tests: neuer test_site_knaster_matches_real_nodes, Konsistenztest auf
gpus-Liste umgestellt. ADR-Nachträge zu D1 (Variante B), D2 (eine GPU-VM
pro Knoten) und D3 (Ada bleibt Windows, vorgeschlagen).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Robert Rapp
2026-10-12 19:04:55 +02:00
co-authored by Claude Opus 5.5
parent 9b2ad426da
commit e88e0ea46b
8 changed files with 148 additions and 70 deletions
+39 -30
View File
@@ -1,38 +1,47 @@
# Inventar des Clusters "knaster".
# ANNAHME: Die Verteilung der GPUs und SSDs auf die Hosts ist noch nicht erfasst. Bitte beim
# gemeinsamen Deployment mit `knaster inventory collect` auf jedem Node ersetzen.
# Stand 12.10.2026, per SSH geprüft (pve44–pve61). gode-pc-05/06 sind Windows-Arbeitsplätze ohne Proxmox;
# sie stehen nur hier, damit das Placement die Ada-Rollen kennt (Worker-Registry v2, D3).
# Plattenaufteilung (D1 = B): sda System mit `local-lvm`, sdb ZFS `tank` auf pve44, pve48 und pve52.
nodes:
- name: pve-ada
cpu: {model: "unbekannt", cores: 6, threads: 12}
memory_gb: 64
- name: pve44
cpu: {model: "Intel Core i7-6700", cores: 4, threads: 8}
memory_gb: 32
disks: [{name: sda, size_gb: 256}, {name: sdb, size_gb: 256}]
gpus:
- {index: 0, name: "NVIDIA RTX 4000 Ada Generation", memory_gb: 20, compute_cap: 8.9}
- {index: 1, name: "NVIDIA RTX 4000 Ada Generation", memory_gb: 20, compute_cap: 8.9}
- name: pve1
cpu: {model: "Intel Core i7 (6. Gen) 3.4 GHz", cores: 4, threads: 8}
memory_gb: 32
disks: [{name: sda, size_gb: 128}, {name: sdb, size_gb: 256}]
gpus:
- {index: 0, name: "Quadro M4000", memory_gb: 8, compute_cap: 5.2, disabled: true, note: "außer Betrieb bis llama-bench + Strommessung (ADR-0006)"}
- {index: 1, name: "Quadro M4000", memory_gb: 8, compute_cap: 5.2, disabled: true, note: "außer Betrieb bis llama-bench + Strommessung (ADR-0006)"}
- name: pve2
cpu: {model: "Intel Core i7 (7. Gen) 3.6 GHz", cores: 4, threads: 8}
memory_gb: 32
disks: [{name: sda, size_gb: 128}, {name: sdb, size_gb: 256}, {name: sdc, size_gb: 256}]
gpus:
- {index: 0, name: "Quadro M4000", memory_gb: 8, compute_cap: 5.2, disabled: true, note: "außer Betrieb bis llama-bench + Strommessung (ADR-0006)"}
- {index: 1, name: "Quadro M4000", memory_gb: 8, compute_cap: 5.2, disabled: true, note: "außer Betrieb bis llama-bench + Strommessung (ADR-0006)"}
- name: pve3
cpu: {model: "Intel Core i7 (7. Gen) 3.6 GHz", cores: 4, threads: 8}
memory_gb: 32
disks: [{name: sda, size_gb: 128}, {name: sdb, size_gb: 256}]
gpus:
- {index: 0, name: "Quadro P2000", memory_gb: 5, compute_cap: 6.1}
- {index: 1, name: "Quadro P2000", memory_gb: 5, compute_cap: 6.1}
- name: pve4
cpu: {model: "Intel Core i7 (7. Gen) 3.6 GHz", cores: 4, threads: 8}
- name: pve46
cpu: {model: "Intel Core i7-6700", cores: 4, threads: 8}
memory_gb: 32
disks: [{name: sda, size_gb: 128}, {name: sdb, size_gb: 256}, {name: sdc, size_gb: 256}]
disks: [{name: sda, size_gb: 256}]
gpus:
- {index: 0, name: "Quadro P2000", memory_gb: 5, compute_cap: 6.1}
- {index: 0, name: "Quadro M4000", memory_gb: 8, compute_cap: 5.2, disabled: true, note: "außer Betrieb bis llama-bench + Strommessung (ADR-0006)"}
- {index: 1, name: "Quadro P2000", memory_gb: 5, compute_cap: 6.1}
- name: pve48
cpu: {model: "Intel Core i7-6700", cores: 4, threads: 8}
memory_gb: 32
disks: [{name: sda, size_gb: 256}, {name: sdb, size_gb: 256}, {name: sdc, size_gb: 128}] # sdc leer
gpus:
- {index: 0, name: "Quadro M4000", memory_gb: 8, compute_cap: 5.2, disabled: true, note: "außer Betrieb bis llama-bench + Strommessung (ADR-0006)"}
- {index: 1, name: "Quadro P2000", memory_gb: 5, compute_cap: 6.1}
- name: pve52
cpu: {model: "Intel Core i7-7700", cores: 4, threads: 8}
memory_gb: 32
disks: [{name: sda, size_gb: 256}, {name: sdb, size_gb: 256}]
gpus:
- {index: 0, name: "Quadro M4000", memory_gb: 8, compute_cap: 5.2, disabled: true, note: "außer Betrieb bis llama-bench + Strommessung (ADR-0006)"}
- name: pve61 # Surface Book, Kiosk (Intel UHD 620, keine NVIDIA)
cpu: {model: "Intel Core i5-8350U", cores: 4, threads: 8}
memory_gb: 8
disks: [{name: nvme0n1, size_gb: 256}]
gpus: []
- name: gode-pc-05 # Windows, tagsüber Arbeitsplatz; CPU offen (Task 0.1 e2)
cpu: {model: "unbekannt"}
memory_gb: 64
gpus:
- {index: 0, name: "NVIDIA RTX 4000 Ada Generation", memory_gb: 20, compute_cap: 8.9}
- name: gode-pc-06 # Windows, tagsüber Arbeitsplatz; CPU offen (Task 0.1 e2)
cpu: {model: "unbekannt"}
memory_gb: 64
gpus:
- {index: 0, name: "NVIDIA RTX 4000 Ada Generation", memory_gb: 20, compute_cap: 8.9}
+13 -13
View File
@@ -15,37 +15,37 @@ slots:
tier: 1
device: gpu
engine: vllm
node: gpu-main # RTX 4000 Ada #1
node: gpu-main # RTX 4000 Ada auf gode-pc-05 (Windows, D3)
litellm_model: tier1-general
base_model: qwen3-14b-awq # Startkandidat, Entscheidung per Kalibrierungslauf
max_context: 32768
effective_context: 16384
supports_lora: true
fallbacks: [tier1-flex]
ops: {docker_host: gpu-main, container: vllm, pve_node: pve-ada, vmid: "201"} # VM-IDs/Hosts: ANNAHME bis Deployment
ops: {docker_host: gpu-main, container: vllm} # keine Proxmox-VM; Anbindung über Worker-Registry v2 (Task 6.4)
tier1-flex:
tier: 1
device: gpu
engine: vllm
node: gpu-flex # RTX 4000 Ada #2 (nachts Training → unavailable)
node: gpu-flex # RTX 4000 Ada auf gode-pc-06 (nachts Training → unavailable)
litellm_model: tier1-flex
base_model: qwen3-14b-awq
max_context: 32768
effective_context: 16384
supports_lora: true
ops: {docker_host: gpu-flex, container: vllm, pve_node: pve-ada, vmid: "202"} # VM-IDs/Hosts: ANNAHME bis Deployment
ops: {docker_host: gpu-flex, container: vllm} # keine Proxmox-VM; Anbindung über Worker-Registry v2 (Task 6.4)
verifier-small:
tier: 1
device: gpu
engine: llamacpp
node: gpu-small # Quadro M4000 (Nutzen per Benchmark prüfen)
node: gpu-small # Quadro P2000 auf pve48 (Placement 12.10.)
litellm_model: verifier-small
base_model: qwen3-4b-q4km
max_context: 8192
effective_context: 6144
ops: {docker_host: gpu-small, container: llamacpp-chat, pve_node: pve3, vmid: "231"} # VM-IDs/Hosts: ANNAHME bis Deployment
ops: {docker_host: gpu-pve48, container: llamacpp-chat, pve_node: pve48, vmid: "248"}
signature-extractor:
tier: 1
@@ -56,18 +56,18 @@ slots:
base_model: qwen3-4b-q4km
max_context: 8192
effective_context: 6144
ops: {docker_host: gpu-small, container: llamacpp-chat, pve_node: pve3, vmid: "231"} # VM-IDs/Hosts: ANNAHME bis Deployment
ops: {docker_host: gpu-pve48, container: llamacpp-chat, pve_node: pve48, vmid: "248"}
embed-default:
tier: 1
device: gpu
engine: llamacpp
node: gpu-embed # Quadro P2000
node: gpu-embed # Quadro P2000 auf pve44 und pve46 (Anti-Affinität, Placement 12.10.)
litellm_model: embed-default
base_model: qwen3-embedding-0.6b-q8
max_context: 8192
kind: embedding
ops: {docker_host: gpu-embed-1, container: llamacpp-embed, pve_node: pve3, vmid: "221"} # VM-IDs/Hosts: ANNAHME bis Deployment
ops: {docker_host: gpu-pve44, container: llamacpp-embed, pve_node: pve44, vmid: "244"} # zweite Instanz in gpu-pve46
rerank-default:
tier: 1
@@ -78,7 +78,7 @@ slots:
base_model: bge-reranker-v2-m3-q8
max_context: 8192
kind: rerank
ops: {docker_host: gpu-embed-1, container: llamacpp-rerank, pve_node: pve3, vmid: "221"} # VM-IDs/Hosts: ANNAHME bis Deployment
ops: {docker_host: gpu-pve44, container: llamacpp-rerank, pve_node: pve44, vmid: "244"} # zweite Instanz in gpu-pve46
# --- Sprachausgabe (ADR-0006) ---
tts-de:
@@ -90,17 +90,17 @@ slots:
base_model: piper-de-thorsten-medium
max_context: 5000 # Zeichen pro Anfrage (TTS-Dienst-Limit)
kind: tts
ops: {docker_host: infra, container: tts-piper, pve_node: pve1, vmid: "101"} # ANNAHME bis Deployment
ops: {docker_host: infra, container: tts-piper, pve_node: pve44, vmid: "101"} # Knoten laut proxmox.yaml (HA nach pve52/pve48)
tts-de-hq:
tier: 1
device: gpu
engine: pytorch
node: gpu-flex # teilt sich die Ada mit tier1-flex; während Training unavailable
node: gpu-flex # teilt sich die Ada auf gode-pc-06 mit tier1-flex; während Training unavailable
litellm_model: tts-de-hq
base_model: qwen3-tts-1.7b
max_context: 5000
kind: tts
ops: {docker_host: gpu-flex, container: qwen-tts, pve_node: pve-ada, vmid: "202"} # ANNAHME bis Deployment
ops: {docker_host: gpu-flex, container: qwen-tts} # keine Proxmox-VM; Anbindung über Worker-Registry v2 (Task 6.4)
adapters: []