2013-03-29 42 views
4

我有一臺服務器,現在我想要複製並實現更高的可用性。如果Zookeeper在我的軟件堆棧中是其中的一個元素,那麼對它進行集羣配置似乎很自然。從單個zookeeper服務器轉到集羣配置

但是,我在單個服務器上有數據,並且找不到有關轉到羣集設置的任何指導。我嘗試設置兩個獨立的實例,然後進入集羣配置,但只保留了選定主設備上存在的數據。

那麼,我怎樣才能安全地從單一服務器設置到羣集設置而不丟失數據?

回答

2

如果您從1臺服務器直接轉到3臺服務器,則可能會丟失數據,因爲這兩臺新服務器足以形成法定人數,並且選擇其中一位作爲領導者,忽略舊服務器並丟失所有數據在那臺機器上。

如果將羣集從1增加到2,則當兩臺服務器啓動時,如果沒有涉及舊服務器,則仲裁無法形成,並且數據不會丟失。當集羣完成啓動時,所有數據都將同步到兩臺服務器。

然後,您可以將羣集從2增加到3,並且如果沒有至少1臺具有數據庫副本的服務器,則法定數量也無法形成,並且當羣集完成啓動後,再次同步到所有數據三臺服務器。