HA集群配置

简介:

HA(high available)即高可用,又被叫做双机热备,用于关键性业务。简单理解就是,有两台机器A 和B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至B机器继续提供服务。常用实现高可用的开源软件有heartbeat和keepalived,其中keepalived有负载均衡的功能。

下面我们使用heartbeat来做HA集群,并且把nginx服务作为HA对应的服务。 


一、准备工作


两个机器操作系统都是centos6.5,网卡eth0的ip分别为: 

master  192.168.0.112
slave  192.168.0.113

:若是克隆过来的系统,网卡会默认为eth1,可以参考我之前的文章进行修改配置。

http://msiyuetian.blog.51cto.com/8637744/1700392

 

二、基本操作(下面所有步骤都要在两个机器上操作 )


1、设置hostname,分别为master和slave  

主上设置hostname 

# hostname master              //临时生效

或者

# vim /etc/sysconfig/network   //永久生效
HOSTNAME=master

从上设置 hostname 

# hostname slave               //临时生效

或者

# vim /etc/sysconfig/network   //永久生效
HOSTNAME=slave

 

2、关闭防火墙 

主和从都清空iptables

# iptables -F 
# service iptables save

主和从都关闭 selinux 

# setenforce 0 
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

 

3、配置 hosts  

# vim /etc/hosts         //增加如下内容 

192.168.0.112 master

192.168.0.113 slave

  

4、安装 epel 扩展源  

# yum install -y epel-release

 

5、安装 heartbeat 

# yum  install -y heartbeat* libnet


6、安装nginx

# yum  install -y nginx



三、在master上配置


1、拷贝三个配置文件

[root@master ~]# cd /usr/share/doc/heartbeat-3.0.4/
[root@master heartbeat-3.0.4]# cp authkeys ha.cf haresources /etc/ha.d/


2、配置authkeys文件

[root@master heartbeat-3.0.4]# cd /etc/ha.d/
[root@master ha.d]# vim authkeys        //末尾修改为如下内容

wKiom1YTlM6AZd03AAA2OA1k_UY228.jpg

[root@master ha.d]# chmod 600 authkeys    //修改权限


3、配置haresources文件

[root@master ha.d]# vim haresources

找到:

#node1  10.0.0.170 Filesystem::/dev/sda1::/data1::ext2

修改为:

master 192.168.0.120/24/eth0:0  nginx

:192.168.0.120为vip,即流动ip,对外显示。后面接掩码数和网口,以及服务名称。


4、配置ha.cf文件

[root@master ha.d]# echo "" > ha.cf            //清空文件
[root@master ha.d]# 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.0.113
auto_failback on
node    master
node    slave
ping 192.168.0.1
respawn hacluster /usr/lib/heartbeat/ipfail

:node一定不能写错,否则会报错。配置说明如下:


debugfile /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.0.113:设置对方机器心跳检测的网卡和ip。(在生产环境中一般都是设置独立的网卡,比如用串口连接两台机器) 

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

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

respawn hacluster /usr/lib/heartbeat/ipfail:指定与 heartbeat 一同启动和关闭的进程,该进

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



5、拷贝文件到slave上

[root@master ha.d]# scp authkeys haresources ha.cf slave:/etc/ha.d/

因为之前在主上配置过,所以直接拷贝过来修改即可。


四、在slave上配置

在/etc/ha.d/目录中,拷贝过来的三个文件只需改ha.cf文件即可

[root@slave ha.d]# vim ha.cf     //只需修改下面一行
ucast eth0 192.168.0.112


五、启动heartbeat

# service heartbeat start

:启动顺序:先主后从。只需启动heartbeat即可,不需手动启动nginx和vip

(1)master上用ifconfig -a命令查看eth0:0网卡已启动(一般都要十几秒后才会启动)

wKiom1YTnxCB8cwFAAO9pExKdmY955.jpg

同时也可以查看到nginx服务已启动

wKioL1YTn8rzMCKgAAFOQ1koH2A941.jpg

(2)而在slave上查看不到eth0:0网卡信息以及nginx服务



六、测试

在主上故意禁掉ping

[root@master ha.d]# iptables -I INPUT -p icmp -j DROP

在master上查看不到eth0:0网卡信息以及nginx服务,而下slave上可以查看到,如下图

wKiom1YTtp2QJ2hcAAcT2pgA8RU429.jpg


因为主从是通过ping命令来检测对方的,故由上可见实现了高可用。




      本文转自 M四月天 51CTO博客,原文链接:http://blog.51cto.com/msiyuetian/1700515 ,如需转载请自行联系原作者








相关文章
|
分布式计算 Hadoop Java
Hadoop2.0架构及HA集群配置(2)
在Hadoop2.0中通常由两个NameNode组成,一个处于Active状态,另一个处于Standby状态。Active NameNode对外提供服务,而Standby NameNode则不对外提供服务,仅同步Active NameNode的状态,以便能够在它失败时快速进行切换。 Hadoop2.0官方提供了两种HDFS HA的解决方案,一种是NFS,另一种是QJM。我们使用简单的QJM。在该方案中,主备NameNode之间通过一组JournalNode同步元数据信息,一条数据只要成功写入多数JournalNode即认为写入成功。通常配置大于或等于3奇数个JournalNode。 需要配置一
|
存储 机器学习/深度学习 SQL
Hadoop2.0架构及HA集群配置(1)
NameNode HA NameNode Federation HDFS快照 HDFS缓存 HDFS ACL
|
分布式计算 Spark
Spark高可用集群搭建HA
Spark高可用集群搭建HA
114 0
|
存储 分布式计算 资源调度
ResourceManager HA 配置
陆续的把Hadoop集群部署、HDFS的HA配置完成,把ResourceManager的HA配置好之后,Hadoop集群配置也算是完整了,可以满足小型中型生产环境Hadoop集群搭建的需要。如果真要搭建超大型的Hadoop集群,这些只能算是参考,还需要修改很多其他参数,使性能更好一些。
1056 0
ResourceManager HA 配置
|
应用服务中间件 开发工具 nginx
|
关系型数据库 MySQL 开发工具
|
应用服务中间件 nginx 网络安全
|
Web App开发 监控 应用服务中间件
|
测试技术 应用服务中间件 开发工具