JavaEE:Keepalived双机主备与双主热备

一、Keepalived安装:

1.下载,用XFtp上传到centos7系统/root目录:

下载:

https://www.keepalived.org/download.html

解压:

[root@VM-0-11-centos ~]# tar zxf keepalived-2.2.4.tar.gz

2.安装:

(1)安装依赖:

[root@VM-0-11-centos keepalived-2.2.4]# yum -y install libnl libnl-devel
[root@VM-0-11-centos keepalived-2.2.4]# yum -y install openssl-devel
[root@VM-0-11-centos keepalived-2.2.4]# yum -y install gcc-c++

(2)用configure创建makeFile文件(cd到/root/keepalived-2.2.4目录):

[root@VM-0-11-centos keepalived-2.2.4]# ./configure --prefix=/usr/local/keepalived --sysconf=/etc

(3)编译源码:

[root@VM-0-11-centos keepalived-2.2.4]# make

(4)安装:

[root@VM-0-11-centos keepalived-2.2.4]# make install

(5)查看安装目录:

[root@VM-0-11-centos keepalived-2.2.4]# whereis keepalived

二、Keepalived配置双机主备:

说明:需要2台云服务器,主机不宕机时,备机不会被使用(存在资源浪费)。

1.MASTER主机配置(双机主备):

(1)修改keepalived.conf(cd到/etc/keepalived目录)

[root@VM-0-11-centos keepalived]# vi keepalived.conf

内容如下:

global_defs {
    router_id keep_101      #设置路由id(主机唯一标识)
}
vrrp_instance VI_1 {
    state MASTER            #设置为MASTER主机(备机为BACKUP)
    interface eth0          #设置绑定的网卡,此处网卡为eth0
    virtual_router_id 51    #主机和备机此值要一样
    priority 100            #设置权重,MASTER主机值要大于BACKUP备机值
    advert_int 1            #主机与备机同步检查间隔,单位为秒
    #设置认证权限
    authentication {
        auth_type PASS      #认证类型为密码
        auth_pass 1234      #具体密码
    }
    virtual_ipaddress {
        192.168.200.101     #虚拟IP,主/备机此处保持一致,默认绑定主机,主机宕机时绑定备机
    }
}

2.BACKUP备机配置(双机主备):

(1)修改keepalived.conf(cd到/etc/keepalived目录)

[root@VM-0-11-centos keepalived]# vi keepalived.conf

内容如下:

global_defs {
    router_id keep_102      #设置路由id(备机唯一标识)
}
vrrp_instance VI_1 {
    state BACKUP            #设置为BACKUP备机
    interface eth0          #设置绑定的网卡,此处网卡为eth0
    virtual_router_id 51    #备机此值要和主机一样
    priority 80             #设置权重,BACKUP备机值要低于MASTER主机值
    advert_int 1            #备机与主机同步检查间隔,单位为秒
    #设置认证权限
    authentication {
        auth_type PASS      #认证类型为密码
        auth_pass 1234      #具体密码
    }
    virtual_ipaddress {
        192.168.200.101     #虚拟IP,备/主机此处保持一致,主机宕机时绑定备机
    }
}

3.启动/停止/重启keepalived:

(1)启动:

[root@VM-0-11-centos keepalived]# systemctl start keepalived

(2)停止:

[root@VM-0-11-centos keepalived]# systemctl stop keepalived

(3)重启:

[root@VM-0-11-centos keepalived]# systemctl restart keepalived

(4)查看进程:

[root@VM-0-11-centos keepalived]# ps -ef|grep keepalived

4.将keepalived注册为系统服务:

(1)将init.d目录下的keepalived文件拷贝到/etc/init.d目录下(cd到/root/keepalived-2.2.4/keepalived/etc目录):

[root@VM-0-11-centos etc]# cp init.d/keepalived /etc/init.d/

(2)将sysconfig目录下的keepalived文件拷贝到/etc/sysconfig目录下(cd到/root/keepalived-2.2.4/keepalived/etc目录):

[root@VM-0-11-centos etc]# cp sysconfig/keepalived /etc/sysconfig/

(3)重新加载:

[root@VM-0-11-centos etc]# systemctl daemon-reload

(4)启动keepalived服务:

[root@VM-0-11-centos etc]# systemctl start keepalived.service

5.用keepalived定时检查并重启宕机的nginx:

(1)新增检查脚本keepalived_check.sh(cd到/etc/keepalived目录):

[root@VM-0-11-centos keepalived]# vi keepalived_check.sh

内容如下:

#!/bin/bash
N=`ps -C nginx --no-header | wc -l` #获取nginx进程数,N为自定义变量
if [ $N -eq 0 ];then                 #检查nginx进程数是否为0(宕机),是则重启
     /usr/local/nginx/sbin/nginx    #重启nginx
     sleep 3                        #等待3秒
     if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then   #检查nginx,没有启动成功时停止keepalived,自动启动备用机
           killall keepalived         #停止keepalived
     fi
fi

(2)给脚本添加权限:

[root@VM-0-11-centos keepalived]# chmod +x keepalived_check.sh

