高可用(HA)集群构建

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

高可用(HA)集群构建

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

2、前期准备

准备两台机器,一个使用了CentOS6.5,另一个centos6.3,系统版本不同不影响实验

网卡eth0 ip如下

master 192.168.1.165

slave 192.168.1.163

下面操作在两个机器上都要操作:

(1)设置hostname,分别为主master和从slave

主上设置:

# hostname  master

# vim /etc/sysconfig/network

HOSTNAME=localhost.localdomain

修改为

HOSTNAME=master

从上设置

# hostname  slave

# vim /etc/sysconfig/network

HOSTNAME=localhost.localdomain

修改为

HOSTNAME=slave

(2)关闭防火墙,主从都操作

# iptables -F

# service iptables save

# getenforce 0

# vim /etc/selinux/config

SELINUX=enforcing

修改为

SELINUX=disabled

(3)配置host,主从操作一样

# vim  /etc/host

192.168.1.165 master

192.168.1.163 slave


3、heartbeat安装

主机和从机都需要安装heartbeat,同时需要libnet,主机从机执行同样的命令

# yum install -y heartbeat

# yum install -y libnet

如果没有包,则需要安装一个扩展yum源,heartbeat在epel源中。

# yum install -y epel-release


4、主节点配置

需要先将3个相关的配置文件放置在heartbeat的配置目录下

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

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

之后便可以开始修改配置文件了,先修改验证文件

# cd /etc/ha.d/

# vim authkeys # 用来验证,主从通过通信验证对方是否存活,需要加密

auth 3 # 此处打开,数字表示选择哪种加密方式

#1 crc # 最简单

#2 sha1 HI! # 最复杂

3 md5 Hello! # 处于中间等级的加密方式

# chmod 600 /etc/ha.d/authkeys

# 如果不修改权限,heartbeat启动不了

第二个配置haresources文件,只需要编辑一行。因为当前在ha.d目录下,直接vim。如果不是,用绝对路径或者cd

# vim haresources

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

#找到上面一行,改成下面,需要去掉#

master  192.168.1.186/24/eth0:0 nginx

# master是主的主机名;192.168.1.186是vip,/24指定网段,网卡eth0:0(这里采用了虚拟网卡);nginx提供服务,如果主宕掉,从启动。

最后一个配置ha.cf,里边基本全是注释,这里选择删掉重新写入,当前依旧在/etc/ha.d目录下

# > 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.163

auto_failback on

node    master

node    slave

ping 192.168.1.1

respawn hacluster /usr/lib/heartbeat/ipfail

配置说明:

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

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

logfacility    local0 :日志级别

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

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

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

initdead 60:在某些系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔。最少为deadtime的两倍

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

ucast eth0 192.168.1.163:ucast指定对方ip,bcast形式寻找;eth0心跳检测自己的网卡,ip对方的ip

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

node    master:指定主

node    slave:指定从

ping 192.168.1.1

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/836ff01c36cbe7753df5f7f14abe7866.html