keepalived之负载均衡及服务器集群

在互连网应用技术里,负载均衡一直是热门话题,本书讨论的负载均衡技术,包括但不限于负 载均衡本身。使用负载均衡技术主要的目的包括如下几点:

  1. 系统高可用性:组成系统的某些设备或部件失效,并不会影响正常的服务。
  2. 系统可扩展性:用户的增加,引起访问数乃至流的增加,这种情形下,需要对系统进行扩容,以应对这种快速增长。对于提供高可用服务的互联网网站,其对可扩展的基本要求就是在保持系统服务不终止的情况下,透明的扩充容 ,即用户不知道扩容的存在, 或者说是扩容不对现有的服务产生任何负面作用。这些扩展主要包括:带宽扩展、服务 器扩展、存储容扩展、数据库扩展等,当然也包括主机增加内存等方面的扩展。
  3. 负载均衡能力:一个应用或服务由数个物理服务器提供,并且每个物理服务器运行的应用或服务是相同的,我们可以让用户的访问通过某种控制策略,把负载分摊到不同的物理服务器,从而保持每个物理服务器有比较合理的负载。当整个系统的负载趋于饱和时,通过增加物理服务器和扩充物理带宽来解决这个麻烦。增加物理服务器以后,系统的负载情况将重新在所有集群的物理服务器之间按照指定的算法重新达到新的均衡。

一个完整的负载均衡项目,一般由虚拟服务器、故障隔离及失败切换 3 个功能框架所组成。

虚拟服务器

虚拟服务器是负载均衡体系的基本架构,它分两层结构:转发器(Director)和真实服务器。图 6-1 为虚拟服务器的结构示意。

WX20170319-104538@2x

为什么称虚拟服务器?因为从用户的角度看来,似乎只是一个服务器在提供服务。虚拟服务 器最主要的功能是提供包转发和负载均衡,这个功能可以通过撰写 ipvsadm 脚本具体实现。
虚拟服务器项目由章文嵩博士所贡献,目前已被添加到各种 linux 发行版的内核。

故障隔离

故障隔离指虚拟服务器中的某个真实服务器(或某几个真实服务器)失效或发生故障,系统将自动把失效的服务器从转发队列中清理出去,从而保证用户访问的正确性;另一方面,当实效的服务器被修复以后,系统再自动地把它加入转发队列。

失败切换

失败切换,这是针对负载均衡器 Director 采取的措施,在有两个负载均衡器 Director 的应用场景,当主负载均衡器(MASTER)失效或出现故障,备份负载均衡器(BACKUP)将自动接管主负载均衡器的工作;一旦主负载均衡器故障修复,两者将恢复到最初的角色。

要从技术上实现虚拟服务器、故障隔离及失败切换 3 个功能,需要两个工具:ipvsadm 和 keepalived。当然也有 heartbeat 这样的工具可以实现同样的功能,但相对于 keepalived, heartbeat 的实现要复杂得多(如撰写 ipvsadm 脚本,部署 ldirectord,编写资源文件等)。在 采用 keepalived 的方案里,只要 ipvsadm 被正确的安装,简单的配置唯一的文件 keepalived 就行了。

一、lvs 核心 ipvs

Ipvs(IP Virtual Server)是整个负载均衡的基础,如果没有这个基础,故障隔离与失败切换 就毫无意义了。在大部分 linux 发行版中,ipvs 被默认安装,而以本书前面介绍的方法定制安装系统,则 ipvs 没有被默认安装。
除大部分 linux 发行版支持 ipvs 外,FreeBSD 也可以支持 LVS,只不过实现起来要麻烦一些。

1.1 安装 ipvs

详细的 ipvsadm 的安装,请参考这里: LVS中的ipvsadm的安装

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

原文参考:http://www.keepalived.org/pdf/sery-lvs-cluster.pdf

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>