测试启动:

[root@VM-0-11-centos keepalived]# ./keepalived_check.sh

(3)定时执行脚本:

修改keepalived.conf(cd到/etc/keepalived目录):

[root@VM-0-11-centos keepalived]# vi keepalived.conf

内容如下:

...
vrrp_script nginx_check {   #nginx_check为自定义方法名
     script "/etc/keepalived/keepalived_check.sh"    #运行keepalived_check.sh脚本
     interval 2                                      #定期执行间隔时间,单位为秒
     weight 5                                        #脚本运行成功vrrp_instance VI_1的priority(权重)属性值+5
     #weight -5                                      #脚本运行失败vrrp_instance VI_1的priority(权重)属性值-5
}
vrrp_instance VI_1 {
     ...
     track_script {
         nginx_check    #调用上述定义的nginx_check方法
     }
}
...

(4)重启生效:

[root@VM-0-11-centos keepalived]# systemctl restart keepalived

三、Keepalived配置双主热备:

说明:需要2台云服务器,主/备机同时使用。

1.第1台MASTER+BACKUP配置(双主热备):

(1)修改keepalived.conf(cd到/etc/keepalived目录):

[root@VM-0-11-centos keepalived]# vi keepalived.conf

内容如下:

global_defs {
    router_id keep_101      #设置路由id(主机唯一标识)
}
vrrp_instance VI_1 {        #与第2台VI_1配套
    state MASTER            #设置为第1台MASTER主机,与第2台BACKUP对应
    interface eth0          #设置绑定的网卡,此处网卡为eth0
    virtual_router_id 51    #第1个虚拟路由id,此处和第2台VI_1的virtual_router_id一样
    priority 100            #设置权重,MASTER主机值要大于BACKUP备机值
    advert_int 1            #主机与备机同步检查间隔,单位为秒
    authentication {        #设置认证权限
        auth_type PASS      #认证类型为密码
        auth_pass 1234      #具体密码
    }
    virtual_ipaddress {
        192.168.200.101     #第1个虚拟IP,此处和第2台VI_1的virtual_ipaddress一样,默认绑定第1台MASTER,第1台MASTER宕机时绑定第2台BACKUP
    }
}
vrrp_instance VI_2 {        #与第2台VI_2配套
    state BACKUP            #设置为第1台BACKUP备机,与第2台MASTER对应
    interface eth0          #设置绑定的网卡,此处网卡为eth0
    virtual_router_id 52    #第2个虚拟路由id,此处和第2台VI_2的virtual_router_id一样
    priority 80             #设置权重,BACKUP备机值要低于MASTER主机值
    advert_int 1            #备机与主机同步检查间隔,单位为秒
    authentication {        #设置认证权限
        auth_type PASS      #认证类型为密码
        auth_pass 1234      #具体密码
    }
    virtual_ipaddress {
        192.168.200.102     #第2个虚拟IP,此处和第2台VI_2的virtual_ipaddress一样,默认绑定第2台MASTER,第2台MASTER宕机时绑定第1台BACKUP
    }
}

2.第2台BACKUP+MASTER配置(双主热备):

(1)修改keepalived.conf(cd到/etc/keepalived目录)

[root@VM-0-11-centos keepalived]# vi keepalived.conf

内容如下:

global_defs {
    router_id keep_102      #设置路由id(备机唯一标识)
}
vrrp_instance VI_1 {        #与第1台VI_1配套
    state BACKUP            #设置为第2台BACKUP备机,与第1台MASTER对应
    interface eth0          #设置绑定的网卡,此处网卡为eth0
    virtual_router_id 51    #第1个虚拟路由id,此处和第1台VI_1的virtual_router_id一样
    priority 80             #设置权重,BACKUP备机值要低于MASTER主机值
    advert_int 1            #备机与主机同步检查间隔,单位为秒
    authentication {        #设置认证权限
        auth_type PASS      #认证类型为密码
        auth_pass 1234      #具体密码
    }
    virtual_ipaddress {
        192.168.200.101     #第1个虚拟IP,此处和第1台VI_1的virtual_ipaddress一样,第1台MASTER宕机时绑定第2台BACKUP
    }
}
vrrp_instance VI_2 {        #与第1台VI_2配套
    state MASTER            #设置为MASTER主机(备机为BACKUP),与第1台BACKUP对应
    interface eth0          #设置绑定的网卡,此处网卡为eth0
    virtual_router_id 52    #虚拟路由id,主机VI_1和备机VI_1此处要一样
    priority 100            #设置权重,MASTER主机值要大于BACKUP备机值
    advert_int 1            #主机与备机同步检查间隔,单位为秒
    authentication {        #设置认证权限
        auth_type PASS      #认证类型为密码
        auth_pass 1234      #具体密码
    }
    virtual_ipaddress {
        192.168.200.102     #第2个虚拟IP,此处和第1台VI_2的virtual_ipaddress一样,第2台MASTER宕机时绑定第1台BACKUP
    }
}

3.在两台服务器中重启keepalived生效:

[root@VM-0-11-centos keepalived]# systemctl restart keepalived


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值