Homelab

Proxmox 8 sur Mac Pro 3.1 — Installation, ZFS raidz1 et fix Harpertown

Retour d'expérience sur l'installation de Proxmox 8.4 sur un Mac Pro 3.1 (dual Xeon Harpertown 2008), pool ZFS raidz1, et correctif du bug MSR IA32_DEBUGCTL.

Table des matières

Le Mac Pro 3.1 (2008) est une plateforme homelab sous-estimée : silencieuse, extensible, et disponible à moins de 200€ d’occasion. Ce guide couvre l’installation complète de Proxmox 8.4 avec ZFS raidz1 et les correctifs spécifiques aux CPU Harpertown.

Matériel

Composant Détail
Modèle Mac Pro 3.1 (Early 2008)
CPU 2× Intel Xeon E5462 (Harpertown, 4c/4t × 2 = 8 threads)
RAM 32 Go DDR2 ECC 800 MHz
Stockage boot SSD 120 Go (SATA via adaptateur)
Stockage data 4× HDD 2 To (ZFS raidz1)

Installation de Proxmox

Flashez l’ISO sur une clé USB :

dd if=proxmox-ve_8.4.iso of=/dev/sdX bs=4M status=progress

Au démarrage du Mac Pro, maintenez Option pour sélectionner la clé USB. Le Mac Pro 3.1 boot en mode BIOS legacy — si la clé ne s’affiche pas, essayez un autre port USB (les ports arrière fonctionnent mieux).

Boot EFI

Le Mac Pro 3.1 peut être capricieux avec certaines clés USB. Si ça bloque, gravez un DVD ou utilisez rEFInd comme bootloader intermédiaire.

Bug — MSR IA32_DEBUGCTL (Harpertown)

Après installation, les VMs crashent avec cette erreur dans les logs KVM :

kvm: vcpu0, guest rip=0xffffffff8104b90c, error 1,
     info 0: MSR_IA32_DEBUGCTL error

C’est un bug connu avec les Xeon Harpertown (architecture Penryn) — ces CPU ne supportent pas complètement le registre IA32_DEBUGCTL requis par KVM.

Correctif

# Option 1 : modifier le paramètre du module
echo "options kvm-intel ignore_msrs=Y" > /etc/modprobe.d/kvm-intel.conf

# Recharger sans redémarrer
modprobe -r kvm_intel
modprobe kvm_intel ignore_msrs=Y

# Vérifier
cat /sys/module/kvm_intel/parameters/ignore_msrs
# → Y

# Appliquer définitivement
update-initramfs -u -k all

Après reboot, les VMs démarrent et tournent stablement.

Configuration du pool ZFS raidz1

Raidz1 avec 4 disques de 2 To = 6 To utilisables (1 disque de parité).

# Identifier les disques par leur ID stable (éviter /dev/sdX qui peut changer)
ls -la /dev/disk/by-id/ | grep -v part | grep ata

# Créer le pool
zpool create -o ashift=12 \
  -O compression=lz4 \
  -O atime=off \
  -O xattr=sa \
  -O dnodesize=auto \
  datastore raidz1 \
  /dev/disk/by-id/ata-DISK1 \
  /dev/disk/by-id/ata-DISK2 \
  /dev/disk/by-id/ata-DISK3 \
  /dev/disk/by-id/ata-DISK4

# Vérifier
zpool status
zfs list

Paramètres recommandés

# ARC limité à 8 Go (éviter de tout consommer pour les VMs)
echo "options zfs zfs_arc_max=8589934592" > /etc/modprobe.d/zfs.conf

# Scrub hebdomadaire automatique (déjà configuré par Proxmox)
systemctl status zfs-scrub.timer

Ajouter le datastore à Proxmox

pvesm add zfspool datastore \
  --pool datastore \
  --sparse 1 \
  --content images,rootdir

Ou via l’interface : Datacenter → Storage → Add → ZFS.

SSD en cache L2ARC (optionnel)

# Ajouter un SSD comme cache de lecture
zpool add datastore cache /dev/disk/by-id/ata-SSD

# Vérifier
zpool status
# → cache: SSD affiché

Configuration réseau bridge

# /etc/network/interfaces
auto lo
iface lo inet loopback

auto enp0s3
iface enp0s3 inet manual

auto vmbr0
iface vmbr0 inet static
    address 192.168.1.10/24
    gateway 192.168.1.1
    bridge-ports enp0s3
    bridge-stp off
    bridge-fd 0

Performances observées

Après plusieurs mois avec 8-10 VMs simultanées :

Métrique Valeur
CPU moyen 15-40%
RAM utilisée 22-28 Go / 32
I/O ZFS (seq read) ~150 Mo/s
I/O ZFS (seq write) ~80 Mo/s
Température CPU 45-55°C

La ventilation Mac Pro (axiale, très silencieuse) gère parfaitement la thermique même sous charge.

Conclusion

Le Mac Pro 3.1 est une base homelab solide malgré ses 16 ans. Le seul vrai obstacle est le bug ignore_msrs — une fois corrigé, tout fonctionne parfaitement sous Proxmox 8.4.

RAM

Le Mac Pro 3.1 supporte jusqu’à 32 Go DDR2 ECC en 8 slots. Les barrettes appairées sont importantes pour les performances. Achetez en kits testés pour Mac Pro.

Comments