Building Your Own NAS Server: A Comprehensive Guide

This year, embarking on a journey into home data management, I constructed my very first home storage server. This robust 32 TB system, built at a cost of $1,263 (server parts at $531 and four disks for $732), now securely houses both my personal and business data, all powered by open-source software. While the price point mirrors many off-the-shelf storage servers, the custom-built solution offers significantly greater power and customization, perfectly tailored to my specific needs.

In this detailed guide, I will walk you through the entire process of building a network-attached storage (NAS) server. From selecting the ideal components and avoiding common pitfalls to offering clear recommendations, this post is designed for anyone considering building their own NAS server.


All components for the DIY NAS server project laid out in their original packaging, ready for assembly.


A fully assembled and operational DIY NAS server, showcasing a clean and compact build ready for network deployment.

For those who prefer a visual walkthrough, I’ve also recorded a comprehensive video explanation on YouTube.

Understanding NAS Servers and Why Build Your Own

What is a NAS Server?

NAS stands for network-attached storage. In essence, a NAS server is a dedicated system designed to store and serve data to other devices across a network. Unlike direct-attached storage (DAS), which is directly connected to a single computer, a NAS server connects to your network, allowing multiple users and devices to access and share files from a central location. This makes it an ideal solution for homes and small businesses looking to streamline data storage and accessibility.

Why dedicate an entire server just for storage? In today’s digital age, where data is constantly growing, decoupling storage from individual workstations offers several key advantages.

Firstly, it simplifies data management. Upgrading personal computers or laptops every few years often involves the cumbersome process of data migration. A dedicated NAS server eliminates this pain point, acting as a stable and consistent data repository, independent of individual machine upgrades. It also centralizes your files, making it easier to share and access them from any device on your network.

Secondly, consider the sheer volume of data many individuals and businesses accumulate. As a self-proclaimed data hoarder, I personally manage terabytes of data, including decades of digital photos, emails, personal project source code, and a vast collection of ripped DVDs and Blu-rays. Streaming services may offer convenience, but for cherished content, physical media remains king. Ripping these discs, however, consumes significant storage space, with a single Blu-ray disc potentially occupying 60 GB or more.


Extensive DVD and Blu-ray collection neatly organized in binders, highlighting the need for substantial digital storage for media enthusiasts.

The Homelab Concept

The term “homelab” has gained significant traction in recent years. It refers to a home-based environment where individuals experiment with IT hardware and software typically found in professional office or data center settings. A homelab serves various purposes, from providing a sandbox for honing professional IT skills to simply being a playground for exploring and tinkering with interesting technology. Building a NAS server is a common and valuable project within the homelab context.

DIY NAS vs. Off-the-Shelf NAS: Why Build Your Own?

If you’re new to the homelab scene or lack experience in PC building, starting with a pre-built, off-the-shelf NAS solution is generally recommended. Companies like Synology and QNAP offer user-friendly NAS devices that are easy to set up and manage, providing a smoother learning curve.

Before embarking on this DIY build, I myself relied on a 4-disk Synology DS412+ for seven years. My Synology NAS was an excellent entry point into the world of network storage, proving reliable and user-friendly. It was a testament to the convenience and ease of use that pre-built NAS systems offer.


A Synology DS412+ NAS server, a reliable off-the-shelf solution, used for seven years before transitioning to a DIY build.

However, a wake-up call arrived when my Synology NAS failed to boot, accompanied by ominous clicking noises. This incident underscored the dependence on a single, closed-system device. Off-the-shelf NAS servers, while convenient, often lack user-repairability. Post-warranty component failure typically necessitates complete server replacement. Furthermore, proprietary storage formats, like Synology Hybrid RAID (SHR), can complicate data recovery without another Synology system. (Although, as a helpful commenter on Hacker News pointed out, data recovery from Synology Hybrid RAID on non-Synology systems is possible. )

While my old Synology eventually recovered after cleaning and reseating the disks, this experience motivated a shift towards a more open and flexible solution. This led me to TrueNAS, an open-source operating system offering greater control and an open storage format.

Embracing Open Source: TrueNAS and ZFS

TrueNAS (formerly FreeNAS) stands out as a leading open-source operating system specifically designed for storage servers. With a history spanning nearly two decades, TrueNAS has established itself as a robust and dependable choice. Its open-source nature provides transparency, community support, and freedom from vendor lock-in.

