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

[经验分享] lvs和HA的高可用性

[复制链接]

尚未签到

发表于 2019-1-3 13:10:19 | 显示全部楼层 |阅读模式




Heartbeat实现Lvs高可用和HA高可用

效果图如下





1heartbeat的介绍
Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能。下面描述了 heartbeat 模块的可靠消息通信机制,并对其实现原理做了一些介绍
heartbeat Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未受到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。[1]
高可用集群是指一组通过硬件和软件连接起来的独立计算机,它们在用户面前表现为一个单一系统,在这样的一组计算机系统内部的一个或者多个节点停止工作,服务会从故障节点切换到正常工作的节点上运行,不会引起服务中断。从这个定义可以看出,集群必须检测节点和服务何时失效,何时恢复为可用。这个任务通常由一组被称为心跳的代码完成。在Linux-HA里这个功能由一个叫做heartbeat的程序完成。

消息通信的模型
 Heartbeat包括以下几个组件:
heartbeat – 节点间通信校验模块   
CRM - 集群资源管理模块  
CCM - 维护集群成员的一致性  
LRM - 本地资源管理模块  
StonithDaemon - 提供节点重启服务  
logd - 非阻塞的日志记录  
apphbd - 提供应用程序级的看门狗计时器
  Recovery Manager - 应用故障恢复
2、实现web服务器的高可用性


1)基本的网卡配置参数略
[root@hua1 ~]# vim /etc/sysconfig/network (改主机名)
[root@hua1 ~]# hostname hua1.a.com (使主机名立即生效)
[root@hua1 ~]# vim /etc/hosts (配置dns指向)
192.168.145.99      hua1.a.com
192.168.145.100     hua2.a.com
2)实现heartbeat高可用需要一些软件实现,需要安装上去
[root@hua2 ~]# mount /dev/cdrom /mnt/cdrom/
[root@hua1 ~]# yum localinstall heartbeat-2.1.4-9.el5.i386.rpm heartbeat-pils-2.1.4-10.el5.i386.rpm heartbeat-stonith-2.1.4-10.el5.i386.rpm perl-MailTools-1.77-1.el5.noarch.rpm libnet-1.1.4-3.el5.i386.rpm --nogpgchecklocalinstall本地安装,--nogpgcheck,无签名检测)

[root@hua1 ~]# rpm -pql heartbeat-2.1.4-9.el5.i386.rpm (查看解压后的文件夹有那些。)
[root@hua1 ~]# cd /etc/ha.d/ (这个目录是heartbeat的主配置目录)
[root@hua1 ha.d]# cd /usr/share/doc/heartbeat-2.1.4/ (安装后的配置文件)
3[root@hua1 heartbeat-2.1.4]# cp ha.cf authkeys haresources /etc/ha.d/ (把配置文件拷贝过来)
4[root@hua1 ha.d]# vim ha.cf (编辑这个心跳文件参数,编辑如下)
95 bcast   eth1   (心跳线的网卡用广播形式)
213 node    hua1.a.com  
214 node    hua2.a.com (两个节点的地址)
5[root@hua1 ~]# dd if=/dev/random bs=512 count=1 |openssl md5 (随机产生一个参数用md5加密)
0+1 records in
0+1 records out
128 bytes (128 B) copied, 0.000308478 seconds, 415 kB/s
9bf2f23aae3a63c16ea681295ffd7666
6[root@hua1 ha.d]# vim authkeys (编辑认证文件)
auth 3
3 md5 9bf2f23aae3a63c16ea681295ffd7666
[root@hua1 ha.d]# chmod 600 authkeys (改变它的权限为600,不然重启不成功)
7[root@hua1 ha.d]# vim haresources (编辑资源文件)
45 hua1.a.com 192.168.145.101/24/eth0 httpd
8[root@hua1 ha.d]# cp /etc/init.d/httpd /etc/ha.d/resource.d/ (把httpd的服务器脚本拷贝过来,因为http已经不需要自己启动了,它受heartbeat的控制)
[root@hua2 ha.d]# service httpd status (保证它是关闭的)
httpd 已停
9)编辑apache的网页,两台都要编辑
[root@hua2 ha.d]# cd /var/www/html/
[root@hua2 html]# ll
总计 4
-rw-r--r-- 1 root root 5 12-27 19:19 index.html
[root@hua2 html]# more index.html
hua3
[root@hua1 ~]# cd /var/www/html/
[root@hua1 html]# ll
total 4
-rw-r--r-- 1 root root 4 Dec 27 20:01 index.html
[root@hua1 html]# more index.html
123
[root@hua1 heartbeat]# service httpd stop
[root@hua1 heartbeat]# chkconfig httpd off
9)现在可以启用heartbeat的服务,观察日志
[root@hua1 ~]# tail -f /var/log/messages



