Pour les besoins de l’association Libretic nous avons fait l’acquisition d’un serveur Dell T320 d’occasion afin d’un faire un hyperviseur sous Proxmox VE. L’installation de Proxmox VE 8.2 (ou de Debian 12) sur cette machine s’est révélée un peu plus difficile qu’à l’accoutumée pour ce type de serveur, d’où cet article.
Installation du Dell T320
Ce serveur T320 est équipé d’un Processeur Xeon E5-2407 0 @ 2,2 GHz et d’une carte Raid PERC H310, ce qui implique de paramétrer les disques dans le contrôleur RAID avant de démarrer l’installation.
Une fois ceci fait, une tentative d’installation basique de Proxmox VE ou de Debian, depuis une clé USB sur ce serveur ne donne pas vraiment satisfaction. En effet, après une longue pause au tout début du démarrage, l’installeur ne trouve pas de disque dur pour poursuivre l’installation. Proxmox VE nous présente même un beau message “No Hard Disk Found!”.
Après avoir fait plusieurs tentatives (avec ou sans EFI) il m’est aussi arrivé d’avoir des messages d’erreur tels que :
|
|
Ce sont d’ailleurs ces messages qui m’ont aiguillé et après quelques recherches, j’ai pu identifier que les messages “DMAR” sont liés aux fonctions iommu, elles même liées aux fonctions VT-d du processeur. C’est le driver “intel_iommu” du noyau linux qui est responsable de ces messages d’erreur. En ajoutant l’option intel_iommu=off
1 aux paramètres du noyau avant de démarrer l’installeur depuis la clé USB, l’installation se déroule normalement.
Quelques autres recherches plus tard, ce bug est finalement décrit ici : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=992304. Il s’agit d’un incompatibilité de la carte Dell Perc H310 avec les fonctions iommu, dont on retrouve également mention dans la documentation DELL disponible ici : https://dl.dell.com/manuals/common/rc_h310_h710_h710p_h810_ug_en-us.pdf en page 85.
Mais est-ce la fin du jeu de piste ? Car dans la mesure où il s’agit de créer un hyperviseur, ce serait un peu dommage de désactiver des fonctionnalités précisément utiles à la virtualisation. À quoi servent donc ces fonctions iommu ?
Et bien d’après la documentation du noyau1 ces fonctions sont un terme générique qui englobe les fonctions des processeurs Intel et Amd respectivement désignées VT-d et Vi qui permettent de partager des zones mémoires entre les machines virtuelles et le matériel afin de faciliter un accès direct à ce dernier depuis les machines virtuelles.
Étant donné l’usage que nous aurons de ce serveur chez Libretic, cette incompatibilité entre iommu et la carte H310 n’est pas problématique car aucune machine virtuelle n’aura besoin d’un accès direct au matériel.
-
La documentation du noyau qui traite de ce driver est lisible ici : https://www.kernel.org/doc/html/v6.9/arch/x86/iommu.html ↩︎ ↩︎