首页 > 代码库 > 测试文章

测试文章

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

隐藏行号 复制代码 这是一段程序代码。
  1. #!/bin/bash
  2. #Written by aming.
  3. # 是否发送邮件的开关
  4. export send=1
  5. # 过滤ip地址
  6. export addr=`/sbin/ifconfig |grep -A1 ‘eth0‘ |grep addr: |awk ‘{print $2}‘|awk -F: ‘{print $2}‘`
  7. dir=`pwd`
  8. # 只需要最后一级目录名
  9. last_dir=`echo $dir|awk -F‘/‘ ‘{print $NF}‘`
  10. # 下面的判断目的是,保证执行脚本的时候,我们在bin目录里,不然监控脚本、邮件和日志很有可能找不到
  11. if [ $last_dir == "bin" ] || [ $last_dir == "bin/" ]; then
  12.     conf_file="../conf/mon.conf"
  13. else
  14.     echo "you shoud cd bin dir"
  15.     exit
  16. fi
  17. exec 1>>../log/mon.log 2>>../log/err.log
  18. echo "`date +"%F %T"` load average"
  19. /bin/bash ../shares/load.sh
  20. #先检查配置文件中是否需要监控502
  21. if grep -q ‘to_mon_502=1‘ $conf_file; then
  22.     export log=`grep ‘logfile=‘ $conf_file |awk -F ‘=‘ ‘{print $2}‘ |sed ‘s/ //g‘`
  23.     /bin/bash  ../shares/502.sh
  24. fi
<style type="text/css">.src_container { background-color: #e7e5dc; width: 99%; overflow: hidden; margin: 12px 0 12px 0 !important; padding: 0px 3px 3px 0px } .src_container .titlebar { background-color: #d4dfff; border: 1px solid #4f81bd; border-bottom: 0; padding: 3px 24px; margin: 0; width: auto; line-height: 120%; overflow: hidden; text-align: left; font-size: 12px } .src_container .toolbar { display: inline; font-weight: normal; font-size: 100%; float: right; cursor: hand; color: #00f; text-align: left; overflow: hidden } .toolbar span.button { display: inline; font-weight: normal; font-size: 100%; color: #00f; text-align: left; overflow: hidden; cursor: pointer } .src_container div.clientarea { background-color: white; border: 1px solid #4f81bd; margin: 0; width: 100%; height: auto; overflow: auto; text-align: left; font-size: 12px; font-family: "Courier New", "Consolas", "Fixedsys", courier, monospace, serif } .src_container ol.mainarea { padding: 0 0 0 52px; margin: 0; background-color: #f7f7ff !important } .number_show { padding-left: 52px !important; list-style: decimal outside !important } .number_show li { list-style: decimal outside !important; border-left: 1px dotted #4f81bd } .number_hide { padding-left: 0px !important; list-style-type: none !important } .number_hide li { list-style-type: none !important; border-left: 0px } ol.mainarea li { display: list-item !important; font-size: 12px !important; margin: 0 !important; line-height: 18px !important; padding: 0 0 0 0px !important; background-color: #f7f7ff !important; color: #4f81bd } ol.mainarea li pre { color: black; line-height: 18px; padding: 0 0 0 12px !important; margin: 0em; background-color: #fff !important } .linewrap ol.mainarea li pre { white-space: -o-pre-wrap } ol.mainarea li pre.alt { background-color: #f7f7ff !important }</style>

 

<style type="text/css">

posted @

公告

Copyright ?2015 肖邦linux
{ }</style>

测试文章