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

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

[复制链接]

尚未签到

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

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

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


  演示环境:
  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 如下图:
  
  修改 lvs1,lvs2主机的hosts,# vim /etc/hosts,如下图:  
  注:里面依次填入 IP,主机名,主机名短格式名称
  
  对ping下短格式名称是否能ping通


  

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

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

  

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

  
  2)yum 安装相关依赖包
  
  3)安装heartbeat rpm包
  
  
  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固定端口)
  
  

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

  

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

  
相关配置参数的讲解(版权,马哥)
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配置
  
  注:这里的加密方式是随机的。(选用的方式和使用的方式必须保持一致)
# openssl rand -hex 8  //生成8位密钥,如上图所示  5)修改 haresources 文件

  
  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主机也启动)
  
  查看启动状态:
  
  同时查看80端口也已经自动启动
  
  9)打开浏览器测试网页
  
  

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

  OK,就是这样~


附件:http://down.运维网.com/data/2365594


运维网声明 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-660343-1-1.html 上篇帖子: Centos5.5+heartbeat+drbd+oracle10g双机配置 下篇帖子: heartbeat 本机ip与网关不在同一网段遇到的问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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