设为首页 收藏本站
查看: 1196|回复: 0

[经验分享] LVS+Keepalived实验笔记

[复制链接]

尚未签到

发表于 2015-11-20 08:17:34 | 显示全部楼层 |阅读模式
  lvs+keeplive安装配置文档。
  1、LVS概念介绍。
   lvs目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR)。
  (1)Virtual Server via Network Address Translation(VS/NAT)

通过网络地址转换,调度器重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器;真实服务器的响应报文通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。

  (2)Virtual Server via IP Tunneling(VS/TUN)

采用NAT技术时,由于请求和响应报文都必须经过调度器地址重写,当客户请求越来越多时,调度器的处理能力将成为瓶颈。为了解决这个问题,调度器把请求报文通过IP隧道转发至真实服务器,而真实服务器将响应直接返回给客户,所以调度器只处理请求报文。由于一般网络服务应答比请求报文大许多,采用VS/TUN技术后,集群系统的最大吞吐量可以提高10倍。

  (3)Virtual Server via Direct Routing(VS/DR)

VS/DR通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给客户。同VS/TUN技术一样,VS/DR技术可极大地提高集群系统的伸缩性。这种方法没有IP隧道的开销,对集群中的真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器与真实服务器都有一块网卡连在同一物理网段上。

  二、安装规划:
  

Director Server master真实IP 10.7.35.33
Director Server backup真实IP10.7.11.227
Director Server VIP 10.7.35.33
Real Server1 IP 10.7.11.144
Real Server2 IP 10.7.11.121

  


  三.安装过程:
  1.从官方网站下载ipvsadm、keepalive:
  下载地址:http://www.linuxvirtualserver.org/software/kernel-2.6/
  下载ipvsadm-1.24.tar.gz,因为最新版ipvsadm-1.25这个版本只支持2.6.28以上的内核,RHEL 5.4内核版本达不到要求,所以选择安装前一个版本。
  下载地址:http://www.keepalived.org/download.html
  下载keepalived-1.1.20.tar.gz
  2、安装ipvsadm
  (1)创建一个连接文件,其命令为:
  ln  -s /usr/src/kernels/2.6.18-92.el5-i686/usr/src/linux
  注意一定要与当前的运行的内核相一致,因为/usr/src/kernels目录下可能有多个目录。如果不创建这个连接文件,在编译时会出错,从而不能继续进行安装。

#tar zxvf  ipvsadm-1.24
#cd  ipvsadm-1.24
#make
#make install

  

(2)检验ipvsadm是否被正确安装
  (1)执行ipvsadm,看是否有如下输出。

IP Virtual Server version 1.2.1 (size=4096)
Port LocalAddress:Port Scheduler Flags      ->RomoteAddress:Port  
Forward Weight ActiveConn InActConn

  

(2)检查当前加载的内核模块,看是否存在ip_vs模块。
  [iyunv@hd-4 ipvsadm-1.24]# lsmod | grep ip_vs
  ip_vs 77569 0
  注1:只有执行ipvsadm以后,才会在内核加载ip_vs模块。
  注2:不能以查进程的方式判断ipvs是否运行。
  注3:如果下载最新的ipvsadm-1.25.tar.gz这个版本,在创建连接文件/usr/src/linux后,执行编译时,可能需要修改/boot/grub/grub.conf启动内核名称。一旦当前运行内核与连接文件所代表的内核名不一致时,将出现找不到*.h这样的错误,从而导致安装不能正常进行。
  
  3、安装keepalived.
  在负载均衡服务器上执行master和backup

1、解压



#tar -zxvf keepalived-1.1.15.tar.gz
#cd keepalived-1.1.15
#./configure --prefix=/usr/local/keepalived
#make;make install
#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived //etc/init.d/
chmod +x /etc/init.d/keepalived
#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
#mkdir /etc/keepalived
#cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
#cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
#service keepalived start|stop

  4、开启负载服务器路由机制master和backup
  #echo "1" >/proc/sys/net/ipv4/ip_forward
  # sysctl -p 使配置生效、
  (DR 模式 此步骤貌似可以不用)
  5、DR模式下 建立负载服务器启动脚本//master和backup
  vi /sbin/lvs.sh
  



#!/bin/bash
# description: start LVS of DirectorServer

# website director vip.
SNS_VIP=10.7.35.33
SNS_RIP1=10.7.11.144
SNS_RIP2=10.7.11.121
. /etc/rc.d/init.d/functions
logger $0 called with $1
case "$1" in
start)
# set squid vip
#/sbin/ipvsadm --set 30 5 60
/sbin/ifconfig eth0:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 up
/sbin/route add -host $SNS_VIP dev eth0:0
/sbin/ipvsadm -C
/sbin/ipvsadm -A -t $SNS_VIP:80 -s wrr
/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1:80 -g -w 3
/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2:80 -g -w 2

