软件官方下载地址:
三。检查内核是否支持ipvs功能
modprobe -l|grep ipvs,下面是我本机输出的列表,你的有可能与不同,但只要有下列类似ip_vs输出,证明你的内核巳支持ipvs,否则你还必须下载内核原代码重新译内核。
/lib/modules/2.6.9-67.0.22.EL/kernel/net/ipv4/ipvs/ip_vs_sed.ko
/lib/modules/2.6.9-67.0.22.EL/kernel/net/ipv4/ipvs/ip_vs_dh.ko
/lib/modules/2.6.9-67.0.22.EL/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko
/lib/modules/2.6.9-67.0.22.EL/kernel/net/ipv4/ipvs/ip_vs_wrr.ko
/lib/modules/2.6.9-67.0.22.EL/kernel/net/ipv4/ipvs/ip_vs_wlc.ko
/lib/modules/2.6.9-67.0.22.EL/kernel/net/ipv4/ipvs/ip_vs_nq.ko
/lib/modules/2.6.9-67.0.22.EL/kernel/net/ipv4/ipvs/ip_vs_lc.ko
/lib/modules/2.6.9-67.0.22.EL/kernel/net/ipv4/ipvs/ip_vs_lblc.ko
/lib/modules/2.6.9-67.0.22.EL/kernel/net/ipv4/ipvs/ip_vs_ftp.ko
/lib/modules/2.6.9-67.0.22.EL/kernel/net/ipv4/ipvs/ip_vs_rr.ko
/lib/modules/2.6.9-67.0.22.EL/kernel/net/ipv4/ipvs/ip_vs_sh.ko
/lib/modules/2.6.9-67.0.22.EL/kernel/net/ipv4/ipvs/ip_vs.ko
四。安装第二步下载的heartbeat软件及配置heartbeat与ldirectord
a)录找配置实例文件
rpm -qd heartbeat|grep ha.cf
rpm -qd heartbeat|grep haresources
rpm -qd heartbeat-ldirectord|grep ldirectord.cf
如我本机中ha.cf 与 haresources安装好后在/usr/share/doc/heartbeat-2.1.3/目录下,而ldirector.cf配置文件是在/usr/share/doc/heartbeat-ldirectord-2.1.3/下。找到后将ha.cf与haresources挎至/etc/ha.d与/etc/ha.d/conf目录下,而ldirectord.cf挎至/etc/ha.d/conf目录下。
b)修改配置文件.
1.以下是我/etc/ha.d/ha.cf中我注释掉的内容:
debugfile /var/log/ha-debug---heartbeat debbug日志文件路径
logfile /var/log/ha-log----heartbeat 日志文件路径
keepalive 2 心跳检测时间间隔
deadtime 30 多久没有检测到心跳时宣布死亡
warntime 10
initdead 120 heartbeat第一次启动时启动其所控资源的时间
udpport 694 heartbeat监听端口
bcast eth0 # Linux心跳路径,最好不要与正常生产网络中的设备混在一起
watchdog /dev/watchdog 启动内核看门狗功能
node zhanghy 主节点主机名称(必须同uname -n返回的主机名相同)
node host188 备份主机名称(同上)
ping 192.168.5.1 ping我内部网关地址,主要是利用ipfail功能检测主服务器网络是否正常
ping 192.168.5.2 同上
respawn hacluster /usr/lib/heartbeat/ipfail heartbeat的一插件
apiauth ipfail gid=haclient uid=hacluster
2.下面是我在haresources中修改的项
zhanghy 192.168.5.236/24/eth0/192.168.5.255 ldirectord::ldirectord.cf LVSSyncDaemonSwap::master
haresources中语法格式如下:
lvs director主机服务器名称 vip地址/掩码/监听网卡/广播地址 资源脚本(注:资料脚本必须位于/etc/init.d/或/etc/ha.d/resource.d下,且不能随机一启动)
3.ldirectord.cf的配置文件如下
# Global Directives
checktimeout=3 超时时间
checkinterval=1 检测真实服务器的间隔
#fallback=127.0.0.1:80
autoreload=yes 表示修改ldirectord.cf配置文件ldirectord自动加载
logfile="/var/log/ldirectord.log"
#logfile="local0"
#emailalert="zhanghuiyun0978@gmail.com"
#emailalertfreq=3600
#emailalertstatus=all
quiescent=yes 如果真实服务器失败,ldirectord所采取的动作,注意如果主里设为yes,则必须在内核中修改下列文件:
echo "1" >/proc/sys/net/ipv4/vs/expire_quiescent_template
echo "1" >/proc/sys/net/ipv4/vs/expire_nodest_conn
# Sample for an http virtual service
virtual=192.168.5.236:80 增加一台ip地址为192.168.5.236虚拟服务器
real=192.168.5.45:80 gate 对虚拟服务器80端口的访问重定向ip地址为192.168.5.45的真实服务器的80端上
real=192.168.5.216:80 gate 意义同上
# real=192.168.5.238:80 gate
fallback=127.0.0.1:80 gate 如果两台真实服务器都无效,则定向本机的lo地址
service=http 指定服务类型
request="testpage" ldirectord检查真实服务器时用到的页面
receive="test page" ldirectord所请求页面内的内容
# virtualhost=some.domain.com.au
scheduler=rr lvs-dr调度方法,rr表示循环调用
persistent=600 tcp连接时间
netmask=255.255.255.255 掩码
protocol=tcp 协议类型
checktype=negotiate ldirectord检测真实服务器的方式
# checkport=80
request="testpage" 同上可不用
receive="test page"同上可不用
# virtualhost=
ldirectord工作原理:
ldirectord需要你在真实服务器内启用apache服务器,并在每台真实服务器web服务器的根目录下建立你在配置文件所指定的文件与内容,然后ldirectord通过循环检查此文件来确定真实服务器是否存活,如果不存活,则自动将其权重设为0,以确保后面客户的连接不会再导向失效的真实服务器,如果真实服务修复上线后,则其又将它的权重设为以使它能够继续为客端连接提供服务。