Cent0S下使用LVS+KeepLive进行负载均衡及高可用web服务器

Cent0S下使用LVS+KeepLive进行负载均衡及高可用web服务器Cent0S下使用LVS+KeepLive,进行负载均衡及高可用web服务器。通过对本文章的阅读:你可以了解LVS+KeepLive的安装,按照步骤一步一步完成就能实现对2台或N台web服务器进行负载均衡,实现LVS的负载均衡及失效转移。一、需要的文件:1、ipvsadm-1.24.tar.gz,下载地址:下载2、keepalived-1.1.15.tar.gz,下载地…

大家好,又见面了,我是你们的朋友全栈君。

Cent0S下使用LVS+KeepLive,进行负载均衡及高可用web服务器。

通过对本文章的阅读:你可以了解LVS+KeepLive的安装,按照步骤一步一步完成就能实现对2台或N台web服务器进行负载均衡,实现LVS的负载均衡及失效转移。

 

 

一、需要的文件:

1、ipvsadm-1.24.tar.gz,下载地址:下载

2、keepalived-1.1.15.tar.gz,下载地址:下载

 

二、对LVS学习的网站推荐:

 

   LVS官方中文站点:http://zh.linuxvirtualserver.org/
   对keepalived各项参数进行了详细的解释 http://download.csdn.net/detail/missrian/7338313
 
三、安装及使用:
一、LVS的安装:
1、拷贝2个安装包到/usr/local/src下的lvs目录下。(不存在则建立)
2、tar -zxvf ipvsadm-1.24.tar.gz 再进入目录cd ipvsadm-1.24
3、sudo make 该步骤进行编译,在make时可能会出现错误编译信息,这是由于编译程序找不到对应内核的原因。
     此时解决的方法为,首先获取系统的版本uname -a
     Linux localhost.localdomain 
2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
     再执行:ln -s /usr/src/kernels/
2.6.32-431.el6.x86_64/  /usr/src/linux
     然后重新执行make编译命令。
4、sudo make install 该步骤为安装。
5、如果安装成功则可以通过ipvsadm –help查看lvs是否安装成功
6、通过find / -name ipvsadm可以查看lvs 安装在哪些目录下。
 
二、KeepLive的安装
1、tar -zxvf keepalived-1.1.15.tar再进入keepalived-1.1.15目录
2、执行sudo ./config,
     1)、如果报错
     configure: error:

     !!! OpenSSL is not properly installed on your system. !!!

     !!! Can not include OpenSSL headers files.

     则yum -y install openssl-devel,然后重新执行sudo ./config
     2)、如果报错
     configure: error: Popt libraries is required
     则yum install popt-devel,然后重新执行sudo ./config
3、编译sudo make
4、安装sudo make install
5、可用find / -name keepalived查看安装位置
6、可通过keepalived –version查看是否安装成功。
7、拷贝文件
     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/

8、启动或停止:service keepalived start

9、配置为随系统启动:

     sudo chkconfig –add keepalived

     sudo chkconfig –level 35 keepalived on
 
三、配置keepalived
由于LVS存在单点故障,因此一般采用LVS主从备份的方式进行负载均衡.
如果有时候主备LVS没有生效,比如反而是备LVS优先起作用,此时只需重启主LVS,service keepalived restart
 
1、编辑:vi  /etc/keepalived/keepalived.conf
 
! Configuration File for keepalived

global_defs {

   notification_email {

   hezx@gaojiasoft.com  #故障通知接收者邮箱,可以多个

   caoli@gaojiasoft.com

   }

   notification_email_from hezx@gaojiasoft.com  #故障发送者邮箱

   smtp_server 192.168.62.130 #邮件服务器的IP

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

vrrp_instance VI_1 {

    state MASTER #如果是备份LVS,则修改为BACKUP

    interface eth0

    virtual_router_id 51 #2个LVS必须在一致

    priority 100 #如果是备份LVS,则修改得比MASTER小,至少50的差距,比如49

    advert_int 1

    authentication {

        auth_type PASS   #主从LVS的时候,PASS一致才可以。

        auth_pass 1111

    }

    #VIP,浮动IP,发生切换时Keepalived自动添加、删除虚拟地址,无需ifoncig-eth0去设置

    virtual_ipaddress {

        192.168.62.100 #LVS的对外虚拟IP,可以是多个,这样一般可以再域名解析的时候有帮助,比如电信,联通的IP

        192.168.62.99

        192.168.62.98

    }
    #虚拟路由,发生切换时候自动添加删除路由
    #virtual_routes{
    #   192.168.62.100 dev eth0:0
    #}
 
    #nopreempt  #不抢占,去掉前面的#则生效,仅用与BACKUP上,当MASTER失效后,BackUP生效,但当Master重新生效后,面临的问题是继续成为Master还是BACKUP,发生了变化 Master ->BACKup,再到BACKup -> Master,这样的切换开销很大,我们希望新生效的Master成为BackUP,不进行抢占,但此时必须修改原先master的状态为BACKUP,即此时存在2个UPBACK,此时通过priority的值高的就是Master。

}

#虚拟LVS代理80端口

virtual_server 192.168.62.100 8080 {

    delay_loop 6

    lb_algo wrr #压力最小轮询

    lb_kind DR #LVS的路由模式

    nat_mask 255.255.255.0

    persistence_timeout 10

    protocol TCP #指定转发协议,TCP OR UDP

    #真实服务器1

    real_server 192.168.62.133 8080 {

        weight 5 #权重,越大越高

        TCP_CHECK {#relserve的状态检测设置部分,单位是秒

            connect_timeout 10 #表示10秒无响应超时

            nb_get_retry 3     #表示重试次数

            dealy_before_retry 3  #表示重试间隔

            connect_port 8080

         }

    }

   #真实服务器2

   real_server 192.168.62.134 8080 {

    weight 1 #权重,越大越高,依据机器配置来设置

    TCP_CHECK {#relserve的状态检测设置部分,单位是秒

        connect_timeout 10 #表示10秒无响应超时

        nb_get_retry 3     #表示重试次数

        dealy_before_retry 3  #表示重试间隔

        connect_port 8080

     }

  }

}

 
2、配置完毕后,重启 service keepalived restart
3、查看LVS的负载生效情况:ipvsadm -ln 可以看到
IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.62.100:8080 wrr persistent 10

  -> 192.168.62.134:8080          Route   1      0          0

  -> 192.168.62.133:8080          Route   5      0          0
 
4、网络设置
    1)、LVS服务器 (此步应该是不需要执行的)

        ifconfig eth0 192.168.62.130 //(DIP)

        ifconfig eth0:0 192.168.62.100 //(VIP),这个VIP通过防火墙映射到公网IP

        route add -host 192.168.62.100 dev eth0:0 //让发往192.168.62.100的请求都经过eth0:0

    2)、RelServer 1-N个服务器的配置,每个都要执行下

         使用root用户,在任意目录下建议lvs_real.sh文件,将如下文字拷贝进去

