6月 142017
 

http://blog.sina.com.cn/s/blog_781b0c850101ofb1.html

ipvsadm虽然可以完成LVS的所有配置,但要线上应用,还有一些不足;

  • LVS down了怎么办?

   LVS一旦down了,则所有流量都会损失;因此,我们需要做好LVS冗余;

  • RS down了怎么办?

   RS down掉后,LVS调度到该RS的流量就会损失;因此,我们需要对RS进行健康监测;

LVS管理软件-keepalived-很好的解决了上述问题,

  • LVS down?-
    采用VRRP心跳协议,实现LVS主备冗余;

  • RS down? – 提供4/7层健康检测;

我们线上都采用该软件进行LVS配置管理;

keepalived官网:http://www.keepalived.org/,最新版本为1.2.7;

2.
keepalived

keepalived主要以配置文件的方式来管理LVS;

默认配置文件为
/etc/keepalived/keepalived.conf;

启动方式: keepalived -d -f
/etc/keepalived/keepalived.conf;

接下来,我们详细介绍一下keepalived.conf的常用配置选项;

global_defs {
#这个一般不配置,用途不大
}

#下面配置LVS主备冗余

#主备冗余采用VRRP协议,是支持一主多从的协议;

#参见http://en.wikipedia.org/wiki/Virtual_Router_Redundancy_Protocol

vrrp_instance VI_1 {
#主LVS配置
   state
MASTER    #该LVS配置为主
   interface
eth0  #VRRP心跳包从哪块网卡发出
   virtual_router_id 100 #相同VRID的LVS属于同一组,根据优先级选举出一个主
   priority
150         #VRRP优先级,值越大优先级越高,最大为255
   advert_int
        #VRRP心跳包的发送周期,单位为s
   authentication
    #认证信息
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
  #VRRP心跳内容,VIP地址
       10.2.1.18
       10.2.1.19

   }
}
vrrp_instance VI_2 { #从LVS配置
   state
BACKUP    #该LVS配置为从
   interface
eth0  #VRRP心跳包从哪块网卡发出
   virtual_router_id 100 #同主
   preempt_delay
180    #主从切换的延时时间
   priority
100         #优先级值必须小于主
   advert_int
        #同主
   authentication
    #同主
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
   #同主
       10.2.1.18
       10.2.1.19

   }
}

#下面配置内核ip_vs信息和健康监测参数;

#如果几个vip对应相同的RS,则建议采用本group配置;这样可以减少健康检查次数virtual_server_group
www {
   10.2.1.18
80   #vip和vport
   10.2.1.19
80
}
virtual_server group www {
   delay_loop 3
  #RS健康监测周期,单位为s
   lb_algo wrr
   #负载均衡调度算法
   lb_kind
DR     #转发模式
   protocol
TCP   #传输层协议

   real_server
192.168.10.10 80 { #rs ip和port
       weight
100                #rs权值,可以根据权值分配rs间流量比例
       TCP_CHECK
              #4层健康监测,即TCP
           connect_timeout 7
    #4层连接超时时间,单位为s
       }
   }
   real_server
192.168.10.11 80 { #rs ip和port
       weight
100                #rs权值
       inhibit_on_failure        #rs down时,不删除,而是将weight置为0
       HTTP_GET
             #7层健康监测,即HTTP   
         url
                  
            path
/status.html    #http uri
            status_code
200      #正确http响应的code
         }
       connect_timeout 7
        #4层连接超时时间,单位为s
       nb_get_retry
           #http请求重试次数
       delay_before_retry
     #http重试时间间隔,单位为s
      }
   }
}

 Posted by at 下午4:459 views

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)