Part 1/2:
Why I Chose TrueNas Scale Over Unraid
When configuring my NAS system (Network Attached Storage), I selected TrueNas Scale instead of Unraid due to specific considerations related to my primary workloads: virtual machines managed with Proxmox (using NAS as shared central storage) and Docker Swarm (utilizing an NFS share to store container configurations and data). Here are the key reasons for my choice:
1. Robust ZFS File System
TrueNAS employs ZFS, known for outstanding data integrity, checksumming, and self-healing capabilities. These features ensure reliable data storage, which is crucial for my Proxmox-based virtual machines and Docker Swarm setups, safeguarding critical configurations and virtual disk images.
2. Extensive Protocol Support
TrueNAS offers broad support for critical protocols such as SMB, NFS, and iSCSI, making it ideal for integrating seamlessly with Proxmox virtualization environments (primarily via iSCSI or NFS) and Docker Swarm setups (via NFS). This versatility simplifies infrastructure management significantly.
3. Cost-Effective Open-Source Solution
As an open-source platform, TrueNAS requires no licensing fees, providing substantial cost savings compared to Unraid, particularly beneficial for scaling up storage in virtualized and containerized environments without added licensing costs.
4. Dedicated Operating System Drive
TrueNAS installs directly onto a dedicated drive rather than booting from USB as Unraid does. This method offers greater reliability and stability, essential for consistent performance in virtualized environments where storage reliability directly impacts VM and container uptime.
5. User-Friendly Interface
The intuitive and visually appealing GUI of TrueNAS simplifies system management and makes administration tasks, such as storage provisioning and protocol management, more straightforward. This ease of use is particularly beneficial when frequently managing shared storage pools for Proxmox clusters and Docker Swarm environments.
6. Performance Optimization Tailored to Proxmox and Docker Swarm
TrueNas Scale enabled precise performance optimizations focused on my specific workloads:
- Memory Allocation: ZFS's reliance on memory for caching (ARC) means ample RAM availability directly enhances virtual machine responsiveness and Docker Swarm efficiency.
- Network Throughput: Prioritizing high-speed networking setups ensures seamless data transfer between Proxmox nodes and Docker Swarm nodes, maintaining excellent cluster performance.
- Disk Performance: High-performance disk configurations provide quick, consistent access speeds for VMs and containerized applications, crucial for overall responsiveness.
- Pool Resilience: Robust pool configurations offer both data protection and reliable performance, ensuring high availability for both virtual machines and container storage.

Key Upgrades for Enhanced VM and Docker Performance
To further optimize TrueNas Scale for my specific workloads and specifically address latency issues affecting file transfers and access, I implemented these targeted upgrades:
1. RAM Upgrade: From 64GB to 192GB
ZFS uses RAM for its Adaptive Replacement Cache (ARC), significantly improving read performance and latency:
- Enhanced VM and Container Responsiveness: Expanded ARC capacity accelerates virtual disk access and container configuration loading, greatly improving operational efficiency.
- Increased System Throughput: With more data cached in RAM, the storage subsystem experiences reduced latency and higher I/O throughput, particularly valuable in high-density virtualization and container deployments.
Monitoring the ARC hit ratio provides valuable insights into RAM effectiveness, ensuring optimal performance for my workloads.
2. Integration of SSD Caches (L2ARC) in Each Storage Pool
Adding SSDs as secondary caches (L2ARC) offers significant performance improvements:
- Rapid VM and Container Data Access: SSD-based L2ARC substantially reduces latency for repetitive data reads, optimizing virtual machine performance and Docker Swarm responsiveness.
- Reduced Load on HDDs: Offloading frequent read operations to SSD caches decreases the stress on mechanical drives, extending their life and preserving consistent performance, crucial for sustained virtual and container workloads.
Careful consideration of workload types ensures optimal use of L2ARC caches, providing tangible performance benefits specifically tailored to my Proxmox and Docker environments.

In the end
Choosing TrueNas Scale and strategically upgrading RAM and integrating SSD caches significantly enhanced storage performance, reliability, and cost-effectiveness tailored specifically to my Proxmox virtual machines and Docker Swarm workloads.
Now I'm still thinking how to organise all my SSDs and HDDs to optain optimal performance without sacrificing the resiliance.
I need to find a new offsite backup as well to replace the Synology C2 where I was dumping everything.