svn高可用集群搭建

1.环境准备(以下是我虚拟机配置):

服务器一:192.168.227.145(RIP) 系统centos 6.5

服务器二:192.168.227.146(RIP) 系统centos 6.5

VIP:192.168.227.147

以上内容VIP为虚拟IP,RIP为服务器真实IP,我们访问svn服务器是通过VIP去访问的

2.搭建流程:

2.1 配置yum

在/etc/yum.repos.d/CentOS-Base.repo加上aliyun的yum源

[aliyun-base]
name=Aliyun-Base-CentOS-$releasever
baseurl=http://mirrors.aliyun.com/centos/6/os/x86_64/
gpgcheck=0
 
[aliyun-epel]
name=Aliyun-Epel-CentOS-$releasever
baseurl=http://mirrors.aliyun.com/epel/6Server/x86_64/
gpgcheck=0

2.2 配置ssh双机信任(如果有则忽略这步)

192.168.217.145服务器:

ssh-keygen -t rsa(一直按enter即可)

ssh-copy-id 192.168.217.146

192.168.217.146服务器:

ssh-keygen -t rsa(一直按enter即可)

ssh-copy-id 192.168.217.145

2.3 安装rsync

yum -y install rsync即可

2.4 安装svn服务器

我的svn repos目录在/data/svn

两台svn服务器配置当然一样

以一台举例:

2.4.1.yum -y install subversion(安装svn服务器)

2.4.2.mkdir -pv /data/svn

2.4.3.svnadmin create /data/svn/mytest(创建svn repos目录)

2.4.4.vim /etc/sysconfig/svnserve 文件内容:

OPTIONS="-r/data/svn"         类似于svnserve -d -r /data/svn

2.4.5.在当前svn源目录(我的例子是/data/svn/mytest) hooks加个post-commit文件,一定要给该文件执行权限,它是svn提交后的钩子,作用主要是提交后将svn目录同步到另外一台服务器

post-commit文件内容:

#!/bin/bash
REPOS="$1"
REV="$2"
 
CPATH=$(/usr/bin/dirname $(cd $(/usr/bin/dirname $0)&& pwd))"/"       #获取svn目录根目录
IPARR="192.168.217.145 192.168.217.146"     #svn集群的两个ip
for ip in $IPARR; do
       if/sbin/ifconfig | /bin/grep -E "addr:${ip}" &>/dev/null; then
              continue
       fi
       /bin/ping-c1 -w1 $ip &>/dev/null && /usr/bin/rsync -aP $CPATH $ip:$CPATH
done
 
exit 0

2.4.6.在svn源目录下再加个recovery.sh(该脚本作用是匹配当前服务器和另外一台服务器的版本号,如果当前服务器版本号老于另外一台服务器,则会主动将另外一台服务器的代码同步过来)主svn服务器宕机之后恢复好之后可以使用

该文件路径是/data/svn/mytest/recovery.sh

#!/bin/sh
 
CPATH=$(cd $(/usr/bin/dirname $0) &&pwd)"/"     #获取svn目录根目录
IPARR="192.168.217.145 192.168.217.146"     #svn集群的两个ip
 
for ip in $IPARR; do
       if /sbin/ifconfig| /bin/grep -E "addr:${ip}" &>/dev/null; then
              continue
       fi
       
       if/bin/ping -c1 -w1 $ip &>/dev/null; then
                     ssh_command="/usr/bin/svnlook youngest $CPATH"
                     me_repos=$($ssh_command)
                     ip_repos=$(/usr/bin/ssh $ip $ssh_command)
                     if[ $me_repos -lt $ip_repos ]; then    #如果本机版本号小于对方版本号则要从对方服务器同步
                            /usr/bin/rsync -aP $ip:$CPATH $CPATH
                     fi
       fi
done
exit 0

2.5 heartbeat搭建

在开始搭建之前

修改/etc/hosts加上两行(两台服务器一致)

192.168.217.145 primary

192.168.217.146 backup

再把对应145(hostname primary), 146(hostname backup)

2.5.1. yum -y install heartbeat(两台服务器一致)

2.5.2.在/etc/ha.d目录下创建3个文件ha.cf, haresources, authkeys

ha.cf文件(192.168.217.145)

logfacility   local0
keepalive 1
deadtime 30    #确认节点的宕机时间
warntime 10
initdead 60       #从一个节点切到另一个节点的时间
udpport     694
ucast eth0 192.168.217.146
auto_failback on
node    primary
node    backup
ping 192.168.217.1

ha.cf文件(192.168.217.146)

logfacility   local0
keepalive 1
deadtime 30
warntime 10
initdead 60
udpport     694
ucast eth1 192.168.217.145
auto_failback on
node    primary
node    backup
ping 192.168.217.1

haresources文件(两台服务器一致)

primary                    192.168.217.147/24svnserve

authkeys文件(两台服务器一致)

auth 3
3 md5 Hellotomtop!

3.两台机器service heartbeat start

至此svn集群架构完毕

