keepalived主备切换时间研究
1. 概述
本文档主要研究keepalived主备切换过程中耗时的问题。
测试环境Windows10作为宿主机,两台虚拟机为Linux CentOS-7。
VIP | DIP | priority | 主备模式 |
---|---|---|---|
192.168.220.100 | 192.168.220.101 | 100 | MASTER |
192.168.220.100 | 192.168.220.102 | 100 | BACKUP |
2. 环境安装
在宿主机上安装wireshark,安装过程省略。
在两台虚拟机上安装keepalived
setenforce 0 # 临时关闭SELINUX
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config # 永久关闭SELINUX
yum install -y keepalived
master和backup都必须要有健康检查脚本,进程 x 未启动时会自动杀死keepalived进程
echo "
#!/bin/bash
PID=\`ps -ef | grep x | grep -v grep\`
if [[ \$PID = \"\" ]]; then
systemctl stop keepalived.service
fi
exit 0
" > /etc/keepalived/chk_my.sh
chmod 744 /etc/keepalived/chk_my.sh
主机master的 keepalived.conf 采用以下的配置
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id master-server
script_user root #指定运行脚本的用户名和组。默认使用用户的默认组。如未指定,默认为keepalived_script 用户,如无此用户,则使用root
enable_script_security #如过路径为非root可写,不要配置脚本为root用户执行。
}
vrrp_script chk_my_service {
script "/etc/keepalived/chk_my.sh"