Purpose A little over a month ago, my gaming computer failed. I performed hardware maintenance, when the SSD decided to not work. Thankfully, I had a backup of my machine, however I had to remove a HDD from the computer and take it to the family’s computer to load the backup. I also got behind on my work because my computer was down and all my data was on the computer. I decided to make a NAS unit so if my computer goes down, I can still access my data anywhere in the network. I could have gone with a pre-built NAS; however, I would lose a lot of performance, and the off-the-shelf NAS usually cost a decent chunk.

Requirements * 1) RAID 5 * 2) Small and quite (I don’t have too much room) * 3) Plenty of storage (Right now I use 2TB of data, 8TB will be plenty for right now.)

Budget I planned on $500 for the NAS. I knew this would be hard because of the HDDs. I decided to purchase the parts slowly, and spread this out over a few paychecks.

Motherboard I chose the ASRock C2550D4I Mini ITX Atom C2550 Motherboard, mainly because of the integrated CPU and the support for DDR3. I also enjoy the 2 x 1000 Mbps NIC ports. However, I found out my internet router does not enjoy NIC teams, so I am stuck with one NIC disabled.

Memory The Operating System, FreeNAS, recommends 16GB of ECC Ram. Due to the budget, I felt it was best stealing some RAM from an old machine I had, turns out it was a Crucial brand and 16GB of DDR3; the RAM is not an ECC-compliant. So far, I haven’t had any problems. However, the NAS has been running for a day now.

Storage/HDDs This part of the build I had no clue on how I was going to purchase the HDDs. I have a stack of 250GB and 100GB HDDs, however most of them are a IDE Ribbon Cable. Thankfully, at my work, we decided to upgrade all our NAS units that we use for Backups, with more storage. They decided to keep all but 4 HDDs from the upgrade, as spare for projects down the road. My boss asked me if I would like some of the old HDDs, and all that I could think of was YES. The only problem was I had to wipe the HDDs myself, instead of letting another employee wipe them. So, 4 free HDDs, I was happy. Late down the road, I would like to upgrade the HDD so 2 are Seagate brand, and 2 are WD. I have been caught up in a bad batch of hardware, and even though it doesn’t happen often, I don’t want to risk it for my data.

Case I wanted a system that I could do hot-swappable drive, so if one HDD was to fail, I could quickly go out and get a new HDD to replace it. I don’t need anything massive, and I would prefer to keep the NAS unit small, as I already have a ton of computers and a pile of junk parts. I ended up going with a 4-bay NAS chassis from U-NAS. The chassis came with a power supply, which met the needs of the system by a decent chunk. I do believe in having double the amount of power required, for your computer, however, I decided to give this requirement up with this NAS unit. The case has a spot for USB 3.0 on the front, however, I goofed up and didn’t confirm the motherboard had support for 3.0 USB. I will look at buying a 2.0 to 3.0 converter, just not right now.

Operating System To host my OS, I gave up the speed of a HDD, for a USB. I went with a 16 GB USB, as it met the recommended minimum hardware requirements of FreeNAS. For now, I am running the USB on 2.0, and I don’t see too much performance loss. I bet I will notice some performance loss when I start to move all of my data over to the NAS.

Note: I built this NAS unit based from the DIY NAS 2016,

Part Reviews


I enjoy having the CPU built in to the build. I love how small these things can get. The only thing I wish this had was support for USB 3.0.

There is no need to purchase a NIC card, as this comes with 2 wonderful NIC ports. It also surprised me with a management port, that I can control the NAS when it's offline.


So far no problem. Especially being a used part.


WAY TO EASY TO LOSE. That is what you get for owning a small USB. It's meant to be put in the computer and never taken out.

Log in to rate comments or to post a comment.


  • 38 months ago
  • 1 point

ASRock C2550D4I Mini ITX Atom C2550 Motherboard

Be sure you obtain and flash the latest firmware. These motherboards have been keeling over after about a year owing to a HW bug involving the watchdog timer.

...I felt it was best stealing some RAM from an old machine I had, turns out it was a Crucial brand and 16GB of DDR3; the RAM is not an ECC-compliant.

If you care about your data, budget for an upgrade later on. Errors creeping in to non-ECC RAM can bite you when you least expect it and could potentially corrupt your entire pool.

U-NAS NSC-400 Server Chassis with Power Supply

I've been enamored of their 8-bay chassis for a while. Building in it, however, is reportedly an unpleasant experience, and airflow isn't the greatest.

Seagate 2TB 3.5" 5900RPM Internal Hard Drive

So far no problem. Especially being a used part.

Since they're used, run a SMART report on them to see how many power-on hours they have so far. Run a SMART long test as well.

I would suggest setting up a RAID-Z1 (yielding 6TB storage) or RAID-Z2 (4TB storage) vdev. Given the age of the drives, and Seagate's reputation of late, RAID-Z2 is the safer option.

