Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 616 minIntermédiaire

Créer une VM sous Proxmox : Debian 13 et Windows Server 2025

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • créer une VM Linux avec l'assistant et choisir chaque réglage ;
  • installer Windows Server 2025 avec les pilotes VirtIO ;
  • lire le fichier de configuration d'une VM ;
  • créer et piloter des VM avec la commande qm.

4 exercices corrigés

Créer une machine virtuelle sous Proxmox VE, c'est choisir son système, son matériel virtuel (processeur, mémoire, disque, carte réseau) et son stockage dans l'assistant Create VM, puis installer le système invité depuis une image ISO, exactement comme sur un serveur physique. Ce chapitre crée srv-journaux sous Debian 13, puis srv-ad2 sous Windows Server 2025 avec les pilotes VirtIO, explique chaque réglage et donne l'équivalent en ligne de commande.

Déposer les images ISO

Une VM s'installe depuis une image ISO rangée sur un stockage qui accepte le contenu ISO image : local, ou mieux le partage NFS truenas-nfs, visible par tous les nœuds. Sélectionne le stockage dans l'arbre, puis ISO Images :

  • Upload envoie un fichier depuis ton poste ;
  • Download from URL fait télécharger le fichier directement par l'hôte. Colle l'adresse de l'image, clique sur Query URL, et renseigne l'empreinte (Hash algorithm SHA-256 et Checksum) publiée par l'éditeur : Proxmox vérifie le fichier après le téléchargement.

Les images de Sorbier : debian-13.x.x-amd64-netinst.iso pour Debian 13, l'ISO d'évaluation de Windows Server 2025 (180 jours) pour les TP, ou l'ISO sous licence en production, et virtio-win.iso, les pilotes VirtIO pour Windows, publiés par le projet virtio-win (Fedora).

Créer une VM Debian 13, onglet par onglet

srv-journaux (VM 180, 192.168.10.180) recevra les journaux et la supervision. Clique sur Create VM en haut à droite.

OngletChampValeurExplication
GeneralNode, VM ID, Namepve1, 180, srv-journauxLe VMID suit la convention de Sorbier
OSISO imagedebian-13.x.x-amd64-netinst.isoL'image d'installation
Guest OSLinux, 6.x - 2.6 KernelProxmox ajuste ses réglages par défaut au système
SystemMachineq35Une carte mère virtuelle moderne (PCI Express)
BIOSOVMF (UEFI), avec Add EFI DiskDémarrage UEFI, comme un serveur actuel ; SeaBIOS reste possible pour un système ancien
SCSI ControllerVirtIO SCSI singleUn contrôleur par disque, ce qui permet un fil d'entrées-sorties (IO thread) par disque
Qemu AgentCochéProxmox dialoguera avec l'agent installé dans Debian
DisksBus/Device, Storage, Disk sizeSCSI 0, truenas-nfs (format qcow2), 100 GoStockage partagé : la VM pourra migrer et être protégée par la haute disponibilité
Discard, IO thread, SSD emulationCochésRend l'espace libéré au stockage, accélère les entrées-sorties
CPUSockets, Cores, Type1, 4, x86-64-v2-AES4 processeurs virtuels ; le type par défaut permet la migration entre hôtes de générations différentes
MemoryMemory (MiB)1638416 Gio ; dans Advanced, Ballooning Device reste coché
NetworkBridge, VLAN Tag, Modelvmbr0, 20, VirtIO (paravirtualized)Le VLAN des serveurs
FirewallCochéLe pare-feu de Proxmox pourra filtrer cette carte
ConfirmStart after createdCochéDémarre la VM sur l'installateur

Ouvre ensuite Console (noVNC, dans le navigateur) et installe Debian normalement : adresse fixe 192.168.10.180/28, passerelle 192.168.10.190, DNS 192.168.10.177, domaine ad.sorbier.example. Sans environnement de bureau : un serveur n'en a pas besoin, et il consomme de la mémoire et des mises à jour pour rien.

Après l'installation, installe l'agent invité :

bash
apt update
apt install qemu-guest-agent
systemctl start qemu-guest-agent

L'onglet Summary de la VM affiche alors ses adresses IP, et les boutons Shutdown et Reboot passent par l'agent. Le service démarre ensuite tout seul à chaque démarrage, dès que l'option QEMU Guest Agent est active sur la VM.

Les réglages qui comptent