At the heart of TrueNAS lies ZFS, a powerful filesystem engineered for enterprise-grade storage. Unlike traditional filesystems like NTFS or ext4, which operate atop a separate volume manager, ZFS integrates filesystem and volume management into a unified layer. This deep level of control enables ZFS to deliver enhanced performance, data integrity, and a rich feature set.

Key features of ZFS that make it ideal for NAS servers include:

  • Storage Pooling: ZFS aggregates multiple physical disks into a single, manageable storage pool, simplifying capacity management and utilization.
  • Data Integrity and Self-Healing: ZFS incorporates robust checksumming and redundancy mechanisms to automatically detect and repair data corruption, ensuring data reliability.
  • Snapshots: ZFS enables the creation of point-in-time snapshots, similar to macOS’s Time Machine, allowing for easy data recovery and versioning.
  • Data Protection Options: ZFS supports built-in data encryption and compression, enhancing security and storage efficiency.

Having no prior experience with ZFS, this project presented an exciting opportunity to explore its capabilities firsthand.

Storage Planning: Capacity and Redundancy

Estimating Storage Needs

When initially setting up my Synology NAS, I started with three 4 TB drives in a Synology Hybrid RAID (SHR) configuration, leaving one bay empty for future expansion. This provided 7 TB of usable storage. Within three years, I approached capacity limits and added a fourth drive, expanding usable space to 10 TB.

For this new DIY NAS server build, I adopted a similar phased approach. My initial goal was 20 TB of usable storage, with a future target of 30 TB as storage needs grow.

While ZFS traditionally didn’t 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, this functionality will be fully integrated into TrueNAS.

Update (2025-01-25): The ability to add disks to existing ZFS pools has been implemented in the latest ZFS release. While I haven’t personally tested it in TrueNAS yet, this is a significant enhancement for storage scalability.

Large vs. Small Disks: Balancing Capacity and Efficiency

ZFS is designed with data redundancy in mind to withstand disk failures. This inherent redundancy affects usable capacity calculations, as the total usable storage is not simply the sum of individual disk capacities.

ZFS organizes disks into “pools.” The number of disks within a pool influences storage efficiency. For instance, a pool of two 10 TB drives yields only half the total capacity as usable storage. Conversely, a pool of five 4 TB drives, despite the same total raw capacity, provides a significantly higher 14 TB of usable space. This is due to ZFS’s ability to distribute data and redundancy more efficiently across a larger number of disks.

Therefore, when planning a NAS server, a key decision involves choosing between fewer, larger drives versus more, smaller drives. While smaller drives often offer a lower cost per terabyte, they can be less energy-efficient. Two 4 TB drives consume twice the power of a single 8 TB drive.

Prioritizing a smaller physical footprint for my server led me to opt for fewer, larger capacity drives.

RAIDZ Configuration: Choosing the Right Redundancy Level

ZFS offers various RAID configurations, known as RAIDZ1, RAIDZ2, and RAIDZ3, each providing different levels of data redundancy. The primary distinction lies in their fault tolerance: RAIDZ1 tolerates a single drive failure, RAIDZ2 can withstand two simultaneous failures, and RAIDZ3 can survive up to three concurrent drive failures.

Increased redundancy comes at the cost of usable storage. Using five 4 TB drives as an example, the usable storage varies across RAIDZ levels:

ZFS Type Usable Storage % of Total Capacity
RAIDZ1 15.4 TB 77.2%
RAIDZ2 11.4 TB 57.2%
RAIDZ3 7.7 TB 38.6%

For my build, I selected RAIDZ1. With a limited number of drives, the probability of two drives failing concurrently is statistically low.

It’s crucial to remember that RAID is not a backup strategy. While ZFS RAIDZ protects against drive failures, it does not safeguard against other data loss scenarios like accidental deletion, malware attacks, or physical theft. For comprehensive data protection, I employ restic to regularly back up critical data to encrypted cloud storage.

The value of ZFS RAIDZ is to ensure continued operation and data availability in the event of a single drive failure, avoiding immediate reliance on offsite backups for routine drive replacements. While the possibility of two simultaneous drive failures exists, the storage capacity sacrifice for RAIDZ2 (20% in this scenario) was deemed unnecessary for my needs.

