Subject: Re: [vserver] cluster file system and vserver
From: Martin Fick <mogulguy@yahoo.com>
Date: Thu, 17 Jul 2008 09:36:46 -0700 (PDT)

--- On Thu, 7/17/08, ADNET Ghislain <gadnet@aqueos.com> wrote:

> > Funny, I found this install very easy, one of the most
> > impressive parts of glusterfs.
> >   
> can you share with us the size of your installation of
> gluster if you use it with vserver ? Are the performance good ?

  I do not run it regularly yet.  But it was easy 
to setup a test configuration which seemed to work 
fine.  Things that I did:  I ran glusterfs server 
on host and mounted in guests.  I ran the server 
also in guests and mounted in other guests and 
host.

  What I would like to do is create a default 
glusterfs server vserver image that can be used 
to startup several vservers and have each one 
"export" a different filesystem.  I would like 
this image to actually point to the same 
filesystem on disk and perhaps have the 
glusterfs configuration for the image reside 
inside the exported filesystem.  This should 
have similar benefits to using hashification
but perhaps even simpler.

Imagine one vserver image say:
/var/lib/vservers/glusterfs.  Then imagine 
various vserver configs for different 
filesystems that need to be exported: foo and 
bar.  So under /etc/vservers I might have 
foo/fstab like this:

/dev/drbd/foo     /export    ext3   .....

and bar/fstab which might look instead like 
this:

/dev/drbd/bar     /export    ext3   .....


These vservers would be symlinked to the main
glsuterfs image like this:

  /var/lib/vservers/foo -> glusterfs
  /var/lib/vservers/bar -> glusterfs

Now, in order for these two vservers to not 
squash each other when running there could be 
a symlink under /var/lib/vservers/glusterfs/var
that points to /export/var.  This would make
/var different for each vserver.  Also now
imagine that the glusterfs image also has a
symlink /etc/glusterfs that points to
/export/glusterfs.  This would abstract out
the glustersfs configuration for each glusterfs
vserver.

Now in order to define a new glusterfs export,
simply setup a simlpe vserver config under /etc,
make a symlink under /var/lib/vservers and 
create a filessytem that will get mounted
in the vserver under /export.  This filesystem
will have at least the following directories:

/export
       /glusterfs  (which becomees /etc/glusterfs)
       /var        (which becomes /var)
       /<toplevel> (which is the toplevel directory
                    to be exported by this vserver
                    using glusterfs)

Now if each of these filesystems resided on a
drbd device, they could be failed over /
load balanced individually using heartbeat
(the /var/lig/vserver/glusterfs directory could
be offline replicated to the other peers). In
order to export a filesystem it is as easy as
making sure the drbd device is primary and
then starting the vserver!

Of course, this is completely imaginary and
theoretical for now, but when I get the time
I will try this out. :)  I figured that 
perhaps my explanation/idea might inspire
someone else to do similarly and report
back on success/failure, or even write a wiki
page about it.


-Martin