[Gluster-devel] Crawling and indexing hardware
gordan at bobich.net
gordan at bobich.net
Fri May 9 11:45:50 UTC 2008
On Fri, 9 May 2008, Marcus Herou wrote:
> So basically the only case when a server is disconnected is when I take
> it down for maintenance
Or your switch / NIC dies. Or anything else goes wrong that prevents the
servers from staying connected (e.g. a server crash).
> and when it comes up it will self-heal right? And by adding
> a brand new server it will as well be synched I hope.
In theory - yes.
In practice, there are some caveats. There are some nasty race conditions
that make splitbrain even more dangerous than you might expect.
Files are versioned. Deleting and re-creating a file causes the version to
be reset. Some programs delete and re-create a file rather than modifying
it (e.g. vi does). This has a number of dangerous side effects. If your
disconnected server has an old version that was incrementally modified
(e.g. log file being appended to), it's version will be high. If you
delete and recreate the file, or do something that will have the same
effect (e.g. edit with vi), the version on the working servers will be
reset (low number).
When the server that dropped out reconnects, it's version will be higher
than the new (reset) version, and it's old file will clobber the new file.
This is, IMO, a shockingly dangerous "feature". It means that the old file
on the disconnected server can easily supercede the new file on the
working cluster.
Gordan
More information about the Gluster-devel
mailing list