Aller au contenu
Virtualisation medium

Stockage local Proxmox VE : comprendre les backends et faire le bon choix

18 min de lecture

Logo Proxmox

Où stocker vos VM ? Cette question simple cache des choix qui conditionnent tout le reste : snapshots possibles ou non, performances, risque de perte de données, facilité de dépannage. Ce guide vous donne les modèles mentaux pour comprendre comment Proxmox gère le stockage, puis les critères pour choisir le bon backend.

Avant de choisir quoi que ce soit, vous devez comprendre comment Proxmox organise le stockage. Sans ce modèle mental, vous allez confondre disques, backends et storages — et faire des erreurs.

C’est le matériel brut : /dev/sda, /dev/nvme0n1. C’est ce que vous branchez physiquement sur votre serveur.

Point clé : Proxmox ne peut rien faire directement avec un disque physique. Un disque doit être “organisé” par un backend avant d’être utilisable.

Un choix à faire tôt : comment votre contrôleur expose les disques ?

ModeCe que voit ProxmoxConséquence
HBA / JBODChaque disque individuellementZFS possible, vous gérez la redondance
RAID matérielUn seul “disque” virtuelZFS déconseillé, LVM-thin recommandé

Si vous avez un contrôleur RAID matériel et voulez utiliser ZFS, reconfigurez-le en mode HBA/JBOD. Sinon, ZFS ne verra pas les vrais disques et ne pourra pas garantir l’intégrité.

Le backend est la technologie qui organise les données sur le(s) disque(s). C’est lui qui détermine les fonctionnalités disponibles : snapshots, compression, intégrité…

Proxmox supporte trois backends locaux principaux :

BackendComment il stocke les disques VMFonctionnalités clés
DirectoryFichiers (qcow2, raw) sur ext4/XFSSimplicité, transparence
LVM-thinVolumes logiques blocThin provisioning, snapshots rapides
ZFSZvols ou datasetsIntégrité, compression, snapshots

Un storage Proxmox est un objet logique configuré dans l’interface. C’est ce que vous voyez dans Datacenter → Storage et ce que vous choisissez quand vous créez une VM.

Un storage définit :

  • Le backend utilisé (Directory, LVM-thin, ZFS…)
  • Les content types autorisés (disques VM, ISO, backups…)
  • Le chemin ou pool où les données sont stockées

La phrase clé : Proxmox ne stocke pas “des VM”. Il stocke des contenus (images, backup, iso…) sur un backend, via un storage configuré.

Modèle mental du stockage Proxmox : des disques physiques vers les backends (LVM-thin, ZFS, ext4) puis vers les storages Proxmox

Cette architecture en 3 couches a des conséquences pratiques :

  • Vous pouvez avoir 3 disques mais 1 seul storage (3 disques en ZFS raidz)
  • Vous pouvez avoir 1 disque avec 2 storages (un pour VM, un pour backups)
  • Quand vous créez une VM, vous choisissez un storage, pas un disque

Avant de choisir entre LVM-thin, ZFS ou Directory, vous devez comprendre deux concepts qui changent tout.

Les backends stockent les disques VM de deux façons fondamentalement différentes :

ApprocheBackendsComment ça marche
FichierDirectoryLe disque VM est un fichier (.qcow2, .raw) visible dans un répertoire
BlocLVM-thin, ZFS (zvol)Le disque VM est un volume bloc, pas directement visible comme fichier

Ce que ça implique :

CritèreFichier (Directory)Bloc (LVM-thin, ZFS)
DebugFacile : ls, cp, mountPlus technique : lvs, zfs list
Backup hors ProxmoxSimple copie de fichierNécessite des outils spécifiques
PerformanceCorrecte (overhead filesystem)Meilleure (accès direct)
SnapshotsVia qcow2 (overhead cumulatif)Natifs au backend (plus efficaces)

En résumé : fichier = transparence et simplicité ; bloc = performance et fonctionnalités.

C’est une confusion fréquente qui mène à des pertes de données.

ConceptCe que c’estDurée de vieProtection
SnapshotPoint de restauration sur le même storageCourt terme (heures/jours)Aucune si le storage meurt
BackupCopie indépendante sur un autre storageLong termeSurvit à la perte du storage source

