• 云途科技成立于2010年 - 专注全球跨境电商服务器租赁托管!
  • 帮助中心

    您可以通过下方搜索框快速查找您想知道的问题

    lvs keepalived 安装配置详解

      in  unix      Tags: 

    前段时间看了一篇文章,lvs做负载均衡根F5差不多,说实话不怎么相信,因为F5没玩过,也无法比较。F5相当的贵,真不是一般企业能负担的起的。负载均衡软件也用过不少,Nginx,apache,Haproxy等。下面说一下lvs配合keepalived实现高可用,配合heartbeat也行,看个人喜欢好了。

    一,lvs和keepalived简单介绍

    LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。

    keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。

    二,安装前的说明

    1,服务器介绍

    Master        192.168.1.11        //lvs主服务器
    BACKUP        192.168.1.12        //lvs从服务器
    VIP           192.168.1.8         //虚拟IP
    WEB1-Real     192.168.1.16        //WEB服务器
    WEB2-Real     192.168.1.17        //web服务器

    2,内核比较,以及加软连接

    /usr/src/kernels/下面内核版本要和所使用的内核版本要一样,如下图

    内核是不是一样

    内核是不是一样

    ln -s /usr/src/kernels/2.6.32-71.el6.x86_64/ /usr/src/linux

    如果没有linux文件夹建之。

    我在网上找资料的时候,发现第2步,可以不要,不过我没有做测试。

    三,安装配置

    1,安装lvs,keepalived

    yum install ipvsadm keepalived

    2,lvs服务器主,从配置keepalived

    [root@localhost kernels]# cat /etc/keepalived/keepalived.conf
    ! Configuration File for keepalived
    
    global_defs {
    #   notification_email {
    #     acassen@firewall.loc
    #     failover@firewall.loc
    #     sysadmin@firewall.loc
    #   }
    #   notification_email_from Alexandre.Cassen@firewall.loc
    #   SMTP_server 192.168.200.1
    #   SMTP_connect_timeout 30
     router_id LVS_DEVEL    //负载均衡器标识,同一网段内,可以相同
    }
    
    vrrp_sync_group VGM {   //定义一个vrrp组
     group {
     VI_1
     }
    }  
    
    vrrp_instance VI_1 {    //定义vrrp实例
     state MASTER        //主LVS是MASTER,从的BACKUP
     interface eth0      //LVS监控的网络接口
     virtual_router_id 51   //同一实例下virtual_router_id必须相同
     priority 100            //定义优先级,数字越大,优先级越高
     advert_int 5           //MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
     authentication {       //验证类型和密码
     auth_type PASS
     auth_pass 1111
     }
     virtual_ipaddress {    //虚拟IP
     192.168.1.8
    #        192.168.1.9     //如果有多个,往下加就行了
    #        192.168.1.7
     }
    }
    
    virtual_server 192.168.1.8 80 {    //定义虚拟服务器
     delay_loop 6                   //健康检查时间,单位是秒
     lb_algo rr               //负载调度算法,这里设置为rr,即轮询算法
     lb_kind DR               //LVS实现负载均衡的机制,可以有NAT、TUN和DR三个模式可选
     persistence_timeout 50         //会话保持时间,单位是秒
     protocol TCP                   //转发协议类型,有tcp和udp两种
    
     sorry_server 127.0.0.1 80      //web服务器全部失败,vip指向本机80端口
    
     real_server 192.168.1.16 80 {  //定义WEB服务器
     weight 1                   //权重
     TCP_CHECK {                //通过tcpcheck判断RealServer的健康状态
     connect_timeout 5      //连接超时时间
     nb_get_retry 3         //重连次数
     delay_before_retry 3   //重连间隔时间
     connect_port 80        //检测端口
     }
     }  
    
     real_server 192.168.1.17 80 {
     weight 1
     TCP_CHECK {
     connect_timeout 5
     nb_get_retry 3
     delay_before_retry 3
     connect_port 80
     }
     }
    }

    从服务器只要改二个地方就行了,priority的权重调小一点,state改成BACKUP

    3,WEB服务器配置脚本

    vim /etc/init.d/lvs    //新增文件lvs
    
    #!/bin/bash
    
    VIP=192.168.1.8
    
    /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
     echo "RealServer Stoped"
     ;;
    *)
     echo "Usage: $0 {start|stop}"
     exit 1
    esac
    
    exit 0

    添加可执行权限,

    chmod +x /etc/init.d/lvs
    chmod +x /etc/rc.d/init.d/functions

    四,启动并查看

    /etc/init.d/keepalived start    //LVS服务器
    /etc/init.d/lvs start           //WEB服务器
    
    [root@localhost kernels]# watch ipvsadm
    
    Every 2.0s: ipvsadm                                                   Wed Jun 20 22:21:21 2012
    
    IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
     -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  192.168.1.8:80 rr persistent 50
     -> 192.168.1.16:80  Route   1      0          0
     -> 192.168.1.17:80  Route   1      0          0
    

    到这儿就安装配置好了。



    • 外贸虚拟主机

      1GB硬盘

      2个独立站点

      1000M带宽

      不限制流量

      美国外贸专用虚拟主机,cPanel面板,每天远程备份.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥180/年

    • 美国/荷兰外贸VPS

      2核CPU

      1G内存

      30硬盘

      10M带宽

      美国/荷兰外贸云服务器,专注外贸服务器行业12年.
      服务器配置:2*E5 32核,96GB 内存,4*2TB 硬盘 RAID10 阵列.

      ¥99/月

    • 全球外贸服务器

      8核CPU

      32G内存

      1TB硬盘

      1000M带宽

      已部署数据中心:美国洛杉矶/亚特兰大、荷兰、加拿大、英国伦敦、德国、拉脱维亚、瑞典、爱沙尼亚
      自有机柜(全球九大数据中心),稳定在线率:99.9%

      ¥999/月 原价1380

    7*24小时 在线提交工单

    如果您的问题没有得到解决,推荐您在线提交工单,我们的客服人员会第一时间为您解决问题

    展开