`
beyondhjjyt
  • 浏览: 39728 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

LVS+heartbeat+ldirectord高可用负载均衡集群解决方案

 
阅读更多

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目由章文嵩博士在1998年5月创立,是中国国内最早出现的自由软件项目之一。其作用是实现LB(Load Balance)将大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间;将单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高。

HA(High Avalibaility)高可用性,即双机热备的方式保证服务的高可用性

本文高可用负载均衡集群解决方案,是在LVS实现负载均衡的基础之上,采用双机热备director来保证lvs个高可用性,并通过heartbeat实时监听主director的运行状态,另外使用ldirectord实时监测director后端Real Server的健康状态,将不能正常提供服务的主机离线。

整套方案拓扑架构如图:

下面开始详述实现步骤:

一、两台Real Server:RS1、RS2的配置

初始化步骤:配置ip地址、主机名、yum源等不在赘述

  1. echo1>/proc/sys/net/ipv4/conf/lo/arp_ignore
  2. echo2>/proc/sys/net/ipv4/conf/lo/arp_announce
  3. echo1>/proc/sys/net/ipv4/conf/all/arp_ignore
  4. echo2>/proc/sys/net/ipv4/conf/all/arp_announce
  5. #定义内核参数,禁止realserver响应ARP广播请求

Ps:由于使用DR模型故要屏蔽arp对后端realserver的解析

  1. ifconfiglo:0192.168.0.123broadcast192.168.0.123netmask255.255.255.255up
  2. #在回环端口配置对外通信的VIP,并锁定其广播域
  3. routeadd-host192.168.0.123devlo:0
  4. #配置主机路由,使之对外发送数据包均使用VIP
  1. yuminstall-yhttpd
  2. #安装安装web服务
  3. servicehttpdstart
  4. echo'<h>RealServer1</h>'>/var/www/html/index.html
  5. #添加realserver测试页面
  6. mkdir/var/www/html/test/
  7. echo'ok'>/var/www/html/test/index.html
  8. #为ldirectord提供检测页面
  9. service httpd start

Ps:这里仅以RS1为实例进行说明,RS2同此法操作。

二、高可用HA director节点的配置

初始化步骤:配置ip、yum源等。

Ps:两台director节点都使用双网卡,eth0与real server同网段,eth1使用网卡直连用于传输心跳信号。

  1. vim/etc/hosts
  2. 192.168.0.71node1.a.orgnode1
  3. 192.168.0.72node2.a.orgnode1
  4. #用于实现两台director节点间域名解析,此操作node1、node2相同
  1. vim/etc/sysconfig/network
  2. #设置主机名
  3. hostnamenode1.a.org
  4. #修改主机名使之立即生效

使heartbeat信息加密传输

  1. ssh-keygen-trsa
  2. #生成密钥
  3. ssh-copy-id-i.ssh/id_rsa.pubroot@node2.a.org
  4. #将公钥复制给node2
  5. sshnode2--‘ifconfig’
  6. #执行命令测试,此时应该显示node2的ip信息

安装heartbeat

  1. cdheartbeat
  2. yumlocalinstall-y--nogpgcheck./*
  3. #安装此目录中的所有rpm包

  1. cd/usr/share/doc/heartbeat-2.1.4
  2. cpauthkeys/etc/ha.d/
  3. cpharesources/etc/ha.d/
  4. cpha.cf/etc/ha.d/
  5. #拷贝heartbeat所需配置文件到指定目录下
  1. vim/etc/ha.d/ha.cf
  2. bcasteth1
  3. #定义心跳信息从那一块网卡传输
  4. nodenode1.a.org
  5. nodenode2.a.org
  6. #添加这两行,用于指明心跳信号传输范围
  7. vim/etc/ha.d/authkeys
  8. auth2
  9. 2sha1[键入随机数]
  10. chmod400authkeys
  11. #保存退出并修改权限400
  12. vim/etc/ha.d/haresource
  13. node1.a.org192.168.0.123/24/eth0/192.168.0.255ldirectord::ldirectord.cf httpd
  14. #末行添加主节点域名,vip资源,广播地址,ldirectord资源,以及用户提供显示错误页面的httpd资源

同步配置文件到node2

  1. /usr/lib/heartbeat/ha_propagate
  2. #脚本用来同步ha.cf和authkeys文件到node2
  3. scpharesourcesnode2:/etc/ha.d/
  4. #复制haresource到nod2

配置ldirectord,同步配置文件

  1. cp/usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf/etc/ha.d/ldirectord.cf
  2. #复制ldirector的配置文件

内容如下配置

  1. checktimeout=3
  2. #当DR收不到realserver的回应,设定几秒后判定realserver当机或挂掉了,预设5秒。
  3. checkinterval=1
  4. #查询间隔,每个几秒侦测一次realserver
  5. autoreload=yes
  6. #配置文件发生改变是否自动重读
  7. quiescent=yes
  8. #静态链接,yes:表示侦测realserver宕机,将其权值至零(如果开启了persistent参数不要用yes);no:表示侦测到宕机realserver,随即将其对应条目从ipvsadm中删除。
  9. virtual=192.168.0.123:80
  10. real=192.168.0.51:80gate4
  11. real=192.168.0.52:80gate2
  12. fallback=127.0.0.1:80gate#realserver全部失败,vip指向本机80端口。
  13. service=http
  14. request="test/index.html"#用于健康检测的url
  15. receive="ok"#用于健康检测的url包含的关键字
  16. scheduler=wlc
  17. #persistent=600
  18. #持久链接:表示600s之内同意ip将访问同一台realserver
  19. protocol=tcp
  20. checktype=negotiate
  21. #检查类型:negotiate,表示DR发送请求,realserver恢复特定字符串才表示服务正常;connect,表示DR能够连线realserver即正常。
  22. checkport=80

启动两个节点上的heartbeat

  1. serviceheartbeatstart
  2. sshnode2--'serviceheartbeatstart'
  3. #启动两节点heartbeat服务

Ps:ldirectord同vip一样是DR节点争夺的资源,由heartbeart启动

tail -f /var/log/messages

应出现:heartbeat: info: Running /etc/ha.d/resource.d/ldirectord ldirectord.cf start

ip、ldirectord和httpd资源被主节点成功启动

或查看ipvsadm -ln

在主节点上安装httpd服务,并创建测试页

  1. yuminstall-yhttpd
  2. #安装安装web服务
  3. echo'<h2>sorry,webserviceisdown,pleasetryagainlater...</h2>'>/var/www/html/index.html
  4. #node1上添加报错提示
  5. echo'sorry,webserviceisdown,pleasetryagainlater...'>/var/www/html/index.html
  6. #node2上添加报错提示,此处字体不同以示区别

三、测试

使用浏览器访问web页面,多次刷新RS1和RS2都能访问到

ab测试wlc算法的负载均衡

关闭node1上的heartbeat模拟主节点宕机,并进行ab测试,node2上查看ipvsadm

依旧能够从备份DR节点node2访问web服务并实现负载均衡

重启node1上heartbeat,关闭RS1的httpd服务,查看ipvsadm

idirectord立即检测到,并将RS1的权值至0

继续关闭RS2的httpd服务,查看ipvsadm

RS2权值至0,本地权值至1

刷新浏览器页面

主节点node1 web服务反馈realserver宕机提示信息

此时关闭node1上heartbeat,刷新页面

备份节点node2 web服务反馈realserver宕机提示信息

至此LVS+heartbeat+ldirectord高可用负载均衡集群解决方案的实现流程已叙述完毕,以上内容在您实现过程中出现的任何问题,欢迎在此交流;并请各位高手前辈大神达人予以批评指正,谢谢!

分享到:
评论

相关推荐

    centos5.5利用LVS+Heartbeat+ldirectord 实现高可靠性Web集群

    总结来说,LVS+Heartbeat+ldirectord的高可用Web集群方案提供了一种稳定且灵活的负载均衡解决方案,通过Heartbeat实现故障切换,通过ldirectord动态调整负载策略,确保了服务的高可用性和性能优化。

    lvs+heartbeat配置资料

    总的来说,LVS+Heartbeat提供了高可用的负载均衡解决方案,通过合理的配置和维护,可以有效地提升系统的稳定性和可靠性。理解并熟练掌握其配置和工作原理,对于运维人员来说至关重要,能为业务的连续运行提供坚实的...

    使用LVS+heartbeat构建高可用web集群

    其中,LVS(Linux Virtual Server)结合Heartbeat是一种常见的高可用解决方案,它能够有效地提升Web服务的稳定性和负载均衡能力。本文将详细介绍如何使用LVS与Heartbeat构建高可用Web集群,并提供实际操作步骤和注意...

    负载均衡 lvs heartbeat ldirectord

    在本场景中,我们将讨论LVS(Linux Virtual Server)结合Heartbeat和Ldirectord实现的软件负载均衡解决方案。 LVS(Linux Virtual Server)是基于Linux操作系统的一种开源负载均衡解决方案。它通过IP层或传输层的...

    heartbeat +mysql master +ldirectord构建高可用的MYSQL主主复制

    至此,基于Heartbeat与Ldirectord的MySQL AA复制环境已搭建完成,实现了高可用性和负载均衡。这种配置不仅能够确保数据的一致性和完整性,还能够在故障发生时快速恢复服务,大大提高了业务系统的稳定性和可靠性。

    linux集群应用实战

    第20-21讲 通过LVS+Keepalived搭建高可用的负载均衡集群系统 课程目标: 熟练掌握lvs的安装方式以及基于dr/tun模式的配置方式 安装lvs管理软件ipvs ipvsadm的用法 lvs在负载调度器上的配置 通过ipvsadm命令行方式...

    LVS集群配置[归纳].pdf

    LVS集群配置是指使用Linux虚拟服务器(LVS)实现负载均衡和高可用性集群的配置。该配置主要包括三个部分:负载均衡器、Web服务器和存储器。负载均衡器使用LVS来实现负载均衡,Web服务器使用Linux操作系统,存储器...

    LVS的应用实例LVS的应用实例LVS的应用实例

    为了提高网站的访问速度和稳定性,IT运维团队决定采用LVS+Heartbeat的方案来构建一个高可用的负载均衡集群。 **解决方案概述**:通过部署LVS+Heartbeat集群,可以有效分散用户的访问请求,提高网站的并发处理能力,...

    RHEL5上用LVS和heartbeat实现squid反向代理的高可用性

    通过结合LVS和Heartbeat技术,可以实现负载均衡和服务的高可用性,确保即使在单个节点出现故障的情况下,整体服务仍能正常运行。 #### 实验拓扑结构 实验设计了一个简单的拓扑结构,包括两个Squid节点(Node1和...

    RHEL5.3-LVS-high-available-cluster.rar_cluster_heartbeat_rhel 5

    采用RHEL5.3设计的lvs+heartbeat+ldirectord的集群 主要考虑的RHEL5.3中的不同特点

    LVS高可用web负载均衡配置手册.docx

    本实验旨在构建一个基于LVS(Linux Virtual Server)的高可用Web负载均衡集群。该集群将采用Heartbeat进行状态监控和平滑冗余,利用Ldirectord实现容错机制以提高系统的整体可用性。其中: - **LVS**:负责流量分发...

    heartbeat集群配置

    4. **LVS(Linux Virtual Server)**: LVS是一种开源的负载均衡解决方案,它提供了三种技术:VS/DR(Direct Routing)、VS/NAT(Network Address Translation)和VS/TUN(Tunneling)。此外,LVS支持八种调度算法,如...

    LVS之HeartBeat原理讲解与实例配置

    - Ldirectord监控LVS负载均衡集群中服务节点的状态,故障时将请求转移到健康节点。 2. Heartbeat的原理 - CCM(集群成员一致性管理模块):确保集群内的节点状态同步,处理节点加入、离开和故障的情况,调整资源...

    Heartbeat+DRBD+MySQL高可用架构方案与实施过程细节

    ### Heartbeat+DRBD+MySQL高可用架构方案与实施过程细节 #### 互联网公司从初期到后期的数据库架构拓展 随着互联网公司的成长和发展,数据库架构也需要不断地调整和优化以满足不断增长的需求。从最初的单一服务器...

    Centos6.5搭建集群环境

    LVS(Linux Virtual Server)是一种开源的负载均衡解决方案,由章文嵩博士发起。从Linux 2.4内核开始,LVS已成为标准内核的一部分,无需额外编译即可使用。LVS的主要目标是构建高性能、高可用的服务器群集,通过低...

    LVS搭建高可用性Web负载均衡服务器.doc

    Linux Virtual Server(LVS)是一种高效且可靠的负载均衡技术,常用于构建高性能、高可用性的Web服务集群。通过LVS,可以将客户端请求分配到后端的多台Web服务器,从而提高系统的处理能力和容错能力。 **系统需求与...

    LVS集群技术

    本文档将详细介绍如何使用Red Hat AS 3.x、LVS、Linux-HA及Ldirectord来构建一个高可用的负载均衡集群系统。 - **架构设计**:集群系统通常由LoadBalancer、Backup Server和Real Server组成。LoadBalancer负责接收...

    Linux服务器集群详细配置【简介+分类+配置】.docx

    在Linux环境中,构建服务器集群可以实现负载均衡、高可用性和高性能计算等多种功能。 集群主要分为两大类:同构集群和异构集群。同构集群由体系结构相同的计算机组成,而异构集群则包含不同体系结构的计算机。根据...

Global site tag (gtag.js) - Google Analytics