For larger NAS deployments with many drives, the risk of concurrent failures increases, making RAIDZ2 or RAIDZ3 more prudent choices.

Mitigating Concurrent Disk Failures

A naive calculation might suggest that the likelihood of simultaneous disk failures is negligible. Based on Backblaze’s data, even high-quality drives exhibit annual failure rates between 0.5% and 4%. A 4% annual failure rate translates to a weekly risk of just 0.08%. Statistically, two simultaneous failures might appear to occur only once every 30,000 years.

However, this simplistic view overlooks the critical factor of disk interdependence. Drives within close proximity, especially those of the same model and manufacturing batch subjected to similar workloads, are not statistically independent. If one drive fails, the risk of its neighbors failing increases significantly.

Furthermore, the process of rebuilding a ZFS pool after a drive failure imposes considerable stress on the remaining drives. A drive that might have otherwise lasted longer under normal conditions could succumb to the additional load during a pool rebuild.

To minimize the risk of concurrent failures, I took several preventative measures. I selected two different drive models from distinct manufacturers and purchased them from separate vendors to reduce the likelihood of receiving drives from the same manufacturing batch. While the precise impact of these measures is difficult to quantify, they added minimal cost and seemed a worthwhile precaution.


Holding Seagate IronWolf NAS hard drives purchased from two different vendors, aimed at diversifying manufacturing batches and reducing correlated failure risks.

Component Selection: Building Blocks of the NAS Server

Motherboard Choice

The motherboard formed the foundation of the build. I prioritized a compact form factor, inspired by the small footprint of my Synology DS412+. This led me to consider mini-ITX motherboards for the first time.

The ASUS Prime A320I-K motherboard was chosen based on several criteria:

  • SATA Ports: Four onboard SATA ports to directly connect the initial set of drives.
  • Integrated Graphics: Radeon graphics support to avoid the need for a separate graphics card, simplifying the build and reducing power consumption.
  • Affordability: A budget-friendly price point of only $98.


ASUS Prime A320I-K mini-ITX motherboard, selected for its integrated graphics, four SATA ports, and compact size.

Important Note: In retrospect, the ASUS Prime A320I-K motherboard proved to be a less than ideal choice. Further details on the limitations and potential alternatives are discussed below.

The B450 chipset motherboard was also considered, offering similar features but at nearly double the price. The primary advantage of the B450 seemed to be enhanced overclocking capabilities, which were not relevant for a NAS server application.

CPU Selection

Based on research and initial testing, ZFS is not particularly CPU-intensive for basic NAS operations. Running TrueNAS on a low-power Dell OptiPlex 7040 mini PC demonstrated minimal CPU utilization. Therefore, a low-power, energy-efficient CPU was sufficient.

The primary CPU requirement was compatibility with Radeon graphics to leverage the A320 motherboard’s onboard HDMI output.


AMD Athlon 3000G CPU, chosen for its integrated Radeon graphics, affordability, and adequate performance for NAS tasks.

The AMD Athlon 3000G emerged as a compelling option. Priced at around $105, it offers integrated Radeon graphics, good CPU benchmark scores, and excellent value for a NAS server application.

Case Selection

For the server chassis, I returned to Fractal Design, having had a positive experience with their cases in previous builds, particularly the Fractal Design case used for a VM server project.

The Fractal Design Node 304 Black, a compact mini-ITX case, was selected. Its cube-like design appealed to me, and it provides six internal 3.5″ drive bays, offering ample initial storage capacity and future expansion possibilities.


Fractal Design Node 304 Black mini-ITX case, chosen for its compact form factor, six 3.5″ drive bays, and aesthetic design.

Data Disk Selection

With six drive bays in the Node 304 case, I decided to start with four 8 TB drives, resulting in approximately 22.5 TB of usable storage in a RAIDZ1 configuration. Future expansion with a fifth and sixth drive would increase usable storage to 30.9 TB and 37 TB, respectively.

For 8 TB drives, 7200 RPM is the common speed, with some options reaching 10,000 RPM. However, for a NAS server primarily accessed over a network, speeds beyond 7200 RPM offer no practical performance benefit, as the network connection becomes the bottleneck. Faster drives would only increase noise and power consumption without improving real-world NAS performance.

