Anforderungen für Anbieter

Was eine Community-Maschine braucht, wie Sie Firmware (Virtualisierung, IOMMU) und VFIO unter Ubuntu einrichten und mit wenigen Befehlen prüfen.

Alles, was eine Maschine braucht, bevor sie Community-Sitzungen hostet, und wie Sie es selbst prüfen. Rechnen Sie mit etwa 15 Minuten und einem Neustart.

Die Maschine

System Ubuntu Server 24.04 LTS, direkt auf der Maschine installiert. Keine VM, kein WSL.
Kernel Linux 6.12 oder neuer: der HWE-Kernel von Ubuntu 24.04. Auf einem älteren Kernel starten keine Sitzungen.
Maschine Ausschließlich für Node Lodge.
GPU NVIDIA, Ampere oder neuer, mindestens 12 GB VRAM. Consumer-, Profi- und Rechenzentrumskarten.
CPU Intel oder AMD mit Hardware-Virtualisierung (VT-x oder AMD-V) und IOMMU (VT-d oder AMD-Vi).
Datenträger Eine SSD oder NVMe mit freiem Platz für die Sitzungsdatenträger.
Anzeige Kein Bildschirm an den vermieteten GPUs. Nutzen Sie die integrierte Grafik oder eine andere Karte für die Konsole.
Netzwerk Kabelgebundene Anbindung, ausgehendes Internet. Kein eingehender Port. Der Agent misst die Internetgeschwindigkeit wöchentlich gegen speedtest.nodelodge.com, siehe Maschine koppeln.

Alles auf einmal prüfen

Auf der Maschine, in einem Terminal:

lsb_release -ds; uname -r; nvidia-smi --query-gpu=name,memory.total --format=csv,noheader; ls /dev/kvm; ls /sys/kernel/iommu_groups | wc -l; df -h /
Zeile Erwartete Ausgabe
System Ubuntu 24.04
Kernel 6.12 oder höher, z. B. 6.14.0-29-generic
GPU Ihre Karte und ihr Speicher, mindestens 12 GB
/dev/kvm Der Pfad wird ausgegeben. Ein Fehler bedeutet: Virtualisierung ist aus.
IOMMU-Gruppen Eine Zahl größer 0. 0 bedeutet: IOMMU ist aus.
Datenträger Freier Platz auf dem Laufwerk für die Sitzungsdatenträger

Kernel unter 6.12: Installieren Sie den HWE-Kernel und starten Sie neu.

sudo apt install linux-generic-hwe-24.04 && sudo reboot

nvidia-smi antwortet nur, solange der NVIDIA-Treiber geladen ist. Sobald die GPU für Sitzungen reserviert ist (siehe VFIO unten), erscheint sie dort nicht mehr: Das ist so vorgesehen.

Firmware (BIOS oder UEFI)

Öffnen Sie beim Start das Firmware-Setup (meist Entf, F2 oder F10) und stellen Sie ein:

Einstellung Intel AMD
CPU-Virtualisierung Intel Virtualization Technology (VT-x): On SVM Mode: On
IOMMU VT-d: On IOMMU: On (manchmal AMD-Vi)
Above 4G Decoding On On
Boot-Modus UEFI UEFI
Primäre Anzeige Integrierte Grafik oder die Karte, die Sie für die Konsole behalten Ebenso

Die Bezeichnungen unterscheiden sich je nach Mainboard. Suchen Sie unter Advanced, CPU Configuration, Chipset oder North Bridge. Speichern Sie und starten Sie Ubuntu.

IOMMU in der Kernel-Befehlszeile

Auf Intel-Boards muss die IOMMU auch im Kernel aktiviert werden. Auf AMD ist sie standardmäßig aktiv; dieselbe Zeile schadet nicht.

  1. Bearbeiten Sie /etc/default/grub und ergänzen Sie GRUB_CMDLINE_LINUX_DEFAULT um:
    • Intel: intel_iommu=on iommu=pt
    • AMD: amd_iommu=on iommu=pt
  2. Führen Sie sudo update-grub aus und starten Sie neu.
  3. Prüfen: cat /proc/cmdline zeigt die Optionen, ls /sys/kernel/iommu_groups listet Gruppen auf.

Fügen Sie niemals pcie_acs_override hinzu. Es täuscht eine Isolation zwischen Geräten nur vor, und eine Maschine damit fällt durch die Prüfung.

Jede GPU in ihrer eigenen IOMMU-Gruppe

Eine vermietete GPU wird einer VM zugewiesen, zusammen mit jedem Gerät ihrer IOMMU-Gruppe. Gruppen auflisten:

for g in /sys/kernel/iommu_groups/*; do echo "Group ${g##*/}"; for d in "$g"/devices/*; do echo "  $(lspci -nns "${d##*/}")"; done; done

Jede NVIDIA-GPU sollte ihre Gruppe nur mit ihren eigenen Funktionen (ihrem Audiogerät, manchmal einem USB-Controller auf der Karte) und PCI-Bridges teilen. Teilt eine GPU ihre Gruppe mit einem Festplattencontroller oder einer Netzwerkkarte, stecken Sie sie in einen anderen PCIe-Steckplatz, möglichst einen, der direkt an der CPU hängt.

VFIO

Sitzungen erreichen die GPU über vfio-pci, den Linux-Treiber, der ein Gerät an eine VM übergibt. Die Installation des Community-Hosts reserviert die vermieteten GPUs für Sie. Zum Prüfen oder für die manuelle Einrichtung:

  1. Ermitteln Sie die IDs der GPU und ihrer Audiofunktion: lspci -nn -d 10de: (zum Beispiel [10de:2684] und [10de:22ba]).

  2. Legen Sie /etc/modprobe.d/vfio.conf an mit:

    options vfio-pci ids=10de:2684,10de:22ba
    softdep nvidia pre: vfio-pci
    softdep nouveau pre: vfio-pci
    
  3. Führen Sie sudo update-initramfs -u aus und starten Sie neu.

  4. Prüfen: lspci -nnk -d 10de: zeigt Kernel driver in use: vfio-pci für jede vermietete Funktion.

Zwei Karten desselben Modells haben dieselben IDs: Beide werden reserviert. Behalten Sie eine andere Karte oder die integrierte Grafik für die Konsole.

Der Selbsttest

Der Node Lodge Agent führt dieselben Prüfungen aus und sagt Ihnen, was zu beheben ist. Auf der Maschine, im Ordner des Agents:

node compute-host.mjs doctor --community

Er liest die Maschine aus und ändert nichts. Jede Zeile lautet pass, warn oder fail:

Prüfung Bestanden, wenn
node Node 22.12 oder neuer
privileges Er läuft als Standardbenutzer, nicht als root
inventory, gpu Die Hardware wird erkannt, mit einer NVIDIA-GPU und ihrem VRAM
kernel Linux 6.12 oder neuer (Ubuntu 24.04 HWE)
kvm /dev/kvm existiert
iommu IOMMU-Gruppen existieren
iommu-gpu Jede GPU ist allein in ihrer IOMMU-Gruppe
acs-override Kein pcie_acs_override in der Kernel-Befehlszeile
vfio-pci Der Treiber vfio-pci ist geladen
cloud-hypervisor Der Hypervisor ist installiert

Beheben Sie jedes fail, bevor Sie die Maschine koppeln. Weiter: Maschine koppeln.

Zuletzt aktualisiert

Ergebnisse erscheinen beim Tippen. Mit den Pfeiltasten wechseln Sie zwischen ihnen.