HA集群配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HA集群配置相关的知识,希望对你有一定的参考价值。

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

下面我们使用heartbeat来做HA集群,并且把nginx服务作为HA对应的服务。
(以eth0网卡为心跳线)slave5和slave6为我的主机和从机hostname
试验准备:
两台机器, 都是centos6.7,
slave5 网卡eth0 ip如下:
slave5   192.168.112.176

slave6网卡eth0 ip如下:
slave6  192.168.112.177

下面操作1-5都是在两个机器上操作

1. hostname 设置好,分别为slave5 和 slave6
2. 关闭防火墙 iptables -F
   service iptables save 
    关闭selinux: setenforce 0
    sed -i ‘s/SELINUX=enforcing/SELINUX=disables/‘ /etc/selinux/congif
设置好后重启生效(最好设置好系统就设置)
3. 两台机都   vi /etc/hosts   // 增加内容如下:  

  192.168.112.176   slave5
  192.168.112.177   slave6


4. 安装epel扩展源:
yum install -y epel-release
5. 两个机器都安装heartbeat / libnet
yum  install -y heartbeat*   libnet  nginx

6.  主上(aming)配置
cd /usr/share/doc/heartbeat-3.0.4/
cp  authkeys  ha.cf haresources   /etc/ha.d/
cd /etc/ha.d
vi  authkeys  //加入或更改为auth 3
3 md5 Hello!

chmod 600 authkeys

设置vip
vi  haresources  //加入
slave5 192.168.112.110/24/eth0:0 nginx   #salve5 为主的主机名    
## 192.168.112.110/24  这是vip    eth0:0 nginx  要启动的vip网卡 与要配置的服务 (也可以是其他服务)


vi  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.112.177
auto_failback on
node    slave5
node    slave6
ping 192.168.112.1
respawn hacluster /usr/lib/heartbeat/ipfail


7.  把主上的三个配置拷贝到从上:
cd /etc/ha.d/
scp  authkeys  ha.cf haresources   slave5:/etc/ha.d/

8. 到从上(slave6) 编辑ha.cf
vi  /etc/ha.d/ha.cf   //只需要更改一个地方
ucast eth0 192.168.112.177 改为   ucast eth0 192.168.21.176     (对方的ip) 

9.  启动heartbeat : 
先主,后从
service heartbeat start

10. 检查测试 
ifconfig 看是否有 eth0:0
ps aux |grep nginx  看是否有nginx进程

11.  测试1
主上故意禁ping
iptables -A INPUT -p icmp -j DROP  ##(禁掉ping)
iptables -A INPUT -p icmp -j DROP  ## (开启ping)

12. 测试2
主上停止heartbeat服务
service heartbeat stop 

补充
#ip add     可以查看虚拟ip
测试办法
nginx的默认页面 是 /usr/share/nginx/htlm/index.htlm
可以主添加 echo "slave5" > /usr/share/nginx/htlm/index.htlm  在 浏览器上输入192.168.112.110查看是否有slave5
在从上添加 echo "slave6" > /usr/share/nginx/htlm/index.htlm  在 浏览器上输入192.168.112.110查看是否有slave6
禁ping或者主上停止heartbeat服务  来查看HA是否生效正常切换
用ifconfig  查看是否有eth0:0网卡生成


小知识
给eth0添加一个虚拟网卡
cd /etc/sysconfig/network-script/
cp ifcfg-eth0 ifcfg-eth0\:1
vim  ifcfg-eth0\:1
修改DEVICE=eth0:1
IPADDR设置为一个可用的ip 不同于网卡ip即可
service network restart 即可 查看是否生效

本文出自 “11068542” 博客,请务必保留此出处http://11078542.blog.51cto.com/11068542/1759442

以上是关于HA集群配置的主要内容,如果未能解决你的问题,请参考以下文章

生产环境下hadoop HA集群及Hbase HA集群配置

HadoopHDFS HA高可用

flink-1.12.2 ha 集群配置

flink-1.12.2 ha 集群配置

HA集群详细配置和实例

Hadoop HA 配置文件以及自动化Shell脚本开关HA集群