基于VIP的keepalived高可用架构简单介绍

1. keepalived简介

  • Keepalived的作用
    Keepalived的作用是检测服务器的状态。如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

  • Keepalived的特性

  1. 配置文件简单:配置文件比较简单,可通过简单配置实现高可用功能
  2. 稳定性强: keepalived是一个类似于layer3/4/7交换机机制的软件,具备我们平时说的第3层、第4层和第7层交换机的功能,常用于前端负载均衡器的高可用服务,当主服务器出现故障时,可快速进行切换,监测机制灵活,成功率高。
  3. 成本低廉:开源软件,可直接下载配置使用,没有额外费用。
  4. 应用范围广:因为keepalived可应用在多个层面,所以它几乎可以对所有应用做高可用,包括LVS、数据库、http服务、nginx负载均衡等等
  5. 支持多种类型:支持主从模式、主主模式高可用,可根据业务场景灵活选择。

2. Keepalived 工作原理

  • Keepalived内部工作分为以下几个部分
  1. WatchDog 监控checkers和VRRP进程的状况;
  2. Checkers负责真实服务器的健康检查healthchecking;
  3. VRRP Stack负责负载均衡器之间的失败切换;
  4. IPVS wrapper 用来发送设定的规则到内核lPVS代码;
  5. Netlink Reflector用来设定vrrp 的vip地址等。

Keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

VRRP根据优先级来确定虚拟路由器中每台路由器的角色(Master路由器或Backup路由器)。VRRP优先级的取值范围为0到255(数值越大表明优先级越高),可配置的范围是1到254,优先级0为系统保留给路由器放弃Master位置时候使用,255则是系统保留给IP地址拥有者使用。优先级越高,则越有可能成为Master路由器。当两台优先级相同的路由器同时竞争Master时,比较接口IP地址大小。接口地址大者当选为Master。

  • Keepalived主要有三个模块,core、check和vrrp。
  1. core模块为: keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。
  2. check模块:负责健康检查,包括常见的各种检查方式。
  3. vrrp模块:是来实现VRRP协议的。

3. Keepalived应用场景

在网络层、数据链路层,运行着4个重要的协议:

  • IP:互联网协议。
  • ICMP:互联网控制报文协议。
  • ARP:地址转换协议。
  • RARP:反向地址转换协议。

网络层场景

Keepalived在网络层采用的最常见的工作方式是通过ICMP协议向服务器集群中的那个节点发送一个ICMP数据包(类似于ping实现的功能),如果某个节点没有返回响应数据包,那么认为此节点发生了故障,Keepalived将报告次节点失效,并从服务器集群中剔除故障节点。

  • 传输层场景

在传输层,提供了两个主要的协议:传输控制协议TCP和用户数据协议UDP。传输控制协议TCP可以提供可靠的数据传输服务、IP地址和端口代表TCP的一个连接端。要获得TCP服务,需要在发送机的一个端口上和接收机的一个端口上建立连接。
Keepalived在传输层就是利用TCP协议的端口连接和扫描技术来判断集群点是否正常的。比如,对于常见的WEB服务默认的80端口、SSH服务默认的22端口等,,Keepalived一旦在传输层探测到这些端口没有响应数据返回,就认为这些端口发生异常,然后强制将此端口对应得节点从服务器集群组中移除。

  • 应用层场景

在应用层,可运行FTP、TELNET、HTTP、DNS等各种不同类型的高层协议。
Keepalived在应用层的运行方式也更加全面化和复杂化,用户可以通过自定义Keepalived的工作方式;例如:用户可以通过编写程序来运行keepalived。而keepalived将根据用户的设定检测各种程序或服务是否运行正常,如果Keepalived的检测结果与用户设定不一致时,Keepalived将把对应的服务从服务器中移除。


4. 集群

  1. 集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。

  2. 通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度
    则是集群系统中的核心技术。

  3. 集群组成后,可以利用多个计算机和组合进行海量请求处理(负载均衡),从而获得很高的处理效率,也可以用多个计算机做备份(高可用),使得任何一个机器坏了整个系统还是能正常运行。集群在目前互联网公司是必备的技术,极大提高互联网业务的可用性和可缩放性。


5. 高可用

HA(High Available),高可用性群集是通过系统的可靠性(reliability)和可维护性(maintainability)来度量的。

工程上,通常用平均无故障时间(MTTF)来度量系统的可靠性,用平均维修时间(MTTR))来度量系统的可维护性。于是可用性被定义为:HA=MTTF(MTTF+MTTR)*100%(平均无故障时间/总时间,总时间=平均无故障时间+平均维修时间)宕机时间不超过6分钟

具体HA(可用性)衡量标准:

  1. 99%一年宕机时间不超过4天
  2. 99.9%一年宕机时间不超过10小时
  3. 99.99%一年宕机时间不超过1小时
  4. 99.999%一年宕机时间不超过6分钟

6. 高可用集群实现

  • 高可用工作方式:
  1. 主从方式(非对称方式)
  2. 双机双工方式(互备互援)
  3. 集群工作方式(多服务器互备方式)
  • 高可用的资源分类:
  1. 网络高可用(带宽等等,解决并发等问题)
  2. 服务器高可用(CPU、内存、磁盘等等)
  3. 存储高可用(数据存储相关,如MySql, Redis等)
  4. 服务高可用等(缓存服务、Nginx服务、CDN服务等)

开源高可用解决方案: keepalived:通过实现vrrp协议来实现地址漂移


7. 高可用架构

  • 主从高可用架构
  1. 在系统中,有一个Master节点和一个Backup节点,其中Master节点对线上业务提供服务,Backup与Master节点之间保持心跳
  2. 当Master节点因宕机服务不可用时,系统会切换到Backup节点上线,提供服务。
  3. 当宕机Master节点恢复后,系统将该Master作为Backup加入集群。


  • 双主高可用架构
  1. 在系统中,有两个Master节点,均对线上业务提供服务,两个Master节点之间保持心跳。
  2. 当某一台Master节点因宕机服务不可用时,系统会将流量全部导向剩余的Master节点,继续提供服务。
  3. 当宕机的Master节点恢复后,系统将该Master加入集群,提供服务。

8. Keepalived 高可用集群的解决方案

Keepalived在一个节点上启动之后,会生成一个Master主进程,这个主进程又会生成两个子进程,分别是:

  1. VRRP Stack: 实现VRRP协议。
  2. Checkers: 检测ipvs后端realserver的健康状况检测。

VRRP双方节点都启动以后,要实现状态转换的,刚开始启动的时候,初始状态都是BACKUP,而后向其它节点发送通告,以及自己的优先级信息,谁的优先级高,就转换为MASTER,否则就还是BACKUP。

这时候服务就在状态为MASTER的节点上启动,为用户提供服务,如果,该节点挂掉了,则转换为BACKUP,优先级降低,另一个节点转换为MASTER,优先级上升,服务就在此节点启动,VIP,VMAC都会被转移到这个节点上,为用户提供服务。


如果觉得有收获,欢迎点赞和评论,更多知识,请点击关注查看我的主页信息哦~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,961评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,444评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,009评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,082评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,101评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,271评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,738评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,395评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,539评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,434评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,481评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,160评论 3 317
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,749评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,816评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,038评论 1 256
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,548评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,140评论 2 341

推荐阅读更多精彩内容