Uruchomienie Proxmox na ZimaCube z TrueNAS SCALE w maszynie wirtualnej może działać bardzo dobrze, gdy TrueNAS otrzyma cały fizyczny kontroler SATA/HBA za pośrednictwem przekazywania PCIe. Kluczowe jest pozostawienie dysków ZFS pod bezpośrednią kontrolą TrueNAS zamiast prezentowania zwykłych dysków wirtualnych oraz sprawdzenie grup IOMMU przed powierzeniem systemowi danych.
Źródło społecznościowe zawiera przydatny, zweryfikowany wynik: przekazanie wbudowanego kontrolera SATA ASMedia 1166 do nowej maszyny wirtualnej TrueNAS pomyślnie udostępniło dyski wewnętrzne. Odnotowano również istotny przypadek brzegowy — dodanie drugiego kontrolera HBA SAS3008 przez przekazywanie spowodowało u jednego użytkownika niepowodzenie przekazywania wewnętrznego SATA. Ten konflikt zależy od konfiguracji, dlatego należy traktować go jako wskazówkę dotyczącą rozwiązywania problemów, a nie uniwersalne ograniczenie.
Zalecana architektura
Sprzęt ZimaCube
↓
Host Proxmox VE
↓
Przekazywanie PCIe: kompletny kontroler SATA/HBA
↓
Maszyna wirtualna TrueNAS SCALE
↓
Pule ZFS tworzone bezpośrednio z fizycznych dysków
Host nie powinien formatować ani montować dysków przypisanych do TrueNAS.
Dlaczego lepiej przekazać cały kontroler
Przekazanie całego kontrolera zapewnia TrueNAS bezpośredni dostęp do znajdujących się za nim dysków, w tym do ich identyfikatorów i informacji SMART, jeśli kontroler je obsługuje. Uniemożliwia także Proxmoxowi niezależne przejęcie tych samych dysków.
Nie twórz ZFS w TrueNAS na stosie niezwiązanych ze sobą wirtualnych dysków Proxmox, jeśli zależy Ci na zachowaniu pamięci masowej przypominającym dedykowane urządzenie.
Krok 1: Włącz IOMMU w oprogramowaniu układowym i Proxmox
W systemach Intel należy włączyć VT-d/IOMMU, a w systemach AMD — odpowiadającą funkcję IOMMU. Proxmox wymaga również włączenia IOMMU po stronie jądra.
Dokument Wymagania wstępne przekazywania w Proxmox opisuje konieczność włączenia obsługi przekazywania zarówno w oprogramowaniu układowym, jak i w jądrze hosta.
Krok 2: Zidentyfikuj kontroler SATA i jego grupę IOMMU
Użyj lspci na hoście Proxmox i zidentyfikuj kontroler obsługujący sześć wewnętrznych zatok. Wątek źródłowy wskazywał kontroler SATA ASMedia 1166 w konfiguracji ZimaCube.
Przed przekazaniem upewnij się, że kontroler znajduje się w grupie IOMMU, którą można bezpiecznie przypisać, bez odbierania hostowi Proxmox niezwiązanych z nim, niezbędnych urządzeń.
Krok 3: Utwórz maszynę wirtualną TrueNAS przed podłączeniem pamięci masowej
Utwórz maszynę wirtualną TrueNAS z wirtualnym procesorem, pamięcią, małym osobnym dyskiem rozruchowym i kartą sieciową. Zainstaluj TrueNAS, zaktualizuj go i upewnij się, że maszyna wirtualna uruchamia się prawidłowo, zanim przypiszesz fizyczny kontroler pamięci masowej.
Dzięki temu znacznie łatwiej ustalić, czy późniejsza awaria wynika z przekazywania PCIe, a nie z samej instalacji systemu gościa.
Krok 4: Przekaż cały kontroler SATA
Dodaj kontroler jako urządzenie PCI do maszyny wirtualnej TrueNAS. Po uruchomieniu sprawdź lspci oraz w interfejsie pamięci masowej TrueNAS dla dysków fizycznych.
W opisanym przypadku ponowne utworzenie maszyny wirtualnej TrueNAS, a następnie dodanie kontrolera ASMedia spowodowało prawidłowe wykrycie wszystkich dysków wewnętrznych.
Co zrobić, jeśli kontroler jest widoczny, ale dyski nie?
Sprawdź, czy sterownik gościa został załadowany, czy kontroler poprawnie się zresetował oraz czy inne urządzenie przekazywane przez passthrough nie powoduje zakłóceń. Użytkownik w opisanym przypadku stwierdził, że przekazanie dodatkowego kontrolera HBA SAS3008 do tej samej maszyny wirtualnej zakłóciło działanie wewnętrznego kontrolera SATA; po usunięciu tego kontrolera HBA dyski wewnętrzne znów stały się widoczne.
Nie jest to dowód, że te dwa kontrolery nigdy nie mogą współistnieć. To sygnał, aby testować jeden kontroler naraz.
Nie twórz puli, dopóki passthrough nie będzie stabilny
Przed utworzeniem ZFS:
- kilkakrotnie uruchom ponownie Proxmox;
- kilkakrotnie uruchom ponownie maszynę wirtualną TrueNAS;
- potwierdź, że wszystkie dyski są konsekwentnie wykrywane;
- sprawdź widoczność danych SMART;
- sprawdź, czy host nie ma zamontowanych dysków.
Topologia pamięci masowej, która działa raz, ale znika po ponownym uruchomieniu systemu, nie jest gotowa do obsługi danych produkcyjnych.
Planuj kopie zapasowe Proxmox i TrueNAS osobno
Kopie zapasowe Proxmox chronią konfigurację maszyny wirtualnej i dysk rozruchowy TrueNAS. Nie zastępują migawek ZFS, replikacji ani zewnętrznej kopii zapasowej puli danych.
Przewodnik po wirtualizacji zawiera szerszy kontekst dotyczący Proxmox.
Kiedy TrueNAS na fizycznym serwerze jest prostszy
Jeśli jedynym zadaniem maszyny jest obsługa pamięci masowej, TrueNAS na fizycznym serwerze eliminuje warstwę wirtualizacji i złożoność passthrough. Proxmox z wirtualizowanym TrueNAS ma większy sens, gdy na tym samym serwerze potrzebujesz także innych maszyn wirtualnych, obciążeń GPU, środowisk laboratoryjnych lub funkcji zarządzania Proxmox.
Najczęściej zadawane pytania
Czy powinienem przekazać pojedyncze dyski, czy cały kontroler SATA?
W przypadku TrueNAS/ZFS przekazanie całego fizycznego kontrolera pamięci masowej jest czystszym rozwiązaniem, ponieważ TrueNAS bezpośrednio zarządza podłączonymi do niego dyskami.
Czy Proxmox nadal może korzystać z dysków podłączonych do przekazywanego kontrolera?
Nie. Gdy cały kontroler zostanie przypisany do TrueNAS, Proxmox nie powinien zarządzać dyskami podłączonymi do tego kontrolera.
Dlaczego po dodaniu drugiego kontrolera HBA zniknęły dyski wewnętrzne?
Jeden z użytkowników społeczności zauważył problem z kontrolerem SAS3008 przekazywanym przez passthrough. Testuj kontrolery niezależnie i sprawdź działanie IOMMU/resetu, zamiast zakładać uniwersalną usterkę sprzętową.
Czy nadal potrzebuję kopii zapasowych, jeśli korzystam z ZFS?
Tak. ZFS chroni integralność danych i zapewnia migawki, ale nie jest kopią zapasową poza urządzeniem.
