Communityoplossing

Proxmox + TrueNAS op ZimaCube: handleiding voor SATA-passthrough

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.

Proxmox draaien op ZimaCube met TrueNAS SCALE in een VM kan goed werken wanneer TrueNAS via PCIe-passthrough een volledige fysieke SATA/HBA-controller ontvangt. Het belangrijkste is dat de ZFS-schijven rechtstreeks onder beheer van TrueNAS blijven in plaats van dat je gewone virtuele schijven aanbiedt, en dat je de IOMMU-groepen controleert voordat je je gegevens eraan toevertrouwt.

De communitybron bevat een nuttig, geverifieerd resultaat: het doorgeven van de ingebouwde ASMedia 1166-SATA-controller aan een nieuwe TrueNAS-VM maakte de interne schijven succesvol zichtbaar. Er wordt ook een belangrijk randgeval beschreven: het toevoegen van passthrough voor een tweede SAS3008-HBA veroorzaakte bij één gebruiker een fout in de passthrough van de interne SATA-controller. Dat conflict is configuratiespecifiek; beschouw het daarom als een aanwijzing voor probleemoplossing en niet als een universele beperking.

Aanbevolen architectuur

ZimaCube-hardware
   ↓
Proxmox VE-host
   ↓
PCIe-passthrough: volledige SATA/HBA-controller
   ↓
TrueNAS SCALE-VM
   ↓
ZFS-pools die rechtstreeks van fysieke schijven zijn opgebouwd

De host mag de aan TrueNAS toegewezen schijven niet formatteren of mounten.

Waarom het beter is de volledige controller door te geven

Door een volledige controller door te geven, krijgt TrueNAS rechtstreeks zicht op de schijven erachter, inclusief apparaatidentiteit en SMART-informatie wanneer de controller dit ondersteunt. Ook voorkomt dit dat Proxmox dezelfde schijven zelfstandig claimt.

Maak geen ZFS in TrueNAS boven op een stapel niet-gerelateerde virtuele Proxmox-schijven als je opslaggedrag zoals bij een appliance wilt.

Stap 1: Schakel IOMMU in de firmware en in Proxmox in

Op Intel-systemen moet VT-d/IOMMU zijn ingeschakeld; op AMD-systemen is de overeenkomstige IOMMU-functie vereist. Ook moet IOMMU aan de kernelzijde van Proxmox zijn ingeschakeld.

De vereisten voor Proxmox-passthrough documenteren dat passthrough-ondersteuning zowel in de firmware als in de kernel van de host moet zijn ingeschakeld.

Stap 2: Identificeer de SATA-controller en de bijbehorende IOMMU-groep

Gebruik lspci op de Proxmox-host en identificeer de controller die de zes interne bays bedient. In de bronthread werd in de ZimaCube-configuratie een ASMedia 1166-SATA-controller geïdentificeerd.

Controleer vóór passthrough of de controller zich in een IOMMU-groep bevindt die veilig kan worden toegewezen, zonder essentiële, niet-gerelateerde apparaten aan de Proxmox-host te onttrekken.

Stap 3: Maak de TrueNAS-VM voordat je opslag koppelt

Bouw de TrueNAS-VM met virtuele CPU, geheugen, een kleine afzonderlijke opstartschijf en netwerkadapter. Installeer TrueNAS, werk het bij en controleer of de VM normaal opstart voordat je de fysieke opslagcontroller toewijst.

Dit maakt het veel eenvoudiger om vast te stellen of een latere fout wordt veroorzaakt door PCIe-passthrough en niet door de installatie zelf van de gast.

Stap 4: Sluis de volledige SATA-controller door

Voeg de controller als PCI-apparaat toe aan de TrueNAS-VM. Controleer na het opstarten lspci en de TrueNAS-opslaginterface voor de fysieke schijven.

In het brongeval verschenen alle interne schijven correct nadat de TrueNAS-VM opnieuw was aangemaakt en vervolgens de ASMedia-controller was toegevoegd.

Wat als de controller wel verschijnt, maar de schijven niet?

Controleer of de gastdriver is geladen, of de controller correct is gereset en of een ander passthrough-apparaat interferentie veroorzaakt. De gebruiker uit de bron ontdekte dat het doorlussen van een extra SAS3008-HBA naar dezelfde VM de werking van de interne SATA-controller verstoorde; na het verwijderen van die HBA verschenen de interne schijven weer.

Dat bewijst niet dat die twee controllers nooit naast elkaar kunnen werken. Het is wel aanleiding om één controller tegelijk te testen.

Maak de pool pas aan nadat passthrough stabiel is

Voordat je ZFS aanmaakt:

  • start Proxmox meerdere keren opnieuw op;
  • start de TrueNAS-VM meerdere keren opnieuw op;
  • bevestig dat alle schijven consistent terugkeren;
  • controleer of SMART zichtbaar is;
  • controleer of er geen schijven door de host gemount blijven.

Een opslagtopologie die één keer werkt maar na een warme herstart verdwijnt, is niet klaar voor productiegegevens.

Plan back-ups van Proxmox en TrueNAS afzonderlijk

Proxmox-back-ups beschermen de VM-configuratie en de TrueNAS-opstartschijf. Ze vervangen geen ZFS-snapshots, replicatie of externe back-up van de datapool.

De virtualisatiegids biedt meer context over Proxmox.

Wanneer TrueNAS op bare metal eenvoudiger is

Als de enige taak van de machine opslag is, verwijdert TrueNAS op bare metal een virtualisatielaag en de complexiteit van passthrough. Proxmox met een gevirtualiseerde TrueNAS is logischer wanneer je op dezelfde server ook andere VM's, GPU-workloads, labomgevingen of Proxmox-beheerfuncties nodig hebt.

Veelgestelde vragen

Moet ik afzonderlijke schijven of de volledige SATA-controller doorlussen?

Voor TrueNAS/ZFS is het een netter ontwerp om de volledige fysieke opslagcontroller door te sluizen, omdat TrueNAS dan rechtstreeks eigenaar is van de schijven die eraan zijn gekoppeld.

Kan Proxmox nog steeds schijven op een doorgeluste controller gebruiken?

Nee. Zodra de volledige controller aan TrueNAS is toegewezen, hoort Proxmox de schijven achter die controller niet meer te beheren.

Waarom verdwenen interne schijven nadat ik een tweede HBA had toegevoegd?

Een gebruiker uit de community merkte een interactie met een SAS3008-passthrough op. Test controllers afzonderlijk en controleer het IOMMU-/resetgedrag in plaats van uit te gaan van een universeel hardwaredefect.

Heb ik nog back-ups nodig als ik ZFS gebruik?

Ja. ZFS beschermt de integriteit en biedt snapshots, maar is geen back-up buiten het apparaat.