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

一、准备实验环境

服务器A:
主机名:Master01
操作系统:CentOS6.8 64位
eth0网卡地址:10.60.196.178

服务器B:
主机名:Slave01
操作系统:CentOS6.8 64位
eth0网卡地址:10.60.196.179
虚拟VIP:
VIP:10.60.196.180

二、设置主机名

master节点设置hostname
hostname Master01 vim /etc/sysconfig/network 编辑配置文件:HOSTNAME=Master01
vim /etc/hosts

编辑配置文件:
10.60.196.178 Master01
10.60.196.179 Slave01
# vim /etc/sysconfig/network 编辑配置文件:HOSTNAME=Master01
slave节点设置hostname
# hostname Slave01
vim /etc/hosts

编辑配置文件:
10.60.196.178 Master01
10.60.196.179 Slave01# vim /etc/sysconfig/network 编辑配置文件:HOSTNAME=Slave01

三、关闭2台服务器的防火墙

关闭iptables
# iptables -F # service iptables save # service iptables stop
关闭selinux:
# setenforce 0 # sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

四、安装heartbeat (2台都操作)

# yum install -y epel-release
# yum install -y heartbeat* libnet

五、主Master01节点配置

1、拷贝配置文件:
# cd /usr/share/doc/heartbeat-3.0.4/ # cp authkeys ha.cf haresources /etc/ha.d/ # cd /etc/ha.d

2、修改authkeys:
# vim authkeys 更改或增加如下内容: auth 33 md5 Hello!然后修改其权限 # chmod 600 authkeys

3、编辑haresources文件:
# vim haresources加入下面一行:Master01  10.60.196.180/24/eth0:0  raysync
说明:master为主节点hostname,10.60.196.180为vip,/24为掩码为24的网段,eth0:0为vip的设备名,httpd为heartbeat监控的服务,也是两台机器对外提供的核心服务。改行指定在启动时,节点得到vip,并启动httpd,在停止时heartbeat首先停止httpd,然后释放vip。

4、编辑ha.cf:
# vim ha.cf 修改为如下内容:
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
ucast eth0 10.60.196.179
auto_failback on
node Master01
node Slave01
ping 10.60.196.254
respawn hacluster /usr/lib64/heartbeat/ipfail

5、配置说明:
logfile /var/log/ha-log:heartbeat的日志文件。
keepalive 2:心跳的时间间隔,默认时间单位为秒s。
deadtime 30:超出该时间间隔未收到对方节点的心跳,则认为对方已经死亡。
warntime 10:超出该时间间隔未收到对方节点的心跳,则发出警告并记录到日志中。
initdead 120:在某系统上,系统启动或重启之后需要经过一段时间网络才能正常工作,该选项用于解决这种情况产生的时间间隔,取值至少为deadtime的2倍。
udpport 694:设置广播通信使用的端口,694为默认使用的端口号。
ucast eth0 10.60.196.179:设置对方机器心跳检测的网卡和IP。
auto_failback on:heartbeat的两台主机分别为主节点和从节点。主节点在正常情况下占用资源并运行所有的服务,遇到故障时把资源交给从节点由从节点运行服务。在该选项设为on的情况下,一旦主节点恢复运行,则自动获取资源并取代从节点,否则不取代从节点。
respawn heartbeat /usr/lib/heartbeat/ipfail:指定与heartbeat一同启动和关闭的进程,该进程被自动监视,遇到故障则重新启动。最常用的进程是ipfail,该进程用于检测和处理网络故障,需要配合ping语句指定的ping node来检测网络连接。如果你的系统是64bit,请注意该文件的路径。

六、把主节点上的三个配置文件拷贝到从节点
# cd /etc/ha.d # scp authkeys ha.cf haresources root@Slave01:/etc/ha.d

七、从节点slave编辑ha.cf

# vim /etc/ha.d/ha.cf 
只需要更改一个地方如下:ucast eth0 10.60.196.179改为ucast eth0 10.60.196.180

八、启动heartbeat服务

配置完毕后,先Master01启动,后Slave01启动。
# service heartbeat start

九、更改vip路由脚本

