커뮤니티 솔루션

ZimaCube에서 Proxmox + TrueNAS 사용하기: SATA 패스스루 가이드

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.

TrueNAS가 전체 물리 SATA/HBA 컨트롤러를 PCIe 패스스루로 전달받는 경우, ZimaCube에서 TrueNAS SCALE을 VM으로 실행하는 구성이 원활하게 작동할 수 있습니다. 핵심은 일반 가상 디스크를 제공하는 대신 ZFS 디스크를 TrueNAS가 직접 제어하도록 유지하고, 데이터를 맡기기 전에 IOMMU 그룹을 확인하는 것입니다.

커뮤니티 자료에는 검증된 유용한 결과가 있습니다. 온보드 ASMedia 1166 SATA 컨트롤러를 새 TrueNAS VM에 패스스루하면 내부 드라이브가 정상적으로 표시되었습니다. 또한 중요한 예외 사례도 기록되어 있습니다. 두 번째 SAS3008 HBA 패스스루를 추가하자 한 사용자의 내부 SATA 패스스루가 실패했습니다. 이 충돌은 구성에 따라 달라지므로 보편적인 제한 사항이 아니라 문제 해결을 위한 단서로 간주해야 합니다.

권장 아키텍처

ZimaCube 하드웨어
   ↓
Proxmox VE 호스트
   ↓
PCIe 패스스루: 전체 SATA/HBA 컨트롤러
   ↓
TrueNAS SCALE VM
   ↓
물리 디스크에서 직접 생성한 ZFS 풀

호스트에서 TrueNAS에 할당된 디스크를 포맷하거나 마운트해서는 안 됩니다.

전체 컨트롤러를 패스스루하는 것이 더 나은 이유

전체 컨트롤러를 패스스루하면 TrueNAS가 해당 컨트롤러에 연결된 디스크를 직접 확인할 수 있으며, 컨트롤러가 지원하는 경우 장치 식별 정보와 SMART 정보도 확인할 수 있습니다. 또한 Proxmox가 동일한 디스크를 독립적으로 점유하는 것도 방지합니다.

어플라이언스와 같은 스토리지 동작을 원한다면, 서로 관련 없는 Proxmox 가상 디스크를 여러 개 쌓은 위에 TrueNAS에서 ZFS를 생성하지 마세요.

1단계: 펌웨어 및 Proxmox에서 IOMMU 활성화

Intel 시스템에서는 VT-d/IOMMU를 활성화해야 하며, AMD 시스템에서는 이에 해당하는 IOMMU 기능을 활성화해야 합니다. Proxmox에서도 커널 수준의 IOMMU를 활성화해야 합니다.

Proxmox 패스스루 사전 요구 사항 문서에는 펌웨어와 호스트 커널 모두에서 패스스루 지원을 활성화해야 한다는 요구 사항이 설명되어 있습니다.

2단계: SATA 컨트롤러 및 해당 IOMMU 그룹 확인

사용 lspci Proxmox 호스트에서 6개의 내부 베이를 담당하는 컨트롤러를 확인합니다. 원본 스레드에서는 해당 ZimaCube 구성에 ASMedia 1166 SATA 컨트롤러가 사용되었습니다.

패스스루를 수행하기 전에, 컨트롤러가 Proxmox 호스트에서 관련 없는 필수 장치를 가져오지 않고 안전하게 할당할 수 있는 IOMMU 그룹에 속해 있는지 확인합니다.

3단계: 스토리지를 연결하기 전에 TrueNAS VM 생성

가상 CPU, 메모리, 별도의 작은 부팅 디스크, 네트워크 어댑터를 사용해 TrueNAS VM을 생성합니다. TrueNAS를 설치하고 업데이트한 다음, 물리적 스토리지 컨트롤러를 할당하기 전에 VM이 정상적으로 부팅되는지 확인합니다.

이렇게 하면 이후에 발생한 오류가 게스트 설치 자체가 아니라 PCIe 패스스루에서 비롯된 것인지 훨씬 쉽게 판단할 수 있습니다.

