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, Bizfly Cloud sẽ chia sẻ thêm về cấu hình IP failover giữa hai server Linux đang chạy.
Tạo kịch bản mạng:
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:
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:
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.
! 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.
! 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.
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.
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.
Bây giờ bạn khởi động Server1 và dừng Server2, IP sẽ được tự động chuyển về Server1.
Xem các file log để đảm bảo dịch vụ vẫn chạy
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 chia sẻ
>> Có thể bạ quan tâ; Hướng dẫn nén và giải nén file bằng bzip2 trên Linux