Chinaunix首页 | 论坛 | 博客
  • 博客访问: 708983
  • 博文数量: 139
  • 博客积分: 7607
  • 博客等级: 少将
  • 技术积分: 1964
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-11 23:43
个人简介

...

文章分类

全部博文(139)

文章存档

2012年(53)

2011年(4)

2010年(29)

2009年(10)

2008年(33)

2007年(10)

分类: LINUX

2012-02-17 20:27:02

1、环境搭建:两台二层交换机(或三层交换机,但有些细节虚考虑),四台测试机。两台用于lvs的前端,两台用于后台测试web

LVS1-DR-Master            192.168.50.17       

LVS2-DR-BACKUP            192.168.50.18       

LVS-DR-VIP                192.168.50.33       

WEB1-Realserver          192.168.50.56       

WEB2-Realserver          192.168.50.57

2、架构图(1),图中所有机器都连在一台交换机上,这也是lvs中最简单的架构,只能保证lvs前端和后台realserver消除单点故障,但交换机的单点故障没有消除。为消除交换机单点故障,图(2)给了一份更为完美的架构。

 


 

架构图(2),图中所有机器的两个网卡都做了bond.相当于两个网卡共用了一个IP。可以保证交换机或机器的一个口在down掉情况下,仍能正常提供服务,消除了交换机和机器的单点故障。当然也可不绑定bond,但这样切换就得手动了,显得比较麻烦。

 

至于用哪种方式:主要看交换机的类型了,一般二层交换机和低端的三层交换机没有主备或负载均衡功能,所以,选哪种方式,完全取决于机房的实际情况了。两个网卡绑定是linux本身的功能,日后做系统,如有需要,也是一种单点的解决方案。

 

3、考虑日后的扩展或机房的应用,以下推荐几款交换机

交换机类型

层次

基本端口和功能

扩展

报价

H3C S5100-48P-SI

二层

4810/100/1000Base-T自适应以太网端口,41000Base-X SFP

 

1.5w

H3C S5100-48P-EI

二层

4810/100/1000Base-T自适应以太网端口,41000Base-X SFP

EI支持简单的路由协议

1.8w

H3C S5352C-PWR-SI

三层

4810/100/1000Base-T,上行2×10GE XFP插卡或者4×1000Base-X SFP

支持热备,均衡等基本功能

2.5w

H3C S5352C-PWR-EI

三层

4810/100/1000Base-T,上行2×10GE XFP插卡或者4×1000Base-X SFP

 

除有SI的功能外,支持更多的路由协议,SFP端口可用于千兆以太网和光纤通道,而XFP

则支持万兆光纤接口。

3.5w

 

4lvs前端软件安装。

1> 下载相关软件包

    #mkdir /usr/local/src/lvs

    #cd /usr/local/src/lvs

    #wget

    #wget

2> 安装LVSKeepalived

    #lsmod |grep ip_vs

#uname -r

2.6.9-67.Elsmp

#ln -s /usr/src/kernels/2.6.9-67.EL-i686/  /usr/src/linux

 

#tar zxvf ipvsadm-1.24.tar.gz

#cd ipvsadm-1.24

#make && make install

#find / -name ipvsadm  # 查看ipvsadm的位置

 

#tar zxvf keepalived-1.1.15.tar.gz

#cd keepalived-1.1.15

#./configure  && make && make install

#find / -name keepalived  # 查看keepalived位置        

   

#cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

#cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

#mkdir /etc/keepalived

#cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

#cp /usr/local/sbin/keepalived /usr/sbin/

#service keepalived start|stop     #做成系统启动服务方便管理.

5realserver端安装,只需安装ipvsadm

 下载及安装

     #mkdir /usr/local/src/lvs

     #cd /usr/local/src/lvs

     #wget

    #lsmod |grep ip_vs

#uname -r

2.6.9-67.Elsmp

 

 

#ln -s /usr/src/kernels/2.6.9-67.EL-i686/  /usr/src/linux

#tar zxvf ipvsadm-1.24.tar.gz

#cd ipvsadm-1.24

#make && make install

#find / -name ipvsadm  # 查看ipvsadm的位置

6lvs前端keepalived配置.

注意:对于lvs机器如果接的是二层设备,则无需考虑。但是如果是三层设备,就必须更改下linux机器的配置,其他选项不用动,按下面来就可以了

# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

#sysctl -p

 

1> master配置

#Configuration File for keepalived

global_defs {

    notification_email {

        niulw@ifeng.com

    }

    notification_email_from lvs_check@ifeng.com

    smtp_server 127.0.0.1

    smtp_connect_timeout 30

    lvs_id LVS_ONE

}

    

vrrp_instance VI_1 {

    state MASTER

    interface bond0

    lvs_sync_daemon_interface bond0

    virtual_router_id 50

    priority 200

    advert_int 1

    smtp_alert

    garp_master_delay 1

    preempt_delay 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

      192.168.50.33/24 brd + dev bond0 scope global

    }

}

 

virtual_server 192.168.50.33 80 {

    delay_loop 5                

    lb_algo wlc              

    lb_kind DR             

 

    protocol TCP          

    real_server 192.168.50.56 80 {

         weight 1

         TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

            connect_port 80

         }

    }

    real_server 192.168.50.57 80 {

         weight 1

         TCP_CHECK {

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

            connect_port 80

         }

    }

}

2> backup 配置

lvs2备份机的配置基本上和主的一样,仅指出两点不同(state priority)。

state BACKUP

priority 50

 

7lvs后端realserver配置

把脚本放于 /etc/init.d/ipvsadm .便于做成系统服务,开机时启动。

写好之后,一定别忘了启动起来,否则lvs前端能探测到,而realserver则不能提供正常服务

#!/bin/bash

# description: Config realserver lo and apply noarp

      

VIP=192.168.50.33

 

. /etc/rc.d/init.d/functions

 

case "$1" in

start)

       ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP

       /sbin/route add -host $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 $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

       sysctl -p >/dev/null 2>&1

       echo "RealServer Stoped"

       ;;

*)

       echo "Usage: $0 {start|stop}"

       exit 1

esac

 

exit 0

 

阅读(866) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~