教学之友,学习之友。

站长教学网

前端LVS+KEEPALIVED 后端WINDOWS实现负载均衡(3)

时间:2012-07-24 09:47来源:未知 作者:ken 点击:

     下面开始介绍一下linux下如何安装配置LVS和KEEPALIVED.

     1.首先安装lvs的管理工具ipvsadm(直接使用yum安装即可),启用Centos1虚拟机(10.0.8.25),进入终端模式,键入      
 

# yum –y install ipvsadm

    
     2.然后安装keepalived,因为Keepalived需要gcc工具来编译,所以请安装它(前文已做介绍),在编译时,keepalived倚赖openssl和内核源代码 

# yum –y install openssl-devel  kernel-devel 

  

     3.去官方下载最新的keepalived,解压缩,然后编译: 

#wget http://www.keepalived.org/software/keepalived-1.1.18.tar.gz
#tar zxvf keepalived-1.1.18.tar.gz
#cd keepalived-1.1.18
#./configure --with-kernel-dir=/usr/src/kernels/2.6.18-164.15.1.el5-i686 
--prefix=/usr/local/keepalived #将其布署在LVS的目录下
#上面的with-kernel-dir是和lvs集成必须的编译参数

 

  注:with-kernel-dir是和lvs集成必须的编译参数,因为keepalived要被放到/usr/local/keepalived下进行编译,另外kernels内核源码会因linux版本不同而有所变化。

    显示结果:
    ------------------------
 ....
 Compiler                 : gcc
 Compiler flags           : -g -O2
 Extra Lib                : -lpopt -lssl -lcrypto
 Use IPVS Framework       : Yes   (这里必须为yes)
 IPVS sync daemon support : Yes   (这里必须为yes)
 Use VRRP Framework       : Yes   (这里必须为yes)
 Use LinkWatch            : No 

    # make && make install  #编译

 
       4.做成启动服务 

 #ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/ 
 #ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
 #mkdir /etc/keepalived
 #ln -s /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
 #ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/
 #service keepalived start #关闭:stop

      

       5.绑定虚拟IP(该步骤在某些安装环境下可以忽略,因为keepalived会自动维护vip,并根据设置,自动在系统里添加vip,所以该步骤可能用途不大) 

    #/sbin/ifconfig eth0:0 10.0.8.9 broadcast 10.0.8.9 netmask 255.255.255.255 up  #这样的设置可防止IP冲突
    #/sbin/route add -host 10.0.8.9 dev eth0:0

 

       6.配置network(/etc/sysconfig/network )文件,内容如下(注:该步骤在网上某些文章中提到,这里也就随手多做了一步):    

    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    GATEWAY=10.0.8.1

     

       7.LVS 在3 种方式下均需要打开ip forward 功能,这可以配置/etc/sysctl.conf. 文件,保证其中有如下一行(注:该步骤在网上某些文章中提到,这里也就随手多做了一步):    
         #net.ipv4.ip forward = 1
         #sysctl -p  #然后执行下面命令使配置生效:    

 

         备注:因为KEEPALIVED要使用80端口(稍后配置文件中会做设置),所以如果要马上启用80端口,可以启动Apache,用下面命令(这一步并不在安装步骤中):

    #service httpd start (或restart)

         完成了环境配置之后,下面就是打开并修改Keepalived.conf文件了,我们可以从下面地址打开并编辑它:
         /usr/local/keepalived/etc/keepalived.conf
         或:
         /etc/keepalived/keepalived.conf (之前的ln指令指向)

         这里将10.0.8.25这台虚拟机设置为MASTER,配置文件如下:


 

! Configuration File for keepalived

global_defs {
   notification_email {
     daizhj617595@12.com

   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0   #HA监测网络接口
    virtual_router_id 51 #主、备机的virtual_router_id必须相同
    priority 100   #主、备机取不同的优先级,主机值较大,备份机值较小,值越大优先级越高
    advert_int 1   #VRRP Multicast广播周期秒数
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
       10.0.8.9
    }
}

virtual_server 10.0.8.9 80 {
    delay_loop 6
    lb_algo wrr
    lb_kind DR
    persistence_timeout 10 !同一ip50秒内的请求都发送到同一realserver
    protocol TCP

    real_server 10.0.8.12 80 {
        weight 2
            TCP_CHECK {
             connect_timeout 3
             nb_get_retry 3
             delay_before_retry 3
             connect_port 80
            }
   }

    real_server 10.0.8.13 80 {
        weight 2
            TCP_CHECK {
             connect_timeout 3
             nb_get_retry 3
             delay_before_retry 3
             connect_port 80
            }
    }
}

 

      

        然后我们使用如下命令启用keepalived:       

#keepalived #位于/usr/local/keepalived/sbin/

         或    

#service keepalived start

       

       我们可以通过下面指令来查看相应进程:   

