• LVS+Keepalived负载均衡


    DR模式工作流程图

      

    实验环境:

    部署keepalived高可用

    [root@LVS-keep-backup ~]# yum install -y openssl-devel kernel-devel 

    # wget http://www.keepalived.org/software/keepalived-1.2.24.tar.gz

    # tar zxvf keepalived-1.2.24.tar.gz

    # cd keepalived-1.2.24
     ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-696.10.2.el6.x86_64/

     # make 

    # make install

    # chkconfig --add keepalived
    [root@LVS-keep-backup keepalived-1.2.24]# chkconfig keepalived on
    [root@LVS-keep-backup keepalived-1.2.24]# chmod +x /etc/init.d/keepalived
    [root@LVS-keep-backup keepalived-1.2.24]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
    [root@LVS-keep-backup keepalived-1.2.24]# vim /etc/keepalived/keepalived.conf

    ! Configuration File for keepalived

    global_defs {
    notification_email {
    acassen@firewall.loc
    }
    notification_email_from keepalived@localhost
    smtp_server 192.168.200.1
    smtp_connect_timeout 30
    router_id LVS_DEVEL
    }

    vrrp_instance VI_1 {
    state MASTER                  [MASTER|BACKUP]
    interface eth0
    virtual_router_id 51
    priority 100                              [100|90]

    #noreepmpt        #不抢占功能,ps:一般配置在BACKUP状态下
    advert_int 1
    authentication {
    auth_type PASS

    auth_pass 1111
    }
    virtual_ipaddress {
    192.168.2.200            #设置虚拟IP 
    }
    }

    virtual_server 192.168.2.200 80 {     #设置虚拟服务器,需要指定虚拟IP地址和服务,端口,IP之间要用空格隔开
    delay_loop 6      #设置运行检查时间
    lb_algo rr    #设置负载调度算法,这里设置RR。即轮询算法,
    lb_kind DR      #设置负载均衡模式,这里是DR模式
    persistence_timeout 50         #会话保持时间,单位秒
    protocol TCP            #指定转发类型,TCP和UDP两种

    real_server 192.168.2.138 80 {        #配置服务节点,需要指定Real Server的真实IP地址和端口
    weight 1               #配置服务节点权重,不同性能服务器分配不同负载,而性能较低的服务器自然分配的权重值要小,这样才能更好的利用和分配系统资源
    TCP_GET {        #Real  Server的状态检测设置部分,
    connect_timeout 3         #表示3秒无响应超时
    nb_get_retry 3         #重试次数
    delay_before_retry 3    #表示重试时间间隔

    connect_port 80    #   健康检查的端口,如果不指定,默认是real_server制定的端口

    }
    }
    real_server 192.168.2.139 80 {
    weight 1
    TCP_GET {
    connect_timeout 3
    nb_get_retry 3
    delay_before_retry 3

    connect_port 80    #   健康检查的端口,如果不指定,默认是real_server制定的端口
    }

    }
    }

    部署LVS

    [root@LVS-keep-master ~]# yum install -y ipvsadm 

    [root@LVS-keep-master ~]# ipvsadm -v
    ipvsadm v1.26 2008/5/15 (compiled with popt and IPVS v1.2.1)

    ################可省略~~~~~

    [root@LVS-keep-master ~]# ipvsadm -A -t 192.168.2.200:80 -s wrr

    [root@LVS-keep-master ~]# ipvsadm -a -t 192.168.2.200:80 -r 192.168.2.138 -g -w 100
    [root@LVS-keep-master ~]# ipvsadm -a -t 192.168.2.200:80 -r 192.168.2.139 -g -w 100

    [root@LVS-keep-master ~] ipvsadm-save > /etc/sysconfig/ipvsadm    #保存LVS配置信息,以便随时恢复

    ###############

    [root@LVS-keep-master ~]# ipvsadm -Ln

    在后端Realserver web上绑定虚拟VIP并且抑制ARP响应(因为用户在请求VIP的同时,默认绑定在 real-server后端真实IP服务器上的VIP也会响应,这样会冲突)

    [root@HTTP-web1 ~]# VIP=192.168.2.200
    [root@HTTP-web1 ~]# ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP

    [root@HTTP-web1 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
    [root@HTTP-web1 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_ignore
    [root@HTTP-web1 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
    [root@HTTP-web1 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_ignore

    [root@HTTP-web2 ~]# VIP=192.168.2.200
    [root@HTTP-web2 ~]# ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP

    [root@HTTP-web2 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
    [root@HTTP-web2 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_ignore
    [root@HTTP-web2 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
    [root@HTTP-web2 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_ignore

    在后端WEB服务简单配置一下,便于负载区分即可

    [root@HTTP-web1 ~]# echo "Server Name WEB 1111" >/var/www/html/index.html

    [root@HTTP-web2 ~]# echo "Server Name web 2222" > /var/www/html/index.html

    -A 增加一台虚拟服务器VIP地址。

    -t  虚拟服务器提供的是tcp服务。

    -s  使用的调度算法

    -a  在虚拟服务器中增加一台后端真实服务器。

    -r  指定真实服务器地址。

    -m 设置当前转发方式为NAT模式;-g为直接路由模式;-i  模式为隧道模式

    -w 后端真实服务器的权重。

    查看LVS转发列表命令为:ipvsadm –Ln

    实现结果:LVS负载均衡高可用

  • 相关阅读:
    C#执行异步操作的几种方式
    spring boot swagger ui使用 nginx 部署后无法使用问题
    PHP支付宝接口RSA验证
    认证加密算法php hash_hmac和java hmacSha1的问题
    如何实现从 Redis 中订阅消息转发到 WebSocket 客户端
    ffmpeg安装
    nginx静态资源反向代理
    Redis基础知识 之——发布/订阅
    linux下安装git
    php实现无限级分类查询(递归、非递归)
  • 原文地址:https://www.cnblogs.com/bixiaoyu/p/7565976.html
Copyright © 2020-2023  润新知