For now, I am running [FreeNAS on] the USB on 2.0, and I don’t see too much performance loss. I bet I will notice some performance loss when I start to move all of my data over to the NAS.

You won't see any measurable performance difference. Once FreeNAS boots, it runs almost entirely out of RAM, hitting the boot volume very rarely. My own FreeNAS box boots off a 16GB USB flash stick; never been a problem.

Are you running FreeNAS 9.10 or FreeNAS Corral?

  • 38 months ago
  • 1 point

Senpai, please teach me oh wise one.


  • 38 months ago
  • 1 point

Thanks, ewhac for your suggestions. I should add more info to the build. The OS is running the Alpha build of FreeNAS version 10. I chose this version because I have played around with it in a Hyper-V virtual machine, and enjoyed its features. I set it up in RAID-Z1 which gave me 6TB. I like this configuration so I can lose a HDD and still be fine. Thank you for the info about the firmware problem. I will upgrade the firmware ASAP. To back up my NAS, I got a 4TB Seagate Backup Plus which is plugged into the open USB port on the back of the NAS.

I would love to play with an 8-Bay from U-NAS, however I don’t have the money nor the HDDs required. Plus, right now I don’t really need that much. I had a massive problem installing the motherboard in the 4-Bay. I also found out the motherboard doesn’t get any air-flow, except for a small amount on the side. The fan for the NAS is right behind the HDDs.

I did run a SMART report for 24 hours. I guess I should had run all those reports and got the OS install before posting, and include information such as OS version and RAID level.

  • 38 months ago
  • 2 points

I did run a SMART report for 24 hours.

