A l'occasion de la sortie de Proxmox 7, on revoit nos méthodes d'installation.
Préparation
On va utiliser le serveur Proliant DL180:
- 1x X5620 2.4GHz 4c + 4c HT
- 16GB RAM
- System disk: 136.7 GiB (sda)
- Data disk: 2.9 TiB (sdb, QLA P212)
- Nic1 (fiber): enp3s0f0 (f4:ce:46:af:bc:50)
- Nic2 (fiber): enp3s0f1 (f4:ce:46:af:bc:51)
- Nic3 (copper): enp7s0f0 (d8:d3:85:e4:7b:a0)
- Nic4 (copper): enp7s0f1 (d8:d3:85:e4:7b:a1)
- BIOS features: Intel VT-d, Intel Virtualization Tech, Intel HT Technology
- Touches au démarrage: BIOS setup = F11, PXE boot = F12
On va aussi préparer une clef USB avec la version ISO bare-metal de Proxmox. Voir cette page. Finalement, on démarre le serveur sur la clef USB.
Installation
On utilisera les paramètres suivants pour l'installation:
- FQDM: proxmoxhp.hacyran.net
- IP: 10.42.10.5/16
- Passerelle: 10.42.10.254
- DNS: 10.42.10.252
Partitionnement du disque système
On pouvait déjà installer Proxmox sur ZFS; on peut maintenant aussi l'installer sur BTRFS (RAID0, RAID1 ou RAID10). Pour cela, il faut bien sûr disposer de plusieurs disques. Comme, dans notre cas, le contrôleur SCSI P212 ne nous donne pas d'accès direct aux disques, on va utiliser le traditionnel système de fichiers ext4.
A cette étape, on peut donner des indications sur la taille des partitions finale; par exemple, le paramètre maxroot définit la taille de la partition racine, (local) tandis que maxvz concerne la taille du stockage pour les VMs (local-lvm, LVM-thin). Si on n'indique aucun paramètres, alors un volume "pve" sera créé avec tout l'espace disponible (en excluant les partitions de boot MBR et/ou uEFI).
Localisation
L'écran suivant nous demande un pays (France), une Timezone (Europe/Paris) et une configuration clavier.
Informations administrateur
On nous demande alors un mot de passe pour l'administrateur du serveur, ainsi qu'une adresse email. On remplit ces champs.
Couche réseau
Il suffit d'indiquer ici les paramètres réseau décidés en amont.
Installation des fichiers
Pour finir, on vérifie le résumé des opérations à effectuer et on clique sur le bouton "Install".
Vérification
Après le redémarrage, on invité à se rendre sur la page https://<IP>:8006, où on se logue avec l'utilisateur root et le mot de passe défini à l'installation. On pourra vérifier que l'installation a fonctionné et qu'on a trouvé tous nos petits.
Configuration
Modification des dépots de packages
Par défaut, Proxmox utilise les dépots entreprise. On va désactiver ce dépot en commentant la ligne correspondante dans le fichier /etc/apt/sources.list.d/pve-enterprise.list. Puis on ajoute la ligne suivante au fichier /etc/apt/sources.list:
deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription
On finira évidemment par un: apt-get update
Installation de packages
On peut installer quelques packages supplémentaires. Typiquement : sudo screen vim beep
PCI Passthrough
Pour pouvoir associer des périphériques PCI à des machines virtuelles (PCI passthrough), il faudra activer IOMMU.
- activer les features suivantes dans le BIOS: Virtualization, Intel-vt (VT for Direct I/O), SRV-IO
- modifier le fichier /etc/default/grub pour refléter la ligne suivante: GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
- mettre grub à jour: update-grub
- finalement, on ajoute les modules suivants au fichier /Etc/modules, pour qu'ils soient chargés au prochain démarrage:
- vfio
- vfio_iommu_type1
- vfio_pci
- vfio_virqfd
Après toute modification concernant les modules, on reconstruit le fichier initramfs: update-initramfs -u -k all
On peut alors redémarrer le serveur et vérifier que les modifications ont été prises en compte. Il faut chercher dans les logs de démarrage (dmesg | grep) les chaînes suivantes:
- DMAR
- IOMMU
Pour vérifier que le remapping est supporté, on doit voir l'une des chaînes suivantes (dmesg | grep remapping):
- "AMD-Vi: Interrupt remapping enabled"
- "DMAR-IR: Enabled IRQ remapping in x2apic mode"
Si le remapping n'est pas supporté, on peut authoriser les interruptions (unsafe) par la commande suivante:
- echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
Finalement, pour vérifier l'appartenance des périphériques PCI à un groupe IOMMU, on exécute:
- find /sys/kernel/iommu_groups -type l
qui doit rendre un résultat comme:
/sys/kernel/iommu_groups/0/devices/0000:00:00.0 /sys/kernel/iommu_groups/1/devices/0000:00:01.0 /sys/kernel/iommu_groups/1/devices/0000:01:00.0 /sys/kernel/iommu_groups/1/devices/0000:01:00.1 /sys/kernel/iommu_groups/2/devices/0000:00:02.0 /sys/kernel/iommu_groups/3/devices/0000:00:16.0 /sys/kernel/iommu_groups/4/devices/0000:00:1a.0 /sys/kernel/iommu_groups/5/devices/0000:00:1b.0 /sys/kernel/iommu_groups/6/devices/0000:00:1c.0 /sys/kernel/iommu_groups/7/devices/0000:00:1c.5 /sys/kernel/iommu_groups/8/devices/0000:00:1c.6 /sys/kernel/iommu_groups/9/devices/0000:00:1c.7 /sys/kernel/iommu_groups/9/devices/0000:05:00.0 /sys/kernel/iommu_groups/10/devices/0000:00:1d.0 /sys/kernel/iommu_groups/11/devices/0000:00:1f.0 /sys/kernel/iommu_groups/11/devices/0000:00:1f.2 /sys/kernel/iommu_groups/11/devices/0000:00:1f.3 /sys/kernel/iommu_groups/12/devices/0000:02:00.0 /sys/kernel/iommu_groups/12/devices/0000:02:00.1 /sys/kernel/iommu_groups/13/devices/0000:03:00.0 /sys/kernel/iommu_groups/14/devices/0000:04:00.0