• 欢迎访问Ppabc博客网站,专注于Linux、CentOS、Apache、Nginx、MySQL、PHP等开源工具安装优化的技术博客,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入Ppabc博客
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏Ppabc博客吧

ucarp for freebsd

baidu空间 admin 11年前 (2008-03-18) 308次浏览

http://hi.baidu.com/freebsd/blog/item/633a5bb54a406bce36d3cac8.html
UCARP 的调试记录

通常使用 VRRP(VirtualRouterRedundancyPro2 tocol 虚拟路由器冗余协议)来实现路由器的双机冗余,但是它是有版权的,所以 OpenBSD 开发了开放协议 CARP (CommonAddressRedundancyProtoco 通用地址冗余协议),而 UCARP(UserlandCARP)协议则是 CARP 的 Linux 版本,”http://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。

]]>


Selinux 中国 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:ucarp for freebsd
喜欢 (0)