Hướng dẫn cài đặt Keepalived trên Ubuntu 22.04 LTS tạo High Availability

Bài viết hướng dẫn chi tiết cách cài đặt và cấu hình Keepalived trên Ubuntu 22.04 LTS để thiết lập High Availability (HA) với Virtual IP (VIP), giúp hệ thống hoạt động liên tục.

Hướng dẫn cài đặt Keepalived trên Ubuntu 22.04 LTS tạo High Availability

Trong các hệ thống yêu cầu độ sẵn sàng cao (High Availability - HA), việc đảm bảo dịch vụ luôn hoạt động ngay cả khi một máy chủ gặp sự cố là điều vô cùng quan trọng. Keepalived là một phần mềm cung cấp khả năng HA tuyệt vời cho hệ thống Linux bằng cách sử dụng giao thức VRRP (Virtual Router Redundancy Protocol).

Trong bài viết này, mình sẽ hướng dẫn các bạn cách cài đặt và cấu hình Keepalived trên Ubuntu 22.04 LTS một cách dễ hiểu nhất để tạo ra một địa chỉ IP ảo (Virtual IP - VIP) có khả năng tự động chuyển đổi giữa các máy chủ khi xảy ra sự cố.

1. Keepalived là gì?

Keepalived là một dịch vụ định tuyến (routing) cung cấp tính năng cân bằng tải (load balancing) và độ sẵn sàng cao (high availability). Nó hoạt động dựa trên giao thức VRRP, cho phép nhiều máy chủ vật lý chia sẻ chung một địa chỉ IP ảo (VIP).

  • Máy chủ chính (Master) sẽ giữ VIP và phục vụ người dùng.
  • Khi máy chủ chính gặp sự cố, máy chủ dự phòng (Backup) sẽ ngay lập tức tiếp quản VIP này, đảm bảo dịch vụ không bị gián đoạn.

2. Mô hình triển khai chuẩn bị

Để thực hành bài viết này, chúng ta cần chuẩn bị:

  • Node 1 (Master): IP 192.168.1.101
  • Node 2 (Backup): IP 192.168.1.102
  • Virtual IP (VIP): 192.168.1.100 (Đây là IP dùng chung mà người dùng/ứng dụng sẽ kết nối tới)

Lưu ý: Tất cả các IP này phải nằm cùng một dải mạng (subnet).

3. Các bước cài đặt Keepalived trên Ubuntu 22.04 LTS

Bạn cần thực hiện các bước cài đặt dưới đây trên cả 2 server (Master và Backup).

Bước 3.1: Cập nhật hệ thống

Trước tiên, hãy đảm bảo hệ thống của bạn được cập nhật các gói phần mềm mới nhất:

sudo apt update && sudo apt upgrade -y

Bước 3.2: Cài đặt Keepalived

Cài đặt gói keepalived từ repository mặc định của Ubuntu:

sudo apt install keepalived -y

4. Cấu hình Keepalived

Sau khi cài đặt xong, chúng ta tiến hành cấu hình cho từng server.

4.1 Cấu hình trên Node 1 (Master)

Tạo và chỉnh sửa file cấu hình của Keepalived tại /etc/keepalived/keepalived.conf:

sudo nano /etc/keepalived/keepalived.conf

Thêm nội dung sau vào file:

vrrp_instance VI_1 {
    state MASTER
    interface ens33        # Thay ens33 bằng tên card mạng của bạn (dùng lệnh 'ip a' để xem)
    virtual_router_id 51   # ID định tuyến ảo (Phải giống nhau giữa Master và Backup)
    priority 100           # Độ ưu tiên (Master phải có số này lớn hơn Backup)
    advert_int 1           # Thời gian (giây) giữa các lần gửi gói tin VRRP kiểm tra
    
    authentication {
        auth_type PASS
        auth_pass 123456   # Mật khẩu xác thực (Phải giống nhau giữa Master và Backup)
    }
    
    virtual_ipaddress {
        192.168.1.100      # Địa chỉ Virtual IP (VIP)
    }
}

Lưu lại và thoát khỏi Nano (Ctrl+O, Enter, Ctrl+X).

4.2 Cấu hình trên Node 2 (Backup)

Tương tự, tạo và mở file cấu hình trên Node 2:

sudo nano /etc/keepalived/keepalived.conf

Thêm nội dung cấu hình cho Backup:

vrrp_instance VI_1 {
    state BACKUP           # Trạng thái là BACKUP
    interface ens33        # Tên card mạng của Node 2
    virtual_router_id 51   # Giống với Master
    priority 90            # Nhỏ hơn Master (ví dụ: 90)
    advert_int 1
    
    authentication {
        auth_type PASS
        auth_pass 123456   # Giống với Master
    }
    
    virtual_ipaddress {
        192.168.1.100      # Địa chỉ VIP
    }
}

Lưu file và thoát.

5. Khởi động và kiểm tra dịch vụ Keepalived

Bây giờ, hãy khởi động và thiết lập cho Keepalived tự chạy cùng hệ thống trên cả 2 Node:

sudo systemctl enable keepalived
sudo systemctl start keepalived

Kiểm tra trạng thái của Keepalived xem đã hoạt động (Active/Running) hay chưa:

sudo systemctl status keepalived

6. Kiểm tra tính năng High Availability (Failover)

Để xác minh Keepalived đã hoạt động đúng hay chưa, bạn hãy đứng ở Node Master và gõ lệnh kiểm tra IP:

ip addr show ens33

(Thay ens33 bằng tên card mạng của bạn)

Bạn sẽ thấy Node Master hiện đang giữ thêm một IP là 192.168.1.100 (VIP). Trong khi đó, nếu kiểm tra trên Node Backup, IP này sẽ không xuất hiện.

Tiến hành test Failover:

  1. Hãy thử tắt dịch vụ Keepalived hoặc tắt hẳn máy chủ trên Node Master:
    sudo systemctl stop keepalived
  2. Ngay lập tức, hãy sang Node Backup và chạy lại lệnh kiểm tra IP:
    ip addr show ens33
    Bạn sẽ thấy IP 192.168.1.100 đã tự động “nhảy” sang Node Backup. Dịch vụ của bạn vẫn được duy trì liên tục!
  3. Khi bạn bật lại Keepalived ở Master, VIP sẽ tự động quay trở về Master vì nó có cấu hình priority cao hơn.

7. Tổng kết

Vậy là bạn đã hoàn thành việc cấu hình Keepalived trên Ubuntu 22.04 LTS để thiết lập hệ thống High Availability cơ bản. Thực tế, Keepalived thường được kết hợp với Nginx, HAProxy hoặc các hệ thống Database để đảm bảo load balancer hoặc dịch vụ backend không bao giờ có điểm chết (Single Point of Failure - SPOF).

Chúc các bạn thao tác thành công và áp dụng hiệu quả vào hệ thống máy chủ của mình!

Bình luận

Bài viết liên quan