Keepalived 使用指南

1.    简介

负载均衡是虚拟服务的一种好的处理方案。当设计一种负载均衡的拓扑时一定要考虑到如下两点:

真实服务器的可用性使用健康检测机制。

负载均衡器的可用性使用故障转移协议。

负载均衡真实服务,提供了一个全局的高可用虚拟服务。为增加负载均衡服务的可用性,需要检测每个真实服务器节点的状态。这个问题可以通过使用健康检测框架来操作一个服务器池来解决。

另一方面,当使用一个负载均衡器director,对虚拟服务引入了一个故障节点。因负载均衡器的高可用性必须被处理,使用专用的路由协议对director的故障转移/虚拟化。

Keepalived解决这两个问题:一方面,增加一个强壮和健壮的监控检测框架;另一方面,实现了一个热待机协议。这两个框架可以处理lvs框架来操作lvs真实服务器池,对lvs真实服务池的操作可以通过增加或者删除基于健康检测的真实服务器来完成。

2. 术语

LVS 代表了linux virtual Server. LVS 是linux 内核内嵌的一个负载均衡工具。更多信息参考工程主页:http://www.linux-vs.org. LVS作为一个网桥(通过nat)来负载均衡TCP/UDP流。LVS路由器组件如下:

  • WAN 接口。可以被所有用户访问到的以太网接口控制器。
  • LAN接口。管理所有负载均衡服务器的以太网接口控制器。
  • linux内核。内核内嵌了最新的LVS,并且当作路由器的操作系统。

关键词:

LVS组件:

VIP: 可以被所有用户访问的虚拟IP,所有的用户通过这个IP访问服务器。

真实服务器:应用服务部署在真实的服务器上,处理用户的请求。上图中的web server1 和webserver2 即是。

服务器池:一组真实服务器。

虚拟服务器:被应用访问的服务器池地址。

虚拟服务: 关联到VIP的TCP/UDP服务。

VRRP 组件:

VRRP:虚拟路由器冗余协议是一种选择协议,它可以把一个虚拟路由器的责任动态分配到局域网上的 VRRP 路由器中的一台。

VRRP实例:a thread manipulating vrrpv2 specific set of ip addresses。

一个VRRP实例可以作为一个或者多个VRRP实例的备份。

IP地址拥有者:用户IP地址作为真实接口地址的VRRP实例。

主机状态:一种VRRP实例状态,当VRRP实例处于这种状态就可以认为关联此实例的IP地址负责处理发送的请求。

备机状态:一种VRRP实例状态,当当前的处于主机状态的VRRP实例宕机时,处于该状态的VRRP实例有能力处理发送来的请求。

真实负载均衡器:运行一个或者多个VRRP实例的一个LVS director。

虚拟负载均衡器:一组真实负载均衡器。

被同步实例:一个将要被同步的VRRP实例,被监控的VRRP实例。

通知:发送给处于一组处于主机状态的VRRP实例的一个简单VRRPv2包的名称。

3. 软件架构

3.1 全局和局部

软件架构涉及4个linux 内核组件:

  1. LVS核心框架:Kernel2.2使用setsockopt,kernel 2.4使用setsockopt netfilter。
  2. IPCHAINS 框架:kernel 2.2 LVS NAT架构使用内部的IPCHAINS 包装器来发送MASQ链到内核。这个仅仅在linux 2.2内核上运行。在kernel 2.4 ipvs代码使用netfilter call来处理特定的NAT规则。
  3. Netlink接口:对于热待机协议(VRRP),我们使用netlink接口来设置/去除VRRP的VIP.
  4. 组播:对于VRRP部分,通告被发送到组播组。

3.2软件设计

下面将阐述keepalived软件的内部实现组件。Keepalived使用一个基于中央I/O复用器的多线程框架。2个主要的组件如下:

健康检测工作线程:每个健康检测被注册到全局的调度框架。这些工作线程在keepalived 健康检测框架下执行健康检测。健康检测框架当前执行3个检测:

TCP检测:应用第三层检测。

HTTP GET:检测一个远程http服务器的html 内容完整性。

SSL GET:检测一个远程SSL服务器的html内容完整性。

混合检测:应用用户定义的完整性检测。

VRRP 包分发器:解服用特定I/O来处理VRRP实例的响应。

这两个主要组件使用到下面的底层primitives

SMTP通知:一个SMTP包装器使用异步数据流处理。这个primitive使得keepalived可以发送邮件通知。

IPVS框架:LVS NAT,DR&TUN等。

Netlink:提供VRRP VIP操作。

组播:使用多播来发送VRRP通告。

IPCHAINS框架,如上所述。

SYSLOG: 所有后台通知消息使用syslog后台来记录。

4.    健康检测框架

如上《略》

为了director故障转移,keepalived实现了VRRP协议。这个协议可以这样简洁的描述为:

