1 检查内核是否支持ipvs
modprobe -l | grep ipvs/lib/modules/2.6.18-308.el5/kernel/net/ipv4/ipvs/ip_vs.ko……出现上面类似输出,即证明内核默认支持ipvs2 下载及安装【直接yum install ipvsadm安装即可】根据内核版本下载对应的软件包cd /usr/local/srcwget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gztar zxvf ipvsadm-1.24.tar.gzcd ipvsadm-1.24makemake install如果出现如下错误,解决方法:ln -s /usr/src/kernels/2.6.18-308.el5-x86_64/ /usr/src/linuxlibipvs.h:14:23: error: net/ip_vs.h: No such file or directoryipvsadm –help 安装成功,会有提示
find / -name ipvsadm 查看ipvsadm的安装位置3 配置lvs实现负载均衡,配置启动脚本lvs.sh。视需求,将虚拟ip绑定到内网或者外网网卡
#!/bin/bash# lvs.shGW=192.168.1.1# website director vip.WEB_VIP=192.168.1.50WEB_RIP1=192.168.1.148WEB_RIP2=192.168.1.42. /etc/rc.d/init.d/functionslogger $0 called with $1case “$1″ instart)# Clear all iptables rules.#/sbin/iptables -F# Reset iptables counters.# /sbin/iptables -Z# Clear all ipvsadm rules/services./sbin/ipvsadm -C#set lvs vip for dr/sbin/ipvsadm –set 30 5 60/sbin/ifconfig eth1:0 $WEB_VIP broadcast $WEB_VIP netmask 255.255.255.255 up/sbin/route add -host $WEB_VIP dev eth1:0/sbin/ipvsadm -A -t $WEB_VIP:80 -s wrr -p 3/sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP1:80 -g -w 1/sbin/ipvsadm -a -t $WEB_VIP:80 -r $WEB_RIP2:80 -g -w 1touch /var/lock/subsys/ipvsadm >/dev/null 2>&1# set Arp/sbin/arping -I eth1 -c 5 -s $WEB_VIP $GW >/dev/null 2>&1;;stop)/sbin/ipvsadm -C/sbin/ipvsadm -Zifconfig eth1:0 downroute del $WEB_VIP >/dev/null 2>&1rm -rf /var/lock/subsys/ipvsadm >/dev/null 2>&1/sbin/arping -I eth1 -c 5 -s $WEB_VIP $GWecho “ipvsadm stoped”;;status)if [ ! -e /var/lock/subsys/ipvsadm ];thenecho “ipvsadm is stoped”exit 1elseipvsadm -lnecho “……….ipvsadm is OK.”fi;;*)echo “Usage: $0 {start|stop|status}”exit 1esacexit 0执行这个脚本,启动
4 Real Server的配置
#!/bin/bashVIP=192.168.1.50 ####虚拟ipROUTE=192.168.1.1 ####回包走的路由IP 如果服务器上已经设置,可以注释掉start() { ifconfig lo:0 $VIP/32 broadcast $VIP uproute add -host $VIP dev lo:0route add default gw $ROUTE ####如果服务器上已经设置,可以注释掉echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 2 > /proc/sys/net/ipv4/conf/all/arp_announceecho start;}stop() {
route del default gw $ROUTEroute del -host $VIP dev lo:0ifconfig lo:0 downecho 0 > /proc/sys/net/ipv4/conf/all/arp_ignoreecho 0 > /proc/sys/net/ipv4/conf/all/arp_announceecho stop;}case $1 in
start)
start;;stop)stop;;restart)stopstart;;*)echo ‘start | stop’esac在后端真实服务器上,执行以上脚本。ip addr查看是否成功。
5 常用维护命令lvs服务器启动脚本执行后,执行/etc/init.d/ipvsadm save保存启动配置,配置会保存在/etc/sysconfig/ipvsadm里面。就像/etc/sysconfig/iptables的配置一样,可以自由修改,然后执行service ipvsadm start|stop|status|restart等命令。ipvsadm -ln -c 显示当前连接
ipvsadm -ln -c | wc -l 显示当前连接数ipvsadm -ln –stats 显示统计信息ipvsadm -ln –rate 显示连接速率信息ipvsadm -ln –timeout 显示tcp tcpfin udp 的timeout值,也就是启动脚本里/sbin/ipvsadm –set 30 5 60设置的值6 常用调度算法
A 轮叫调度 rr 无状态调度假设所有服务器处理性能均相同,不管服务器的当前连接数和相应速度.算法相对简单,不适用于服务器组中处理性能不一的情况B 加权轮叫调度 wrr当服务器的权值为零时,表示该服务器不可用而不被调度。这样做的目的是将服务器切除服务,同时与其他加权算法保持一致C 最小连接调度 lc 动态调度算法把新的连接请求分配到当前连接数最小的服务器。通过服务器当前所活跃的连接数来估计服务器的负载情况。调度器需要记录各个服务器已建立连接的数目。D 加权最小连接调度 wlc加权最小连接调度是最小连接调度的超集,各个服务器用相应的权值表示其处理性能。加权最小连接调度在调度新连接时,尽可能使服务器的已建立连接数和其权值成比例。