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

[经验分享] HA集群之Heartbeat v1 高可用安装讲解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-4-15 10:23:56 | 显示全部楼层 |阅读模式
什么是高可用集群
       高可用集群是指一组通过硬件和软件连接起来的独立计算机,它们在用户面前表现为一个单一系统,在这样的一组计算机系统内部的一个或者多个节点停止工作,服务会从故障节点切换到正常工作的节点上运行,不会引起服务中断。从这个定义可以看出,集群必须检测节点和服务何时失效,何时恢复为可用。这个任务通常由一组被称为“心跳”的代码完成。在Linux-HA里这个功能由一个叫做heartbeat的程序完成。


Heartbeat简介
Heartbeat是Linux-HA工程的一个组件,自1999年开始到现在,发布了众多版本,是目前开源Linux-HA项目最成功的一个例子,在行业内得到了广泛的应用,这里分析的是2007年1月18日发布的版本2.0.8。
       随着Linux在关键行业应用的逐渐增多,它必将提供一些原来由IBM和SUN这样的大型商业公司所提供的服务,这些商业公司所提供的服务都有一个关键特性,就是高可用集群。

Heartbeat 工作原理
       heartbeat (Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。
--------------------------以上部分截取自百度百科--------------------------


wKiom1UsgDjSTXsVAAFQz-liG8I769.jpg
演示环境:
CentOS6.5:
lvs1 lvs01.ssc.com eth0 10.19.166.197
lvs2 lvs02.ssc.com eth0 10.19.166.198
VIP信息:10.19.166.20
注意:主机名要一致
请 uname -n //查看自己环境的主机名,我这里的主机名lvs01.ssc.com,lvs02.ssc.com

关闭:
selinux disabled

iptables off

包组与类库:
Compatibility libraries
Development tools
Server Platform Development
注意:请提前安装好这些包和库(减少后面安装rpm包出现各种问题)

1、修改本机的hostname, # vi /etc/sysconfig/network 如下图:
wKioL1Usy_ah6UloAAA-z8t2J3o551.jpg
修改 lvs1,lvs2主机的hosts,# vim /etc/hosts,如下图:  
注:里面依次填入 IP,主机名,主机名短格式名称
wKiom1UsyFqRtCuOAAC2Cp0AdFA566.jpg
对ping下短格式名称是否能ping通
wKiom1UsyZvA9kDpAAEt8Ud6_do142.jpg
wKioL1Usyu2DejuDAAElu0BKN0c645.jpg


2、利用ssh密钥打通两台主机的链接,做为两主机的互信机制
1)生成ssh密钥
wKioL1UszxXC0LFrAAKbrLooBBQ671.jpg

2)把 lvs1 的公钥copy到 lvs2 ,把lvs2的公钥copy到lvs1,下图拿lvs1举例,总之就是双方互通;
wKiom1UszpCD5WekAABNDl2wT_E501.jpg
测试是否打通
wKiom1UszxXB1DG1AACzxoxh2p4928.jpg
3)同步两台节点服务器的系统时间(注:系统时间必须一致)(两台节点服务器都要设置)
没有ntpdate的,请先安装ntpdate,安装方式为: # yum install tnpdate -y
同步网络上的时间服务器,如国家授权中心服务器IP:210.72.145.44(注意:不过老是同步报错)
所以我这里用的是上海交大的网络中心NTP服务器的地址,202.120.2.101 (已测可用)
在crontab 里添加一条每五分钟自动执行的任务,保证两台服务器的时间与网络时间一致,这点很重要
wKiom1Us0QDD6Gg0AABWl6GeRVo521.jpg

3、安装heartbeat(我这里的包,最后放在附件打包给大家,包是马哥做的,请支持原作者,如需更多学习资料,请报名马哥教育)
注:这里只演示lvs1这台服务器,lvs2同理,只是把lvs1这些包,拷过去安装就行;
这里把我heartbeat rpm包,已经分别放在了两台测试服务器的 /opt目录下
1)安装带有libnet的epel源(这个源是我在网上找的,一并打包给各位)

wKiom1Us2kzA9XgaAABj42R2rO8281.jpg
2)yum 安装相关依赖包
wKioL1Us3b2BeswMAABrR1iHG_E379.jpg
3)安装heartbeat rpm包
wKiom1Us4Kjy_9Q4AADJwyXWz_Q129.jpg

