Re: automatic membership discovery

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/16/2014 07:34 AM, Patrick Hemmer wrote:
> I'm interested in having corosync automatically accept members into the
> cluster without manual reconfiguration. Meaning that when I bring a new
> node online, I want to configure it for the existing nodes, and those
> nodes will automatically add the new node into their nodelist.
> From a purely technical standpoint, this doesn't seem like it would be
> hard to do. The only 2 things you have to do to add a node are add the
> nodelist.node.X.nodeid and ring0_addr to cmap. When the new node comes
> up, it starts sending out messages to the existing nodes. The ring0_addr
> can be discovered from the source address, and the nodeid is in the message.

It already works if you don't configure the membership list and just
define a common mcast address.

see man votequorum

       Example (no nodelist) of an 8 node cluster (each node has 1 vote):

       Example (with nodelist) of a 3 node cluster (each node has 1 vote):

the expected_votes is automatically increased as new nodes are joining.

Fabio


> 
> Going even further, when using the allow_downscale and last_man_standing
> features, we can automatically remove nodes from the cluster when they
> disappear. With last_man_standing, the quorum expected votes is
> automatically adjusted when a node is lost, so it makes no difference
> whether the node is offline, or removed. Then with the auto-join
> functionality, it'll automatically be added back in when it
> re-establishes communication.
> 
> It might then even be possible to write the cmap data out to a file when
> a node joins or leaves. This way if corosync restarts, and the
> corosync.conf hasn't been updated, the nodelist can be read from this
> save. If the save is out of date, and some nodes are unreachable, they
> would simply be removed, and added when they join.
> This wouldn't even have to be a part of corosync. Could have some
> external utility watch the cmap values, and take care of setting them
> when corosync is launched.
> 
> Ultimately this allows us to have a large scale dynamically sized
> cluster without having to edit the config of every node each time a node
> joins or leaves.
> 
> This really doesn't sound like it would be hard to do. I might even be
> willing to attempt implementing it myself if this sounds like something
> that would be acceptable to merge into the code base.
> Thoughts?
> 
> -Patrick
> 
> 
> _______________________________________________
> discuss mailing list
> discuss@xxxxxxxxxxxx
> http://lists.corosync.org/mailman/listinfo/discuss
> 

_______________________________________________
discuss mailing list
discuss@xxxxxxxxxxxx
http://lists.corosync.org/mailman/listinfo/discuss




[Index of Archives]     [Linux Clusters]     [Corosync Project]     [Linux USB Devel]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Linux Kernel]     [Linux SCSI]     [X.Org]

  Powered by Linux