#!/bin/bash 

#Description: Config realserver script

SNS_VIP=192.168.62.100 #对应LVS服务器的VIP

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

 

case “$1” in

start)

       /sbin/ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP

       /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 NETWork OK”

 

       ;;

stop)

       /sbin/ifconfig lo:0 down

       /sbin/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

#———————————

给予可执行权限:

chmod 755 ./lvs_real.sh

启动脚本:

./lvs_real.sh start :

 
 
四、其中LVS是存在单点故障的,即如果LVS服务器挂了,此时无论服务是否生效,都不能访问真实的服务器。
      因此,需要实现LVS的双机热备,Master LVS挂了后,自动切换到BACKUP LVS.
      LVS的BACKUP,只是修改keepalived.conf中的state MASTER 为 BACKUP,同时把priority 100的值设置为 priority 49,至少50的差距。
 
 
五、监控:

1、sudo watch ipvsadm -ln  查看lvs服务是否正常,包括活动链接。此命令动态监控LVS的连接和realServer的健康状况。

1、sudo watch ipvsadm -lcn|grep 192.168.62.100 此命令可以实时看到分发的情况,非常有效
2、查看LVS的吞吐量情况:watch ipvsadm -L -n –rate   #此功能非常有效,可以实时看到LVS在各个真实部件的分发情况
3、sudo watch ipvsadm -lcn 此命令动态监控终端连接过来后,LVS的处理状态,连接失败等
4、实时查看LVS连接状态变化: watch ipvsadm -ln
6、查看LVS的连接情况:ipvsadm -L -n
7、查看LVS的统计信息:ipvsadm -L -n –stats

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134245.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • emwin显示中文的方法_emwin中文手册

    emwin显示中文的方法_emwin中文手册emwin显示中文

    2022年10月9日
    0
  • stm32收发 wiegand 韦根协议开发详解

    stm32收发 wiegand 韦根协议开发详解在刚开始接触到韦根接口时,知道这是一种门禁相关的传输协议。其中有两种比较常用的韦根数据格式,韦根26和韦根34,其中韦根26是开放的,韦根34开不开放我不知道(看样子不开放),但是在网上还是能看到韦根34的代码协议,下面介绍一下韦根26以及韦根34的相关内容。Wiegand26格式:各数据位的含义:第1位: 为输出数据2—13位的偶校验位第2-9位:…

    2022年10月27日
    0
  • http协议汇总

    http协议汇总

    2021年7月6日
    91
  • vs2015激活成功教程密钥_vs2015产品激活密钥

    vs2015激活成功教程密钥_vs2015产品激活密钥对于开发者而言,一款优秀智能的开发工具能够提升应用开发的效率,正因为如此,VisualStudio作为主流的开发工具,微软非常的用心,不仅能够让这款开发工具满足用户体验的需要,同时能够支持更多的新技术架构,并且,VS2012更加适合用于开发Windows8专用程序。网上好多无效的,为了收藏,先保存一份。一、VS2012下载地址。中文版:http://download….

    2022年10月14日
    0
  • linux内核版本指什么意思,Linux的内核版本是怎么回事「建议收藏」

    linux内核版本指什么意思,Linux的内核版本是怎么回事「建议收藏」Linux的内核版本编号有点像如下的样子:<2.6.32-642.el6.x86_64主版本.次版本.发布版本-修改版本>虽然编号就是如上的方式来编写,不过依据Linux内核的发展历程,内核版本的定义有点不太相同。Linux的内核版本奇数、偶数版本分类在2.6x版本以前,托瓦斯将内核的发展方向分为两类,并根据这两类内核的发展分别给予不同的内核编号,那就是:主、次版本为奇数:开发中版本如…

    2022年8月23日
    3
  • 基于深度学习的车辆检测系统(MATLAB代码,含GUI界面)

    基于深度学习的车辆检测系统(MATLAB代码,含GUI界面)摘要:当前深度学习在目标检测领域的影响日益显著,本文主要基于深度学习的目标检测算法实现车辆检测,为大家介绍如何利用MATLAB设计一个车辆检测系统的软件,通过自行搭建YOLO网络并利用自定义的数据集进行训练、验证模型,最终实现系统可选取图片或视频进行检测、标注,以及结果的实时显示和保存。其中,GUI界面利用最新的MATLABAPP设计工具开发设计完成,算法部分选择时下实用的YOLOv2/v3网络,通过BDD100K数据集进行训练、测试检测器效果。本文提供项目所有涉及到的程序代码、数据集等文件,完整资源。

    2022年10月15日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号