Partie 1 sur 4 · terminée
Préparer le second nœud
Clé USB, première installation, réseau et conversion du contrôleur PERC en mode IT.
Préparer la clé USB avec diskpart
La clé n'affichait que 282 Ko dans la fenêtre de formatage Windows : restes d'une ancienne clé bootable. On la nettoie entièrement avec diskpart, en identifiant le disque avant toute écriture.
Repérer le symptôme
Capacité affichée de 282 Ko : la table de partitions vient d'une ancienne image ISO. Un formatage Windows classique ne récupérerait pas les 8 Go.

Lister les disques (lecture seule)
Invite de commandes en administrateur :
diskpart
list diskLa clé se reconnaît à sa taille : Disque 4, 7633 Mo.

Confirmer le bon disque
select disk 4
detail diskVérifier « Type : USB » et l'absence de C:, D:, E:.

Piège évité : le disque 0


Vérifier puis effacer la clé

select disk 4
detail disk
clean
list disk
Recréer une partition
convert mbr
create partition primary
format fs=exfat quick label=CLE_USB
assign
exitCe formatage est de toute façon écrasé ensuite par la gravure de l'ISO : aucun impact.

Créer la clé d'installation Proxmox VE 9.2
ISO officielle Proxmox VE 9.2-1, intégrité vérifiée par SHA-256, gravure en mode DD (obligatoire pour l'image hybride Proxmox).
Télécharger et vérifier l'ISO
Source : proxmox.com/downloads.
Get-FileHash "$env:USERPROFILE\Downloads\proxmox-ve_9.2-1.iso" -Algorithm SHA256Graver avec Rufus en mode DD
Périphérique : CLE_USB. Type de démarrage : l'ISO. Rufus 4.15 détecte une image ISOHybrid et impose le mode DD.

Installer Proxmox sur le Dell PowerEdge T320
Démarrage sur la clé via le Boot Manager (F11), puis installation par défaut ext4 sur LVM.
Démarrer sur la clé
F11 au démarrage → BIOS Boot Menu → la clé USB.

Lancer l'installeur

Patienter sur « create LVs »
La barre reste bloquée à 3 % pendant que l'installeur met le disque à zéro. Comportement connu sur les PowerEdge et les réinstallations : on laisse tourner tant que les voyants disques clignotent.

Corriger le réseau après l'installation
L'installeur a rattaché le pont vmbr0 à une carte « nic2 » inexistante (l'interface USB de l'iDRAC). L'interface web était donc injoignable.
Diagnostiquer
ip a
cat /etc/network/interfaces

Trouver le port câblé
ip link set nic0 up
ip link set nic1 up
sleep 5
ip -br link
Sauvegarder et corriger
cp /etc/network/interfaces /root/interfaces.bak
sed -i 's/bridge-ports nic2/bridge-ports nic1/' /etc/network/interfaces
sed -i '/^iface nic2/d' /etc/network/interfaces
grep -n nic /etc/network/interfaces
Appliquer et tester
ifreload -a
ping -c 3 192.168.1.254

Inventaire matériel et décision
Objectif retenu : un cluster de haute disponibilité avec proxmox01, réplication ZFS et un QDevice. ZFS doit voir les disques directement, ce que le RAID matériel empêche.
Relever le matériel
lscpu | grep -E 'Model name|^CPU\(s\)|Socket|Core|Thread'
free -h
lsblk -d -o NAME,SIZE,MODEL,ROTA,TRAN
lspci | grep -iE 'raid|sas|sata'
lspci -vnn -s 08:00.0 | head -n 5| Composant | Valeur relevée | Conséquence |
|---|---|---|
| Processeur | 1 × Xeon E5-2420 v2, 6 cœurs / 12 threads, 2,2 GHz | Suffisant pour un labo ou une petite production |
| Mémoire | 24 Go DDR3-1600 (3 × 8 Go, 3 emplacements libres) | Facteur limitant pour la haute disponibilité |
| Contrôleur | PERC H710P Adapter (LSI SAS2208), révision D1 | RAID matériel, incompatible avec ZFS en l'état |
| Disques | 13 × SAS 1,2 To 10K 2,5″ (châssis 16 baies) | ≈ 15,6 To bruts |
| Réseau | 2 ports Broadcom (nic0, nic1) + interface USB iDRAC | Câble sur nic1 |
| Service Tag | [masqué] | Référence support Dell |
Décision
Passer la PERC H710P en mode IT (HBA) avec la procédure fohdeesha, qui prend en charge ce modèle. Le serveur étant vide, c'est le moment où l'opération coûte le moins. Proxmox sera ensuite réinstallé sur ZFS.
Préparer le flash : outils et matériel
Prérequis imposés par le guide fohdeesha : outils vérifiés, batterie RAID débranchée, disques retirés, quatre réglages du BIOS.
Télécharger et vérifier les outils
Source : fohdeesha.com/docs/perc.html, ZIP v2.6 (17/11/2025).
Get-FileHash "$env:USERPROFILE\Downloads\perc-crossflash-v2.6.zip" -Algorithm MD5
Expand-Archive "$env:USERPROFILE\Downloads\perc-crossflash-v2.6.zip" -DestinationPath "$env:USERPROFILE\Downloads\perc-crossflash"Éteindre et ouvrir le serveur
shutdown -h nowDébrancher l'alimentation, déverrouiller la serrure du capot (sens inverse des aiguilles d'une montre), lever le loquet. Se décharger sur le châssis métallique.