4、组播IP地址介绍,摘自马哥文档

                组播IP地址用于标识一个IP组播组。IANA(internet assigned number authority)把D类地址空间分配给IP组播,其范围是从224.0.0.0到239.255.255.255。如下图所示(二进制表示),IP组播地址前四位均为1110八位组⑴ 八位组⑵ 八位组⑶ 八位组⑷1110
                XXXX XXXXXXXX XXXXXXXX XXXXXXXX组播组可以是永久的也可以是临时的。组播组地址中,有一部分由官方分配的,称为永久组播组。永久组播组保持不变的是它的ip地址,组中的成员构成可以发生变化。永久组播组中成员的数量都可以是任意的,甚至可以为零。那些没有保留下来供永久组播组使用的ip组播地址,可以被临时组播组利用。
                224.0.0.0~224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地址供路由协议使用。
                224.0.1.0~238.255.255.255为用户可用的组播地址(临时组地址),全网范围内有效。
                239.0.0.0~239.255.255.255为本地管理组播地址,仅在特定的本地范围内有效。常用的预留组播地址列表如下:
                224.0.0.0 基准地址(保留)
                224.0.0.1 所有主机的地址
                224.0.0.2 所有组播路由器的地址
                224.0.0.3 不分配
                224.0.0.4dvmrp(Distance Vector Multicast Routing Protocol,距离矢量组播路由协议)路由器
                224.0.0.5 ospf(Open Shortest Path First,开放最短路径优先)路由器
                224.0.0.6 ospf dr(Designated Router,指定路由器)
                224.0.0.7 st (Shared Tree,共享树)路由器
                224.0.0.8 st主机
                224.0.0.9 rip-2路由器
                224.0.0.10 Eigrp(Enhanced Interior Gateway Routing Protocol,增强网关内部路由线路协议)路由器 224.0.0.11 活动代理
                224.0.0.12 dhcp服务器/中继代理
                224.0.0.13 所有pim (Protocol Independent Multicast,协议无关组播)路由器
                224.0.0.14 rsvp (Resource Reservation Protocol,资源预留协议)封装
                224.0.0.15 所有cbt 路由器
                224.0.0.16 指定sbm(Subnetwork Bandwidth Management,子网带宽管理)
                224.0.0.17 所有sbms
                224.0.0.18 vrrp(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)
                239.255.255.255 SSDP协议使用

5、查看heartbeat默认端口(注此端口是IANA分给heartbeat固定端口)
wKioL1Us5R6w2hp6AAJVysIudag960.jpg

heartbeat v1的配置(修改这按个文件的配置信息):
        主配置文件:ha.cf
        认证密钥:authkey,其权限必须为组合其它无权访问;
        用于资源的文件:haresources


1)拷贝文件到/etc/ha.d/目录中
wKioL1Us6UHCT1BDAAKk8MbeEm8930.jpg
2)修改 authkeys 权限,# chmod 600  authkeys ,否则heartbeat无法启动
3)修改配置文件 ha.cf,我这里只启用这几项,并做了修改;

wKiom1Us6SrShbM2AADaM0QZU0k427.jpg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
相关配置参数的讲解(版权,马哥)
logfile /var/log/ha-log
#指名heartbaet的日志存放位置

#mcast eth0 225.100.90.101 694 1 0
#采用网卡eth0的Udp多播来组织心跳,一般在备用节点不止一台时使用。Bcast、ucast和mcast分别代表广播、单播和多播,是组织心跳的三种方式,任选其一即可。

auto_failback on
#用来定义当主节点恢复后,是否将服务自动切回,heartbeat的两台主机分别为主节点和备份节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给备份节点并由备份节点运行服务。在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代备份节点,如果该选项设置为off,那么当主节点恢复后,将变为备份节点,而原来的备份节点成为主节点

node lvs01.ssc.com  
#主节点主机名,可以通过命令“uname –n”查看。
node lvs02.ssc.com  
#备用节点主机名

ping 10.19.166.1
#选择ping的节点,ping 节点选择的越好,HA集群就越强壮,可以选择固定的路由器作为ping节点,但是最好不要选择集群中的成员作为ping节点,ping节点仅仅用来测试网络连接




4)修改authkeys配置
wKiom1Us7EWjnVtnAACkbv4XtyM133.jpg
注:这里的加密方式是随机的。(选用的方式和使用的方式必须保持一致)
1
# openssl rand -hex 8  //生成8位密钥,如上图所示



5)修改 haresources 文件

wKioL1Us7uDjCiYDAABRFDdqiaY273.jpg
lvs01.ssc.com //集群节点

10.19.166.20/31/eth0/10.19.255.255 //VIP地址/掩码位数/网卡/
httpd //apache启动程序,如未安装请yum install httpd -y 安装

6)拷贝lvs1 上的 ha.cf haresources authkeys  到lvs2上的/etc/ha.d/目录中


7)在apache 默认路径创建页面测试文件 index.html内容随便写,启动httpd服务,curl测试网页是否能够访问成功; (注:lvs1,lvs2 两台服务器都要设置),测试完成后,手动停止httpd服务(必须停止)。

8)启动heartbeat服务,(lvs2主机也启动)
wKioL1Us8p_hjccjAAC_LVvxils477.jpg
查看启动状态:
wKioL1Us8uvSU437AADqxvhj6vE836.jpg
同时查看80端口也已经自动启动
wKiom1Us8kGRRCvjAAEdbDnIiJ0688.jpg
9)打开浏览器测试网页
wKiom1Us8prw1sBMAABWaj1Jaz4089.jpg

我们接下来停止 lvs1的heartbeat后,我们看到已经自动转到lvs2
wKioL1Us9GTRcpb2AABZRha2omM987.jpg

OK,就是这样~
百度云附件:heartbeat.rar   


运维网声明 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-57381-1-1.html 上篇帖子: Heartbeat v2 + haresouce 实现WEB高可用 下篇帖子: linux 下heartbeat简单高可用集群搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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