设为首页 收藏本站
查看: 569|回复: 0

[经验分享] 整合heartbeat+lvs

[复制链接]
YunVN网友  发表于 2019-1-3 08:26:20 |阅读模式
  集群技术主要分为三大类:
高可用性(High Available Cluster),例:Linux-HA
负载均衡(Load balancing Cluster),例:LVS、MOSIX
高性能计算(High Performance Computing),例:Beowulf
我们这里使用 RHEL6.0,LVS,Linux-HA,Ldirectord,构造一个高可用的负载均衡集群系统。

Load Balancer(负载均衡器)
Load Balancer 是整个集群系统的前端,负责把客户请求转发到 Real Server 上。
Backup 是备份 Load Balancer,当 Load Balancer 不可用时接替它,成为实际的 Load Balancer。
Load Balancer 通过 Ldirectord 监测各 Real Server 的健康状况。在 Real Server 不可用时把它从群中剔除,恢复时重新加入。
Virtual IP:192.168.0.147

Load Balancer: eth0:192.168.0.46 eth1:10.131.133.46(供心跳使用) 需要有解析

Load Balancer: eth0:192.168.0.94 eth1:10.131.133.94(供心跳使用) 需要有解析
Real Server 1:192.168.0.64


Real Server 2:192.168.0.94


IPVS
IPVS 是 LVS 集群系统的核心软件,它的主要作用是:安装在 Load Balancer 上,把发往 Virtual IP 的请求转发到 Real Server 上。
IPVS 的负载均衡机制有三种,这里使用 IP Tunneling 机制:
· Virtual Server via NAT
· Virtual Server via IP Tunneling
· Virtual Server via Direct Routing
IPVS 的负载调度算法有十种:·
轮叫(Round Robin)
加权轮叫(Weighted Round Robin)
最少链接(Least Connections)
加权最少链接(Weighted Least Connections)
基于局部性的最少链接(Locality-Based Least Connections)
带复制的基于局部性最少链接(Locality-Based Least Connections with
Replication)
目标地址散列(Destination Hashing )
源地址散列(Source Hashing)
最短期望延迟(Shortest Expected Delay)
无须队列等待(Never Queue)
这里负载调度算法的意思请具体参考:http://www.linuxvirtualserver.org/zh/lvs4.html
注意事项:
1. Kernel,IPVS,IPVSadm,ARP hidden 之间的版本必须对应。
2. 自己编译内核时,从 http://www.kernel.org/下载标准内核源文件,不要使用发行版
的内核源文件。
3. Kernel 2.4.28 和 2.6.10 及以上版本已内置 IPVS,RHEL5.2 在其内核里编译了
IPVS。
4. ARP hidden 可以用 arp_ignore/arp_announce 或者 arptables 代替


HeartBeat
HeartBeat 是 Linux-HA 的高可用性集群软件,它的主要作用是:
安装在 Load Balancer 和 Backup 上,运行于 active/standby 模式。
当 Load Balancer 失效时,Backup 自动激活,成为实际的 Load Balancer。
切换到 active 模式时,按顺序启动 Virtual IP、IPVS 和 Ldirectord。
切换到 standby 模式时,按顺序关闭 Ldirectord、IPVS 和 Virtual IP。


ldirectord
安装 HeartBeat 过程中,已经自动安装了 Ldirectord,它的作用是:
监测 Real Server,当 Real Server 失效时,把它从 Load Balancer 列表中删除,恢复时重新添加。



安装的软件包:
heartbeat-libs-3.0.4-1.el6.x86_64.rpm
ldirectord-3.9.2-1.2.x86_64.rpm
heartbeat-3.0.4-1.el6.x86_64.rpm  
heartbeat-devel-3.0.4-1.el6.x86_64.rpm  
(上面四个使用yum localinstall *.rpm --nogpgcheck -y 安装)
ipvsadm-1.25-9.el6.x86_64 (仅Load Balancer和backup需要安装)
perl-IO-Socket-INET6(ldirectord)
openssh-clients.x86_64 (提供scp命令)

