linux进阶之旅(三)& heartbeat实现高可用
来源:互联网 发布:淘宝上好看的卫衣店 编辑:程序博客网 时间:2024/06/06 03:00
概念
Linux-HA的全称是High-Availability Linux,它是一个开源项目,这个开源项目的目标是:通过社区开发者的共同努力,提供一个增强linux可靠性(reliability)、可用性(availability)和可服务性(serviceability)(RAS)的群集解决方案。其中Heartbeat就是Linux-HA项目中的一个组件,也是目前开源HA项目中最成功的一个例子,它提供了所有 HA 软件所需要的基本功能,比如心跳检测和资源接管、监测群集中的系统服务、在群集中的节点间转移共享 IP 地址的所有者等
自1999年开始到现在,Heartbeat在行业内得到了广泛的应用,也发行了很多的版本,可以从Linux-HA的官方网站http://www.linux-ha.org下载到Heartbeat的最新版本。
原理:
heartbeat(Linux-HA)的工作原理:heartbeat最核心的包括两个部分,心跳监测部分和资源接管部分,心跳监测可以通过网络链路和串口进行,而且支持冗 余链路,它们之间相互发送报文来告诉对方自己当前的状态,如果在指定的时间内未收到对方发送的报文,那么就认为对方失效,这时需启动资源接管模块来接管运 行在对方主机上的资源或者服务。
注意
- Heartbeat仅仅是个HA软件,它仅能完成心跳监控和资源接管,不会监视它控制的资源或应用程序,要监控资源和应用程序是否运行正常,必须使用第三方的插件,例如ipfail、Mon、Ldirector等。
比如其中 Ldirector是一个监控集群服务节点运行状态的插件。Ldirector如果监控到集群节点中某个服务出现故障,就屏蔽此节点的对外连接功能,同时将后续请求转移到正常的节点提供服务,这个插件经常用在LVS负载均衡集群中。
搭建HeartBeat
一、基础环境的设置
1、准备四台服务器
2、各服务器IP分配:
3、两台heartbeat服务器的Yum源配置:
4、软件包安装:
heartbeat-3.0.4-2.el6.x86_64.rpm heartbeat-libs-3.0.4-2.el6.x86_64.rpmheartbeat-devel-3.0.4-2.el6.x86_64.rpm ldirectord-3.9.5-3.1.x86_64.rpm
5、文件的移动:
cd /usr/share/doc/heartbeat-3.0.4cp ha.cf haresources authkeys /etc/ha.dcd /usr/share/doc/ldirectord-3.9.5cp ldirectord.cf /etc/ha.d
二、首先,搭建Heartbeat服务器
(注 :两台服务器的配置完全相同)
1、主配置文件(/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 通信 , 取默认值bcast eth0 ##采用 udp 广播播来通知心跳auto_failback on ##当主节点恢复后,是否自动切回watchdog /dev/watchdog ##这里有一个需要注意的点在下面讲解node server1 ##主节点名称node server2 ##副节点名称,注意顺序ping 172.25.77.250 ##测试连通性,可以设置为本地网关,ping 的时候时要手动去测试连通性,和下面的ping一个ip组只能开启一个,要放活着的地址respawn hacluster /usr/lib64/heartbeat/ipfail ##注意是lib64,因为使用的是64位系统apiauth ipfail gid=haclient uid=hacluster
有关watchdog出现的问题
对于操作系统自身出现的问题,Heartbeat也无法监控,如果主节点操作系统挂起,一方面可能导致服务中断,另一方面由于主节点资源无法释放,而备份节点却接管了主节点的资源,此时就发生了两个节点同时争用一个资源的状况。针对这个问题,就需要在linux内核中启用一个叫watchdog的模块,watchdog是一个Linux内核模块,它通过定时向/dev/watchdog设备文件执行写操作,从而确定系统是否正常运行,如果watchdog认为内核挂起,就会重新启动系统,进而释放节点资源。在linux中完成watchdog功能的软件叫softdog,softdog维护一个内部计时器,此计时器在一个进程写入/dev/watchdog设备文件时更新,如果softdog没有看到进程写入/dev/watchdog文件,就认为内核可能出了故障。watchdog超时周期默认是一分钟,可以通过将watchdog集成到Heartbeat中,从而通过Heartbeat来监控系统是否正常运行。
2、资源文件(/etc/ha.d/haresources):
最顶行添加:server1 IPaddr::172.25.77.200/24/eth0 ldirectord httpd//高可用配置,书写的就是和顺序就是启动配置 ip后面的是脚本的名称
3、认证文件(/etc/ha.d/authkeys)
注: 更改之后将文件的权限一定要设置为 600,这也是文件中明确说明的
auth 1 1 crc //基本的crc加密#2 sha1 HI!#3 md5 Hello! //md5算法加密,后面跟的就是密码,也就是要加密的字符
4、配置 (/etc/ha.d/ldirectord.cf) :
5、配置 ip_forward
vim /etc/sysctl.confnet.ipv4.ip_forward = 1sysctl -p
6、分别在主备心跳上启动 heartbeat 服务:
service heartbeat start //启动heartbeat服务//注意 : heartbeat 做好之后,将之前的服务和vip都关闭,然后启动,主机没问题再启动备机
7、分别在 realserver 上执行以下命令:配置 arp 机制,添加VIP
vi /etc/sysctl.confnet.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2net.ipv4.conf.lo.arp_announce = 2sysctl -pifconfig eth0:0 172.25.77.200 netmask 255.255.255.255 uproute add -host 172.25.77.200 dev eth0:0
三、在两个真实apache主机(Realserver)中添加监控页面:
- 1、安装httpd服务
- 2、编写网页主界面
- server3:
echo “ hostname -server 3 ” >> /var/www/html/index.html
- server4:
echo “ <h1>hostname</h1> ” >> /var/www/html/index.html
- server3:
- 3、开启apache服务:
service httpd start
四、测试:
主机上访问:http://172.25.77.200 :
首先显示的是server3的发布页面:
刷新网页之后,显示server4的发布页面:
//看到页面在两个 realserver 上切换表示成功!
server1,2的测试是将server1挂掉,然后发现vip会自动添加到server2上,当server1重启开启时,vip又会回到server2(因为文件中支持了回切,并以server1为主),测试同上,就不再演示
- 服务每次更改节点时,查看/var/log/messages时,可以发现 …/usr/libexec/heartbeat/send_arp ,这就是在发送arp数据,相等于通知更新了vip
当然这只是最基本的heartbeat的搭建,作为一个功能非常强大的软件,后面我们还会加上lvs,网络存储drbd,mysql数据库
共同实现一套完整的集群架构。
- linux进阶之旅(三)& heartbeat实现高可用
- Linux之Heartbeat实现服务器的高可用
- Linux 高可用(HA)集群之Heartbeat详解
- Linux高可用--heartbeat
- linux高可用集群heartbeat实现http的高可用
- Linux运维进阶-文档总结-高可用集群之heartbeat和lvs
- heartbeat实现Nginx高可用
- heartbeat实现Nginx高可用
- Linux高可用 Heartbeat安装
- heartbeat高可用之watchdog
- 高可用集群之heartbeat
- 集群高可用之heartbeat
- heartbeat -在Linux上实现高可用服务
- heartbeat实现MySQL双机高可用
- heartbeat实现MySQL双机高可用
- Heartbeat+Haproxy实现负载均衡高可用
- HeartBeat 实现 HAproxy 双机高可用
- Heartbeat+Haproxy实现负载均衡高可用
- linux进阶之旅(二)& LVS
- java---Thread(Account)
- UVA 10474 【排序与查找】
- Centos6.5安装epel
- 输入一个大数将其转化为二进制输出
- linux进阶之旅(三)& heartbeat实现高可用
- C 语言运算符优先级(记忆口诀)
- Servlet 服务器端编程
- super,this引用构造函数
- 9.26日常总结
- MySQL基本操作语法
- 欢迎使用CSDN-markdown编辑器
- 数据结构实验之栈与队列九:行编辑器
- dubbo 基本概念