VMware Private AI (Foundation with NVIDIA) – GPU- und Modell-Serving-Betrieb
Hinweis: Community-verwaltetes Open-Source-Projekt, nicht verbunden mit, unterstützt von oder gesponsert von VMware, Inc., Broadcom Inc. oder NVIDIA Corporation. „VMware“, „vSphere“ und „VCF“ sind Marken von Broadcom; „NVIDIA“ und „vGPU“ sind Marken von NVIDIA. Der Quellcode ist unter der MIT-Lizenz öffentlich einsehbar.
Die GPU-/KI-Infrastrukturlinse für die VMware-Skill-Familie – GPU-Host- und Geräteinventarisierung, vGPU-Verbraucher, Echtzeit-GPU-Auslastung, der vGPU-/DirectPath-Profilkatalog, vGPU-Zuweisung und Private AI Service (PAIS)-bereitgestellte Modelle und Wissensdatenbanken – über die vSphere 9.x / VCF 9.1 Web Services API (pyVmomi) und die PAIS-REST-API.
Begleitende Skills: vmware-aiops (die vCenter-VMs hinter KI-Workloads – Strom/Snapshot/Klon), vmware-vks (GPU-fähiges Tanzu Kubernetes), vmware-monitor (nur Leseberechtigung für vSphere-Zustand).
Status: v1.0.1 – im Wesentlichen noch Beta. Skill #15 der Familie. Der Sprung von 0.2.x auf 1.0.1 ist ein Distributionsfix, kein Reifegradanspruch: Die zurückgezogene erste Veröffentlichung verwendete 1.0.0, und ClawHub löst
latestnach Versionsreihenfolge auf, sodass alle 0.x-Releases dort unsichtbar waren. Die unten stehenden Beta-Vorbehalte gelten weiterhin. Jeder API-Pfad wird vor der Verwendung anhand offizieller Broadcom/NVIDIA-Quellen überprüft (tests/eval/spec/privateai_endpoints.py) – keine aus dem Gedächtnis geschriebenen Endpunkte. Die Feldnamen der GET-Antworten und die genauen PAIS-Pfade sind defensiv und warten auf die Validierung an echter 9.x-Hardware (siehe Fehlerbehebung). Gesteuert durch das Familien-Harness (Audit + Richtlinie + Teaching-Fehler); die Lese-/Schreibautorisierung wird an die RBAC-Rolle des vCenter-Dienstkontos delegiert.
Was dieser Skill tut
| Kategorie | Werkzeuge | Anzahl | Lesen/Schreiben |
|---|---|---|---|
| GPU-Inventar | Host auflisten/abrufen, Gerät auflisten, vGPU-Verbraucher auflisten | 4 | 4 L |
| GPU-Auslastung | Echtzeit pro-vGPU-VM-Auslastung (GPU-%, Speicher-%, Temperatur) | 1 | 1 L |
| GPU-Bereitschaft | Pro-Host vGPU/PAIS-Bereitschaftsurteil + Blockierungsgründe | 1 | 1 L |
| Profilkatalog | vGPU-Profil auflisten, DirectPath-Profil auflisten | 2 | 2 L |
| Profilvalidierung | Pre-Flight einer vGPU-Profiländerung (Stromzustand + Host bietet es an) | 1 | 1 L |
| vGPU-Zuweisung | vGPU-Profil einer VM setzen (VM muss ausgeschaltet sein) | 1 | 1 S |
| Private AI Service | Bereitgestellte Modelle auflisten, Modellkatalog, Wissensdatenbanken auflisten, Datenquellen auflisten | 4 | 4 L |
| PAIS-Überwachung | Fleet-GPU-Rollup (Auslastung/Speicher/Temperatur, heiß/leer, am stärksten ausgelastet) | 1 | 1 L |
| Bemessung & Air-Gap | LLM-GPU-/Speicherbemessungsberater, lokaler pais.yml-Bildinspektor | 2 | 2 L |
17 MCP-Werkzeuge (16 lesen / 1 schreiben). Lesevorgänge sind strikt nicht destruktiv. Der einzelne Schreibvorgang (vgpu_assign) zeigt seinen Wirkungskreis vorab an, verweigert eine eingeschaltete VM, schaltet eine VM niemals selbst aus, wird auf der CLI doppelt bestätigt und im Audit-Log aufgezeichnet. Führen Sie vor dem Schreiben eine Pre-Flight-Prüfung mit vgpu_profile_validate durch.
Schnellinstallation
uv tool install vmware-privateai
vmware-privateai version
vmware-privateai gpu host-list # Erste Leseaktion – listet Hosts mit GPU auf
Die Konfiguration befindet sich in ~/.vmware-privateai/config.yaml (Ziele + optionaler pais:-Abschnitt); Passwörter und das PAIS-Bearer-Token leben in ~/.vmware-privateai/.env (chmod 600). Siehe references/setup-guide.md.
Wann dieser Skill verwendet werden sollte
Verwenden Sie vmware-privateai für die GPU-/KI-Infrastrukturebene: welche Hosts und physischen Geräte GPUs haben, welche VMs eine vGPU und welches Profil halten, Echtzeit-GPU-Auslastung, der zuweisbare vGPU-/DirectPath-Profilkatalog, Ändern des vGPU-Profils einer VM und die von Private AI Service bereitgestellten Modelle / Wissensdatenbanken – wenn der Kontext explizit VMware / vSphere / VCF Private AI / NVIDIA vGPU ist.
NICHT verwenden, wenn: die Aufgabe der Lebenszyklus der zugrunde liegenden VM ist – Einschalten/Ausschalten, Snapshot, Klonen, Migration, CPU/RAM neu konfigurieren (→ vmware-aiops); reine Leseberechtigung für vSphere-Inventar, Alarme oder Host-Zustand (→ vmware-monitor); oder GPU-fähiges Tanzu Kubernetes / Supervisor-Namespaces (→ vmware-vks). vgpu_assign schaltet die VM bewusst nicht aus – das ist die Aufgabe von vmware-aiops, die getrennt gehalten wird, damit der Wirkungskreis dieses Skills auf „eine VM, wenn sie bereits ausgeschaltet ist“ beschränkt bleibt.
Verwandte Skills – Skill-Routing
| Der Benutzer möchte… | Skill |
|---|---|
| GPUs / vGPU-Verbraucher / GPU-Auslastung inventarisieren / ein vGPU-Profil zuweisen | vmware-privateai (dieser) |
| Von PAIS bereitgestellte Modelle / Wissensdatenbanken auflisten | vmware-privateai (dieser) |
| Die zugrunde liegende vCenter-VM ausschalten / Snapshot erstellen / klonen / migrieren | vmware-aiops |
| Leseberechtigung für vSphere-Inventar / Alarme / Host-Zustand | vmware-monitor |
| GPU-fähige Tanzu Kubernetes-Cluster / -Namespaces | vmware-vks |
| Mehrschrittiger GPU-Workflow mit Genehmigung + Rollback | vmware-pilot |
Übliche Workflows
1. Eine freie GPU finden und das vGPU-Profil einer VM neu zuweisen.
vmware-privateai gpu device-list --vendor NVIDIA # GPUs finden; vm_count 0 = frei
vmware-privateai gpu consumer-list # Wer hält eine vGPU und mit welchem Profil
vmware-privateai vgpu profile-list --host esx-07 # Profile, die dieser Host einer VM zuweisen kann
vmware-privateai gpu vgpu-assign fin-train-01 grid_a100-4c --dry-run # Wirkungskreis vorab anzeigen
# Die VM mit vmware-aiops ausschalten, DANN:
vmware-privateai gpu vgpu-assign fin-train-01 grid_a100-4c # Doppelt bestätigen + auditieren
Fehlerzweig: Wenn vgpu-assign (Bestätigung) sich mit „VM ist eingeschaltet – eine vGPU-Änderung erfordert, dass die VM ausgeschaltet ist“ verweigert, führen Sie zuerst vmware-aiops vm_power_off 'fin-train-01' aus und wiederholen Sie den Vorgang. Wenn es mit „Profil wird vom Host der VM nicht angeboten / GPU hat keinen freien Framebuffer“ fehlschlägt, führen Sie vmware-privateai gpu host-get <Host dieser VM> aus, um die gültigen Profile und die freie Kapazität zu sehen.
2. GPU-Auslastung im gesamten Bestand priorisieren.
vmware-privateai gpu utilization --top 10 # Zuerst die am stärksten ausgelasteten vGPU-VMs
vmware-privateai gpu host-list --vendor NVIDIA # Welche Hosts tragen die Last
Fehlerzweig: Eine VM, die metrics unavailable (no host driver?) anzeigt, ist kein Fehler – der NVIDIA-Host-GPU-Treiber macht keine Zähler dafür verfügbar (metrics_available:false). Tiefgehende Telemetrie pro SM / pro Prozess / MIG-Slice ist nicht über vSphere verfügbar; verwenden Sie dafür NVIDIA DCGM auf dem Host.
3. Sehen, was Private AI Service bereitstellt.
vmware-privateai pais model-list # OpenAI-kompatibel /models
vmware-privateai pais kb-list # RAG-Wissensdatenbanken
Fehlerzweig: HTTP 404 bedeutet normalerweise eine Basis-URL-Fehlanpassung, keinen Fehler – das /api/v1 PAIS-Pfadpräfix ist bereitstellungsspezifisch und unbestätigt (Beta). Überprüfen Sie pais.endpoint in config.yaml. HTTP 401/403 bedeutet, dass das Bearer-Token in VMWARE_PRIVATEAI_PAIS_TOKEN abgelaufen ist oder nicht den richtigen Bereich hat – holen Sie ein neues Token von Ihrem Identitätsanbieter, exportieren Sie es erneut und wiederholen Sie den Vorgang.
Verwendungsmodus
- CLI – interaktive Inventarisierung / Priorisierung, Skripterstellung, kleine oder lokale Modelle (niedrigere Kontextkosten).
- MCP – agentengesteuerte Operationen mit strukturiertem JSON; führen Sie
vmware-privateai mcpaus (ein installiertes Konsolenskript, daher keineuvx-Netzwerkneuauflösung – funktioniert durch Enterprise-TLS-Proxys, 踩坑 #25).
MCP-Werkzeuge (17 – 16 lesen, 1 schreiben)
| Kategorie | Werkzeuge | L/S |
|---|---|---|
| GPU-Inventar | gpu_host_list, gpu_host_get, gpu_device_list, gpu_consumer_list | Lesen |
| GPU-Auslastung | gpu_utilization | Lesen |
| GPU-Bereitschaft | gpu_host_readiness | Lesen |
| Profilkatalog | vgpu_profile_list, directpath_profile_list | Lesen |
| Profilvalidierung | vgpu_profile_validate | Lesen |
| Private AI Service | pais_model_list, pais_model_catalog, pais_knowledge_base_list, pais_data_source_list | Lesen |
| PAIS-Überwachung | pais_monitoring_summary | Lesen |
| Bemessung & Air-Gap | pais_sizing_advise, pais_bundle_verify | Lesen |
| vGPU-Zuweisung | vgpu_assign | Schreiben |
ABGELEITETE PAIS-Pfade: pais_model_catalog und pais_data_source_list treffen auf PAIS-Steuerungsebenenpfade, die gegen eine Live-OpenAPI unbestätigt sind (踩坑 #36) – ein 404 gibt eine Basis-URL-Lehrmeldung zurück, keinen Fehler. pais_sizing_advise und pais_bundle_verify benötigen keine Verbindung (reine Berechnung / Analyse lokaler Dateien). gpu_host_readiness meldet, was die vSphere-API bereitstellt, und sagt es, wo sie es nicht kann (NVIDIA-Treiber / MFT-VIB / MIG benötigen nvidia-smi auf dem Host).
Listen-Hülle: Jedes *_list-Werkzeug gibt {items, returned, limit, offset, total, truncated, hint} zurück – lesen Sie Zeilen aus items und überprüfen Sie truncated, bevor Sie schlussfolgern, dass eine Auflistung vollständig ist; leere items mit truncated:false bedeutet geprüft-und-keine, kein Fehler. Listen paginieren bei limit=50; filtern Sie mit den Argumenten name/vendor/host/profile/vm des Werkzeugs, anstatt den gesamten Bestand zu durchblättern.
Schreibsicherheit (normativ): vgpu_assign mit confirm=false (der Standard) zeigt nur eine Vorschau an – aktuelles Profil, Zielprofil, Stromzustand und dass ein Ausschalten erforderlich ist – ohne zu handeln. confirm=true wendet es an, verweigert aber eine eingeschaltete VM mit einem Lehrmfehler. Es schaltet die VM niemals selbst aus, wartet auf das tatsächliche ReconfigVM-Aufgabenergebnis (niemals ein verfrühtes „ok“) und auditiert jede angewandte Änderung in ~/.vmware/audit.db.
CLI-Kurzreferenz
vmware-privateai gpu host-list [--name N] [--vendor V] # Hosts mit GPU
vmware-privateai gpu host-get <host> # Vollständige Details pro GPU
vmware-privateai gpu device-list [--host H] [--vendor V] # Physische GPUs (vm_count 0 = frei)
vmware-privateai gpu consumer-list [--profile P] [--vm V] # VMs mit vGPU + Profil
vmware-privateai gpu utilization [--vm V] [--top N] # Echtzeit-GPU-%, Speicher-%, Temperatur
vmware-privateai gpu vgpu-assign <vm> <profile> [--dry-run] # SCHREIBEN – VM muss aus sein; doppelt bestätigen
vmware-privateai gpu readiness [--host H] # Pro-Host vGPU/PAIS-Bereitschaftsurteil
vmware-privateai vgpu profile-list [--host H] [--model M] # vGPU-Profilkatalog
vmware-privateai vgpu directpath-list [--vendor V] # DirectPath-Profile (vSphere 9.0+)
vmware-privateai vgpu validate <vm> <profile> # Pre-Flight einer vGPU-Profiländerung (schreibgeschützt)
vmware-privateai pais model-list [--name N] # Von PAIS bereitgestellte Modelle
vmware-privateai pais model-catalog [--name N] # Von PAIS bereitstellbarer/genehmigter Modellkatalog
vmware-privateai pais kb-list [--name N] # PAIS-Wissensdatenbanken
vmware-privateai pais data-source-list [--name N] # PAIS-RAG-Datenquellen
vmware-privateai pais monitoring-summary [--top N] # Fleet-GPU-Rollup (Auslastung/Speicher/Temperatur, heiß/leer)
vmware-privateai pais sizing --model llama-70b # LLM-GPU-/Speicherbemessung (keine Verbindung)
vmware-privateai pais bundle-verify <pais.yml> # Lokaler Air-Gap-Bildinspektor (kein Netzwerk)
Vollständige Liste: references/cli-reference.md. Antwort-Token-Schätzungen pro Werkzeug: references/capabilities.md.
Fehlerbehebung
Password not found for target '<t>'. Set environment variable VMWARE_PRIVATEAI_<T>_PASSWORD– fügen Sie diese Zeile zu~/.vmware-privateai/.envhinzu und setzen Siechmod 600, oder exportieren Sie sie (aus einem Secret-Manager). Das<T>ist der Zielname in Großbuchstaben mit-→_.TLS verification failed for target '<t>'– setzen Sie für ein selbstsigniertes Laborverify_ssl: falsefür dieses Ziel inconfig.yaml; installieren Sie andernfalls das vCenter-CA auf diesem Host.gpu host-listgibt nichts auf einem Cluster zurück, von dem Sie wissen, dass er GPUs hat – nur die Grafiktypenshared/direct/sharedDirectgelten als Rechen-GPUs (der einfache Host-Framebuffer ist ausgeschlossen). Wenn echte 9.x-Hardware eine GPU unter einem unerwarteten Typ anzeigt, ist dies eine bekannte Beta-Einschränkung – reichen Sie ein Issue mit der rohengpu host-get-Ausgabe ein, damit die Projektion erweitert werden kann.gpu utilizationzeigt eine VM mitmetrics unavailablean – der NVIDIA-Host-GPU-Treiber macht keine Zähler dafür verfügbar (kein Fehler). Beachten Sie, dass diegpu.*-Leistungszähler auf manchen Builds auf Host-Ebene gemeldet werden können – überprüfen Sie den Entitätstyp auf echter Hardware (Beta-Vorbehalt).directpath-listgibt einen Fehler mit „needs vCenter 9.0+“ aus – DirectPathProfileManager ist neu in vSphere 9.0; verwenden Sie auf 8.x stattdessenvgpu profile-list(der Fehler leitet Sie dorthin, nicht zu einer leeren Liste).- PAIS 404 / Nicht-JSON-Antwort – das
/api/v1-Präfix ist bereitstellungsspezifisch und unbestätigt; überprüfen Siepais.endpoint(ein Proxy oder eine Anmeldeseite gibt Nicht-JSON zurück). PAIS 401/403 → aktualisieren Sie das Bearer-Token inVMWARE_PRIVATEAI_PAIS_TOKEN.
Audit & Sicherheit
- Quellcode – https://github.com/vmware-skills/VMware-PrivateAI (MIT).
- Inhalt der Konfigurationsdatei –
config.yamlenthält nur Ziel-Host/Benutzername/Port und denpais.endpoint; Passwörter und das PAIS-Bearer-Token leben in~/.vmware-privateai/.env(0600, im Ruhezustand alsb64:verschleiert – Verschleierung, keine Verschlüsselung). - Webhook-Datenumfang – keiner. Dieser Skill tätigt keine ausgehenden Aufrufe außer zu den konfigurierten vCenter/ESXi-Zielen und dem PAIS-Endpunkt.
- TLS-Überprüfung – standardmäßig aktiviert;
verify_ssl: falseist pro Ziel (undpais.verify_ssl) und nur für selbstsignierte Labore. - Schutz vor Prompt-Injection – aller von vSphere und PAIS gelieferte Text (Geräte-/Anbieter-/VM-/
Profilnamen, PAIS-Modell-IDs, Wissensdatenbank-Beschreibungen) durchläuft
vmware_policy.sanitize()(Kürzung auf ≤500 Zeichen + Entfernung von C0/C1-Steuerzeichen); eine KB-Beschreibung ist die wertvollste Injectionsfläche hier. - Minimale Rechte – die Lese-/Schreibautorisierung ist Aufgabe der vCenter-Rolle: Ein schreibgeschütztes
Dienstkonto verweigert
vgpu_assign's ReconfigVM auf vCenter-Ebene, unumgehbar. Alle Schreibvorgänge werden in~/.vmware/audit.dbaufgezeichnet. Siehereferences/setup-guide.md.
Lizenz
MIT