Les processeurs virtuels (vCPU). Chaque cœur virtuel est un fil d'exécution que l'hyperviseur place sur un cœur physique quand la VM en a besoin. Donne à une VM le nombre de vCPU dont elle a réellement besoin, pas plus : une VM à 16 vCPU sur un hôte de 16 cœurs doit attendre que 16 cœurs soient libres en même temps pour avancer, ce qui la ralentit. Le type de processeur compte aussi :

TypeCe que voit la VMConséquence
x86-64-v2-AES (par défaut)Un jeu d'instructions commun aux processeurs récentsMigration possible entre hôtes de générations différentes
x86-64-v3, v4Des instructions plus récentes (AVX2…)Plus rapide pour certains logiciels, exige des hôtes récents
hostExactement le processeur de l'hôtePerformances maximales, mais migration à chaud seulement vers un hôte au processeur identique

La mémoire et le ballooning. La mémoire d'une VM est réservée sur l'hôte quand la VM l'utilise. Avec le ballooning (le pilote virtio-balloon), tu indiques une mémoire maximale et une mémoire minimale (Minimum memory) : quand l'hôte manque de mémoire, Proxmox reprend progressivement à la VM ce qu'elle n'utilise pas, jusqu'au minimum. Le mécanisme KSM (Kernel Samepage Merging) fusionne aussi les pages identiques entre VM, utile quand plusieurs VM ont le même système. Ces deux mécanismes amortissent un pic ; ils ne remplacent pas un bon dimensionnement (chapitre 12).

