Gemenskapslösning

Proxmox + TrueNAS på ZimaCube: guide för SATA-genomkoppling

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.

Att köra Proxmox på ZimaCube med TrueNAS SCALE i en VM kan fungera bra när TrueNAS får en hel fysisk SATA-/HBA-styrenhet genom PCIe-passthrough. Det viktiga är att låta TrueNAS ha direkt kontroll över ZFS-diskarna i stället för att presentera vanliga virtuella diskar, samt att kontrollera IOMMU-grupperna innan du anförtro dem dina data.

Communitykällan innehåller ett användbart verifierat resultat: när den inbyggda ASMedia 1166 SATA-styrenheten passerades vidare till en ny TrueNAS-VM exponerades de interna diskarna korrekt. Den dokumenterar också ett viktigt specialfall – när en andra SAS3008 HBA passerades vidare slutade den interna SATA-passthrough-funktionen att fungera för en användare. Den konflikten är konfigurationsspecifik, så se den som en felsökningsledtråd snarare än en universell begränsning.

Rekommenderad arkitektur

ZimaCube-maskinvara
   ↓
Proxmox VE-värd
   ↓
PCIe-passthrough: komplett SATA-/HBA-styrenhet
   ↓
TrueNAS SCALE-VM
   ↓
ZFS-pooler byggda direkt från fysiska diskar

Värden ska inte formatera eller montera de diskar som tilldelats till TrueNAS.

Varför det är bättre att passera igenom hela styrenheten

Om en hel styrenhet passeras vidare får TrueNAS direkt åtkomst till diskarna bakom den, inklusive enhetsidentitet och SMART-information när styrenheten stöder det. Det hindrar också Proxmox från att göra anspråk på samma diskar separat.

Skapa inte ZFS i TrueNAS ovanpå en uppsättning orelaterade virtuella Proxmox-diskar om målet är lagring som fungerar som en dedikerad lagringsenhet.

Steg 1: Aktivera IOMMU i den fasta programvaran och i Proxmox

Intel-system behöver VT-d/IOMMU aktiverat; AMD-system behöver motsvarande IOMMU-funktion. Proxmox behöver också IOMMU aktiverat på kärnnivå.

Förutsättningarna för Proxmox-passthrough beskriver kravet att passthrough-stöd måste aktiveras både i den fasta programvaran och i värdkärnan.

Steg 2: Identifiera SATA-styrenheten och dess IOMMU-grupp

Använd lspci på Proxmox-värden och identifiera styrenheten som hanterar de sex interna platserna. I källtråden identifierades en ASMedia 1166 SATA-styrenhet i dess ZimaCube-konfiguration.

Innan passthrough ska du kontrollera att styrenheten finns i en IOMMU-grupp som kan tilldelas säkert utan att andra nödvändiga enheter tas från Proxmox-värden.

Steg 3: Skapa TrueNAS-VM:n innan lagring ansluts

Bygg TrueNAS-VM:n med virtuell processor, minne, en liten separat startdisk och nätverksadapter. Installera TrueNAS, uppdatera det och bekräfta att VM:n startar normalt innan du tilldelar den fysiska lagringsstyrenheten.

Det gör det mycket enklare att avgöra om ett senare fel beror på PCIe-passthrough snarare än på själva gästinstallationen.

Steg 4: Koppla igenom hela SATA-styrenheten

Lägg till styrenheten som en PCI-enhet i TrueNAS-virtuella maskinen. Kontrollera efter uppstart lspci och TrueNAS lagringsgränssnitt för de fysiska diskarna.

I källfallet gjorde en återskapning av TrueNAS-virtuella maskinen, följt av att ASMedia-styrenheten lades till, att alla interna enheter visades korrekt.

Vad gör jag om styrenheten visas men diskarna inte gör det?

Kontrollera om gästens drivrutin lästes in, om styrenheten återställdes korrekt och om en annan passthrough-enhet stör. Källanvändaren upptäckte att genomkoppling av ytterligare en SAS3008-HBA till samma virtuella maskin förstörde beteendet hos den interna SATA-styrenheten; när den HBA-enheten togs bort återställdes de interna diskarna.

Det är inget bevis på att de två styrenheterna aldrig kan samexistera. Det är ett tecken på att de bör testas en i taget.

Skapa inte poolen förrän passthrough är stabilt

Innan du skapar ZFS:

  • starta om Proxmox flera gånger;
  • starta om TrueNAS-virtuella maskinen flera gånger;
  • bekräfta att alla diskar återkommer konsekvent;
  • kontrollera att SMART-informationen visas;
  • kontrollera att inga diskar fortfarande är monterade av värden.

En lagringstopologi som fungerar en gång men försvinner efter en varm omstart är inte redo för produktionsdata.

Planera säkerhetskopior för Proxmox och TrueNAS separat

Proxmox-säkerhetskopior skyddar den virtuella maskinens konfiguration och TrueNAS-startdisken. De ersätter inte ZFS-ögonblicksbilder, replikering eller en extern säkerhetskopia av datapoolen.

virtualiseringsguiden ger ett bredare Proxmox-sammanhang.

När bare-metal TrueNAS är enklare

Om maskinens enda uppgift är lagring eliminerar bare-metal TrueNAS ett virtualiseringslager och komplexiteten med passthrough. Proxmox plus virtualiserat TrueNAS är mer meningsfullt när du även behöver andra virtuella maskiner, GPU-arbetsbelastningar, labbmiljöer eller Proxmox-hanteringsfunktioner på samma server.

Vanliga frågor

Bör jag koppla igenom enskilda diskar eller hela SATA-styrenheten?

För TrueNAS/ZFS är det renare att koppla igenom hela den fysiska lagringsstyrenheten, eftersom TrueNAS då äger diskarna bakom den direkt.

Kan Proxmox fortfarande använda diskar på en genomkopplad styrenhet?

Nej. När hela styrenheten har tilldelats till TrueNAS ska Proxmox inte hantera diskarna bakom den styrenheten.

Varför försvann de interna diskarna när jag lade till en andra HBA?

En användare i communityt observerade problem vid användning av passthrough med en SAS3008. Testa styrenheterna oberoende av varandra och undersök IOMMU-/återställningsbeteendet i stället för att anta ett universellt hårdvarufel.

Behöver jag fortfarande säkerhetskopior om jag använder ZFS?

Ja. ZFS skyddar dataintegriteten och tillhandahåller ögonblicksbilder, men det är inte en säkerhetskopia utanför enheten.