Er, actually I meant obtain a SMART report directly from the drive using smartctl -x. I dunno if FreeNAS Corral has a pretty GUI for this (FreeNAS 9.x doesn't).

Here's an example of a SMART report from one of the HDDs in my Linux box; the reports you will see on FreeNAS will be similar:

$ sudo smartctl -x /dev/sdq
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.9.0-2-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke,

Model Family:     Western Digital Blue
Device Model:     WDC WD5000AZLX-00K4KA0
LU WWN Device Id: 5 0014ee 25e9b998b
Firmware Version: 80.00A80
User Capacity:    500,107,862,016 bytes [500 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Wed Apr  5 23:34:06 2017 PDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
AAM feature is:   Unavailable
APM feature is:   Unavailable
Rd look-ahead is: Enabled
Write cache is:   Enabled
ATA Security is:  Disabled, frozen [SEC2]
Wt Cache Reorder: Enabled

SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x82) Offline data collection activity
                                        was completed without error.
                                        Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever 
                                        been run.
Total time to complete Offline 
data collection:                ( 5280) seconds.
Offline data collection
capabilities:                    (0x7b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new
                                        Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                                        power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine 
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        (  63) minutes.
Conveyance self-test routine
recommended polling time:        (   5) minutes.
SCT capabilities:              (0x30b5) SCT Status supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
  1 Raw_Read_Error_Rate     POSR-K   200   200   051    -    0
  3 Spin_Up_Time            POS--K   175   174   021    -    2241
  4 Start_Stop_Count        -O--CK   100   100   000    -    104
  5 Reallocated_Sector_Ct   PO--CK   200   200   140    -    0
  7 Seek_Error_Rate         -OSR-K   200   200   000    -    0
  9 Power_On_Hours          -O--CK   062   062   000    -    28082
 10 Spin_Retry_Count        -O--CK   100   100   000    -    0
 11 Calibration_Retry_Count -O--CK   100   253   000    -    0
 12 Power_Cycle_Count       -O--CK   100   100   000    -    66
192 Power-Off_Retract_Count -O--CK   200   200   000    -    45
193 Load_Cycle_Count        -O--CK   200   200   000    -    58
194 Temperature_Celsius     -O---K   103   094   000    -    40
196 Reallocated_Event_Count -O--CK   200   200   000    -    0
197 Current_Pending_Sector  -O--CK   200   200   000    -    0
198 Offline_Uncorrectable   ----CK   200   200   000    -    0
199 UDMA_CRC_Error_Count    -O--CK   200   200   000    -    0
200 Multi_Zone_Error_Rate   ---R--   200   200   000    -    0
                            ||||||_ K auto-keep
                            |||||__ C event count
                            ||||___ R error rate
                            |||____ S speed/performance
                            ||_____ O updated online
                            |______ P prefailure warning

In this table, you'll want to pay attention to attribute #9 (Power_On_Hours), which tells you how long the drive has been in service; #5 (Reallocated_Sector_Ct), which tells you how many sectors had to be moved; and #198 (Offline_Uncorrectable), which says how many sectors have been taken out of service because of uncorrectable read errors. If #5 or #198 are very high, you should regard the drive with suspicion. Also, if #9 calculates out to more than three years, then the drive should be regarded as "old."

The SMART self-test logs look like this:

SMART Extended Comprehensive Error Log Version: 1 (6 sectors)
No Errors Logged

SMART Extended Self-test Log Version: 1 (1 sectors)
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%     28062         -
# 2  Extended offline    Completed without error       00%     28039         -
# 3  Short offline       Completed without error       00%     28014         -
# 4  Short offline       Completed without error       00%     27990         -
# 5  Short offline       Completed without error       00%     27966         -
# 6  Short offline       Completed without error       00%     27942         -
# 7  Short offline       Completed without error       00%     27919         -
# 8  Short offline       Completed without error       00%     27895         -
# 9  Extended offline    Completed without error       00%     27872         -
#10  Short offline       Completed without error       00%     27847         -
#11  Short offline       Completed without error       00%     27823         -
#12  Short offline       Completed without error       00%     27799         -
#13  Short offline       Completed without error       00%     27775         -
#14  Short offline       Completed without error       00%     27751         -
#15  Short offline       Completed without error       00%     27727         -
#16  Extended offline    Completed without error       00%     27704         -
#17  Short offline       Completed without error       00%     27679         -
#18  Short offline       Completed without error       00%     27655         -

As you see, I have my system setup to perform a short test every day, and a long test once a week. In practice, SMART self-tests aren't very useful; drive failure is usually too abrupt. The only consistent predictor of early drive failure is drive temperature. Drives that are run too warm for too long have shorter lives. Hence, the SMART report's temperature section can help you see temperatures over time:

SCT Status Version:                  3
SCT Version (vendor specific):       258 (0x0102)
SCT Support Level:                   1
Device State:                        Active (0)
Current Temperature:                    40 Celsius
Power Cycle Min/Max Temperature:     11/42 Celsius
Lifetime    Min/Max Temperature:     11/49 Celsius
Under/Over Temperature Limit Count:   0/0
Vendor specific:
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

SCT Temperature History Version:     2
Temperature Sampling Period:         1 minute
Temperature Logging Interval:        1 minute
Min/Max recommended Temperature:      0/60 Celsius
Min/Max Temperature Limit:           -41/85 Celsius
Temperature History Size (Index):    478 (156)

Index    Estimated Time   Temperature Celsius
 157    2017-04-05 15:37    40  *********************
 ...    ..(292 skipped).    ..  *********************
 450    2017-04-05 20:30    40  *********************
 451    2017-04-05 20:31    39  ********************
 ...    ..( 51 skipped).    ..  ********************
  25    2017-04-05 21:23    39  ********************
  26    2017-04-05 21:24    40  *********************
 ...    ..(129 skipped).    ..  *********************
 156    2017-04-05 23:34    40  *********************
  • 38 months ago
  • 1 point

Sorry, I was thinking of a different SMART test. I will run this here shortly on the FreeNAS. Thanks for your advice!

  • 34 months ago
  • 1 point

Baloney. It's an urban myth that you need ECC ram in a FreeNAS system. DDR3 and DDR4 ram are now at a point where they are stable enough that this is such a remote possibility it isn't worth the extra cash. Just check out LawrenceSystems on Youtube. He goes into great depth to explain it.

  • 33 months ago
  • 1 point

You are, of course, free to subject your own data to as much risk as you are comfortable doing.

Since ZFS effectively has no recovery tools, I prefer to follow the advice of the senior contributors to the FreeNAS discussion fora, who could regale you with dozens of stories of desperate people hoping to diagnose and recover their corrupted pools, hopes that evaporate the moment they reveal they were using non-ECC RAM in their systems because it was "cheaper" -- a savings that is cold comfort in the shadow of multiple terabytes of lost data.

So I spent the extra few dollars and used ECC RAM. If my NAS pools become corrupt, I know it won't be the fault of the RAM. (ECC RAMs are also resistant to rowhammer attacks.)

  • 38 months ago
  • 1 point

Just one thing... why did you buy a low profile flash drive?

  • 38 months ago
  • 2 points

That's where the OS boots from. Perfectly normal in the case of FreeNAS.

  • 38 months ago
  • 1 point

The other reason that goes along with the OS, is a drive that isn't sticking out too far. So if something was to bump the NAS, the USB won't be bent. Not like I done that a few times...

UPDATE to my parts list. I actually bought a SanDisk 16GB Cruzer Fit USB 2.0 Flash Drive from Microcenter at $6.99.

  • 38 months ago
  • 2 points

Actually, if there were more room in the case, I'd suggest getting one of these, plugging it into the USB_2-3 header on your motherboard, and plugging the USB stick in to that. That way it's safely out of harm's way, accidental or otherwise.

  • 38 months ago
  • 1 point

That's a smart idea. The only problem is I have 1 USB plug on the board. What I might do is grab some sort of USB to SATA and plug the USB (Operating System) into a SATA port on the motherboard. That way the OS is protected inside the computer. Thanks for the advice. :)