Làm cách nào để thiết lập HAProxy với failover?


14

Tôi hiểu rằng, để có được chuyển đổi dự phòng trên thiết lập cân bằng tải HAProxy, bạn cần hai máy chạy HAproxy (và định tuyến nó tới một số trường hợp máy chủ web). Nhưng trong trường hợp này, giả sử abcd.com, làm cách nào để phân chia / định tuyến lưu lượng truy cập này thành 2 địa chỉ IP thay vì một địa chỉ? DNS thường phân giải tên miền thành một IP duy nhất. Làm thế nào để chúng tôi làm điều này trong việc sử dụng các công cụ / dịch vụ miễn phí / giá rẻ?


Kiểm tra điều này quá serverfault.com/questions/238605/ từ
mixdev

Câu trả lời:


20

Nếu bạn có quá nhiều tải mà bạn cần tải cân bằng qua hai trường hợp haproxy thì việc cướp vòng DNS không phải là ý tưởng tồi (tôi sẽ ngạc nhiên nếu bạn có tải này). Mặc dù vòng DNS sẽ không cung cấp chuyển đổi dự phòng tốt.

Tại Stack Overflow, chúng tôi sử dụng heartbeatđể cung cấp một IP ảo duy nhất, IP này chỉ hoạt động trên một máy chủ haproxy tại một thời điểm (nếu nó bị hỏng, cái kia sẽ chiếm IP này). Bạn có thể sử dụng nhịp tim để có IP trên mỗi máy và sau đó kết nối vòng tròn DNS giữa hai máy. Nếu một cái bị lỗi, thì cái kia sẽ có cả hai IP đó.

HAProxy đang sử dụng khoảng 1-5% CPU trên máy chủ vật lý của chúng tôi để cân bằng lưu lượng truy cập của chúng tôi Intel(R) Xeon(R) CPU E5504 @ 2.00GHz. Vì vậy, HAProxy thường có thể xử lý rất nhiều lưu lượng một cách dễ dàng.


1
Không. Tôi chắc chắn không có loại lưu lượng truy cập SO. Nó chỉ là một nỗ lực để tránh SPOF.
mixdev

2
@mixdev: Trong trường hợp đó, chỉ cần có DNS trỏ đến IP ảo duy nhất được cung cấp bởi nhịp đập và bạn sẽ ổn. Bạn chỉ cần để haproxy chạy trên cả hai máy. Hãy chắc chắn để kiểm tra dự phòng nhịp tim trước khi đi trực tiếp tất nhiên.
Kyle Brandt

@KyleBrandt: Điều gì xảy ra nếu quá trình haproxy bị chết? Bạn có cấu hình nào cho phép IP ảo được di chuyển dựa trên đó không?
CarpeNoctem

@CarpeNoctem: Hiện tại chúng tôi không có điều đó. Tôi nghĩ rằng cả nhịp tim và giữ lại có thể được thiết lập để xem quá trình là tốt. Nếu bạn đi theo lộ trình này, tôi khuyên bạn nên thiết lập nó để yêu cầu quá trình ngừng hoạt động trong một khoảng thời gian tốt (tức là 1 phút). Bạn có thể không muốn nhịp tim đập vào lỗi cấu hình. HAProxy kiểm tra hầu hết những thứ này với -c, nhưng nó có thể không bắt được những thứ như lỗi cấu hình ràng buộc.
Kyle Brandt

5
Đối với bất cứ ai quan tâm, tại Stack, chúng tôi đã chuyển sang giữ vững hơn một năm trước
Kyle Brandt

24

Như Kyle nói, nhịp tim có thể được sử dụng để làm cho hai máy chủ haproxy hoạt động như một cặp thất bại. Tuy nhiên trong khi nhiều người làm sử dụng nhịp tim cho công việc, keepalived là gợi ý của tác giả haproxy của.

Ông phác thảo các chi tiết trong danh sách gửi thư haproxy: http://www.formilux.org/archives/haproxy/1003/3259.html

Tóm lại nó diễn ra như thế này:

  • nhịp tim là cụm định hướng. Nó đảm bảo chỉ có một máy chủ có quyền truy cập vào tài nguyên (tức là lưu trữ SAN)

  • Keepaliving là định hướng mạng. Nó đảm bảo rằng ít nhất một máy chủ có IP được đề cập.


-1

Bạn có thể tìm thấy những gì bạn đang tìm kiếm ở đây: http://blog.haproxy.com/2014/01/17/emulation-activepassing-application-clustering-with-haproxy/


1
Vui lòng bao gồm đầy đủ nội dung của công thức trong bài viết của bạn. Chúng tôi không chính xác là một dịch vụ liên kết blog.
Thợ săn hươu

1
Ngoài ra, blog thường đi xuống hoặc thay đổi URL và sau đó thông tin bị mất.
Dennis Nolte

Bỏ phiếu vì nó hoàn toàn không liên quan đến câu hỏi.
danieljimenez

@danieljimenez, Tôi nghĩ không hoàn toàn không liên quan, chỉ là một sự hiểu lầm. OP đã yêu cầu Active / Bị động cho chính HAProxy và user3595100 diễn giải câu hỏi là Active / Bị động cho một phụ trợ HAProxy. Tuy nhiên, đăng một liên kết không phải là một câu trả lời chấp nhận được.
duct_tape_coder
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.