Solución de la comunidad

Guía de passthrough de SATA en ZimaCube con Proxmox + TrueNAS

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.

Ejecutar Proxmox en ZimaCube con TrueNAS SCALE en una máquina virtual puede funcionar bien cuando TrueNAS recibe un controlador SATA/HBA físico completo mediante passthrough de PCIe. La clave es mantener los discos ZFS bajo el control directo de TrueNAS en lugar de presentar discos virtuales normales, y verificar los grupos IOMMU antes de confiarle tus datos.

La fuente de la comunidad ofrece un resultado verificado útil: pasar el controlador SATA ASMedia 1166 integrado a una máquina virtual nueva de TrueNAS expuso correctamente las unidades internas. También registra un caso límite importante: añadir el passthrough de un segundo HBA SAS3008 hizo que el passthrough SATA interno fallara para un usuario. Ese conflicto depende de la configuración, así que considéralo una pista para solucionar problemas, no una limitación universal.

Arquitectura recomendada

Hardware de ZimaCube
   ↓
Host Proxmox VE
   ↓
Passthrough de PCIe: controlador SATA/HBA completo
   ↓
Máquina virtual de TrueNAS SCALE
   ↓
Pools de ZFS creados directamente a partir de discos físicos

El host no debe formatear ni montar los discos asignados a TrueNAS.

Por qué es mejor pasar el controlador completo

Pasar un controlador completo permite que TrueNAS vea directamente los discos conectados a él, incluida su identidad y la información SMART cuando el controlador la admite. También evita que Proxmox reclame esos mismos discos de forma independiente.

No crees ZFS en TrueNAS sobre una pila de discos virtuales de Proxmox no relacionados si tu objetivo es obtener un comportamiento de almacenamiento similar al de un dispositivo dedicado.

Paso 1: Habilitar IOMMU en el firmware y Proxmox

En los sistemas Intel, es necesario habilitar VT-d/IOMMU; en los sistemas AMD, se necesita la función IOMMU correspondiente. Proxmox también requiere que IOMMU esté habilitado en el kernel.

Los requisitos previos del passthrough de Proxmox documentan que la compatibilidad con el passthrough debe estar habilitada tanto en el firmware como en el kernel del host.

Paso 2: Identificar el controlador SATA y su grupo IOMMU

Usa lspci en el host Proxmox e identifica el controlador que sirve a las seis bahías internas. El hilo de origen identificó un controlador SATA ASMedia 1166 en su configuración de ZimaCube.

Antes del passthrough, verifica que el controlador esté en un grupo IOMMU que pueda asignarse de forma segura sin retirar dispositivos esenciales no relacionados del host Proxmox.

Paso 3: Crear la máquina virtual de TrueNAS antes de conectar el almacenamiento

Crea la máquina virtual de TrueNAS con CPU virtual, memoria, un pequeño disco de arranque independiente y un adaptador de red. Instala TrueNAS, actualízalo y confirma que la máquina virtual arranca con normalidad antes de asignarle el controlador de almacenamiento físico.

Esto facilita mucho determinar si un fallo posterior se debe al passthrough de PCIe y no a la propia instalación del sistema invitado.

Paso 4: Pasar el controlador SATA completo

Añade el controlador como dispositivo PCI a la máquina virtual de TrueNAS. Después del arranque, comprueba lspci y la interfaz de almacenamiento de TrueNAS para los discos físicos.

En el caso de la fuente, recrear la máquina virtual de TrueNAS y después añadir el controlador ASMedia hizo que todas las unidades internas aparecieran correctamente.

¿Qué ocurre si aparece el controlador, pero no los discos?

Comprueba si se cargó el controlador del invitado, si el controlador se restableció correctamente y si otro dispositivo asignado mediante passthrough está interfiriendo. El usuario de la fuente descubrió que pasar una HBA SAS3008 adicional a la misma máquina virtual afectaba al comportamiento del controlador SATA interno; al retirar esa HBA, los discos internos volvieron a aparecer.

Eso no demuestra que esos dos controladores nunca puedan coexistir. Es una señal para probar un controlador a la vez.

No crees el conjunto hasta que el passthrough sea estable

Antes de crear ZFS:

  • reinicia Proxmox varias veces;
  • reinicia la máquina virtual de TrueNAS varias veces;
  • confirma que todos los discos vuelvan a aparecer de forma coherente;
  • comprueba la visibilidad de SMART;
  • verifica que el host no tenga discos montados;

Una topología de almacenamiento que funciona una vez, pero desaparece después de un reinicio en caliente, no está preparada para datos de producción.

Planifica por separado las copias de seguridad de Proxmox y TrueNAS

Las copias de seguridad de Proxmox protegen la configuración de la máquina virtual y el disco de arranque de TrueNAS. No sustituyen las instantáneas de ZFS, la replicación ni una copia de seguridad externa del conjunto de datos.

La guía de virtualización ofrece un contexto más amplio sobre Proxmox.

Cuándo TrueNAS en bare metal es más sencillo

Si la única función de la máquina es el almacenamiento, TrueNAS en bare metal elimina una capa de virtualización y la complejidad del passthrough. Proxmox con TrueNAS virtualizado tiene más sentido cuando también necesitas otras máquinas virtuales, cargas de trabajo con GPU, entornos de laboratorio o funciones de gestión de Proxmox en el mismo servidor.

Preguntas frecuentes

¿Debería pasar discos individuales o el controlador SATA completo?

Para TrueNAS/ZFS, pasar el controlador de almacenamiento físico completo es un diseño más limpio, porque TrueNAS controla directamente los discos conectados a él.

¿Proxmox puede seguir utilizando los discos de un controlador asignado mediante passthrough?

No. Una vez asignado el controlador completo a TrueNAS, Proxmox no debería gestionar los discos conectados a ese controlador.

¿Por qué desaparecieron los discos internos al añadir una segunda HBA?

Un usuario de la comunidad observó que la interacción con un SAS3008 provocaba problemas de passthrough. Prueba los controladores de forma independiente e inspecciona el comportamiento de IOMMU/restablecimiento en lugar de asumir un defecto de hardware universal.

¿Sigo necesitando copias de seguridad si uso ZFS?

Sí. ZFS protege la integridad y proporciona instantáneas, pero no es una copia de seguridad fuera del dispositivo.