Edge cho Private Cloud phiên bản 4.17.01
Các nhóm ZooKeeper được thiết kế để vẫn hoạt động mà không bị mất dữ liệu, mặc dù bị mất một hoặc nhiều nút ZooKeeper. Bạn có thể sử dụng khả năng phục hồi này một cách hiệu quả để bảo trì các nút ZooKeeper mà không làm gián đoạn hệ thống.
Giới thiệu về ZooKeeper và Edge
Trong Edge, các nút ZooKeeper chứa dữ liệu cấu hình về vị trí và cấu hình của các thành phần Edge khác nhau và thông báo cho các thành phần khác nhau về thay đổi cấu hình. Tất cả xin lỗi Edge được hỗ trợ cho một hệ thống sản xuất chỉ định sử dụng ít nhất 3 ZooKeeper nút.
Sử dụng ZK_HOSTS và Thuộc tính ZK_CLIENT_HOSTS trong Tệp cấu hình Edge để chỉ định các nút ZooKeeper. Ví dụ:
ZK_HOSTS="$IP1 $IP2 $IP3" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
trong đó:
- ZK_HOSTS – Chỉ định
địa chỉ IP của các nút ZooKeeper. Địa chỉ IP phải được liệt kê theo cùng thứ tự trên
tất cả các nút ZooKeeper.
Trong môi trường nhiều Trung tâm dữ liệu, hãy liệt kê tất cả các nút ZooKeeper từ tất cả Trung tâm dữ liệu. - ZK_CLIENT_HOSTS –
Chỉ định địa chỉ IP của các nút ZooKeeper mà chỉ Trung tâm dữ liệu này sử dụng. Các địa chỉ IP phải được liệt kê theo cùng một thứ tự trên tất cả các nút ZooKeeper trong Trung tâm dữ liệu.
Trong một lần cài đặt Trung tâm dữ liệu, đây chính là các nút do ZK_HOSTS chỉ định. Trong môi trường nhiều Trung tâm dữ liệu, tệp cấu hình Edge cho mỗi Trung tâm dữ liệu chỉ nên liệt kê các nút ZooKeeper cho Trung tâm dữ liệu đó
Theo mặc định, tất cả các nút ZooKeeper đều được chỉ định là nút voter. Điều đó có nghĩa là tất cả các nút đều tham gia vào việc bầu trình điều phối ZooKeeper. Bạn có thể thêm đối tượng sửa đổi ":observer" với ZK_HOSTS để cho biết rằng ghi chú là nút trình quan sát chứ không phải trình bỏ phiếu. Một nút quan sát không tham gia vào việc bầu cử người lãnh đạo.
Bạn thường chỉ định đối tượng sửa đổi ":observer" khi tạo nhiều Trung tâm dữ liệu cạnh hoặc khi một Trung tâm dữ liệu có một số lượng lớn nút ZooKeeper. Ví dụ: trong một Cài đặt cạnh 12 máy chủ với hai Trung tâm dữ liệu, ZooKeeper trên nút 9 trong Trung tâm dữ liệu 2 là đối tượng tiếp nhận dữ liệu:
Sau đó, bạn sử dụng các chế độ cài đặt sau trong tệp cấu hình cho Trung tâm dữ liệu 1:
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
Và đối với Trung tâm dữ liệu
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"
Giới thiệu về người lãnh đạo, người theo dõi, cử tri và quan sát viên
Trong quá trình cài đặt ZooKeeper nhiều nút, một trong các nút được chỉ định là nút chính. Tất cả các nút ZooKeeper khác được chỉ định là follower (thực thể theo dõi). Mặc dù các hoạt động đọc có thể diễn ra từ bất kỳ nút ZooKeeper nào, nhưng tất cả các yêu cầu ghi đều được chuyển tiếp đến máy chủ chính. Ví dụ: một Tin nhắn mới Bộ xử lý đã được thêm vào Edge. Thông tin đó được ghi vào máy chủ điều phối ZooKeeper. Tất cả người theo dõi sao chép dữ liệu.
Tại thời điểm cài đặt Edge, bạn chỉ định mỗi nút ZooKeeper làm trình bầu chọn hoặc trình quan sát. Chiến lược phát hành đĩa đơn người lãnh đạo sau đó được tất cả các nút của cử tri ZooKeeper bầu chọn. Một yêu cầu để bầu ra một leader là phải có đủ số nút bỏ phiếu ZooKeeper đang hoạt động. Đáp đại biểu có nghĩa là hơn một nửa trong số tất cả các nút ZooKeeper bỏ phiếu, trên tất cả các Trung tâm dữ liệu, đang hoạt động tốt.
Nếu không có đủ số lượng nút bỏ phiếu, thì không thể bầu ra máy chủ điều phối. Trong trường hợp này, Người quản lý không thể gửi yêu cầu. Điều đó có nghĩa là bạn không thể gửi yêu cầu đến Edge Management Máy chủ, xử lý các yêu cầu API Quản lý hoặc đăng nhập vào giao diện người dùng Edge cho đến khi đại biểu được khôi phục.
Ví dụ: trong một lần cài đặt Trung tâm dữ liệu:
- Bạn đã cài đặt 3 nút ZooKeeper
- Tất cả nút ZooKeeper đều là trình bỏ phiếu
- Số người tham gia tối thiểu là hai nút cử tri đang hoạt động
- Nếu chỉ có một nút bầu thì nhóm ZooKeeper không thể hoạt động
Trong một lượt cài đặt có hai Trung tâm dữ liệu:
- Bạn đã cài đặt 3 nút ZooKeeper cho mỗi Trung tâm dữ liệu, tổng cộng 6 nút
- Trung tâm dữ liệu 1 có 3 nút bầu
- Trung tâm dữ liệu 2 có hai nút bầu và một nút quan sát
- Số người tham gia cần thiết dựa trên 5 trình bầu chọn trên cả hai Trung tâm dữ liệu, do đó là 3 nút trình bầu chọn đang hoạt động
- Nếu chỉ có hai nút bầu cử trở xuống thì nhóm ZooKeeper không thể hoạt động
Thêm nút làm trình bầu hoặc trình quan sát
Theo các yêu cầu về hệ thống, bạn có thể phải thêm các nút ZooKeeper bổ sung vào Edge cài đặt. Tài liệu Thêm nút ZooKeeper mô tả cách thêm các nút ZooKeeper bổ sung vào Edge. Khi thêm các nút ZooKeeper, bạn phải cân nhắc loại nút cần thêm: trình bầu cử hoặc trình quan sát.
Bạn cần đảm bảo có đủ nút cử tri để nếu một hoặc nhiều nút cử tri bị hỏng rằng tổ hợp ZooKeeper vẫn có thể hoạt động, tức là vẫn còn một số nút cử tri sẵn có. Bằng cách thêm các nút cử tri, bạn tăng quy mô của đại biểu và do đó, bạn có thể chấp nhận việc có nhiều nút cử tri ngừng hoạt động.
Tuy nhiên, việc thêm các nút bỏ phiếu khác có thể ảnh hưởng tiêu cực đến hiệu suất ghi vì các thao tác ghi yêu cầu số người đồng ý đủ để chọn máy chủ chính. Thời gian xác định máy chủ chính dựa trên số lượng nút bỏ phiếu. Số lượng này sẽ tăng lên khi bạn thêm nhiều nút bỏ phiếu hơn. Do đó, bạn không nên đặt tất cả các nút làm trình bỏ phiếu.
Thay vì thêm nút cử tri, bạn có thể thêm nút quan sát. Việc thêm nút quan sát sẽ tăng hiệu suất tổng thể của hệ thống mà không làm tăng chi phí bầu chọn người lãnh đạo vì nút quan sát không bỏ phiếu và không ảnh hưởng đến kích thước đại biểu. Do đó, nếu một nút quan sát chuyển sang thì điều đó không ảnh hưởng đến khả năng bầu ra người lãnh đạo của tập thể. Tuy nhiên, việc mất các nút trình quan sát có thể làm giảm hiệu suất đọc của nhóm ZooKeeper vì có ít nút hơn để phục vụ các yêu cầu dữ liệu.
Trong một Trung tâm dữ liệu duy nhất, Apigee khuyến nghị bạn không nên có quá 5 cử tri, bất kể về số lượng nút quan sát. Trong hai Trung tâm dữ liệu, Apigee đề xuất bạn không nên có nhiều hơn 9 trình bình chọn (5 trong một Trung tâm dữ liệu và 4 trong Trung tâm dữ liệu còn lại). Sau đó, bạn có thể thêm nhiều nút trình quan sát theo yêu cầu của hệ thống.
Những điểm cần cân nhắc khi bảo trì
Hoạt động bảo trì ZooKeeper có thể được thực hiện trên một tổ hợp vận hành với đầy đủ chức năng mà không phải ngừng hoạt động nếu được thực hiện trên một nút tại một thời điểm. Bằng cách đảm bảo rằng tại một thời điểm chỉ có một nút ZooKeeper bị lỗi, bạn có thể đảm bảo rằng luôn có đủ số nút bỏ phiếu để bầu ra một nút trưởng.
Bảo trì trong Nhiều trung tâm dữ liệu
Khi làm việc với nhiều Trung tâm dữ liệu, hãy nhớ rằng tập hợp ZooKeeper không để phân biệt giữa các Trung tâm dữ liệu. Các tập hợp ZooKeeper xem tất cả các nút ZooKeeper trên tất cả các Trung tâm dữ liệu dưới dạng một tập hợp.
Vị trí của các nút cử tri trong một Trung tâm dữ liệu nhất định không phải là một yếu tố khi ZooKeeper thực hiện phép tính đại số. Các nút riêng lẻ có thể ngừng hoạt động trên Trung tâm dữ liệu, nhưng miễn là số người đủ điều kiện được duy trì trên toàn bộ nhóm, thì ZooKeeper vẫn hoạt động.
Tác động của việc bảo trì
Vào nhiều thời điểm, bạn sẽ phải gỡ nút ZooKeeper để bảo trì, đồng thời bạn cũng phải bỏ phiếu nút hoặc nút quan sát. Ví dụ: bạn có thể phải nâng cấp phiên bản Edge trên nút, máy lưu trữ ZooKeeper có thể bị lỗi hoặc nút có thể không hoạt động đối với một số chẳng hạn như lỗi mạng.
Nếu nút bị lỗi là nút quan sát, thì bạn có thể thấy hiệu suất của nhóm ZooKeeper giảm nhẹ cho đến khi nút được khôi phục. Nếu nút là nút bỏ phiếu, thì nút đó có thể ảnh hưởng đến khả năng tồn tại của nhóm ZooKeeper do mất một nút tham gia vào quá trình bầu cử máy chủ chính. Bất kể lý do khiến nút bầu cử ngừng hoạt động, điều quan trọng là bạn phải duy trì số lượng nút bầu cử có sẵn.
Quy trình bảo trì
Bạn chỉ nên cân nhắc thực hiện bất kỳ quy trình bảo trì nào sau khi đảm bảo rằng ZooKeeper quần áo vẫn hoạt động bình thường. Điều này giả định rằng các nút quan sát đang hoạt động và có đủ số lượng nút các nút cử tri sẵn có trong thời gian bảo trì để giữ lại đại biểu.
Khi đáp ứng các điều kiện này, một nhóm ZooKeeper có kích thước tuỳ ý có thể chịu đựng việc mất một nút tại bất kỳ thời điểm nào mà không làm mất dữ liệu hoặc ảnh hưởng đáng kể đến hiệu suất. Chiến dịch này nghĩa là bạn có thể thoải mái thực hiện bảo trì trên bất kỳ nút nào trong quần thể miễn là nút đó nằm trên một nút mỗi lần.
Trong quá trình bảo trì, hãy sử dụng quy trình sau để xác định loại Nút ZooKeeper (lãnh đạo, cử tri hoặc quan sát viên):
- Nếu chưa cài đặt trên nút ZooKeeper, hãy cài đặt nc:
> sudo yum install nc - Chạy lệnh nc sau trên nút:
> echo stat | nc localhost 2181
Trong đó 2181 là cổng ZooKeeper. Bạn sẽ thấy kết quả trên biểu mẫu:
Phiên bản Zookeeper: 3.4.5-1392090, xây dựng vào ngày 30/9/2012 17:52 theo giờ GMT
Khách hàng: /a.b.c.d:xxxx[0](queued=0,recved=1,sent=0)
Độ trễ tối thiểu/trung bình/tối đa: 0/0/0
Đã nhận: 1
Đã gửi: 0
Kết nối: 1
Chưa thanh toán: 0
Zxid: 0xc00000044
Chế độ: người theo dõi
Số nút: 653
Trong dòng Mode (Chế độ) của dữ liệu đầu ra tại các nút, bạn sẽ thấy người quan sát, người dẫn đầu hoặc người theo dõi (có nghĩa là người bỏ phiếu không phải là nhà lãnh đạo) tùy thuộc vào cấu hình nút.
Lưu ý: Trong quá trình cài đặt Edge độc lập với một nút ZooKeeper, Mode (Chế độ) được đặt thành standalone (độc lập). - Lặp lại các bước 1 và 2 trên mỗi nút ZooKeeper.
Tóm tắt
Cách tốt nhất để bảo trì một nhóm ZooKeeper là thực hiện từng nút một. Lưu ý:
- Bạn phải duy trì số lượng nút cử tri trong thời gian bảo trì để đảm bảo ZooKeeper bộ quần áo vẫn hoạt động
- Việc gỡ bỏ nút quan sát sẽ không ảnh hưởng đến đại biểu hoặc khả năng bầu người lãnh đạo
- Số người tham gia tối thiểu được tính trên tất cả các nút ZooKeeper trong tất cả các Trung tâm dữ liệu
- Tiếp tục bảo trì cho máy chủ tiếp theo sau khi máy chủ trước đó hoạt động
- Sử dụng lệnh nc để kiểm tra nút ZooKeeper