Bài đăng nổi bật

Redo log, undo log và binary log

Đây là ba loại log mà bạn đã từng nghe khi tiếp cận mysql. Trong các cơ sở dữ liệu quan hệ (RDBMS) khác, cũng sẽ có các thành phần có vai tr...

Hiển thị các bài đăng có nhãn haproxy. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn haproxy. Hiển thị tất cả bài đăng

Thứ Bảy, 27 tháng 2, 2016

Quick setup haproxy and keepalived

Haproxy đóng vai trò như một reverse proxy thực hiện load balancer. Bản thân một haproxy thì không ấn định  high availabilty (HA) cho chính nó. Tính chất HA là ấn định cho cac backend server đằng sau nó. Nếu chỉ có một haproxy thì mô hình sẽ có một SPOF (Single Point Of Failure). Nó down thì cả hệ thống down theo. Để giải quyết, chúng ta  có thể thêm một haproxy để dự phòng (redundancy). Nhưng phương án đó lại phát sinh thêm vấn đề . Khi failover xảy ra client làm sao kết nối đến haproxy dự phòng. Tôi không thể gán cùng một IP lên hai haproxy được. IP conflict sẽ khiến mạng không ổn định. Tôi cũng không thể gán IP khác nhau cho mỗi haproxy được. Khi failover, tôi sẽ phải thông báo cho tất cả client về IP mới. Việc đó thật quá sức. Xem chừng lúc này chúng ta cần đến keepalived. Sử dụng keepalived sẽ cho phép tôi tạo ra một VIP - Virtual IP. Client sẽ kết nối đến haproxy qua VIP này. VIP này sẽ được keepalived luân chuyển sang haproxy dự phòng khi failover. Tất cả đều trong suốt với client. Client không biết được nó đang kết nối đến VIP, nó nghĩ nó đang kết nối trực tiếp đến một single backend thay vì một cluster backend nằm sau VIP. Client sẽ không biết đến real IP của proxy và IP của backend cũng như sự luân chuyển VIP này khi failover.