Localiser la carte PERC et sa batterie
La PERC H710P Adapter est la carte dressée près du processeur, avec deux radiateurs à ailettes. La batterie est le bloc noir « Li-ion 3.7V 1.6Wh », réf. 70K80, sous les radiateurs.


Débrancher la batterie
Tirer le petit connecteur repéré « BATTERY » sur le circuit, sans tirer sur les fils.


Retirer tous les disques
Numéroter chaque tiroir avant de le sortir.



Messages attendus au démarrage
La PERC signale la batterie absente et les disques manquants : c'est prévu. Appuyer sur Espace, sans toucher à C, Ctrl+R ou D.

Régler le BIOS (F2 → System BIOS)
| Menu | Réglage | Valeur pour le flash |
|---|---|---|
| Processor Settings | Virtualization Technology | Disabled |
| Integrated Devices | SR-IOV Global Enable | Disabled |
| Integrated Devices | I/OAT DMA Engine | Disabled |
| Boot Settings | Boot Mode | BIOS (déjà le cas) |




Phase FreeDOS : identifier et nettoyer la carte
On démarre sur l'ISO FreeDOS du guide pour lire le modèle exact de la carte, puis effacer le firmware Dell.
Démarrer sur la clé
F11 → BIOS Boot Menu → Hard drive C: → Back USB.



Piège : Rufus a gravé son propre FreeDOS
La commande info est introuvable : Rufus avait utilisé son option intégrée « FreeDOS » au lieu de l'ISO. Il faut sélectionner l'ISO avec le bouton SÉLECTION. Le nom de volume doit devenir LSI_FREEDOS.




Identifier la carte
info
Effacer le firmware Dell
BGPD1CRSConfirmer avec Entrée à chaque invite. Ne jamais couper le courant pendant l'opération. Clavier AZERTY sous FreeDOS : le chiffre 1 s'obtient avec Maj + 1.



Phase Linux : flasher le firmware IT
On démarre sur l'ISO Linux du guide (Debian 11 live), qui contient les scripts de flash.
Graver l'ISO Linux
Même piège que précédemment : le type de démarrage affichait « MS-DOS ». Il faut sélectionner deesh-Linux-v2.3.iso. Le nom de volume devient « Debian bullseye 20220617 ».


Passer root
La session user s'ouvre automatiquement (mot de passe : live). Le clavier est en QWERTY.
sudo su -

Flasher le firmware IT
D1-H710Redémarrer : plantage attendu
rebootLe guide l'annonce : le premier démarrage après le flash plante. Le BIOS l'a signalé au démarrage suivant. Appuyer sur F1 pour continuer, puis redémarrer sur la clé.

Réinscrire l'adresse SAS d'origine
sudo su -
setsas 5c81f660f7f69d00

Vérifier la carte
info
Installer le module de démarrage BIOS
Nécessaire pour démarrer Proxmox sur des disques branchés à la carte (mode BIOS).
flashboot /root/Bootloaders/mptsas2.romLe chemin respecte la casse : Bootloaders avec un B majuscule et un s.
| Caractère voulu (QWERTY) | Touche sur clavier AZERTY |
|---|---|
| a | Q |
| m | , (virgule) |
| w | Z |
| / . - et chiffres | Pavé numérique |


Remettre le serveur en service
On éteint, on remet les disques et on rétablit les réglages du BIOS utiles à Proxmox.
Éteindre et remettre les disques
poweroffRetirer la clé, remettre les 13 disques dans l'ordre de la numérotation et fermer chaque poignée.