Le snapshot sert à expérimenter : “je fais une mise à jour risquée, si ça casse, je rollback en 2 secondes”. C’est rapide, c’est pratique, mais ce n’est pas une sauvegarde.

Le backup sert à restaurer après un incident : disque mort, erreur humaine, ransomware. Il doit être sur un autre support (autre disque, NAS, cloud).

La règle : les snapshots facilitent les opérations quotidiennes, les backups protègent contre les catastrophes. Vous avez besoin des deux.

Pour choisir un backend, vous devez savoir ce qui compte pour vous. Voici les 4 critères qui différencient réellement les options.

La question : si un bit se corrompt silencieusement sur le disque (“bit rot”), est-ce que je le saurai ?

BackendDétection corruptionCorrection automatique
Directory (ext4/XFS)❌ Non❌ Non
LVM-thin❌ Non❌ Non
ZFS✅ Oui (checksums)✅ Oui (si mirror/raidz)

Si l’intégrité est votre priorité #1 → ZFS est le seul backend local qui la garantit.

La question : quelle latence et quels IOPS pour mes VM ?

BackendPerformance relativeNotes
Directory (ext4)⭐⭐ CorrecteOverhead du filesystem, snapshots qcow2 peuvent dégrader
LVM-thin⭐⭐⭐ BonneAccès bloc direct, snapshots efficaces
ZFS⭐⭐⭐ Bonne à excellenteCopy-on-write a un coût, mais le cache ARC compense

Si la performance est votre priorité #1 → LVM-thin ou ZFS sur SSD/NVMe.

La question : est-ce que je peux débugger, migrer, récupérer facilement ?

BackendDebugMigrationRécupération après incident
Directory✅ Fichiers visibles✅ Copie simple✅ Outils standards
LVM-thin⚠️ Commandes LVM⚠️ Export/import⚠️ Nécessite expertise
ZFS⚠️ Commandes ZFSzfs send/recv✅ Résilience intégrée

Si l’opérabilité est votre priorité #1 → Directory pour la transparence, ZFS pour la résilience.

La question : quelle est la probabilité que je fasse une erreur en production ?

BackendConcepts à maîtriserPièges fréquents
DirectoryQuasi aucunPeu de pièges
LVM-thinThin provisioning, surveillancePool plein = catastrophe
ZFSARC, vdevs, datasets, scrubRAM insuffisante, mauvais design

Si la simplicité est votre priorité #1 → Directory ou LVM-thin avec surveillance.

Si votre priorité #1 est…Choisissez…Parce que…
IntégritéZFSSeul backend avec checksums
Performance pureLVM-thin ou ZFSAccès bloc, pas d’overhead fichier
Transparence / debugDirectoryFichiers visibles, outils classiques
SimplicitéLVM-thin (défaut)Déjà configuré, équilibre correct

Chaque backend a un “caractère” distinct. Plutôt que des fiches techniques, voici comment les comprendre.

Promesse : “Je vois mes données, je copie, je monte, je dépanne avec des outils que je connais.”

Forces :

  • Aucun concept nouveau à apprendre (c’est du Linux classique)
  • Les disques VM sont des fichiers : ls, cp, mount -o loop fonctionnent
  • Tous les content types possibles (VM, ISO, backup, templates)
  • Pas de prérequis matériel ou RAM

Faiblesses :

  • Snapshots via qcow2 : fonctionnent, mais créent un overhead cumulatif
  • Pas de détection de corruption (vous faites confiance au disque)
  • Performances correctes mais pas optimales

Cas typiques : stocker vos ISO d’installation, vos backups, vos templates de conteneurs. Aussi adapté pour un homelab ultra-simple où vous voulez comprendre ce qui se passe.

Promesse : “Snapshots instantanés, thin provisioning, bonnes performances — tant que je surveille mon pool.”

Forces :

  • Snapshots en une fraction de seconde, quelle que soit la taille
  • Thin provisioning : sur-allouer sans gaspiller d’espace réel
  • Bonnes performances I/O (accès bloc direct)
  • Pas de prérequis RAM (contrairement à ZFS)

