LVS-DR模式的配置及Heartbeat+Ldirectord+DR高可用负载均衡集群的搭建

主机环境 redhat6.5 64位

实验环境 服务端1 ip172.25.25.113   主机名:server3.example.com

        服务端2 ip 172.25.25.114   主机名:server4.example.com 

        调度端2 ip 172.25.25.112   主机名:server2.example.com

        调度端1 ip 172.25.25.111   主机名:server1.example.com

防火墙状态:关闭

虚拟ip(vip): 172.25.25.200/24

 

1.LVS之DR的配置及测试

1.添加vip、将调度策略写进内核(调度器端)

1.添加vip

[[email protected] ~]# ip addr add 172.25.25.200/24 dev eth0    #添加一个vip

[[email protected] ~]# ip addr show          #查看

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

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

inet 127.0.0.1/8scope host lo

inet6 ::1/128 scopehost

valid_lft foreverpreferred_lft forever

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

link/ether 52:54:00:85:1a:3bbrd ff:ff:ff:ff:ff:ff

inet 172.25.25.112/24brd 172.25.25.255 scope global eth0

inet 172.25.25.200/24scope global secondary eth0       #添加成功

inet6fe80::5054:ff:fe85:1a3b/64 scope link

valid_lft foreverpreferred_lft forever

2.用ipvsadm工具将策略写进内核

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

[[email protected] ~]# ipvsadm -A -t 172.25.25.200:80 -s rr      #写策略,添加httpd服务,机制轮叫

[[email protected] ~]# ipvsadm -a -t 172.25.25.200:80 -r172.25.25.113:80 -g #添加服务器

[[email protected] ~]# ipvsadm -a -t 172.25.25.200:80 -r172.25.25.114:80 -g

[[email protected] ~]# ipvsadm -ln       #查看,添加成功

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

->RemoteAddress:Port           ForwardWeight ActiveConn InActConn

TCP  172.25.25.200:80 rr

->172.25.25.113:80             Route   1     0          0

->172.25.25.114:80             Route   1     0          0

2.安装httpd、添加虚拟ip、添加arp火墙策略(服务器端)

1.写测试页、开启httpd

[[email protected] ~]# yum install -y httpd      #安装httpd

[[email protected] ~]# vim /var/www/html/index.html     #写测试页

server3.example.com

[[email protected] ~]# /etc/init.d/httpd start       #开启httpd

Starting httpd:                                            [  OK  ]

2.用arptables工具添加火墙策略

[[email protected] ~]# yum install arptables_jf -y   #安装arptables_jf工具

[[email protected] ~]# ip addr add 172.25.25.200/24 dev eth0 #添加虚拟ip

#添加arp火墙策略(禁止从172.25.25.200进来的访问,允许从72.25.25.200出去的访问且经出去的ip变成自己的ip172.25.25.113)

[[email protected] ~]# arptables -A IN -d 172.25.25.200 -j DROP

[[email protected] ~]# arptables -A OUT -s 172.25.25.200 -j mangle--mangle-ip-s 172.25.25.113

[[email protected] ~]# /etc/init.d/arptables_jf save     #保存

Saving current rules to /etc/sysconfig/arptables:          [ OK  ]

[[email protected] ~]# arptables -L      #查看

Chain IN (policy ACCEPT)

target     source-ip            destination-ip       source-hw          destination-hw     hlen  op         hrd        pro

DROP       anywhere             172.25.25.200        anywhere           anywhere           any    any       any        any

Chain OUT (policy ACCEPT)

target     source-ip            destination-ip       source-hw          destination-hw     hlen  op         hrd        pro

mangle    172.25.25.200        anywhere             anywhere           anywhere           any    any       any        any       --mangle-ip-s server3.example.com

Chain FORWARD (policy ACCEPT)

target     source-ip            destination-ip       source-hw          destination-hw     hlen  op         hrd        pro

3.测试

#刚开始是服务端1

#刷新之后,服务端2

[[email protected] ~]# /etc/init.d/httpd stop    #将服务端1的httpd停掉

Stopping httpd:                                           [  OK  ]

#服务在服务端2,刷新也没变

为了避免单点故障,要将DR添加到高可用集群(HA)中,下面介绍的是添加到HA的heartbeat中。由于heartheat对后端没有健康检查,这就需要借助ldirectord对heartbeat进行后端检查。即将DR添加到ldirectord中,再将ldirectord服务添加到heartbeat中,前面博文中已经有heartdbeat的安装和测试,可以参考前面的博文。

2.将DR添加到ldirectord服务中,再将ldirectord服务添加到高可用集群(HA)的heartbeat中、测试

1.配置ldirectord、测试(调度端)

#在管理端1和管理端2安装、配置好heartbeat的情况下

1.配置ldirectord、查看策略是否写进内核

[[email protected] yum.repos.d]# cd/usr/share/doc/ldirectord-3.9.5/

[[email protected] ldirectord-3.9.5]# ls

