keepalived应用:漂移IP的实现

阅读: 评论:0

keepalived应⽤:漂移IP的实现
1.集的介绍
  每个服务器都叫做⼀个节点,集节点之间是可以相互通信的,通信⽅式有两种:⼀种是基于RS232⼼跳线实现⼼跳监控,另⼀种⽤⼀块单独的⽹卡来跑⼼跳。⼼跳就是⽤来判断集每个服务器之间⽹络、服务是否正常,判断⽅法就是⽤连接线,这个连接线可以是⽹卡,也可以是RS232,⼀般⽤⽹卡⽹线。
  集必须拥有这⼏个特性:1.服务实体的扩展功能,可以灵活的增加和剔除某个服务实体。2.当⼀个节点出现故障时,集的另⼀个节点可以⾃动接管故障节点资源。3.⼀个集系统必须拥有共享的数据存储。
  所以要构建⼀个集系统,⾄少需要两台服务器,串⼝线、集软件、共享存储设备(磁盘阵列)。
1.1 集有的特点与功能
① ⾼可⽤性与可扩展性(为满⾜需求动态加⼊节点)
  ⾼可⽤指的是24⼩时不间断使⽤,可扩展性指的是能满⾜需求动态加⼊节点。
② 负载均衡与错误恢复铁水预处理
负载均衡主要⽤于分流。⽽错误恢复指的是当⼀个任务在⼀个节点没有完成时因为某种原因执⾏失败,此时  另⼀个服务节点就会接着完成此任务,等出错的节点恢复好后重新回到这个集。
③ ⼼跳检测与漂移IP地址
风力摆控制系统  ⼼跳检测是通过⼼跳线来实现的,可以做⼼跳线的可以有RS232串⼝线、独⽴⽹卡、共享磁盘阵列,⼼跳线的数量应该是集节点数量减1,集系统就是通过⼼跳技术保持着节点之间的内部有效通信。
  ⽽漂移IP地址⼜叫做VIP,也就是虚拟IP,这个IP不是服务器固定的IP,可能⼀会在这个节点,也可能出现在另⼀个节点。例如正常情况下VIP位于主节点上,当主节点出现故障后,漂移IP地址⾃动切换到备⽤节点,因此为了保证服务的不间断,在集系统中对外提供的服务IP⼀定要是这个VIP,否则如果是节点本⾝对外提供服务的话,当该节点失效后服务切换到另⼀个节点,但是服务IP仍是故障IP地址。
1.2 集的分类
① ⾼可⽤集HA
盆角齿
  常说的⾼可⽤集有双机热备、双机互备、多机互备等,这类集⼀般都有两个或者两个以上节点组成。我们使⽤的⾼可⽤集配置软件:keepalived
  双机热备:是⼀台作为主服务器运⾏应⽤程序对外提供服务,另⼀台作为备机,但不启动服务处于待机状态。主机备机通过⼼跳技术相互监控,监控的资源可以是⽹络、操作系统、也可以是服务。当备机监控到主机某个资源出现故障,就可以根据预先设定好的策略将IP、服务切换过来。
  双机互备:两个相互独⽴的应⽤在两个机器上同时运⾏,互为主备。缺点是某个节点出现问题时,另⼀个节点就同时运⾏两个应⽤的服务,有可能出现负载过⼤的情况。
  多机互备:⼀主多备,当主机出现问题会根据选举机制把某个备机选出来使⽤。
② 负载均衡集
  负载均衡集是为了应对业务量⼤的情况,实现负载分流。他负载均衡集也是有两台或者两台以上的服务器组成,分为前端负载调度和后端节点服务两个部分,负载调度部分负责把客户端的请求按照不同的策略分配给后端服务节点,⽽后端节点是真正提供应⽤程序服务的部分。
  与⾼可⽤集相⽐,负载均衡集中所有的后端节点都处于活动状态,都对外提供服务,分摊⼯作负载,从⽽把⼀个⾼负荷的应⽤分散到多个节点共同完成,适⽤于业务繁忙、⼤负荷的应⽤系统,但是⼜不⾜:当⼀个节点出现故障时,前端调度系统并不知道此节点已经不能提供服务,仍然会把客户端的请求调度到故障节点上来,所以为了解决这个问题,负载调度系统都会引⼊节点监控系统,前端调度系统就会把这个节点剔除,当然这⾥⾯可能会涉及⼀致性hash。
  负载均衡集可以通过软件⽅式实现,也可以由硬件设备来完成。Linux下典型的负载均衡软件⼜:开源LVS集。硬件负载均衡器
F5(贼贵)
2. HA集软件Keepalived
  在集中⼜四个相关术语:节点、资源、事件和动作。节点就是服务器,资源就是⼀个节点可以控