Initially, I consulted Backblaze’s hard drive stats to identify reliable drive models. However, Backblaze primarily uses higher-end, more expensive drives. While tempting to invest in ultra-reliable drives with very low failure rates (e.g., 0.5%), the significant price premium for a marginal reduction in failure risk seemed unwarranted for a home NAS server.

A critical consideration was avoiding drives using Shingled Magnetic Recording (SMR) technology. ZFS performance degrades significantly on SMR drives. Therefore, it’s essential to consult lists of known SMR drives and choose drives explicitly labeled as CMR (Conventional Magnetic Recording), which are ZFS-compatible.

I ultimately selected the Toshiba N300 and Seagate IronWolf 8 TB drives. Both models received positive reviews on TrueNAS forums and Reddit communities. Priced in the $180-$190 range, they offered a good balance of capacity, performance, and value.

Toshiba N300 (left) and Seagate IronWolf (right) 8 TB NAS hard drives, chosen for their CMR technology and suitability for NAS applications.

OS Disk Selection

TrueNAS requires a dedicated OS disk, but its demands are minimal. The OS needs at least 2 GB of storage, and TrueNAS performs infrequent read/write operations to the OS drive after initial boot.


Kingston A400 120 GB M.2 SSD, an affordable and compact option for the TrueNAS operating system drive.

The Kingston A400 120 GB M.2 SSD was chosen for its extremely low price – around $32. M.2 SSDs are ideal for OS drives due to their compact form factor, eliminating the need for cables and occupying minimal space.

Memory (RAM) Selection

During research, the “rule” of 1 GB of RAM per 1 TB of storage for ZFS frequently surfaced. However, ZFS developer Richard Yao has debunked this as a myth. While some advanced ZFS features like data deduplication are RAM-intensive, basic NAS functionality operates effectively with limited memory. ZFS functions well even with constrained RAM.

RAM selection can be challenging, lacking readily available, reliable benchmarks or user reports for NAS applications. My RAM selection process was as follows:

  1. Compatibility Check: Review the list of RAM modules compatible with the ASUS A320I-K motherboard.
  2. Capacity Focus: Filter for 32 GB or 64 GB kits using only two DIMM slots (to allow for potential future upgrades).
  3. Brand Preference: Filter for reputable brands (Corsair, Crucial, G.SKILL, Kingston, Samsung, Patriot, Mushkin, HyperX).
  4. Budget Constraint: Filter for options under $150.

This process led to the selection of CORSAIR Vengeance LPX 32GB CMK32GX4M2A2400C14 (2 x 16GB) RAM, priced at $128, offering a compatible and reasonably priced 32 GB kit.


CORSAIR Vengeance LPX 32GB DDR4 RAM kit, chosen for compatibility, capacity, and reasonable price.

Power Supply Unit (PSU) Selection

Power requirements for a basic NAS server are relatively low. PCPartPicker estimated my system’s power consumption at only 218 W. A PSU in the 300-400 W range would have been sufficient. However, semi-modular PSUs in that lower wattage range were not readily available. Therefore, the 500 W EVGA 110-BQ-0500-K1 semi-modular PSU was selected.


EVGA 110-BQ-0500-K1 500W semi-modular power supply unit, providing ample power for the NAS build.

90-Degree SATA Cables


Holding a 90-degree SATA cable, essential for tight spaces in compact NAS builds.

One often-overlooked component is 90-degree SATA cables. In compact cases, the space between the motherboard SATA ports and the PSU can be extremely tight. Standard straight SATA cables may not fit. Slim, 90-degree SATA cables are designed to address this issue and ensure proper connectivity in space-constrained builds. These proved essential for this mini-ITX NAS build.


90-degree SATA cable successfully installed in a tight space between the motherboard SATA port and the power supply, showcasing its necessity in compact builds.

Components Not Included (and Why)

Several components commonly found in more advanced NAS builds were intentionally omitted from this budget-focused build.

Dedicated Graphics Card (GPU)

Given the limited space and PCI slots in a mini-ITX build, and the fact that a NAS server primarily operates headless (without a monitor), a dedicated graphics card was deemed unnecessary. The chosen motherboard and CPU combination with integrated Radeon graphics provided sufficient display output for initial setup and troubleshooting, eliminating the need for a separate GPU.