虚拟路由器冗余协议(VRRP)是一种选择协议,它可以把一个虚拟路由器的责任动态分配到局域网上的 VRRP 路由器中的一台。控制虚拟路由器 IP 地址的 VRRP 路由器称为主路由器,它负责转发数据包到这些虚拟 IP 地址。一旦主路由器不可用,这种选择过程就提供了动态的故障转移机制,这就允许虚拟路由器的 IP 地址可以作为终端主机的默认第一跳路由器。使用 VRRP 的好处是有更高的默认路径的可用性而无需在每个终端主机上配置动态路由或路由发现协议。 VRRP 包封装在 IP 包中发送。[ 引用自rfc2338]。

5.    Keepalived 配置语法

配置文件分为三个部分:

5.1     全局定义的语法

5.2     虚拟服务器定义语法

5.3     VRRP实例定义语法

转载于:https://www.cnblogs.com/davidwang456/p/3391702.html

Keepalived 使用指南相关推荐

  1. Keepalived权威指南中文(Keepalived:The Definitive Guide)

    Keepalived 权威指南 The Definitive Guide 第一章 VRRP 1.1 VRRP协议简介 VRRP路由器 VRRP虚拟路由器 MASTER和BACKUP 1.2 工作机制 ...

  2. keepalived实现双机备份

    keepalived是一个类似于layer3, 4, 5 交换机制的软件,也就是我们平时说的第3层.第4层和第5层交换.Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机, ...

  3. Keepalived+LVS+MySQL双主复制实现读写负载均衡及高可用

    目录 一.Keepalived和LVS简介 1. Keepalived简介 2. LVS简介 二.安装配置 1. 下载安装LVS 2. 下载安装Keepalived 3. Keepalived配置 5 ...

  4. Nginx+KeepAlived实现负载均衡高可用原理

    作者:田超凡 原创博文,严禁复制转载,仿冒必究 nginx负载均衡高可用 什么是负载均衡高可用 nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务 ...

  5. Keepalived v1.3.5 高可用配置参数总结

    Keepalived v1.3.5 高可用配置参数总结 前言 官网介绍 gratuitous ARP包 VRRP包 VRRP实例 1 全局配置 1.1 全局定义(global_defs ) 1.2 静 ...

  6. Linux系统运维工程师PDF文档精选

    收藏先,O(∩_∩)O~ Linux系统运维工程师PDF文档精选 1.高级Bash脚本编程指南  http://www.unixhot.com/pdf/bash.pdf 2.Linux 策略路由和流量 ...

  7. nginx负载均衡高可用

    1.1   什么是负载均衡高可用 nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重. 为了屏蔽负载均 ...

  8. 浅谈web网站架构演变过程

    前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变. 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理 阶段一.单 ...

  9. Tips: Disk Performance On FreeBSD

    http://www.tagidea.com/reader/SA_Notes Disk I/O 读写性能: [9:42am] ~#diskinfo -c /dev/mfid0 /dev/mfid0 5 ...

最新文章

  1. mysql学习二:sql语句分类
  2. MySQL创建数据表(CREATE TABLE语句)
  3. python百钱买百鸡-百钱买百鸡的Python实现
  4. “云智一体“全场景智能视频技术与应用解析白皮书下载申请
  5. Gridview一次更新所有记录
  6. 使用DNS 轻松获取主机信息
  7. Redis面试常问4-- 如何实现异步队列 Blpop key timeout
  8. latex缩进与对齐_科学网—Latex算法排版,不同行缩进不同 - 张鹏的博文
  9. 寻找最小的k个数(四种方法)
  10. 2d unity 多物体 射线_[蛮牛驿馆] Unity2D:用射线检测物体的点击
  11. 实验二 语法分析1——递归子程序法
  12. 此计算机 未识别的网络,未识别的网络无网络访问解决方法(图文)
  13. 第十一次 Java作业
  14. WP模板兔模板V4.3 去除授权+多功能插件
  15. 计算机知识怎么做框架,计算机基础知识框架.ppt
  16. 题解:2018校招真题(字节跳动:手串)
  17. 牛客网笔试题 (经常更新)
  18. FCPX插件:视频降噪插件ProDenoise for Mac破解激活方法
  19. 内蒙古2019计算机考试安排,2019年下半年内蒙古计算机软考考试报名通知
  20. 2019年8月review汇总

热门文章

  1. edHat linux光盘引导,Red Hat Linux 9光盘启动安装过程
  2. java每隔一段时间执行_8.Android中,每隔一段时间执行某一个任务(Timer)
  3. C++继承中的构造与析构
  4. 数据库与数据库管理系统的基本概念
  5. latex 参考文献没有显示_LaTeX参考文献引用 ( Better BibTeX )
  6. php判断ip跳转城市,PHP判断IP并转跳到相应城市分站的方法
  7. matlab中所遇到的问题,【总结】【matlab】【机器学习】学习过程中遇到的问题总结...
  8. 如何将切换anaconda 的Python 版本
  9. 行代码入门python_新浪微博Android客户端开发视频教程(36讲)
  10. 机器学习笔记 时间序列预测(最基本的方法【benchmark】)