Proxmox setup de base
Configurations à effectuer avant d’utiliser Proxmox dans un homelab
Dépôts APT Community
Pour utiliser Proxmox sans abonnement, supprimer les dépôts Enterprise inutiles :
1 | rm /etc/apt/sources.list.d/ceph.sources |
Ajouter ensuite le dépôt APT Community :
1 | nano /etc/apt/sources.list.d/pve-no-subscription.sources |
Contenu :
1 | Types: deb |
Mettre ensuite le système entièrement à jour :
1 | apt update && apt full-upgrade -y && apt autoremove -y && apt autoclean |
Optimisation ZFS sous Proxmox
Désactiver atime
Désactiver atime afin d’éviter l’écriture inutile des timestamps d’accès à chaque lecture :
1 | zfs set atime=off rpool |
Upload des ISO
Si l’upload ne fonctionne pas via la WebUI, il est possible de copier directement les ISO dans le répertoire suivant :
1 | /var/lib/vz/template/iso |
PCI Passthrough & VFIO
Toutes les étapes nécessaires pour passer proprement un périphérique PCI Express à une machine virtuelle.
Activer l’IOMMU via cmdline
Modifier les paramètres de démarrage :
1 | nano /etc/kernel/cmdline |
Contenu du fichier avec l’IOMMU activé :
1 | root=ZFS=rpool/ROOT/pve-1 boot=zfs intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction |
Rafraîchir le bootloader :
1 | proxmox-boot-tool refresh |
Activer l’IOMMU via GRUB
Modifier les paramètres de démarrage :
1 | nano /etc/default/grub |
Contenu du fichier avec l’IOMMU activé :
1 | GRUB_DEFAULT=0 |
Mettre à jour GRUB :
1 | update-grub |
Activer les modules VFIO
Sous Proxmox VE 9.2 :
1 | nano /etc/modules-load.d/modules.conf |
Contenu :
1 | # /etc/modules is obsolete and has been replaced by /etc/modules-load.d/. |
Associer les périphériques PCIe au module VFIO
Cette étape permet de forcer l’utilisation des pilotes VFIO au démarrage et d’empêcher le chargement des pilotes par défaut.
Identifier les identifiants PCI :
1 | lspci -nn |
Exemple avec une carte graphique NVIDIA et plusieurs SSD NVMe Samsung :
1 | 99:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU116 [GeForce GTX 1660 SUPER] [10de:21c4] (rev a1) |
Ajouter les identifiants dans la configuration VFIO.
⚠️ Attention : dans cet exemple, tous les SSD NVMe possèdent le même identifiant (144d:a80d). Ils seront donc tous associés au pilote VFIO.
1 | nano /etc/modprobe.d/vfio.conf |
Contenu :
1 | options vfio-pci ids=10de:21c4,10de:1aeb,10de:1aec,10de:1aed,144d:a80d |
Redémarrer Proxmox puis vérifier le pilote utilisé :
1 | lspci -k |
Exemple :
1 | 99:00.0 VGA compatible controller: NVIDIA Corporation TU116 [GeForce GTX 1660 SUPER] (rev a1) |
Blacklister les pilotes inutiles
Pour une carte graphique NVIDIA passée en VFIO, ces pilotes ne sont généralement plus nécessaires :
1 | nano /etc/modprobe.d/blacklist.conf |
Contenu :
1 | blacklist nouveau |
Reconstruire l’initramfs :
1 | rebuild initramfs |
Optimisations réseau VirtIO
Quelques recommandations pour atteindre les meilleures performances réseau avec des VM utilisant VirtIO ou du passthrough VFIO :
- Utiliser le pilote VirtIO et éviter les autres modèles de cartes réseau.
- Configurer le Multiqueue à
8ou16selon le nombre de cœurs du CPU hôte. - Utiliser un MTU 9000 sur les bridges et interfaces réseau, particulièrement pour NFS et iSCSI.
- Augmenter les buffers TCP maximum :
1 | net.core.rmem_max=134217728 |
- Configurer le serveur NFS avec 32 threads au lieu du mode automatique.
Arrangement des coeurs NUMA
Le serveur possède 2 sockets ayant chacuns leur RAM proche et leur PCIExpress proche, mon objectif est d’avoir le maximum de performance en assigant des coeurs bien précis à mes VMs.
Pour connaitre la structure NUMA de son serveur, il faut aller chercher les propriétés du CPU:
1 | lscpu |
Dans ce résultat se trouve la topologie NUMA (extrait):
1 | CPU(s): 80 |
Avec ceci, je conseille de faire une feuille excel pour planifier exactement quelle VM aura quels affinité. La règle d’or est de ne PAS générer de trafic inter-socket inutile, donc garder une machine sur 1 seul socket dans la mesure du possible.
Aussi, l’emplacement des appareils PCI est un argument. Pour savoir quelle topologie PCI a le serveur, cette commadne génère un graphique:
1 | lstopo-no-graphics --no-legend --of txt |

Sur ce schéma il est vislble que les disques SATA ainsi que les NVME sont sur le socket0 et que la GPU ainsi que les cartes réseau haute performance sur le socket1
- srv-proxmox-01 : 4 vCPU Affinité NUMA node0 0-3
- srv-truenas-01 : 28 vCPU Affinité NUMA node0 4-19,48-59
- srv-ubuntu-01 : 40 vCPU (un socket entier) Affinité NUMA node1 20-39,60-79
- fw-opnsense-01: 8 vCPU Affinité NUMA node0 40-47
Avec cette structure, on évite au mieux le trafic inter-socket et raproche le plus possible les VM de leurs appareils PCIe.
Intel X520
Super carte réseau mais limite fortement les connecteurs SFP+ étant compatibles, pour l’instant j’ai testé cette technique qui a marché sous OpnSsense FreeBSD:
1 | echo "hw.ix.unsupported_sfp=1" > /boot/loader.conf.d/ix.conf |
Cette commande a été trouvée sur ce poste, indiquant aussi comment réécrire l’EPROM de la carte réseau pour rendre ce paramètre persistent:
- Title: Proxmox setup de base
- Author: Nicolas Schmid
- Created at : 17.06.2026 07:36:00
- Updated at : 24.06.2026 06:29:03
- Link: https://doc.spacesdata.net/2026/06/17/Proxmox-setup-de-base/
- License: This work is licensed under CC BY-NC-SA 4.0.