Host Bus Adaptor (HBA)

Host Bus Adaptors (HBAs) are often used in NAS servers to increase the number of supported drives beyond the motherboard’s native SATA ports. While HBAs offer expansion capabilities, they add complexity and cost. ZFS requires flashing the HBA firmware to IT mode, a process that can be technically challenging for beginners. For this initial build, the four SATA ports on the ASUS A320I-K motherboard were sufficient. An empty PCI slot was reserved for a future HBA if storage expansion beyond four drives becomes necessary.

ECC RAM (Error-Correcting Code RAM)

ECC RAM, which incorporates error detection and correction capabilities, is often recommended for critical server applications to prevent data corruption. While data integrity is paramount, consumer-grade, non-ECC RAM has proven reliable for decades in personal computers without widespread data corruption issues. For a home NAS server, the added cost and complexity of ECC RAM were considered less critical. For enterprise-level deployments or systems under heavy load, ECC RAM might be more justifiable.

SLOG Disk (Separate Intent Log)

A Separate Intent Log (SLOG) is a dedicated SSD sometimes used in ZFS configurations to accelerate write performance. Data is initially written to the fast SLOG SSD and then asynchronously flushed to the slower spinning disks. While SLOGs can significantly improve write speeds, they require additional ports and drive bays. Given the limited ports and bays in this build, and the desire to prioritize storage capacity expansion, a SLOG disk was omitted.

Complete Parts List and Costs

Category Component Price Paid
CPU AMD Athlon 3000G $105.13
Motherboard ASUS Prime A320I-K* $97.99
Graphics Integrated Radeon Graphics (Onboard) $0
Disk (OS) Kingston A400 120GB $31.90
Memory CORSAIR Vengeance LPX 32GB CMK32GX4M2A2400C14 (2 x 16GB) $127.99
Power Supply 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
Subtotal (Excluding Storage Disks) $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 System Cost $1,263.06

* Caveat: The ASUS Prime A320I-K motherboard may require a BIOS update to be compatible with the AMD Athlon 3000G CPU. See details in the troubleshooting section below.

Cost Comparison: DIY vs. Off-the-Shelf NAS

To assess the value proposition of a DIY NAS server, it’s helpful to compare it to similarly priced off-the-shelf alternatives. The table below compares the DIY build to popular 4-bay NAS models from Synology and QNAP in the same price range.

Feature 2022 DIY Budget NAS Synology DS920+ QNAP TS-473A-8G-US
Disk Bays 6 4 4
RAM (Included) 32 GB 4 GB 4 GB
Max RAM Capacity 32 GB 8 GB 8 GB
CPU Benchmark (PassMark) 4479 3002 4588
Approximate Price (Diskless) $530.29 $549.99 $549

While the initial cost is comparable, the DIY NAS build offers significant advantages in terms of RAM capacity and expansion potential. It provides 8x more RAM than the off-the-shelf options and isn’t locked into a closed-source, vendor-specific operating system. The DIY approach offers greater flexibility, customization, and potentially better long-term value.

Step-by-Step Build Photos


All components unboxed and ready for assembly, showcasing the initial stage of the DIY NAS server build process.


Motherboard successfully installed within the Fractal Design Node 304 case, demonstrating a smooth fit and compatibility.


M.2 SSD OS drive installed directly onto the motherboard, highlighting the clean and cable-free installation of M.2 drives.


Power supply unit mounted in the case, showcasing the internal PSU configuration of the Fractal Design Node 304.


90-degree SATA cables pre-installed on the motherboard, before PSU installation, for easier cable management in the compact case.


Close-up of 90-degree SATA cables fitting snugly between the motherboard and PSU, emphasizing the crucial role of these cables in tight builds.


Motherboard fully populated with CPU, RAM, and power connections, illustrating the core components assembled before final drive installation.


The completed DIY NAS server build, showcasing a compact and functional system ready for network deployment and data storage.

Streamlining the Build with TinyPilot

For this build, I leveraged TinyPilot, a Raspberry Pi-based KVM over IP device I developed for remote server management. This was my third server build using TinyPilot and the first with the new TinyPilot Voyager 2.


TinyPilot Voyager 2 PoE KVM over IP device connected to the DIY NAS server, enabling remote management and installation.

