Tôi đã keepalived chạy trên 2 (centos7) vms và tôi có thể thấy rằng quá trình chuyển đổi dự phòng đang hoạt động thành công ở dạng đơn giản nhất bằng cách phát hành ping -t 192.168.1.11
và kéo vm1 khỏi mạng, sau đó tôi thường chỉ thấy một trong số các lệnh ping hết thời gian chờ trước khi vm2 nhận nó và bắt đầu phản hồi.
Sau khi chuyển đổi dự phòng thành công, hệ thống sẽ đặt lại sau khi vm1 trực tuyến trở lại và có vẻ như tôi thường không thấy bất kỳ thời gian chờ ping nào, mặc dù tôi cho rằng đó là do tình cờ vì mọi thứ không được đồng bộ hóa...
Vấn đề mà tôi gặp phải là với http trong cùng một thiết lập này. Tôi có một ứng dụng web chạy trên vm1 và vm2 và tôi có thể thấy từng GET khi nó xuất hiện (thông qua ssh trên vm1 hoặc vm2). Tôi cũng đã viết một ứng dụng thử nghiệm trên hộp phát triển của mình để lặp lại http get đơn giản của trang chính (với thời gian chờ 1 giây) trong khi tôi xóa vm1 khỏi mạng và tôi thấy thời gian chuyển đổi dự phòng/đặt lại ở bất kỳ đâu từ <1 giây đến 27 giây.
nhìn vào các tài liệu đây Tôi không thấy bất kỳ thông số nào tôi có thể thay đổi có thể ảnh hưởng đến điều này, nhưng tôi muốn bằng cách nào đó hiểu rõ hơn về lý do tại sao điều này lại thay đổi nhiều như vậy và liệu tôi có thể giảm thời gian chuyển đổi dự phòng hay không. Cũng thế cái này câu trả lời hàng đầu ở đây gợi ý rằng advert_int là quan trọng, nhưng tôi đã đặt nó thành một và tôi vẫn thấy các kết quả đa dạng này...
đây là tệp cấu hình kad của vm1:
global_defs {
gốc script_user
}
vrrp_instance VIP01 {
nhà nước MASTER
giao diện eth0
virtual_router_id 101
ưu tiên 150
quảng cáo_int 1
xác thực {
auth_type VƯỢT QUA
auth_pass [đoạn trích]
}
virtual_ipaddress {
192.168.1.11
}
}
và vm2:
global_defs {
gốc script_user
}
vrrp_instance VIP01 {
trạng thái SAO LƯU
giao diện eth0
virtual_router_id 101
ưu tiên 100
quảng cáo_int 1
xác thực {
auth_type VƯỢT QUA
auth_pass [đoạn trích]
}
virtual_ipaddress {
192.168.1.11
}
}