码迷,mamicode.com
首页 > 其他好文 > 详细

LVS配置

时间:2016-07-13 14:04:11      阅读:663      评论:0      收藏:0      [点我收藏+]

标签:linux   lvs   

官方文档:http://www.linuxvirtualserver.org/zh 

[lvs准备]

 

[root@ceshiapp ~]# lsmod | grep ip_vs


[root@ceshiapp ~]#


lsmod是检查内核运行状况,表明没有运行ipvsadm


 

[root@ceshiapp ~]# uname -r


3.10.0-327.el7.x86_64


[root@ceshiapp ~]# ln -s /usr/src/kernels/3.10.0-327.13.1.el7.x86_64/ /usr/src/linux


注意:1.lvs安装一定要设定这个软连接,否则编译的时候会报错。

    2./usr/src/kernel/下没有内核版本信息,则需要安装kernel-devel包,并且内核信息一定跟uname -r 对应。

   3.编译安装前  yum install -y libnl* popt*


[lvs安装]

[root@ceshiapp ~]# wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz


CentOS-5.x版本的推荐安装ipvsadm-1.24版本。


CentOS-6.x版本的推荐安装ipvsadm-1.26版本。


这里在CentOS-7.x下就下载最新的一个版本


[root@ceshiapp srv]# tar xf ipvsadm-1.26.tar.gz


[root@ceshiapp ipvsadm-1.26]# make


[root@ceshiapp ipvsadm-1.26]# make install


编译安装,如果失败,缺包就yum install -y libnl* popt*;


注意此时在lsmod | grep ip_vs依旧是没有的,因为ipvsadm并没有运行


 

[root@ceshiapp ipvsadm-1.26]# ipvsadm


IP Virtual Server version 1.2.1 (size=4096)


Prot LocalAddress:Port Scheduler Flags


  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn


[root@ceshiapp ipvsadm-1.26]# lsmod | grep ip_vs


ip_vs                 140944  0


nf_conntrack          105745  1 ip_vs


libcrc32c              12644  2 xfs,ip_vs


ipvsadm运行接下来配置。


 

 

[lvs配置]

lvs配置主要用ipvsadm管理,这里以DR模式为例子设置lvs


[ipvsadm使用说明]

Usage:


  ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [--pe persistence_engine]


这里的t|u|f 表示tcpudpiptables标记,下面与这里一致


[root@ceshiapp lvs]# ipvsadm -A -t 192.168.131.200:80 -s wlc


  [root@ceshiapp lvs]# ipvsadm -E -t 192.168.131.200:80 -s wwc


  ipvsadm -D -t|u|f service-address


 [root@ceshiapp lvs]# ipvsadm -L


IP Virtual Server version 1.2.1 (size=4096)


Prot LocalAddress:Port Scheduler Flags


   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn


TCP  192.168.131.200:http wlc


[root@ceshiapp lvs]# ipvsadm -D -t 192.168.131.200:80


[root@ceshiapp lvs]# ipvsadm -L


IP Virtual Server version 1.2.1 (size=4096)


Prot LocalAddress:Port Scheduler Flags


  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn


  ipvsadm -C


清除所有规则,注意是所有,与iptables -F功能类似


[root@ceshiapp lvs]# ipvsadm -L


IP Virtual Server version 1.2.1 (size=4096)


Prot LocalAddress:Port Scheduler Flags


  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn


TCP  192.168.131.200:http wlc


[root@ceshiapp lvs]# ipvsadm -C


[root@ceshiapp lvs]# ipvsadm -L


IP Virtual Server version 1.2.1 (size=4096)


Prot LocalAddress:Port Scheduler Flags


  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn


  ipvsadm -R


  载入保存在文件中的规则


  [root@ceshiapp lvs]# ipvsadm -L


IP Virtual Server version 1.2.1 (size=4096)


Prot LocalAddress:Port Scheduler Flags


   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn


[root@ceshiapp lvs]# ipvsadm -R < a


[root@ceshiapp lvs]# ipvsadm -L


IP Virtual Server version 1.2.1 (size=4096)


Prot LocalAddress:Port Scheduler Flags


   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn


TCP  192.168.131.200:http wlc


  ipvsadm -S [-n]


  保存规则到指定文件


  [root@ceshiapp lvs]# ipvsadm -L


IP Virtual Server version 1.2.1 (size=4096)


Prot LocalAddress:Port Scheduler Flags


   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn


TCP  192.168.131.200:http wlc


[root@ceshiapp lvs]# > a


[root@ceshiapp lvs]# cat a


[root@ceshiapp lvs]# ipvsadm -S > a


[root@ceshiapp lvs]# cat a


-A -t 192.168.131.200:http -s wlc


  ipvsadm -a|e -t|u|f service-address -r server-address [options]


添加RS节点。-a为添加,-e为编辑,与-E类似这里就不对-e进行专门的说明了。


[root@ceshiapp lvs]# ipvsadm -a -t 192.168.131.200:80 -r 192.168.131.133 -g -w 5