Using TinyPilot Voyager 2 significantly simplified the build process. I completely avoided the need for a physical keyboard, mouse, and monitor connected to the server. BIOS access, TrueNAS installation from ISO, and all management tasks were performed remotely through a web browser interface via TinyPilot.


TrueNAS installation screen accessed remotely via TinyPilot, demonstrating the device’s ability to mount ISO images and manage the server remotely.

One minor limitation encountered was during BIOS updates. TinyPilot supports mounting disk images like .img and .iso, but direct file sharing of raw files like .CAP BIOS update files was not yet implemented. For the BIOS update, I had to resort to a USB thumb drive, a minor deviation from a purely TinyPilot-driven build process. Future TinyPilot updates aim to address this scenario to enable fully remote BIOS management.

Troubleshooting: BIOS Compatibility and Display Output

Upon assembling all components, the system powered on, but no video output was displayed. Initial troubleshooting steps, including reseating RAM, CPU, and checking cables, yielded no results.

Panic ensued, followed by online research, revealing that the ASUS Prime A320I-K motherboard might require a BIOS update to support the Athlon 3000G CPU. I vaguely recalled seeing a compatibility warning during part selection but dismissed it, assuming BIOS updates were straightforward. The crucial oversight was: how to update the BIOS without a compatible CPU to boot the system?

Fortunately, the Ryzen 7 CPU from my 2017 homelab VM server was compatible with the ASUS Prime A320I-K. Borrowing the CPU and GPU from that older server, I managed to boot the new NAS server and access the BIOS.


ASUS BIOS screen showing version 2203, accessed using components borrowed from an older server for initial boot and BIOS update.

Surprisingly, even after booting with borrowed parts, the BIOS reported version 2203, which ASUS claims is compatible with the AMD Athlon 3000G. Nevertheless, I proceeded to update to the latest BIOS version, 5862.


ASUS Prime A320I-K CPU compatibility list, indicating Athlon 3000G support from BIOS version 2203 onwards.

After updating to BIOS 5862, booting with the Athlon 3000G still failed. Then, the embarrassing realization: the HDMI cable was mistakenly plugged into the motherboard’s DisplayPort output instead of the HDMI port.


Screenshot highlighting the HDMI and DisplayPort outputs on the motherboard I/O panel, illustrating the easily overlooked mistake of incorrect cable connection.

Was the entire borrowed-parts BIOS update process necessary? Two possibilities exist:

  1. User Error: I overlooked the DisplayPort vs. HDMI cable mishap until after the BIOS update.
  2. ASUS Inaccuracy: ASUS may have incorrectly listed Athlon 3000G compatibility with BIOS 2203.

Given the ASUS BIOS’s somewhat flaky behavior during the update process (described later), the issue might have been on the motherboard side. Regardless, after correcting the HDMI connection, the NAS finally booted successfully with the Athlon 3000G.


Video screenshot capturing the moment of successful first boot with the Athlon 3000G CPU installed, after resolving the BIOS and display output issues.

Performance Benchmarks: Read, Write, and Power Consumption

Surprisingly, finding robust NAS benchmarking tools proved challenging. Tools exist for local disk I/O benchmarking on the NAS itself, but these don’t reflect real-world network performance. Since NAS usage is predominantly network-based, local disk benchmarks are insufficient for evaluating overall system performance.

I devised a rudimentary benchmark using robocopy to measure read and write speeds between my desktop and the NAS. This was not a rigorous scientific test, conducted on a non-isolated network and without disabling other desktop processes. The same tests were run against my old Synology DS412+ for comparison.

Two file sets were used: 20 GiB of 1 GiB files and 3 GiB of 1 MiB files. Averages of three trials were taken for both encrypted and unencrypted volumes.

Performance peaked at 111 MiB/s (931 Mbps), suspiciously close to the 1 Gbps limit, suggesting the network interface as the bottleneck. My switch, desktop, and NAS servers all utilize 1 Gbps Ethernet ports.

Read Performance

For unencrypted volumes, surprisingly, the 7-year-old Synology DS412+ outperformed the new TrueNAS build. Synology was 31% faster in reading small files and 10% faster for large files.

Synology’s lead vanished with encryption enabled. Synology read speeds plummeted by 67-75% on encrypted volumes, while TrueNAS performance remained unaffected by encryption. This resulted in TrueNAS outperforming Synology by 2.3x for small files and 3x for large files on encrypted volumes, more accurately reflecting typical usage as most of my data is stored encrypted.