1、创建routecheck.sh脚本

vim /root/bin/routecheck.sh
#!/bin/bash
source /etc/profile
for((i=1;i<=30;i++))
do
ifconfig|grep eth0:0
a=$?
ip route show |grep 10.60.196.180
b=$?
ip route show|grep 10.60.196.254
c=$?
#vip存在,且vip没有路由就更改路由
if [[ $a == 0 ]] && [[ $b != 0 ]];then
route del  default gw 10.60.196.254  && ip route add 0.0.0.0/0 via 10.60.196.254 dev eth0  src 10.60.196.180
fi
#vip不存在,默认网关不存在就重启网卡
if [[ $a != 0 ]] && [[ $c != 0 ]];then
ip route add 0.0.0.0/0 via 10.60.196.254 dev eth0
fi
sleep 2
done

2、定时运行

crontab -e
*/1 * * * * bash /root/bin/routecheck.sh > /dev/null

十、RaySync自启动脚本

cat /etc/init.d/raysync
#!/bin/bash
#
# description: setup RaySync service
# Version: 0.1.0
# Date: 2018-02-06
# Author: lirou<lirou@rayvision.com>
#

# chkconfig: - 87 17
source /etc/profile
../etc/rc.d/init.d/functions

set -e
#set -x
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8

if [ $# -ne 1 ];then
echo "Error Usage: service $(basename $0) [ start | stop | status | restart ]"
exit 3

fi

BASE_DIR=
PID_DIR=

if [[ "x$BASE_DIR" == "x" ]];then
BASE_DIR=/opt/RaySync
fi

RAYSYNC_CONF=$BASE_DIR/config/config.ini

if ! [ -d $(dirname $RAYSYNC_CONF) ];then
install -d -m 755 $(dirname $RAYSYNC_CONF)
fi

if [[ "x$PID_DIR" == "x" ]];then
PID_DIR=/var/run/raysync
mkdir -pv $PID_DIR &>/dev/null
fi

#MONITOR_PID=$PID_DIR/monitor.pid
MONITOR_LOCKFILE=$PID_DIR/monitor.lock
RAYSYNC_SERVER_LOCKFILE=$PID_DIR/raysync-server.lock
RAYSYNC_PROXY_SERVER_LOCKFILE=$PID_DIR/raysync-proxy.lock

MONITOR_BIN_NAME=
RAYSYNC_SERVER_BIN_NAME=
RAYSYNC_PROXY_SERVER_BIN_NAME=

if [[ "x$MONITOR_BIN_NAME" == "x" ]];then
MONITOR_BIN_NAME=monitor
fi

if [[ "x$RAYSYNC_SERVER" == "x" ]];then
RAYSYNC_SERVER_BIN_NAME=RaySyncServer
fi

if [[ "x$RAYSYNC_PROXY_SERVER" == "x" ]];then
RAYSYNC_PROXY_SERVER_BIN_NAME=RaySync-Proxy-Server
fi

start() {
if ! [ -s $RAYSYNC_CONF ];then
echo "Error: don't have configure file in $RAYSYNC_CONF path."
fi

if ! [ -f $MONITOR_LOCKFILE ]; then
# nohup ${BASE_DIR}/${MONITOR_BIN_NAME} &>/dev/null &
nohup ${BASE_DIR}/${MONITOR_BIN_NAME} >/dev/null 2>&1 &
sleep 1
if [[ "x$(ps aux | grep -i monitor | grep -v -i grep )" == "x" ]];then
echo -e "monitor setup fail" && failure
else
touch $MONITOR_LOCKFILE
fi
fi
echo -e " monitor is running: " && success

if ! [ -f $RAYSYNC_SERVER_LOCKFILE ];then
nohup $BASE_DIR/RaySyncServer >/dev/null 2&>1 &
sleep 1
if [[ "x$(ps aux | grep RaySyncServer | grep -v -i 'grep' )" == "x" ]];then
echo -e "RaySyncServer setup fail" && failure
else
touch $RAYSYNC_SERVER_LOCKFILE
fi
fi
echo -e " RaySyncServer is running" && success

if ! [ -f $RAYSYNC_PROXY_SERVER_LOCKFILE ];then
#nohup $BASE_DIR/proxy/$RAYSYNC_PROXY_SERVER_BIN_NAME >/dev/null 2&>1
#echo "nohup $BASE_DIR/proxy/$RAYSYNC_PROXY_SERVER_BIN_NAME >/dev/null 2&>1"
sleep 1
if [[ "x$(ps aux | grep RaySync-Proxy-Server )" == "x" ]];then
echo -e "RaySync-Proxy-Server setup fail" && failure
else
touch $RAYSYNC_PROXY_SERVER_LOCKFILE
fi
fi
echo -e " RaySync-Proxy-Server is running" && success
}

stop() {
if [ -f $MONITOR_LOCKFILE ];then
# killall $MONITOR_BIN_NAME
ps -ef|grep Ray|grep -v grep|awk '{print $2}'|xargs kill -9 >/dev/null 2&>1
rm -f $MONITOR_LOCKFILE
fi
echo -e "monitor stopped" && success

if [ -f $RAYSYNC_SERVER_LOCKFILE ];then
#kill $(echo $RAYSYNC_SERVER_PID)
# killall $RAYSYNC_SERVER_BIN_NAME
ps -ef|grep Ray|grep -v grep|awk '{print $2}'|xargs kill -9 >/dev/null 2&>1
rm -f $RAYSYNC_SERVER_LOCKFILE
fi
echo -e "RaySyncServer stopped" && success

# result_Proxy=`ps -ef|grep ${RAYSYNC_PROXY_SERVER_BIN_NAME}|grep -v grep`
# if [ -f $RAYSYNC_PROXY_SERVER_LOCKFILE ] || [ $result_Proxy != "" ];then
if [ -f $RAYSYNC_PROXY_SERVER_LOCKFILE ];then
ps -ef|grep Ray|grep -v grep|awk '{print $2}'|xargs kill -2 >/dev/null 2&>1
echo ${RAYSYNC_PROXY_SERVER_BIN_NAME}
rm -f $RAYSYNC_PROXY_SERVER_LOCKFILE
fi
echo -e "RaySync-Proxy-Server stopped" && success
}

status() {
if [ -f $MONITOR_LOCKFILE ];then
echo " monitor is running"
else
echo " monitor stopped"
fi

if [ -f $RAYSYNC_SERVER_LOCKFILE ];then
echo " RaySyncServer is running"
else
echo " RaySyncServer stopped"
fi

if [ -f $RAYSYNC_PROXY_SERVER_LOCKFILE ];then
echo " RaySync-Proxy-Server is running"
else
echo " RaySync-Proxy-Server stopped"
fi
}

case $1 in
start)
start
;;
stop)
stop
;;
status)
status
;;
restart)
stop
sleep 2
start
;;
*)
echo "Error Usage: service $(basename $0) [ start | stop | status | restart ]"
exit 3
esac

