zoukankan      html  css  js  c++  java
  • lvs keepalived 安装配置详解【转】

    lvs keepalived 安装配置详解

    张映 发表于 2012-06-20

    分类目录: 服务器相关

    前段时间看了一篇文章,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,服务器介绍

    1. Master        192.168.1.11        //lvs主服务器  
    2. BACKUP        192.168.1.12        //lvs从服务器  
    3. VIP           192.168.1.8         //虚拟IP  
    4. WEB1-Real     192.168.1.16        //WEB服务器  
    5. 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

    1. [root@localhost kernels]# cat /etc/keepalived/keepalived.conf  
    2. ! Configuration File for keepalived  
    3.   
    4. global_defs {  
    5. #   notification_email {  
    6. #     acassen@firewall.loc  
    7. #     failover@firewall.loc  
    8. #     sysadmin@firewall.loc  
    9. #   }  
    10. #   notification_email_from Alexandre.Cassen@firewall.loc  
    11. #   smtp_server 192.168.200.1  
    12. #   smtp_connect_timeout 30  
    13.  router_id LVS_DEVEL    //负载均衡器标识,同一网段内,可以相同  
    14. }  
    15.   
    16. vrrp_sync_group VGM {   //定义一个vrrp组  
    17.  group {  
    18.  VI_1  
    19.  }  
    20. }    
    21.   
    22. vrrp_instance VI_1 {    //定义vrrp实例  
    23.  state MASTER        //主LVS是MASTER,从的BACKUP  
    24.  interface eth0      //LVS监控的网络接口  
    25.  virtual_router_id 51   //同一实例下virtual_router_id必须相同  
    26.  priority 100            //定义优先级,数字越大,优先级越高  
    27.  advert_int 5           //MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒  
    28.  authentication {       //验证类型和密码  
    29.  auth_type PASS  
    30.  auth_pass 1111  
    31.  }  
    32.  virtual_ipaddress {    //虚拟IP  
    33.  192.168.1.8  
    34. #        192.168.1.9     //如果有多个,往下加就行了  
    35. #        192.168.1.7  
    36.  }  
    37. }  
    38.   
    39. virtual_server 192.168.1.8 80 {    //定义虚拟服务器  
    40.  delay_loop 6                   //健康检查时间,单位是秒  
    41.  lb_algo rr               //负载调度算法,这里设置为rr,即轮询算法  
    42.  lb_kind DR               //LVS实现负载均衡的机制,可以有NAT、TUN和DR三个模式可选  
    43.  persistence_timeout 50         //会话保持时间,单位是秒  
    44.  protocol TCP                   //转发协议类型,有tcp和udp两种  
    45.   
    46.  sorry_server 127.0.0.1 80      //web服务器全部失败,vip指向本机80端口  
    47.   
    48.  real_server 192.168.1.16 80 {  //定义WEB服务器  
    49.  weight 1                   //权重  
    50.  TCP_CHECK {                //通过tcpcheck判断RealServer的健康状态  
    51.  connect_timeout 5      //连接超时时间  
    52.  nb_get_retry 3         //重连次数  
    53.  delay_before_retry 3   //重连间隔时间  
    54.  connect_port 80        //检测端口  
    55.  }  
    56.  }    
    57.   
    58.  real_server 192.168.1.17 80 {  
    59.  weight 1  
    60.  TCP_CHECK {  
    61.  connect_timeout 5  
    62.  nb_get_retry 3  
    63.  delay_before_retry 3  
    64.  connect_port 80  
    65.  }  
    66.  }  
    67. }  

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

    3,WEB服务器配置脚本

    1. vim /etc/init.d/lvs    //新增文件lvs  
    2.   
    3. #!/bin/bash  
    4.   
    5. VIP=192.168.1.8  
    6.   
    7. /etc/rc.d/init.d/functions  
    8.   
    9. case "$1" in  
    10. start)  
    11.  ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP  
    12.  /sbin/route add -host $VIP dev lo:0  
    13.  echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore  
    14.  echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce  
    15.  echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore  
    16.  echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce  
    17.  sysctl -p >/dev/null 2>&1  
    18.  echo "RealServer Start OK"  
    19.  ;;  
    20. stop)  
    21.  ifconfig lo:0 down  
    22.  route del $VIP >/dev/null 2>&1  
    23.  echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore  
    24.  echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce  
    25.  echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore  
    26.  echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce  
    27.  echo "RealServer Stoped"  
    28.  ;;  
    29. *)  
    30.  echo "Usage: $0 {start|stop}"  
    31.  exit 1  
    32. esac  
    33.   
    34. exit 0  

    添加可执行权限,

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

    四,启动并查看

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

    到这儿就安装配置好了。



    转载请注明
    作者:海底苍鹰
    地址:http://blog.51yip.com/server/1417.html
  • 相关阅读:
    PHP之readdir()函数
    PHP之compact()函数
    scanf_s
    GitHub高级搜索
    负载均衡算法
    git操作
    SpringBoot引入监听器
    Redis高可用
    50个常用sql语句 网上流行的学生选课表的例子
    Mysql优化策略
  • 原文地址:https://www.cnblogs.com/fx2008/p/4015457.html
Copyright © 2011-2022 走看看