Alex seems to have nominated me to explain the rolling restart. This is a manual process whereby you restart each server, one at a time with the new configuration. Changing configuration to add servers to the cluster needs a little bit of thought, but in the absence of server failure during the transition is pretty tame.
There are subtleties possible, but the simplest way to expand from 3 to 5 servers is to simply reconfigure the 3 to consider themselves part of the larger cluster, configure the 2 new servers and then bounce each old server, one at a time and then start the two new servers. On Tue, Jul 5, 2011 at 5:55 PM, Alexander Shraer <[email protected]>wrote: > Hi Paul, > > There's currently no automated way toadd/remove servers. This is ZK-107. > I'm currently implementing this feature, but it will take some time till > its in. In the meanwhile there is a "rolling restart" method people use, > that someone else (Ted?) would explain better than me. The procedure you > describe doesnt work - it doesnt affect the quorums usedinternally by ZK > which are determined when a server first starts and also keep in mind that > servers can reboot and go back to using the old config file when restarted. > > Alex > Sent from mobile > > On Jul 5, 2011, at 8:36 PM, "Paul Rimba" <[email protected]> wrote: > > > Hey there, > > > > is there any way to dynamically add a new server to a running cluster? > > > > i tried searching on google and i found that this issue has not been > fixed.( > > https://issues.apache.org/jira/browse/ZOOKEEPER-762) > > > > > > To my understanding, all the servers in a cluster must have the same > > configuration(zoo.cfg). > > > > If a new server wants to join an already running cluster, how does it get > > the same configuration from the cluster before appending his own > > server.x=host:port:electionport? > > > > and how does every server get the updated configuration? What i did so > far > > is to upload it a znode, say /config/zoo.cfg and when there is a > > change(NodeDatachanged), > > every server gets the updated version (is this the right approach?) > > > > thanks in advance >