COPYING  ldirectord.cf

[[email protected] ldirectord-3.9.5]# cp ldirectord.cf/etc/ha.d/  #复制

[[email protected] ldirectord-3.9.5]# cd /etc/ha.d/

[[email protected] ha.d]# vim ldirectord.cf  #进入配置文件

25virtual=172.25.25.200:80    #虚拟ip

26         real=172.25.25.113:80 gate  #真正的服务端

27         real=172.25.25.114:80 gate  #同上

28         fallback=127.0.0.1:80 gate  #当所有服务端都出故障之后,使用本地回环

29         service=http       #服务httpd

30         scheduler=rr       #机制轮叫

31         #persistent=600

32         #netmask=255.255.255.255

33         protocol=tcp       #协议

34         checktype=negotiate

35         checkport=80       端口

36         request="index.html"    #服务的测试页名称

37 #       receive="Test Page"

38 #       virtualhost=www.x.y.z

[[email protected] ha.d]# /etc/init.d/ipvsadm stop       #停掉ipvsadm

ipvsadm: Clearing the current IPVS table:                  [  OK  ]

ipvsadm: Unloading modules:                                [  OK  ]

[[email protected] ha.d]# ipvsadm -L   #查看,没有策略

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

->RemoteAddress:Port           ForwardWeight ActiveConn InActConn

[[email protected] ha.d]# /etc/init.d/ldirectord restart  #开启ldirectord

Restarting ldirectord... success

[[email protected] ha.d]# ipvsadm -L #查看

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

->RemoteAddress:Port           ForwardWeight ActiveConn InActConn

TCP  172.25.25.200:httprr

->server3.example.com:http     Route   1     0          0

->172.25.25.114:http           Route   1     0          0

 2.测试

#刚开始是服务端1

#刷新之后,服务端2

#将停掉服务端1和服务端2的httpd,测试

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

Stopping httpd:                                           [  OK  ]

[[email protected] yum.repos.d]# /etc/init.d/httpd stop

Stopping httpd:                                           [  OK  ]

#本地回环

2.将ldirectord服务添加到heartbeat中

[[email protected] ha.d]# vim haresources

150 server1.example.com IPaddr::172.25.25.200/24/eth0ldirectord httpd  #添加虚拟ip,调度,httpd服务

[[email protected] ha.d]# /etc/init.d/ldirectord stop        #将ldirectord服停止(不能手动开启)

Stopping ldirectord... Success

[[email protected] ha.d]# ip addr del 172.25.25.200/24 dev   #将vip删掉

[[email protected] ha.d]# /etc/init.d/heartbeat start    #开启heartbeat

Starting High-Availability services: INFO:  Resource is stopped

Done.

[[email protected] ha.d]# scp haresources 1ldirectord.cf72.25.25.111:/etc/ha.d/     #将修改过的文件传给服务端1

[email protected]‘s password:

haresources                                   100%5972     5.8KB/s   00:00

ldirectord.cf                                   100%8281     8.1KB/s   00:00

[[email protected] ha.d]# /etc/init.d/heartbeat start    #开启服务端1的heartbeat

Starting High-Availability services: INFO:  Resource is stopped

Done.

3.整体测试

#将服务开启之后,服务在服务端1(主)

[[email protected] ha.d]# ip addr show       #查看ip

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

link/loopback00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8scope host lo

inet6 ::1/128 scopehost

valid_lft foreverpreferred_lft forever

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

link/ether 52:54:00:ec:8b:36brd ff:ff:ff:ff:ff:ff

inet 172.25.25.111/24brd 172.25.25.255 scope global eth0

inet 172.25.25.200/24brd 172.25.25.255 scope global secondary eth0 #虚拟ip成功

inet6fe80::5054:ff:feec:8b36/64 scope link

valid_lft foreverpreferred_lft forever

[[email protected] ha.d]# /etc/init.d/heartbeat stop     #若将服务端1的heartbeat停掉

Stopping High-Availability services: Done.

#测试,服务到了服务端2(备)

[[email protected] ha.d]# ip addr show   #查看ip,虚拟ip到了服务端2

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

link/loopback00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8scope host lo

inet6 ::1/128 scopehost

valid_lft foreverpreferred_lft forever

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

link/ether52:54:00:85:1a:3b brd ff:ff:ff:ff:ff:ff

inet 172.25.25.112/24brd 172.25.25.255 scope global eth0

inet 172.25.25.200/24brd 172.25.25.255 scope global secondary eth0#虚拟ip

inet6fe80::5054:ff:fe85:1a3b/64 scope link

valid_lft foreverpreferred_lft forever

[[email protected] ha.d]# /etc/init.d/heartbeat start    #将服务端1的heartbeat开启

Starting High-Availability services: INFO:  Resource is stopped

Done.

#测试,服务自动回到了服务端1(主)

[[email protected] ha.d]# ip addr show    #查看ip,虚拟ip自动回到到了服务端1

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

link/loopback00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8scope host lo