4단계: SATA 컨트롤러 전체 패스스루하기

컨트롤러를 TrueNAS VM에 PCI 장치로 추가하세요. 부팅 후 다음을 확인하세요. lspci 물리 디스크에 대한 TrueNAS 스토리지 UI

원본 사례에서는 TrueNAS VM을 다시 생성한 다음 ASMedia 컨트롤러를 추가하자 모든 내부 드라이브가 정상적으로 표시되었습니다.

컨트롤러는 표시되지만 디스크가 표시되지 않으면 어떻게 해야 하나요?

게스트 드라이버가 로드되었는지, 컨트롤러가 정상적으로 리셋되었는지, 다른 패스스루 장치가 간섭하고 있는지 확인하세요. 원본 사용자는 동일한 VM에 추가 SAS3008 HBA를 패스스루하자 내부 SATA 컨트롤러 동작이 중단되었지만, 해당 HBA를 제거하자 내부 디스크가 다시 인식되었다고 밝혔습니다.

그렇다고 해서 두 컨트롤러가 절대 함께 작동할 수 없다는 뜻은 아닙니다. 한 번에 하나의 컨트롤러를 테스트해야 한다는 근거입니다.

패스스루가 안정될 때까지 풀을 생성하지 마세요

ZFS를 생성하기 전에:

  • Proxmox를 여러 번 재부팅하세요.
  • TrueNAS VM을 여러 번 재부팅하세요.
  • 모든 디스크가 일관되게 다시 인식되는지 확인하세요.
  • SMART 정보가 표시되는지 확인하세요.
  • 호스트에서 마운트된 디스크가 남아 있지 않은지 확인하세요.

한 번은 작동하지만 웜 리부팅 후 사라지는 스토리지 토폴로지는 운영 데이터에 사용할 준비가 된 상태가 아닙니다.

Proxmox와 TrueNAS 백업을 별도로 계획하세요

Proxmox 백업은 VM 구성과 TrueNAS 부팅 디스크를 보호합니다. 하지만 ZFS 스냅샷, 복제 또는 데이터 풀의 외부 백업을 대신하지는 않습니다.

가상화 가이드에서 Proxmox에 대한 더 폭넓은 내용을 확인할 수 있습니다.

베어메탈 TrueNAS가 더 간단한 경우

시스템의 유일한 용도가 스토리지라면 베어메탈 TrueNAS를 사용하면 가상화 계층과 패스스루 복잡성을 줄일 수 있습니다. 같은 서버에서 다른 VM, GPU 워크로드, 랩 환경 또는 Proxmox 관리 기능도 사용해야 한다면 Proxmox에 TrueNAS를 가상화하는 방식이 더 적합합니다.

자주 묻는 질문

개별 디스크를 패스스루해야 하나요, 아니면 SATA 컨트롤러 전체를 패스스루해야 하나요?

TrueNAS/ZFS의 경우 물리 스토리지 컨트롤러 전체를 패스스루하는 설계가 더 깔끔합니다. TrueNAS가 그 뒤에 연결된 디스크를 직접 소유하기 때문입니다.

패스스루한 컨트롤러의 디스크를 Proxmox에서 계속 사용할 수 있나요?

아니요. 전체 컨트롤러를 TrueNAS에 할당하면 Proxmox가 해당 컨트롤러 뒤의 디스크를 관리해서는 안 됩니다.

두 번째 HBA를 추가했더니 내부 디스크가 사라진 이유는 무엇인가요?

한 커뮤니티 사용자는 SAS3008 패스스루와의 상호 작용 문제를 관찰했습니다. 보편적인 하드웨어 결함이라고 가정하기보다는 컨트롤러를 독립적으로 테스트하고 IOMMU 및 리셋 동작을 점검하세요.

ZFS를 사용해도 백업이 필요한가요?

예. ZFS는 무결성을 보호하고 스냅샷을 제공하지만, 장치 외부 백업을 대신하지는 않습니다.