Trang chủ Thủ thuật

Cách thiết lập IP Failover với KeepAlived trên Ubuntu & Debian

Keepalived được sử dụng để chuyển đổi IP giữa hai máy chủ. Công cụ này cũng được xây dựng cho cân bằng tải và hỗ trợ HA cho các cơ sở hạ tầng trên Linux. Keepalived hoạt động trên VRRP (Virtual Router Redundancy Protocol). Trong hướng dẫn sau, chúng ta sẽ cấu hình IP failover giữa hai server Linux đang chạy.

Tạo kịch bản mạng:

1. Server1: 192.168.10.111 (eth0)


2. Server2: 192.168.10.112 (eth0)


3. Virtual IP: 192.168.10.121

Tiếp theo chúng ta sẽ cấu hình IP failover giữa các máy chủ Server1 và Server2.

Bước 1 - Cài đặt các gói theo yêu cầu (thực hiện ở cả 2 server)

Trước hết, Sử dụng lệnh sau để cài đặt các gói theo yêu cầu và cấu hình Keepaliving trên server:

$ sudo apt-get install linux-headers-$(uname -r)

Bước 2 - Cài đặt Keepalived (thực hiện ở cả 2 server)

Các gói Keepalived mặc định có sẵn trong kho apt. Vì vậy, bạn chỉ cần sử dụng một lệnh để cài đặt nó trên cả hai server:

$ sudo apt-get install keepalived

Bước 3 - Thiết lập Keepalived trên Server1.

Bây giờ bạn cần tạo hoặc chỉnh sửa tệp /etc/keepalived//keepalived/.conf trên Server1 và thêm các cài đặt phía dưới. Cập nhật tất cả các giá trị được tô màu tuỳ theo cấu hình mạng và hệ thống của bạn.

$ vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

notification_email {

sysadmin@mydomain.com

support@mydomain.com

}

notification_email_from Server1@mydomain.com

smtp_server localhost

smtp_connect_timeout 30

}

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 101

priority 101

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.10.121

}

}

Bước 4 - Thiết lập KeepAlived  trên Server2.

Bạn cũng cần tạo hoặc chỉnh sửa tệp cấu hình Keepalived: /etc/keepalivied/keepalived.conf trên Server2 và thêm vào cấu hình phần sau. Trong khi thực hiện các thay đổi cấu hình Server2, hãy đảm bảo các giá trị ưu tiên được đặt thấp hơn Server1. Ví dụ cấu hình bên dưới đang hiển thị giá trị ưu tiên là 100 so với Server1 là 101.

$ vim /etc/keepalived/keepalived.conf


! Configuration File for keepalived

global_defs {

notification_email {

sysadmin@mydomain.com

support@mydomain.com

}

notification_email_from Server2@mydomain.com

smtp_server localhost

smtp_connect_timeout 30

}

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 101

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.10.121

}

}

    Giá trị ưu tiên sẽ cao hơn trên master server, không quan trọng bạn sử dụng trạng thái gì. Nếu trạng thái của bạn là MASTER nhưng mức độ ưu tiên của bạn thấp hơn server BACKUP, bạn sẽ mất trạng thái MASTER.

    Virtual_router_id phải giống nhau trên cả máy chủ Server1 và Server2.

    Theo mặc định, vrrp_instance hỗ trợ tối đa 20 virtual_ipaddress. Để thêm nhiều địa chỉ, bạn cần thêm nhiều vrrp_instance


Bước 5 – Khởi động dịch vụ KeepAlived (thực hiện ở cả 2 server)

Khởi động KeepAlived bằng lệnh sau, lệnh cũng và cũng có thể sử dụng để cấu hình tự động chạy khi khởi động hệ thống.

$ sudo service keepalived start

Bước 6 - Kiểm tra IP ảo

Theo mặc định, IP ảo sẽ được gán cho master server. Trong trường hợp master bị ngắt, IP ảo sẽ được tự động gán sang backup server. Sử dụng lệnh sau để hiển thị IP ảo.

$ ip addr show eth0

Output mẫu có dạng như sau:

2: eth0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000

link/ether 08:00:27:b9:b0:de brd ff:ff:ff:ff:ff:ff

inet 192.168.10.111/24 brd 192.168.1.255 scope global eth0

valid_lft forever preferred_lft forever

inet 192.168.10.121/32 scope global eth0

valid_lft forever preferred_lft forever

inet6 fe80::11ab:eb3b:dbce:a119/64 scope link

valid_lft forever preferred_lft forever

Bước 7 - Kiểm tra lại thiết lập IP Failover

Tắt master server (Server1) và kiểm tra xem liệu IP có được gán tự động cho backup server (Server2) không.

$ ip addr show eth0

Bây giờ bạn khởi động Server1 và dừng Server2, IP sẽ được tự động chuyển về Server1.

$ ip addr show eth0

Xem các file log để đảm bảo dịch vụ vẫn chạy

$ tailf /var/log/syslog

Output mẫu có dạng như sau:

Feb 7 17:24:51 vccloud Keepalived_healthcheckers[23177]: Registering Kernel netlink reflector

Feb 7 17:24:51 vccloud Keepalived_healthcheckers[23177]: Registering Kernel netlink command channel

Feb 7 17:24:51 vccloud Keepalived_healthcheckers[23177]: Opening file '/etc/keepalived/keepalived.conf'.

Feb 7 17:24:51 vccloud Keepalived_healthcheckers[23177]: Configuration is using : 11104 Bytes

Feb 7 17:24:51 vccloud Keepalived_healthcheckers[23177]: Using LinkWatch kernel netlink reflector...

Feb 7 17:24:52 vccloud Keepalived_vrrp[23178]: VRRP_Instance(VI_1) Transition to MASTER STATE

Feb 7 17:24:53 vccloud Keepalived_vrrp[23178]: VRRP_Instance(VI_1) Entering MASTER STATE

Feb 7 17:24:53 vccloud avahi-daemon[562]: Registering new address record for 192.168.10.121 on eth0.IPv4

Theo BizFly Cloud tổng hợp 

>> Có thể bạ quan tâ; Hướng dẫn nén và giải nén file bằng bzip2 trên Linux

Kể từ ngày 05/11/2018, VCCloud chính thức đổi tên thành BizFly Cloud - là nhà cung cấp các dịch vụ đám mây hàng đầu tại Việt Nam hiện nay với các dịch vụ nổi bật như: BizFly Cloud Server, BizFly CDN, BizFly Load Balancer, BizFly Pre-built Application, BizFly Business Mail, BizFly Simple Storage. Hãy tăng tốc thích nghi cho doanh nghiệp cùng các giải pháp công nghệ của BizFly Cloud tại đây.