Faiblesses :

  • Le piège du pool plein (voir section modes de panne)
  • Pas de checksums (corruption silencieuse non détectée)
  • Commandes LVM à connaître pour le debug et la maintenance

Le concept clé : thin provisioning

Le thin provisioning vous permet de promettre plus d’espace qu’il n’en existe. Vous créez 10 VM avec des disques de 100 Go sur un pool de 500 Go. Tant que l’espace réellement écrit ne dépasse pas 500 Go, tout va bien.

C’est comme un hôtel qui accepte 150 réservations pour 100 chambres : ça fonctionne tant que tout le monde ne vient pas en même temps.

Le danger : si vos VM écrivent plus que l’espace disponible, le pool se remplit et tout se fige. C’est le mode de panne #1 avec LVM-thin.

Cas typiques : c’est le défaut de Proxmox pour les VM et conteneurs. Gardez-le si vous débutez, mais apprenez à surveiller.

Promesse : “Vos données sont protégées contre la corruption, avec snapshots, compression, et redondance — si vous avez les ressources.”

Forces :

  • Intégrité garantie : chaque bloc a un checksum, la corruption est détectée
  • En mirror/raidz : correction automatique des erreurs
  • Compression native (LZ4 quasi gratuit, économise 20-40%)
  • Snapshots solides et efficaces
  • zfs send/recv pour les migrations et backups

Faiblesses :

  • Consommation RAM : ZFS utilise la mémoire pour son cache (ARC)
  • Incompatible avec les contrôleurs RAID matériels (veut voir les vrais disques)
  • Plus de concepts à maîtriser (pools, vdevs, datasets, scrub…)
  • Copy-on-write a un coût sur les écritures aléatoires

Le concept clé : copy-on-write et ARC

ZFS ne modifie jamais les données en place. Quand vous écrivez, il écrit ailleurs puis met à jour les pointeurs. C’est ce qui permet les snapshots instantanés et la protection contre la corruption.

L’ARC (Adaptive Replacement Cache) est le cache de lecture de ZFS. Il utilise la RAM disponible pour accélérer les lectures. Par défaut, ZFS peut prendre jusqu’à 50% de la RAM — ce n’est pas un bug, c’est une optimisation.

Recommandations RAM :

  • Minimum : 8 Go totaux
  • Confortable : 16 Go totaux
  • Règle empirique : ~1 Go par To de stockage (indicatif, pas strict)

Cas typiques : données importantes que vous ne voulez jamais perdre, serveur avec 2 disques identiques pour un mirror, environnement où l’intégrité prime sur la simplicité.

Chaque backend a ses modes de panne caractéristiques. Connaître ces pièges vous permet de les éviter ou de réagir correctement.

Le scénario : vos VM écrivent plus que l’espace réel du thin pool. À 100% d’utilisation :

  1. Les écritures échouent
  2. Les VM se figent ou plantent
  3. Vous devez agir en urgence

Prévention :

  • Surveiller régulièrement : lvs -o lv_name,data_percent
  • Alerte à 80%, action immédiate à 90%
  • Ne jamais laisser atteindre 100%

Récupération : agrandir le pool, supprimer des snapshots inutiles, ou supprimer une VM non critique pour libérer de l’espace.

Moins fréquent mais tout aussi grave. Le thin pool a deux composants : data (vos données) et metadata (l’index). Si les metadata saturent, même avec de l’espace data libre, tout se fige.

Prévention : surveiller aussi metadata_percent avec lvs.

Le scénario : ZFS consomme trop de RAM pour l’ARC, le système swappe, tout devient lent.

Symptômes : système très lent, free -h montre peu de RAM disponible, swap utilisé.

Prévention :

  • Avoir assez de RAM (8 Go minimum, 16 Go confortable)
  • Si nécessaire, limiter l’ARC dans /etc/modprobe.d/zfs.conf

Récupération : redémarrer, puis ajuster la limite ARC ou ajouter de la RAM.

Le scénario : un disque du pool tombe en panne.

  • En single : perte de données
  • En mirror : le pool continue en mode dégradé, performances réduites
  • En raidz/raidz2 : idem, avec tolérance à 1 ou 2 pannes

Prévention :

  • Utiliser mirror ou raidz (jamais single pour des données importantes)
  • Configurer des alertes sur l’état du pool
  • Lancer des scrubs mensuels pour détecter les problèmes tôt