/sbin/ipvsadm
touch /var/lock/subsys/ipvsadm >/dev/null 2>&1
;;
stop)
/sbin/ipvsadm -C
/sbin/ipvsadm -Z
route del  $SNS_VIP dev eth0
ifconfig eth0:0 down

#route del $SS_VIP
rm -rf /var/lock/subsys/ipvsadm >/dev/null 2>&1
echo "ipvsadm stoped"
;;
status)
if [ ! -e /var/lock/subsys/ipvsadm ];then
echo "ipvsadm stoped"
exit 1
else
echo "ipvsadm OK"
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0


  



#chmod 757 lvs.sh执行测试# lvsdr.sh start  6、配置后端WEB服务器

在10.7.11.144和10.7.11.121上分别建立如下脚本。

# vi rs.sh

#!/bin/bash
# description: Config realserver lo and apply noarp
SNS_VIP=10.7.35.33
. /etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP up
/sbin/route add -host $SNS_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)
ifconfig lo:0 down
route del $SNS_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

  运行ifconfig 查看结果


  配置权限

# chmod 757 rs.sh
  在两台web服务器上分别执行其指命。

./rs.sh start

7.配置keepalived.conf配置文件 //master和backup
#vi /etc/keepalived/keepalived.conf  master脚本:

! Configuration File for keepalived
global_defs {
notification_email {
liang123an@qq.com
}
notification_email_from xwluan@tsong.cn
smtp_server  127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER  //备份服务器设置为backup
interface eth0
virtual_router_id 51
priority 100  ////备份服务器设置小于100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.7.35.33
}
}
virtual_server 10.7.35.33 80 {
delay_loop 6  //隔6秒查询
lb_algo wrr   //lvs算法
lb_kind DR    //(Direct Route)
persistence_timeout 60  //同一IP的连接60秒内被分配到同一台realserver
inhibit_on_failure  //当web挂掉的时候,前面请求的用户,可以继续打开网页,但是后面的请求不会调度到挂掉的web上面。
protocol TCP   //用TCP协议检查realserver状态
real_server 10.7.11.144 80 {
weight 3   //权重
TCP_CHECK {
connect_timeout 10   //10秒无响应超时
nb_get_retry 3
delay_before_retry 3
}
}
real_server 10.7.11.121 80 {
weight 2
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
}
}
}

  




  

backup上2处不同:
      1.priority 设置为小于100 我设置了99 。
       2.state 备份服务器设置为BACKUP。
  8.启动keepalived 测试
  运行命令:
        service keepalived start
  

权重问题:当lvs配置文件lvs.sh改变权重以及keepalived配置文件keepalived.conf修改权重后,哪个文件重新启动,哪个文件的权重生效。同时权重在master和backup上面可以设置不同。

当算法是rr的时候,权重没有作用,但是当算法是wlc和wrr的时候,必须设置权重,可以根据服务器的性能和配置,来确定权重的大小,当权重大的时候,lvs调度的服务也就多,同时权重高的服务器先收到链接。当小的时候,lvs调度的比较少。当权重为0的时候,表示服务器不可用,

测试lvs

1 当我把master的lvs服务关掉的时候,会将用户请求自动切换到backup上面进行工作。

2 当我把web服务关掉的时候,lvs上面会显示web消失,当启用后,web会自动显示

web关闭后:

watch -n 1 'ipvsadm -ln'




[img]http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/434632706/QQ/WinTemp/RichOle/J6U)IOAO8~V)TX%60@WLQ%256[7.jpg[/img]
   

web启用后:

watch -n 1 'ipvsadm -ln'


http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/434632706/QQ/WinTemp/RichOle/DC2C04YAATBLMNXJWLJCY8O.jpg
  

3 当master服务器down的时候,backup自动会接替服务,当master起来的时候,backup会自动断掉。  4.压力测试
  ./ab -c 100 -n 10000 http://10.7.35.33/index.html


  在主备机上查看:watch -n 1 'ipvsadm -Ln'

http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/434632706/QQ/WinTemp/RichOle/A%7BKDV0YKL(EIC(V$Y8X9UCY.jpg  结果说明:由于配置文件中设置:persistence_timeout 60 //同一IP的连接60秒内被分配到同一台realserver


  测试下发现其实主备机上的脚本可以不运行,直接修改一个keepalived.conf即可,不知道这种说法对不对。
  参考:http://hi.baidu.com/rhce2010/item/b6dc4f7bbf294737714423dc
  http://5iwww.blog.iyunv.com/856039/267278等文档
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-141327-1-1.html 上篇帖子: 企业级WEB的负载均衡高可用之LVS+Keepalived 下篇帖子: 通过Keepalived实现Redis Failover自动故障切换功能(整理中) .
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表