时间: 2024-11-20 04:04:32

svn高可用集群搭建的相关文章

linux 下heartbeat简单高可用集群搭建

Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.通过Heartbeat我们可以实现双机热备,以实现服务的持续性. linux下基于heartbeat的简单web服务的高可用集群搭建 首先规划好两台主机作为heartbeat的双机热备,命名为node1.lvni.cc(主) ;node2.lvni.cc, node1的eth0IP :192.168.157.148  Vip eth0:0:192.168.157.149 node2的eth0IP :19

MySQL主从复制、读写分离、高可用集群搭建

MySQL主从复制.读写分离.高可用集群搭建  一.服务介绍   1.1 Keepalived     Keepalived,见名知意,即保持存活,其目的是解决单点故障,当一台服务器宕机或者故障时自动切换到其他的服务器中.Keepalived是基于VRRP协议实现的.VRRP协议是用于实现路由器冗余的协议,VRRP协议将两台或多台路由器设备虚拟成虚拟设备,可以对外提供虚拟路由器IP(一个或多个),即漂移IP(VIP). 1.2 ProxySQL ProxySQL是一个高性能,高可用性的MySQL

Flume 学习笔记之 Flume NG高可用集群搭建

Flume NG高可用集群搭建: 架构总图: 架构分配: 角色 Host 端口 agent1 hadoop3 52020 collector1 hadoop1 52020 collector2 hadoop2 52020 agent1配置(flume-client.conf): #agent1 name agent1.channels = c1 agent1.sources = r1 agent1.sinks = k1 k2 #set gruop agent1.sinkgroups = g1 #

MHA 高可用集群搭建(二)

MHA 高可用集群搭建安装scp远程控制http://www.cnblogs.com/kevingrace/p/5662839.html yum install openssh-clients mysql5.7运行环境:centos6.51 主机部署 manager:192.168.133.141test1: 192.168.133.138test2:192.168.133.139 (为master1的备用)test3: 192.168.133.140 test1为主,test2和test3为备

CentOS7/RHEL7 pacemaker+corosync高可用集群搭建

目录 一.集群信息... 4 二.集群搭建... 4 1.制作软件源... 4 2.主机基础配置... 5 3.集群基础环境准备... 7 4.集群资源准备... 9 5.资源配置... 11 6.constraint配置... 12 7.stonith配置... 13 8.集群功能验证... 14 三.集群常用命令及作用... 17 1.验证群集安装... 17 2.查看群集资源... 17 3.使用群集脚本... 17 4.STONITH 设备操作... 17 5.查看群集配置... 17

LVS+Keepalived+Nginx+Tomcat高可用集群搭建(转)

LVS+Keepalived+Nginx+Tomcat高可用集群搭建 最近公司重整架构,十几台服务器而且还要尽可能节约成本.我就谷歌了一下在几种集群之前进行比较最终采用了Keepalived+Nginx做负债均衡高可用.虽然之前也研究过集群,看过很多集群方面的原理和架构,但毕竟没有真正操作过以下案例是在虚拟机中完成实验其实对于高可用搭建来说只用给出Keepalived和Nginx的配置即可后面的一些安装搭建完全是本人项目需要可以不用理睬仅供参考. 本文只是实验搭建记录方便以后在服务器中实施搭建.

Redis安装、主从配置及两种高可用集群搭建

Redis安装.主从配置及两种高可用集群搭建 一.            准备 Kali Linux虚拟机 三台:192.168.154.129.192.168.154.130.192.168.154.131 用户名/密码:root/... ssh设置 修改sshd_config文件,命令为:vim /etc/ssh/sshd_config 将#PasswordAuthentication no的注释去掉,并且将NO修改为YES //kali中默认是yes 将PermitRootLogin wi

heartbeat v1(CRM)+DRBD实现数据库服务器高可用集群搭建

一. 方案简介 本方案采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,数据的一致性由DRBD这个工具来保证.默认情况下只有一台mysql在工作,当主mysql服务器出现问题后,系统将自动切换到备机上继续提供服务,当主数据库修复完毕,又将服务切回继续由主mysql提供服务. 二. 方案优缺点 优点:安全性高.稳定性高.可用性高,出现故障自动切换, 缺点:只有一台服务器提供服务,成本相对较高.不方便扩展.可能会发生脑裂. 三. 方案架构图 四.  方案适用场景 本方案适用于数据库访

LVS高可用集群搭建

最近公司重整架构,前端使用LVS做负债均衡,虽然之前也研究过集群,看过很多LVS原理和架构,但毕竟没有真正操作过,以下案例是在虚拟机中完成实验,记录一下,方便以后在服务器中实施搭建.  架构图如下: 前提介绍:本案例采用Centos7+Keepalived1.3.5+Tomcat9+Mysql5.6+Redis3.2.8+Rabbitmq3.6.10 集群实现的功能有: 1):实现单点访问,利用keepalived的vip实现对不同的后端服务器进行访问: 2):健康检查,利用keepalived