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.
- Modifiez
/etc/default/grubet ajoutez àGRUB_CMDLINE_LINUX_DEFAULT:- Intel :
intel_iommu=on iommu=pt - AMD :
amd_iommu=on iommu=pt
- Intel :
- Exécutez
sudo update-grub, puis redémarrez. - Vérifiez :
cat /proc/cmdlineaffiche les options, etls /sys/kernel/iommu_groupsliste 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 :
-
Trouvez les identifiants du GPU et de sa fonction audio :
lspci -nn -d 10de:(par exemple[10de:2684]et[10de:22ba]). -
Créez
/etc/modprobe.d/vfio.confavec :options vfio-pci ids=10de:2684,10de:22ba softdep nvidia pre: vfio-pci softdep nouveau pre: vfio-pci -
Exécutez
sudo update-initramfs -u, puis redémarrez. -
Vérifiez :
lspci -nnk -d 10de:afficheKernel driver in use: vfio-pcipour 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.