Building a home server might sound like a daunting task reserved for tech experts, but it’s more accessible and rewarding than you might think. This year, I took the plunge and built my own home storage server, a 32TB powerhouse to manage my growing personal and business data using open-source software.
The total cost for the server came to $1,263, with $531 for the server components and $732 for four hard drives. While the price is comparable to pre-built NAS (Network Attached Storage) solutions, building your own offers significant advantages in terms of power, customization, and control.
In this guide, I’ll walk you through my journey of building a home server. We’ll cover everything from choosing the right components and avoiding common pitfalls to setting up your system and understanding the benefits of a DIY approach. Whether you’re a seasoned tech enthusiast or a beginner eager to learn, this step-by-step guide will empower you to Build A Home Server tailored to your needs.
All the essential parts ready for assembling my DIY home server.
My completed TrueNAS home server build, ready for action.
If you prefer a visual walkthrough, I’ve also created a video explanation of the entire build process available on YouTube.
Why Should You Build a Home Server?
Understanding NAS and Its Benefits for Home Users
NAS, or Network-Attached Storage, is essentially a centralized storage device connected to your network. Its primary function is to store and serve data to other devices on your network, from computers and laptops to smart TVs and mobile devices.
But why dedicate an entire server just for storage? In today’s digital age, our data is increasingly scattered across multiple devices. Upgrading computers or laptops every few years often becomes a data migration headache. A dedicated home server solves this by:
- Centralizing Your Data: Eliminate the hassle of data migration between devices. Your data lives in one place, accessible from anywhere on your network.
- Facilitating File Sharing: Easily share files between your various systems, simplifying workflows and family data management.
- Scalable Storage: As your digital footprint grows, a home server can be expanded to accommodate your increasing storage needs.
Like many, I consider myself a data enthusiast, or as some might say, a data hoarder. I keep extensive digital archives, including photos, emails spanning two decades, and countless personal projects. This collection currently sits at around 8.5 TB and continues to grow.
One of the largest contributors to my storage needs is my physical media collection. Despite the rise of streaming services, I prefer owning physical copies of movies and TV shows. I digitally archive my DVDs and Blu-rays, creating both raw ISO images and streamable video files. Each disc can consume up to 60 GB of storage, quickly adding up to significant space requirements.
My extensive DVD and Blu-ray collection, a primary driver for my home server storage needs.
Exploring the Homelab Concept
The term “homelab” has gained popularity in recent years, referring to a space at home for experimenting with IT hardware and software typically found in professional office or data center environments. A homelab serves various purposes:
- Skill Development: It’s an excellent practice ground for honing technical skills relevant to IT professions.
- Technology Exploration: It provides a sandbox to explore and experiment with interesting technologies without the constraints of a professional setting.
- Personal Projects: It can be the foundation for hosting personal projects, websites, or services at home.
Why DIY is Better: The Advantages of Building Your Own NAS
If you’re new to the homelab world or lack experience in building PCs, opting for a pre-built NAS solution might seem like the easier path. Off-the-shelf NAS devices offer user-friendly interfaces and simplified setup.
Before embarking on my DIY home server journey, I relied on a 4-bay Synology DS412+ for seven years. It was a fantastic device, user-friendly and reliable, and an excellent entry point into the world of NAS. If you’re unsure about diving into a DIY build, starting with a Synology or similar pre-built NAS is a solid recommendation.
My reliable Synology DS412+, which served me well for seven years before I decided to build a home server.
However, a wake-up call came when my Synology NAS encountered a boot failure accompanied by ominous clicking noises. It highlighted my dependence on a single, closed-system device. Synology NAS devices are not designed for user repair. Post-warranty component failure often necessitates replacing the entire unit. Furthermore, proprietary storage formats can lock your data into the Synology ecosystem, making data recovery outside of a Synology environment challenging. (Fortunately, as pointed out by a Hacker News commenter, data recovery from Synology Hybrid RAID on non-Synology systems is possible, offering a degree of data liberation.)
This incident prompted my decision to transition to TrueNAS. TrueNAS offers an open-source operating system and utilizes open storage formats, providing greater control and flexibility over my data and hardware.
Embracing Open Source: TrueNAS and ZFS
TrueNAS (formerly FreeNAS) stands as one of the most popular open-source operating systems specifically designed for storage servers. With nearly two decades of development, it’s a mature and robust choice for building a reliable home server.
TrueNAS leverages ZFS, a powerful filesystem engineered for enterprise-grade storage solutions. Unlike traditional filesystems like NTFS or ext4 that operate on top of a data volume manager, ZFS integrates filesystem and volume management into a unified layer. This deep integration provides ZFS with enhanced control, performance, and advanced features.
Key advantages of ZFS include:
- Storage Pooling: Aggregate multiple physical disks into a single, manageable storage pool.
- Data Integrity: Automatic data corruption detection and self-healing capabilities.
- Snapshots: Create point-in-time snapshots of your data, similar to macOS’s Time Machine, for easy data recovery and versioning.
- Data Protection: Optional built-in encryption and compression to safeguard and optimize your storage.
Prior to this project, I had no direct experience with ZFS, making it an exciting opportunity to explore its capabilities firsthand.
Planning Your Home Server Storage Capacity
Estimating Your Storage Needs: Today and Tomorrow
When I initially set up my Synology NAS, I populated it with three 4TB drives, leaving one bay empty for future expansion. This configuration provided 7TB of usable storage in Synology Hybrid RAID. Within three years, I outgrew this capacity and added a fourth drive, increasing the usable space to 10TB.
For my new DIY home server, I adopted a similar phased approach. My goal was to start with around 20TB of usable storage, with the flexibility to expand up to 30TB as my needs evolve.
While ZFS initially didn’t natively support adding drives to an existing pool, this feature is now under active development and available in recent ZFS versions. Hopefully, by the time I need to expand my storage, this feature will be readily available in TrueNAS, simplifying future upgrades.
Update (2025-01-25): The ability to add disks to a ZFS pool is now implemented in the latest ZFS version. While I haven’t personally tested it in TrueNAS yet, its availability promises easier storage expansion in the future.
Choosing Your Drives: Many Small vs. Fewer Large
ZFS’s data redundancy features, crucial for data protection, impact usable storage capacity. ZFS employs redundancy by storing data blocks across multiple disks, ensuring data survival even if a drive fails. This redundancy means that the total usable storage is less than the raw sum of all drive capacities.
ZFS organizes disks into “pools.” The number of disks in a pool influences storage efficiency. For instance, using two 10TB drives in ZFS yields only about half the total capacity for usable storage. In contrast, five 4TB drives provide significantly more usable space, around 14TB, despite the same total raw capacity. The increased number of drives allows ZFS to utilize storage space more effectively for redundancy and data distribution.
Therefore, when building a home server, you need to decide between using fewer, larger capacity drives or more numerous, smaller drives. Smaller drives often offer a lower cost per terabyte but can be less energy-efficient overall. Two 4TB drives consume roughly twice the power of a single 8TB drive.
Prioritizing a smaller physical footprint for my server, I opted for fewer, larger capacity drives.
RAIDZ Configuration: Balancing Redundancy and Capacity
ZFS offers different RAIDZ configurations for redundancy: RAIDZ1, RAIDZ2, and RAIDZ3. These configurations differ in their level of fault tolerance. RAIDZ1 tolerates a single drive failure, RAIDZ2 can withstand two simultaneous drive failures, and RAIDZ3 protects against three concurrent failures.
Higher redundancy comes at the cost of usable storage. With five 4TB drives, the usable capacity varies significantly across RAIDZ levels:
ZFS Type | Usable Storage | % of Total Capacity | Fault Tolerance |
---|---|---|---|
RAIDZ1 | ~15.4 TB | ~77.2% | Single Drive Failure |
RAIDZ2 | ~11.4 TB | ~57.2% | Two Drive Failures |
RAIDZ3 | ~7.7 TB | ~38.6% | Three Drive Failures |
I chose RAIDZ1 for my build. With a relatively small number of drives, the probability of two drives failing simultaneously is statistically low.
It’s crucial to remember that RAID, including ZFS RAIDZ, is not a backup solution. While RAID protects against hardware failure, it doesn’t safeguard against data loss due to accidental deletion, malware, or physical disasters. For comprehensive data protection, I use restic to back up my critical data to encrypted cloud storage.
ZFS with RAIDZ1 offers a valuable layer of protection against single drive failures, minimizing downtime and data loss in common scenarios. However, for more severe events like multiple drive failures, data recovery would rely on my external backups. For my home use case, the balance of capacity and single-drive fault tolerance offered by RAIDZ1 made it a practical choice, rather than sacrificing a significant portion of usable storage for RAIDZ2.
For larger drive arrays, especially those with 20 or more drives, the risk of concurrent failures increases, making RAIDZ2 or RAIDZ3 more prudent choices.
Mitigating Concurrent Drive Failures: Diversification Strategy
The probability of two drives failing simultaneously might seem negligible at first glance. Based on Backblaze’s data, high-quality drives have annual failure rates ranging from 0.5% to 4%. A 4% annual failure risk translates to roughly a 0.08% weekly chance of failure. Statistically, two simultaneous failures might appear to occur only once in tens of thousands of years.
However, drives in a NAS environment are not statistically independent. If one drive fails, the risk of its neighbors failing increases considerably. This correlation is amplified if drives are:
- Identical Models: Drives from the same model line are prone to similar failure patterns.
- Same Batch: Drives manufactured in the same batch may share manufacturing defects or weaknesses.
- Similar Workloads: Drives experiencing similar usage patterns and stress levels are more likely to age and potentially fail around the same time.
Furthermore, rebuilding a ZFS pool after a drive failure puts significant stress on the remaining drives. A drive that might have lasted longer under normal operation could be pushed to failure under the increased workload of a pool rebuild.
To minimize the risk of concurrent drive failures, I implemented a diversification strategy:
- Different Models: I selected two different drive models.
- Different Manufacturers: I chose drives from two separate manufacturers.
- Different Vendors: I purchased drives from distinct vendors to reduce the chance of receiving drives from the same manufacturing batch.
While the precise impact of these measures is difficult to quantify, they added minimal cost to the build and seemed like a worthwhile precaution to enhance data resilience.
Purchasing the same drive model from different vendors to reduce the likelihood of drives from the same manufacturing batch.
Selecting the Components for Your Home Server
Motherboard: Mini-ITX and Feature-Rich
My desire for a compact server, inspired by the small footprint of my Synology DS412+, led me to consider a mini-ITX motherboard for this build. Having never built a PC with this form factor, it presented an interesting challenge.
I opted for the ASUS Prime A320I-K motherboard based on several key features:
- Four SATA Ports: Sufficient onboard SATA ports to directly connect four hard drives.
- Integrated Radeon Graphics: Onboard graphics processing, eliminating the need for a dedicated graphics card.
- Affordability: A budget-friendly option at just $98.
The ASUS Prime A320I-K motherboard, chosen for its mini-ITX size and integrated graphics capabilities for my build a home server project.
Important Note: In retrospect, this motherboard choice proved to be less than ideal. I’ll elaborate on the reasons for this regret later in this guide.
I also considered the B450 chipset motherboards, which offered similar features but at nearly double the price. The primary advantage seemed to be enhanced overclocking capabilities, which were unnecessary for a home server application.
CPU: Power Efficiency and Integrated Graphics
Based on my research, ZFS is not particularly CPU-intensive for typical home server workloads. To confirm this, I performed a basic test by running TrueNAS on an older, low-powered Dell OptiPlex 7040 mini PC. CPU utilization remained minimal, validating that a high-performance CPU wasn’t essential.
My main criteria for the CPU were:
- Integrated Radeon Graphics Support: Compatibility with the ASUS A320 motherboard’s onboard HDMI output, avoiding a separate graphics card.
- Power Efficiency: Low power consumption for 24/7 operation.
The AMD Athlon 3000G CPU, a cost-effective option with integrated graphics for my home server build.
The AMD Athlon 3000G emerged as a suitable choice. Priced at around $105, it offered a good balance of value, integrated Radeon graphics, and decent CPU benchmarks for a NAS application.
Case: Compact Mini-ITX with Ample Drive Bays
For my previous VM server build, I was highly impressed with a Fractal Design case. Returning to Fractal Design for this project, I selected the Fractal Design Node 304 Black, a compact mini-ITX case. Its cube-like design and capacity for six 3.5″ drives were appealing. This provided sufficient initial drive bays with room for future storage expansion.
The Fractal Design Node 304 Black mini-ITX case, chosen for its compact size and six drive bays for my build a home server project.
Data Disks: Balancing Capacity, Reliability, and Cost
With six drive bays in the chosen case, I decided to start with four 8TB drives, providing approximately 22.5TB of usable storage in a RAIDZ1 configuration. Future expansion with a fifth and sixth drive would increase usable storage to roughly 30.9TB and 37TB respectively.
For 8TB drives, 7200 RPM is common, with some options reaching 10,000 RPM. However, for a home NAS primarily accessed over a network, speeds beyond 7200 RPM offer minimal practical performance gains as the network becomes the bottleneck. 10,000 RPM drives would likely be louder and consume more power without significant benefit.
Initially, I considered Backblaze’s hard drive reliability statistics to guide my drive selection, but the drives with the lowest failure rates tended to be significantly more expensive. While a 0.5% failure rate of premium drives was tempting, the significant price premium didn’t seem justifiable for a home server, especially when redundancy and backups are in place.
A crucial factor in drive selection for ZFS is avoiding drives using Shingled Magnetic Recording (SMR) technology. ZFS performance suffers significantly on SMR drives. It’s essential to choose drives with Conventional Magnetic Recording (CMR), which is suitable for ZFS. Lists of known SMR drives are available online to help you avoid incompatible models.
I selected the Toshiba N300 and Seagate IronWolf 8TB drives. Both models received positive reviews in TrueNAS communities and online forums. Priced between $180-$190 each, they offered a good balance of capacity and value.
The Toshiba N300 (left) and Seagate IronWolf (right) 8TB hard drives selected for my build a home server project, prioritizing CMR technology and NAS suitability.
OS Disk: Fast and Compact M.2 SSD
TrueNAS requires a dedicated OS drive. However, the OS drive experiences minimal read/write activity after the initial boot process. TrueNAS itself has a modest 2GB minimum storage requirement.
The Kingston A400 M.2 SSD, a cost-effective and compact OS drive for my TrueNAS home server.
I chose the Kingston A400 120GB M.2 SSD. At just $32, it was incredibly affordable. M.2 SSDs are ideal for OS drives due to their:
- Compact Form Factor: Taking up minimal space and eliminating the need for cables.
- Ease of Installation: Directly mounting to the motherboard with a single screw.
- Reliability: Suitable for the low-intensity read/write workload of a NAS OS.
Memory (RAM): Dispelling ZFS Myths
During my research, I encountered the common “rule” suggesting ZFS requires 1GB of RAM per 1TB of storage. However, according to ZFS developer Richard Yao, this is a myth. While RAM-intensive features like data deduplication exist, ZFS functions efficiently even with limited memory.
Shopping for RAM can be tedious. My selection process involved:
- Motherboard Compatibility: Consulting the ASUS A320I-K motherboard’s QVL (Qualified Vendor List) for compatible RAM modules.
- Capacity: Filtering for 32GB or 64GB kits using two RAM sticks for optimal motherboard compatibility.
- Brand Preference: Selecting reputable brands known for quality and reliability (Corsair, Crucial, G.SKILL, Kingston, Samsung, Patriot, Mushkin, HyperX).
- Budget: Setting a price limit below $150.
This process led me to the CORSAIR Vengeance LPX 32GB CMK32GX4M2A2400C14 (2 x 16GB) kit, priced at $128.
The CORSAIR Vengeance LPX 32GB RAM kit, chosen for compatibility, capacity, and value for my build a home server project.
Power Supply Unit (PSU): Efficient and Semi-Modular
In terms of power capacity, most consumer PSUs would be more than sufficient for this build. PCPartPicker estimated my system’s power requirement at only 218W. Ideally, I would have selected a PSU in the 300-400W range for optimal efficiency. However, semi-modular options in that lower wattage range were scarce.
I opted for the 500W EVGA 110-BQ-0500-K1. While slightly oversized, it provided semi-modular cabling, which helps with cable management in compact cases.
The EVGA 110-BQ-0500-K1 500W PSU, selected for its semi-modular design and ample power for my home server build.
90-Degree SATA Cables: Essential for Tight Spaces
90-degree SATA cables, a crucial component for managing space constraints within the mini-ITX case.
One component I hadn’t previously considered was 90-degree SATA cables. During the build, I realized that standard straight SATA cables wouldn’t fit due to limited clearance between the motherboard’s SATA ports and the PSU in the compact case. Slim 90-degree SATA cables proved to be the perfect solution, allowing for clean and efficient cable routing in the tight space.
The 90-degree SATA cables provided just enough clearance in the tight space between the motherboard and PSU.
Optional Components: Balancing Needs and Complexity
Several components are often considered for NAS builds but were intentionally omitted from this project to manage cost, complexity, and space constraints.
Graphics Card (GPU): Integrated Graphics Solution
Given the limited space and expansion slots in a mini-ITX build, and the availability of integrated graphics on modern CPUs and motherboards, a dedicated graphics card was unnecessary for a headless NAS server.
Host Bus Adapter (HBA): Future Expansion Option
HBAs are PCI expansion cards that increase the number of SATA ports available, enabling connection of more hard drives. While beneficial for large storage arrays, they add complexity. Reflashing HBA firmware for optimal ZFS compatibility can be a technical hurdle. For my initial build, the ASUS A320I-K’s four SATA ports were sufficient. I ensured the build retained an open PCI slot for future HBA addition if expansion beyond four drives becomes necessary.
ECC RAM: Data Integrity Consideration
ECC (Error-Correcting Code) RAM is often discussed in NAS builds for its ability to detect and correct memory errors, potentially enhancing data integrity. However, consumer-grade RAM without ECC has proven reliable for decades in home computing. For a home server environment with backups in place, the added cost and complexity of ECC RAM didn’t seem essential. In mission-critical enterprise environments with constant heavy workloads, ECC RAM is a more justifiable investment.
SLOG Disk: Write Performance Enhancement
A Separate Intent Log (SLOG) is a dedicated SSD used in ZFS to accelerate write operations. By writing synchronous data to the fast SLOG SSD before committing it to the slower spinning disks, write performance can be significantly improved. However, adding a SLOG drive would have required sacrificing either the single PCI slot or one of the six drive bays in my build. Prioritizing future storage expansion capacity, I decided to forgo a SLOG drive for this initial build.
Parts List and Cost Breakdown
Category | Component | Price Paid |
---|---|---|
CPU | AMD Athlon 3000G | $105.13 |
Motherboard | ASUS Prime A320I-K* | $97.99 |
Graphics | None needed – motherboard has native graphics support | $0 |
Disk (OS) | Kingston A400 120GB | $31.90 |
Memory | CORSAIR Vengeance LPX 32GB CMK32GX4M2A2400C14 (2 x 16GB) | $127.99 |
Power | EVGA 110-BQ-0500-K1 500W 80+ Bronze Semi-Modular | $44.99 |
Case | Fractal Design Node 304 Black | $99.99 |
SATA cables | Silverstone Tek Ultra Thin Lateral 90 Degree SATA Cables (x2) | $22.30 |
Total (Server) | $530.29 | |
Disk (Storage) | Toshiba N300 HDWG480XZSTA 8TB 7200 RPM (x2) | $372.79 |
Disk (Storage) | Seagate IronWolf 8TB NAS Hard Drive 7200 RPM (x2) | $359.98 |
Total (Server + Disks) | $1,263.06 |
* Caveat: The ASUS Prime A320I-K motherboard may require a BIOS update to be compatible with the AMD Athlon 3000G CPU. Further details are provided below.
DIY vs. Off-the-Shelf NAS: A Value Comparison
To assess the value proposition of building your own home server, let’s compare it to similarly priced off-the-shelf NAS solutions:
Product | 2022 Budget NAS | Synology DS920+ | QNAP TS-473A-8G-US |
---|---|---|---|
Disk Bays | 6 | 4 | 4 |
RAM | 32 GB | 4 GB | 4 GB |
Max RAM | 32 GB | 8 GB | 8 GB |
CPU Benchmark | 4479 | 3002 | 4588 |
Price (Diskless) | $530.29 | $549.99 | $549 |
While the initial cost is comparable, building your own home server provides significantly more hardware for the money. You gain substantially more RAM, and escape vendor lock-in associated with proprietary operating systems. DIY offers greater control, customization, and learning opportunities.
Building Your Home Server: Step-by-Step Visual Guide
All the components unpacked and ready for assembly.
Installing the motherboard into the Fractal Design Node 304 case was straightforward.
Installing the M.2 SSD OS drive – a clean and simple process with no cabling.
Positioning the PSU within the case.
The tight fit requiring 90-degree SATA cables for connectivity.
Motherboard with CPU, RAM, and power connections in place (CPU fan to be installed).
The completed home server build, ready for deployment.
Streamlining the Build with TinyPilot
For server management and builds, I utilize TinyPilot, a Raspberry Pi-based KVM over IP device I developed. This build marked my third server deployment using TinyPilot and the first with the TinyPilot Voyager 2.
Utilizing TinyPilot Voyager 2 for remote server management during the build process.
TinyPilot significantly simplified the build process. I avoided the need for physical keyboard, mouse, and monitor connections. BIOS access, TrueNAS installation media mounting, and OS installation were all managed remotely through a web browser interface.
Mounting the TrueNAS installation ISO remotely through TinyPilot, eliminating USB drives and direct server access.
One minor limitation encountered was BIOS updates. TinyPilot excels at mounting .img
and .iso
disk images but currently lacks native support for raw file sharing needed for .CAP
BIOS update files. For this BIOS update, I temporarily resorted to a USB drive. Future TinyPilot updates aim to address this scenario for a fully streamlined remote build experience.
BIOS Compatibility and Troubleshooting
Upon initial assembly, the system powered on but displayed no video output. Troubleshooting steps (reseating RAM, CPU, checking cables) yielded no improvement. Online research indicated potential BIOS incompatibility between the ASUS Prime A320I-K motherboard and the Athlon 3000G CPU, requiring a BIOS update. This detail had been overlooked during part selection.
The challenge was updating the BIOS without a compatible CPU. Fortunately, the Ryzen 7 CPU from my 2017 VM server build was compatible with the ASUS Prime A320I-K. Borrowing the CPU and GPU from that system allowed the new NAS server to boot.
Using components from my older server to boot and access the BIOS for updating.
Surprisingly, even after booting with borrowed components, the BIOS version reported as 2203, which ASUS claimed was compatible with the Athlon 3000G. Nevertheless, I proceeded to update to the latest BIOS version, 5862.
ASUS documentation indicating Athlon 3000G compatibility from BIOS version 2203 onwards.
After updating to BIOS 5862, booting with the Athlon 3000G still failed. The issue turned out to be a simple oversight: the HDMI cable was mistakenly plugged into the DisplayPort output.
The subtle difference between HDMI and DisplayPort outputs, a source of potential confusion.
The entire BIOS update process may have been unnecessary. Possible scenarios include:
- User Error: I overlooked the HDMI/DisplayPort mistake initially and only corrected it after the BIOS update.
- ASUS Documentation Error: ASUS’s compatibility information might be inaccurate, and BIOS version 2203 might not actually support the Athlon 3000G.
Regardless of the root cause, the NAS finally booted successfully with the Athlon 3000G after the BIOS update and HDMI port correction.
The moment of successful boot with the Athlon 3000G CPU.
Performance Benchmarks: Read, Write, and Power Consumption
Benchmarking NAS performance can be challenging due to the lack of standardized tools that accurately reflect real-world network usage. Local disk I/O benchmarks are readily available but fail to capture network bottlenecks, which are often the limiting factor in NAS performance.
To assess performance, I devised a rudimentary benchmark using robocopy to measure read and write speeds between my desktop and the NAS. This test, while not rigorously controlled, provided a practical indication of network-based performance. For comparison, I ran the same tests against my old Synology DS412+.
Two file sets were used: 20GiB of 1GiB files and 3GiB of 1MiB files. Averages of three trials were taken for both encrypted and unencrypted volumes.
Performance peaked around 111 MiB/s (931 Mbps), closely aligning with the 1 Gbps limit of my network hardware, suggesting the network infrastructure was the primary bottleneck.
Read Performance: TrueNAS vs. Synology
For unencrypted volumes, the older Synology surprisingly outperformed the new TrueNAS build. Synology was approximately 31% faster reading small files and 10% faster with large files.
However, Synology’s performance drastically declined with encryption. Read speeds dropped by 67-75% on encrypted volumes, while TrueNAS experienced negligible performance impact from encryption. On encrypted volumes, TrueNAS outperformed Synology by 2.3x for small files and 3x for large files. Given that I primarily use encrypted volumes, this benchmark more accurately represents my typical usage.
Write Performance: TrueNAS Takes the Lead
Unlike read performance, TrueNAS consistently outperformed Synology in write speeds, even on unencrypted volumes. TrueNAS was approximately 77% faster writing small files, with comparable performance for large 1GiB files.
Encryption further widened the performance gap in write operations. With encryption enabled, TrueNAS was 5.2x faster than Synology for small files and 3.2x faster for large files.
Power Consumption: DIY Server vs. Off-the-Shelf NAS
Power consumption measurements were taken using a Kill A Watt P4460 meter for both the Synology DS412+ and the new TrueNAS server:
System | Synology DS412+ | 2022 DIY NAS |
---|---|---|
Idle Power | 38 W | 60 W |
Load Power | 43 W | 67 W |
The DIY server consumed approximately 60% more power than the Synology NAS, which was somewhat unexpected. At an electricity cost of $0.17/kWh, the DIY server’s monthly operating cost is around $7.20. The increased power draw might be attributed to the less optimized PSU in the DIY build compared to the likely custom-designed, more efficient PSU in the Synology NAS. The 500W PSU in the DIY build operating at a low percentage of its capacity may also contribute to reduced efficiency.
Final Thoughts and Key Learnings
Motherboard Reflections: ASUS Prime A320I-K
My primary regret with the ASUS Prime A320I-K was the BIOS compatibility uncertainty. However, it’s still not definitively clear if the motherboard was truly incompatible out-of-the-box or if the initial boot failure was solely due to the HDMI/DisplayPort mistake.
Beyond the BIOS issue, the ASUS BIOS interface itself was somewhat clunky. The built-in BIOS update utility failed to correctly identify the latest available BIOS version, requiring manual updates via USB drive.
The ASUS EZ Flash utility incorrectly reporting BIOS version 2203 as the latest available version.
Another limitation was the A320I-K’s maximum RAM capacity of 32GB. While sufficient for my current needs, future memory expansion is not possible with this motherboard.
Realtek Networking Driver Fix
The motherboard’s Realtek network interface occasionally exhibited instability under heavy network load. Reddit user /u/trevaar provided a helpful solution involving loading the official Realtek driver in TrueNAS to address these stability issues:
-
Navigate to System > Tunables in the TrueNAS web interface.
-
Add the following tunable settings:
Variable Value Type if_re_load
YES
loader if_re_name
/boot/modules/if_re.ko
loader
Case Critique: Fractal Design Node 304
While aesthetically pleasing, the Fractal Design Node 304 case proved to be less user-friendly than anticipated. Compared to the excellent Fractal Design Meshify C used in a previous build, the Node 304 lacked clear documentation and intuitive design elements. Working within the case was somewhat awkward, and certain design choices felt less refined than expected from Fractal Design. Being my first mini-ITX build, some of the challenges may be inherent to the form factor’s space constraints.
CPU Performance: AMD Athlon 3000G
The Athlon 3000G CPU proved to be more than adequate for my NAS workload. TrueNAS CPU utilization consistently remained below 1% over extended periods.
TrueNAS CPU utilization graph showing minimal CPU usage over a month of operation.
The key benefit of the Athlon 3000G was its integrated Radeon graphics, eliminating the need for a dedicated GPU and simplifying the build. For a low-power, cost-effective CPU with integrated graphics, the Athlon 3000G was a solid choice.
Data Drive Noise Levels: Surprisingly Quiet
Drive noise was a concern, but the Toshiba N300 and Seagate IronWolf drives operated remarkably quietly. Noise was only noticeable during performance benchmarks, and even then, the drives were quietest during read/write operations and loudest during file deletion processes between tests.
PSU Efficiency: Potential for Optimization
The 60W idle power consumption raises questions about PSU efficiency. A 500W PSU operating at such low load levels is likely not running at its optimal efficiency point. Exploring lower wattage PSU options in the 300-400W range might yield reduced idle power consumption.
OS Disk Performance: Kingston A400 SSD
The Kingston A400 SSD performed flawlessly as the OS drive. TrueNAS places minimal demands on the OS disk after booting. With 90GB of free space remaining, an even smaller capacity SSD could have been used. Disk activity on the OS drive is negligible, with minimal read/write operations except for infrequent scheduled error checks.
TrueNAS OS disk I/O graph showing virtually no disk activity after boot.
TrueNAS User Experience: Functionality over Finesse
TrueNAS Core 13, based on FreeBSD, is a robust and feature-rich NAS operating system. However, compared to the user-friendly Synology DSM interface, TrueNAS falls short in terms of usability and intuitiveness. The TrueNAS web interface feels less polished and requires a steeper learning curve.
Synology DSM (left) offers a significantly more user-friendly interface compared to TrueNAS (right).
Creating volumes and network shares in TrueNAS required navigating multiple menus with less intuitive workflows compared to Synology’s guided setup processes. Installing third-party applications, even pre-configured plugins like Plex Media Server, was considerably more complex in TrueNAS compared to Synology’s streamlined app installation.
Despite the usability differences, I remain committed to TrueNAS due to its open-source nature, platform independence, and powerful ZFS filesystem. For users prioritizing ease of use and a polished user experience, Synology remains a strong recommendation. However, for those valuing open source, customization, and deeper control, TrueNAS is a compelling alternative.
ZFS: Powerful Features Beyond RAID
ZFS offers a wealth of advanced features beyond basic RAID functionality. While I haven’t fully explored all of them yet, ZFS snapshots are a notable feature. While my restic backup solution already provides snapshot-like functionality, ZFS snapshots offer potentially faster and more convenient local data recovery. Encrypted snapshots are another intriguing ZFS feature, allowing secure backups of encrypted data volumes without decryption during the backup process.
Overall Satisfaction: A Rewarding DIY Experience
Overall, building my own home server has been a rewarding and educational experience. While a first-time NAS user might find the DIY approach challenging, my prior experience with Synology provided a valuable foundation. I now feel better equipped to leverage the advanced capabilities of ZFS and TrueNAS and have gained a deeper understanding of home server technology.
Video Guide
[Link to YouTube Video (Placeholder – Insert Actual Link Here)]
2.5-Year Update: Long-Term Usage Insights
After 2.5 years of continuous operation (as of November 2024), my DIY home server remains a valuable part of my homelab infrastructure.
Continued Satisfaction with DIY NAS
Despite missing the polished user experience of Synology, I appreciate the greater control and flexibility offered by TrueNAS and the DIY approach.
Disk Failure and Replacement: Toshiba N300
Approximately 18 months into operation, one of the Toshiba N300 drives began exhibiting clicking noises. While SMART tests showed no errors, I preemptively replaced the drive with a Seagate IronWolf 8TB and have had no issues since. This highlights the importance of drive monitoring and proactive replacement even before complete failure.
Rack-Mounted Chassis Upgrade: Sliger CX3701
A year after the initial build, I migrated my homelab to a server rack, and the NAS transitioned to a Sliger CX3701 10-bay rack-mounted chassis. This chassis is recommended, with the caveat that using the motherboard’s PCI slot for an HBA limits drive bays to four due to mini-ITX motherboard SATA port limitations.
TrueNAS Scale Migration: Linux-Based Alternative
I transitioned from TrueNAS Core (FreeBSD-based) to TrueNAS Scale (Debian Linux-based). TrueNAS Scale appeared to be receiving more active development. The primary difference noticed is a slightly improved web UI in Scale. As a Linux user, I also find the command-line environment of Scale more familiar.
10 Gbps Network Upgrade: Mellanox NIC Integration
With the rack migration, I upgraded my network to 10 Gbps and added a 10 Gbps fiber NIC to the NAS. Initial attempts with multiple NIC models failed, pointing to motherboard incompatibility issues.
Motherboard Upgrade: Gigabyte B550I Aorus Pro AX
To resolve 10 Gbps NIC compatibility, I upgraded the motherboard to the Gigabyte B550I Aorus Pro AX. This motherboard resolved the NIC compatibility issues. Compared to the ASUS Prime A320I-K, the Gigabyte motherboard offers several improvements (integrated I/O shield, SATA port orientation, RAM/CPU socket ease of use, fan pin placement) alongside minor drawbacks (confusing M.2 slot, slower BIOS boot).
Regret: Mini-ITX Expansion Limits
My biggest regret remains choosing a mini-ITX form factor. The single PCI slot and limited SATA ports restrict expansion options. Adding a 10 Gbps NIC meant sacrificing the possibility of adding an HBA for more drives. For future builds, a motherboard with more SATA ports or multiple PCI slots in a larger chassis form factor is recommended for greater flexibility.
Thanks to the Blogging for Devs Community for their valuable feedback on this article.