LVS结合keepalived配置

ps:

上一节DR模式实验,可以实现两个机器负载均衡,但是有一个问题我们没有考虑过,假如其中一台机器宕掉之后,

比方把rs1的nginx停掉

[[email protected] ~]# /etc/init.d/nginx stop

停止 nginx:                                               [确定]

[[email protected] ~]# curl localhost

curl: (7) couldn‘t connect to host

解释说明:

这样访问就不正常了

测试查看

[[email protected] ~]# curl 192.168.10.110

curl: (7) couldn‘t connect to host

[[email protected] ~]# curl 192.168.10.110

curl: (7) couldn‘t connect to host

[[email protected] ~]# curl 192.168.10.110

curl: (7) couldn‘t connect to host

[[email protected] ~]# curl 192.168.10.110

222222

[[email protected] ~]# curl 192.168.10.110

curl: (7) couldn‘t connect to host

[[email protected] ~]# curl 192.168.10.110

curl: (7) couldn‘t connect to host

[[email protected] ~]# curl 192.168.10.110

curl: (7) couldn‘t connect to host

[[email protected] ~]# curl 192.168.10.110

222222

解释说明:

也出现这样的问题,3次不能访问,1次能访问,那这样的话,会把四分之三的请求产生这个坏点,也就是说4个人里面,有3个是不能访问的,所以说这种情况不是我们想要的结果,为了避免这种情况,我们就应该想到在lvs这一端能够有一个机制去检测,帮我们去检测当一个rs宕掉之后呢,它会把这个请求不再转发到这个坏掉的rs上去,我们直接把请求转发到好的rs上就行了,这样就会避免访问不到的情况。LVS本身没有这个功能,所以我们需要去借助一个第三方软件keepalived(它说白了是及负载均衡+HA高可用为一体)。

做这个实验呢需要四台机器,也就是说keepalived需要两台(一主一从),就像之前讲的heartbeat一样,一个提供服务,它是在线状态,另一个是备用,不提供服务,既然是做实验,为了节省资源,就用三台机器,那其中一个rs,比如说rs2,就把它当keepalived的备用机器也是可以的。

keepalived 用途

帮助LVS检测后端Real Server的存活,如果正常则将请求分发给RS;如果RS宕掉的话,就不会把这个请求发给RS,这样更加科学,这样不会产生一部分客户端的请求访问不到。

配置

1、 首先检查是否安装ipvsadm与keepalived

[[email protected] ~]# rpm -qa ipvsadm keepalived

2、 清除DR模式实验脚本启动的VIP

[[email protected]r1 ~]# ifconfig lo:0 down

[[email protected]r2 ~]# ifconfig lo:0 down

[[email protected]dr ~]# ifconfig eth0:0 down

3、 把之前的规则清空

[[email protected] ~]# ipvsadm -C

4、 安装keepalived,如果之前安装过pel扩展源则可以直接安装

[[email protected] ~]# yum install -y keepalived

[[email protected] ~]# yum install -y ipvsadm

[[email protected] ~]# yum install -y keepalived

5、 安装后编辑配置文件(先清空配置文件)

[[email protected] ~]# > /etc/keepalived/keepalived.conf

[[email protected] ~]# vim /etc/keepalived/keepalived.conf

vrrp_instance VI_1 {

state MASTER

interface eth0

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.10.110

}

}

virtual_server 192.168.10.110 80 {

delay_loop 6

lb_algo rr

lb_kind DR

persistence_timeout 0

protocol TCP

real_server 192.168.10.13 80 {

weight 100

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

real_server 192.168.10.14 80 {

weight 100

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

delay_before_retry 3

connect_port 80

}

}

}

解释说明:

vrrp_instance 全局配置

virtual_server 虚拟机,其实就是DS

real_server 包含与DR中

state 用于配置主MASTER/从BACKUP

priority 这里配置注册优先级,主的数值高从的数值低即可

authentication 验证,类似于HA的心跳线

virtual_ipaddress 配置vip

delay_loop 间隔多少秒钟检测一次RS状态

lb_algo 设置lvs算法

lb_kind 设置lvs的工作模式

persistence_timeout 保持长连接的时间(同一IP的连接设置秒内被分配到同一台RS)

protocol 使用什么协议RS状态

weight 权重

connect_timeout 设置时间内没有响应超时,单位为秒

6、 拷贝到从上

