secluded/content/posts/2020-03-09-creating-an-open...

50 lines
3.6 KiB
Markdown

---
layout: post
title: Creating an open source NAS
subtitle: Why use proprietary when FLOSS do tricc?
description: My process for building an open source NAS with a powerful single board computer and a couple of massive HDDs
tags: sysadmin hosting nas backups
date: 2020-03-09 23:43 -0400
cover: /assets/posts/disk.png
draft: true
---
A few months ago, I decided that I needed a NAS. I didn't want anything proprietary because this was going to store all of my data, my mother's, possibly some friends', as well as backups for *all* of my servers; I needed to know I had full control over every aspect of the system to ensure it was secure. To that end, I decided to build it with an SBC[^1] from [Pine64](https://www.pine64.org).
# Parts
* [ROCKPro64](https://store.pine64.org/?product=rockpro64-4gb-single-board-computer) - $79.99
* [NAS Case](https://store.pine64.org/?product=rockpro64-metal-desktopnas-casing) - $44.99
* [SATA -> PCIe adapter & RAID controller](https://www.amazon.com/N-ORANIE-Controller-HyperDuo-Multiplier-88SE9230/dp/B07KYP5RRL) - $47.99
* [6 TB WD Red Pro](https://www.newegg.com/p/N82E16822234344) - $203.99
* [Heatsink w/ fan](https://store.pine64.org/?product=rockpro64-10mm-low-profile-heatsink-with-fan) - $5.29
* [Fan for the case](https://store.pine64.org/?product=fan-for-rockpro64-metal-desktopnas-casing) - $3.99
* Power supply: [US](https://store.pine64.org/?product=rockpro64-12v-5a-us-power-supply) or [EU](https://store.pine64.org/?product=rockpro64-12v-5a-eu-power-supply) - $12.99
* [16 GB eMMC Module](https://store.pine64.org/?product=16gb-emmc) - $15.95
* Any microSD card
**Total:** $415.18
To reduce the overall cost, you could go with a cheaper HDD; I got this one because I need reliability in the *very* long run but a more inexpensive disk is perfectly suitable. Without accounting for the drive, the NAS is ~$215 and very reasonably priced compared to most other options.
# Assembly
Refer to [Pine64's wiki](https://wiki.pine64.org/index.php/NASCase) on assembling the case. I don't know if it was intentional or what but, for the HDDs, I was only given enough screws for one. For the cover, I still have three empty screw holes. It's not a huge deal but it would have been nice to have enough screws for everything.
# Software
I chose to go with [OpenMediaVault](https://openmediavault.org). However, I didn't use Pine64's image; there were a variety of errors when basic operations were run so I decided to use vanilla [armbian](https://www.armbian.com). Thankfully, they have an image for the [ROCKPro64](https://www.armbian.com/rockpro64/) and it worked flawlessly. The next step was getting OMV set up on it but, like a boss, they provide a script for that 😉
```bash
wget https://raw.githubusercontent.com/OpenMediaVault-Plugin-Developers/installScript/master/install
chmod +x install
sudo ./install
```
Additional setup info can be found in an [armbian guide](https://github.com/OpenMediaVault-Plugin-Developers/docs/blob/master/Adden-A-Installing_OMV5_on_Armbian.pdf) they've created.
# Drivers
This posed a huge problem for me. Neither the "official" ROCKPro64 OMV image nor armbian included the driver for my RAID controller so I had to figure that out.
Huge shoutout to `fromport` in the `#openmediavault` channel on Freenode; they were a *massive* help with getting the driver situation sorted out.
Check out [Secluded.Site](https://secluded.site), my personal webpage; I'll be using it for posts like this in the future and will try to leave this space for official announcements (like when backups have been automated using this very NAS 😉).
[^1]: Single Board Computer