Rétablir le BIOS
| Réglage | Valeur finale |
|---|---|
| Virtualization Technology | Enabled (indispensable aux VM) |
| I/OAT DMA Engine | Enabled |
| SR-IOV Global Enable | Enabled (sans effet tant qu'aucune VM ne l'utilise) |
| Boot Mode | BIOS |


Partie 2 sur 4 · terminée
Réinstaller sur ZFS et aligner les versions
Système en miroir ZFS, tri des disques, pool vmdata, sauvegarde et mise à jour des deux nœuds.
Réinstaller Proxmox sur ZFS en miroir
Les disques sont maintenant vus un par un. On réinstalle proxmox02 avec le système sur un miroir ZFS de deux disques, et on garde les autres disques pour le stockage des VM.
Graver la clé Proxmox
Même ISO vérifiée qu'en phase B (proxmox-ve_9.2-1.iso), gravée sur la clé EMTEC de 16 Go. Schéma MBR, système de destination BIOS. Rufus impose le mode DD. Graver Proxmox sur cette clé efface les outils de flash : le ZIP reste sur le PC pour un éventuel retour au firmware Dell.

Ne pas choisir un disque seul
L'écran « Target Harddisk » propose un seul disque, sans redondance. On n'y choisit rien et on clique sur Options.

Choisir zfs (RAID1) sur les deux disques de 300 Go
Filesystem : zfs (RAID1). Cliquer sur Deselect All, puis Harddisk 0 = /dev/sda et Harddisk 1 = /dev/sdb (Toshiba AL13SEB300). Toutes les autres lignes restent sur « -- do not use -- ». L'onglet Advanced Options reste par défaut.


Pays, fuseau horaire et clavier
France, Europe/Paris, clavier fr.
Nom d'hôte : reprendre le domaine de proxmox01
L'installeur refuse pve.example.invalid. Les deux nœuds d'un cluster doivent partager le même domaine, on le lit donc sur proxmox01 :
hostname -fRésultat : proxmox01.home.local. Le T320 devient proxmox02.home.local. Interface nic1, IP 192.168.1.20/24, passerelle et DNS 192.168.1.254. On laisse cochée « Pin network interface names », qui évite le problème de nic2 de la première installation.


Vérifier le récapitulatif et installer
Décocher « Automatically reboot after successful installation », pour pouvoir retirer la clé avant le redémarrage. Cliquer sur Install, retirer la clé à la fin, puis Reboot.

Premier démarrage : écran LSI
La carte en mode IT liste les disques et charge son module de démarrage. La fenêtre « Avis de Résolution » vient de l'écran ViewSonic, pas du serveur.

Vérifier le miroir système
Interface web sur https://192.168.1.20:8006, puis dans le Shell :
zpool status rpool

Configurer les dépôts et mettre à jour proxmox02
Sans abonnement, Proxmox interroge par défaut le dépôt Enterprise et échoue. On le remplace par le dépôt No-Subscription, puis on fait une mise à jour complète.
Désactiver les dépôts Enterprise
Nœud → Updates → Repositories. Déplier pve-enterprise.sources et ceph.sources avec le ⊞, sélectionner chaque ligne et cliquer sur Disable. Le message « No Proxmox VE repository is enabled » qui apparaît ensuite est normal.



Ajouter le dépôt No-Subscription
Add → OK sur le message d'abonnement → Repository : No-Subscription → Add. Proxmox VE 9 écrit le dépôt au format deb822, dans /etc/apt/sources.list.d/proxmox.sources.