inet6 ::1/128 scopehost

valid_lft foreverpreferred_lft forever

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

link/ether52:54:00:ec:8b:36 brd ff:ff:ff:ff:ff:ff

inet 172.25.25.111/24brd 172.25.25.255 scope global eth0

inet 172.25.25.200/24brd 172.25.25.255 scope global secondary eth0

inet6fe80::5054:ff:feec:8b36/64 scope link

valid_lft foreverpreferred_lft forever

时间: 2024-10-06 04:28:08

LVS-DR模式的配置及Heartbeat+Ldirectord+DR高可用负载均衡集群的搭建的相关文章

Keepalived+LVS-DR模式高可用负载均衡集群的搭建

主机环境 redhat6.5 64位 实验环境 服务端1 ip 172.25.25.113  主机名:server3.example.com             服务端2 ip 172.25.25.114  主机名:server4.example.com          管理端2 ip 172.25.25.112  主机名:server2.example.com          管理端1 ip 172.25.25.111  主机名:server1.example.com 防火墙状态:关闭

DNS+keepalived+lvs实现高可用负载均衡集群

1.目的: 部署两台lvs调度器并利用keepalived实现主主模型,DNS添加两条A记录指向lvs调度器实现轮询,最终实现高可用负载均衡集群效果 2.拓扑规划: 3.配置实践 (1)同步所有机器时间 在每台机器实行ntp同步: [[email protected] ~]# ntpdate 10.1.0.1 26 Oct 20:10:57 ntpdate[5533]: step time server 10.1.0.1 offset -32408.643564 sec (2)先配置RS,在RS

apache+inotify-tools+keepalived+lvs-DR模式配置高可用负载均衡集群

环境:虚拟机VMware workstation 9 操作系统:Redhat 5.6 i386 一.keepalived+LVS-DR模式配置高可用负载均衡 拓扑如下: 二.服务器IP配置信息 四台服务器均有VMware虚拟机实现,两台HA主机.两台web服务器.网络方式都设置为NAT模式 1.master:192.168.80.145 2.slaver:192.168.80.137 3.web1:192.168.80.144 4.web2:192.168.80.134 5.VIP:192.16

Keepalived+LVS(dr)高可用负载均衡集群的实现

一 环境介绍 1.操作系统CentOS Linux release 7.2.1511 (Core) 2.服务keepalived+lvs双主高可用负载均衡集群及LAMP应用keepalived-1.2.13-7.el7.x86_64ipvsadm-1.27-7.el7.x86_64httpd-2.4.6-45.el7.centos.x86_64mariadb-5.5.52-1.el7.x86_64php-5.4.16-42.el7.x86_64 二 原理及拓扑图 1.vrrp协议vrrp(Vir

LVS+Keepalived搭建MyCAT高可用负载均衡集群

LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.目前有三种IP负载均衡技术(VS/NAT.VS/TUN和VS/DR),十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq). Keepalvied Keepalived在这里主要用作RealServer的健康状态检查以及Mast

LVS+Keepalived高可用负载均衡集群架构

实验环境: LVS和keepalived介绍: 1.keepalived的设计目标是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器,管理服务器池,而不仅仅用来做双机热备. 使用keepalived构建LVS群集更加简便易用,主要优势体现在: 对LVS负载调度器实现热备切换,提高可用性: 对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入. 2.在基于LVS+Keepalived实现的LVS群集结构中,至少包括两台热备的负载调度器,两台以上的节点服务器,

LVS+Keepalived 实现高可用负载均衡集群

简介: 随着网站业务量的增长,网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如 F5 ,Array又太贵,你们又是创业型互联公司如何有效节约成本,节省不必要的浪费?同时还需要实现商业硬件一样的高性能高可用的功能?有什么好的负载均衡可伸张可扩展的方案吗?有!我们利用LVS+Keepalivd基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器.  一.LVS+Keepalived  介绍 1.  LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服

lvs+keepalived高可用负载均衡集群双主实现

项目说明 1.         使用LVS负载均衡用户请求到后端web服务器,并且实现健康状态检查 2.         使用keepalived高可用LVS,避免LVS单点故障 3.         集群中分别在LK-01和LK-02运行一个VIP地址,实现LVS双主 4.         用户通过DNS轮训的方式实现访问集群的负载均衡(不演示) 环境拓扑 环境介绍 IP地址 功能描述 LK-01 172.16.4.100 调度用户请求到后端web服务器,并且和LK-02互为备份 LK-02

LVS+keepalived DR模式配置高可用负载均衡集群

实验环境 LVS-Master 10.0.100.201 VIP:10.0.100.203 LVS-Slave       10.0.100.204 WEB1-Tomcat 10.0.2.29 gateway:10.0.2.253 WEB2-Tomcat 10.0.100.202 (注意:应保持所有服务器的时间一致) Install LVS # ln -s /usr/src/kernels/2.6.32-431.el6.i686/ /usr/src/linux //若找不到这个目录则先安装ker