Thursday, October 23, 2014

Your Own Cloud Server - Owncloud on a Low Power Server

Modern everyday "computing" (referring to computer usage) is done on low power devices, such as smartphones and tablet PCs.
 Many of such devices and their applications (aka apps) depend on the availability of "the cloud".
"The cloud" brings its very own challenges and difficulties. Many cloud service, in particular the gratis ones, claim ownership of the data given to them. In addition to that kind of problem, the space offered by such services is usually rather limited. Of course ... one can get more, when paying some sort of subscription fee. Fair enough...

However, there is an alternative: running your very own cloud service.

Let's take some considerations to design a system for a private cloud service:
  1. low energy consumption
  2. high capacity
  3. availability
  4. data safety
  5. low cost
  6. available clients
With the present technology, I figure one cannot obtain all the wishes with using just a single computer. However, I believe that a simple system can be set up to fulfill all the requirements of the considerations. Actually, I did just that, for my very own personal cloud.

And here is how I did it, and what I used.

The Cloud Server Hardware
For serving the personal cloud, a computer is needed that runs essentially 24/7. The power consumption of which will finally dominate the energy bill for the system. Also, I wanted this particular server to be really silent, since I do not have the space for a dedicated server room.
My decision was to go for an GigaByte BRIX with a Celeron N2807. This device is passively cooled, very cheap and takes 2.5" HDDs. I decided to give the BRIX 4GB of RAM and a 500GB TOSHIBA HDD, making it a very quiet little box with a decent capacity.

The Cloud Server OS & Software
For the OS I decided to go with ubuntu server 14.04.1 LTS. Ubuntu is not my first choice when it comes to operation systems, in particular due to the built-in spyware (e.g. Zeitgeist), however, when it comes to hardware compatibility, ubuntu is the leader of the pack. Using a contemporary device as the BRIX therefore urges for the decision to use ubuntu. Also, I think that stuff like Zeitgeist is not present on the server edition of ubuntu (not sure though). To make life easy, I use webmin on the headless server,
Turning towards the cloud server. I am aware of only one server for which cloud clients exist for essentially every system available: owncloud.
The documentation available for ubuntu server and owncloud is good enough, so that I wont comment any further.

Availability
That's a topic that splits in 2 easily.
  1. the server needs to run 24/7, we already had that topic....
  2. the server needs to be reachable from anywhere
For the second point I would like to point towards dynamic DNS.  Should you have your very own domain, this will of course not affect you. I use a dynDNS called noip, which is for free under certain circumstances.

Data Safety
Now we are touching a topic that is not as easy as it sound. How safe do you want your data to be? How much of your data do you need to be really safe?
Since I can't answer any of questions alike for anyone else but me, I would like to share my very own approach to the problem.
In my home, a file-server backs up all data on a RAIDZ (Zetabyte FS RAID). For the purpose I run a 6 core AMD FX6100 based, 4 x 1TB HDD machine. This particular machine, running FreeNAS, was originally housing my cloud-server. However, AMD processors are known for being somewhat power hungry, hence, this server runs a few hours a week only.
For data safety, I backup of all my computers, including the BRIX, on this file-server. Such backups can be easily configured for the cloud-server, using webmin (NFS is your friend!).

The Costs
Finally, the last topic. The BRIX is the cheapest computer I ever bought... I believe. In average this thing runs on 5 to 8 Watts.

Clients
Owncloud.org offers clients for Windows, OS-X and Linux for free.  Further, paid apps are available to connect Android and IOS devices to owncloud severs. There are some 3rd party Android apps available for free...

Conclusion
Running your own cloud service is an easy thing, which comes essentially for free. Volume is not an issue any longer, add as much space as you need! The BRIX comes with a USB3 port, hence you can plug as much storage as your heart desires into the device...



BIOS photos (BRIX)
on demand, I shot some photos (literally) of the BIOS settings I believe being relevant (no particular order):





I hope, those help...


UPDATE:
Wolfram Webers found that his BRIXs wont boot using ubuntu. However, Wolfram made a successful attempt installing CentOS7. Actually, I might just give that a try too! Thanks Wolfram!


UPDATE:
Wolfram Webers wrote on google+:
It was grub, of course. And here's my solution that works at least for Debian 7.8:

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX="crashkernel=auto vconsole.keymap=de vconsole.font=latarcyrh eb-sun16 rhgb quiet"
GRUB_TERMINAL_OUTPUT="console"
GRUB_DISABLE_SUBMENU=true
GRUB_DISABLE_RECOVERY=true


Again, thank you very Wolfram! I am sure that this help other who wish to build such a little own-cloud server.