Le disque. Laisse le cache par défaut (Default (No cache)), le plus sûr en cas de coupure. Discard permet au système invité de signaler les blocs libérés (la commande fstrim sous Linux, l'optimisation des lecteurs sous Windows), pour qu'un stockage à allocation dynamique les récupère.

Le démarrage automatique. Dans Options : Start at boot démarre la VM avec l'hôte, et Start/Shutdown order fixe l'ordre et le délai. Chez Sorbier, srv-ad démarre en premier (ordre 1, puis 120 secondes d'attente) : les autres serveurs ont besoin du DNS et de l'annuaire en démarrant. L'option Protection empêche de supprimer la VM ou ses disques par erreur.

bash
qm set 177 --onboot 1 --startup order=1,up=120
qm set 177 --protection 1

Windows Server 2025 et les pilotes VirtIO

Windows ne contient pas les pilotes des périphériques VirtIO. Sans eux, l'installateur ne voit pas le disque ; avec, Windows est nettement plus rapide qu'avec des périphériques émulés. Pour srv-ad2 (VM 181, 192.168.10.181), les réglages qui diffèrent de la VM Debian :

OngletChampValeur
OSGuest OSMicrosoft Windows, 11/2022/2025
Add additional drive for VirtIO driversCoché, avec l'image virtio-win.iso
SystemMachine, BIOSq35, OVMF (UEFI) avec Add EFI Disk et Pre-Enroll keys (démarrage sécurisé)
Add TPM, VersionCoché, v2.0
DisksBus/Device, Disk sizeSCSI 0, 80 Go, avec Discard, IO thread et SSD emulation
CPUCores2
MemoryMemory (MiB)4096
NetworkModel, VLAN TagVirtIO (paravirtualized), 20

Pendant l'installation de Windows Server 2025 :

  1. À l'écran de choix de l'emplacement d'installation, aucun disque n'apparaît. Clique sur Load driver, parcours le lecteur de l'ISO VirtIO et choisis le dossier vioscsi\2k25\amd64. Le pilote Red Hat VirtIO SCSI pass-through controller s'installe et le disque apparaît.
  2. Termine l'installation.
  3. Une fois Windows démarré, ouvre le lecteur de l'ISO VirtIO et lance virtio-win-guest-tools.exe : il installe tous les pilotes (carte réseau NetKVM, ballooning, affichage…) et le QEMU Guest Agent.
  4. Configure l'adresse IP, le nom et le DNS, puis joins le serveur au domaine et promeus-le contrôleur de domaine en suivant le cours Windows Server.

Le fichier de configuration d'une VM

Toute la configuration d'une VM tient dans un fichier texte, /etc/pve/qemu-server/<VMID>.conf, répliqué sur tous les nœuds du cluster. Celui de srv-ad2 :

text
agent: 1
bios: ovmf
boot: order=scsi0;ide2;net0
cores: 2
cpu: x86-64-v2-AES
efidisk0: truenas-nfs:181/vm-181-disk-0.qcow2,efitype=4m,ms-cert=2023k,pre-enrolled-keys=1,size=528K
ide0: truenas-nfs:iso/virtio-win.iso,media=cdrom
ide2: truenas-nfs:iso/WindowsServer2025.iso,media=cdrom
machine: pc-q35-11.0
memory: 4096
name: srv-ad2
net0: virtio=BC:24:11:5E:2A:81,bridge=vmbr0,firewall=1,tag=20
onboot: 1
ostype: win11
scsi0: truenas-nfs:181/vm-181-disk-1.qcow2,discard=on,iothread=1,size=80G,ssd=1
scsihw: virtio-scsi-single
smbios1: uuid=7d3f0f4e-2b8e-4c39-9a51-5f6f2f0d1c81
tpmstate0: truenas-nfs:181/vm-181-disk-2.raw,size=4M,version=v2.0
vmgenid: 1c6b2a7e-8d4f-4f0e-b3a2-6e9d5c4b2a10

Lis-le comme une fiche matérielle : cores et memory pour les ressources, scsi0 pour le disque, net0 pour la carte réseau avec son adresse MAC et son VLAN, vmgenid pour l'identifiant de génération. Les adresses MAC des VM Proxmox commencent par BC:24:11, le préfixe réservé à l'éditeur. Pour un invité Windows, Proxmox fige la version de la carte mère virtuelle (pc-q35-11.0, la version de QEMU de l'hôte au moment de la création) : Windows supporte mal que son matériel change entre deux démarrages. On ne modifie pas ce fichier à la main pendant que la VM tourne : on passe par l'interface ou par qm set.

Créer les mêmes VM en ligne de commande

L'assistant n'est qu'une façade : les mêmes VM se créent avec qm create, ce qui permet de les scripter et de les documenter. La notation stockage:taille crée un nouveau disque de cette taille en Gio.

bash
# srv-journaux : Debian 13, 4 vCPU, 16 Gio, 100 Go sur le NFS de TrueNAS
qm create 180 --name srv-journaux --ostype l26 --machine q35 \
  --bios ovmf --efidisk0 truenas-nfs:1,format=qcow2,efitype=4m,pre-enrolled-keys=1 \
  --cpu x86-64-v2-AES --cores 4 --memory 16384 \
  --scsihw virtio-scsi-single \
  --scsi0 truenas-nfs:100,format=qcow2,discard=on,iothread=1,ssd=1 \
  --ide2 truenas-nfs:iso/debian-13.x.x-amd64-netinst.iso,media=cdrom \
  --net0 virtio,bridge=vmbr0,tag=20,firewall=1 \
  --agent enabled=1 --boot 'order=scsi0;ide2' --onboot 1

# srv-ad2 : Windows Server 2025, avec TPM et le lecteur des pilotes VirtIO
qm create 181 --name srv-ad2 --ostype win11 --machine q35 \
  --bios ovmf --efidisk0 truenas-nfs:1,format=qcow2,efitype=4m,pre-enrolled-keys=1 \
  --tpmstate0 truenas-nfs:1,version=v2.0 \
  --cpu x86-64-v2-AES --cores 2 --memory 4096 \
  --scsihw virtio-scsi-single \
  --scsi0 truenas-nfs:80,format=qcow2,discard=on,iothread=1,ssd=1 \
  --ide2 truenas-nfs:iso/WindowsServer2025.iso,media=cdrom \
  --ide0 truenas-nfs:iso/virtio-win.iso,media=cdrom \
  --net0 virtio,bridge=vmbr0,tag=20,firewall=1 \
  --agent enabled=1 --boot 'order=scsi0;ide2' --onboot 1

Remplace le nom des ISO par celui des fichiers que tu as déposés. Les commandes du quotidien :

CommandeEffet
qm listLes VM du nœud, leur état, leur mémoire
qm start 180Démarre la VM
qm shutdown 180Arrêt propre, demandé au système invité (par l'agent ou par ACPI)
qm stop 180Coupure immédiate, comme débrancher la prise : à éviter sauf VM bloquée
qm reboot 180Redémarrage propre
qm config 180Affiche la configuration
qm set 180 --memory 8192Change un réglage
qm disk resize 180 scsi0 +20GAgrandit le disque ; il faut ensuite agrandir la partition dans l'invité
qm terminal 180Console série (pour une VM configurée avec --serial0 socket)
qm destroy 180 --purgeSupprime la VM, ses disques et ses références (sauvegardes planifiées, haute disponibilité)

Les consoles

L'onglet Console ouvre noVNC, l'écran de la VM dans le navigateur. Deux autres consoles existent : SPICE, plus fluide pour un bureau graphique, avec le client virt-viewer sur le poste (il faut choisir l'affichage SPICE dans Hardware > Display), et xterm.js, un terminal texte pour les VM qui ont une console série, comme les modèles cloud-init du chapitre 8.

Exercices

Exercice 1 sur 4 Remplir l'assistant pour srv-web Réussi À revoir

Sorbier crée srv-web (VM 225) : Debian 13, serveur web de suivi des livraisons dans la DMZ (192.168.10.225/28, passerelle 192.168.10.238), 2 vCPU, 4 Gio de mémoire, 40 Go de disque sur le stockage partagé. Donne la valeur des champs VM ID, Name, Bridge, VLAN Tag, Model, Cores, Memory (MiB), Storage et Disk size, puis la passerelle à saisir pendant l'installation de Debian.

Voir la réponseMasquer la réponse de l'exercice 1

VM ID 225, Name srv-web, Bridge vmbr0, VLAN Tag 60 (la DMZ), Model VirtIO (paravirtualized), Cores 2, Memory (MiB) 4096, Storage truenas-nfs, Disk size 40. Pendant l'installation, la passerelle est 192.168.10.238, l'adresse du pare-feu dans la DMZ : la DMZ n'a pas de SVI sur le switch.

Tu avais trouvé ?

Exercice 2 sur 4 Windows ne voit pas le disque Réussi À revoir

Pendant l'installation de Windows Server 2025 dans une VM Proxmox, l'écran de choix de l'emplacement est vide. La VM a un disque SCSI 0 sur un contrôleur VirtIO SCSI single.

  1. Pourquoi Windows ne voit-il pas le disque ?
  2. Que fais-tu, précisément ?
  3. Que reste-t-il à installer une fois Windows démarré ?
Voir la réponseMasquer la réponse de l'exercice 2
  1. Windows n'a pas de pilote pour le contrôleur VirtIO SCSI, un périphérique paravirtualisé.
  2. Vérifie que l'ISO virtio-win.iso est montée dans un second lecteur CD. Clique sur Load driver, parcours ce lecteur, choisis le dossier vioscsi\2k25\amd64 et installe le pilote Red Hat VirtIO SCSI pass-through controller : le disque apparaît.
  3. Les autres pilotes (réseau NetKVM, ballooning…) et l'agent invité : lance virtio-win-guest-tools.exe depuis l'ISO VirtIO.

Tu avais trouvé ?

Exercice 3 sur 4 Le bon type de processeur Réussi À revoir

Le cluster de Sorbier a deux hôtes récents identiques et un troisième, plus ancien, d'une autre génération de processeur. Un technicien a mis le type host sur toutes les VM « pour aller plus vite ». Quel problème va-t-il rencontrer, et quand ? Que conseilles-tu ?

Voir la réponseMasquer la réponse de l'exercice 3

Avec le type host, la VM voit exactement les instructions du processeur de son hôte. La migration à chaud vers l'hôte plus ancien échouera ou fera planter la VM, puisque ce processeur n'a pas toutes ces instructions ; la haute disponibilité aura le même problème au moment de redémarrer la VM sur ce nœud. Il faut un type commun à tous les nœuds : le type par défaut x86-64-v2-AES, ou x86-64-v3 si les trois processeurs le gèrent. On garde host pour une VM qui ne migre jamais.

Tu avais trouvé ?

Exercice 4 sur 4 Lire une configuration Réussi À revoir

Voici un extrait de /etc/pve/qemu-server/179.conf. Donne, pour srv-gestion, le nombre de vCPU, la mémoire maximale et minimale, le VLAN, le stockage et la taille du disque, et dis si elle redémarre avec l'hôte.

text
balloon: 4096
cores: 4
memory: 8192
name: srv-gestion
net0: virtio=BC:24:11:3A:7C:09,bridge=vmbr0,firewall=1,tag=20
onboot: 1
scsi0: truenas-nfs:179/vm-179-disk-0.qcow2,discard=on,iothread=1,size=100G
startup: order=3,up=30
Voir la réponseMasquer la réponse de l'exercice 4

4 vCPU ; 8 192 Mio (8 Gio) au maximum et 4 096 Mio (4 Gio) au minimum grâce au ballooning ; VLAN 20 ; disque de 100 Go en qcow2 sur truenas-nfs ; elle démarre avec l'hôte (onboot: 1), en troisième position, 30 secondes avant la VM suivante.

Tu avais trouvé ?

Chapitre terminé !

Fais les 4 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Conteneurs LXC sous Proxmox : créer un CT, VM ou conteneur ?Revoir le sommaire du cours