哦找到了一个好东西。如果单纯是热备的话。不牵扯到均衡。那就十分好的东西

UCARP 1.2版本的文档

软件介绍:
UCARP可以在一对普通的主机上设置虚拟IP地址,并让他们实现自动热备。
这是一个非常简单地址冗余协议,并且他是可以免费下载到的。
它可以用来替换OPENBSD下面的CARP,VRRP。
carp:http://www.openbsd.org/faq/pf/carp.html
vrrp:http://www.chinaunix.net/jh/30/284898.html
主页地址是 http://www.ucarp.org

编译条件:
你必须在你的系统上安装libpcap,UCARP编译需要libpcap的头文件,如果没有安装可以在http://www.tcpdump.org上面找到。
如果你已经具备了上面的条件请按照传统的方式编译安装。
./configure
make install-strip
具体的细节可以参考安装文档 INSTALL 。
这个软件已经成功的在 Linux 2.4, Linux 2.6, MacOS X,OpenBSD, MirBSD and NetBSD 上运行过。

配置需求:
我们必须配置一对虚拟主机
还需要为这个虚拟主机配置一对虚拟的IP,这个是用来说明主机是否正常,如果你需要高可用的服务,这些配置是必需的。
主机共同标识的虚拟IP地址必须在1-255之间。
每个主机还需要一个真实的IP。
每个主机都会在一定的时间发布广播公布他的状态,默认的来说1就表示主机正常,0表示主机有问题。
这个协议非常的精简,所使用的包也非常的小,所以请放心不会因为这个广播而影响到你的网络的正常运行。
一个共享的密码,他在网络上不是明文传送的。
一个脚本,让他在主机出错的时候取代主机状态。
另一个脚本,让他在主机恢复的时候放弃主机状态。

使用方法:
服务通常安装在 :/usr/local/sbin/ucarp
所有侧操作都是通过UCARP这个命令实现的。
想了解参数详情请看 :/usr/local/sbin/ucarp -h

ucarp -h 帮助信息
ucarp 1.2 - Mar 27 2007

--interface=<if> (-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) (????不广播)
--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 (在退出的时候,执行shutdown的指令)
--daemonize (-B): run in background (运行在后台)
--facility=<facility> (-f): set syslog facility (default=daemon) (设置syslog工具,默认在后台)

(使用例子:
管理设置网络接口eth0上的虚拟ip 10.1.1.252,虚拟ip地址标识为1,密码是mypassword,真实地址为10.1.1.1,
运行脚本/etc/vip-up.sh当主机成为主服务器的时候,运行脚本/etc/vip-down.sh当虚拟ip被禁用的时候.
请报告bug到[email protected])
Sample usage:
Manage the 10.1.1.252 shared virtual address on interface eth0, with
1 as a virtual address idenfitier, mypassword as a password, and
10.1.1.1 as a real permanent address for this host.
Call /etc/vip-up.sh when the host becomes a master, and
/etc/vip-down.sh when the virtual IP address has to be disabled.

ucarp --interface=eth0 --srcip=10.1.1.1 --vhid=1 --pass=mypassword \
--addr=10.1.1.252 \
--upscript=/etc/vip-up.sh --downscript=/etc/vip-down.sh

Please report bugs to [email protected].

下面是一个比较好的安装例子。
例如你有一个邮件服务器IP地址是10.1.1.252,每个使用者都在自己的邮件客户端配置了主机IP地址
如果你的邮件服务器不能正常运行,客户端将不能使用这个服务。
现在需要两台服务器,并且配制相同,两台服务器上分别设置地址10.1.1.1 和 10.1.1.2 让两个服务器
都能响应同一IP地址(10.1.1.252)的请求,当一个服务器出现问题停止,另一个服务器接管这个服务。
首先我们来创建一个脚本,用来添加实IP地址,我们先把脚本存放到/etc/vip-up.sh
#! /bin/sh
/sbin/ip addr add 10.1.1.252/24 dev eth0
我们在创建一个用来关闭实IP的脚本,我们先把脚本存放到/etc/vip-down.sh
#! /bin/sh
/sbin/ip addr del 10.1.1.252/24 dev eth0
当然,你可以使用任何方法实现和修改这些脚本,例如你想要添加一个路由,想给你的操作做一个日志,或者直接给你发邮件。
最后别忘了连接你的交换接刷新ARP的缓存,用户都会很快的更新他们的MAC地址列表。
如果你的网卡使用的不是ETH0请根据你的实际情况修改上面脚本中的内容。
别忘了加一个可执行的权限
chmod +x /etc/vip-up.sh /etc/vip-down.sh
现在. 我们现在需要的是一个虚拟的IP标识,我们就使用"42"。我们也需要一个口令,让我们使用"LOVE".
现在我们在第一个主机上添加实IP地址并作相应的标示 10.1.1.1 。(MASTER)
/usr/local/sbin/ucarp -v 42 -p love -a 10.1.1.252 -s 10.1.1.1 &
现在我们在第二个主机上添加实IP地址并作相应的标示 10.1.1.2 。(SLAVE)
/usr/local/sbin/ucarp -v 42 -p love -a 10.1.1.252 -s 10.1.1.2 &
现在你应该能看见一个已经成为了主服务器,另一个成为了从服务器,根据你的实际情况修改你的脚本。
现在我们断开主服务器,你会发现从服务器在几秒种以后接管了主服务器。
你也可以通过"-b"这个参数修改广播时间,多个从服务器当中,广播时间较小的那个将成为主服务器。。
请注意:当一个服务器从另一个服务器接管服务以后将自动变成主服务器,而且不会因为另一个服务器从新使用而降为从服务器
如果你想让一个服务器立即变成主服务器请在这个主机上使用一个"-p"的选项,使另一台变成从服务器。
当UCARP在服务器上第一次会以从服务器方式运行,并且看是否需要变成主服务器。
当进入从服务器状态的时候,正常情况下将运行关闭脚本,这有利于删除旧的临时文件或清除网卡的未知的状态.
然而在一些特殊的环境里,如果ucarp服务还没有启动起来的时候,不需要运行downscript.如果是那样的话,使用-n参数。
当它第一次进入从服务器状态时,不运行关闭脚本在运行以后,发生所有改变从主服务器状态到备份服务器状态
使用"-z"的选项服务器将会先切换到从服务器的状态然后再推出,如果服务器本身工作在从的状态将直接推出。
使用"-r"的选项是让从服务器在主服务器丢失响应多常时间后,把自己升级成为新的主服务器。如果没有指定的话这个值默认是3。
如果UCARP运行在daemon状态(-B 后台运行),他的标准输出和标准错误日志默认将发送给系统的syslog进程,如果你不想记录他可以使用--syslog=none 或这也可以使用你自己的日志工具。

如何获得这个软件:
软件主页: http://www.ucarp.org/ .
邮件地址列表: http://www.ucarp.org/ml/
谢谢你的支持

-Frank DENIS "Jedi/Sector One" <[email protected]> .

你可能感兴趣的:(linux,脚本,网络协议,配置管理,UP)