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