I have a server at home to host some services for my closest ones. The server is an Intel NUC which is super awesome in terms of electric consumption, CPU and RAM versus cost. The downside is that it has no hard drive to store the services data. It does have some USB ports to connect external hard drives though. As the data kept growing I started buying bigger drives. While it was affordable I purchased two so as to have one to store the backup of the data. The problem came when it became unaffordable for me. Then I took the good idea to assume that I could only have one drive of 16TB with my data. Obviously the inevitable happened. The hard drive died and those 10TB of data that were not stored in any backup were lost.

Luckily enough, it was not unique data like personal photos. The data could be regenerated by manual processes at the cost of precious time (I'm still suffering this :(). But every cloud has a silver lining, this failure gave me the energy and motivation to improve my home architecture. To prevent this from happening again, the solution needs to be:

  • Robust: If disks die I will have time to replace them before data is lost.
  • Flexible: It needs to expand as the data grows.
  • Not very expensive.
  • Easy to maintain.

There are two types of solutions to store data:

  • On one host: All disks are attached to a server and the storage capacity is shared to other devices by the local network.
  • Distributed: The disks are attached to many servers and they work together to provide the storage through the local network.

A NAS server represents the first solution, while systems like Ceph or GlusterFS over Odroid HC4 fall into the second.

Both are robust and flexible but I'm more inclined towards building a NAS because it can hold the amount of data that I need, it's easier to maintain and the underlying technology has been more battle proven throughout the years.