2012-10-23 6 views
21

Vom ZooKeeper FAQ:ZooKeeper Zuverlässigkeit - drei im Vergleich zu fünf Knoten

Reliability: 

A single ZooKeeper server (standalone) is essentially a coordinator with 
no reliability (a single serving node failure brings down the ZK service). 

A 3 server ensemble (you need to jump to 3 and not 2 because ZK works 
based on simple majority voting) allows for a single server to fail and 
the service will still be available. 

So if you want reliability go with at least 3. We typically recommend 
having 5 servers in "online" production serving environments. This allows 
you to take 1 server out of service (say planned maintenance) and still 
be able to sustain an unexpected outage of one of the remaining servers 
w/o interruption of the service. 

mit einem 3-Server-Ensemble, wenn ein Server aus der Rotation aufgenommen ist, und ein Server hat einen unerwarteten Ausfall, dann gibt es immer noch einen verbleibenden Server, der keine Unterbrechung des Dienstes gewährleisten sollte. Warum dann die Notwendigkeit für 5 Server? Oder ist es mehr als nur Unterbrechung des Dienstes, die in Betracht gezogen wird?

Update:

Dank @sbridges für den Hinweis auf, dass es mit der Aufrechterhaltung der ein Quorum zu tun hat. Und die Art und Weise, wie ZK ein Quorum definiert, ist ceil(N/2), wobei N die ursprüngliche Nummer im Ensemble ist (und nicht nur die aktuell verfügbare Menge).

nun eine Google-Suche nach ZK Quorum findet diese im HBase Buch chapter on ZK:

In ZooKeeper, eine gerade Anzahl von Peers unterstützt wird, aber es ist in der Regel nicht verwendet, da ein gleich großes Ensemble erfordert Proportional, mehr Peers, um ein Quorum zu bilden, als ein Ensemble mit einer ungeraden Größe erfordert. Für Beispiel erfordert ein Ensemble mit 4 Peers 3, um ein Quorum zu bilden, während ein Ensemble mit 5 erfordert auch 3, ein Quorum zu bilden. Ein Ensemble von 5 ermöglicht also 2 Peers zu scheitern und noch Quorum zu halten, und ist daher mehr Fehlertoleranz als das Ensemble von 4, die nur 1 Down Peer erlaubt.

Und diese Umschreibungen von Wikipedia in Edward J. Yoon blog:

Normalerweise ist dies eine Mehrheit der dort erwarteten Menschen sein, obwohl viele Körper ein niedrigeres oder höheres Quorum haben.

+0

Was wäre ein Beispiel für "geplante Wartung"? – user1870400

Antwort

20

Zoowärter erfordert, dass Sie ein Quorum an Servern haben, in denen das Quorum ceil(N/2) ist. Für ein 3-Server-Ensemble, dh 2 Server müssen zu jeder Zeit verfügbar sein, für ein 5-Server-Ensemble müssen 3 Server zu jeder Zeit verfügbar sein.

+1

Warum 4-Knoten-Cluster nicht empfohlen wird? –

+0

Ich stimme hier mit @Pangea überein. Dies würde bedeuten, dass ein 5-Knoten-Cluster nur 2 Fehler unterstützen könnte (ein 3. Fehler würde unter das Quorum von 3 fallen) und ein 4-Knoten-Cluster könnte auch 2 Fehler unterstützen (3. Fehler würde unter das Quorum von 2 fallen). – Luke

+2

@Pangea, siehe http://zookeeper.apache.org/doc/r3.1.2/zookeekeAdmin.html ... Solange ein Großteil des Ensembles aktiv ist, wird der Dienst verfügbar sein. Da Zoowärter eine Mehrheit benötigt, ist es am besten, eine ungerade Anzahl von Computern zu verwenden. .... Beachten Sie auch bei einer geraden Anzahl von Knoten Sie auch das Risiko einer Split-Gehirn, sagen Sie hatten 8 Knoten, und das Netzwerk in 2 Teile mit 4 Knoten auf jeder Seite partitioniert ... jeder (4) die Knotenseite wäre nicht in der Lage fortzufahren, da sie kein Quorum haben. – scaph01

Verwandte Themen