Centos5.4 UCARP 热备
1
Ucarp简介
UCARP
允许多个主机共享一个虚拟的
ip
地址,以提供自动的故障恢复功能,当其中某个主机宕机时,其它的主机会自动接管服务。
UCARP
是
CARP
协议(通用地址冗余协议,最早在
OpenBSD
上实现)的
linux
实现版本,同时也能移植到其它多个
unix
平台,
UCARP
的官方网站:
http://www.ucarp.org/project/ucarp
。
CARP协议的特点在于其非常低的开销,主机间使用加密数据传递信息,并且在冗余主机之间不需要任何额外的网络链接。
下载ucarp源代码包:http://download.pureftpd.org/pub/ucarp/,在README中有ucarp的简单部署实例。
2
设置UCARP基本信息:
1. 多个主机以构成冗余主机组;
2. 一个共享的虚拟
ip地址,用以对外提供可靠的服务,冗余主机组中的某个主机会对会对这个ip上的服务进行应答;
3. 对于每个主机,需要配置一个真实的
ip地址;
4. 一个
1-255之间的共享标识符;
5. 一个共享的密码(使得网络间传输的消息都为密文);
6. 当冗余组中某个主机成为
MASTER时执行的脚本程序;
7. 当冗余组中某个主机不再是
MASTER是执行的脚本程序;
3
Ucap具体参数详解
--inter (-i <if>: bind interface <if> (
网络接口
绑定网络接口
)
--srcip=<ip> (-s <ip>: source (real) IP address of that host (
源地址真实
ip)
--vhid=<id> (-v <id>: virtual IP identifier (1-255) (
虚拟
ip
标识
(1-255))
--pass=<pass> (-p <pass>: password (
密码
)
--preempt (-P): becomes a master as soon as possible (
以最快的速度成为主服务器的角色
)
--neutral (-n): don't run downscript at start if backup (
如果是备份主机
,
启动的时候不运行
downscript.)
--addr=<ip> (-a <ip>: virtual shared IP address(
虚拟共享
ip
地址
)
--help (-h): summary of command-line options (
命令行帮助
)
--advbase=<seconds> (-b <seconds>: advertisement frequency (
广播的频率
(
秒
))
--advskew=<skew> (-k <skew>: advertisement skew (0-255) (
不广播
)
用来设置公告间隔时间, 公式(以秒计)为advskew/256+advbase。advbase可以减少网络流量或设置更长的主力机"轮循"时间(直至备份机来顶替它);advskew设置哪台热备份计算机在故障转移时优先成为主力机(这是必需的)
--upscript=<file> (-u <file>: run <file> to become a master (
运行一个脚本文件,使本服务器成为主服务器
)
--downscript=<file> (-d <file>: run <file> to become a backup (
运行一个脚本文件,使本服务器成为从服务器
)
--deadratio=<ratio> (-r <ratio>: ratio to consider a host as dead (
认定主机已经死掉的比率(阀值)
)
--shutdown (-z): call shutdown script at exit (
在退出的时候,执行关闭的脚本
)
--daemonize (-B): run in background (
运行在后台
)
--facility=<facility> (-f): set syslog facility (default=daemon) (
设置
syslog
工具
,
默认在后台
)
Ucarp参数简述:
-v vip标识
–p密码
–a vip地址
–u 当机器为升为master时运行的脚本
–d 当机器降为slave时运行的脚本
–s心跳ip地址
–P与-k结合最小的为master机器
–B以daemon方式运行
4
配置示例
4.1
centos 5.4
在/etc/yum.repos.d/目录下建
ucarp.repo文件内容如下
[ucarp]
name=ucarp RPM Repository for Red Hat Enterprise Linux
baseurl=
http://mirrors.ircam.fr/pub/dag/redhat/el$releasever/en/$basearch/dag
http://rh-mirror.linux.iastate.edu/pub/dag/redhat/el$releasever/en/$basearch/dag
http://wftp.tu-chemnitz.de/pub/linux/dag/redhat/el$releasever/en/$basearch/dag
http://archive.cs.uu.nl/mirror/dag.wieers/redhat/el$releasever/en/$basearch/dag
http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
http://mirror.cpsc.ucalgary.ca/mirror/dag/redhat/el$releasever/en/$basearch/dag
http://rpmfind.net/linux/dag/redhat/el$releasever/en/$basearch/dag
http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag
http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
enabled=1
gpgcheck=1
gpgkey=
http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
然后
yum 方式安装即可 -
à yum install ucarp
主:192.168.2.24此ip为心跳检测ip
[root@THS-LEVEL2 ~]# cat /etc/master-up.sh
#!/bin/sh
/sbin/ip addr add 211.138.113.105/24 dev eth1
/sbin/route add default gw 211.138.113.1
[root@THS-LEVEL2 ~]# cat /etc/master-down.sh
#!/bin/sh
/sbin/ip addr del 211.138.113.105/24 dev eth1
/sbin/route del default gw 211.138.113.1
[root@THS-LEVEL2 ~]# cat /etc/master.sh
#!/bin/sh
/usr/sbin/ucarp -v 40 -p gw105 -a 211.138.113.105 -u /etc/master-up.sh -d /etc/master-down.sh -s 192.168.2.24 -P -B
备:192.168.2.22此ip为心跳检测ip
[root@localhost ~]# cat /etc/slave-up.sh
#!/bin/sh
/sbin/ip addr add 211.138.113.105/24 dev eth1
/sbin/route add default gw 211.138.113.1
/bin/sh /root/mobile/mobi.sh
[root@localhost ~]# cat /etc/slave-down.sh
#!/bin/sh
/sbin/ip addr del 211.138.113.105/24 dev eth1
/sbin/route del default gw 211.138.113.1
/bin/sh /root/mobile/stop.sh
#/bin/ps -ef|grep mobi|awk '{print $2}'|xargs kill -9
[root@localhost ~]# cat /etc/slave.sh
#!/bin/sh
/usr/sbin/ucarp -v 40 -p gw105 -a 211.138.113.105 -u /etc/slave-up.sh -d /etc/slave-down.sh -s 192.168.2.22 -P -k 15 –B
4.2
freebsd
在
http://download.pureftpd.org/pub/ucarp/上下载ucarp文件
安装
./configure && make && make install
主 192.168.2.254
mobigw2# cat /etc/master.sh
/usr/local/sbin/ucarp -v 96 -p 196bile -a 211.138.113.196 -u /etc/master-up.sh -d /etc/master-down.sh -s 192.168.2.254 -P -B
mobigw2# cat /etc/master-up.sh
#!/bin/sh
ifconfig em0 add 211.138.113.196 netmask 255.255.255.0
ifconfig em1 192.168.2.1/24 alias
route add default 211.138.113.1
mobigw2# cat /etc/master-down.sh
#!/bin/sh
ifconfig em0 -alias 211.138.113.196
ifconfig em1 -alias 192.168.2.1
route del default 211.138.113.1
备192.168.2.3
zjyd_181# cat /etc/slave.sh
/usr/local/sbin/ucarp -v 96 -p 196bile -a 211.138.113.196 -u /etc/slave-up.sh -d /etc/slave-down.sh -s 192.168.2.3 -P -k 25 -B
zjyd_181# cat /etc/slave-up.sh
#!/bin/sh
ifconfig em1 add 211.138.113.196 netmask 255.255.255.0
ifconfig em0 192.168.2.1/24 alias
#route add default 211.138.113.1
zjyd_181# cat /etc/slave-down.sh
#!/bin/sh
ifconfig em1 -alias 211.138.113.196
ifconfig em0 -alias 192.168.2.1
5
启动服务
主机器上执行/etc/master.sh
备机器上执行/etc/slave.sh
并将主被两台机器服务添加到开机启动项:
cp /etc/master.sh /etc/rc.d/rc.local
cp /etc/slave.sh
/etc/rc.d/rc.local
6
功能实现
当主机器掉之后,从机器会接管主机器ip及相关服务;之后主机器重新起来后,主机器会把从的机器ip抢过来,并且备机器会从“主”降为从