基于heartbeat v1+ldirectord实现LVS集群高可用

基于heartbeat v1+ldirectord实现LVS集群高可用,第1张

基于heartbeatv1+ldirectord实现LVS集群高可用

前言

高可用性集群,简称HA集群,是指旨在减少服务中断时间的服务器集群技术。从上面可以看出,LVS集群本身无法实现高可用性。例如,Director服务器无法检测真实服务器的运行状况。一旦一个或所有真实服务器关闭,Director服务器将继续转发请求,这将使站点无法访问。同样,如果Director服务器停机,站点就更不可能正常运行。本文将阐述如何基于heartbeatv1实现LVS集群的高可用性。

心跳

简介

Heartbeat是Linux-HA项目的一个组件。自1999年以来,已经发布了许多版本。它是开源Linux-HA项目最成功的例子,在业界得到了广泛的应用。

工作原理

心跳包括两个核心部分:心跳监控部分和资源接管部分。可以通过网络链路和串口进行心跳监测,支持冗余链路。他们互相发信息告诉对方自己的现状。如果在规定时间内没有收到对方发送的消息,则认为对方无效。此时,需要启动资源接管模块来接管其他主机上运行的资源或服务。

基于心跳v1的LVS集群的高可用性

实验拓扑

实验环境

node1:node1.scholar.com172.16.10.123centos6.6

node2:node2.scholar.com172.16.10.124centos6.6

真实服务器1:192.168.1.10(VIP)172.16.10.125(RIP)centos6.6

真实服务器2:192.168.1.10(VIP)172.16.10.126(RIP)centos6.6

注释

配置高可用性集群的前提:(以双节点心跳为例)

①时间必须保持同步。

使用ntp服务器

②节点之间必须通过名称进行通信。

解析节点名称

/etc/主机

集群中使用的主机名是由“uname-n”表示的主机名

③平结

仅偶数节点需要。

④用于通信的ssh密钥认证

配置过程

时间同步

请保证两个节点的时间同步,这里不做详细描述。

名称解析配置

[root@node1 ~]# vim /etc/hosts 172.16.10.123   node1.scholar.com node1 172.16.10.124   node2.scholar.com node2 [root@node1 ~]# vim /etc/sysconfig/network HOSTNAME=node1.scholar.com [root@node1 ~]# uname -n node1.scholar.com #两个节点都需如上 *** 作

Ssh密钥配置

[root@node1 ~]# ssh-keygen -t rsa -P '' [root@node1 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node2 [root@node2 ~]# ssh-keygen -t rsa -P '' [root@node2 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@node1 [root@node1 ~]# date; ssh node2 'date'  #测试 Sun Jun  7 17:46:03 CST 2015 Sun Jun  7 17:46:03 CST 2015

安装所需的软件包。

#解决依赖关系 [root@node1 ~]# yum install perl-TimeDate net-snmp-libs libnet PyXML -y #需epel源支持 [root@node1 ~]# cd heartbeat2 [root@node1 heartbeat2]# ls heartbeat-2.1.4-12.el6.x86_64.rpm             heartbeat-pils-2.1.4-12.el6.x86_64.rpm heartbeat-gui-2.1.4-12.el6.x86_64.rpm         heartbeat-stonith-2.1.4-12.el6.x86_64.rpm heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm [root@node1 heartbeat2]# rpm -ivh heartbeat-2.1.4-12.el6.x86_64.rpm heartbeat-pils-2.1.4-12.el6.x86_64.rpm heartbeat-stonith-2.1.4-12.el6.x86_64.rpm [root@node1 heartbeat2]# yum install heartbeat-ldirectord-2.1.4-12.el6.x86_64.rpm -y #两个节点都执行以上 *** 作

配置心跳

准备配置文件

算法密钥

[root@node1 ~]# openssl rand -hex 8 4d8fd6cb49d2047b [root@node1 ~]# vim /etc/ha.d/authkeys auth 2 2 sha1 4d8fd6cb49d2047b

主配置文件

[root@node1 ~]# grep -v "#" /etc/ha.d/ha.cf |grep -v "^$" logfile/var/log/ha-log  #日志存放位置 keepalive 2              #指定心跳使用间隔时间 deadtime 30              #指定备用节点接管主节点服务资源超时时间 warntime 10              #指定心跳延迟的时间 initdead 120             #解决网络启动延时 udpport694              #设置广播通信端口 mcast eth0 225.0.25.1 694 1 0 #定义广播地址 auto_failback on              #定义当主节点恢复后,是否将服务自动切回 nodenode1.scholar.com     #主节点 nodenode2.scholar.com     #备用节点 ping 172.16.0.1               #仲裁设备

配置资源管理器

[root@node1 ~]# vim /etc/ha.d/haresources  node1.scholar.com 192.168.1.10/32/eth0/192.168.1.10 ldirectord::/etc/ha.d/ldirectord.cf

将配置文件传递给备用节点

配置ldirectord

准备配置文件并配置

[root@node1 ~]# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/ [root@node1 ~]# grep -v ^#  /etc/ha.d/ldirectord.cf checktimeout=3        #探测超时时间 checkinterval=1       #探测间隔时间 autoreload=yes        #修改配置文件,无需重启服务即可重载 quiescent=yes         #real server 宕机后从lvs列表中删除,恢复后自动添加进列表 virtual=192.168.1.10:80     #VIP real=172.16.10.125:80 gate    #real server real=172.16.10.126:80 gate    #real server  fallback=127.0.0.1:80 gate    #如果RS节点都宕机,则启用本地环回口地址 service=http                  #基于http协议探测 request=".health.html"        #探测文件 receive="ok"                  #探测内容,判断RS是否存活 scheduler=rr                  #调度算法 #persistent=600 #netmask=255.255.255.255

将配置文件发送到备用节点,禁止每个节点的ldirectord启动

准备后备文件

RS设置

#两个RS各进行如下配置

配置内核参数

准备健康检测文件和站点文件。

测试页

开始心跳

检查资源是否有效。

高可用性测试

刷新页面

模拟RS2停机时间

#service httpd stop

不管你怎么刷新页面,都是RS1

接下来,让我们也停止RS1。

返回回退页面。

让我们停止节点1,看看节点2是否可以接管资源。

[root@node1 ~]# service heartbeat stop


如果成功接管资源,上述访问将不受影响。当然,如果node1的资源会在下一次启动时再次被抢,我就不在这里演示了。

基于心跳v1的LVS高中的实现可以在这里完成。

结尾

好了,以上就是基于heartbeatv1实现LVS高可用的全部内容。整个过程还挺好玩的。如果在配置过程中遇到任何问题,您可以留言。下一部分将解释基于heartbeatv2的高可用性集群。有兴趣可以继续关注。以上仅供个人学习。如有错漏,请勿喷~~~

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/782456.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-04
下一篇 2022-05-04

发表评论

登录后才能评论

评论列表(0条)

保存