I recently covered the release of Dropbox Platform, and my thoughts on the impending cloud storage lock in here. I was also fortunate enough to run across what the guys over at NimbusBase are doing over the weekend. They seem to be the answer to the open API for mobile and web applications, providing a cross-cloud storage layer, and providing a GPL reference implementation while they do it. I also penned a few thoughts on their model.
@shatnerandsulu They called it WebDAV. OwnCloud is doing a pretty good job so far, btw. Works on OpenShift!— Gunnar Hellekson (@ghelleks) July 10, 2013
I publicly lamented the Dropbox lock-in scenario on Twitter a few weeks ago, and Gunnar Hellekson clued me into OwnCloud. Dutifully, I read a few articles, and deployed OwnCloud on OpenShift. It worked nicely – inside of a few minutes, I was able to deploy the upstream version of OwnCloud, and set up syncing of my Calendar, auto-upload of pictures from my Android and even had a nice OwnCloud folder on my Mac via their OSX client. I had to admit, this was quick and easy.
So easy in fact, that I began to think about the possibilities of OwnCloud for my customers in the Federal Government. These are some organizations who have very real multi-platform file syncing issues. Imagine, thousands of users, in a geographically dispersed environment, whose business could genuinely benefit from this technology. I immediately began to see that there was potential for combining OwnCloud with Red Hat Storage. POSIX/SMB/NFS, etc interfaces to shared storage as well as multi-platform syncing and access capabilities – almost too good to be true. I’m not the only one – I found a great article over at zdevops, which discusses exactly that.
As it turns out, OwnCloud also offers an Enterprise version. This was of interest. Commercially supported, Open Source software that intends to stay in step with an upstream project.
Lets get nerdy
The whiteboard inside my head starts taking on some shapes and lines, quickly thinking through what a highly available implementation of OwnCloud might look like. In this diagram, I’ve separated the OwnCloud (OC) Apache servers from the Red Hat Storage servers, but there’s no reason you couldn’t have that workload running directly on the Red Hat Storage servers. You’d probably want to put cgroups in place to keep httpd & gluster services playing nicely. A centralized DB server ensures that all of our OwnClouds are kept on the same page, as it were. You’ll want to use sticky sessions with the load balancer as well.
I haven’t yet verified that OwnCloud will work in this configuration, but I don’t see anything keeping it from working. If I do run into a bug, I can always submit it to the OwnCloud developers via github.
On to the bits
After a few clicks and filling out a few forms on their website, I made my way to download.owncloud.com/download/repositories/ Now we’re in business. They had a repo set up for Fedora 19, so I did a quick upgrade of my home workstation to F19, and added the repo to my yum.repos.d I re-wrote the .repo to point to download.owncloud.com and yum installed the latest version of OwnCloud Enterprise.
[isv_ownCloud_ee] name=Enterprise Edition (Fedora_19) type=rpm-md baseurl=http://download.owncloud.com/download/repositories/current/Fedora_19/ gpgcheck=1 gpgkey=http://download.owncloud.com/download/repositories/current/Fedora_19/repodata/repomd.xml.key enabled=1
sudo yum -y install owncloud-enterprise
It was relatively painless – I had to install MariaDB, and follow some simple instructions in their documentation.
I had a filesystem in mind that I wanted to point my data directory to (/data as opposed to /var/www/html/owncloud-enterprise/data) which is somewhere in the realm of 4tb, sufficient for a test environment. I had to set the SELinux context of it to match that of /var/www/html – but that was done with a simple chcon command. It was not immediately apparent, nor was this mentioned in the docs, but I’ll submit an update request for their documentation sooner than later.
sudo chcon --reference /var/www/html/owncloud-enterprise/data /data
Next steps were to point my browser at server/owncloud-enterprise, define a user and set the particulars about /data & my DB. After that I was uploading files. This was great. A nice clean interface, and what’s this? Extensions?
The one I was immediately drawn to was the ability to hook OwnCloud into my other data providers. A meta-data-cloud if you will. I was quickly able to connect OwnCloud to my Dropbox and a variety of other services. This is exactly the sort of functionality that would allow me to leverage existing cloud providers as well as my own storage. Very exciting. OwnCloud also offers virus scanning of uploaded files, on disk encryption and a suite of other tools. 3rd party extensions are available at apps.owncloud.com and there’s a thriving community at work. What a great model.