Earlier this year I posted a blog post titled “Looking at alternative Cloud Storage” in which I stated I’d post a series of posts detailing my setup; well 6 months has passed and lots has changed OwnCloud was forked into NextCloud, I’ve also tried many different combinations of hardware and software to finally settle on my current setup, so I thought I’d write a quick update before RL interferes anymore.
Initially I chose Debian Stretch (Testing),
OwnCloud Nextcloud and SnapRAID as my software stack of choice but while this had several advantages, mostly familiarity, there were several “holes” in my plan.
- SnapRAID needed to be run manually in order to keep my data integrity at an optimal level which isn’t ideal when the main priority was to keep my data safe.
- Nextcloud was installed directly within Debian along with Tiny Tiny RSS and DokuWiki and a couple of other webapps I use, which is a pain to maintain.
- Much as I love Debian using a Testing version to get the latest nginx, openssl, etc on a “production” server had caused some breakages which I fixed but was a royal pain.
So I decide to experiment with alternative solutions (UnRAID, BSD, other Linux solutions) before finally settling on Ubuntu 16.04 with a ZFS Pool (3x 2Tb SATA Drives) for storage and LXD for managing the different services on the server (Tiny Tiny RSS, Dokuwiki, Nextcloud, etc). It’s been a while since I tried Ubuntu but I really like the power of LXD/LXC over Docker, as I tend to run entire stacks as opposed to individual applications which Docker seems so much better at, and ZFS is really amazing as a storage filesystem.
I was going to start writing up my experiences but on Friday one of my 2Tb drives died, now being replaced under warranty, and so I’m learning how to replace a drive in a ZFS pool a little sooner than anticipated 🙂 The great thing is that with the 3rd drive removed the pool is still online (DEGRADED Mode) and all my data is safe unless another drive dies! Fortunately this is not the only copy of my data as I create a mirror of the data onto a separate system, part of the 3-2-1 backup strategy I have 🙂
Soon I shall write up all the lessons I’ve learned over the last 6 months and hopefully someone will find it useful.
UPDATE (1st Nov 2016): Toshiba have replaced my P300 2Tb drive with a P300 3Tb drive so I’ve decided to rebuild the ZFS RAIDZ1 zpool using partitions instead of disks so I can use the extra 1Tb of space for logs, temporary files and other scratch data thus saving the wear on the main SSD bootdisk 🙂
I’ve also added an ASMedia ASM1061 SATA Controller to the system specifically for the 3Tb drive.