Its impossible to be involved in technology these days without knowing what happened in the US with the PRISM program of illegally aquiring private information of people on an international scale.
As a result, this has somewhat changed the game and has made businesses start to re-evaluate their stance on putting personal and company data online with 3rd party cloud providers. This has resulted in projects like OwnCloud and Pydio to pop up and get quite a lot of backing as it gives you cloud-like functionality that remains 100% within your control.
If you aren’t familiar with OwnCloud or Pydio, they are open source alternatives to 3rd party proprietary solutions like Dropbox and Box.net.
Last week I was sent a link to an article about using OwnCloud as an alternative to the likes of Dropbox and box.net. The article also touched on a very common question I ask in everything I do.
“How do I make this highly scalable?”
You can find the original article here if you would like to have a read though.
You might be wondering why I have a title about Red Hat Storage and all I am talking about so far is OwnCloud. I’ll explain a little as we move on so sit back, fasten your seatbelt and see for yourself how this might benefit you and your organisation.
Red Hat Storage has hit the market and also in a sense changed how people perceive storage. Up until recently, “Enterprise Storage” has always been seen as hugely expensive, complex and in many cased far over the top for many organisations for their use case. With Red Hat Storage, like virtualization, businesses can now take their requirements for growth and transform new or existing x86 based hardware into very scalable products. With Red Hat Storage, this now means for many organisations, they need to ask the question “Do I actually need a storage array for this?”
In this article I will be using OwnCloud and Red Hat Storage Server to demonstrate how to deploy a web application stack that is capable of scaling out to meet growing business requirements. This solution will give us high availability across all aspects of the platform whilst not having to go out and spend big on large scale storage arrays.
Note: This method is not limited to OwnCloud and can be used for any web site or web application you require.
Below you will find a visual representation of what we are about to set up.
This solution includes the below kit list of servers
- 3 x Red Hat Storage Servers with a 100G replicated volume (Gluster)
- 2 x Front end Load Balancers using the Red Hat Load Balancer add-on (LVS)
- 3 x Red Hat Enterprise Linux MariaDB servers using Galera
- 3 x Red Hat Enterprise Linux Apache web servers to host OwnCloud
I will be using the below names and IP addresses for this platform.
Red Hat Storage:
rhs01.example.com = 10.0.2.1 rhs02.example.com = 10.0.2.2 rhs03.example.com = 10.0.2.3
lb01.example.com = 10.0.1.1 lb02.example.com = 10.0.1.2 Virtual IP's = 10.0.1.10,10.0.1.20
MariaDB Galera Cluster:
galera01.example.com = 10.0.1.21 galera02.example.com = 10.0.1.22 galera03.example.com = 10.0.1.23
Apache Web farm:
web01.example.com = (Front end) 10.0.1.11 , (Back end) 10.0.2.11 web02.example.com = (Front end) 10.0.1.12 , (Back end) 10.0.2.12 web03.example.com = (Front end) 10.0.1.13 , (Back end) 10.0.2.13
owncloud.example.com = 10.0.1.10 galera.example.com = 10.0.1.20
All servers should have both forward and reverse lookup records in existing DNS infrastructure.
As this solution is a mix of several technologies, I’ll be addressing them in the below order.
- Replicated storage using Red Hat Storage Server
- Load Balancing with Red Hat Load Balancing Add-On (LVS)
- MariaDB multi-master clustering with Galera
- OwnCloud setup with Apache