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.
- Bearbeiten Sie
/etc/default/grubund ergänzen SieGRUB_CMDLINE_LINUX_DEFAULTum:- Intel:
intel_iommu=on iommu=pt - AMD:
amd_iommu=on iommu=pt
- Intel:
- Führen Sie
sudo update-grubaus und starten Sie neu. - Prüfen:
cat /proc/cmdlinezeigt die Optionen,ls /sys/kernel/iommu_groupslistet 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:
-
Ermitteln Sie die IDs der GPU und ihrer Audiofunktion:
lspci -nn -d 10de:(zum Beispiel[10de:2684]und[10de:22ba]). -
Legen Sie
/etc/modprobe.d/vfio.confan mit:options vfio-pci ids=10de:2684,10de:22ba softdep nvidia pre: vfio-pci softdep nouveau pre: vfio-pci -
Führen Sie
sudo update-initramfs -uaus und starten Sie neu. -
Prüfen:
lspci -nnk -d 10de:zeigtKernel driver in use: vfio-pcifü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.