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.

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
[email protected]
http://lists.corosync.org/mailman/listinfo/discuss

Reply via email to