http://hi.baidu.com/freebsd/blog/item/633a5bb54a406bce36d3cac8.html
UCARP的调试记录
通常使用VRRP(VirtualRouterRedundancyPro2 tocol虚拟路由器冗余协议)来实现路由器的双机冗余,但是它是有版权的,所以OpenBSD开发了开放协议CARP (CommonAddressRedundancyProtoco 通用地址冗余协议),而UCARP(UserlandCARP)协议则是CARP的Linux版本,”www.ucarp.org“网站提供开放源码同名软件.
可以在README里看到相关说明:”The software has been successfully tested on Linux 2.4, Linux 2.6, MacOS X,OpenBSD, MirBSD and NetBSD”,似乎就是没说FreeBSD.
系统环境: 机器1: uxixsir1 172.18.22.82 FreeBSD 6.1-RELEASE
机器2: unixsir2 172.18.22.83 FreeBSD 6.1-RELEASE
拟共享的ip为”172.18.22.88″
网卡类型: lnc0
1:安装ucarp(ports or tar包随便你,目前最新版本为”1.2″)
#cd /usr/ports/net/ucarp/
#make install clean
产生的可执行文件为”/usr/local/sbin/ucarp”
2:产生脚本
#cd /etc/
#vi vip-up.sh
内容为:
#! /bin/sh
exec 2> /dev/null
/sbin/ifconfig lnc0 alias 172.18.22.88 netmask 255.255.255.0
#vi vip-down.sh
内容为:
#! /bin/sh
exec 2> /dev/null
/sbin/ifconfig lnc0 -alias 172.18.22.88
#vi ucarp.sh
内容为:
#!/bin/bash
cd /etc
/usr/local/sbin/ucarp -i lnc0 -s 172.18.22.82 -v 10 -p password -a 172.18.22.88 -b 2 -u vip-up.sh -d vip-down.sh -r 5
在另外一台机器上只需要修改”-s”候的ip地址就可以了.以上共使用了三个脚本,名为: vip-up.sh 、 vip-down.sh、 ucarp.sh,其实名字和参数都是可以随便定义的.
3:具体测试
在”机器1″和”机器2″上分别启动”ucarp.sh”(可以放到后台去运行,也可以用supervise方式启动运行),可以看到首先启动的是”master”机器,即”172.18.22.88″是绑定到了”机器1″上,”机器2″为”backup”机器.具体测试方法不多说了,说多了没啥意思了.
4:小结
vrrp、ha、carp都算实际生产中用过了,感觉vrrp和carp用的最实用.剩下的配合ipvs等再去做另外的应用都大同小异,也都应用了.有兴趣自己再去琢磨.这类热备在重量级的服务中估计都是有人为参与切换的;说明下:也许有人会说这些东西还不如写个脚本相互ping几下,ping不通就加个alias_ip或自己写点发些信号之类的东西,其实怎么都可以,不过已经得到验证的产品可能会更好点!
补充实验信息,原帖:
http://bbs.chinaunix.net/viewthread.php?tid=930268&highlight=ucarp
ucarp主要应该是用于例如关键的数据库,或者是lvsadmin的调度机器,或者其他重要的,当他挂掉的时候,必须有机器自动去顶上。
同步的话。mysql可以使用
——————————
MYSQL的master/slave数据同步配置
我的测试环境.基本上数据是瞬间同步,希望对大家有帮助
redhat 9.0
mysql3.23.57
mysql数据同步备份
A服务器: 192.168.1.2 主服务器master
B服务器: 192.168.1.3 副服务器slave
A服务器设置
#mysql –u root –p
mysql>GRANT FILE ON *.* TO backup@192.168.1.3 IDENTIFIED BY ‘1234’;
mysql>\exit
上面是Master开放一个账号backup密码1234给IP:192.168.1.3有档案处理的权限
mysqladmin –u root –p shutdown
备份Master所有数据库..通常都用tar指令.
#tar –cvf /tmp/mysql.tar /var/lib/mysql
注意:tar的时候,MySQL是要在stop情况下
在A机器上修改/etc/my.cnf
在[mysqld]区段内加入参数
log-bin
server-id=1
sql-bin-update-same
binlog-do-db=vbb
重启A服务器mysql
此时因为有加入log-bin参数,因此开始有index产生了,在/var/lib/mysql目录下有.index档案纪录数据库的异动log.
B服务器设置
设定/etc/my.cnf
在[mysqld]区段加入
master-host=192.168.1.2
master-user=backup
master-password=1234
master-port=3306
server-id=2
master-connect-retry=60 预设重试间隔60秒
replicate-do-db=vbb 告诉slave只做vbb数据库的更新
log-slave-updates
——————————————
以上为google下获得
不要试图在mysql运行的时候使用sync工具去同步两个数据库!
————————————————————————————————
而web的同步。例如10台服务器做集群,那么就可以使用rsync 来同步网页数据。对于图片和默写视屏可以使用nfs来挂载到其余的机器上。
推荐阅读此贴
http://fanqiang.chinaunix.net/a6/b7/20010908/1305001258.html
————————————————————————————————————
总结:1 ucarp carp只是用来作为充当那种屹立不倒的角色,一个倒下去,另外一个顶上来。 它不设计到热冷备份。这些是有其他工具来做的。
2,ucarp carp 和ipvs 并不是互相需要配合的, 可以使用9台机器rsync同步web数据,然后1台机器做ipvsadmin。