主配置文件(/etc/ha.d/ha.cf):
debugfile /var/log/ha-debug
调试日志文件文件,取默认值
logfile /var/log/ha-log
系统运行日志文件,取默认值
logfacility local0
日志等级,取默认值
keepalive 2
心跳频率,自己设定。1:表示 1 秒;200ms:表示 200 毫秒
deadtime 30
节点死亡时间阀值,就是从节点在过了 30 后还没有收到心跳就认为主节点死亡,自己设定
warntime 10
发出警告时间,自己设定
initdead 120
守护进程首次启动后应该等待 120 秒后再启动主服务器上的资源
udpport 694
心跳信息传递的 udp 端口,使用端口 694 进行 bcast 和 ucast 通信,取默认值
#baud 19200
串口波特率,与 serial 一起使用。
#serial /dev/ttyS0
采用串口来传递心跳信息。
bcast eth1
采用 udp 广播播来通知心跳
#ucast eth1 10.0.0.3
采用网卡 eth1 的 udp 单播来通知心跳,eth1 的 IP
#mcast eth0 225.0.0.1 694 1 0
采用 udp 多播播来通知心跳
auto_failback on
当主节点恢复后,是否自动切回
#stonith baytech /etc/ha.d/conf/stonith.baytech
stonith 用来保证共享存储环境中的数据完整性
watchdog /dev/watchdog
watchdog 能让系统在出现故障 1 分钟后重启该机器,这个功能可以帮助服务器在确实停止心
跳后能够重新恢复心跳。 如果使用该特性,修改系统中/etc/modprobe.conf, 添加如下行
options softdog nowayout=0
这样在系统启动的时候,在内核中装入"softdog"内核模块,用来生成实际的设备文件
/dev/watchdog
node station3.example.com
主节点名称,与 uname –n 保持一致。排在第一的默认为主节点,所以不要搞措顺序
node station4.example.com
副节点名称,与 uname –n 保持一致
ping 192.168.0.254
respawn hacluster /usr/lib/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster
默认 heartbeat 并不检测除本身之外的其他任何服务,也不检测网络状况。
所以当网络中断时,并不会进行 Load Balancer 和 Backup 之间的切换。
可以通过 ipfail 插件,设置'ping nodes'来解决这一问题,但不能使用一个集群节点作为
ping 的节点。

资源文件(/etc/ha.d/haresources):
station3.example.com IPaddr::192.168.0.200/24/eth0 ldirectord httpd
这个文件中定义了实现集群所需的各个软件的启动脚本,这些脚本必须放在/etc/init.d 或者/etc/ha.d/resource.d 目录里 IPaddr 的作用是启动 Virutal IP,它是 HeartBeart 自带的一个
脚本;ldirectord 的作用是启动 ldirectord 监控程序,它会使 ldirectord.cf 中定义的 lvs 生效,
并监听其健康状;httpd 是 apache 服务的启动脚本。

认证文件(/etc/ha.d/authkeys),文件的权限必须是 600:
auth 3
#1 crc
#2 sha1 HI!
3 md5 Hello!

配置(/etc/ha.d/ldirectord.cf):
checktimeout=3
checkinterval=1
autoreload=yes
logfile="/var/log/ldirectord.log"
quiescent=no
virtual=192.168.0.147:80
real=192.168.0.64:80 gate
real=192.168.0.57:80 gate
fallback=127.0.0.1:80 gate  #指当所有的realserver都故障后,为保证访问,启动Load Balancer 上的服务
service=http
scheduler=rr
protocol=tcp
checktype=negotiate
checkport=80
#request="index.html"
#receive="Test Page"
#virtualhost=www.x.y.z 注释掉这三行


以上是 desktop46.example.com 主心跳上的配置,
scp haresources  ha.cf  ldirectord.cf  authkeys  desktop94.example.com:/etc/ha.d/

分别在主备心跳上启动 heartbeat 服务:
service heartbeat start
分别查看日志,是否有报错,服务正常的话 Real Server 1多了个 eth0:0 接口,若没有出现,
请等待一会,再使用 ifconfig 查看,若还是没有 eth0:0 接口出现,检查配置文件是否正确!
若停止 Real Server 1 上的 heartbeat 服务,则 Real Server 2 会接管,并产生一个 eth0:0 接口!









运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-658802-1-1.html 上篇帖子: 集群 之 LVS + Heartbeat 下篇帖子: 负载均衡(LVS)DR+(HA)heartbeat主备模式配置案例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表