Serveur Proxmox

Ce projet a débuté lors de mon expérience au sein de la société MA France. La DSI fonctionnait jusqu'à présent sur un hyperviseur nécessitant une licence (payante). Dans un but de réduire les coûts financiers liés à l'infrastructure informatique, et après quelques recherche, la DSI s'est rendu compte qu'il existait une solution Open-Source, Proxmox qui permettait de faire tout ce que l'on faisait sur l'hyperviseur précédent.

C'est dans ce but que j'ai pu participer à la mise en place de ce serveur hyperviseur.

Serveur HPE ProLiant DL325 Gen10

Pour ce projet la DSI a souhaité utilisé un serveur HPE ProLiant DL325 Gen10. Le choix s'est porté sur ce modèle car il est optimal pour une utilisation dédiée à la virtualisation.

Il est équipé d'un processeur AMD EPYC qui offre un très bon rapport qualité-prix, notamment grâce au nombre élevé de coeurs (Jusqu'à 64 coeurs par processeur), ce qui en fait un processeur idéal pour de la virtualisation et les charges de travail parallèles.

En plus de ce processeur, le HPE ProLiant DL325 Gen10 est équipé de 256 Go de RAM. Il peut en accueillir jusqu'à 2To mais dans mon cas les 256 Go était déjà largement suffisant car on parle d'une infrastructure hébergant ~20 machines virtuelles.

Pour la partie stockage nous avons choisi 8 SSD SATA/SAS de 1,92 To chacun. Ces 8 SSD ont été configurés en RAID 5. La capacité brute de ces 8 disques nous amène à 15,36 To mais étant donné qu'ils ont été configurés en RAID 5, la capacité réelle s'étend donc à 13 To étant donné que l'on doit conserver un disque pour la parité.

Proxmox

Parlons maintenant ce qui va être installé sur ce serveur. Proxmox Virtual Environment (Proxmox VE) est une plateforme open source de virtualisation basée sur Debian, qui combine KVM pour la virtualisation complète et LXC pour la conteneurisation. Elle offre une interface web intuitive permettant de gérer facilement des machines virtuelles, des conteneurs, du stockage, et des clusters haute disponibilité.

Proxmox prend également en charge des fonctionnalités avancée telles que les snapshots, la réplication, et l'intégration avec Ceph pour le stockage distribué. Avec sa flexibilité et son modèle open source, ils constitue une alternative économique et puissante à des solutions comme VMware ou Hyper-V.

Clé bootable

Dans un premier temps, il a fallu créer une clé bootable pour installer Proxmox sur notre serveur. Je ne m'étendrais pas sur cette partie. Je me suis fourni l'ISO directement sur et j'ai utilisé comme utilitaire pour créer la clé.

Installation Proxmox

Avant toute chose, il faut s'assurer que la fonctionnalité de technologie de virtualisation soit activée dans les options du BIOS pour permettre la virtualisation.

Chez Intel généralement cette fonctionnalité s'appelle VT-x ou Virtualization Technology mais dans notre cas, étant donné qu'il s'agit d'un processeur AMD EPYC, l'option s'appelle AMD-V, ou SVM, ou encore Secure Virtual Machine.

Une fois que AMD-V a été activé, il ne reste qu'à sauvegarder les changements et à redémarrer sur la clé pour comment le processus d'installation de Proxmox.

Nous voilà sur l'installation du système Proxmox. Pour le reste de l'installation je ne détaillerai pas tout car le processus d'installation est très similaire à tous les autres systèmes que l'on peut installer : choix du clavier, paramètres réseaux, création super-utilisateur, partitionnement des disques etc...

Une fois tous les éléments renseignés, l'installation est terminée et il ne reste plus qu'à se connecter sur notre serveur via l'interface WEB avec le port 8006 (par défaut)

Interface de Proxmox

En renseignant l'adresse ip de son serveur proxmox, suivi du port 8006 (par défaut), il est désormais possible d'accéder à l'interface de gestion de proxmox.

