RHEL6LVS+keepalived群集.docx
- 文档编号:691893
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:11
- 大小:105.50KB
RHEL6LVS+keepalived群集.docx
《RHEL6LVS+keepalived群集.docx》由会员分享,可在线阅读,更多相关《RHEL6LVS+keepalived群集.docx(11页珍藏版)》请在冰点文库上搜索。
RHEL6LVS+keepalived群集
LVS(DR)+keepalive本文制作人:
成都LD本文出自:
追梦QQ空间
准备工作:
注:
本实验在虚拟机上实现
IP设置以及部署:
RealServer1:
192.168.0.111(windows)
RealServer2:
192.168.0.17(windows)
RealServer3:
192.168.0.20(linux)
RealServer4:
192.168.0.100(linux)
VIP(虚拟IP):
192.168.0.200
用户IP:
192.168.0.110
两台虚拟机安装Centos5.4
Centos1:
192.168.0.36(keepalived:
MASTER)
Centos2:
192.168.0.35(keepalived:
BACKUP)
拓扑图如下:
需要在windows服务器上配置VIP,可以使用下面的方法:
1.在控制面板里添加一个硬件设备,MicrosoftLoopbackAdapter,如下图:
控制面板·添加硬件·下一步·选择“是,硬件已连接”·下一步·选择“添加新硬件”·下一步·选择“安装我手动从列表中选择硬件”·下一步·选择“网络适配器”·下一步
下一步··完成
2.设置LoopbackAdapter(vip)IP,掩码随意:
确定后禁用网卡。
根据目前配置的lvs运作有半个月左右就发现问题了。
配置虚拟网卡的网关之后,可能会导致部分主机无法远程桌面连接,所以找了很久的问题,将网关取消后正常了。
所以在此建议大家不要配置网关。
3.进注册表编辑器,搜索这个“192.168.0.200”vip,把掩码改成255.255.255.255,修改完成以后,按F3键查找下一个以依修改,然后禁用启用网卡即可(在windowserver2003系统中有二处)。
修改完成后,启用网卡再看相应MicrosoftLoopbackAdapter的IPMASK就变成了255.255.255.255。
然后在IIS的相应站点下配置IP地址,可使用VIP地址或使用‘全部未分配选项’。
如下图:
这样配置就完成了,之后用:
c:
\>telnet192.168.0.11180和c:
\>telnet192.168.0.20080看一下配置是否已正常启用。
这样就完成了windows服务器的配置工作
下面配置linux方面
需要的安装:
#yuminstallopenssl-devel
#yuminstallkernel-devel
#yuminstallgcc*
#yuminstallipvsadm
#wgethttp:
//www.keepalived.org/software/keepalived-1.1.18.tar.gz
#tarzxvfkeepalived-1.1.18.tar.gz
#cdkeepalived-1.1.18
#ln-s/usr/src/kernels/2.6.18-92.el5-i686//usr/src/linux
#./configure--prefix=/usr/local/keepalived
显示结果:
------------------------
....
Compiler:
gcc
Compilerflags:
-g-O2
ExtraLib:
-lpopt-lssl-lcrypto
UseIPVSFramework:
Yes(这里必须为yes)
IPVSsyncdaemonsupport:
Yes(这里必须为yes)
UseVRRPFramework:
Yes(这里必须为yes)
UseLinkWatch:
No
注:
如果只是一项YES说明keepalived默认编译时是在/usr/src/linux下找内核源代码,
#make&&makeinstall#编译
做成启动服务
#ln-s/usr/local/keepalived/etc/rc.d/init.d/keepalived/etc/rc.d/init.d/
#ln-s/usr/local/keepalived/etc/sysconfig/keepalived/etc/sysconfig/
#mkdir/etc/keepalived
#ln-s/usr/local/keepalived/etc/keepalived/keepalived.conf/etc/keepalived/
#ln-s/usr/local/keepalived/sbin/keepalived/usr/sbin/
#servicekeepalivedstart#关闭:
stop
LVS在3种方式下均需要打开ipforward功能,这可以配置/etc/sysctl.conf.文件,保证其中有如下一行(注:
该步骤在网上某些文章中提到,这里也就随手多做了一步):
#vi/etc/sysctl.conf
net.ipv4.ipforward=1(添加下面几行)
net.ipv4.conf.all.send_redirects=1
net.ipv4.conf.default.send_redirects=1
net.ipv4.conf.eth0.send_redirects=1
net.ipv4.conf.eth0.arp_announce=2
:
wq
#sysctl-p#然后执行下面命令使配置生效:
#vi/etc/keepalived/keepalived.conf
!
ConfigurationFileforkeepalived
global_defs{
notification_email{
875179148@
}
notification_email_fromAlexandre.Cassen@firewall.loc
smtp_server127.0.0.1
smtp_connect_timeout30
router_idLVS_DEVEL
}
vrrp_instanceVI_1{
stateMASTER#备用的lvs服务器改为BACKUP
interfaceeth0#HA监测网络接口
virtual_router_id51#主、备机的virtual_router_id必须相同
priority100#主、备机取不同的优先级,主机值较大,备份机值较小,值越大优先级越高
advert_int1#VRRPMulticast广播周期秒数
authentication{
auth_typePASS
auth_pass1111
}
virtual_ipaddress{
192.168.0.200#多个虚拟IP换行即可
}
}
virtual_server192.168.0.20080{
delay_loop6#健康检查时间间隔,单位是秒
lb_algowrr#负载均衡调度算法,互联网应用常使用wlc或rr。
lb_kindDR#负载均衡转发规则。
一般包括DR,NAT,TUN3种,在我的方案中,都使用DR的方式。
persistence_timeout50#同一ip50秒内的请求都发送到同一realserver
protocolTCP#转发协议protocol.一般有tcp和udp两种
real_server192.168.0.1780{
weight2#服务器权重,权重越高收到请求越多一点。
TCP_CHECK{#检测服务器存活的方式
connect_timeout3#检测连接超时时间
nb_get_retry3#检测次数
delay_before_retry3#每次检测间隔时间
connect_port80#检测的端口
}
}
real_server192.168.0.11180{
weight2
TCP_CHECK{
connect_timeout3
nb_get_retry3
delay_before_retry3
connect_port80
}
}
real_server192.168.0.2080{
weight2
TCP_CHECK{
connect_timeout3
nb_get_retry3
delay_before_retry3
connect_port80
}
}
real_server192.168.0.10080{
weight2
TCP_CHECK{
connect_timeout3
nb_get_retry3
delay_before_retry3
connect_port80
}
}
}
:
wq
注:
主备LVS服务器只是更改stateMASTER改为BACKUP,优先级低于主LVS服务器就好了
然后我们使用如下命令启用keepalived
#servicekeepalivedstart
我们可以通过下面指令来查看相应进程:
#psaux|grepkeepalived
------------------------------
sr/local/keepalived/etc/keepalived/keepalived.conf
root176700.00.24932564?
Ss19:
030:
00keepalived-D
root176710.00.649761416?
S19:
030:
02keepalived-D
root176720.00.44976928?
S19:
030:
00keepalived-D
....这里注意keepalived要启动一个主并fork两个子进程,所以这里显示了三个进程。
这里我们可以下面指令检查一下配置是否生效:
#ping192.168.0.200-c4
#telnet192.168.0.20080
#ipaddlist#查看vip是否生效。
或者使用ipa
如果正常的话,就说明keepalived已启用了我们的配置。
注:
之前本人配置过程中发现telnet经常无法正常访问,可以使用下面指令查看80端口是否启用:
#netstat-npl|grep:
80#windows下相应指令为:
netstat-an|findstrLISTEN
也可以使用下面指令检查LVS进程:
#lsmod|grepip_vs
到这里就完成了192.168.0.35这台虚拟机上的keepalived配置。
然后重复1-7这些步骤,在192.168.0.36上也安装并配置keepalived,这里要注意的是在keepalived.conf文件中要将stateMASTER改成stateBACKUP以及优先级的设置。
上面已经设置了windows的真实服务器,和lvs服务器,下面设置linux的真实服务器:
我们实用脚本的方式完成:
(2台linux都的相同操作)
#touchrs.sh
#virs.sh
#!
/bin/bash
#2011-04-23byMinyoni
VIP=192.168.0.200
/etc/rc.d/init.d/functions
case"$1"in
start)
ifconfiglo:
0$VIPnetmask255.255.255.255broadcast$VIP
/sbin/routeadd-host$VIPdevlo:
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/null2>&1
echo"RealServerStartOK"
;;
stop)
ifconfiglo:
0down
routedel$VIP>/dev/null2>&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"RealServerStoped"
;;
*)
echo"Usage:
$0{start|stop}"
exit1
esac
exit0
:
wq
#chmod755rs.sh***赋予可执行权限***
千万要记得你的rs脚本保存在哪里了
rs脚本的用法
#./rs.shstart***启动realserver的虚拟IP***
#./rs.shstop***停止realserver的虚拟IP***
我们现在启动realserver的虚拟IP
#./rs.shstart
RealServerStartOK***提示启动虚拟IP成功***
接着查看一下
#ifconfiglo:
0***查看虚拟IP信息,你会看到信息***
然后把其余1台都执行一次
#./rsstar
回到主LVS上查看ipvsadm运行情况
#watchipvsadm–ln(停掉WEB服务的将不会在列表中。
)
[root@localhost~]#watchipvsadm-ln
Every2.0s:
ipvsadm-lnSatApr2318:
00:
072011
IPVirtualServerversion1.2.1(size=4096)
ProtLocalAddress:
PortSchedulerFlags
->RemoteAddress:
PortForwardWeightActiveConnInActConn
TCP192.168.0.200:
80wrrpersistent50
->192.168.0.100:
80Route200
->192.168.0.20:
80Route200
->192.168.0.17:
80Route200
->192.168.0.111:
80Route200
注:
根据后期运行状态表示,负载很不均衡。
这个问题的解决办法是将“keepalived.conf配置文件中的persistence_timeout这行注释掉。
还有只有使用wrr、wlc等调度机制权重的配置才有效。
”
实用虚拟IP:
http:
//192.168.0.200,可以采取停止服务的方法来测试你的调度是否成功。
谢谢!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RHEL6 LVS+keepalived群集 LVS keepalived 群集