Mikolaj Golub to.my.trociny at gmail.com
Sat Jul 3 08:21:21 UTC 2010

On Fri, 02 Jul 2010 20:05:37 +0900 hiroshi at soupacific.com wrote:

 h> Thanks !

 >> When ServerB has become master and modified some data, ServerA, before setting
 >> to primary again, should be set to secondary to synchronize all changes and
 >> only after this be switched to primary, otherwise you will have split-brain
 >> and should synchronize full storage recreating provider on secondary.

 h> I understand this idea!  and agree with you this situation.
 h> BUT once we go into split-brain mode, there is no way to solve this
 h> except hastctl create xxxx.

 h> hastctl create xxx initialize hast device and not recommend idea!! I
 h> agree this.

 h> Even split-brain condition, hastctl status returns as BACKUP.

 h> I could not find the way to resolve split-brain by script.

I don't think resolving split-brain by script is a good idea. You can detect
split-brain on primary monitoring provider status and then resolve it
manually. It is much better to have scripts/setup that prevent split-brain
situations than scripts that resolve it :-)

 h> But managing ServerB became MASTER, that time we can change advskew to
 h> prevent booting ServerA keeping as BACKUP.

 h> Of course before booting SerberA, change advskew manually! But this
 h> manner can not solve split-brain.

 h> Is there any idea to solve split-brain condition?

You should have a setup so when the master is rebooted after the reboot it
checks the status of other node and sets its own role accordingly (so there
would not be two masters simultaneously). Software I use in my setup (our home
made application) does this well. sysutils/heartbeat should work fine too. As
for me carp might not do well for this but I am not very experienced with carp
so I can be wrong.

Mikolaj Golub

More information about the freebsd-fs mailing list