Hi,
I'm trying out different configurations of GlusterFS. I have 7 nodes
each with two 320 GB disks where 300 GB om each disk is for the
distributed file system.
Each node is called N. Every file system is on the server side mirrored
to the other disk on the next node, wrapped around so that the last node
mirrors its disk to the first. invented. The real config is included in
the end of this mail.
Pseudodefinitions:
fs(1) = a file system on the first disk
fs(2) = a file system on the second disk
n(I, fs(J)) = the fs J on node I
afr(N .. M) = mirror the volumes
stripe(N .. M) = stripe the volumes
Server:
Forw(N) = afr(fs(1), node(N+1, fs(2))
Back(N) = afr(fs(2), node(N-1, fs(1))
Client:
FStr(N .. M) = stripe(n(N, Forw(N)) .. n(N+i, Forw(N+1)) .. n(M, Forw(M)))
BStr(N .. M) = stripe(n(N, Back(N)) .. n(N+i, Back(N+1)) .. n(M, Back(M)))
mount /glusterfs = union(FStr(1 .. 7), BStr(1..7))
The goal was to get good performance but also redundancy. But this setup
will not will it? The stripes will not work when a part of is gone and
the union will not not magically find the other part of a file on the
other stripe? And where to put the union namespace for good performance?
But my major question is this: I tried to stripe a single stripe (not
using union on the client, just striping on the servers which in turn
mirrored) When rsync'ing in data on it on a single server things worked
fine, but when I put some load on it from the other nodes (dd'ing in and
out some large files) the glusterfsd's on the first server died... Do
you want me to check this up more and try to reproduce and narrow down
the problem, or is this kind of setup in general not a good idea?