扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:田逸 来源:IT168 2009年9月27日
关键字: 负载均衡 keepalived
在本页阅读全文(共4页)
前篇文章中(点击),介绍了IP Virtual Server的基本概念和安装部署,本文阐述故障隔离、失败切换框架keepalived。 Keepalived是运行在lvs之上,它的主要功能是实现真实机的故障隔离及负载均衡器间的失败切换FailOver.lvs结合keepalived,就实现了3层、4层、5/7层交换的功能,下面摘录来自官方网站www.keepalived.org的一段描述:
The main goal of the keepalived project is to add a strong & robust keepalive facility to the Linux Virtual Server project. This project is written in C with multilayer TCP/IP stack checks. Keepalived implements a framework based on three family checks : Layer3, Layer4 & Layer5/7. This framework gives the daemon the ability of checking a LVS server pool states. When one of the server of the LVS server pool is down, keepalived informs the linux kernel via a setsockopt call to remove this server entrie from the LVS topology. In addition keepalived implements an independent VRRPv2 stack to handle director failover. So in short keepalived is a userspace daemon for LVS cluster nodes healthchecks and LVS directors failover.
从这段描述中,我们可以得到几个有用的信息:
1、 keepalived是lvs的扩展项目,因此它们之间具备良好的兼容性。这点应该是keepalived部署比其他类似工具能更简洁的原因吧!
2、 通过对服务器池对象的健康检查,实现对失效机器/服务的故障隔离。
3、 负载均衡器之间的失败切换failover,是通过VRRPv2(Virtual Router Redundancy Protocol) stack实现的。
一、 keepalived 体系结构
Keepalived 大致分两层结构:用户空间 user space和内核空间 kernel space.图1是来自官方站点(http://www.keepalived.org/software_design.html)关于其结构的展示。
图1keepalived 内部结构图
在这个结构图里,处于下端的是内核空间,它包括ipvs和NETLINK两个部分。Ipvs的作用在前面的章节已经做过描述,不再重复叙述;netlink提供高级路由及其他相关的网络功能,如果我们在负载均衡器上启用netfilter/iptable,将会直接影响它的性能。出于图形上方的组件为用户空间,由它来实现具体的功能,下面选取几个重要的来做说明:
1、 WatchDog 负责监控checkers和VRRP进程的状况。
2、 Checkers 负责真实服务器的健康检查healthchecking,是keepalived最主要的功能。换句话说-可以没有VRRP Stack,但健康检查healthchecking是一定要有的。
3、 VRRP Stack负责负载均衡器之间的失败切换FailOver.如果只用一个负载均衡器,则VRRP不是必须的。
4、 IPVS wrapper 用来发送设定的规则到内核ipvs代码。
5、 Netlink Reflector 用来设定 vrrp 的vip地址等。
Keepalived各种功能的实现是通过设置其配置文件 keepalived.conf来完成的,关于配置文件各项的用途,将在后面进行描述。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者