¡Hola, entusiastas de la tecnología y exploradores del mundo de la virtualización! 🚀 ¿Alguna vez soñaste con tener un centro de almacenamiento de datos robusto, flexible y de alto rendimiento, todo ello conviviendo armoniosamente en tu potente servidor? Si la respuesta es un rotundo sí, ¡has llegado al lugar correcto! En esta guía exhaustiva, nos sumergiremos de lleno en el fascinante universo de la virtualización, llevando a TrueNAS CORE (anteriormente conocido como FreeNAS) al corazón de tu entorno Proxmox VE. Prepárate para desbloquear un nivel de control y eficiencia en tu infraestructura de almacenamiento que pocos logran alcanzar.
La combinación de Proxmox, un hipervisor de código abierto líder, y TrueNAS, el sistema operativo de almacenamiento definido por software más popular, es una sinergia poderosa. Nos permite consolidar hardware, reducir el consumo energético y gestionar nuestros recursos de manera más inteligente. Pero, como en toda gran aventura, hay un secreto para el éxito: la configuración correcta, especialmente cuando se trata de discos. ¿Listo para empezar nuestra odisea?
¿Por Qué Virtualizar TrueNAS en Proxmox? 🤔
Antes de sumergirnos en los detalles técnicos, reflexionemos un momento sobre los beneficios. Virtualizar TrueNAS en Proxmox no es simplemente una cuestión de „se puede”, sino de „se debe” para muchos escenarios. Aquí algunas razones convincentes:
- Consolidación de Hardware: Un único servidor potente puede ejecutar Proxmox, albergar TrueNAS y, a su vez, ejecutar otras máquinas virtuales para diferentes propósitos (servidores web, bases de datos, etcétera). Menos hardware significa menos ruido, menos consumo de energía y menos espacio.
- Flexibilidad y Escalabilidad: Con Proxmox, puedes fácilmente ajustar los recursos (CPU, RAM) de tu máquina virtual TrueNAS según tus necesidades cambiantes. Añadir más almacenamiento es tan sencillo como conectar nuevos discos físicos al servidor.
- Alta Disponibilidad (HA): Aunque más avanzado, Proxmox permite configuraciones de alta disponibilidad, protegiendo tus servicios, incluido TrueNAS, contra fallos de hardware.
- Gestión Centralizada: Desde la interfaz web de Proxmox, puedes supervisar y gestionar tanto el hipervisor como todas tus máquinas virtuales, incluyendo tu NAS.
- Recuperación de Desastres: Las características de copia de seguridad y restauración de Proxmox pueden ser utilizadas para proteger la máquina virtual de TrueNAS, facilitando la recuperación ante cualquier eventualidad.
Preparando el Terreno: Requisitos Previos Indispensables 🛠️
Antes de descorchar el champán virtual, asegurémonos de tener todo lo necesario para que esta instalación sea un éxito rotundo. No queremos sorpresas a mitad de camino.
- Servidor Proxmox Operativo: Obviamente, necesitarás un servidor con Proxmox VE ya instalado y configurado. Asegúrate de que tenga suficiente RAM, CPU y, crucialmente, puertos SATA o un controlador HBA libre para tus discos de almacenamiento.
- Hardware Adecuado:
- RAM: TrueNAS, especialmente con su sistema de archivos ZFS, ama la memoria RAM. La recomendación mínima es de 8 GB, pero para un rendimiento óptimo y una experiencia fluida, apunta a 16 GB o más para tu VM de TrueNAS. Si puedes, usa RAM ECC; ZFS lo aprecia enormemente por la integridad de los datos.
- CPU: Unos pocos núcleos de CPU son suficientes para la mayoría de los casos. 2 o 4 núcleos virtuales suelen ser adecuados.
- Discos de Almacenamiento Físicos: Estos son los discos que TrueNAS utilizará para almacenar tus datos. Pueden ser HDD o SSD. ¡Es vital que estos discos no contengan datos importantes, ya que serán formateados!
- Disco para el OS de TrueNAS: Necesitarás un pequeño disco (SSD o USB, idealmente pasado directamente) de al menos 16-32 GB para instalar el sistema operativo de TrueNAS. Este no formará parte de tu pool de almacenamiento principal.
- Controlador HBA (Host Bus Adapter): Este es el componente estrella para el „máximo nivel” de virtualización. Un controlador HBA (por ejemplo, LSI SAS 9207-8i, 9211-8i o similar en modo IT, que significa „Target Iniciador”) es altamente recomendado. Permite a TrueNAS acceder directamente a los discos físicos, como si no hubiera un hipervisor de por medio. Esto es la clave para aprovechar al máximo ZFS.
- Imagen ISO de TrueNAS CORE: Descarga la última versión de TrueNAS CORE desde el sitio web oficial (TrueNAS.com). Cárgala en el almacenamiento ISO de tu Proxmox.
Habilitando el Passthrough (PCIe Passthrough) en Proxmox: El Santo Grial del Rendimiento 🎯
Aquí es donde la magia ocurre, donde pasamos de una buena virtualización a una excelente. Para que TrueNAS pueda gestionar plenamente ZFS y sus capacidades de autocuración y protección de datos, necesita tener acceso directo a los discos físicos. Esto se logra mediante el passthrough.
1. Habilitar IOMMU en Proxmox
El IOMMU (Input/Output Memory Management Unit) es fundamental para el passthrough de dispositivos PCIe. Los pasos varían ligeramente según tu CPU (Intel o AMD).
- Para Intel: Edita el archivo GRUB:
nano /etc/default/grub
. Busca la líneaGRUB_CMDLINE_LINUX_DEFAULT="quiet"
y añadeintel_iommu=on
dentro de las comillas. Debería quedar así:GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
. - Para AMD: Similar, pero añade
amd_iommu=on
. Quedaría así:GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
.
Después de editar, guarda y actualiza GRUB: update-grub
y luego reinicia el servidor Proxmox: reboot
.
2. Cargar Módulos Necesarios
Edita el archivo /etc/modules
y añade las siguientes líneas para asegurar que los módulos necesarios para el passthrough se carguen al inicio:
vfio vfio_iommu_type1 vfio_pci vfio_virqfd
Guarda el archivo. Luego, para que los cambios surtan efecto de inmediato sin reiniciar, puedes cargarlos manualmente: modprobe vfio vfio_iommu_type1 vfio_pci vfio_virqfd
.
3. Identificar tu HBA o Discos
Para el passthrough de un HBA completo, primero necesitas identificar su ID PCI. Ejecuta en la terminal de Proxmox: lspci -nn | grep -i "raid"
o lspci -nn | grep -i "sata"
. Busca tu controlador y anota su ID (por ejemplo, 1000:0072
para un LSI). Si vas a pasar discos individuales, identifica sus IDs de dispositivo (ej. /dev/disk/by-id/wwn-0x...
).
¡Atención, piratas del almacenamiento! El passthrough de un HBA completo es, sin lugar a dudas, la mejor práctica y el „máximo nivel” de virtualización para TrueNAS en Proxmox. Otorga a TrueNAS control absoluto sobre los discos, permitiendo que ZFS gestione directamente el hardware de almacenamiento y opere con su máxima eficiencia y fiabilidad, exactamente como lo haría en hardware físico. Es la diferencia entre un inquilino con acceso limitado y un propietario con las llaves de toda la casa.
4. Configurar el Passthrough en la VM de TrueNAS
Una vez que el IOMMU está activo y has identificado tu HBA, es hora de crear la máquina virtual de TrueNAS o modificar una existente.
Opción A: Passthrough del HBA Completo (Recomendado)
Crea una nueva VM en Proxmox. En la sección „Hardware” de la VM, haz clic en „Añadir” y selecciona „Dispositivo PCI”. En el menú desplegable, elige tu HBA (mostrará el nombre del controlador y su ID). Asegúrate de marcar „All Functions” y „PCI-Express” si están disponibles. Esto entregará el controlador completo a la VM.
Opción B: Passthrough de Discos Individuales (Alternativa)
Si no tienes un HBA o no puedes pasarlo, puedes pasar discos individuales. Esto es mejor que usar discos virtuales, pero aún así no es tan ideal como un HBA completo. Para añadir un disco directamente, puedes hacerlo desde la interfaz web de Proxmox (Hardware -> Añadir -> Disco duro -> Tipo „Passthrough”) o vía CLI con qm set [ID_VM] -scsi[X] /dev/disk/by-id/[NOMBRE_DISCO]
.
Creando la Máquina Virtual de TrueNAS en Proxmox 🖥️
¡Manos a la obra! Sigue estos pasos para crear tu VM:
- Crear Nueva VM: En la interfaz web de Proxmox, haz clic en „Crear VM”.
- General: Asígnale un ID y un nombre fácil de recordar (ej. „TrueNAS”).
- OS: Selecciona „No usar ningún medio” por ahora. Tipo de SO: „Otros”.
- Sistema:
- BIOS: Por defecto (OVMF/UEFI para sistemas más modernos).
- Controlador SCSI: VirtIO SCSI Single.
- Discos: Aquí añadiremos el disco para el sistema operativo de TrueNAS. Crea un disco virtual pequeño (ej., 32 GB) usando VirtIO Block. Este será el disco donde TrueNAS instalará su OS.
- CPU: Asigna los núcleos y el tipo de CPU (host por defecto suele ser lo mejor).
- Memoria: ¡Aquí no seas tacaño! Asigna al menos 8 GB, pero idealmente 16 GB o más.
- Red: Usa el modelo de tarjeta de red por defecto (VirtIO), conectado a tu bridge de red (vmbr0).
- Confirmar: Revisa la configuración y finaliza. ¡Pero no la inicies aún!
Ahora, en la sección de Hardware de la VM recién creada, añade tu HBA (como se explicó en la sección de passthrough). También, en la sección „Unidad de CD/DVD”, monta la ISO de TrueNAS CORE que subiste previamente a tu almacenamiento de Proxmox.
Instalación de TrueNAS CORE 💾
¡El momento de la verdad ha llegado! Es hora de instalar el sistema operativo de almacenamiento.
- Iniciar la VM: Selecciona la VM de TrueNAS en Proxmox y haz clic en „Iniciar”. Abre la consola.
- Boot del Instalador: La VM arrancará desde la ISO de TrueNAS. Elige la opción de instalación.
- Seleccionar Disco de OS: El instalador te preguntará dónde instalar TrueNAS. ¡Es crucial que selecciones el disco virtual pequeño (32 GB) que creamos específicamente para el OS! No selecciones los discos grandes que pasarás para el almacenamiento de datos. Confirma que deseas formatear ese disco.
- Contraseña de Root: Establece una contraseña segura para el usuario root.
- Instalación Finalizada: Una vez completada la instalación, retira la ISO de TrueNAS de la configuración de la VM en Proxmox y reinicia la máquina virtual.
- Acceso WebUI: Después del reinicio, TrueNAS arrancará y te mostrará la dirección IP en la consola. Abre tu navegador web y navega a esa IP para acceder a la interfaz gráfica de usuario (WebUI) de TrueNAS. Ingresa con el usuario
root
y la contraseña que estableciste.
Configuración y Optimización de TrueNAS ⚙️
¡Felicidades! Tienes TrueNAS funcionando. Ahora, vamos a configurarlo y exprimir al máximo ese rendimiento.
- Crear Pool de Almacenamiento ZFS:
- En la WebUI de TrueNAS, ve a „Almacenamiento” > „Pools” > „Añadir”.
- Selecciona „Crear un nuevo Pool” y dale un nombre.
- Ahora verás los discos físicos que pasaste a la VM. Selecciona los discos que deseas usar para tu pool. TrueNAS te sugerirá configuraciones de RAIDZ o Stripe basadas en la cantidad de discos. Elige la que mejor se adapte a tus necesidades de redundancia y rendimiento.
- Confirma la creación del pool. ¡Este paso formateará los discos seleccionados!
- Crear Datasets: Dentro de tu pool, crea datasets para organizar tus datos. Los datasets son como carpetas inteligentes en ZFS, permitiendo configuraciones individuales para compresión, deduplicación, snapshots, etc.
- Configurar Comparticiones (Shares):
- SMB (para Windows/macOS): Ve a „Comparticiones” > „Comparticiones de Windows (SMB)” > „Añadir”. Elige el path de tu dataset, dale un nombre y configura los permisos de acceso.
- NFS (para Linux/VMs): Ve a „Comparticiones” > „Comparticiones de Unix (NFS)” > „Añadir”. Similar al SMB, elige el path y configura los hosts permitidos y permisos.
- Optimización del Rendimiento (Trucos Avanzados) 💡:
- ARC (Adaptive Replacement Cache): ZFS utiliza la RAM como una caché de lectura masiva (ARC). Cuanta más RAM tengas en tu VM de TrueNAS, mejor será el rendimiento de lectura. Asegúrate de haber asignado suficiente memoria.
- L2ARC (Level 2 ARC): Si tienes un SSD rápido (NVMe o SATA) adicional que no forma parte de tu pool principal, puedes añadirlo como caché de lectura (L2ARC). Esto es útil para cargas de trabajo con muchos accesos de lectura aleatoria a datos „calientes” que no caben en la RAM.
- SLOG (Separate Log Device / ZIL): Para cargas de trabajo que requieren muchas escrituras síncronas (como bases de datos, virtualización de VMs directamente en el NAS, o sistemas de archivos con transacciones), un SSD NVMe de baja latencia puede usarse como dispositivo SLOG. Esto acelera significativamente las escrituras síncronas, ya que los datos se escriben primero en este dispositivo ultrarrápido antes de ser consolidados en el pool principal. No es necesario para cargas de trabajo predominantemente asíncronas (como copias de archivos grandes).
- Compresión ZFS: Habilita la compresión (lz4 es una excelente opción por su balance entre rendimiento y ahorro de espacio) en tus datasets.
- Snapshots y Replicación: Configura tareas de snapshots regulares para tus datasets. Estos son instantáneas de tus datos que no consumen espacio adicional hasta que los datos originales cambian. También puedes replicar snapshots a otro TrueNAS para una recuperación de desastres robusta.
Consideraciones y Posibles Problemas ⚠️
- IOMMU Incompatible: No todos los procesadores o placas base soportan IOMMU. Verifica la compatibilidad de tu hardware.
- Grupos IOMMU: A veces, un dispositivo está „agrupado” con otros dispositivos en un solo grupo IOMMU, lo que impide pasarlo de forma aislada. Esto puede ser un dolor de cabeza, pero hay soluciones más avanzadas (ej., ACS override, que no se recomienda para principiantes).
- Falta de RAM: Si tu TrueNAS se siente lento, lo primero a revisar es la RAM. ZFS funciona mejor con mucha memoria.
- Controlador HBA en Modo IT: Asegúrate de que tu HBA esté en modo „IT” (Initiator Target) y no en modo „IR” (Integrated RAID). El modo IT es crucial para que ZFS tenga control directo sobre los discos individuales, no sobre volúmenes RAID creados por el controlador.
Mi Opinión sobre Esta Poderosa Combinación 🧑💻
Después de años trasteando con configuraciones de almacenamiento y virtualización, debo decir que la sinergia entre TrueNAS CORE virtualizado en Proxmox con passthrough de HBA es, en mi humilde opinión, una de las soluciones más robustas y eficientes que un entusiasta o una pequeña empresa puede implementar. La flexibilidad de Proxmox para ejecutar otras VMs junto con la incomparable integridad de datos y características avanzadas de ZFS que ofrece TrueNAS, crea un tándem casi perfecto.
Si bien la configuración inicial de passthrough puede parecer intimidante para los recién llegados, la inversión de tiempo y esfuerzo se ve ampliamente recompensada. Los datos son el activo más valioso en la era digital, y esta configuración proporciona una capa de seguridad y rendimiento que los discos virtuales o las soluciones de NAS de consumo simplemente no pueden igualar. Hemos visto cómo empresas ahorran miles de euros al optar por esta ruta en lugar de costosas soluciones propietarias, manteniendo un rendimiento comparable o superior.
Desde la gestión de copias de seguridad de todas tus VMs en Proxmox, hasta el alojamiento de tus archivos multimedia, documentos importantes o incluso máquinas virtuales completas a través de iSCSI o NFS, esta configuración es increíblemente versátil. Es un testimonio de lo que el software de código abierto y una comunidad dedicada pueden lograr. Así que, si buscas llevar tu infraestructura de almacenamiento al siguiente nivel, no lo dudes: ¡esta es tu guía definitiva!
¡Esperamos que esta guía detallada te haya sido de gran utilidad en tu camino hacia la maestría de la virtualización! ¡A construir esos NAS imparables!