Write Performance

While Synology excelled in unencrypted reads, TrueNAS dominated write performance. Even on unencrypted volumes, TrueNAS was 77% faster for small files, with comparable performance for large (1 GiB) files.

Enabling encryption further exacerbated Synology’s write performance degradation. With encryption, TrueNAS was 5.2x faster for small files and 3.2x faster for large files.

Power Consumption

Power consumption was measured using a Kill A Watt P4460 meter for both the old Synology and the new TrueNAS server:

NAS Model Synology DS412+ 2022 DIY NAS
Idle Power 38 W 60 W
Load Power 43 W 67 W

The new DIY NAS consumes approximately 60% more power than the older Synology. At an electricity cost of $0.17/kWh, the DIY NAS server costs around $7.20 per month to operate. The higher power consumption might be attributed to a less efficient PSU (oversized 500W PSU for a system with lower actual power draw) compared to Synology’s likely optimized PSU.

Final Thoughts and Component Review

Motherboard (ASUS Prime A320I-K)

The ASUS Prime A320I-K motherboard’s limited CPU compatibility and the BIOS update experience were the primary drawbacks. However, the compatibility issue might have been user error (DisplayPort/HDMI confusion).

The BIOS upgrade utility (ASUS EZ Flash) proved unreliable, incorrectly reporting the installed BIOS version as the latest when a newer version was available on the ASUS website. Manual BIOS updates via USB thumb drive were necessary.

Screenshots illustrating the ASUS EZ Flash utility incorrectly reporting BIOS version 2203 as the latest (left) while the ASUS website clearly showed version 5862 available (right), highlighting the BIOS update utility’s unreliability.

The A320I-K’s 32 GB RAM limit is another potential constraint, although current RAM usage is well below this threshold.

Realtek Network Driver Fix

Network stability issues with the motherboard’s Realtek NIC under heavy load were resolved by implementing a workaround suggested by /u/trevaar on Reddit. Loading the official Realtek driver in TrueNAS resolves these stability issues. The steps are:

  1. Navigate to System > Tunables in the TrueNAS web UI.

  2. Add the following Tunable settings:

    Variable Value Type
    if_re_load YES loader
    if_re_name /boot/modules/if_re.ko loader

Case (Fractal Design Node 304)

The Fractal Design Node 304 case, while aesthetically pleasing externally, proved less user-friendly to work with internally compared to previous Fractal Design cases. Documentation was minimal, and some case mechanisms were not intuitive. As my first mini-ITX build, some challenges might be inherent to the form factor, requiring compromises in ease of assembly for size reduction.

CPU (AMD Athlon 3000G)

The Athlon 3000G CPU is more than adequate for basic NAS tasks. TrueNAS CPU utilization consistently remains below 10%, indicating significant headroom.


TrueNAS CPU usage graph for March, showing consistently low utilization, highlighting the Athlon 3000G’s overcapacity for basic NAS functions.

The key benefit of the Athlon 3000G was its integrated Radeon graphics, eliminating the need for a dedicated GPU. At $105, it provided excellent value.

Data Disks (Toshiba N300 & Seagate IronWolf)

Disk reliability and longevity are still to be determined over time. Initial performance and noise levels are satisfactory. Disks are inaudible during normal operation, with slight noise only noticeable during performance benchmarks, particularly during file deletion operations.

Power Supply Unit (PSU) (EVGA 110-BQ-0500-K1)

The 500W PSU is likely oversized, contributing to higher idle power consumption. A lower wattage PSU (300-400W range) might improve energy efficiency.

OS Disk (Kingston A400 120GB M.2 SSD)

The Kingston A400 120GB M.2 SSD performs flawlessly as the OS drive. TrueNAS OS disk activity is minimal after booting.


TrueNAS OS disk I/O graph showing minimal activity after system boot, confirming the Kingston A400 SSD’s suitability for the OS drive role.

TrueNAS (TrueNAS Core 13)

TrueNAS Core 13, the FreeBSD-based version, provides a robust and mature NAS operating system. However, the user interface is a significant usability downgrade compared to Synology’s intuitive and polished web UI. TrueNAS UI appears less user-friendly, requiring more technical knowledge and lacking guided workflows.