#ps aux|grep keepalived

    ------------------------------

   sr/local/keepalived/etc/keepalived/keepalived.conf
 root     17670  0.0  0.2   4932   564 ?        Ss   19:03   0:00 keepalived -D
 root     17671  0.0  0.6   4976  1416 ?        S    19:03   0:02 keepalived -D
 root     17672  0.0  0.4   4976   928 ?        S    19:03   0:00 keepalived -D
 ....

         这里注意keepalived要启动一个主并fork两个子进程,所以这里显示了三个进程。

         这里我们可以下面指令检查一下配置是否生效: 

 #ping 10.0.8.9 -c 4
 #telnet 10.0.8.9 80

         

        如果正常的话,就说明keepalived已启用了我们的配置。

        注:之前本人配置过程中发现telnet经常无法正常访问,可以使用下面指令查看80端口是否启用: 

 #netstat -npl | grep :80  #windows下相应指令为:netstat -an|findstr LISTEN

 

        也可以使用下面指令检查LVS进程: 

 #lsmod | grep ip_vs

 

        到这里就完成了10.0.8.25这台虚拟机上的keepalived配置。然后重复1-7这些步骤,在10.0.8.55上也安装并配置keepalived,这里要注意的是在keepalived.conf文件中要将state MASTER改成state BACKUP

        接着,我们在IE上输入下面地址: http://10.0.8.9/index.aspx

 

        如果能正常访问,就说明负载均衡环境搭建完毕了

        注:还可以配置HOST文件(/etc/hosts)和DNS域名解析的配置文件(/etc/resolv.conf)

      

        我们可以使用下面指令查看请求的转发情况:
 

 [root@localhost ~]# ipvsadm -lcn|grep 10.0.8.9

  -------------------------------------------
                                          clientip                  vip                   realserver
TCP 14:44  ESTABLISHED 10.0.4.102:5244    10.0.8.9:80        10.0.8.12:80
TCP 14:44  ESTABLISHED 10.0.4.102:5232    10.0.8.9:80        10.0.8.12:80
TCP 07:35  ESTABLISHED 10.0.4.102:4875    10.0.8.9:80        10.0.8.13:80
TCP 14:44  ESTABLISHED 10.0.4.102:5249    10.0.8.9:80        10.0.8.12:80
TCP 14:46  ESTABLISHED 10.0.4.102:5246    10.0.8.9:80        10.0.8.12:80
TCP 08:40  ESTABLISHED 10.0.4.102:4913    10.0.8.9:80        10.0.8.12:80
TCP 08:40  ESTABLISHED 10.0.4.102:4927    10.0.8.9:80        10.0.8.12:80
TCP 14:44  ESTABLISHED 10.0.4.102:5247    10.0.8.9:80        10.0.8.12:80
TCP 08:40  ESTABLISHED 10.0.4.102:4929    10.0.8.9:80        10.0.8.12:80
TCP 07:35  ESTABLISHED 10.0.4.102:4872    10.0.8.9:80        10.0.8.13:80
TCP 14:47  ESTABLISHED 10.0.4.102:5243    10.0.8.9:80        10.0.8.12:80
TCP 08:40  ESTABLISHED 10.0.4.102:5011    10.0.8.9:80        10.0.8.12:80
TCP 14:56  ESTABLISHED 10.0.4.102:5245    10.0.8.9:80        10.0.8.12:80
TCP 00:44  NONE        10.0.4.102:0       10.0.8.9:80        10.0.8.12:80
TCP 00:34  NONE        10.0.4.102:0       10.0.8.9:65535     10.0.8.13:65535
TCP 07:35  ESTABLISHED 10.0.4.102:4848    10.0.8.9:80        10.0.8.13:80


        接着我们可以把10.0.8.12:80或10.0.8.13:80 站点停掉,看看访问是否正常。
        然后我们将10.0.8.25或10.0.8.55 虚拟机上关掉keepalived (使用killall keepalived或serivce keepalived stop),再用IE访问相应网址看看。
        另外那台机器上的keepalived能否正常切换接管。如果正常,就说明这个环境是HA(高可用的)。


        最后再罗列一些常的指令,以便大家查看keepalived运行情况和网络状况:

   #tail -f /var/log/messages   #查看系统日志
   #tcpdump src host 10.0.8.9 and port 80  #抓包
   #curl -I http://10.0.8.9/  #利用URL语法在命令行方式下的文件传输工具
   #ip addr  #IP地址信息或ip add show eth0 查看虚拟IP绑定情况
   #service iptables stop #关闭iptables防火墙
   #iptables –nvL  #列出防火墙进入数据信息
   #ipvsadm -ln #查看lvs服务是否正常,包括活动链接,weight(keepalived配置),内部链接等。


 

 

(责任编辑:ken)
TAG标签: windows iis 负载均衡 lvs keepalived
顶一下
(3)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
注册登录:不允许匿名留言,登录后留言无需输入验证码。
栏目列表
最新内容