Rough Draft config

Rough Draft config

I’m still waiting on my server to finish installing so I made a rough sketch of what my gluster config will look like.  I actually thought I had a spare case and a few other things but I don’t…so my motherboard is sitting on an anti-static pad with the hard drives, power supply and cd-rom all sitting next to it.  The things I do to make something work.

Again this is the rough draft and I will elaborate on it later.

Basically, this run, I am going to have 2 servers, Server 1 and Server 2 with Server 1 acting as my Client as well.  So here is the basic design of the config.

Server 1 glusterfs-server.vol

volume brick1
    type storage/posix
    option directory /mnt/glustera
end-volume

volume brick2
    type storage/posix
    option directory /mnt/glusterb
end-volume

volume ns1
    type storage/posix
    option directory /mnt/ns
end-volume

volume server
    type protocol/server
    option transport-type tcp/server
    subvolumes brick1 brick2 ns1
    option auth.ip.brick1.allow 192.168.2.*
    option auth.ip.brick2.allow 192.168.2.*
    option auth.ip.ns1.allow 192.168.2.*
end-volume

Server 2 glusterfs-server.vol (Essentially the same thing)

volume brick1
type storage/posix
option directory /mnt/glustera
end-volume

volume brick2
type storage/posix
option directory /mnt/glusterb
end-volume

volume ns2
    type storage/posix
    option directory /mnt/ns
end-volume

volume server
type protocol/server
option transport-type tcp/server
subvolumes brick1 brick2 ns2
option auth.ip.brick1.allow 192.168.2.*
option auth.ip.brick2.allow 192.168.2.*
option auth.ip.ns2.allow 192.168.2.*
end-volume

Client glusterfs-client.vol

   volume stripe-1a
     type protocol/client
     option transport-type tcp/client
     option remote-host 192.168.2.115
     option remote-subvolume brick1
   end-volume

   volume stripe-1b
     type protocol/client
     option transport-type tcp/client
     option remote-host 192.168.2.115
     option remote-subvolume brick2
   end-volume

   volume stripe-2a
     type protocol/client
     option transport-type tcp/client
     option remote-host 192.168.2.116
     option remote-subvolume brick1
   end-volume

   volume stripe-2b
     type protocol/client
     option transport-type tcp/client
     option remote-host 192.168.2.116
     option remote-subvolume brick2
   end-volume

   volume client-ns-1
     type protocol/client
     option transport-type tcp/client
     option remote-host 192.168.2.115
     option remote-subvolume ns1
   end-volume

   volume client-ns-2
     type protocol/client
     option transport-type tcp/client
     option remote-host 192.168.2.116
     option remote-subvolume ns2
   end-volume

   volume unifyA
     type cluster/unify
     subvolumes stripe-1a stripe-1b
     option namespace client-ns-1 # should be a node which is not present in 'subvolumes'
     option scheduler rr    # simple round-robin scheduler
   end-volume

   volume unifyB
     type cluster/unify
     subvolumes stripe-2a stripe-2b
     option namespace client-ns-2 # should be a node which is not present in 'subvolumes'
     option scheduler rr    # simple round-robin scheduler
   end-volume

volume afr
   type cluster/afr
   subvolumes unifyA unifyB
end-volume

So once I get this implemented and confirm that it works, I will be creating a complete post with instructions for a start to finish install using Ubuntu on a 2 server 4 hard drive config.  That would be a common startup for most people who had an extra drive or 2 lying around and a couple of old machines…Stay tuned!

About the Author