准备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

keepalived mongo 主挂了不切换 keepalived主备切换模式_运维

1.2、配置 keepalived 

这里笔者将 124 作为主节点,123 作为备用节点

安装完成后,进入keepalived 配置文件目录

cd /etc/keepalived/

编辑配置前,先查看124的网卡信息,执行下面命令查看

ip addr

keepalived mongo 主挂了不切换 keepalived主备切换模式_优先级_02

 记住这个 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

keepalived mongo 主挂了不切换 keepalived主备切换模式_html_03

编辑后保存

1.3、启动 keepalived

 开启 keepalived 服务

systemctl start keepalived.service

 开启后,查看网卡信息

ip addr

keepalived mongo 主挂了不切换 keepalived主备切换模式_linux_04

可以看到配置的虚拟 ip 地址 192.168.0.160 已经生效

1.4、配置备份节点

先查看备份节点网卡信息

ip addr

keepalived mongo 主挂了不切换 keepalived主备切换模式_优先级_05

 编辑备份节点 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

keepalived mongo 主挂了不切换 keepalived主备切换模式_优先级_06

主备节点都启动时,主节点生效,关闭主节点后,从节点生效,再次启动主节点,主节点生效,从节点失效

主备搭建成功 

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互为主备,结构如下图

keepalived mongo 主挂了不切换 keepalived主备切换模式_运维_07

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 网卡信息

keepalived mongo 主挂了不切换 keepalived主备切换模式_服务器_08

 123 网卡信息

keepalived mongo 主挂了不切换 keepalived主备切换模式_运维_09

2.2、测试

124 为主的虚拟 ip 192.168.0.160是上面的主备模式,无需再次测试;测试123 为主的虚拟 ip 192.168.0.170 即可

keepalived mongo 主挂了不切换 keepalived主备切换模式_运维_10

主备节点都启动时,虚拟 ip 192.168.0.170 下123是主节点,关闭123后,备用节点124起作用,再次启动 123 后,备用节点 124 失效,主节点123生效,双机热备搭建成功