学习heartbeat-05 实现web服务高可用
Posted 五光十色
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习heartbeat-05 实现web服务高可用相关的知识,希望对你有一定的参考价值。
一、环境介绍
说明:所有案例在虚拟机(VMware)上完成
操作系统:centos 6.5 64bit
高可用软件:heartbeat 3.0.4
Web应用服务器:apache httpd 2.2.15
二、heartbeat服务主机资源规划
主机名称 | 接口 | IP | 用途 |
heartbeat-master | eth0 | 172.18.10.227 | 外网管理IP,用于WAN数据转发 |
eth1 | 172.18.0.227 | 心跳线,用于服务器间心跳连接(直连) | |
172.18.10.200 | 提供应用服务A的虚拟IP(VIP) | ||
heartbeat-slave | eth0 | 172.18.10.228 | 外网管理IP,用于WAN数据转发 |
eth1 | 172.18.0.228 | 心跳线,用于服务器间心跳连接(直连) | |
172.18.10.201 | 提供应用服务B的虚拟IP(VIP) |
三、安装配置(主、备服务器相同配置)
1 配置主机名称和hosts文件
1.1 将主机名替换为heartbeat-master
退出重新登录系统(ctrl+d)
1.2 配置hosts文件
1.3 检查配置是否正确
2 增加主机路由
2.1 在heartbeat-master主机上配置如下:
2.2 在heartbeat-slave主机上配置如下:
四、安装Heartbeat软件(主、备服务器相同配置)
需要说明,CentOS5.8系统自带heartbeat软件,通过yum方式直接可以安装,但是CentOS6版本之后就不再支持通过yum方式安装heartbeat了,需要首先安装epel包,通过epel包安装heartbeat软件。
1 创建软件存放目录(良好的习惯)
2 下载并安装epel包
3 yum安装heartbeat
五、安装Apache httpd软件(主、备服务器相同配置)
1 yum安装httpd
六、配置高可用服务(主、备服务器相同配置)
1 配置heartbeat
1.1 heartbeat通过yum方式安装后默认配置文件目录为/etc/ha.d/,但是默认不包含配置文件,需要将
/usr/share/doc/heartbeat-3.0.4/目录下的ha.cf、authkeys和haresources拷贝到/etc/ha.d/目录
1.2 编辑authkeys文件
1.3 编辑haresources文件
配置说明:
a.172.18.10.200为初始绑定在heartbeat-master主机上的vip,同理172.18.10.201为初始绑定
在heartbeat-slave主机上的vip。
b.虽然同时配置了master和slave的vip,但是初始绑定只会绑定属于本机的vip,只有在配置的时间内
接收不到对端服务器的心跳数据才会接管对端主机的vip及所有资源。
c.httpd参数是将httpd服务的启动停止操作委托给heartbeat负责。
1.4 编辑ha.cf文件
配置说明:
参数 | 说明 |
debugfile /var/log/ha-debug.log | heartbeat记录调试日志文件,文件名自定义 |
logfile /var/log/ha.log | heartbeat记录日志文件,文件名自定义 |
logfacility local1 | 在syslog服务中配置通过local1设备接收日志 |
keepalive 2 | 心跳间隔时间为2秒(每2秒在eth1上发送一次广播) |
deadtime 30 | 当前主机节点在30秒内没有接收到对端主机节点的心跳数据,则立即接管对端节点的所有资源 |
warntime 10 | 心跳延迟时间为10秒,当10秒内当前主机节点未能接收到对端主机节点的心跳数据后,就会向日志中写入一个警告信息,但是此时不会接管 |
initdead 90 | 指定当前主机节点首次启动heartbeat需要等待90秒才会启动当前主机节点上的所有配置的资源,包括vip绑定,取值范围至少为deadtime的2倍 |
mcast eth1 225.0.0.100 694 1 0 | 广播通信地址,694为默认广播端口,参数含义是在当前主机节点上的eth1设备的694端口进行广播 |
auto_failback on | 当前主机节点故障恢复后是否从对端切回所有被接管的服务资源 |
node heartbeat-master | 主机节点,可以通过uname -n命令查看,这里的主机节点名称必须与通过uname -n命令查看的名称一致 |
node heartbeat-slave | 备机节点,可以通过uname -n命令查看,这里的备机节点名称必须与通过uname -n命令查看的名称一致 |
crm no | 是否开启Cluster Resource Manager(集群资源管理)功能 |
1.5 关闭防火墙(测试环境直接关闭,生产环境需要配置通过策略)
1.6 将authkeys、ha.cf和haresource文件通过scp方式拷贝到备服务器节点的/etc/ha.d目录下
1.7 启动heartbeat并查看是否正确绑定vip
1.8 模拟主服务器宕机(以停止heartbeat服务为例)
说明:当主服务器heartbeat-master宕机后,备服务器heartbeat-slave负责接管原主服务器节点上的 vip(172.18.10.200)及服务资源(httpd),继续提供服务
1.9 模拟恢复主服务器(以启动heartbeat服务为例)
说明:当主服务器heartbeat-master恢复后正常切回vip 172.18.10.200并启动本端服务资源(httpd),备服务器heartbeat-slave停止虚拟ip的绑定及停止服务资源(httpd)
2 配置httpd(简单配置,只实现高可用效果)
2.1 初始化httpd主页面
2.2 模拟客户端浏览器访问web应用
浏览器中输入172.18.10.200(可配置本地域名解析)访问web应用
说明:此时虚拟ip 172.18.10.200绑定在主服务器heartbeat-master节点上
模拟主服务器heartbeat-master宕机,继续访问web应用
说明:此时页面显示为备服务器heartbeat-slave节点上的ip地址
模拟主服务器heartbeat-master恢复,继续访问web应用
说明:此时页面显示主服务器heartbeat-master节点上的ip地址
至此一个简单的高可用web应用配置完成。
以上是关于学习heartbeat-05 实现web服务高可用的主要内容,如果未能解决你的问题,请参考以下文章
Linux进阶 | 实现负载均衡高可用(LB+HA)Web服务
基于Nginx搭建Web服务器HA架构(实现高可用web服务)
基于Nginx搭建Web服务器HA架构(实现高可用web服务)