Rafraîchir la liste des paquets
apt update
Utiliser apt full-upgrade, pas apt upgrade
apt full-upgrade
Redémarrer et vérifier la version
reboot
pveversion
Diagnostiquer les disques et créer le pool vmdata
Sur les 11 disques de 1,2 To, certains se révèlent inutilisables et d'autres portent une protection DIF héritée de l'ancien RAID. On les trie avant de créer le pool.
Inventaire des disques
lsblk -d -o NAME,SIZE,MODEL,SERIAL,ROTAQuatre disques affichent une taille de 0B : sdc, sde, sdg et sdl.
Lire le diagnostic du noyau
dmesg | grep -iE 'sd[cegl]\]|protection|sector size'| Disques | Modèle | Message |
|---|---|---|
| sdc | Toshiba AL15SEB120NY | Hardware Error, ASC 0x4C : échec de l'auto-configuration interne |
| sde, sdg, sdl | Seagate ST1200MM0007 | Not Ready, « cause not reportable » |
| sdd, sdi, sdj, sdk | Toshiba / Seagate | « Enabling DIF Type 2 protection » : utilisables, mais protégés |
Lire l'état de santé
apt install -y sg3-utils smartmontools
for d in sdc sde sdg sdl; do echo "=== $d ==="; smartctl -H -i /dev/$d | grep -iE 'product|serial|health|status|ready'; donesdc : « medium or hardware error (serious) ». sde, sdg, sdl : « device is NOT READY ».
Tenter de récupérer un Seagate
sg_start --start /dev/sde
sg_requests -vv /dev/sde
sg_readcap -l /dev/sde
sg_format --format --early /dev/sdeLe disque refuse le démarrage, ne donne pas sa capacité et bloque le formatage dès la lecture de ses paramètres (« MODE SENSE: Device not ready »). Deux Seagate du même modèle fonctionnent dans d'autres baies : le problème vient donc des disques, pas des baies.
Écarter les 4 disques hors service
| Disque | N° de série | Verdict |
|---|---|---|
| sdc | 60G0A0LNFQVF | En panne (erreur matérielle) |
| sde | S3L0BJM8 | Hors service (not ready) |
| sdg | S3L0AV2T | Hors service (not ready) |
| sdl | S3L0BJHA | Hors service (not ready) |
Il reste 7 disques sains de 1,2 To.
Retirer la protection DIF de 4 disques
Des utilisateurs Proxmox ont signalé des « protection errors » avec des disques DIF Type 2. On les reformate en secteurs standard, sans protection :
for d in sdd sdi sdj sdk; do sg_format --format --fmtpinfo=0 --early /dev/$d; doneSuivre le formatage
for d in sdd sdi sdj sdk; do echo -n "$d : "; sg_requests --progress /dev/$d; doneEnviron 1 h 30 pour les Seagate, un peu moins pour le Toshiba. Quand un disque a fini, il n'affiche plus de pourcentage. Ne pas redémarrer pendant le formatage.
Vérifier, redémarrer, revérifier
for d in sdd sdi sdj sdk; do echo "== $d"; sg_readcap -l /dev/$d | grep -iE 'prot_en|Logical block length'; done
reboot
dmesg | grep -i 'DIF'Relever les identifiants permanents
for d in sdd sdf sdh sdi sdj sdk sdm; do echo "$d -> $(ls -l /dev/disk/by-id/ | grep -E "scsi-3.* -> ../../$d\$" | awk '{print $9}')"; doneLes lettres sdX peuvent changer d'un démarrage à l'autre. Le pool est créé à partir des identifiants /dev/disk/by-id, qui ne changent jamais.
Effacer les métadonnées de l'ancien RAID Dell
Une première tentative de création échoue : trois disques non reformatés gardent une signature ddf_raid_member. Plutôt que de forcer avec -f, on efface ces signatures. Sinon mdadm pourrait tenter de réassembler l'ancien RAID au démarrage.
wipefs -a /dev/disk/by-id/scsi-3500003989830a355 /dev/disk/by-id/scsi-35000c50075d82f9f /dev/disk/by-id/scsi-35000c50075d6177fCréer le pool : 3 miroirs et 1 disque de secours
Chaque miroir associe des disques de séries ou de fabricants différents, pour éviter qu'une même série tombe en panne des deux côtés d'un miroir.
zpool create -o ashift=12 vmdata \
mirror /dev/disk/by-id/scsi-35000039ab8631565 /dev/disk/by-id/scsi-35000c500d1b47b53 \
mirror /dev/disk/by-id/scsi-3500003989830a355 /dev/disk/by-id/scsi-35000c500d1b43447 \
mirror /dev/disk/by-id/scsi-35000c50075d82f9f /dev/disk/by-id/scsi-35000c500d1b40ddf \
spare /dev/disk/by-id/scsi-35000c50075d6177f
zpool status vmdataActiver la compression et déclarer le stockage
zfs set compression=lz4 vmdata
pvesm add zfspool vmdata --pool vmdata --content images,rootdir --sparse 1
pvesm status--sparse 1 active le thin provisioning : l'espace des disques virtuels n'est réservé qu'au fur et à mesure de leur remplissage.
Sauvegarder proxmox01 puis l'aligner sur proxmox02
proxmox01 doit passer à la même version que proxmox02. Avant de le mettre à jour, on sauvegarde ses 6 VM sur le nouveau pool, via un partage NFS limité à proxmox01.
Créer le dossier de sauvegarde (proxmox02)
zfs create -o mountpoint=/vmdata/backups vmdata/backups
zfs list -o name,mountpoint,used,avail vmdata/backupsInstaller le serveur NFS (proxmox02)
apt install -y nfs-kernel-serverPartager le dossier avec proxmox01 uniquement
echo '/vmdata/backups 192.168.1.75(rw,sync,no_subtree_check,no_root_squash)' >> /etc/exports
exportfs -ra
exportfs -vno_root_squash est nécessaire, car vzdump s'exécute en root. En contrepartie, l'accès est limité à la seule adresse de proxmox01.
Déclarer le stockage de sauvegarde (proxmox01)
pvesm scan nfs 192.168.1.20
pvesm add nfs backup-proxmox02 --server 192.168.1.20 --export /vmdata/backups --content backup --prune-backups keep-last=3
pvesm statuskeep-last=3 conserve les 3 dernières sauvegardes de chaque VM et supprime les plus anciennes.
Inventaire des VM
qm list
pct list6 VM, toutes en marche, aucun conteneur.
Sauvegarder les 6 VM en arrière-plan
Lancée comme un service système, la sauvegarde continue même si l'on ferme le navigateur. Le mode snapshot laisse les VM allumées.
systemd-run --unit=sauvegarde-vms vzdump --all --mode snapshot --compress zstd --storage backup-proxmox02
journalctl -u sauvegarde-vms -fVérifier les archives
pvesm list backup-proxmox02| VM | Durée | Archive |
|---|---|---|
| 100 Master | 1 min 23 | 4,04 Go |
| 101 GLPI | 6 min 17 | 8,71 Go |
| 102 SRV-UBUNTU-PROD | 5 min 06 | 5,96 Go |
| 103 srv-pdf-01 | 1 min 55 | 5,13 Go |
| 104 tacticalrmm | 2 min 59 | 3,27 Go |
| 105 srv-ingest-01 | 1 min 26 | 2,47 Go |
Mettre à jour proxmox01
apt update
apt full-upgradeL'installation ne coupe pas les VM. Seul le redémarrage les arrête.
Activer le démarrage automatique des VM
Seule la VM 105 avait onboot: 1. Sans ce réglage, les 5 autres seraient restées arrêtées après le redémarrage.
grep -H onboot /etc/pve/qemu-server/*.conf
for v in 100 101 102 103 104; do qm set $v --onboot 1; doneRedémarrer proxmox01 et vérifier
reboot
pveversion
qm list| Nœud | Version | Noyau |
|---|---|---|
| proxmox01 | 9.2.26 | 7.0.14-28-pve |
| proxmox02 | 9.2.26 | 7.0.14-28-pve |
Partie 3 sur 4 · terminée
Créer le cluster et ajouter le QDevice
Cluster glg-cluster à deux nœuds et troisième vote dans une VM Debian.
Créer le cluster glg-cluster
Prérequis vérifiés, cluster créé sur proxmox01 qui porte les VM, puis jonction de proxmox02.
Faire connaître chaque nœud à l'autre
# sur proxmox01
sed -i '/proxmox01.home.local/a 192.168.1.20 proxmox02.home.local proxmox02' /etc/hosts
# sur proxmox02
sed -i '/proxmox02.home.local/a 192.168.1.75 proxmox01.home.local proxmox01' /etc/hosts
# vérification croisée
ping -c 2 proxmox02 # depuis proxmox01
ping -c 2 proxmox01 # depuis proxmox02Vérifier la synchronisation de l'heure
chronyc tracking | grep -E 'Reference ID|System time|Leap status'| Nœud | Serveur NTP | Écart | État |
|---|---|---|---|
| proxmox01 | ntp.orlinum.fr | 0,03 ms | Normal |
| proxmox02 | dns.freewebworld.fr | 0,19 ms | Normal |
Créer le cluster (proxmox01)
pvecm create glg-cluster
pvecm statusTransport knet, Secure auth on, Nodes 1, Quorate Yes. Les VM n'ont pas été touchées.
Joindre proxmox02
# sur proxmox02
pvecm add 192.168.1.75
# vérification
pvecm statusMot de passe root de proxmox01, puis yes pour l'empreinte. Résultat : Nodes 2, Total votes 2, Quorate Yes.
Corriger la configuration de stockage
cat /etc/pve/storage.cfg
pvesm set local-lvm --nodes proxmox01
pvesm set backup-proxmox02 --nodes proxmox01
pvesm add zfspool local-zfs --pool rpool/data --content images,rootdir --sparse 1 --nodes proxmox02
pvesm add zfspool vmdata --pool vmdata --content images,rootdir --sparse 1 --nodes proxmox02
pvesm statusSur proxmox02, les stockages de proxmox01 apparaissent en « disabled ». Ce n'est pas une erreur : ils ne sont pas destinés à ce nœud.
Ajouter le troisième vote : QDevice
Un arbitre extérieur aux deux nœuds donne la majorité au survivant en cas de panne. Première tentative dans WSL2, abandonnée, puis mise en place dans une VM Debian sous VMware Workstation.
Tentative : WSL2 en mode mirrored
wsl --versionWSL 3.0.1 et Windows 11 25H2 sont compatibles avec le mode mirrored, qui partage la carte réseau du PC.
Set-Content -Path "$env:USERPROFILE\.wslconfig" -Encoding ascii -Value "[wsl2]`r`nnetworkingMode=mirrored"
wsl --shutdownDans Ubuntu (WSL) : les cartes eth0 à eth4 sont recopiées, mais toutes restent DOWN, sans adresse ni route. La cause la plus fréquente (IPv6 désactivé dans Windows) est écartée.
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters" -Name DisabledComponents -ErrorAction SilentlyContinue
Get-NetAdapterBinding -ComponentID ms_tcpip6 | Format-Table Name, EnabledAbandonner WSL et revenir à l'état initial
Chaque essai coupe le labo MagicMirror et Docker. On change de méthode et on retire le réglage :
Remove-Item "$env:USERPROFILE\.wslconfig"
wsl --shutdownVM Debian sous VMware Workstation
VMware Workstation Pro 25H2 est installé sur le PC. Une petite VM Debian (512 Mo de RAM, 8 Go de disque) en réseau Pont (Bridged) obtient sa propre adresse sur la Freebox.

Télécharger et vérifier Debian 13.7.0
cd "$env:USERPROFILE\Downloads"
Invoke-WebRequest -Uri "https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-13.7.0-amd64-netinst.iso" -OutFile "debian-13.7.0-amd64-netinst.iso"
Invoke-WebRequest -Uri "https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/SHA512SUMS" -OutFile "SHA512SUMS-debian.txt"
$h = (Get-FileHash ".\debian-13.7.0-amd64-netinst.iso" -Algorithm SHA512).Hash.ToLower()
Select-String -Path ".\SHA512SUMS-debian.txt" -Pattern $hInstaller Debian
L'installeur tourne en 800 × 600. Pour l'agrandir : menu Affichage → Étirer l'invité.

Vérifier que la VM est sur le réseau local
su -
ip -4 addr show
ip routeRéserver l'adresse dans la Freebox
Freebox OS → Paramètres de la Freebox → DHCP → Baux statiques → Ajouter : MAC 00:0C:29:xx:xx:xx, IP 192.168.1.25, commentaire qdevice-proxmox. Le cluster enregistre l'adresse du QDevice : elle ne doit jamais changer.
Installer l'arbitre et SSH dans la VM
apt update
apt install -y corosync-qnetd openssh-server
systemctl status corosync-qnetd --no-pager | head -n 5Autoriser temporairement root en SSH
Proxmox se connecte une fois en root par mot de passe pour échanger les certificats. Le réglage est placé dans un fichier séparé, facile à retirer :
echo 'PermitRootLogin yes' > /etc/ssh/sshd_config.d/99-qdevice-temp.conf
systemctl reload ssh
sshd -T | grep -i permitrootloginInstaller le client sur les deux nœuds
apt install -y corosync-qdevice # sur proxmox01 ET proxmox02Connecter le QDevice au cluster (proxmox01)
pvecm qdevice setup 192.168.1.25
pvecm status| Membre | Votes | État |
|---|---|---|
| proxmox01 (192.168.1.75) | 1 | A,V,NMW |
| proxmox02 (192.168.1.20) | 1 | A,V,NMW |
| QDevice (192.168.1.25) | 1 | actif |
Refermer root par mot de passe
rm /etc/ssh/sshd_config.d/99-qdevice-temp.conf
systemctl reload ssh
sshd -T | grep -i permitrootloginPartie 4 sur 4 · en cours
Préparer, migrer et répliquer les VM
Agent QEMU, snapshots, RAM, migration à chaud et réplication ZFS.
Préparer les VM pour la migration et la haute disponibilité
Trois préparatifs : l'agent QEMU dans chaque VM, la suppression des snapshots et des ISO qui bloquent la migration, et l'ajustement de la RAM.
Installer l'agent QEMU (VM 101 et 102, en SSH)
sudo apt install -y qemu-guest-agent
sudo systemctl start qemu-guest-agent
systemctl is-active qemu-guest-agentLe message « unit files have no installation config » qui peut apparaître avec enable est normal : le service démarre automatiquement dès que la VM détecte le canal de Proxmox.
qm agent 101 ping && echo "Agent OK" # depuis proxmox01VM 103 : passer par la console Proxmox
Son adresse IPv4 n'était pas connue de proxmox01, et SSH n'accepte que des clés. La console intégrée de Proxmox (VM → Console) suffit. Le compte s'écrit gerard, avec un seul « r ».

qm agent 103 ping && echo "Agent OK"Localiser les disques des VM
grep -HE '^(scsi|virtio|sata|ide|efidisk|tpmstate)[0-9]+:' /etc/pve/qemu-server/10*.confLes lignes répétées révèlent des snapshots : chaque snapshot recopie la configuration de la VM dans le fichier.
Lister puis supprimer les snapshots
for v in 100 101 102 103 104 105; do echo "== VM $v"; qm listsnapshot $v; doneqm delsnapshot 101 last_snapshot
qm delsnapshot 101 ubuntu_server_101
qm delsnapshot 101 nextcloud02
qm delsnapshot 101 nextcloud_back
qm delsnapshot 102 last_snapshot102
qm delsnapshot 102 ubuntu_server_01
qm delsnapshot 103 meshcentral
qm delsnapshot 104 snaphot104
qm delsnapshot 104 pre-tactical-installÉjecter les ISO
Les ISO insérées n'existent que sur proxmox01 et feraient échouer la migration.
for v in 100 101 102 103 104; do qm set $v --ide2 none,media=cdrom; done
grep -H '^ide2' /etc/pve/qemu-server/10*.confMesurer la RAM réellement utilisée
for v in 100 101 102 103 104 105; do echo -n "VM $v : "; qm status $v --verbose | awk '/^maxmem:/{m=$2} /^mem:/{u=$2} END{printf "utilise %.1f Go / alloue %.1f Go\n", u/1073741824, m/1073741824}'; done| VM | Utilisée (Go) | Allouée (Go) | Nouvelle allocation (Go) |
|---|---|---|---|
| 100 | 1,0 | 2 | 2 |
| 101 | 3,5 | 4 | 4 |
| 102 | 2,2 | 4 | 4 |
| 103 | 2,6 | 6 | 4 |
| 104 | 2,0 | 8 | 4 |
| 105 | 1,1 | 2 | 2 |
| Total | 12,4 | 26 | 20 |
Réduire la RAM des VM 103 et 104
Une réduction de RAM n'est prise en compte qu'après un arrêt complet de la VM. Les VM sont coupées une à deux minutes.
qm set 103 --memory 4096
qm set 104 --memory 4096
qm shutdown 103 && qm start 103
qm shutdown 104 && qm start 104
qm listMigrer les VM à chaud vers proxmox02
proxmox02 devient le nœud principal, avec plus de RAM et des disques en miroir. La migration à chaud copie les disques locaux pendant que les VM tournent.
Migration test : VM 105
qm migrate 105 proxmox02 --online --with-local-disks --targetstorage vmdataMigrer les 5 autres VM en arrière-plan
systemd-run --unit=migration-vms bash -c 'for v in 100 103 104 102 101; do echo "=== Migration VM $v"; qm migrate $v proxmox02 --online --with-local-disks --targetstorage vmdata || exit 1; done; echo "=== TOUTES LES MIGRATIONS TERMINEES"'
journalctl -u migration-vms -fLa boucle s'arrête à la première erreur, pour ne pas toucher aux VM suivantes.
Incident sur la VM 101 : diagnostiquer
journalctl -u migration-vms | grep -iE 'error|warn|fail' | grep -v 'Logical volume'
qm status 101 --verbose | grep -E '^(status|qmpstatus|lock):' # sur proxmox02Erreur : « resume failed - VM 101 not running ». Les disques étaient complets sur proxmox02 et l'ancienne copie déjà supprimée.
journalctl --since "2026-11-10 15:40" --until "2026-11-10 15:46" | grep -iE 'oom|killed|kvm|101|qmeventd'Cause : kvm: Restoring registers after init: Failed to set special registers: Invalid argument.
Comprendre la cause : le type de processeur
for v in 100 101 102 103 104 105; do echo -n "VM $v : "; qm config $v | grep '^cpu:' || echo "cpu: (défaut)"; doneSeule la VM 101 utilisait le type host, qui expose toutes les instructions du processeur de départ. Le Xeon E5-2420 v2 de proxmox02 (Ivy Bridge, 2013) ne les a pas toutes, et la reprise a échoué. Les autres VM, en x86-64-v2-AES, ont migré sans problème.
Redémarrer GLPI et corriger le type de processeur
qm start 101
qm set 101 --cpu x86-64-v2-AES
qm shutdown 101 && qm start 101
qm config 101 | grep '^cpu:'Créer le pool vmdata sur proxmox01 et répliquer
La réplication copie les disques vers un pool ZFS du même nom sur l'autre nœud. On transforme le disque de 500 Go de proxmox01 en pool vmdata, puis on crée les tâches de réplication.
Vérifier que les volumes LVM sont vides
lvs
lsblk -o NAME,SIZE,TYPE,MOUNTPOINTLibérer le disque de 500 Go
pvesm remove storage_vms
vgremove -f storage_vms
pvremove /dev/sda
wipefs -a /dev/sda
ls -l /dev/disk/by-id/ | grep -E 'ata-.* -> ../../sda$'Créer le pool et l'étendre aux deux nœuds
zpool create -o ashift=12 -O compression=lz4 vmdata /dev/disk/by-id/ata-WDC_WD5000LPLX-16ZNTT1_WD-WX41A38DNF1V
pvesm set vmdata --nodes proxmox01,proxmox02
zpool status vmdata
pvesm statusLe pool repose sur un seul disque, sans redondance. C'est acceptable, puisqu'il ne contient que des copies de secours. Environ 450 Go disponibles.
Créer les tâches de réplication (proxmox02)
for v in 100 101 102 103 104 105; do pvesr create-local-job $v-0 proxmox01 --schedule "*/15"; done
pvesr statusUne copie toutes les 15 minutes, de proxmox02 vers proxmox01. La première copie est complète, les suivantes ne transfèrent que les modifications.
Fin de la partie 4 et points de contrôle
Les étapes ci-dessous n'ont pas encore été réalisées. Elles seront détaillées une fois exécutées.
Prochaines étapes
- Contrôler la première synchronisation :
pvesr status, avec une date LastSync, FailCount 0 et State OK pour les 6 VM. - Activer la haute disponibilité sur les VM et définir leur nœud préféré (proxmox02).
- Tester une bascule réelle : arrêt de proxmox02, redémarrage des VM sur proxmox01, puis retour.
- Supprimer l'ancien stockage
backup_storage. - Mettre en place Proxmox Backup Server et remplacer l'arbitre par un Raspberry Pi.
- Surveiller que l'alerte « Last Level Cache Error » ne revient pas.
Retours arrière
Firmware Dell : démarrer sur l'ISO FreeDOS du guide, puis :
BGPD1RVTRebrancher ensuite la batterie RAID.
Réseau de la première installation : cp /root/interfacs.bak /etc/network/interfaces && ifreload -a
VM : restauration depuis backup-proxmox02 (sauvegardes du 10/11/2026).
Valeurs de référence
| Cluster | glg-cluster, transport knet, 3 votes |
| proxmox01 | 192.168.1.75, Fujitsu ESPRIMO Q556/2, 16 Go, vmdata 450 Go (1 disque) |
| proxmox02 | 192.168.1.20, Dell PowerEdge T320, 24 Go, rpool miroir 2 × 300 Go, vmdata 3 × miroir 1,2 To + 1 spare |
| QDevice | 192.168.1.25, VM Debian 13.7 sous VMware Workstation, bail statique Freebox |
| Version | Proxmox VE 9.2.26, noyau 7.0.14-28-pve sur les deux nœuds |
| Carte du T320 | PERC H710P Adapter D1 → LSI SAS9207-8i IT, FW 20.00.07.00, adresse SAS 5c81f660f7f69d00 |
| Sauvegardes | NFS backup-proxmox02 sur proxmox02:/vmdata/backups, keep-last=3 |
| Réplication | proxmox02 → proxmox01 toutes les 15 min, 6 tâches |
| Type de CPU des VM | x86-64-v2-AES (obligatoire avec le Xeon Ivy Bridge) |
Sources : fohdeesha – PERC crossflash · Proxmox – High Availability · Forum Proxmox – dépôts PVE 9 · Nuvotex – disques SAS à 0B · TrueNAS – protection Type 2 · Microsoft – WSL networking · GitHub WSL #11002 · Forum Proxmox – 2 nodes + QDevice · Forum Proxmox – erreur de migration CPU · Debian – téléchargement