Làm thế nào để làm cho cân bằng tải dư thừa?


27

Tôi hiểu rằng mục đích của bộ cân bằng tải là để cân bằng tải giữa các máy chủ của bạn và theo dõi tình trạng sức khỏe, v.v ... Nhưng nếu bản thân bộ cân bằng tải bị lỗi thì sao? Làm thế nào để bạn thiết lập cân bằng tải dư thừa? (cân bằng tải cân bằng?)

Tôi có thể thấy cách kiểm tra sức khỏe DNS có thể hữu ích, nhưng rõ ràng có vấn đề về độ trễ lớn, phải không?

Điều này giả định rằng bạn không sử dụng bất kỳ dịch vụ bên thứ ba nào như AWS ELB hoặc bất cứ điều gì tương tự. Phải làm gì nếu bạn chỉ sử dụng nói Nginx?


Không có "cân bằng tải cân bằng tải" ở trên cùng của kiến ​​trúc của bạn, bạn chỉ cần làm cho LB của mình dự phòng và thiết lập một giải pháp Tính sẵn sàng cao để xử lý các lỗi như hầu hết các kiểu chữ phân cụm.
Xavier Lucas

Câu trả lời:


32

Có một số cách để đạt được HA (tính sẵn sàng cao) của Bộ cân bằng tải - hoặc liên quan đến bất kỳ dịch vụ nào. Giả sử bạn có hai máy, có địa chỉ IP:

  • 192.168.100.101
  • 192.168.100.102

Người dùng kết nối với một IP, vì vậy những gì bạn muốn làm là tách IP khỏi hộp cụ thể - ví dụ: tạo IP ảo. IP đó sẽ là 192.168.100.100.

Bây giờ, bạn có thể chọn dịch vụ HA sẽ xử lý chuyển đổi dự phòng tự động / chuyển đổi dự phòng địa chỉ IP. Một số dịch vụ đơn giản nhất cho unix là (u) cá chép và được giữ lại, một số dịch vụ phức tạp hơn là ví dụ RedHat Cluster Suite hoặc Pacemaker.

Hãy lấy ví dụ làm ví dụ - hai dịch vụ được giữ lại - mỗi dịch vụ chạy trên hộp riêng - và chúng giao tiếp với nhau. Giao tiếp đó thường được gọi là nhịp tim.

|   VIP   |                           |         |
|  Box A  | ------v^-----------v^---- |  Box B  |
|   IP1   |                           |   IP2   |

Nếu một người giữ lại dừng đáp ứng (vì dịch vụ bị ngừng hoạt động vì bất kỳ lý do gì, hoặc hộp bị trả lại hoặc tắt) - được giữ lại trên hộp khác sẽ thấy nhịp tim bị mất và sẽ cho rằng nút khác đã chết và thực hiện các hành động chuyển đổi dự phòng. Hành động đó trong trường hợp của chúng tôi sẽ đưa ra IP nổi.

                                      |   VIP   |
    ------------------ -------------- |  Box B  |
                                      |   IP2   |

Trường hợp xấu nhất có thể xảy ra trong trường hợp này là mất phiên cho khách hàng, nhưng họ sẽ có thể kết nối lại. Nếu bạn muốn tránh điều đó, hai bộ cân bằng tải phải có khả năng đồng bộ dữ liệu phiên giữa chúng và nếu chúng có thể làm điều đó, người dùng sẽ không nhận thấy bất cứ điều gì ngoại trừ có thể bị chậm trễ.

Một cạm bẫy khác của thiết lập này là chia não - khi cả hai hộp đều trực tuyến nhưng liên kết bị cắt đứt và cả hai hộp đều hiển thị cùng một IP. Điều này thường được giải quyết thông qua một số loại cơ chế đấu kiếm (đặt trước SCSI, khởi động lại IPMI, cắt điện PDU thông minh, ...) hoặc số nút lẻ yêu cầu phần lớn các thành viên cụm còn sống để bắt đầu dịch vụ.

|   VIP   |                           |   VIP   |
|  Box A  |                           |  Box B  |
|   IP1   |                           |   IP2   |

Phần mềm quản lý cụm phức tạp hơn (như Pacemaker) có thể di chuyển toàn bộ dịch vụ (ví dụ: dừng nó trên một nút và khởi động nó trên một nút khác) - và đây là cách HA cho các dịch vụ như cơ sở dữ liệu có thể đạt được.

Một cách khác có thể - nếu bạn đang điều khiển các bộ định tuyến gần bộ cân bằng tải của mình, là sử dụng ECMP. Cách tiếp cận này cũng cho phép bạn cân bằng tải theo chiều ngang. Điều này hoạt động bởi mỗi trong hai hộp của bạn nói chuyện BGP với (các) bộ định tuyến của bạn. Mỗi hộp phải quảng cáo IP ảo (192.168.100.100) và bộ định tuyến sẽ tải lưu lượng cân bằng thông qua ECMP. Nếu một máy bị chết, nó sẽ ngừng quảng cáo VIP, điều này sẽ lần lượt ngăn các bộ định tuyến gửi lưu lượng đến nó. Điều duy nhất bạn phải quan tâm trong thiết lập này là dừng quảng cáo IP nếu chính bộ cân bằng tải bị chết.


3

Sử dụng Nginx làm bộ cân bằng tải của bạn sẽ cho phép bạn theo dõi chuyển hướng chi tiết trong bài đăng này bằng cách thay đổi cấu hình của bạn để phát hiện thời gian chờ không có phản hồi:

nginx tự động cân bằng tải dự phòng

Về lý thuyết, nếu bạn có môi trường HA, nhiều bộ cân bằng tải sẽ được cho phép duy trì dịch vụ nếu không thành công.

Hi vọng điêu nay co ich.


2

Bộ cân bằng tải phần cứng đã hỗ trợ các thiết lập "chủ động / thụ động" hoặc "hoạt động / hoạt động" trong nhiều năm, trong cả hai trường hợp, chúng được thiết lập song song từ phối cảnh lớp 1/2 ... chủ động / thụ động sử dụng các cơ chế giám sát / giữ nguyên như mô tả , hoạt động / hoạt động có thể được thực hiện theo nhiều cách. Để xuất hiện dưới dạng một IP duy nhất ở frontend, hai hoặc nhiều bộ cân bằng có thể, miễn là tất cả chúng / cả hai trên mạng, hãy làm những việc như:

  • Chọn lọc trả lời các yêu cầu ARP cho IP được chia sẻ dựa trên địa chỉ MAC hoặc IP nguồn khi các máy khách ở trên cùng một mạng
  • thương lượng giữa những người xử lý lưu lượng của một kết nối TCP mới nhất định
  • hãy để lưu lượng truy cập lớp trùng lặp hoặc sai sót xảy ra một cách bất cẩn và dựa vào ngăn xếp TCP của máy khách / bộ định tuyến để sắp xếp nó

Và sau đó thay đổi chế độ của họ thành chấp nhận tất cả hoặc nhiều lưu lượng hơn khi liên lạc với / thiết bị đối tác bị mất.

ở phía phụ trợ:

  • mỗi bộ cân bằng có thể, trong hoạt động bình thường, chỉ sử dụng một nhóm máy chủ ứng dụng nhất định
  • hoặc, các yêu cầu trùng lặp có thể đơn giản được tạo ở đây ...
  • hoặc, đàm phán giữa các cân bằng có thể được thực hiện
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.