Depuis quelques années, Proxmox s'est taillé une certaine réputation avec ses systèmes et outils open source à destination des entreprises et autres geeks adeptes de « Home Lab ». Découvrons son environnement de virtualisation (VE), une alternative intéressante aux géants du marché.
Configurer un serveur sous Linux pour y installer directement des applications est une pratique de moins en moins courante. Ce n'est en effet pas la meilleure manière de maintenir une machine sur la durée et de s'adapter à des besoins divers et importants. Il est bien plus aisé d'y utiliser un hyperviseur et des machines virtuelles (VM).
Elles ont l'intérêt de pouvoir être créées, sauvegardées et supprimées facilement. On peut configurer différents environnements (Linux, Windows, etc.) fonctionnant en simultané, répartir les performances comme on le souhaite, attribuer des composants physiques comme une carte graphique à certaines et pas à d'autres, etc.
Une solution parfois préférable au fait de multiplier des Raspberry Pi, surtout lorsque l'on a un certain besoin de performances. D'autant que les outils dédiés à cet usage proposent une gestion distante via une interface web, plus ou moins aisée à prendre en main. Si des acteurs comme Citrix ou VMware se sont développés autour de cette idée, l'allemand Proxmox a su se démarquer et tirer son épingle du jeu avec son Virtual Environment (VE).
Un système open source, gratuit mais avec une offre payante pour les entreprises, construit sur une base Debian, avec QEMU/KVM pour la virtualisation et même une gestion des conteneurs LXC. L'outil se veut ultra-complet, avec sa gestion de clusters pour la haute disponibilité, du système de fichiers ZFS, de Ceph, etc.
Dans le dossier que nous ouvrons aujourd'hui, nous partons à sa découverte.
Notre dossier sur Promox VE 7.0 :
- Proxmox VE 7.0 : installation sur un serveur et création d'une machine virtuelle
- Linux Containers (LXC) dans Proxmox VE 7.0 : installez simplement des distributions et services
Installation sur un serveur
Le premier point intéressant est que l'équipe met régulièrement à jour son système avec un noyau récent, malgré la base Debian. Ainsi, elle dispose d'une compatibilité matérielle assez large et dans l'air du temps. Elle évite au passage la sélectivité d'un VMWare vSphere/ESXi qui a tendance à ne gérer que certaines cartes réseau par exemple.
L'image ISO se récupère de manière classique, via un téléchargement HTTPS ou BitTorrent. Il suffit ensuite de la placer sur une clé USB ou de booter dessus via l'outil de gestion distante de votre serveur (IPMI/BMC). C'est ce que nous avons fait dans notre cas avec notre serveur HPE ProLiant DL365 Gen10 Plus v2.
La procédure diffère d'une installation Linux classique, avec tout de même certaines questions basiques. Avant de la lancer, pensez à vérifier que les fonctionnalités de virtualisation de votre processeur sont activées dans le BIOS/UEFI.
Après avoir accepté la licence utilisateur, la première chose qui vous sera demandée est de configurer le stockage. Une étape qui vient plutôt en fin de processus habituellement, mais qui est ici primordiale. Par défaut l'installation se fera sur le HDD/SSD sélectionné, qui sera effacé en intégralité. Vous pouvez également opter pour du RAID avec btrfs ou ZFS comme système de fichiers plutôt que l'habituel ext4. Nous avons opté pour btrfs en RAID 1 (Mirroring).
Notez qu'il n'est pas ici question de gérer finement l'organisation des partitions ou un éventuel double boot, vous montez un serveur dédié à la virtualisation : le stockage désigné est entièrement consacré au système.
S'en suivent des étapes plus classiques comme la désignation du pays et des options régionales, le mot de passe du compte root, un email pour que le serveur vous informe en cas d'urgence, et vos paramètres réseau. Si vous disposez d'un serveur DHCP, là aussi tout devrait normalement être configuré automatiquement.
Un résumé de vos choix est enfin affiché, avec la possibilité de revenir en arrière à tout moment. On passe alors à l'installation elle-même qui nécessite quelques minutes. La machine redémarre automatiquement et une fois Proxmox VE initialisé, l'URL d'accès à l'interface web vous sera donnée sous la forme suivante :
https://ip_du_serveur:8006
Gestion des mises à jour et fonctions de base
Vous arriverez par défaut à l'écran de connexion, en anglais mais que vous pouvez afficher en français. Le nom d'utilisateur est root
, le mot de passe correspond à celui que vous avez indiqué pendant l'installation. Un message indiquant que vous ne disposez pas de licence sera alors affiché, c'est « normal ».
Ce même message reviendra dans certains cas, ce qui permet à l'équipe de rappeler son modèle payant qui donne accès à des dépôts logiciels spécifiques réservés à ses clients. Si vous n'en voulez pas, la première chose à faire est donc de les désactiver. Pour cela, cliquez sur votre serveur dans le menu de gauche (proxvm
dans notre cas).
Une liste de choix s'afficher : cliquez sur Repositories dans Updates. Sélectionnez la ligne correspondant au composant pve-entreprise
puis sur Disable. Rendez-vous ensuite dans Updates puis cliquez sur Refresh. Cela revient à vérifier si de nouveaux paquets sont disponibles pour votre système. Ce sera très certainement le cas.
Si des éléments s'affichent dans la liste, cliquez sur Upgrade pour procéder à la mise à jour. Notez qu'il est toujours possible de la faire manuellement via Shell qui donne accès à un terminal :
apt update && apt full-upgrade -y && apt autoremove
L'interface s'organise en différentes zones, avec la liste des tâches effectuées et des logs en bas, les fonctions principales, de gestion utilisateur et la recherche en haut, le menu de navigation à gauche et la partie centrale.
Notez que le menu est par défaut en « Vue Serveur » avec une arborescence qui va du Datacenter aux différents serveurs pouvant être regroupés en clusters, en passant par leurs composants. D'autres sont proposées, s'organisant sous la forme de dossiers, autour du stockage ou des « pools » de ressources.
Chaque élément dispose de (très) nombreux paramètres, n'hésitez pas à naviguer dans chacun d'entre eux pour découvrir les possibilités offertes par Proxmox VE, qui ont comme principal intérêt de donner presque systématiquement accès à des points précis de sa documentation depuis les options et paramètres.
Une première chose à faire peut ainsi être de créer un utilisateur différent de root
dans la section Users des Permissions du Datacenter. Il suffit de lui donner un nom. Il peut aussi avoir une date d'expiration, être placé au sein d'un groupe, etc. Une fois créé attribuez-lui un mot de passe et activez la double authentification (TOTP ou U2F).
La zone consacrée aux Permissions permet de gérer ce que chaque utilisateur peut faire en lui attribuant un dossier d'accès, un rôle (prédéfini ou ajouté par vos soins), des jetons d'accès API, mais aussi d'ajouter des méthodes de connexion, pouvant passer par un serveur ActiveDirectory, LDAP ou OpenID (OAuth). Vous pouvez poursuivre la configuration par les réglages du firewall, des groupes de sécurité, du nom de domaine d'accès et son certificat, etc.
Téléchargement d'une image ISO
Passons à la création de notre première machine virtuelle. Pour cela, il faut tout d'abord récupérer l'image ISO d'un système d'exploitation et la stocker sur le serveur. Depuis peu, Proxmox VE permet de le faire directement depuis son interface graphique, avec une vérification de la somme de contrôle, ce qui est une bonne chose.
Pour cela, rendez-vous dans les paramètres du stockage dans le menu principal (local-btrfs
dans notre cas), puis sur ISO Image. Upload vous permet d'envoyer l'image depuis votre machine, nous optons pour Download fom URL. Nous utiliserons l'image d'installation réseau de Debian 11, avec les paramètres avancés suivants :
URL : https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-11.0.0-amd64-netinst.iso
Type de somme de contrôle : SHA512
Somme de contrôle : 5f6aed67b159d7ccc1a90df33cc8a314aa278728a6f50707ebf10c02e46664e383ca5fa19163b0a1c6a4cb77a39587881584b00b45f512b4a470f1138eaa1801
Cliquez sur Query URL pour que l'adresse soit vérifiée, puis sur Download. Une fenêtre s'affichera alors, indiquant le statut du téléchargement. Une fois terminé, vous pouvez la fermer. L'image se trouvera dans le dossier suivant :
/var/lib/pve/local-btrfs/template/iso/
On peut maintenant passer à la création de la machine virtuelle (VM).
Création d'une machine virtuelle
Commencez par vous demander quels seront les composants de votre VM, notamment en matière de stockage. En effet, celui-ci peut être local (via les HDD/SSD du serveur) ou distant (via des protocoles comme NFS et iSCSI). L'ajout de nouveaux éléments sur ce point se fait dans la section Storage des paramètres du Datacenter.
Nous avons par exemple ajouté une cible iSCSI qui contiendra le volume de 100 Go dédié à notre machine virtuelle. Ensuite on clique sur Create VM en haut à droite dans l'interface, puis on répond aux questions habituelles : quel serveur héberge la machine, quel nom lui donner, où se trouver l'image ISO, quel système sera installé, etc.
Viennent ensuite les paramètres techniques de la VM : carte graphique, contrôleur de stockage et espace disque, nombre de cœurs, quantité de mémoire, carte réseau. Ici, les choix seront à adapter selon vos besoins. Faites aussi attention à ne pas toujours vous contenter des choix par défaut et à lire la documentation.
Vous pourrez ainsi décider de privilégier le GPU VirtIO et son contrôleur SCSI, mais sous Windows il faudra alors en passer par des pilotes spécifiques à installer. Ils sont disponibles au format ISO à l'une des URL suivantes :
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso
Vous pouvez ainsi les télécharger sur votre serveur et les monter comme un lecteur optique qui sera vu par la machine virtuelle pendant la procédure d'installation ou après celle-ci selon les cas et les besoins.
Pour le CPU, privilégiez le type host
, qui le fera reconnaître comme celui de votre serveur, et donc avec les mêmes jeux d'instructions. Vous pouvez indiquer le nombre de cœurs que vous voulez, mais aussi jouer sur le nombre de sockets, de vCPU visibles par la machine virtuelle, activer ou non NUMA si votre processeur le nécessite, etc. On regrette cependant de ne pas pouvoir attribuer facilement des cœurs précis à une VM comme dans ESXi.
Côté réseau, on apprécie par contre de pouvoir attribuer un VLAN directement et limiter le débit en Mo/s.
Démarrage et installation de l'OS
Une fois tous les choix effectués, la procédure est terminée. Vous pouvez décider de démarrer directement la machine virtuelle ou le faire manuellement. Optez plutôt pour la seconde méthode. Les différents onglets vous permettront en effet de peaufiner vos paramètres, en jouant sur certains détails qui peuvent avoir leur importance.
L'onglet Summary affiche le statut de la VM et de ses composants, comme pour le serveur ou Datacenter. Dans Hardware vous pouvez modifier ou ajouter des périphériques de stockage, attribuer un port réseau ou une carte PCIe (nous y reviendrons dans un prochain article). Cloud-init permet de préciser un script à exécuter selon le standard.
Dans les Options, pensez à activer QEMU Guest Agent qui permet à la VM de communiquer avec le serveur lorsque les pilotes VirtIO sont installés, et de remonter certaines informations complémentaires, comme l'IP de ses cartes réseau par exemple. C'est aussi dans cet onglet que vous pourrez modifier l'ordre de démarrage des périphériques.
La machine peut avoir ses propres paramètres de Firewall, de Backup, Permissions, etc. L'accès à son interface graphique se fait via l'onglet Console. Par défaut, cela vous donnera un accès noVNC, ce qui vous permet de voir ce qu'afficherait un écran relié à une telle machine. Une fois tous les paramètres validés, rendez-vous dans cette zone et cliquez sur Start en haut à droite de l'interface, la machine démarre.
Vous pouvez alors procéder à l'installation de Debian. Elle se déroule comme pour une machine physique, même pour notre stockage iSCSI qui est vu par la VM comme un disque SCSI local. Une fois la procédure terminée, vous pouvez utiliser le système, via la Console ou en accès distant (SSH par exemple). Vous pouvez aussi installer d'autres machines virtuelles ou des conteneurs. Nous reviendrons d'ailleurs sur leur création dans un prochain article.