Wednesday, 9 October 2013

Simplifying Gluster Post-Installation

In my last post, I talked about making storage easier and how that can lead to success. This made me take a look at the post install process of gluster. Gluster is a distributed storage solution that has a very simple client-server architecture. It's simple to install, doesn't have any 'kernel' baggage (aka dependencies), so there must also be some simple tools to help with setup once the servers were built.

Hmmm, not quite. Users of gluster are actually faced with two options;
  1. install the oVirt management framework, just to configure gluster
  2. configure gluster by hand with the CLI and parallel ssh

To para-phrase the great Obi-Wan, "these aren't the tools, you're looking for"

So in true open source fashion, I sat down to see if I could write something that could help simplify this initial configuration step. One of the cool things about the gluster project these days is the gluster forge.  This provides a melting pot for all manner of projects relating to open source storage and gluster, so it seemed a natural place for my project to find a home.

These were my goals;
  1. make a 'wizard' to guide the user through the initial configuration steps
  2. design the wizard as a web interface 
  3. make the tool light-weight, with little or, ideally no external dependencies
  4. give it a modern look and feel, exploiting css3 or html5 features where it makes sense
  5. ensure configurations are consistent from the start
I'm not a python developer, or a web developer - but I didn't let that stop me ;o)  I decided on a combination of python and javascript to provide the main logic, with html/css providing the eye-candy, and a dash of bash to provide any lower level OS 'glue'.

The project can be found on the gluster forge here 

The features that have been implemented so far include;
  • detection of glusterd nodes (to use to build the cluster)
  • formation of the cluster
  • distribution of ssh keys from a 'master' node to the other nodes 
  • detect eligible, unused disks on each node
  • user selection of disks to use for gluster 'bricks'
  • format and mount the disks across each node

I've created a screencast on youtube to show the interface being used to create a cluster.

There's still a fair amount to do, but for now it's in a state that others can poke a stick at and see if it helps them.

No comments:

Post a Comment