配置LVS(dr)浪费了不少时间!对Linux安装一个软件需要各种依赖包,出错却又无法解决比较痛苦
现在终于搞定了,说下步骤:
1:参考这边文章,http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html 但这篇文章讲的是LVS(NAT) ,网上看到这种模式不是很多人用,主要是估计性能不太好,一般都用LVS(DR)
但有些步骤还是差不多的。
系统平台:CentOS 6.3
Kernel:2.6.32-279.el6.i686
LVS版本:ipvsadm-1.26
keepalived版本:keepalived-1.2.4
系统平台下面这个kernel 是通过命令 uname -r 获取 在下面安装会有用
2:安装软件
安装LVS前系统需要安装popt-static,kernel-devel,make,gcc,openssl-devel,lftp,libnl*,popt*
这么多都需要安装 可以直接通过命令 yum -y install popt-static kernel-devel make gcc openssl-devel lftp libnl* popt*
一下就可以安装这么多了,参考链接:http://www.oschina.net/code/snippet_54100_10351 如果怕还缺什么依赖包 ,直接把链接页面提到的
yum groupinstall "Development Tools" 执行这个
说下这个地方,一定要按照第一个链接页面的步骤执行下去,否则在make&&make install 这个地方报错,如果报错,说明没有按照顺序来,就照着顺序重试下就可以了。ln -s /usr/src/kernels/2.6.32-279.el6.i686//usr/src/linux/
这里面的2.6.32-279.el6.i686就是上面的通过uname -r 获取的。
按照第一个链接一直安装到 开启路由转发 ,开启路由转发好像对LVS(DR)没有多大用,这个功能是针对LVS(NAT)起作用的。
在配置keepalived的时候,就要参考这个链接:http://www.cnblogs.com/mchina/archive/2012/05/23/2514728.html
我是通过直接复制配置的,把虚拟IP和真实IP改下就可以了。端口号都要一致。比如都是80端口。
然后再真实机上面配置Apache,真实机是Linux(centos or ubutu) ,使用window做真实机出了问题,通过LVS访问不到window,我估计在window需要配置什么才能运行,但我没找到什么好的资料。如果在真实机上面配置好Apache后,默认就开了80端口,可以直接ip访问就可以看到页面了。
如果这个时候在LVS机器上运行
# service keepalived restart
# ipvsadm
如果能显示你配置的真实机IP地址,说明成功了一半。
然后就是测试访问虚拟IP 看能不能跳转到真实机的页面上去。我就是卡在这个地方,页面不跳转。ping 虚拟IP是可以ping通的。
如果你也是不能跳转页面就要注意一下注意点:
1:真实机防火墙需要关掉 centos 是 service iptables stop
2:还需要执行一段下面的文件
#!/bin/bash
#description: Config realserver
VIP=192.168.1.61
/etc/rc.d/init.d/functions
case "$1" in
start)
/sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
/sbin/route add -host $VIP dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
/sbin/ifconfig lo:0 down
/sbin/route del $VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
这个在提到的第三个链接页面也有说道执行方式。把上面的内容保存为realserver.sh 文件
# sh realserver.sh start
我执行的时候报了个错,只要他显示realserver start ok就可以了
把上面两步骤执行完在访问虚拟IP就可以跳转页面了。
注意:后来发现改真实机的IP的时候,居然不能显示真实机的IP,发现能显示真实机的IP有个共同点就是装了Apache 直接访问IP就可以看到一个页面
是因为Apache开启开放了80端口,所以机器的80端口要开放。