Exigences pour les fournisseurs

Ce qu'il faut à une machine Community, comment régler le firmware (virtualisation, IOMMU) et VFIO sur Ubuntu, et comment tout vérifier en quelques commandes.

Tout ce qu’il faut à une machine avant d’héberger des sessions Community, et comment le vérifier vous-même. Comptez environ 15 minutes, plus un redémarrage.

La machine

Système Ubuntu Server 24.04 LTS, installé directement sur la machine. Pas de VM, pas de WSL.
Noyau Linux 6.12 ou plus récent : le noyau HWE d’Ubuntu 24.04. Les sessions ne démarrent pas sur un noyau plus ancien.
Machine Dédiée à Node Lodge.
GPU NVIDIA, Ampere ou plus récent, 12 Go de VRAM ou plus. Cartes grand public, professionnelles et de centre de données.
CPU Intel ou AMD avec virtualisation matérielle (VT-x ou AMD-V) et un IOMMU (VT-d ou AMD-Vi).
Disque Un SSD ou un disque NVMe avec de l’espace libre pour les disques de session.
Affichage Aucun écran sur les GPU loués. Utilisez la puce graphique intégrée ou une autre carte pour la console.
Réseau Liaison filaire, accès Internet sortant. Aucun port entrant. L’agent mesure le débit Internet chaque semaine avec speedtest.nodelodge.com, voir Appairer une machine.

Tout vérifier d’un coup

Sur la machine, dans un 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 /
Ligne Ce que vous devez voir
Système Ubuntu 24.04
Noyau 6.12 ou plus, par exemple 6.14.0-29-generic
GPU Votre carte et sa mémoire, 12 Go ou plus
/dev/kvm Le chemin affiché en retour. Une erreur signifie que la virtualisation est désactivée.
Groupes IOMMU Un nombre supérieur à 0. 0 signifie que l’IOMMU est désactivé.
Disque De l’espace libre sur le disque qui accueille les disques de session

Noyau inférieur à 6.12 : installez le noyau HWE, puis redémarrez.

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

nvidia-smi ne répond que si le pilote NVIDIA est chargé. Une fois le GPU réservé aux sessions (voir VFIO plus bas), il n’y apparaît plus : c’est normal.

Firmware (BIOS ou UEFI)

Ouvrez la configuration du firmware au démarrage (souvent Suppr, F2 ou F10) et réglez :

Réglage Intel AMD
Virtualisation du CPU Intel Virtualization Technology (VT-x) : On SVM Mode : On
IOMMU VT-d : On IOMMU : On (parfois AMD-Vi)
Above 4G decoding On On
Mode de démarrage UEFI UEFI
Affichage principal Puce graphique intégrée, ou la carte gardée pour la console Idem

Les noms varient selon les cartes mères. Cherchez sous Advanced, CPU Configuration, Chipset ou North Bridge. Enregistrez, puis démarrez Ubuntu.

IOMMU sur la ligne de commande du noyau

Sur les cartes mères Intel, l’IOMMU doit aussi être activé dans le noyau. Sur AMD, il l’est par défaut; la même ligne ne gêne pas.

  1. Modifiez /etc/default/grub et ajoutez à GRUB_CMDLINE_LINUX_DEFAULT :
    • Intel : intel_iommu=on iommu=pt
    • AMD : amd_iommu=on iommu=pt
  2. Exécutez sudo update-grub, puis redémarrez.
  3. Vérifiez : cat /proc/cmdline affiche les options, et ls /sys/kernel/iommu_groups liste des groupes.

N’ajoutez jamais pcie_acs_override. Cette option simule l’isolation entre périphériques, et une machine qui l’utilise est refusée à la vérification.

Chaque GPU dans son propre groupe IOMMU

Un GPU loué est attaché à une seule VM, avec tous les périphériques de son groupe IOMMU. Listez les groupes :

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

Chaque GPU NVIDIA ne doit partager son groupe qu’avec ses propres fonctions (son périphérique audio, parfois un contrôleur USB sur la carte) et des ponts PCI. Si un GPU partage un groupe avec un contrôleur de disque ou une carte réseau, déplacez-le dans un autre emplacement PCIe, de préférence relié au CPU.

VFIO

Les sessions accèdent au GPU par vfio-pci, le pilote Linux qui confie un périphérique à une VM. L’installation de l’hôte Community réserve les GPU loués pour vous. Pour le vérifier, ou le configurer à la main :

  1. Trouvez les identifiants du GPU et de sa fonction audio : lspci -nn -d 10de: (par exemple [10de:2684] et [10de:22ba]).

  2. Créez /etc/modprobe.d/vfio.conf avec :

    options vfio-pci ids=10de:2684,10de:22ba
    softdep nvidia pre: vfio-pci
    softdep nouveau pre: vfio-pci
    
  3. Exécutez sudo update-initramfs -u, puis redémarrez.

  4. Vérifiez : lspci -nnk -d 10de: affiche Kernel driver in use: vfio-pci pour chaque fonction louée.

Deux cartes du même modèle partagent leurs identifiants : les deux sont réservées. Gardez une carte différente, ou la puce graphique intégrée, pour la console.

L’autotest

L’agent Node Lodge exécute les mêmes vérifications et vous indique quoi corriger. Sur la machine, dans le dossier de l’agent :

node compute-host.mjs doctor --community

Il lit la machine sans rien modifier. Chaque ligne indique pass, warn ou fail :

Vérification Réussie quand
node Node 22.12 ou plus récent
privileges Il s’exécute en utilisateur standard, pas en root
inventory, gpu Le matériel est lu, avec un GPU NVIDIA et sa VRAM
kernel Linux 6.12 ou plus récent (Ubuntu 24.04 HWE)
kvm /dev/kvm existe
iommu Des groupes IOMMU existent
iommu-gpu Chaque GPU est seul dans son groupe IOMMU
acs-override Aucun pcie_acs_override sur la ligne de commande du noyau
vfio-pci Le pilote vfio-pci est chargé
cloud-hypervisor L’hyperviseur est installé

Corrigez chaque fail avant d’appairer la machine. Ensuite : Appairer une machine.

Dernière mise à jour

Les résultats apparaissent pendant la saisie. Les flèches permettent de les parcourir.