1 / 65
文档名称:

负载均衡实战.doc

格式:doc   大小:482KB   页数:65页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

负载均衡实战.doc

上传人:s1188831 2019/11/9 文件大小:482 KB

下载得到文件列表

负载均衡实战.doc

相关文档

文档介绍

文档介绍:负载均衡实战之一:lvs核心ipvs1、虚拟服务器结构在互联网应用技术里,负载均衡一直是热门话题,本文讨论的负载均衡技术,包括但不限于负载均衡本身。使用负载均衡技术主要的目的包括如下几点: ◆ 系统高可用性。组成系统的某些设备或部件失效,并不会影响正常的服务。◆ 系统可扩展性。用户的增加,引起访问数乃至流量的增加,这种情形下,需要对系统进行扩容,以应对这种快速增长。对于提供高可用服务的互联网网站,其对可扩展的基本要求就是在保持系统服务不终止的情况下,透明的扩充容量,即用户不知道扩容的存在,或者说是扩容不对现有的服务产生任何负面作用。这些扩展主要包括:带宽扩展、服务器扩展、存储容量扩展、数据库扩展等,当然也包括主机增加内存等方面的扩展。◆ 负载均衡能力。一个应用或服务由数个物理服务器提供,并且每个物理服务器运行的应用或服务是相同的,我们可以让用户的访问通过某种控制策略,把负载分摊到不同的物理服务器,从而保持每个物理服务器有比较合理的负载。当整个系统的负载趋于饱和时,通过增加物理服务器和扩充物理带宽来解决这个麻烦。增加物理服务器以后,系统的负载情况将重新在所有集群的物理服务器之间按照指定的算法重新达到新的均衡。一个完整的负载均衡项目,一般由虚拟服务器、故障隔离及失败切换3个功能框架所组成。虚拟服务器是负载均衡体系的基本架构,它分两层结构:转发器(Director)和真实服务器。图1为虚拟服务器的结构示意。  图1虚拟服务器结构为什么称虚拟服务器?因为从用户的角度看来,似乎只是一个服务器在提供服务。虚拟服务器最主要的功能是提供包转发和负载均衡,这个功能可以通过撰写ipvsadm脚本具体实现。虚拟服务器项目由章文嵩博士所贡献,目前已被添加到各种linux发行版的内核。故障隔离指虚拟服务器中的某个真实服务器(或某几个真实服务器)失效或发生故障,系统将自动把失效的服务器从转发队列中清理出去,从而保证用户访问的正确性;另一方面,当实效的服务器被修复以后,系统再自动地把它加入转发队列。失败切换,这是针对负载均衡器Director采取的措施,在有两个负载均衡器Director的应用场景,当主负载均衡器(MASTER)失效或出现故障,备份负载均衡器(BACKUP)将自动接管主负载均衡器的工作;一旦主负载均衡器故障修复,两者将恢复到最初的角色。要从技术上实现虚拟服务器、故障隔离及失败切换3个功能,需要两个工具:ipvsadm和keepalived。当然也有heartbeat这样的工具可以实现同样的功能,但相对于keepalived,heartbeat的实现要复杂得多(如撰写ipvsadm脚本,部署ldirectord,编写资源文件等)。在采用keepalived的方案里,只要ipvsadm被正确的安装,简单的配置唯一的文件keepalived就行了。2、Lvs核心ipvs Ipvs(IPVirtualServer)是整个负载均衡的基础,如果没有这个基础,故障隔离与失败切换就毫无意义了。在大部分linux发行版中,ipvs被默认安装,而以本书前面介绍的方法定制安装系统,则ipvs没有被默认安装。除大部分linux发行版支持ipvs外,FreeBSD也可以支持LVS,只不过实现起来要麻烦一些。(一)安装ipvs Ipvs具体实现是由ipvsadm这个程序来完成,因此判断一个系统是否具备ipvs功能,只需要察看ipvsadm程序是否被安装。察看ipvsadm程序最简单的办法就是在任意路径执行命令ipvsadm。表1为安装ipvsadm及未安装ipvsadm的输出对比。 执行ipvsadm后的输出未安装ipvsadm-bash:(size=4096)ProtLocalAddress:PortSchedulerFlags->RemoteAddress:PortForwardWeightActiveConnInActConn 表1ipvsadm输出对比() ● (假定当前目录为/root) 1、 从官方网站下载ipvsadm,目前最新的版本为ipvsadm-,其发布时间是2008年11月5日。Wgettware/kernel--[1]。 2、 创建一个连接文件,其命令为:ln-sv/usr/src/kernels/--i686/usr/src/,因为/usr/src/kernels目录下可多个目录。如果不创建这个连接文件,在编译时会出错,从而不能继续进行安装