制的实体,当节点发⽣故障时,这些资源可以被其他节点接管。事件指的是集中可能发⽣的事,例如⽹卡故障、应⽤程序故障等,⽽应⽤程序故障需要我们写脚本来判断应⽤程序是否出现故障。动作指的是事件发⽣时HA的响应⽅式,动作由shell脚本控制的,例如当⼀个节点发⽣故障后,备份节点将通过事先设定好的执⾏脚本进⾏服务的关闭或启动,进⽽接管故障节点的资源。
无线数据传输  Keepalived主要通过虚拟路由冗余来实现⾼可⽤功能。他⼀⽅⾯具有服务器状态检测和故障隔离功能,另⼀⽅⾯也具有⾼可⽤集的功能(主要因为VRRP虚拟路由器冗余协议)。
① VRRP协议与⼯作原理
  在现实⽹络环境中,主机之间的通信都是通过配置静态路由来完成的,但是⼀旦主机之间的路由器出现故障通信就会失败。因此引⼊了VRRP协议。
  VRRP就是⼀种主备模式的协议,通过VRRP可以在⽹络发⽣故障时透明地进⾏设备切换⽽不影响主机之间的数据通信,这⾥引⼊两个概念:物理路由器和虚拟路由器。
  VRRP可以将两台或者多台物理路由器设备虚拟成⼀个虚拟路由器,这个虚拟路由器通过虚拟IP(⼀个或者多个)对外提供服务。在虚拟路由器内部,同⼀时间只有⼀台物理路由器在对外提供服务,这台物理路由器被称为主路由器(MASTER),⼀般⽽⾔MASTER通过选举算法产⽣,它拥有对外服务
的虚拟IP,提供各种⽹络功能。⽽其他物理路由器不拥有对外的虚拟IP,仅仅接收MASTER的VRRP状态通告信息,这部分路由器叫做备份路由器。当主路由器失效的时候,备份路由器重新进⾏选举,产⽣⼀个新的路由器成为MASTER。
② Keepalived的配置
  Keepalived的配置分为三类,分别是全局配置、VRRPD配置和LVS配置。
全局配置HA配置:
  全局配置以“global_defs”作为标识,在global_defs区域内的都是全局配置选项。
  ⾥⾯可以设置报警邮件地址、邮件的发送地址等信息,主要是报警的。
VRRPD配置:
  a. vrrp_sync_group
  VRRPD配置是Keepalived所有配置的核⼼,主要来实现⾼可⽤的。VRRPD配置⼜分为VRRP同步组配置和VRRP实例配置。同步组是相对于多个VRRP实例⽽⾔的,把所有的VRRPD实例都加⼊到同步组中,这样任何⼀个实例出现问题都会导致keepalived进⾏主备切换。下⾯是同步组:
  其中G1同步组包含了三个实例,G2包含了2个实例,这五个实例都会在vrrp_instance段中进⾏定义。
除此之外,还有三个nofify的通知机制。
  notify_master:指定当Keepalived进⼊Master状态时要执⾏的脚本,这个脚本可以是⼀个状态报警脚本。
  notify_bacup:当keepalived进⼊备机backup状态时要执⾏的脚本
  notify_fault:进⼊fault状态时要执⾏的脚本。
梭织机
  notify_stop:进⼊终⽌状态时执⾏的脚本。
  下⾯是实例组的配置。
  b. vrrp_instance
  VRRP实例段主要⽤来配置节点⾓⾊(主或从)、实例绑定的⽹络接⼝、节点间验证机制、集服务IP等。这⾥只给了⼀部分的配置。  vrrp_instance:是vrrp实例开始的标志,后⾯跟vrrp实例名称。
  State:指定keepalived的⾓⾊,分为MASTER和BACKUP。
  Virtual_router_id:是虚拟路由标识,是⼀个数字,主机和备机的Virtual_router_id⼀定是⼀样的,⼀样的就可以统⼀认为在⼀个集⾥(例如上⾯的3台机器)。
  Virtual_ipaddress:其中还有⼀个⽐较重要的设置虚拟IP地址(VIP),⼜叫做漂移ip地址。可以设置多个虚拟IP地址,当keepalived 切换到master状态时,vip就会⾃动添加到系统中,切换到BACKUP状态时,vip⼜会⾃动从系统中删除。
  nopreempt:配置在主节点上配置,设置⾼可⽤集中的不抢占功能。也就是当主节点出现问题后备机接上,我们希望的是当之前的主机修好之后服务不会切回来。
  advent_int:设定MASTER与BACKUP主机之间同步检查时间间隔。
  c. vrrp_script模块(监控模块)
  第⼀种:⽤killall -0的⽅式来进⾏监控冰鲜台
  这个模块专门⽤于对集中服务资源进⾏监控。与此模块⼀起使⽤的还有track_script模块,track_script模块⽤于调⽤vrrp_script模块来实现对集资源的检测。这⾥需要注意的是,vrrp_script是单独的⼀个模块,⽽track_script属于某⼀个实例vrrp_instance当中的。⼀般⽽⾔,我们通过killall -0来实现检测,当我们killall的时候,是⽤来关闭进程的,我们这⾥要⽤到的是kill -0,这是标识对程序进程
的运⾏状态进⾏监控,如果发现进程关闭或者其他异常,将返回状态码1,反之如果发现进程运⾏正常,将返回状态吗0.即可以通过监控脚本的返回状态来识别服务器是否正常。代码如下:
  这⾥例⼦就是定义了⼀个服务监控模块check_mysqld,采⽤的监控⽅式就是killall -0 mysqld⽅式,时间间隔是2秒。当主的mysql关闭时,返回状态码1,然后就会根据vrrp_script模块中设定的weight值重新设置keepalived主备优先级发⽣主备切换。
  第⼆种:还可以通过检查端⼝运⾏状态也是最常见的服务监控⽅式
  检测本机的80端⼝,当检测到失败最⼤次数为2时标识发⽣故障进⾏切换操作。Rise标识请求成功⼀次就认为此节点资源恢复正常。

本文发布于:2023-06-30 15:43:39,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/2/158534.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:节点   集群   服务   路由器   故障   负载   配置   出现
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图