Comparison of Synology DSM web UI (left) and TrueNAS web UI (right), highlighting Synology’s superior user-friendliness and visual design.

Third-party app installation on TrueNAS (e.g., Plex) is also more complex compared to Synology’s streamlined plugin installation process. Despite usability drawbacks, TrueNAS’s open-source nature and avoidance of vendor lock-in remain compelling advantages. For users prioritizing ease of use over open-source principles, Synology remains a strong recommendation.

ZFS

ZFS is a powerful filesystem with advanced features, but for basic NAS usage, RAID functionality is the primary benefit. Features like snapshots, while potentially useful, haven’t been extensively utilized in my workflow, as restic backups already provide snapshot-like functionality. Encrypted snapshots, enabling backups of encrypted data without decryption, are a potentially valuable feature for future exploration.

Overall DIY NAS Experience

Overall, building this DIY NAS server was a rewarding learning experience. For first-time NAS users, starting with an off-the-shelf Synology NAS is still recommended for its ease of use and gentler learning curve. However, for those seeking greater customization, control, and open-source solutions, DIY NAS builds with TrueNAS and ZFS offer significant advantages. This build provided valuable hands-on experience with ZFS and TrueNAS, paving the way for exploring more advanced features in the future.

Video Walkthrough

[Link to YouTube Video Here] – Placeholder for YouTube video link

2.5-Year Update: Long-Term Usage Review

After 2.5 years of continuous operation (as of November 2024), here are updates on the DIY NAS server’s performance and evolution:

Continued Satisfaction with the NAS

The DIY NAS continues to serve reliably as a central storage solution. While Synology’s user experience is missed, the greater control and flexibility offered by TrueNAS are appreciated.

Toshiba N300 Disk Failure

After approximately 18 months, one Toshiba N300 drive began exhibiting clicking noises. While SMART tests showed no errors, preemptive replacement was deemed prudent. The failed drive was replaced with an 8 TB Seagate IronWolf, and no further disk issues have occurred.

Rack-Mounted Chassis Upgrade

A year after the initial build, the NAS server was migrated to a server rack along with other homelab infrastructure. A Sliger CX3701 10-bay server chassis was purchased. This chassis is recommended for users planning to utilize an HBA for expanded SATA ports. However, with a mini-ITX motherboard, only four of the 10 bays can be used without an HBA, as mini-ITX boards typically have only four SATA ports and one PCI slot (needed for the HBA).

TrueNAS Scale Migration

TrueNAS Scale, the Debian-based version, was adopted due to its increased development focus and potentially wider hardware and software compatibility. The primary noticeable difference after switching to Scale is a slightly improved web UI. Linux-based TrueNAS Scale also aligns better with my general Linux familiarity compared to FreeBSD-based Core.

10 Gbps Network Interface Card (NIC) Integration

To leverage a 10 Gbps network switch, a 10 Gbps NIC was added to the NAS. Initial attempts with multiple NIC models were unsuccessful due to apparent motherboard incompatibility issues.

Motherboard Upgrade (Gigabyte B550I Aorus Pro)

To resolve 10 Gbps NIC compatibility issues, the motherboard was upgraded to a Gigabyte B550I Aorus Pro AX motherboard. The Gigabyte B550I Aorus Pro AX motherboard is generally preferred over the ASUS Prime A320I-K for reasons outlined in the updated review section. The motherboard upgrade successfully resolved 10 Gbps NIC compatibility, enabling full 10 Gbps network speeds. Configuration challenges were encountered in TrueNAS Scale when assigning the static IP to the new 10 Gbps NIC, requiring disabling the onboard LAN in BIOS and reconfiguring static IP settings.

Regret: Mini-ITX Form Factor Limitation

The primary regret in the build is choosing a mini-ITX form factor for the case and motherboard. Mini-ITX limits expansion options due to the single PCI slot and typically only four SATA ports. The desire to add a 10 Gbps NIC meant sacrificing potential HBA expansion for more drives.

In retrospect, a rack-mounted chassis with slots for 6-8 3.5″ drives and a motherboard with multiple PCI slots or at least eight SATA ports would have provided greater long-term flexibility.

Thanks to the members of the Blogging for Devs Community for providing early feedback on this post.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *