Solution communautaire

Guide du passthrough SATA de Proxmox + TrueNAS sur ZimaCube

Users successfully virtualized TrueNAS under Proxmox by passing through the onboard ASMedia SATA controller, while one setup hit conflicts when adding a second SAS HBA.

Exécuter Proxmox sur un ZimaCube avec TrueNAS SCALE dans une VM peut très bien fonctionner lorsque TrueNAS reçoit un contrôleur SATA/HBA physique complet via le passthrough PCIe. L’essentiel est de laisser TrueNAS contrôler directement les disques ZFS plutôt que de lui présenter des disques virtuels ordinaires, et de vérifier les groupes IOMMU avant d’y placer vos données.

La source communautaire présente un résultat vérifié utile : le passthrough du contrôleur SATA ASMedia 1166 intégré vers une nouvelle VM TrueNAS a permis d’exposer les disques internes avec succès. Elle signale également un cas particulier important : l’ajout d’un second passthrough HBA SAS3008 a entraîné l’échec du passthrough SATA interne chez un utilisateur. Ce conflit dépend de la configuration ; considérez-le donc comme un indice de dépannage et non comme une limitation universelle.

Architecture recommandée

Matériel ZimaCube
   ↓
Hôte Proxmox VE
   ↓
Passthrough PCIe : contrôleur SATA/HBA complet
   ↓
VM TrueNAS SCALE
   ↓
Pools ZFS créés directement à partir de disques physiques

L’hôte ne doit pas formater ni monter les disques attribués à TrueNAS.

Pourquoi il est préférable d’utiliser le passthrough du contrôleur entier

Le passthrough d’un contrôleur entier permet à TrueNAS d’accéder directement aux disques qu’il dessert, notamment à leur identité et à leurs informations SMART lorsque le contrôleur les prend en charge. Il empêche également Proxmox de s’approprier indépendamment ces mêmes disques.

Ne créez pas de pool ZFS dans TrueNAS par-dessus une pile de disques virtuels Proxmox sans rapport si votre objectif est d’obtenir un comportement de stockage semblable à celui d’une appliance.

Étape 1 : Activer l’IOMMU dans le firmware et Proxmox

Les systèmes Intel nécessitent l’activation de VT-d/IOMMU ; les systèmes AMD nécessitent l’activation de la fonctionnalité IOMMU correspondante. Proxmox doit également avoir l’IOMMU activée au niveau du noyau.

Les conditions préalables au passthrough de Proxmox précisent que la prise en charge du passthrough doit être activée à la fois dans le firmware et dans le noyau de l’hôte.

Étape 2 : Identifier le contrôleur SATA et son groupe IOMMU

Utilisez lspci sur le nœud Proxmox et identifiez le contrôleur qui dessert les six baies internes. Le fil de discussion source a identifié un contrôleur SATA ASMedia 1166 dans sa configuration ZimaCube.

Avant le passthrough, vérifiez que le contrôleur se trouve dans un groupe IOMMU pouvant être attribué sans retirer au nœud Proxmox des périphériques essentiels non concernés.

Étape 3 : Créer la VM TrueNAS avant de connecter le stockage

Créez la VM TrueNAS avec un processeur virtuel, de la mémoire, un petit disque de démarrage séparé et une carte réseau. Installez TrueNAS, mettez-le à jour et vérifiez que la VM démarre normalement avant d’attribuer le contrôleur de stockage physique.

Cela permet de déterminer beaucoup plus facilement si une panne ultérieure provient du passthrough PCIe plutôt que de l’installation invitée elle-même.

Étape 4 : passer l’intégralité du contrôleur SATA

Ajoutez le contrôleur en tant que périphérique PCI à la machine virtuelle TrueNAS. Après le démarrage, vérifiez lspci et l’interface de stockage TrueNAS pour les disques physiques.

Dans le cas décrit par la source, recréer la machine virtuelle TrueNAS, puis ajouter le contrôleur ASMedia, a permis à tous les disques internes d’apparaître correctement.

Que faire si le contrôleur apparaît, mais pas les disques ?

Vérifiez si le pilote invité s’est chargé, si le contrôleur s’est correctement réinitialisé et si un autre périphérique en passthrough interfère. Dans le cas de la source, le passage d’un HBA SAS3008 supplémentaire à la même machine virtuelle a perturbé le fonctionnement du contrôleur SATA interne ; le retrait de ce HBA a rétabli l’accès aux disques internes.

Cela ne prouve pas que ces deux contrôleurs ne peuvent jamais coexister. Cela indique qu’il faut tester un contrôleur à la fois.

Ne créez pas le pool tant que le passthrough n’est pas stable

Avant de créer le pool ZFS :

  • redémarrez Proxmox plusieurs fois ;
  • redémarrez la machine virtuelle TrueNAS plusieurs fois ;
  • confirmez que tous les disques réapparaissent systématiquement ;
  • vérifiez la visibilité SMART ;
  • vérifiez qu’aucun disque ne reste monté par l’hôte.

Une topologie de stockage qui fonctionne une fois, mais disparaît après un redémarrage à chaud, n’est pas prête pour des données de production.

Planifier séparément les sauvegardes de Proxmox et de TrueNAS

Les sauvegardes Proxmox protègent la configuration de la machine virtuelle et le disque de démarrage de TrueNAS. Elles ne remplacent pas les instantanés ZFS, la réplication ni une sauvegarde externe du pool de données.

Le guide de virtualisation fournit davantage de contexte sur Proxmox.

Quand TrueNAS installé directement sur le matériel est plus simple

Si la seule fonction de la machine est le stockage, TrueNAS installé directement sur le matériel supprime une couche de virtualisation et la complexité du passthrough. Proxmox avec TrueNAS virtualisé est plus pertinent si vous avez également besoin d’autres machines virtuelles, de charges de travail GPU, d’environnements de laboratoire ou des fonctionnalités de gestion de Proxmox sur le même serveur.

FAQ

Dois-je passer les disques individuellement ou l’intégralité du contrôleur SATA ?

Pour TrueNAS/ZFS, passer l’intégralité du contrôleur de stockage physique est la conception la plus propre, car TrueNAS prend directement en charge les disques qui y sont raccordés.

Proxmox peut-il toujours utiliser les disques d’un contrôleur passé en passthrough ?

Non. Une fois le contrôleur entier attribué à TrueNAS, Proxmox ne doit pas gérer les disques qui y sont raccordés.

Pourquoi l’ajout d’un deuxième HBA a-t-il fait disparaître les disques internes ?

Un utilisateur de la communauté a constaté une interaction avec un SAS3008 en passthrough. Testez les contrôleurs séparément et examinez le comportement de l’IOMMU et de la réinitialisation plutôt que de supposer un défaut matériel universel.

Ai-je encore besoin de sauvegardes si j’utilise ZFS ?

Oui. ZFS protège l’intégrité et fournit des instantanés, mais ce n’est pas une sauvegarde hors appareil.