[root@ceshiapp lvs]# ipvsadm -L   


IP Virtual Server version 1.2.1 (size=4096)


Prot LocalAddress:Port Scheduler Flags


  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn


TCP  192.168.131.200:http wlc


  -> 192.168.131.133:http         Route   5      0          0


      ipvsadm -d -t|u|f service-address -r server-address


  这里表示删除一个RS节点。


[root@ceshiapp lvs]# ipvsadm -L   


IP Virtual Server version 1.2.1 (size=4096)


Prot LocalAddress:Port Scheduler Flags


  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn


TCP  192.168.131.200:http wlc


   -> 192.168.131.133:http         Route   5      0          0        


[root@ceshiapp lvs]# ipvsadm -d -t 192.168.131.200:80 -r 192.168.131.133 


[root@ceshiapp lvs]# ipvsadm -L


IP Virtual Server version 1.2.1 (size=4096)


Prot LocalAddress:Port Scheduler Flags


   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn


TCP  192.168.131.200:http wlc


      ipvsadm -L|l [options]


  显示虚拟服务器信息


  常用的选项[options]


-n  数字格式显示主机地址和端口


--stats  统计数据


--rate  速率


--timeout  显示tcptcpfinudp的会话超时时长


-c 显示当前ipvs连接情况 

  ipvsadm -Z [-t|u|f service-address]

      ipvsadm --set tcp tcpfin udp


  设置tcptcpfinudp的超时时间


      ipvsadm --start-daemon state [--mcast-interface interface] [--syncid sid]

      ipvsadm --stop-daemon state

      ipvsadm -h


查看ipvsadm的帮助信息



 

[lvs实战]

 

  配置DNS


按照实际的配置,这里会涉及到DNS解析的问题。一般会自建立DNS服务器或者购买域名,由于时间关系,这里提及一下。之后的访问以IP为主。


  配置LVS虚拟IP VIP


[root@ceshiapp lvs]# ifconfig eno16777736:0 192.168.131.200/24 up


[root@ceshiapp lvs]# ifconfig


eno16777736:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500


        inet 192.168.131.200  netmask 255.255.255.0  broadcast 192.168.131.255


        ether 00:0c:29:68:85:ca  txqueuelen 1000  (Ethernet)


#特别提示:ifconfig eno16777736:0 192.168.131.200 netmask 255.255.255.0 up或或者网上也有添加主机路由的方法          


route add -host 192.168.131.200 dev eno16777736

ping测试,如果Ping通,说明配置OK了。      

  手工添加2RS


服务端配置:


[root@ceshiapp lvs]# ipvsadm -C


[root@ceshiapp lvs]# ipvsadm --set 30 5 60                      


[root@ceshiapp lvs]# ipvsadm -A -t 192.168.131.200:80 -s rr -p 20


[root@ceshiapp lvs]# ipvsadm -a -t 192.168.131.200:80 -r 192.168.131.133 -g -w 3


[root@ceshiapp lvs]# ipvsadm -a -t 192.168.131.200:80 -r 192.168.131.135 -g -w 3


[root@ceshiapp lvs]# ipvsadm -L -n


IP Virtual Server version 1.2.1 (size=4096)


Prot LocalAddress:Port Scheduler Flags


  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn


TCP  192.168.131.200:80 rr persistent 20


  -> 192.168.131.133:80           Route   3      0          0        


  -> 192.168.131.135:80           Route   3      0          0     


RS配置:


[root@ceshiapp_master ~]# ifconfig lo:0 192.168.131.200/32 up


route add -host 192.168.131.200 dev lo  


LVS-DR模式中,负载均衡服务器与真实服务器在同一个局域网内,所以必须要抑制真实服务器的ARP广播,不然会导致用户无法访问,造成严重的后果。

  抑制ARP


抑制方法如下:


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


arp_ignore: 定义对目标地址为本地的IPARP询问不同的应答模式;


  0(默认值):只要本地配置的有相应地址,就给予响应;


1:仅在请求的目标地址配置在到达的接口上的时候,才给予响应;DR模型使用;


2:仅响应目标IP地址是来访问网络接口本地地址的ARP查询请求,且IP必须在该网络接口的子网段内。

arp_announce:对网络接口上,本地IP地址的发出的ARP回应做出相应级别的限制;


    0(默认):将本地任何接口上的任何地址向外通告;


    1:试图仅向目标网络通告与其网络匹配的地址;


    2:仅向与本地接口上地址匹配的网络进行通告;DR模型使用


  测试LVS服务的转发


首先在客户端浏览器访问RS地址是否正常,然后访问DRVIP地址,多次测试出现不同的结果说明LVS服务正常。


提示:测试过程中,会话保持的时间,浏览器缓存等可能会影响测试。

本文出自 “停止脚步等于慢性死亡” 博客,请务必保留此出处http://goforward.blog.51cto.com/11169198/1826022

LVS配置

标签:linux   lvs   

原文地址:http://goforward.blog.51cto.com/11169198/1826022

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!