2012-10-23 16 views
21

Từ ZooKeeper FAQ:Zookeeper độ tin cậy - ba so với năm nút

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. 

Với một quần thể 3-server, nếu một máy chủ được đưa ra khỏi vòng quay và một máy chủ có một cúp đột xuất, sau đó vẫn là một trong còn lại máy chủ nên đảm bảo không bị gián đoạn dịch vụ. Vậy tại sao cần 5 máy chủ? Hay nó chỉ là sự gián đoạn dịch vụ đang được xem xét?

Cập nhật:

Nhờ @sbridges để chỉ ra rằng nó đã làm với việc duy trì một đại biểu. Và cách mà ZK xác định số đại biểu là ceil(N/2) trong đó N là số gốc trong bộ quần áo (và không chỉ là tập hợp hiện có).

Bây giờ, một tìm kiếm google cho ZK đại biểu phát hiện này trong cuốn sách HBase chapter on ZK:

Trong Zookeeper, một số chẵn các đồng nghiệp được hỗ trợ, nhưng nó là bình thường không được sử dụng vì một quần thể thậm chí có kích thước đòi hỏi , tương ứng, nhiều hơn đồng nghiệp để tạo thành một nhóm túc số hơn một bộ quần áo có kích thước lẻ yêu cầu. Đối với ví dụ , một bộ quần áo với 4 đồng nghiệp yêu cầu 3 để tạo thành nhóm túc số, trong khi một bộ quần áo với 5 cũng yêu cầu 3 để tạo thành nhóm túc số. Do đó, một bộ quần thể của 5 cho phép 2 đồng nghiệp thất bại và vẫn duy trì số đại biểu, và do đó có nhiều hơn khả năng chịu lỗi so với toàn bộ 4, cho phép chỉ có 1 người ngang hàng.

Và diễn giải này của Wikipedia trong Edward J. Yoon của blog:

Thông thường, đây là một phần lớn của người dân dự kiến ​​sẽ có mặt ở đó, mặc dù nhiều cơ quan có thể có một số đại biểu cần thấp hơn hoặc cao hơn.

+0

Ví dụ về "bảo trì theo kế hoạch" là gì? – user1870400

Trả lời

20

Sở thú yêu cầu bạn có tối đa số máy chủ, nơi số đại biểu là ceil(N/2). Đối với một bộ ba máy chủ, có nghĩa là 2 máy chủ phải được lên bất cứ lúc nào, cho một bộ quần áo 5 máy chủ, 3 máy chủ cần phải được lên bất cứ lúc nào.

+1

Tại sao 4 cụm nút không được khuyến cáo? –

+0

Tôi đồng ý với @Pangea tại đây. Điều này có nghĩa là một cụm nút 5 chỉ có thể hỗ trợ 2 lỗi (thất bại thứ 3 sẽ giảm xuống dưới số đại biểu là 3) và cụm 4 nút cũng có thể hỗ trợ 2 lỗi (thất bại thứ 3 sẽ giảm xuống dưới số đại biểu 2). – Luke

+2

@Pangea, hãy xem http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html ... Miễn là phần lớn bộ quần áo đang hoạt động, dịch vụ sẽ khả dụng. Bởi vì Zookeeper yêu cầu đa số, tốt nhất là sử dụng một số lẻ các máy. ... Cũng lưu ý với số nút đồng đều, bạn cũng có nguy cơ bị phân chia bộ não, giả sử bạn có 8 nút và mạng được chia thành 2 phần với 4 nút ở mỗi bên ... mỗi (4) phía nút sẽ không thể tiếp tục vì chúng không có số đại biểu. – scaph01