Agreed that just restarting is probably the easiest way to go. I'm trying to reason how to do this with a rolling restart without any downtime at all, and I'm not 100% sure that is safely possible. Start with A B C up Reconfigure A to be A B D Restart A. Quorum is still satisfied. Take down C. A and B are still up with quorum. At this point you could bring up D. I need one of the better experts on the leader election protocol to answer what happens then. B will not recognize D as a quorum member. If B is leading, D won't get into the quorum. If A is leading, D will get into the quorum (I think). Either way, if you then bring down B, A and D should find each other and be able to form a quorum. Then restart B with A B D and all is well. The outstanding question in my mind is whether it's safe to have D try to join when one of the quorum members knows about it but the other doesn't.
C On Wed, Apr 18, 2012 at 2:04 AM, Michi Mutsuzaki <[email protected]> wrote: > David, does zookeeper need to be up (i.e. no quorum loss) while you > update the server list? If not, it's probably the easiest to shut down > the entire cluster and bring up the new cluster. > > Camille, what's the order of rolling restart that doesn't cause quorum > loss? Would it cause any issues to have inconsistent server list > during this process? > > Thanks! > --Michi > > On Tue, Apr 17, 2012 at 7:50 PM, Camille Fournier <[email protected]> wrote: >> Probably a variant on the rolling restart is the right way to go: >> http://wiki.apache.org/hadoop/ZooKeeper/FAQ#A6 >> >> >> On Tue, Apr 17, 2012 at 2:48 AM, David Song <[email protected]> wrote: >>> hi, >>> I have three zookeeper servers, such as A/B/C online. But now I want to >>> replace box C with a new box named D. What's the best way to update the >>> server group?
