ucarp的安装
UCARP简介
UCARP允许多个主机共享一个虚拟的ip地址,以提供自动的故障恢复功能,当其中某个主机宕机时,其它的主机会自动接管服务。UCARP是CARP协议(通用地址冗余协议,最早在OpenBSD上实现)的linux实现版本,同时也能移植到其它多个unix平台。CARP协议的特点在于其非常低的开销,主机间使用加密数据传递信息,并且在冗余主机之间不需要任何额外的网络链接(在README中有ucarp的简单部署实例)。
UCARP的官方网站:http://www.ucarp.org/project/ucarp
以下所有下载文件的地址为:http://www.vdisk.cn/wl826214?tag=&p=1
配置需求
两个或多个主机以构成冗余主机组,这里假定两个,分别为:
master 192.168.0.11
slave 192.168.0.12
一个共享的虚拟ip地址,用以对外提供可靠的服务,冗余主机组中的某个主机会对会对这个ip上的服务进行应答
vip 192.168.0.10
一个1-255之间的共享标识符,随意设置
一个共享的密码(使得网络间传输的消息都为密文),随意设置
当冗余组中某个主机成为MASTER时执行的脚本程序---vip-up.sh
当冗余组中某个主机不再是MASTER是执行的脚本程序---vip-down.sh
安装
先卸载掉libpcap
rpm -e --nodeps libpcap
加--nodeps卸载,否则无法卸载
32位机的话,按以下步骤安装:
下载
libpcap-devel-0.9.4-14.el5.i386.rpm
[root@AvatarNode ~]# rpm -ivh *.rpm
64位机的话,按以下步骤安装:
下载
libpcap-devel-0.9.4-15.el5.x86_64.rpm
libpcap-0.9.4-15.el5.x86_64.rpm
[root@nAvatarNode ~]# rpm -ivh *.rpm
注意
(1)要在root用户下安装
(2)对应的ucarp执行程序在/usr/sbin/ucarp
脚本编写
编写ucarp运行脚本
[root@AvatarNode ~]# vim /etc/master.sh
#!/bin/sh
echo "hadoop" | sudo -S /usr/sbin/ucarp -i eth0 -v 40 -p gw22 -a 192.168.32.22 -u /etc/master-up.sh -d /etc/master-down.sh -s 192.168.32.32 --preempt --neutral --advbase=1
注意:这里的hadoop是一般用户的密码(根据自己的设定填写),sudo -S表示从文件而不是标准输入读取,这样就可以以一般用户的身份直接执行/etc下的脚本,而不用切换到root用户下
Ucarp参数简述
-v vip标识 –p 密码
–u 当机器为升为master时运行的脚本
–d 当机器降为slave时运行的脚本
–s心跳ip地址 –a vip地址
--preempt 表示以最快的速度成为主服务器的角色
--nuetral 如果是备份主机,启动的时候不运行downscript.
--advbase 广播的频率
编写机器升为master时运行的脚本
[root@AvatarNode ~]# vim /etc/master-up.sh
#!/bin/sh
echo "hadoop" | sudo -S /sbin/ip addr add 192.168.32.22/24 dev eth0
编写机器降为slave时运行的脚本
[root@node2 ~]# vim /etc/master-down.sh
#!/bin/sh
/sbin/ip addr del 192.168.32.22/24 dev eth0
如果是安装.tar.gz文件,则可能出现找不到pcap.h或者lipcap.so.1的情况
在/usr/lib中添加/usr/local/lib/libpcap.so.1的链接
[root@localhost bandwidthd]# cd /usr/local/lib/
[root@localhost lib]# cp libpcap.so.1 /usr/lib
[root@localhost lib]#ldconfig
这里若不ldconfig,则会出现如下错误:
error while loading shared libraries: libpcap.so.1: cannot open shared object file: No such file or directory
启动服务
[hadoop@AvatarNode ~]# . /etc/master.sh
检测是否安装成功
[hadoop@AvatarNode ~]# ps -ef | grep ucarp
[hadoop@AvatarNode ~]# ip addr show
[hadoop@AvatarNode ~]# ssh 192.168.0.10 hostname //如果正确显示了AvatarNode则说明虚拟IP运行成功
注意:如果ucarp正常启动,但vip脚本未能正确启动,可能是/etc/vip-up.sh和/etc/vip-down.sh的权限问题,修改权限为747即可
nohup后台运行
nohup /etc/ucarp.sh &
注意:
1. 在脚本编写中第一行确定了执行命令/bin/sh,所以这里不用写成nohup sh /etc/ucarp.sh &
2. 脚本要以绝对路径的方式书写
浙公网安备 33010602011771号