您的位置:首页 > 运维架构 > 网站架构

HA高可用集群(双机热备)

2016-03-23 20:07 656 查看
我们在提供服务的时候,服务器很有可能会因为种种原因宕机,这就大大降低了用户体验,那么如何能
够保证在服务器宕机的情况下依然不影响用户体验呢,这里最常用的方式HA集群,又称为双击热备,它
其实也就是基于非常简单的主从架构。

我们简单地理解就是:有两台机器A和B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换到
B机器继续提供服务。常用实现高可用的开源软件有heartbeat和keepalived,其中keepalived有负载均
衡的功能。

这里有一个非常重要的概念,叫做流动ip,也称vip。

一个 HA 架构,一个交换机下面有两台机器 Web1 和 Web2,其中 Web1 为主节点,正常是它在提供服
务,而 Web2 备用节点是闲置的。 Web1 和 Web2 中间有一根心跳线,检查对方的存活状态。流动 IP,
也叫 vip 是对外提供服务的 ip,正常情况下是配置在Web1 上的,当 Web1 宕机后, Web2 会自动配置
该 vip,对外提供服务。所以我们说,vip就是连接主机和从机的桥梁。

现在来看看如何搭建HA架构:

1、准备两台机器,一台master,一台slave

2、记住两台机器的ip地址:
master : eth0 192.168.1.115

slave : eth0 192.168.1.126

3、两台机器同时操作:

3.1. 关闭防火墙 iptables -F

关闭selinux: setenforce 0

3.2. vim /etc/hosts // 增加内容如下:

192.168.1.115 master
192.168.1.126 slave

4、两台机器上都安装heartbeat的rpm包,如果没有,需要先安装epel的扩展源:

yum install -y epel-release

yum install -y heartbeat* libnet

5、HA集群可以针对任意服务来进行,这里我们对nginx服务进行操作

yum install -y nginx

6、主(master)上配置

# cd /usr/share/doc/heartbeat-3.0.4/

# cp authkeys ha.cf haresources /etc/ha.d/

# cd /etc/ha.d/

# vim authkeys

更改或者增加一行

3 md5 Hello!

然后修改其权限

# chmod 600 authkeys

编辑 haresources 文件

# vim haresources

加入下面一行

# master 192.168.1.110/24/eth0:0 nginx

说明:master为主节点的hostname,192.168.1.110为流动ip,/24 表示网段,eth0:0为vip的设
备名,nginx 为heartbeat 监控的服务,也是两台机器对外提供的核心服务。

然后编辑ha.cf

# vim ha.cf

改为如下内容

debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 60
udpport 694
ucast eth0 192.168.1.100
auto_failback on
node master
node slave
ping 192.168.1.1
respawn hacluster /usr/lib/heartbeat/ipfail

说明:
/var/log/ha-debug:该文件保存heartbeat 的调试信息

logfile /var/log/ha-log:该文件为heartbeat 的日志文件

keepalive 2:心跳的时间间隔,默认时间单位为秒

deadtime 30:超出该时间间隔为收到对方节点的心跳,则认为对方死亡

warntime 10:超出该时间间隔为收到对方节点的心跳,发出警告并记录到日志中

initdead 60:在某些系统上,系统重启后要经过一段时间网络才能正常工作,该选项

用于解决这种情况产生的时间间隔,取值至少为deadtime的两倍。

udpport 694:设置广播通信使用的端口,694为默认端口

ucast eth0 192.168.1.126:设置对方机器心跳检测的网卡和ip

auto_failback on: heartbeat 的两台主机分别为主节点和从节点。主节点在正常情
况下占用资源并运行所有的服务,遇到故障时把资源交给从节点并由从节点运行服务。在该选 项设为 on的情况下,一旦主节点恢复运行,则自动获取资源并取代从节点,否则不取代从节 点。

node 指定主和从,各占一行,主在上从在下。

respawn hacluster /usr/lib/heartbeat/ipfail:指定与 heartbeat 一同启动和关
闭的进程,该进程被自动监视,遇到故障则重新启动。最常用的进程是 ipfail,该进程用于检 测和处理网络故障,需要配合 ping 语句指定的 ping node 来检测网络连接。如果你的系统是 64,请注意该文件的路径。

7、把主上的三个配置拷到从上

# cd /etc/ha.d/

# scp authkeys ha.cf haresources slave:/etc/ha.d/

8、到从上编辑ha.cf

# vim /etc/ha.d/ha.cf

ucast eth0 192.168.1.126 改为 ucast eth0 192.168.1.115

9、启动 heartbeat

先主后从

/etc/init.d/heartbeat start
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  双机热备 heartbeat HA