lvs-dr实验搭建

来源:互联网 发布:mac去哪放光盘 编辑:程序博客网 时间:2024/05/29 08:05
 lvs-dr实验搭建 2012-04-19 18:00:59

分类: LINUX

环境:
lvs director:    10.57.220.198:80    Ubuntu 10.04 LTS  vmware 虚拟机
    real server1 10.57.220.195:80    Ubuntu 11.10  nginx服务器
    real server2 10.57.220.20:80     Ubuntu 11.10  nginx服务器

虚拟ip(vip):10.57.220.144

1、下载 ipvsadm
 分别在3台机器上下载
 apt-get install ipvsadm


2、ipvsadm设置
 dpkg-reconfigure ipvsadm 
 第一个选no       (automatically load ipvs rules on boot?)
 第二个选none     

3、配置脚本
  
1)director脚本
lvs-dr.sh

点击(此处)折叠或打开

  1. #!/bin/bash

  2. echo "1" > /proc/sys/net/ipv4/ip_forward

  3. IPVSADM='/sbin/ipvsadm'

  4. VIP=10.57.220.144

  5. RS1=10.57.220.20

  6. RS2=10.57.220.195



  7. ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up

  8. route add -host $VIP dev eth0:1



  9. $IPVSADM -C   /*清除虚拟服务器信息*/

  10. $IPVSADM -A -t $VIP:81 -s rr   /*创建一条虚拟服务器记录,调度算法为rr 参见http://www.it165.net/admin/html/201401/2248.html */

  11. $IPVSADM -a -t $VIP:81 -r $RS1:81 --w 1  /*给虚拟服务器添加一台物理机*/

  12. $IPVSADM -a -t $VIP:81 -r $RS2:81 --w 1  /*给虚拟服务器添加一台物理机*/
chmod 777 lvs-dr.sh



2)realserver脚本
所有realserver相同

lvs-rs.sh

点击(此处)折叠或打开

  1. #!/bin/bash

  2. #Description : RealServer 

  3. #Write by:hugwww

  4. #Last Modefiy:2009.1.24

  5. VIP=10.57.220.144

  6. /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up

  7. /sbin/route add -host $VIP dev lo:0

  8. echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore       /*只回答目标IP地址是来访网络接口本地地址的ARP查询请求*/

  9. echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce     /*对查询目标使用最适当的本地地址.在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通信的本地地址.首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址. 如果没有合适的地址被发现,将选择当前的发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送*/

  10. echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore

  11. echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

  12. sysctl -p

  13. #end
chmod 777 lvs-rs.sh


4、执行、测试
分别在三个机器上执行相应脚本
注意事先启动。nginx 服务器

firfox访问  10.57.220.144:81

可用ipvsadm -ln查看状态

5、注意问题
 
  防火墙要关闭,linux下是iptables
  
  各服务器 端口一致,否则不通。比如都是80端口,不能有的是80,有的是81。


 本案例中vip和真实ip都是在同一网段,vip可以和real ip不同网段,可参考章博士的回答  http://zh.linuxvirtualserver.org/node/155。负载调度器只要有一个网口和真实服务器是通过不分段的网络连接起来就可以。真实服务器可以通过自己的路由器将响应报文发送给客户。
关于调度算法参见:http://zh.linuxvirtualserver.org/node/2903
ipvsadm  命令:http://blog.chinaunix.net/uid-24668835-id-2598605.html

构架参考 http://zh.linuxvirtualserver.org/node/28

0 0
原创粉丝点击