Steven Lang <slang@xxxxxxxxxxx> writes:
> However, I was also writing the log file from this across LVS onto
> the GFS filesystem. And it was in this log file that I started to
> see problems. As the file was being written, occasionally a chunk
> of data would be replaced with all zeros. Now my initial thought
> was that it was data going to different GFS hosts, and that one did
> not have the previously written data yet. But AFAIK GFS is pretty
> good about synchronizing data.
I wouldn't be surprised if GFS keeps track of how many clients are
accessing a file, and if there's only one client, it _should_ be safe
for one server to assume that noone else will mess with it. Except
when you introduce LVS... That one client should now be regarded as
two -- but is it?
If my theory is correct, setting up persistence in the load balancer
will fix the problem. But I have _no_ experience with GFS, so take
this with a bucket of salt.
> And in computer terms, 5 seconds is a long time, and that is how
> long the data would need to be out of sync for it to switch to the
> other server for the next write.
Won't the load balancer roughly round-robin each packet to the real
servers? (I don't know what the implications of 5 second UDP timeout
are.)
In conclusion, I'd ask the GFS developers about your setup. They
should know more about the protocol implications of LVS.
Kjetil T.
|