0

TÌM HIỂU VỀ NGINX để HIGH AVAILABILITY (P3)

TÌM HIỂU ĐỂ CẤU HÌNH KEEP-ALIVED VÀ GIAO THỨC VRRP

High availability là gì?

High availability có nghĩa “Độ sẵn sàng cao”. Tức là những máy chủ hoặc thiết bị luôn trong tình trạng sẵn sàng phục vụ, giảm thiểu khả năng gián đoạn của hệ thống. Hoặc có thể hiểu đơn giản High availability là một giải pháp hoặc quy trình hay công nghệ nhằm thực hiện chức năng đảm bảo cho ứng dụng, cơ sở dữ liệu có thể truy cập được 24/7 trong mọi điều kiện.

Để có thể thực hiện được điều này, cơ chế cần tối thiểu 2 máy chủ cùng chạy song song và hoạt động liên tục. Nếu xảy ra tình huống một máy chủ gặp sự cố thì máy còn lại sẽ thay thế nhằm giúp hệ thống vẫn tiếp tục hoạt động bình thường.

I.CẤU HÌNH KEEP-ALIVED.

1.Giới thiệu.

Dịch vụ keepalived sử dụng với mục đích tạo ra virtual ip address (IP VIP) cho hệ thống. Tiến trình keepalived có thể tự động giám sát dịch vụ hoặc hệ thống và có khả năng chịu lỗi cho hệ thống khi dịch vụ hoặc hệ điều hành xảy ra vấn đề. Trong báo cáo này em sẽ sử dụng Keepalived để tăng tính sẵn sàng cho dịch vụ cân bằng tải của Nginx.

** 2.Mô hình **

image.png

3.Cấu hình

Cài đặt Keep-alived trên hai máy 192.168.254.7/8 và enable đồng thời cùng OS.

    yum install keepalived
    
    systemctl enable keepalived  

image.png

Cho phép gán IP ảo lên card mạng. Thêm vào file /etc/sysctl.conf (đây là thuộc phần tunning kernel của OS)

    net.ipv4.ip_nonlocal_bind = 1

Mở kết nối firewalld cho giao thức VRRP cho máy Master(192.168.254.8)

    firewall-cmd --permanent --add-rich-rule 'rule protocol value="vrrp" accept'
    firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface ens160 --destination 192.168.254.8 --protocol vrrp -j ACCEPT
    firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface ens160 --destination 192.168.254.8  --protocol vrrp -j ACCEPT
    firewall-cmd –reload

image.png

Mở kết nối firewalld cho giao thức VRRP cho máy Backup(192.168.254.7)

    firewall-cmd --permanent --add-rich-rule 'rule protocol value="vrrp" accept'
    firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface ens160 --destination 192.168.254.7 --protocol vrrp -j ACCEPT
    firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface ens160 --destination 192.168.254.7  --protocol vrrp -j ACCEPT
    firewall-cmd –reload

image.png

Cấu hình keep alived trên cả 2 máy Master và Backup. Đường dẫn : /etc/keepalive/keepalive.conf

Cấu hình Master trên máy .8 ( lưu ý thông số Priority của master phải cao hơn slave)

image.png

Cấu hình Backup trên máy .7

image.png

Sau khi cấu hình và chạy khởi động Keep alived ở 2 card mạng của 2 máy thì chỉ có mình máy MASTER có thêm địa chỉ V-IP bời vì chỉ khi nào dịch vụ của máy Master là Nginx ko chạy nữa thì Keepalived sẽ check script(Kiểm tra tiến trình của Nginx) và cho máy Backup cầm V-IP đó và thay thế máy Master làm nhiệm vụ.

image.png

image.png

Sau khi cấu hình vào web kiểm tra thử địa chỉ V-IP vừa cấu hình trên máy Master 192.168.254.8 đại diện cho máy này và có thể thực hiện chức năng Load balace trên máy này.

image.png

Cấu hình máy chủ Backup(192.168.254.7) có chức năng tương tự với máy Master và làm Load balance cho 2 máy chạy Http. (Như ở P2)

image.png

Tắt Nginx trên máy Master(192.168.254.8)

    systemctl stop nginx
    systemctl status nginx

image.png

Sau khi tắt Nginx trên Master thì sau 2s keepalive sẽ tự động check Scrip và chuyển trạng thái cho máy Backup làm Master

IP của máy Master sau khi tắt Nginx ( Không còn V-IP)

image.png

IP của máy Backup sau khi tắt Nginx trên Master ( Đã thêm V-IP)

image.png

Kiểm tra trên WEB khi gọi vào V-IP (Nginx ở đây vẫn có chức năng LB nên vẫn đẩy vào 2 server httpd)

image.png

image.png

image.png

**Vậy sau khi tắt Nginx của máy Master thì Keepalived sẽ tự động healthcheck và nhảy qua Backup làm chức năng y hệt như Master. **

II. GIỚI THIỆU VỀ GIAO THỨC VRRP.

Giao thức VRRP (Virtual Router Redundancy Protocol) được sử dụng trong Keepalived để cung cấp một cơ chế dự phòng cho các máy chủ, giúp đảm bảo tính sẵn sàng và tính liên tục của dịch vụ mạng. Khi sử dụng VRRP, các máy chủ trong một nhóm VRRP (thường là một máy chủ chính và một hoặc nhiều máy chủ dự phòng) làm việc cùng nhau để cung cấp một địa chỉ IP ảo duy nhất cho mạng.

Trong Keepalived, giao thức VRRP được triển khai để quản lý các tình huống chuyển đổi giữa các máy chủ chính và dự phòng. Keepalived sử dụng VRRP để xác định máy chủ nào trong nhóm sẽ giữ vai trò chính (master) và máy chủ nào sẽ là dự phòng (backup) dựa trên các yếu tố như độ ưu tiên và trạng thái của máy chủ.

Khi máy chủ chính gặp sự cố, Keepalived sẽ tự động chuyển đổi các dịch vụ sang máy chủ dự phòng một cách tự động, giúp đảm bảo tính sẵn sàng và liên tục của dịch vụ.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí