1) Keepalived 双主配置环境
主要目的是让两台机器互为主从概念,即在keepalived.conf文件中交叉配置实现互为主从功能。
与上一篇配置环境描述一样,只是在135与136机器上的Keepalived配置文件中配置两个VIP内容,让他们两个Keepalived都有一个MASTER与BACKUP节点,只是两台机器交叉配置, 最终通过DNS的IP指向(A记录) 指向两个VIP地址,实现双主Keepalived功能。
135与136的机器上安装了Nginx与Keepalived
137与138的机器上安装了JDK1.8与Tomcat环境
2) 在Master1与Master2机器上的 /etc/keepalived/keepalived.conf 文件交叉修改
2.1) Master1 机器文件配置内容
注意查看 "【】"中的注解说明。
#全局定义块
global_defs {
# 邮件通知配置
notification_email {
1349594420@qq.com
}
notification_email_from 1349594420@qq.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL ## 标识本节点的字条串,通常为hostname
}
vrrp_script chk_nginx {
script "/data/sh/check_nginx.sh" ## 检查Nginx是否存活的一个角本
interval 2 ## 重试两次
weight 2 ## 权重
}
#VIP 1
vrrp_instance VI_1 {
state MASTER ## 【改成MASTER】状态,表示开机启动的状态
interface eth0 ## 网卡(注意, 去CentOS系统中看一下网卡名称是多少, CentOS安装默认叫Auto eth1, 用#ip addr list命令查看一下)
lvs_sync_daemon_interface eth0 ## 互联通讯的网卡
virtual_router_id 151 ## 路由ID, 局域网内的路由ID,必须唯一性
priority 100 ## 优先级(Master1机器如设置为100, Master2机器得设置为90)
advert_int 5
nopreempt ## 不抢占
authentication { ## 认证
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.73.100 ## 前调用户访问就是这个IP (在Master1与Master2两台电脑的eth0网卡上虚拟一个IP地址)
}
track_script {
chk_nginx
}
}
#VIP 2 【追加此VIP2】
vrrp_instance VI_2 {
state BACKUP ## 状态,表示开机启动的状态
interface eth0 ## 网卡(注意, 去CentOS系统中看一下网卡名称是多少, CentOS安装默认叫Auto eth1, 用#ip addr list命令查看一下)
lvs_sync_daemon_interface eth0 ## 互联通讯的网卡
virtual_router_id 152 ## 【路由必须与MASTER不一样】路由ID, 局域网内的路由ID,必须唯一性
priority 90 ## 【优先级必须比MASTER要小】优先级(Master1机器如设置为100, Master2机器得设置为90)
advert_int 5
nopreempt ## 不抢占
authentication { ## 认证
auth_type PASS
auth_pass 2222 ## 【密码必须与MASTER不一样】
}
virtual_ipaddress {
192.168.73.110 ## 【第二个虚拟IP】前调用户访问就是这个IP (在Master1与Master2两台电脑的eth0网卡上虚拟一个IP地址)
}
track_script {
chk_nginx ## 【chk_nginx不用改】
}
}
2.2) Master2 机器文件配置内容
注意,Master2的机器与Master1的机器 keepalived文件区别,只在于VIP1与VIP2的state与priority的两个属性交叉对换一下即可,其它属性都不需要去调整。
#scp /etc/keepalived/keepalived.conf root@192.168.73.136:/etc/keepalived
#全局定义块
global_defs {
# 邮件通知配置
notification_email {
1349594420@qq.com
}
notification_email_from 1349594420@qq.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL ## 标识本节点的字条串,通常为hostname
}
vrrp_script chk_nginx {
script "/data/sh/check_nginx.sh" ## 检查Nginx是否存活的一个角本
interval 2 ## 重试两次
weight 2 ## 权重
}
#VIP 1
vrrp_instance VI_1 {
state BACKUP ## 【与VIP2节点对调】状态,表示开机启动的状态
interface eth0 ## 网卡(注意, 去CentOS系统中看一下网卡名称是多少, CentOS安装默认叫Auto eth1, 用#ip addr list命令查看一下)
lvs_sync_daemon_interface eth0 ## 互联通讯的网卡
virtual_router_id 151 ## 路由ID, 局域网内的路由ID,必须唯一性
priority 90 ## 【与VIP2节点对调】优先级(Master1机器如设置为100, Master2机器得设置为90)
advert_int 5
nopreempt ## 不抢占
authentication { ## 认证
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.73.100 ## 前调用户访问就是这个IP (在Master1与Master2两台电脑的eth0网卡上虚拟一个IP地址)
}
track_script {
chk_nginx
}
}
#VIP 2
vrrp_instance VI_2 {
state MASTER ## 【与VIP1节点对调】状态,表示开机启动的状态
interface eth0 ## 网卡(注意, 去CentOS系统中看一下网卡名称是多少, CentOS安装默认叫Auto eth1, 用#ip addr list命令查看一下)
lvs_sync_daemon_interface eth0 ## 互联通讯的网卡
virtual_router_id 152 ## 路由ID, 局域网内的路由ID,必须唯一性
priority 100 ## 【与VIP1节点对调】优先级(Master1机器如设置为100, Master2机器得设置为90)
advert_int 5
nopreempt ## 不抢占
authentication { ## 认证
auth_type PASS
auth_pass 2222
}
virtual_ipaddress {
192.168.73.110 ## 前调用户访问就是这个IP (在Master1与Master2两台电脑的eth0网卡上虚拟一个IP地址)
}
track_script {
chk_nginx
}
}
2.3) 过程的测试常用命命令
#/etc/init.d/keepalived restart -- 启动 keepalived
#tail -fn 100 /var/log/messages -- 查看 keepalived 状态日志
如以下提供来源其它的测试两个图片