首页 > 代码库 > 测试文章
测试文章
HA集群配置
HA即(high available)高可用,又被叫做双机热备,用于关键性业务。简单理解就是,有2台机器A和B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至B机器继续提供服务。常见的实现高可用的开源软件有heartbeat和keepalived有负载均衡的功能。
这样,一台web服务器一天24小时提供web服务,难免会存在web服务挂掉或服务器宕机宕机的情况,那么用户就访问不了服务了,这当然不是我们期望的。如果这样,有2台服务器,A对外提供web服务,B作为备用,如果A挂掉,那么B立刻替代A的位置去提供web服务,这样对用户来说是透明的。但是有个问题,服务器A的ip是10.0.0.100,服务器B的ip是10.0.0.101,显然向用户提供A或B的ip地址是不可行的,因为用户总不能去切换ip来访问的吧。这时heartbeat或keepalived可以提供一个虚拟IP:10.0.0.102,用户只需要访问10.0.0.102,当A提供服务时,VIP会设置在A服务器上,当B提供服务时,VIP会设置在B服务器上,这样就可以让用户通过访问10.0.0.102来获取web服务,即使A或B服务器切换也不影响用户的正常访问。
下面我们使用heartbeat来做HA集群,并且把nginx服务作为HA对应的服务。
1、准备实验环境
服务器A
主机名:master
操作系统:CentOS6.8 64位
eth0网卡地址:192.168.0.18
eth1网卡地址:172.16.254.18
服务器B
主机名:slave
操作系统:CentOS6.8 64位
eth0网卡地址:192.168.0.28
eth1网卡地址:172.16.254.28
虚拟VIP
VIP:192.168.0.38
2、设置主机名
master节点设置hostname
hostname master
vim /etc/sysconfig/network
vim /etc/sysconfig/network
编辑配置文件:
HOSTNAME=master
slave节点设置hostname
# hostname slave
# vim /etc/sysconfig/network
编辑配置文件:
HOSTNAME=slave
3、关闭防火墙和selinux(2台节点都要操作)
关闭iptables
# iptables -F
# service iptables save
# service iptables stop
关闭selinux
# setenforce 0
# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config
-
#!/bin/bash
-
#Written by aming.
-
-
# 是否发送邮件的开关
-
export send=1
-
# 过滤ip地址
-
export addr=`/sbin/ifconfig |grep -A1 ‘eth0‘ |grep addr: |awk ‘{print $2}‘|awk -F: ‘{print $2}‘`
-
dir=`pwd`
-
# 只需要最后一级目录名
-
last_dir=`echo $dir|awk -F‘/‘ ‘{print $NF}‘`
-
-
# 下面的判断目的是,保证执行脚本的时候,我们在bin目录里,不然监控脚本、邮件和日志很有可能找不到
-
if [ $last_dir == "bin" ] || [ $last_dir == "bin/" ]; then
-
conf_file="../conf/mon.conf"
-
else
-
echo "you shoud cd bin dir"
-
exit
-
fi
-
exec 1>>../log/mon.log 2>>../log/err.log
-
-
echo "`date +"%F %T"` load average"
-
/bin/bash ../shares/load.sh
-
-
#先检查配置文件中是否需要监控502
-
if grep -q ‘to_mon_502=1‘ $conf_file; then
-
export log=`grep ‘logfile=‘ $conf_file |awk -F ‘=‘ ‘{print $2}‘ |sed ‘s/ //g‘`
-
/bin/bash ../shares/502.sh
-
fi
<style type="text/css">