准备2台机器,ip 地址分别是 192.168.0.124,168.0.8.0.123,后面简称124和123
目录
1、主备模式
1.1、安装 keepalived
1.2、配置 keepalived
1.3、启动 keepalived
1.4、配置备份节点
1.5、测试主备模式
2、双机热备模式
2.1、配置 keepalived
2.2、测试
1、主备模式
1.1、安装 keepalived
在 2 台机器上分别安装 keepalived
yum install -y keepalived
1.2、配置 keepalived
这里笔者将 124 作为主节点,123 作为备用节点
安装完成后,进入keepalived 配置文件目录
cd /etc/keepalived/
编辑配置前,先查看124的网卡信息,执行下面命令查看
ip addr
记住这个 ens33 ,下面会用到
编辑配置文件
vi keepalived.conf
在124节点上,将124配置为主节点,主节点(MASTER)配置如下
global_defs {
#主机标识,全局唯一
router_id keepalived-124
}
#vrrp协议实例 名称自定义
vrrp_instance VI_1 {
#服务器状态 MASTER是主服务器 BACKUP是备份服务器
state MASTER
#网卡设置
interface ens33
#虚拟路由id,保持主备节点一致
virtual_router_id 51
#优先级,MASTER宕机后,优先级高的会称为新的MASTER
priority 100
#心跳间隔(主备之间心跳检查) 单位秒
advert_int 1
#服务器间认证授权密码(防止非法节点进入)
authentication {
auth_type PASS
auth_pass 1111
}
#虚拟ip
virtual_ipaddress {
192.168.0.160
}
}
interface 配置的是上面的网卡 ens33(读者根据自己的机器情况配置)
设置虚拟 ip 地址为 192.168.0.160
编辑后保存
1.3、启动 keepalived
开启 keepalived 服务
systemctl start keepalived.service
开启后,查看网卡信息
ip addr
可以看到配置的虚拟 ip 地址 192.168.0.160 已经生效
1.4、配置备份节点
先查看备份节点网卡信息
ip addr
编辑备份节点 keepalived.conf 文件
cd /etc/keepalived/
vi keepalived.conf
备份节点 keepalived.conf 文件内容配置如下
global_defs {
#主机标识,全局唯一
router_id keepalived-123
}
#vrrp协议实例 名称自定义
vrrp_instance VI_1 {
#服务器状态 MASTER是主服务器 BACKUP是备份服务器
state BACKUP
#网卡设置
interface ens33
#虚拟路由id,保持主备节点一致
virtual_router_id 51
#优先级,MASTER宕机后,优先级高的会称为新的MASTER
priority 70
#心跳间隔(主备之间心跳检查) 单位秒
advert_int 1
#服务器间认证授权密码(防止非法节点进入)
authentication {
auth_type PASS
auth_pass 1111
}
#虚拟ip
virtual_ipaddress {
192.168.0.160
}
}
备份节点 state 为 BACKUP
修改 priority 为 70, 小于主节点 100
网卡 interface 为 ens33
1.5、测试主备模式
在 124 和 123 上分别启动 nginx,存放不同的 html 文件,然后关闭主节点 keepalived,测试从节点是否生效
keepalived 关闭命令
systemctl stop keepalived.service
主节点 html 内容
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<p>192.168.0.124 主节点</p>
</body>
</html>
从节点 html 内容
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<p>192.168.0.123 备用节点</p>
</body>
</html>
nginx 的安装和使用这里就不赘述了
浏览器访问 192.168.0.160
主备节点都启动时,主节点生效,关闭主节点后,从节点生效,再次启动主节点,主节点生效,从节点失效
主备搭建成功
2、双机热备模式
双机热备模式,在主备模式的基础上,再增加一个虚拟 ip 地址 192.168.0.170
虚拟ip 192.168.0.170 是将123作为主(MASTER),124作为备份(BACKUP)
增加之后,会有2个虚拟 ip,192.168.0.160 和 192.168.0.170。192.168.0.160是将124作为主,123作为备份;192.168.0.170 是将123作为主,124作为备份,因此 124和123互为主备,结构如下图
2.1、配置 keepalived
添加虚拟 ip 192.168.0.170后,124 配置文件如下
global_defs {
#主机标识,全局唯一
router_id keepalived-124
}
#vrrp协议实例 名称自定义
vrrp_instance VI_1 {
#服务器状态 MASTER是主服务器 BACKUP是备份服务器
state MASTER
#网卡设置
interface ens33
#虚拟路由id,保持主备节点一致
virtual_router_id 51
#优先级,MASTER宕机后,优先级高的会称为新的MASTER
priority 100
#心跳间隔(主备之间心跳检查) 单位秒
advert_int 1
#服务器间认证授权密码(防止非法节点进入)
authentication {
auth_type PASS
auth_pass 1111
}
#虚拟ip
virtual_ipaddress {
192.168.0.160
}
}
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 52
priority 70
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.170
}
}
123 配置文件如下
global_defs {
#主机标识,全局唯一
router_id keepalived-123
}
#vrrp协议实例 名称自定义
vrrp_instance VI_1 {
#服务器状态 MASTER是主服务器 BACKUP是备份服务器
state BACKUP
#网卡设置
interface ens33
#虚拟路由id,保持主备节点一致
virtual_router_id 51
#优先级,MASTER宕机后,优先级高的会称为新的MASTER
priority 70
#心跳间隔(主备之间心跳检查) 单位秒
advert_int 1
#服务器间认证授权密码(防止非法节点进入)
authentication {
auth_type PASS
auth_pass 1111
}
#虚拟ip
virtual_ipaddress {
192.168.0.160
}
}
vrrp_instance VI_2 {
state MASTER
interface ens33
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.170
}
}
查看124 和 123 网卡情况
ip addr
124 网卡信息
123 网卡信息
2.2、测试
124 为主的虚拟 ip 192.168.0.160是上面的主备模式,无需再次测试;测试123 为主的虚拟 ip 192.168.0.170 即可
主备节点都启动时,虚拟 ip 192.168.0.170 下123是主节点,关闭123后,备用节点124起作用,再次启动 123 后,备用节点 124 失效,主节点123生效,双机热备搭建成功