In this post I will show how to create a Pi powered NAS, or network attached storage, using the free and open source operating system OpenMediaVault (OMV). Why a Raspberry Pi and why OMV? The Raspberry Pi has an extremely small electric footprint, which is crucial for systems that are online 24/7. I chose OMV because it is a Debian based Linux distro that has an easy to use web user interface. If you’ve heard of NAS4Free and/or Freenas, then you can think of OMV as the most recent entrant to the NAS system arena. The only downside to using a Pi powered NAS is that you won’t be able to reliably transcode media since that task calls for a more powerful CPU. Notwithstanding, the Pi NAS should still be able to serve media across your network through the use of protocols like NFS and Samba. On to the required materials and steps.
At the very least, you’ll need:
- Raspberry Pi 2 or Raspberry Pi 3
- MicroSD card and adapter (4 to 32 GB)
- Power adapter
- Ethernet cable or USB Wifi adapter
- Win32 Disk Imager or similar image flashing tool
- Optional: additional storage (external hard drive, internal HDD or SSD w/ SATA to USB adapter)
The steps are extremely simple. Easiest install I’ve encountered in all my projects:
- Download the latest image
- Extract the image from the file, select it with Win32 Disk Imager and flash your SD card
- Insert the SD card, hook up all the components, and then plug in the power adapter. The Pi will automatically boot.
- Enter in the Pi’s local IP address into your browser to access the web user interface. User = admin, password = openmediavault.
If your Pi has connected to your home network before, it may use its old IP address. If you connect a display to your Pi, you can see which IP it is using through the console (same username and password). Or you can check it through your router’s web UI.
Once you’ve loaded the web page and logged in, you’ll be greeted with an appealing dashboard – complete with sharp looking icons and intuitive menus for enabling protocols, setting up users, and configuring privileges. The button used to enable services fills with bright green upon clicking, which is great for the other menus where it can slip your mind to check a box or toggle a button.
There is also a plugins tab that links to a website where the official plugins are hosted. There are a surprising amount of useful plugins that make installing something like a Plex server as simple as clicking a few buttons.
Other cool plugins worth checking out: mumble – host your own mumble server and secure your communications. Forked DAAP – host your music on this iTunes compatible server (also see Shairport). There are also torrent and NZB plugins. Last but definitely not least, an OpenVPN plugin! Connect to your VPN provider’s servers through the robust OpenVPN client software.
The dashboard can also be customized to display useful information about usage and storage.
You can drag the boxes around and resize them, although it was kind of awkward with that whole top right corner going to waste. Functioning properly, I think it would automatically resize and snap the window/dash to fit the shape of the top right corner. You can resize the height of the windows though. This dashboard contains useful information about your system. If you temporarily enabled ssh to do some configuration and forgot to disable it (a security concern, sometimes), it would stand out at you more because of the bright green fill in the enabled column. With the other widgets it makes it easy to keep track of your storage devices, network interfaces, and general CPU/memory usage. This web UI beats NAS4Free’s in my opinion, and probably ties with Freenas.
I did not have a spare hard drive lying around (this surprised me) and so I did not test adding more storage. Most users will want to add at least a 1 TB drive to store bulky media files. This mikronaut article goes fairly in depth and even tests read/write speeds with various hardware and adapters, so I defer to that post. External hard drives with USB adapters should work fine. Using a SSD probably won’t yield any noticeable performance increase, though it will consume less power. One concern I did come across though is that many HDDs require 600 mA to spin up, and the Pi’s USB port will only put out 500 mA, so you might want to look into that before you commit to anything. You may be tempted to just use a 128 GB USB stick for storing files but I would advise against this: flash memory is more volatile and will degrade with constant reads/writes. It also costs more. With the Pi usually costing $35 and a 1 TB hard drive around $50, you can have a home NAS for under $100. That’s a pretty good deal.
While I was aware of openmediavault for some time, I never gave it a try until now. Previously, I just used NAS4Free as a way to store all my data with at least some fault tolerance (software RAID) as well as the capability to stream. However, leaving a computer on 24/7 will add a small amount to your electric bill over the year, so maybe the Pi NAS is better suited for this. However, while the Pi is nice, the little thing does have its limits. With a desktop I can run several things (mumble server, Plex server, pfSense in a jail, whatever) in the background without having to worry about performance. In the case of the Pi, I can’t expect it to transcode video files and support streams that way. The Ethernet port is limited to 100 mb/s. AFAIK, you cannot use ZFS either (although I did see something about hardware RAID). But if all you want to do is load up a drive with your movie/music collection, boot it up and forget about it, the Pi NAS is the perfect choice. Cheers!