服务器 频道

负载均衡实战之二:故障隔离攻略

  【IT168 服务器频道】前篇文章中(点击),介绍了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来完成的,关于配置文件各项的用途,将在后面进行描述。

 

0
相关文章