[root@hua1 html]# service httpd status (这时http服务已经启动了)
httpd (pid  5021) is running...
[root@hua1 html]# ifconfig (这时查看端口发现已经把vip地址资源挣用过来了)


10)另一台启动失败,主要原因是没改权限


[root@hua2 html]# chmod 600 /etc/ha.d/authkeys
[root@hua2 html]# service heartbeat start
logd is already running
Starting High-Availability services:
2012/12/29_02:19:34 INFO:  Resource is stopped
                                                           [确定]
11)模式失效
[root@hua1 ha.d]# cd /usr/lib/heartbeat/     (/usr/share/heartbeat
这两个目录都可以模拟
[root@hua1 heartbeat]# ./hb_standby (模拟断掉)
[root@hua2 html]# watch -n 1 "service httpd status" (动态观察http的状态)
[root@hua2 html]# ifconfig (查看地址已经没有了,跑到另一台机器上去了)

[root@hua1 heartbeat]# ./hb_takeover (模拟有好了,能把资源又征用过来了)
[root@hua1 heartbeat]# pwd
/usr/lib/heartbeat





3、实现director的高可用性


1)配置基本的网卡,还有一个虚拟的vip网卡地址,掩码是255.255.255.255(两台都一样)



[root@mail ~]# route -n
2)root@mail ~]# route add -host 192.168.145.101 dev lo:0 (添加一条特殊路由,指向vip的地址)
3)原来做的基础上把所做过的服务停掉
[root@hua1 ~]# service heartbeat stop
                                                           [确定]
[root@mail html]# chkconfig --list httpd
httpd          0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
[root@mail html]# service httpd stop
停止 httpd:                                               [确定]
4)现在是控制ipvsadm的服务了
[root@hua2 ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo
[root@hua2 ~]# cd /mnt/cdrom/Cluster
[root@hua2 Cluster]# yum install ipvsadm-1.24-10.i386.rpm

[root@hua1 ~]# cp /etc/init.d/ipvsadm /etc/ha.d/resource.d/
[root@hua1 ~]# ipvsadm -C
[root@hua1 ~]# ipvsadm -A -t 192.168.145.101 -s rr
Zero port specified for non-persistent service
[root@hua1 ~]# ipvsadm -A -t 192.168.145.101:80 -s rr
[root@hua1 ~]# ipvsadm -a -t 192.168.145.101:80 -r 192.168.145.200 -g
[root@hua1 ~]# ipvsadm -a -t 192.168.145.101:80 -r 192.168.145.201 -g
[root@hua1 ~]# ipvsadm -ln
[root@hua1 ~]# service ipvsadm save
scp hua1.a.com:/etc/sysconfig/ipvsadm /etc/sysconfig/ipvsadm (把一台的配置拷贝到另一个服务器上了)
4、实现动态的转发规则表

意义:就是当后方的所管理的服务器有异常时,就能被前方的管理集群所察觉到,并作出相应的改变。
1)需要一个软件包,安装上去。
[root@hua1 ~]# yum localinstall heartbeat-ldirectord-2.1.4-9.el5.i386.rpm --nogpgcheck
[root@hua1 ~]# rpm -pql heartbeat-ldirectord-2.1.4-9.el5.i386.rpm
2[root@hua1 ~]# cp /etc/init.d/ldirectord /etc/ha.d/resource.d/ (把要管理的服务器脚本拷贝过去)
3[root@hua1 ~]# cp /usr/share/doc/heartbeat-ldirectord-2.1.4/ldirectord.cf /etc/ha.d/
4[root@hua1 ~]# vim /etc/ha.d/ldirectord.cf


5[root@hua1 ~]# vim /etc/ha.d/haresources
hua1.a.com 192.168.145.101/24/eth0 ldirectord::ldirectord.cf
6)两台的web服务器要根据ldirector上的东西编写测试页面。
[root@hua1 ~]# cd /var/www/html/
[root@hua1 html]# echo "yes" >.hua.htm

7)做完后不用重启,能够自动加载,这时查看规则已经能查看到了,因为这时检测不到后方的web工作


8)然后开启一个web的服务就能发现权值变成了1.
[root@mail html]# service httpd start



9)如何在编辑/etc/ha.d/ldirectord.cf   这个文件时,把quiescent (静默模式)改为了no,如何发现后方的检测页面不能检测到则会把规则直接删掉
[root@mail html]# service httpd stop (把一台的服务停掉,然后就发现,规则没有了)








运维网声明 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-659017-1-1.html 上篇帖子: lvs arp问题配置误区 下篇帖子: LVS DR模式问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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