[[email protected] ~]# scp /etc/keepalived/keepalived.conf 192.168.10.14:/etc/keepalived/keepalived.conf

7、 从上编辑配置文件

8、主上启动

[[email protected] ~]# /etc/init.d/keepalived start

9、 启动keepalived后通过addr命令查看vip是否启动

[[email protected] ~]# ip addr

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:0c:29:d5:eb:5e brd ff:ff:ff:ff:ff:ff

inet 192.168.10.12/24 brd 192.168.10.255 scope global eth0

inet 192.168.10.110/32 scope global eth0

inet6 fe80::20c:29ff:fed5:eb5e/64 scope link

valid_lft forever preferred_lft forever

10、从上启动

[[email protected] ~]# /etc/init.d/keepalived start

11、主上查看规则

[[email protected] ~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.10.110:80 rr

-> 192.168.10.13:80             Route   100    0          0

-> 192.168.10.14:80             Route   100    0          0

12、测试之前再执行一下两个rs上执行下脚本

[[email protected] ~]# sh /usr/local/sbin/lvs_dr_rs.sh

[[email protected] ~]# sh /usr/local/sbin/lvs_dr_rs.sh

解释说明:

测试后没反应,所以就再执行了一下rs上的脚本

13、 测试

[[email protected] ~]# curl 192.168.10.110

11111111

[[email protected] ~]# curl 192.168.10.110

11111111

[[email protected] ~]# curl 192.168.10.110

11111111

[[email protected] ~]# curl 192.168.10.110

222222

[[email protected] ~]# curl 192.168.10.110

11111111

[[email protected]calhost ~]# curl 192.168.10.110

11111111

[[email protected] ~]# curl 192.168.10.110

11111111

[[email protected] ~]# curl 192.168.10.110

222222

14、那这时我们停掉一台机器(看是不是会自动地把它剔除掉)

[[email protected] ~]# /etc/init.d/nginx stop

15、 测试

[[email protected] ~]# curl 192.168.10.110

222222

[[email protected] ~]# curl 192.168.10.110

222222

[[email protected] ~]# curl 192.168.10.110

222222

[[email protected] ~]# curl 192.168.10.110

222222

[[email protected] ~]# curl 192.168.10.110

222222

解释说明:

这时会一直讲求rs2上

16、 查看到那条规则也会去掉

[[email protected] ~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.10.110:80 rr

-> 192.168.10.14:80             Route   100    0          12

17、 再把rs1启动了

[[email protected] ~]# /etc/init.d/nginx start

18、 再查看规则就有了

[[email protected] ~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.10.110:80 rr

-> 192.168.10.13:80             Route   100    0          0

-> 192.168.10.14:80             Route   100    0          0

19、 把主keepalived停掉

[[email protected] ~]# /etc/init.d/keepalived stop

20、 查看从keepalived

[[email protected] ~]# ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

inet 192.168.10.110/32 brd 192.168.10.110 scope global lo:0

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:0c:29:e5:49:34 brd ff:ff:ff:ff:ff:ff

inet 192.168.10.14/24 brd 192.168.10.255 scope global eth0

inet 192.168.10.110/32 scope global eth0

inet6 fe80::20c:29ff:fee5:4934/64 scope link

21、 查看从上规则

[[email protected] ~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.10.110:80 rr

-> 192.168.10.13:80             Route   100    0          1

-> 192.168.10.14:80             Local   100    0          1

22、 测试

[[email protected] ~]# curl 192.168.10.110

11111111

[[email protected] ~]# curl 192.168.10.110

222222

[[email protected] ~]# curl 192.168.10.110

11111111

[[email protected] ~]# curl 192.168.10.110

222222

[[email protected] ~]# curl 192.168.10.110

11111111

[[email protected] ~]# curl 192.168.10.110

222222

23、 再把主启动

[[email protected] ~]# /etc/init.d/keepalived start

24、 测试

[[email protected] ~]# curl 192.168.10.110

11111111

[[email protected] ~]# curl 192.168.10.110

11111111

[[email protected] ~]# curl 192.168.10.110

11111111

[[email protected] ~]# curl 192.168.10.110

222222

[[email protected] ~]# curl 192.168.10.110

11111111

[[email protected] ~]# curl 192.168.10.110

11111111

[[email protected] ~]# curl 192.168.10.110

11111111

[[email protected] ~]# curl 192.168.10.110

222222

时间: 2025-01-05 08:42:29

LVS结合keepalived配置的相关文章

LVS/DR + keepalived配置

1.LVS/DR 搭建的不足及解决方法 前面的lvs虽然已经配置成功也实现了负载均衡,但是我们测试的时候发现,当某台real server把httpd进程停掉,那么director照样会把请求转发过去,这样就造成了某些请求不正常.所以需要有一种机制用来检测real server的状态,这就是keepalived.它的作用除了可以检测rs状态外,还可以检测备用director的状态,也就是说keepalived可以实现ha集群的功能,当然了也需要一台备用director. 2.搭建环境前的工作 h

lvs、keepalived 集群管理

常用的负载均衡开源软件有: nginx.lvs.keepalived 商业的硬件负载设备: F5.Netscale 1. LB.LVS介绍LB集群是load balance 集群的简写,翻译成中文就是负载均衡集群 LVS是一个实现负载均衡集群的开源软件项目 LVS架构从逻辑上可分为调度层(Director).server集群层(Real server)和共享存储层LVS可分为三种工作模式:  ( dr模式参考这篇文章  http://os.51cto.com/art/201105/264303.

LVS + Keepalived 配置

#keepalived 配置 ! Configuration File for keepalived global_defs { router_id LVS_DEVEL } ########VRRP Instance######## vrrp_instance VI_1 { state MASTER #指定Keepalived的角色,MASTER为主机服务器,BACKUP为备用服务器 interface eth2 #BACKUP为备用服务器 virtual_router_id 31 priori

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置 LB集群是locd balance集群的简称.翻译成中文是:负载均衡集群的意思:集群是一组相互独立的.通过高速网络互联的计算机相互之间构成一个组合,并以单一的系统的模式加以管理.LVS是Linux Virtual Server的简写,翻译中文是Linux虚拟服务器,是一个虚拟的服务器集群系统. 负载均衡集群:是为了企业提供更为实用,性价比更高的系统机构解决方案.负载均衡集群把用户的请求尽可能的平均分发到集群的各

LB负载均衡中LVS搭建DR + keepalived配置

前面的lvs虽然已经配置成功也实现了负载均衡,但是我们测试的时候发现,当某台real server把httpd进程停掉,那么director照样会把请求转发过去,这样就造成了某些请求不正常.所以需要有一种机制用来检测real server的状态,这就是keepalived. 它的作用除了可以检测rs状态外,还可以检测备用director的状态,也就是说keepalived可以实现ha集群的功能,当然了也需要一台备用director.备用director也需要安装一下keepalived软件 注意

实例:LVS+Keepalived配置LVS的高可用

LVS+Keepalived配置LVS的高可用 我们这里LVS-DR模型的高可用集群: 实验环境:     vm1 LVS-DR1:              eth0 172.16.3.2/16              VIP :eth0:0 172.16.3.88              vm2 LVS-DR2:             eth0 172.16.3.3/16     vm3 Server-web1             RS1: eth0 172.16.3.1/16  

lvs+keepalived配置过程

---恢复内容开始--- ###lb01 操作 ####1.关闭keepalived iptables selinux ####2.手工添加LVS转发 #####1)配置lvs 添加vip ip addr add 10.0.0.3/24 dev eth0 label eth0:0 #####2)配置lvs规则 ipvsadm-save   -n ipvsadm -C ipvsadm --set 30 5 60 ipvsadm -A -t 10.0.0.3:80 -s wrr -p 20 ipvs

LVS + Keepalived 配置详解

LVS+Keepalived 配置 我们通过LVS-DR-MASTER,LVS-DR-BACKUP作为LVS负载均衡调度器,并且两者之间通过keepalived来两者之间的HA.keepalived本身就是为了LVS为开发的,所以说我们通过keepalived来进行LVS的配置就显得十分的方便.而且keepalived是直接操作ip_vs不用通过ipvsadm,所以更加方便. 实验拓扑图 LVS节点1配置: # yum install popt-devel openssl openssl-dev

lvs+keepalived配置

一.环境 lvs-keep-m: 192.168.3.24 lvs-keep-s: 192.168.3.25 RS1: 192.168.3.26 RS2: 192.168.3.27 VIP: 192.168.3.28 二.在所有节点都配置ntp同步时间 [[email protected] ~]# ntpdate asia.pool.ntp.org [[email protected] ~]# hwclock -w 三.RS1和RS2配置httpd服务,以及VIP RS1操作 [[email p