2013-03-29 41 views
4

我有一台服务器,现在我想要复制并实现更高的可用性。如果Zookeeper在我的软件堆栈中是其中的一个元素,那么对它进行集群配置似乎很自然。从单个zookeeper服务器转到集群配置

但是,我在单个服务器上有数据,并且找不到有关转到群集设置的任何指导。我尝试设置两个独立的实例,然后进入集群配置,但只保留了选定主设备上存在的数据。

那么,我怎样才能安全地从单一服务器设置到群集设置而不丢失数据?

回答

2

如果您从1台服务器直接转到3台服务器,则可能会丢失数据,因为这两台新服务器足以形成法定人数,并且选择其中一位作为领导者,忽略旧服务器并丢失所有数据在那台机器上。

如果将群集从1增加到2,则当两台服务器启动时,如果没有涉及旧服务器,则仲裁无法形成,并且数据不会丢失。当集群完成启动时,所有数据都将同步到两台服务器。

然后,您可以将群集从2增加到3,并且如果没有至少1台具有数据库副本的服务器,则法定数量也无法形成,并且当群集完成启动后,再次同步到所有数据三台服务器。