以上是关于镭速文件传输软件的高可用安装部署详细介绍!

镭速(Raysync)文件传输高可用安装部署介绍!相关推荐

  1. 镭速(Raysync)文件传输高可用部署介绍!

    使用HeartBeat实现高可用HA的配置.HA即(high available)高可用,又被叫做双机热备,用于关键性业务.简单理解就是,有2台机器 A 和 B,正常是 A 提供服务,B 待命闲置,当 ...

  2. 如何实现文件高速传输,推荐镭速高速文件传输解决方案

    随着互联网的发展,文件传输越来越频繁,如何实现文件高速传输已经越来越成为企业发展过程中需要解决的问题, 在当今的业务中,随着与客户和供应商以及内部系统的所有通信的数据量不断增加,对高速文件传输解决方案 ...

  3. 内网离线 k3s Rancher 高可用安装部署流程

    文章目录 1. 总体架构 1.1 节点规划 1.2 架构设计 2. 节点准备 2.1 NTP 时间同步服务 2.1.1 NTP 程序包下载 2.1.2 NTP 服务端安装 2.1.3 NTP 客户端安 ...

  4. 点对点传输现状,镭速高速点对点传输解决方案

    点对点传输需求日益增长,但是面对点对点传输现状和挑战,不经让人有种迫切找到高速的点对点传输解决方案,下面给大家介绍一下点对点传输的现状与挑战. 应用方面 企业存储负担过重,每日数以万计的并发请求与回复 ...

  5. 镭速发布文件直传新功能,实现端到端快速传输

    镭速V5.0.5.8版本上线啦!此次版本的更新,不仅围绕视觉体验.对象存储支持.用户通知提醒.白名单设置等方面的细节性内容做了功能升级和价值提升,也从文件高速传输上做了更多的更新和优化,使用户体验更加 ...

  6. Ghost 的高可用安装 安装篇

    前面详细的讲述了,在 Node.js 4.x 环境下安装 Ghost 博客平台的准备工作,包括配置.系统的选择,组建的选择等等,如果没有看过的同学,一定要去看一下! 门:<Ghost 的高可用安 ...

  7. Kubernetes实战(一):k8s v1.11.x v1.12.x 高可用安装

    说明:部署的过程中请保证每个命令都有在相应的节点执行,并且执行成功,此文档已经帮助几十人(仅包含和我取得联系的)快速部署k8s高可用集群,文档不足之处也已更改,在部署过程中遇到问题请先检查是否遗忘某个 ...

  8. Kubernetes全栈架构师(二进制高可用安装k8s集群扩展篇)--学习笔记

    目录 二进制Metrics&Dashboard安装 二进制高可用集群可用性验证 生产环境k8s集群关键性配置 Bootstrapping: Kubelet启动过程 Bootstrapping: ...

  9. ansible 建 kubernetes 证书签名请求_最简单的 kubernetes 高可用安装方式!(文末送书)...

    福利 文末留言送 3 本由马哥教育 CEO 马哥(马永亮)撰写的<Kubernetes 进阶实战>,希望大家点击文末的留言小程序积极留言,每个人都有机会. 前言 本文教你如何用一条命令构建 ...

