Các lựa chọn thay thế cho Heartbeat, Pacemaker và CoroSync?


26

Có bất kỳ lựa chọn thay thế chính nào cho chuyển đổi dự phòng tự động trên Linux bên cạnh các kết hợp Heartbeat / Pacemaker / CoroSync điển hình không? Cụ thể, tôi đang thiết lập chuyển đổi dự phòng trên các phiên bản EC2, chỉ hỗ trợ unicast - không phát đa hướng hoặc phát sóng. Tôi đặc biệt đang cố gắng xử lý một vài phần mềm mà chúng tôi không có chuyển đổi dự phòng tự động và không hỗ trợ các môi trường đa chủ. Điều này bao gồm các công cụ như HAProxy và Solr.

Tôi có Heartbeat + Pacemaker hoạt động, nhưng tôi không thích thú với nó. Đây là một số vấn đề của tôi:

  • Nhịp tim - Chính nó, giới hạn ở hai nút. Tôi muốn có hơn 3.
  • Máy tạo nhịp tim - Không thể cấu hình tự động. Cụm phải được chạy với một đại biểu và sau đó nó vẫn yêu cầu cấu hình thủ công.
  • CoroSync - Không hỗ trợ unicast.

Máy tạo nhịp hoạt động rất tốt, mặc dù sức mạnh của nó gây khó khăn cho việc thiết lập. Vấn đề thực sự với Pacemaker là không có cách nào dễ dàng để tự động hóa cấu hình. Tôi thực sự muốn khởi chạy một phiên bản EC2, cài đặt Chef / Puppet và khởi chạy toàn bộ cụm mà không cần sự can thiệp của tôi.

Câu trả lời:


17

Tôi thích sử dụng keepaliving cho tính sẵn sàng cao. Tôi thấy việc cài đặt đơn giản hơn (một daemon và config) so với heartbeat và company. Hạn chế duy nhất tôi gặp phải là mặc định không có tùy chọn unicast và chỉ sử dụng VRRP để liên lạc (Tuy nhiên, tác giả của HAProxy đã viết một bản vá unicast để giữ lại)


Unicast là phải, nhưng tôi sẽ xem xét các bản vá.
Organicveggie

4
+1 Tôi đã quen với việc sử dụng nhịp tim trong tất cả các tình huống "chuyển đổi dự phòng", cho đến khi tôi đọc một bài đăng (ở đâu đó) của tác giả của haproxy về lý do tại sao tôi đã làm sai (hoặc ít nhất là không hiệu quả) và nên sử dụng thay thế . Tất cả phụ thuộc vào việc điều quan trọng là thất bại trên một đường dẫn mạng (ví dụ: di chuyển IP sang một máy chủ khác - được bảo tồn) hoặc chỉ cần đảm bảo quyền truy cập duy nhất vào một tài nguyên (ví dụ: kết nối SAN - nhịp tim).
Coops

5
Đây là thư mà @Coops đang đề cập đến, tôi tin rằng formilux.org/archives/haproxy/1003/3259.html
Henrik

4
Kể từ khi phát hành 1.2.8 (2013-08-05) Keepaliving hỗ trợ Unicast ( keepaliving.org/changelog.html ).
Dynom


14

Tôi thực sự đang làm việc trên một cái gì đó rất giống với những gì bạn mô tả (cụm chuyển đổi dự phòng trên EC2) và sau khi dùng thử Heartbeat, đã giải quyết Corosync làm lớp nhắn tin của tôi. Corosync sẽ chạy trên nhiều máy chủ và nó hỗ trợ Unicast (UDPU) kể từ phiên bản 1.3.0 (từ tháng 11 năm 2010). Tôi đã thiết lập và thử nghiệm Corosync trên đám mây EC2 của Amazon (sử dụng Linux AMI của Amazon) và có thể xác nhận nó hoạt động mà không gặp sự cố.

Một tệp udpu mẫu được cài đặt thành / etc / corosync.

Thêm một khối thành viên vào phần giao diện cho mỗi nút và chỉ định vận chuyển là updu. (Tôi đã sử dụng cùng một cổng như nhịp tim trong ví dụ bên dưới, nhưng bạn có thể thay đổi nó theo ý muốn).

ví dụ:

totem {
        version: 2
        secauth: off
        interface {
                member {
                        memberaddr: 10.xxx.xxx.xxx
                }
                member {
                        memberaddr: 10.xxx.xxx.xxx
                }
                ringnumber: 0
                bindnetaddr: 10.xxx.xxx.xxx
                mcastport: 694
        }
        transport: udpu
}

(Heartbeat được cho là hỗ trợ 3+ cụm nút trong phiên bản 1.2.3+, mặc dù vậy, tôi chưa bao giờ thử cá nhân và không biết liệu nó có hoạt động với Unicast không).


