Building a high performing home NAS on a shoestring budget with the Rock64 SBC

I’ve gone through many iterations of a Home NAS over the years. It started with an AMD Phenom based system running in a Norco case with about 8 hard SATA hard drives (4 primary, 4 backup via Rsync). The noise and power consumption of that system was overkill for what it was used for, so I sold it and went to a four-bay QNAP NAS a few years ago. With some hard drive capacity upgrades at the time too, I was able to reduce that to three primary drives (all 4TB) that backed up to two external USB 3.0 drives overnight.

The QNAP was great, but I always had a few lingering concerns with that setup:

  • When I hit four drives, I’d be done. I’d need to rip it out and upgrade, and the cost of a purpose made 6++ bay NAS was astronomical for my home budget.
  • The file system of all the internal drives, even when I ran them as single disks, was setup as RAID (yes, it somehow made each single disk it’s own single disk RAID system, rather than just using EXT4 or a similar single disk file system). This made it had to pull them out of the NAS and put them into any other system without hoping I could rebuild the single disk array and not lose my files. For where I sit with Linux comfort, I didn’t want this.
  • It was heading EOL for updates, and recent updates had really started to slow down it’s aging ARM processor.

Time for something new.

Requirements & Contenders

I wanted the following requirements:

  • Shoestring budget, under $300 preferred
  • Scalable, not locked into a certain number of drive bays
  • Gigabit ethernet
  • USB 3.0 (for fast backups to my backup drives)
  • Preferred: compatibility with open source NAS offerings (OpenMediaVault, FreeNAS, etc.)
  • Low power usage (I don’t have high computing requirements for this system, so it doesn’t need to be driving up my electricity bill to run every month)

Turns out I had pretty slim pickings in this area. I knew pretty early on that I’d be using a Single-board Computer (SBC) style approach, and this narrowed me down to the following contenders:

Rock64

Had USB 3.0, gigabit ethernet, a well supported custom build of OpenMediaVault, and was only $45 CAD! At that price, I could even order a second and instead of running my backups across the USB 3.0 bus from one drive to another, I could backup across gigabit LAN from Primary NAS to Backup NAS (maybe in the future!).

Rock64 Board
The Rock64 Board – same size as a Raspberry Pi, although ever so slightly different layout on the connections

ODROID XU4

Had USB 3.0, had gigabit ethernet, had OpenMediaVault support, had a good community and strong Linux support, but it was more than twice the price of the Rock64 in Canada, and the Rock64 offered me all the same capabilities.

ODROID XU4
The ODROID XU4 board

Helios 4

This board had four native SATA ports and USB 3.0, all at a fairly attractive price. The turn off? It was a Kickstarter project, and even though they’re operating on their own now, it’s still “pre order” only, with no idea when the next batch will arrive. Those who did have them were pretty open with the fact that some kinks are still being ironed out. It looks like the board is being made in partnership with Solidrun, and really has some potential. I’ll be watching this one as a potential upgrade for sure.

Helios4 Board
The still very new, hard to get, Helios4 board

Others

I built at an interesting time – both Pine64 (the makers of Rock64) and ODROID are coming out with really attractive looking boards based on the new RK3399 chipset. The RockPro64 will have USB 3.0 (both Type A and Type C), as well as PCI-E x1 where I could easily add a native SATA card. ODROID is coming out with the N1, which will have 2x native SATAIII headers, and USB 3.0. Both are attractive looking NAS options!

I figure it could take a good 6-12 months until these hit the market and have strong OpenMediaVault support built up, so I went with the Rock64. When these boards come out, I may very easily buy one of them to replace the Rock64 and then the Rock64 can run four drives as my backup NAS so I’m not running my rsync backups over the same USB bus that all drives share.

Building Time

I needed some supplementary parts to complete this build, so here was the total parts list:

  • Rock64 – $46.50 CAD
  • Power Supply – $15.95 CAD
  • 32GB MicroSDXC – $17.98 CAD (you could go smaller than 32gb and do this for about $10)
  • 4x Orico 3569S3 UASP USB 3.0 Drive enclosure – $22.99 CAD x4 (bought one spare for planned drive capacity increase)
  • TOTAL: $172.39 CAD before tax

I already had all my drives, a mix of HGST and Western Digital NAS drives that were coming from the QNAP into the new Orico enclosures, and I already had my backup drives in pre-existing dual-drive USB 3.0 enclosures too. The drives needed a USB 3.0 hub, which I also had laying around, but can be had for $15-20 for a quality one on Amazon.

I decided to grab the latest OMV 4.0 release for the Rock64 from Ayufan’s Github (he’s the go-to guy for building and maintaining the OMV Rock64 builds). At first I wasn’t sure if I wanted his armhf or arm64 build, but the OMV forum recommended armhf for lower memory usage.

OMV Logo

I flashed my SD card, booted the Rock64, and was at a login prompt all in under 10 minutes.

All my primary drives were re-formatted to be EXT4, my backups restored, and it was time to simply customize the NAS as needed. I setup some AFS and SMB shares for my Mac and Windows machines, some NFS shares for my Raspberry Pi and Kodi boxes, and some other misc. setting changes as I felt fit.

Performance

This is the kicker! I was expecting good performance from USB 3.0 given my use cases. I realize all drives are sharing a USB 3.0 bus, but I’m never in a situation where I’m hammering all the drives at once and would saturate that bus heavily anyway. The NAS is simply home storage for all our computers/devices to share, not much more.

After all the recent updates, my old QNAP NAS would average around 17-22MBps transfer speeds. The Rock64 build? I was averaging 60-113MBps depending on the size of files being moved. This was a successful build in my mind! After selling my QNAP NAS, I came out ahead on my expenses for the build.

Stability has been great so far; realizing that I’m running a highly experimental OMV 4.0 build and not the stable OMV 3.0 build. I had one drive that kept disappearing, but that seemed to trace back to a faulty drive enclosure and since I’ve moved it to a new enclosure, it’s remained mounted ever since. I also have some random errors popping up when I try to set a static IP, and I haven’t gotten around those yet. I assume them to likely be due to the “bleeding edge” nature of me running an early alpha/beta OMV build – I just statically assigned the board in my router to overcome that and will keep an eye on future updates before engaging the developers. Any other errors were usually due to me trying to make changes to a drive that was still active (be it under activity, currently mounted, etc. – so human error).

I can’t wait to keep playing this setup, and also seeing what some of the new SBC boards coming to the market hold as future updates could go. The best part of this setup is it’s modular and very low cost – I can easily swap out just the Rock64 board as newer and faster/better SBCs become available and never break the bank (and probably never exceed $100 or so either); not nearly as bad as swapping out a $500-700 purpose built NAS would be!

Questions on this build? Leave them in the comments below and I’ll get back to you!