最新文章

  1. BZOJ 1398: Vijos1382寻找主人 Necklace(最小表示法)
  2. 请先设置tkk_理光MP2014扫描至文件夹的设置方法
  3. Mybaits之Mapper动态代理开发
  4. 数据3分钟丨墨天轮2021年度数据库奖项及中国数据库魔力象限等多项成果发布...
  5. git创建分支合并到master分支步骤
  6. Google IPU:互联网巨头纷纷进军芯片行业是为何?
  7. MYSQL服务器my.cnf配置文档详解
  8. 操作系统学习笔记:文件管理
  9. 螺旋桨RNA结构预测竞赛第10名方案
  10. 应对Mac 的外接键盘 alt 键失效的问题
  11. 散户通过a股量化数据接口实现自动化实盘交易主要方式有哪些?
  12. OPENWRT-LUCI开发总结-LUCI开发过程中的小技巧
  13. 泛泛而谈的菜鸟学习记录(四)—— Vorley噪声生成原理及噪声边缘提取
  14. 用python绘制熊猫图案_使用熊猫在Python中绘制数据
  15. TO B是什么?TO C呢?
  16. uni-app-地图中心设置图标-获取坐标
  17. 最小二乘法多项式曲线拟合数学原理及其C++实现
  18. 新的开始,与大学告别
  19. win10系统访问局域网服务器,Win10系统不能访问局域网共享磁盘的解决方法
  20. 【深入理解RabbitMQ】RabbitMQ exclusive和mandatory的理解

热门文章

  1. 无损批量合并视频 附工具
  2. 串口控制74HC164C语言,51单片机74HC164串口控制数码管显示
  3. 百度地图SDK for Android【覆盖物】
  4. 股权转让项目:厦门古龙温泉山庄开发有限公司60%股权转让
  5. 百度百科首页登录入口在哪,个人如何创建百度百科
  6. D7写的金税清成助力核心代码
  7. 阿里云过户找不到账号安全组ID问题
  8. 拼多多直播带货,中小主播及商家的新机会
  9. 感谢时光让我在最美的年纪遇到你
  10. HCIE 面试资料-OSPF