Récupération : remplacer le disque défaillant et lancer un resilver.

Le scénario : vous avez ajouté des disques n’importe comment au pool.

ZFS ne permet pas de retirer un vdev une fois ajouté. Si vous ajoutez un disque seul (single) à un pool mirror, vous créez un point de faiblesse permanent.

Prévention : planifier le design du pool avant de le créer. Un mirror de 2 disques, c’est bien. Ajouter des disques se fait par paires en mirror.

Le scénario : le filesystem ext4/XFS se remplit ou se fragmente.

Symptômes : erreurs “no space left on device”, performances dégradées.

Prévention :

  • Surveiller avec df -h
  • Ne pas dépasser 80-85% d’utilisation

Récupération : libérer de l’espace, défragmenter si nécessaire (rare avec ext4/XFS).

Le scénario : vous gardez beaucoup de snapshots sur des VM en format qcow2.

Chaque snapshot crée une “chaîne” de fichiers. Plus la chaîne est longue, plus les performances se dégradent et plus la récupération devient complexe.

Prévention : supprimer les snapshots obsolètes régulièrement. Un snapshot n’est pas un backup.

Sans entrer dans les procédures de création (qui seront dans les homelabs), voici les patterns d’architecture à retenir.

RôleContent typesBackend recommandé
Runtimeimages, rootdirLVM-thin ou ZFS
Archivesbackup, iso, vztmplDirectory (ext4)

Pourquoi séparer ? Les backups peuvent être volumineux et imprévisibles. Si un backup remplit votre storage VM, vos VM se figent. En séparant, un problème sur l’un n’affecte pas l’autre.

C’est souvent le cas en homelab. Vous devez accepter un compromis :

  • LVM-thin (défaut Proxmox) : snapshots rapides, thin provisioning, mais surveillance nécessaire
  • ZFS single : intégrité des données, mais aucune redondance (risqué pour des données importantes)

Dans les deux cas, vos backups doivent aller ailleurs (NAS, disque USB externe, cloud).

La configuration idéale pour un homelab sérieux :

  • ZFS mirror : intégrité + redondance, un disque peut tomber sans perte
  • Ou LVM-thin sur chaque disque : un pour VM, un pour backups

Le mirror est généralement le meilleur choix si vous avez 8 Go+ de RAM.

Plusieurs options selon vos priorités :

  • ZFS raidz (3 disques) : équivalent RAID5, 1 disque de parité
  • ZFS raidz2 (4+ disques) : équivalent RAID6, 2 disques de parité
  • Séparation par rôle : 2 disques en mirror pour VM, 1 disque en Directory pour backups

Sans entrer dans les procédures de création, voici les commandes pour lire l’état de vos storages :

Fenêtre de terminal
# Vue globale de tous les storages Proxmox
pvesm status
# LVM-thin : utilisation du pool (surveiller data% et meta%)
lvs -o lv_name,data_percent,metadata_percent
# ZFS : état du pool (doit afficher ONLINE)
zpool status
# ZFS : utilisation de l'espace
zpool list
# Directory : espace disque classique
df -h

Ces commandes sont de la lecture, pas de la modification. Utilisez-les pour comprendre l’état de votre système.

  1. Storage ≠ Disque : Proxmox organise le stockage en 3 couches (disques → backend → storage). Comprendre cette architecture évite les confusions.

  2. Fichier vs bloc : Directory stocke des fichiers visibles, LVM-thin et ZFS stockent des volumes bloc. Chacun a ses avantages.

  3. Snapshot ≠ Backup : le snapshot est un point de restauration court terme, le backup est une copie indépendante long terme. Vous avez besoin des deux.

  4. LVM-thin : efficace mais à surveiller : thin provisioning est puissant, mais un pool plein = catastrophe. Surveillez à partir de 80%.

  5. ZFS : intégrité contre ressources : checksums et redondance, mais demande de la RAM et des disques en mode HBA.

  6. Directory : simplicité et transparence : idéal pour ISO, backups, templates. Pas optimal pour les VM en production.

  7. Séparez runtime et archives : un storage pour vos VM, un autre pour vos backups.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.