The open source Openmediavault software is a free, reliable, and safe way to set up Network Attached Storage, NAS.
Open source software is free, reliable, and safe due to everyone looking at the code. Well, the more popular open source projects are safe due to the large number of people working on the projects, developing the code, testing the code, and writing some documentation. Openmediavault is the most popular open NAS software for small to medium systems.
Openmediavault1, OMV, is open source and popular to the point where the product has excellent functionality and is well maintained. Most of the components are popular projects outside of OMV. OMV is based on the Debian distribution of Linux, offering the widest range of packages to add on if something you need is missing.
OMV version 3 was still in the early stage of development when I tested OMV. OMV 3 is now stable and version 4 is in development. Version 4 switches from Debian 8 to Debian 9.2. Debian 8 is called Jessie and 9.2 is called Stretch. Ubuntu 16 and 17 are based on Debian Stretch. You can test Linux packages in the latest Ubuntu before they reach OMV.
I recreated OMV using the Raspbian operating system and named the result Raspbian Media Vault. You should be able to configure Raspbian to perform exactly the same as OMV. Many people want to build a Raspbian based NAS instead of using OMV, especially when they need only a small part of OMV running along side some application that runs only on Raspbian. Recreating all the features of OMV and all the add-on modules for OMV is too difficult.
OpenMediaVault has a download for the Raspberry Pi. I tested beta version 3.0.24 and that version failed. 3.0.24 presented a lot of nice screens and information before failing. I recommend using a spare Raspberry Pi to test the latest stable release of OMV for Raspberry Pi.
Version 3.0.24 created a microSD card with the following configuration. The installation process expands the third partition out to use all the remaining space on the microSD card.
Partition 1 is a 59 MB partition formatted as FAT and named boot.
Partition 2 is a 3.5 GB partition formatted as Ext4 and named omv.
Partition 3 is a 67 MB partition formatted as Ext4 and named Filesystem.
My project was going to use external disks, not the third partition on the microSD card. I did not find good documentation on setting up the type of configuration I wanted with a mix of plugged in but not fixed USB disks. If you are setting up RAID and similar arrangements, life is easier with a larger computer with locked in disks.
There are several overlapping system management projects with the core code written in PHP. I will look at them instead of OMV.
The operating system should be on an SSD for speed and reliability. You can use a USB stick or memory card. You might get three years of reliable use, or only one year, compared to ten years with an SSD. If it is not SSD, look at the configuration options to remove atime and place temporary files in memory.
The data storage can be on any disks. For a RAID array, you want matching drives. Modern magnetic drives last five years. Avoid anything older.
A small low powered mini tower system is fine. You get space for several drives. They are fixed in one case, reducing configuration problems. You can reduce the fans to almost nothing, removing noise on cool days when the fans do not have to work hard.
A raspberry Pi can be the base of a very low power fanless system. Everything is connected by USB. You have to be careful with the configuration to make the configuration survive a cable swap. The disks have to be identified independently of their location in the USB setup.
UUID and label
Disk partitions can be identified by a label or a UUID2, a Universally Unique Identifier. UUIDs are long and meaningless but good when you have hundreds of disks. A label is easier to read and useful for small numbers of disk. The first time I set up a RAID array on a Raspberry Pi, I ran into problems identifying the USB disks after changing a USB hub. Using labels or UUIDs would have prevented the problem.
Practice with labels, UUIDs, and RAID before setting up OMV. Practice on whatever version of Linux you use on your current computer. Add in a bunch of spare disks using any type of connection, SATA or USB. Practice recovering a RAID array by replacing a disk. Recovering a RAID array can be difficult when the initial configuration is anything other than the most simple arrangement.
FreeNAS is the main alternative and based on FreeBSD instead of Debian. The FreeNAS roadmap is littered with jumps from one technology to another. You might have to wait a while until FreeNAS is stable.
Openmediavault is a great idea. You can download it as an operating system or as a package added to your current Linux. Both approaches create problems. Adding in the problems of a Raspberry Pi USB configuration is more work than I want. I will start again when I have more practice using USB disks with UID.
1Openmediavault website: www.openmediavault.org