David in the Cloud, part 2
Computer-on-a-board provides a home network solution
Ensuring automated, secure data backup at a low cost
by David Ross
As mentioned in the previous posting, I wanted to take advantage of cloud technology benefits, but was leery of having extremely private information compromised. To get the best of both worlds, I elected to go with an in-home cloud, and I got to play with some pretty slick stuff along the way.
I had an in-home backup server built from a refurbished mini-PC. While smaller than most PCs, it still ran cooling fans on the CPU and power supply. Though small, it was dense and probably near 10 pounds in weight. To backup, I set up rsync processes on the home systems, and it worked quite well. I was miffed at the power I was using for running the system, even when idle, and when I experienced an issue with the box late last year, I shut it down. I started using a local external drive for backups, but that relied on me remembering to back things up.
I am not sure where I first stumbled across the Raspberry Pi. However, I love the goals of the organization, to place an inexpensive computer into schools to teach programming. Along the way, they incorporated some things that make their computer-on-a-board system an excellent hacker/geek gadget. The microcosm around the RPi, as it is known, is amazing. It is an inexpensive ($35) computer that runs Linux and supports 2 USB connections (more with a powered hub). I was doubly pleased when I saw that someone had already taken the ownCloud software and got it working on one. At that time, I knew I had to play with this, and as of last weekend, I have a fully functional cloud server running in my home. In addition to enjoying myself, the process was much simpler than I had anticipated.
I ordered the RPi, and it arrived last Thursday. The manufacturer is having trouble meeting demand, and my first order at one supplier was backordered for 6 weeks. I found another US vendor that had the RPi in stock. I still have another RPi coming, and my youngest son has shown an interest – a double win, in my estimation. I also ordered a case for it, so the exposed card would not have to sit on the shelf or something. I purchased an SD card – the RPi uses them as a hard drive – and an external USB case for my SATA drive salvaged from the now-recycled mini-PC. My total investment in this project was around $73.
I will not go into great detail, as the links above have all the necessary information, but here is a quick summary of what I did.
When the RPi arrived, my son was at the house, so when I got home from the office, it was unboxed and in the case (as I mentioned, he's intrigued). I had already flashed the SD card for use with the newest version of the operating system, a Debian derivative. Borrowing the HDMI cable from the DVD player and an old cell phone charger for power, I connected the RPi to the television, plugged in the power, and waited. LEDs blinked, but there was nothing on the screen. I tried another USB power adapter, with the same results. After about fifteen minutes of tinkering, my son asked to what we were connecting the RPi, and upon checking, learned that I had used the “wrong end” of the cable, plugging the RPi into the DVD player, not the TV. So, after plugging into the TV, we powered up, and I saw standard boot messages scrolling by. That was my first – and largest – hurdle.
When the boot was complete, I did some initial configuration; IP address, memory allocation settings, locale, and so on. Then, I disconnected from the TV and moved it to the shelf where it will live. The remaining changes were made via remote connection over SSH. I connected the external drive, and configured the inittab file to mount it at boot.
From there, I followed the cookbook on the instructables.com link above, and outside of the IP address differences and mount point of the drive, the process was almost identical to the instructions. Finally, I created a user account for myself and for my wife on our ownCloud server. I installed the client on the systems to be backed up at lunch today, and defined what folders needed to be synchronized to my cloud server. Those files are still synchronizing as I write this, but the whole thing was very smooth and simple.
Here are some pictures of the end result.
next? There are a few things I'm considering:
Number three above would provide true data recovery capabilities. Right now, if my wife's laptop dies, we have the files on the cloud server. If my cloud server dies, we have it on the laptop. If the house burns down with both inside, all is lost. So, in one sense, all my data eggs are still in the same basket due to their physical proximity. However, for now, those odds are extremely low and it is a risk I'm willing to take. I'll move on the remote cloud server backup before the year is out, in all likelihood.
Setting up a second server in my home for redundancy
Configuring a VPN connection to allow me to sync up from outside my home
Combining 1 & 2, and setting up my redundant server at a friend or family member's house.
Those are all future projects as time allows. In the meantime, the RossCloud server is providing me with the peace of mind of automated backups coupled with full control over the access into those backup files. The icing on the cake is the interest shown by my youngest son. I'll make a geek of him yet!
David Ross is a senior Technical Enablement Specialist with IBM Corporation in the Tivoli Cloud Enablement group. David specializes in Tivoli Service Automation Manager and IBM SmartCloud Provisioning. He joined IBM in 2000. Follow him on Twitter @TechnoRosss