注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天边云E家 shaoruisky

IT博文共享,知识的海洋

 
 
 

日志

 
 

keepalived+lvs 集群的部署(一)  

2011-12-15 20:09:16|  分类: linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
第一keepalived 的介绍

1  keepalivedlvs 的扩展项目,因此keepalived lvs 之间具备良好的兼容性

 2  keepalived通过对服务器池中的对象进行健康检查,同时实现了对失效机器和服务的故障隔离,并把其从服务池中删除(当然我们在keepalived 的主配置文件中同样能够定义让其不删除,而是把其的权重设置成0)如果失效的机器或者服务,正常恢复时,keepalived 能够自动把其加入服务池。

 3  keepalived 通过VRRPv2虚拟路由协议(Virtual Router Redundancy Protocol实现了负载均衡之间的失败切换

 4  keepalived是一个高度模块化设计的软件,而且keepalived 工作TCP/IP  345层。 

第二  keepalived 体系架构 如下图

               

             

 

   1 keepalvied整体上分为用户空间和内核空间.

  2  处于下端的内核空间,包含ipvs NETLINKK LVS 的缩写LINUX  Virture Service 的缩写,是一个虚拟的服务器集群系统。netlink 提供高级路由及其他相关的网络服务器功能

 3 watchdog 是负责监控checkersVRRP进程

  4 Checkers 是负责真实服务器的健康检查healthchecking,是keepalived的最重要的功能

  5 VRRP starck 负责负载均衡器之间的失败切换FailOver.

   6 IPVS wrapper 用来发送设定的规则到内核IPVS 代码

   7         <!--[endif]-->Netlink Reflector  用来设定Vrrp 虚拟地址VIP

<!--[if !supportLists]-->   8         <!--[endif]-->keepalived 采用的是多进程的设计模式,每个进程负责不同的功能

第三 实验的系统规划及其 keepalived 安装

    1 两台keepalived 主机,两台Realserver 主机

          ha1

eth0 192.168.2.211

eth1 10.80.2.1

             ha2   eth0 192.168.2.107

                   eth1 10.80.2.2

             Realserver1   192.168.2.155

             Realserver2   192.168.2.153

            VIP   192.168.2.188

2.修改keepalived 两台主机的主机名,并安装Ipvsadm  当然您可以选择用rpm 或者用源码包安装,但是如果要用源码包安装,在编译安装时可能报错, 解决方法 ( ) .可以选择编译内核,()#做一个内核连接文件

  #cd /usr/src

  #ln –sv   kernel/2.6.18-164.el5      ./linux

       3. 安装keepalived

         #tar  -xvf keepalived-1.1.20.tar.gz

         #cd  keepalived-1.1.20

         #./configure

            Keepalived configuration

------------------------

Keepalived version         : 1.1.20

Compiler                 : gcc

Compiler flags             : -g -O2

Extra Lib                  : -lpopt -lssl -lcrypto

Use IPVS Framework        : Yes

IPVS sync daemon support   : Yes

Use VRRP Framework       : Yes

Use LinkWatch             :No

Use Debug flags            : No

        

             注: Use IPVS Framework  IPVS 框架即是LVS的核心代码框架,如果不使用LVS,当然在编译configure 时指定参数disable-lvs,那时该项就是No

                  Use sync daemon support IPVS 同步进程,如果Use IPVS Framework 选项为no 时,同样该处也为No,如果不想使用LVS的同步进程sync daemon ,同样在configure 中可以禁止该项,disable-lvs-syncd

            Ues VRRP Framework   VRRPkeepalived 的核心进程,当然该框架是必须的

             Use Linkwatch  是通过接受内核发出的关于网卡的状态信息来判断网卡的状态,因为是内核发出的信息,这样在客户端只需要捕捉该信息,当keepalived 主机网卡超过20块的情况下使用该项

                #make  && make install

        4. 配置keepalived 启动脚本

         # cd keepalived/etc

          #cp   keepalived.rh.init   /etc/init.d/keepalived

 

           chmod  755  /etc/init.d/keepalived

           #cp    keepalived.sysconfig      /etc/sysconfigure/keepalived

< XMLNAMESPACE PREFIX ="O" /> 

            #cd  /root/keepalived/keepalived-1.1.20/keepalived/etc/keepalived 

            #mkdir  /etc/keepalived

            #cp  keepalived.conf  /etc/keepalived

第四 keepalived配置文件的说明

 keepalived的主配置文档在/etc/keepalived/keepavlived.conf 

keepalived 的全局配置文件对keepalived起效的配置,而VRRPD keepalived 的核心,LVS配置只是需要使用keepalived来配置和管理LVS时需要使用,当然如果是只用keepalived 配置高可用集群是,LVS模块就不需要配置

  配置文件都是以块的形式组织的,每个模块的配置都需要用 {  } 的范围之内

keepalived 的主配置文件中主要分为三个文本模块分别是:  

全局模块(Global Configuration),VRRPD配置模块(VRRP 实例模块),LVS模块(虚拟服务模块);

 1 全局配置(Global Configuration 包括两个部分: 即全局定义(global definition 和静态地址路由(Static ipaddress /routes

      全局定义:主要是设置Keeplived 的通知机制和标识,同时也不建议用该方法进行状态监控,进行状态监控时nagios 是不二的选择

   静态地址路由:该处是配置静态地址和静态路由的,换句话说不随着Vrrp instance 的开关的变化而变化,当然VIP不是static IPaddress,会随着VRRPD而添加和删除,设置静态地址和静态路由的格式如:src $SRC_IP  to $DST_IP dev $SRC_DEVICE 或者src  $SRC_IP  to  $DST_IP  via $GW dev $SRC_DEVICE

    2 .VRRPD 配置包括三个部分: 分别是VRRP脚本(VRRP scripts)   . VRRP同步组(syncgriuzation group VRRP 实例(VRRP Instance):

VRRP scripts: 脚本会安周期性执行,每秒( 或者按照自己设定的时间间隔),被监控的实例会记录退出的代码,这些脚本被至少有被监控的实例的权重为o的实例才能执行,因此任意脚本可能的声明都不会被系统所记录,如果没有特殊的设置,权重等于2,就意味着那些被监控的实例的优先级会被增加2,反过来,如果失败,则那些实例的优先级会被减去2

 原文如下:The script will be executed periodically, every <interval> seconds. Its exit

code will be recorded for all VRRP instances which will want to monitor it.

Note that the script will only be executed if at least one VRRP instance

monitors it with a non-zero weight. Thus, any number of scripts may be

declared without taking the system down.If unspecified, the weight equals 2, which means that a success will add +2 to the priority of all VRRP instances which monitor it. On the opposite, a negative weight will be subtracted from the initial priority in case of failure.

 

syncgriuzation group: 如果不使用 VRRP Sync Groups 如果keepalived 主机有两个网段,每个网段开启一个VRRP 实例,如果对外的网段出现问题,VRRPD认为自己仍然认为健康,因此 MasterBackup 相互切换,从而导致服务不能正常使用,同时高可用集群也不能正常运行,Sync group 就是为了解决该问题,可以把两个实例放进同一个Sync Group

 VRRP Instance 配置:实例主要是定义vrrp_sync——group 里面的每组的漂移地址

     3.LVS  配置同样也是包括两个部分:虚拟主机组(Virtual server group 和虚拟主机(virtual server)。这些配置都会传递给ipvsadm 作为参数

      虚拟主机组: 目的就是然一台RealServer 上其中的一个Service可以属于多个Virtual Server ,并且只做一次健康检查格式如下

            Virtual_server_group <STRING> {

                     #VIP  port

               <IPADDR>  <port>      

}

       虚拟主机:可以3种方式分别是:virtual_server IP portvirtual_server fwmark int virtual_server  group string

  第五 拟主机健康监查方式:HTTP_GET|SSL_GET|TCP_CHECK|SMTP-CHECK|MISC_CHECK

1 HTTP_GET |SSL_GET

     { url { #HTTP/SSL 检查的URL,该处可以指定多个URL

            path /

            digest  TRING>  #SSL检查后的摘要信息(genhash 工具算出)

            status_code 200 #HTTP检查的返回状态

            }

           ….. #注:省略的和下文keepalived.conf 的配置相同

           }

    2  TCP_CHECK {}#注: keepalived的主配置文件中用的就是该种方式进行健康检查,该处就不再说明

    3  SMTP_CHECK 方式健康检查

        SMTP_CHECK {

                host {

                    connect_ip  <IP ADDRESS>

                    connect_port  <port> #默认检查的端口为25

                    }

                    connect_timeoust <INTEGER>

                     retry <INTEGER>

                     delay_before_retry <INTEGER>

                      #smtp HELO  请求命令的参数,可选  <INTEGER>

                       helo_name <STRING>|<QUOTED-STRING>

                   }

       4  MISC_CHECK 检查方式,执行一个程序

              MISC_CHECK

                 {   misc_path  <STRING>  | <QUOTED_STRING>  # 注:外部程序或者脚本的路径

                      misc_timeout <INT > #注:脚本执行的超时时间

                    misc_dynamic       #如果设置了misc_dynamichealthchecker程序的退出代码会动态调整服务器的权重

                      #返回0:健康检查OK,权重不被修改

                      #返回1:健康检查失败,权重设0

                                  #返回2-255:监控检查OK,权重设置为: 退出状态-2,比如返回255,那么权重weigh=255-2=253

}

  评论这张
 
阅读(324)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016