Câu trả lời:
Tin rằng câu hỏi đã được trả lời rất chính xác bởi Willy Tarreau, tác giả của HAProxy, trong http://www.formilux.org/archives/haproxy/1003/3259.html .
Trích dẫn từ liên kết trên
Heartbeat không phải là công cụ tốt nhất để có được thiết lập haproxy dự phòng, nó được thiết kế để xây dựng các cụm, khác rất nhiều so với việc có hai thiết bị mạng không trạng thái dự phòng. Các công cụ định hướng mạng như keepaliving hoặc ucarp là phù hợp nhất cho nhiệm vụ đó
Sự khác biệt giữa hai gia đình rất đơn giản.
- một sản phẩm hướng cụm như nhịp tim sẽ đảm bảo rằng tài nguyên được chia sẻ sẽ có mặt tại nhiều nhất một nơi. Điều này rất quan trọng đối với các hệ thống tập tin, đĩa được chia sẻ, v.v ... Nó được thiết kế để đưa dịch vụ xuống trên một nút và lên trên một nút khác trong quá trình chuyển đổi. Theo cách đó, tài nguyên được chia sẻ có thể không bao giờ được truy cập đồng thời. Đây là một nhiệm vụ rất khó để thực hiện và nó thực hiện tốt nó.
- một sản phẩm mạng theo định hướng như keepalived sẽ đảm bảo rằng một địa chỉ IP được chia sẻ sẽ có mặt tại ít nhất một nơi. Xin lưu ý rằng tôi không nói về một dịch vụ hoặc tài nguyên nữa, nó chỉ chơi với các địa chỉ IP. Nó sẽ không cố gắng giảm hoặc tăng bất kỳ dịch vụ nào, nó sẽ chỉ xem xét một số tiêu chí nhất định để quyết định nút nào phù hợp nhất để cung cấp dịch vụ. Nhưng dịch vụ phải được lên trên cả hai nút. Như vậy, nó rất phù hợp cho các bộ định tuyến, tường lửa và proxy dự phòng, nhưng hoàn toàn không dành cho mảng đĩa cũng như hệ thống tập tin.
(Vâng tôi biết đó là một câu hỏi cũ, nhưng để tham khảo trong tương lai)
Không có sự khác biệt rõ ràng, nhất quán. Những từ đó đôi khi được sử dụng nhiều hoặc ít thay thế cho nhau.
Có một deamon người dùng phổ biến cho các thiết lập có tính sẵn sàng cao được gọi là Keepaliving và dự án Linux HA đã từng có một deamon có tên Heartbeat, hiện đã đổi thành Pacemaker . (Tôi tin rằng bạn đã không yêu cầu tổng quan hoàn chỉnh về hai hệ thống đó và tất cả những khác biệt là gì, IMHO sẽ lạc đề.)
Trong việc sử dụng hàng ngày các thuật ngữ , tôi muốn nói rằng cách sử dụng phổ biến nhất là:
"Keepalive" đề cập chung hơn đến một hệ thống giúp dịch vụ luôn sẵn sàng.
"Heartbeat" đề cập cụ thể hơn đến một giao thức liên lạc, nơi mà hoặc nhiều thành viên của một thiết lập có tính sẵn sàng cao định kỳ gửi "Có, tôi vẫn còn sống!" tin nhắn. Các đồng nghiệp của họ sau đó hành động nếu họ không thấy thông báo "Có, tôi còn sống" trước một thời gian định sẵn (tức là máy chủ khác đã ngừng hoạt động). Đây là một chút giống như cảm giác cho một xung, do đó tên.