## "Do Not Monolith" NAS & Server?
You can confidently use **TrueNAS (preferably SCALE)** to combine ZFS's direct hardware access with running VMs or containers like Immich. However, for critical data storage, it's best to limit auxiliary functions on the NAS. If consolidation is necessary, ensure SCALE has adequate hardware resources, such as dedicated CPU cores, RAM, and storage I/O, to prevent bottlenecks and maintain smooth performance.
TrueNAS SCALE excels at running multiple VMs or lightweight containers alongside its NAS functionality, outperforming CORE in this regard. To optimize reliability, grant it direct hardware access to storage drives and allocate resources carefully so the NAS functions remain uninterrupted by virtualized workloads.
While running VMs alongside NAS services can cause I/O contention and slowdowns during heavy tasks like scrubs or backups, you can mitigate these issues. Assign dedicated system resources to each VM, prioritize NAS processes in the scheduler, and leverage high-speed SSDs or separate disks for VM workloads. Scheduling resource-intensive operations during off-peak hours further ensures a seamless and responsive system.
however, cost of 3070 is ~$1,437.50/year (as of 11/19/24 avg Kilowatt-hours (kWh) cost)
---
TrueNAS SCALE running directly on your hardware as the primary OS is exactly what "bare metal" means. That setup is actually the sweet spot:
- ✅ TrueNAS has direct hardware access (SMART data, disk controllers)
- ✅ No hypervisor layer between ZFS and your drives
- ✅ Docker containers are just processes sharing the SCALE kernel (not VMs)
- ✅ You get the benefits of running additional services without the virtualization penalty
---
My thoughts on this:
I basically started by determining the best OS for data integrity. I took to the forums from there.
I chose not to run everything in VMs because it wastes resources on multiple kernel instances and virtual hardware emulation when containers could share a single kernel and give you near-native performance for most services. That means I can run more apps with the same hardware. Direct hardware access is especially important especially for TrueNAS SCALE for ZFS's self-healing.
You CAN virtualize TrueNAS with direct hardware access, but you'd need IOMMU, compatible controllers, and who knows what else, which can introduce hypervisor bugs and adds more complexity I didn't want to deal with. I opted to keep the primary function of the machine simpler.
On the other hand, VMs provide true isolation where a security breach or misconfiguration in one service can't possibly affect others. But the pros did not outweigh the cons for me.