Proxmox 7

Submitted by hacyran on Mon, 09/20/2021 - 09:19

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