Tôi đã thiết lập một cụm gồm 3 máy sử dụng udpu và nó hoạt động tốt. Bạn chỉ cần tiếp tục thêm các khối thành viên cho họ.
devicenull

11

Xin lỗi, nhưng phần về Pacemaker không đúng. Các thử nghiệm hồi quy và phát hành Pacemaker sử dụng rộng rãi tự động hóa.

Để cấu hình mà không có cụm hoạt động, tiền tố tất cả các lệnh có CIB_file=/var/lib/heartbeat/crm/cib.xmlhoặc đặt nó trong môi trường của bạn. Chỉ cần chắc chắn rằng bạn xóa tệp .sig trước khi bắt đầu cụm.

Đối với các cụm không có đại biểu, hầu hết nếu không phải tất cả các công cụ đều hỗ trợ -fhoặc --forcesẽ hướng dẫn cụm chấp nhận thay đổi. Nếu bạn tìm thấy một công cụ không - vui lòng báo lỗi.


Xin lỗi, ý kiến ​​của tôi dựa trên phản hồi tôi nhận được từ danh sách gửi thư của Pacemaker. Tôi sẽ đề nghị bạn một shot.
Organicveggie

3

Trong thế giới nguồn mở, có RedHat Cluster Suite . Đã vài năm kể từ khi tôi triển khai RHCS nên tôi không có nhiều điều liên quan để nói về nó ngày hôm nay.

Về mặt thương mại, có Máy chủ cụm Veritas . Không có kinh nghiệm với nó.

Một công cụ HA mã nguồn mở và đơn giản hơn nhiều là UCARP . UCpeg không cung cấp gần như cùng loại "cơ sở hạ tầng" mà Heartbeat / Pacemaker / CoroSync làm nhưng bạn có thể xây dựng các giải pháp HA xung quanh nó.

Bạn cũng có thể xây dựng cơ sở hạ tầng khả dụng cao với các công nghệ ảo hóa nhưng các giải pháp này có xu hướng tập trung vào tính khả dụng ở cấp độ máy chủ thay vì mức độ sẵn có của ứng dụng.


Cảm ơn. Tôi sẽ xem xét về RHcS, VCS và UCARP. Tôi đã cập nhật câu hỏi của mình để phản ánh thực tế rằng tôi đang sử dụng Amazon EC2, vì vậy tính khả dụng ở cấp độ máy chủ không phải là thứ tôi có nhiều quyền kiểm soát ... do đó tại sao tôi lại xem xét mức độ sẵn có của ứng dụng.
Organicveggie

1

Có Oracle Clusterware cho Oracle Unbreakable Linux, mặc dù tôi chưa sử dụng nó.


1

Nếu bạn đã sử dụng EC2, tại sao không sử dụng Cân bằng tải đàn hồi ? Nó sẽ cho phép bạn đạt được mức độ sẵn sàng của ứng dụng mà không cần phải tự cấu hình chuyển đổi dự phòng.


Có nhiều lý do ELB không phù hợp. Đầu tiên, ELB chỉ hoạt động đối với các yêu cầu đến từ Internet công cộng - không thể sử dụng nó cho các yêu cầu nội bộ, trừ khi bạn định tuyến các yêu cầu của mình đến địa chỉ công cộng của ELB và sau đó thanh toán cho tất cả lưu lượng truy cập. Thứ hai, ELB là một bộ cân bằng rất đơn giản - bạn không thể áp dụng bất kỳ quy tắc hoặc mẫu nào cho cách thức hoạt động và bạn không thể có máy chủ dự phòng. Ví dụ: bạn không muốn hai trường hợp HAProxy riêng biệt chủ động trỏ đến cùng một máy chủ web vì họ sẽ không biết gì về tải thực tế trên máy chủ web đích.
Organicveggie

1

Veritas Cluster rất tuyệt vời (so với Linux-Heartbeat, AIX-hacmp, HP-Serviceguard và Sun cluster), nhưng nó tốn rất nhiều tiền. Lần cuối cùng tôi nhìn vào nó, giá của nó dựa trên lõi của cụm. Nhà cung cấp hiện tại ist Symantec ...



0

opensvc ( https://www.opensvc.com ) hỗ trợ nhiều trình điều khiển nhịp tim:

  • kỳ lân
  • phát đa hướng
  • chia sẻ đĩa
  • Tiếp sức trang web thứ 3

và cũng có mecanism đại biểu trong trường hợp chia não.

Tôi đã quản lý để tự động thiết lập một cụm 4 nút được tạo bởi 2 trường hợp đám mây google + 2 trường hợp amazon với terraform + ansible.

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.