主机环境:主机A和主机B使用的是CentOS7.2的系统:
主机A IP地址为:192.168.1.103
主机B IP地址为:192.168.1.106
向外界提供的服务的地址为:192.168.1.100
配置过程:
(1)基础配置过程:
a.在主机B上同步主机A的时间:
vim /etc/chrony.conf
注释掉以server开头的行,添加下面的行;
server 192.168.1.103 iburst
systemctl restart chronyd.service
chronyc sources
b.关闭主机A和主机B的防火墙和SELinux
iptables -F
setenforce 0
c.各节点之间的root用户可以基于密钥认证的ssh服务完成互相通信(非必须)
主机A:ssh-keygen -t rsa -P ''
主机B:ssh-copy-id -i .ssh/id_rsa.pub root@192.168.1.106
用主机A测试连接主机B:ssh 'root@192.168.1.106'
(2)主机A配置为主主机:
yum -y install keepalived
mv /etc/keepalived/keepalived.conf{,.bak}
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost :设置主机的email的收件人为root,真实生产中用的是公司的管理员的邮箱账号;
}
notification_email_from keepalived@localhost:设置报警服务的发件人为keepalived;
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id node1
vrrp_mcast_group4 224.0.100.19
}
vrrp_instance VI_1 {
state MASTER :设置主机A模式为MASTER
interface eno16777736
virtual_router_id 14 :给出一个指定的ID,应该和周围所有的人的不一样
priority 100:设置主机的优先级为100
advert_int 1
authentication {
auth_type PASS :设置认证机制为PASS
auth_pass 571f97b2 :设置密钥,应该是一串随机的密码
}
virtual_ipaddress {
192.168.1.100/24 dev eno16777736
} 网络响应的IP为192.168.1.100/24
}
systemctl start keepalived.service
(3)主机B配置为备用主机:(可以直接远程复制主机A的配置文件,修改即可)
yum -y install keepalived
mv /etc/keepalived/keepalived.conf{,.bak}
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id node1
vrrp_mcast_group4 224.0.100.19
}
vrrp_instance VI_1 {
state BACKUP :设置主机B模式为BACKUP,备用主机
interface eno16777736
virtual_router_id 14 :给出一个指定的ID,应该和周围所有的人的不一样,但应该和MASTER主机的相同;
priority 98 :设置主机B的优先级应该小于主机A的优先级,以98为例;
advert_int 1
authentication {
auth_type PASS :设置认证机制为PASS
auth_pass 571f97b2 :设置密钥,应该是一串随机的密码,应该和MASTER主机的PASS相同
}
virtual_ipaddress {
192.168.1.100/24 dev eno16777736
} 网络响应的IP为192.168.1.100/24
}
systemctl start keepalived.service
测试过程:
(1)同时启用主机A和主机B,然后观察日志的输出:
systemctl start keepalived.service
主机A的日志:(主机A已经监听在192.168.1.100)
主机B的日志:(主机B由于是备用主机,所以显示BACKUP模式)
(2)将主机A的keepalived的服务down掉,然后观察主机A和主机B的日志信息
在主机A上面执行的命令:systemctl stop keepalived.service
主机A的日志信息:(发现主机A已经将192.168.1.100 IP地址已经移除)
主机B的日志信息:(主机B发现主机A已经down掉,自己接手192.168.1.100 IP地址)
(3)将主机A的keepalived服务启动起来,观察日志的输出:
主机A执行的操作:systemctl start keepalived.service
主机A的日志信息:(由于主机A的优先级比主机B的优先级高,所以主机A应该取回192.168.1.100的IP)
主机B的日志信息:(主机B发现比自己级别高的主机A已经运行,所以将自己的IP交出,自己回到BACKUP模式)
(4)扩展,要是主机A和主机B的优先级同样高,在主机Adown掉,主机B接手IP,之后,启动主机A的keepalived的服务,主机B还会将自己的IP交出,将自己的恢复成BACKUP模式么?
实验步骤:
修改主机B的/etc/keepalved/keepalived.conf配置文件中的:priority的值修改为100
实验的现象:
a.将主机Adown掉之后的两台主机的日志:
主机A的日志信息:
主机B的日志信息:
b.将down掉的主机A重新启动服务,观察现象:
主机A的日志信息:
主机B的日志信息:
结果总结:虽然将主机A和主机B的优先级调到同样高的级别,但是主机A因为是MASTER身份,所以还是在重新启动的时候,请求主机B交出自己的IP,让主机B恢复为BACKUP的模式;即使在同样的级别下,MASTER的主机就是比BACKUP的主机的响应程度高。
原创文章,作者:sjsir,如若转载,请注明出处:http://www.178linux.com/56639