windows下keepalived_keepalived实现服务高可用

本文介绍了在Windows系统中利用Keepalived实现服务高可用的详细步骤,包括Keepalived的作用、工作原理及配置过程。通过设置VRRP确保在主服务器故障时,备服务器能快速接管服务,保持业务连续性。

keepalived

一、keepalive的介绍:

Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。

Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

所以,Keepalived 一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。

二、keepalive的工作原理

工作时主节点发包,备节点接包,当备节点接收不到主节点发的数据包的时候,就启动接管程序接管主节点的开源。备节点可以有多个,通过优先级竞选,但一般 Keepalived系统运维工作中都是一对。

Keepalived高可用对之间是通过 VRRP进行通信的, VRRP是遑过竞选机制来确定主备的,主的优先级高于备,因此,工作时主会优先获得所有的资源,备节点处于等待状态,当主挂了的时候,备节点就会接管主节点的资源,然后顶替主节点对外提供服务。

在 Keepalived服务对之间,只有作为主的服务器会一直发送 VRRP广播包,告诉备它还活着,此时备不会枪占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性.接管速度最快可以小于1秒。

三、keepalive的配置

实验准备四台虚拟机(两台DS两台RS)

两台DS端配置

yum -y install keepalived   #安装keepalive

yum -y install ipvsadm       #安装ipvsadm

yum -y install httpd            #安装httpd

修改配置文件

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

#全局配置

global_defs {

notification_email {

}

}

# VRRP配置

vrrp_instance VI_1 {

state MASTER                    #角色类型MASTER|BACKUP

interface ens33                    #网卡名称

virtual_router_id 51            #虚拟路由id(需要与BACKUP一致)

priority 100                    #优先级

advert_int 1                    #没1秒检查一次

#nopreempt                        #非抢占模式

authentication {

auth_type PASS                #认证类型

auth_pass 1111                #认证密码

}

virtual_ipaddress {

192.168.88.250                #虚拟ip(vip)

}

}

#LVS配置

virtual_server 192.168.88.250 80 {

delay_loop 3                    #健康检查时间间隔

lb_algo rr                        #负载均衡调度算法

lb_kind DR                        #负载均衡转发规则

protocol TCP                    #协议

real_server 192.168.88.50 80 {    #要监控的real_server的ip和端口号

weight 1                 #权重

TCP_CHECK {                    #基于tcp协议的检查

connect_timeout 3          #连接时间超时

retry 3                    #重连次数

delay_before_retry 3    #重连间隔时间

}

}

real_server 192.168.88.51 80 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

}

DS1配置(192.168.88.49)

#启服务

systemctl start keepalived.service

systemctl start ipvsadm.service

systemctl start httpd.service

ifconfig ens33:0 192.168.88.250 broadcast 192.168.88.250 netmask 255.255.255.255 up

route add -host 192.168.88.250 dev ens33

DS2配置(192.168.88.48)

#启服务

systemctl start keepalived.service

systemctl start ipvsadm.service

systemctl start httpd.service

ifconfig ens33:0 192.168.88.250 broadcast 192.168.88.250 netmask 255.255.255.255 up

route add -host 192.168.88.250 dev ens33:0

RS1配置(192.168.88.50)

yum -y install httpd

systemctl start httpd.service

ifconfig lo:0 192.168.88.250 broadcast 192.168.88.250 netmask 255.255.255.255 up

route add -host 192.168.88.250 dev lo:0

echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2">/proc/sys/net/ipv4/conf/all/arp_announce

RS2配置(192.168.88.51)

yum -y install httpd

systemctl start httpd.service

ifconfig lo:0 192.168.88.250 broadcast 192.168.88.250 netmask 255.255.255.255 up

route add -host 192.168.88.250 dev lo:0

echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce

echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore

echo "2">/proc/sys/net/ipv4/conf/all/arp_announce

四、测试(DS1主,DS2辅)

1、DS1在线

在windows命令行测试

在DS1上查看状态

2、关闭DS1keepalive服务

DS1日志

DS2日志

继续在windows命令行测试(服务还在运行,说明DS2接管了DS1服务)

再DS2查看状态

3、当DS1主服务又开启的时候,服务没断,DS1重新接管了服务

4、线上服务器不能让主辅服务器来回切换,所以要把抢占模式打开,主的优先级大于辅的优先级,这样主服务宕机的时候辅服务才能接管。

例子如下:

DS1                vim /etc/keepalived/keepalived.conf

priority 100   #优先级

#nopreempt          #非抢占模式

DS2           vim /etc/keepalived/keepalived.conf

停掉DS1服务 DS2接管了

重新启动DS1服务,这次DS1没有服务,还是DS2在接管服务,测试:

DS1

DS2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值