Une fois connecté sur le serveur, il faut s'identifier. Pour celà j'ai utilisé le compte que nous avons créé préalablement durant l'installation.

Petite précision concernant l'option "Realm" sur le formulaire d'authentification :

PAM : est le module d'authentification enfichable utilisé dans les systèmes d'exploitation Linux/UNIX/BSD pour stocker les informations de l'utilisateur local. Il est stocké au niveau du système et délègue l'autorisation de se connecter à une machine. C'est le module par défaut sous Linux.

PVE : est une base de données stockée dans Proxmox qui stocke les informations sur les utilisateurs pouvant se connecter à l'interface Web de Proxmox. Elle n'accorde pas d'autorisation pour des choses comme la connexion SSH ou Shell au système d'exploitation sous-jacent, au lieu de cela, il délègue uniquement l'autorisation de se connecter aux interfaces Proxmox, comme la WebGUI ou l'API.

Dans mon cas étant donné que la gestion se fera sur l'interface web, j'utiliserai le realm PVE.

Importer un fichier ISO dans Proxmox

Afin de pouvoir installer les systèmes d'exploitation sur nos différentes machines virtuelles, j'ai du au préalable télécharger les images système (ISO) et les importer dans Proxmox.

Une fois télécharger, il a fallu les stocker dans la "banque de données" des ISO sur Proxmox.

Création de machine virtuelle

Une fois Promox installé et configuré et que les ISO des différents systèmes sont dans la banque de données. Il a fallu créer la première VM.

On nomme la VM et on lui attribue un ID pour l'identifier plus facilement parmi les autres VM.

On définit ensuite l'image système qui sera installée sur la VM en question. On peut remarquer qu'il est possible d'utiliser un lecteur CD/DVD physique, voir une clé USB directement branchée au serveur

Sur l'écran suivant, on peut configurer certains aspects du système, en cochant "Advanced". Ainsi, il sera possible de modifier le type de Firmware (BIOS ou UEFI), le type de disque (IDE, SCSI, SATA) et l'émulation SSD, le démarrage automatique, le type de CPU etc...

Beaucoups d'options à utiliser avec parcimonie et en connaissance de cause, sans quoi, la VM risque de ne pas démarrer si la configuration n'est pas adaptée.

A présent, il s'agit de définir les spécifications du CPU, avec éventuellement la possibilité de modifier les vCPU (processeurs virtuels).

Ensuite, j'ai défini la quantité de mémoire RAM allouée à la VM. Il est alors possible d'allouer une quantité maximale et minimale, permettant de limiter la monopolisation des ressources en fonction de l'utilisation de la machine.

La partie Network est assez simple en soi, on sélectionne l'interface "Bridge" et éventuellement le tag du VLAN (VLAN Tag)

La machine virtuelle est désormais créée, il ne reste plus qu'à la lancer.

Démarrer la machine virtuelle

Pour pouvoir lancer la VM nouvelle créée, il suffit de faire un clic droit sur l'icône de la machine dans le menu de gauche et sélectionner "Start"

L'autre option est de sélectionner la VM, comme fait précédemment, puis de sélectionner "Start" en haut à droite de l'écran. D'ailleurs, ce menu comporte un bouton "More" qui permet de détruire une machine et son stockage associé, cest-à-dire le disque virtuel.

Ce menu permet également de créer un template (C'est-à-dire un modèle de VM), que l'on pourra cloner à souhait

Une fois la machine démarrée, on peut accéder aux métriques en sélectionnant "Summary" (charge CPU, RAM, Espace de stockage etc...), il est d'ailleurs possible de suivre l'état de l'hyperviseur en sélectionnant "Datacenter" pui "Summary"

Enfin, pour accéder à une machine virtuelle que j'ai créé il me suffit tout simplement de double-cliquer sur son icône dans le menu de gauche. Cette manipulation ouvre une fenêtre qui donne un accès à l'interface graphique de la machine virtuelle.

Ce projet a grandement contribuer à mon développement professionnel puisqu'il m'a permis de m'initier au concept de la virtualisation et de comprendre son fonctionnement et son utilité.