Linux集群服务.docx

上传人:b****5 文档编号:27992770 上传时间:2023-07-07 格式:DOCX 页数:8 大小:20.31KB
下载 相关 举报
Linux集群服务.docx_第1页
第1页 / 共8页
Linux集群服务.docx_第2页
第2页 / 共8页
Linux集群服务.docx_第3页
第3页 / 共8页
Linux集群服务.docx_第4页
第4页 / 共8页
Linux集群服务.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

Linux集群服务.docx

《Linux集群服务.docx》由会员分享,可在线阅读,更多相关《Linux集群服务.docx(8页珍藏版)》请在冰豆网上搜索。

Linux集群服务.docx

Linux集群服务

Linux集群服务

摘要:

随着信息化的高速发展,很多网络服务因为访问次数爆炸式地增长而不堪重负,不能及时处理用户的请求,导致用户进行长时间的等待,大大降低了服务质量。

为解决这一问题,集群服务应运而生。

介绍了Linux操作系统集群服务的相关概念,并通过实例讲解了Linux操作系统集群服务的实际应用。

  关键词:

集群;调度;算法

  

  

  

  1集群的概念

  伴随着网络日新月异的发展,人们早已适应了拥有各种各样的网络服务的生活。

而提供网络服务的运营商遇到了前所未有的数据流量。

如何建立可伸缩的网络服务来满足不断增长的负载需求已成为迫在眉睫的问题。

大部分网站都需要提供每天24小时、每星期7天的服务,对电子商务等网站尤为突出,任何服务中断和关键性的数据丢失都会造成直接的商业损失。

  如何来满足这些需求,如果只是通过不断提升服务器的本身性能,存在以下问题:

①升级过程繁琐,更换服务器将使服务暂时中断,并造成原有计算资源的浪费;②越往高端的服务器,所花费的代价越大;③单个服务器是单一故障点,一旦该服务器或应用软件失效,会导致整个服务的中断。

  为了解决这个问题,许多用户就采用一组集群来代替单一的机器。

集群可以将多台计算机连接起来协同运作以对外提供各种服务,如Apache、FTP、Mail等。

通过高性能网络或局域网互联的服务器集群正成为实现高可伸缩的、高可用网络服务的有效结构。

这种松耦合结构的服务器集群系统有下列优点:

  

(1)集群都是使用常见的硬件进行构建的,其成本只是向量处理器的很小一部分。

在很多情况中,价格会低一个数量级以上。

  

(2)集群使用消息传递系统进行通信,程序必须显式地进行编码来使用分布式硬件。

  (3)采用集群,您可以根据需要向集群中添加节点。

  (4)开放源码软件组件和Linux降低了软件的成本。

  (5)集群的维护成本很低(它们占用的空间较小,耗费的电力较少,对于制冷条件的需求较低)。

  2集群系统的分类

  

(1)高可用集群。

一般提升系统可用性时,对构成系统的组件进行冗余化,消除单点故障是重要的。

所谓单点故障指的是计算机的构成要素(硬件的组件)因为只有一个,所以该处发生故障时会有使业务停止的弱点。

所谓高可用集群是使用多台节点进行冗余化操作、将系统停止时间控制在最小限度,提升业务可用性(availability)的集群系统。

在高可用集群中,平时由主服务器对外提供服务,在主服务器发生故障时将业务交接到待机服务器。

高可用集群按照数据存储方式区分,可分为共享磁盘型、镜像磁盘型两种。

某些骨干业务系统等的宕机会给业务带来很大影响,因此此类系统不允许停止,需要引进高可用集群架构。

  

(2)负载均衡集群。

是将客户端的请求遵从恰当的负荷均衡原则分配给各节点的集群。

是以高可测量性为目的的集群、一般无法进行数据交接。

  (3)高性能计算集群。

是指计算量非常大的集群。

是为使用超级计算机执行单一业务的集群。

使用所有节点的CPU来执行单一业务的网格计算技术近年来已成为热点。

  3集群方案-LVS

  在Linux上最常见的、也可能是运用最广泛的集群方案就是LVS(LinuxVirtualServer),LVS也是一个中国人创建和开发的开放源码项目。

LVS自1998年开始,发展到现在已经是一个比较成熟的技术项目了。

  3.1LVS的3种包转发方式

  LVS提供了3种包转发方式:

NAT(网络地址映射)、IPTunneling(1P隧道)和DirectRouting(直接路由)。

不同的转发模式决定了不同的cluster的网络结构,下面对3种转发方式分别介绍。

  

(1)NAT(网络地址映射)。

NAT方式可支持任何的操作系统,以及私有网络,并且只需一个InternetIP地址,但是整个系统的性能受到限制。

因为执行NAT每次需要重写包,有一定的延迟;另外,大部分应用有80%的数据是从服务器流向客户机,也就是用户的请求非常短,而服务器的回应非常大,对负载均衡器形成很大压力,成为新的瓶颈。

  

(2)IPTunneling(1P隧道)。

director分配请求到不同的realserver。

Realserver处理请求后直接回应给用户,这样director负载均衡器仅处理客户机与服务器的一半连接。

IPTunneling技术极大地提高了director的调度处理能力,同时也极大地提高了系统能容纳的最大节点数,可以超过100个节点。

realserver可以在任何LAN或WAN上运行,这意味着允许地理上的分布,这在灾难恢复中有重要意义。

服务器必须拥有正式的IP地址用于与客户端直接通信,并且所有服务器必须支持IP隧道协议。

  (3)DirectRouting(直接路由)。

与IPTunneling类似,负载均衡器仅处理一半的连接,避免了新的性能瓶颈,同样增加了系统的可伸缩性。

DirectRouting与IPTunneling相比,没有IP封装的开销,但由于采用物理层(修改MAC地址)技术,所有服务器都必须在一个物理网段。

  3.2LVS的8种调度算法

  LVS已实现了以下8种调度算法:

  

(1)轮叫调度。

调度器通过“轮叫”调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。

  

(2)加权轮叫。

调度器通过“加权轮叫”调度算法根据真实服务器的不同处理能力来调度访问请求。

这样可以保证处理能力强的服务器能处理更多的访问流量。

  (3)最少链接。

调度器通过“最少连接”调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。

  (4)加权最少链接。

在集群系统中的服务器性能差异较大的情况下,调度器采用“加权最少链接”调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。

  (5)基于局部性的最少链接。

“基于局部性的最少链接”调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。

  (6)带复制的基于局部性最少链接。

“带复制的基于局部性最少链接”调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。

它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。

  (7)目标地址散列。

“目标地址散列”调度算法根据请求的目标IP地址,作为散列键(HashKey)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

  (8)源地址散列。

“源地址散列”调度算法根据请求的源IP地址,作为散列键(HashKey)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

4案例分析

  下面来完成一个基于NAT的LVS的安装与配置,实现Apache服务的负载均衡,具体拓扑结构如图1所示。

  

  图1拓扑结构

  具体步骤如下:

  

(1)下载软件。

获取2.4.20内核。

注意下载的版本一定要和Linnx的内核版本对应。

  

(2)安装软件。

在director(控制器,IP地址为202.99.59.110)上安装相应的补丁、编译。

  内核和配置工具ipvsadm。

  首先安装相应的补丁,在/usr/src下建立一个连接。

  #ln–slinux-2.4.20linux

  因为在ipvs-1.0.9中的makefile文件中默认指定KernelSource的路径为KERNELSOURCE=/usr/src/linux(当然,若直接修改makefile中的KERNELSOURCE值,使它指向源码的目录也可以)。

  把ipvs-1.0.9.tar.gz解压缩到某个目录,如\\usr\\src\\ipvs-1.0.9目录。

  进入/us/srcipvs-1.0.9,依次执行如下命令将ipvs的Parch加载到kernel的source中。

  #makepatchkernel

  #makeinstallsource

  重新编译支持ipvs的内核,进入/usr/src/1inux-2.4.20-8目录,分别执行:

  #makemrproper为创建新的内和配置做好准备

  #makemenuconfig进行配置

  在NetWorkingoptions选项[IP:

VirtualServerConnfiguration]选项中,确保的选项为M。

  #makedep#检测是否有相关的软件包被使用

  #makeclean#为新内核结构准备源目录树

  #makebzImage#创建内核引导映像

  #makemodules

  #makemodules_install#生成模块

  编译和安装ipvsadm。

当使用了支持ipvs的内核后,就可以安装ipvsadm,ipvsadm是设置ipvs转发方式和调度算法的工具。

  #tarxzvfipvsadm-1.21.tar.gz

  #cd./ipvsadm-1.21

  #make

  #makeinstall

  (3)配置LVS。

  在IP地址为202.100.33.110的计算机上执行如下命令或者编辑脚本执行

  echo“1”>/proc/sys/net/ipv4/ip_forward

  echo“0”>/proc/sys/net/ipv4/conf/all/send_redirects

  echo“0”>/proc/sys/net/ipv4/conf/default/send_redirects

  echo“0”>/proc/sys/net/ipv4/conf/eth0/send_redirects

  echo“0”>/proc/sys/net/ipv4/conf/eth1/send_redirects

  #清除ipvsadm表:

  /sbin/ipvsadm–c

  #使用ipvsadm安装LVS服务

  #addhttptoVIPwithrrscheduling

  #/sbin/ipvsadm-A-t202.99.59.110:

80–s-rr

  #增加第一台realserver:

  #/sbin/ipvsadm-A-t202.99.59.110:

80–r192.168.1.1:

80–m–w1

  #增加第二台realserver:

  #/sbin/ipvsadm-A-t202.99.59.110:

80–r192.168.1.2:

80–m–w1

  #增加第三台realserver:

  #/sbin/ipvsadm-A-t202.99.59.110:

80–r192.168.1.3:

80–m–w1

  真实服务器上的配置。

在IP地址为192.168.1.1(rsl)、192.168.1.1(rs2)、192.168.1.1(rs3)的计算机上分别将其网关的IP地址设置为192.168.1.100,并分别启动apache服务。

在客户端使用浏览器多次访问http:

//202.99.59.110/,然后输入202.100.33.110ipvsadm命令,应该有类似下面输出:

  IPVirtua土Serverversion1.0.12(size=4096)

  protLocalAddress:

PortSchedulerFlags

  —>RemoteAddress:

PortForwardWeightActiveConnlnActCOnn

  TCP202.99.59.110:

httprr

  —>192.168.1.1:

httpMasql033

  —>192.168.1.2:

httpMasq1033

  —>192.168.1.3:

httpMasq1033

  从上面的结果可以看出,LVS服务器已经成功运行。

  集群的使用需要积累很多的经验,这里只是以LVS的NAT为例进行了介绍,还有很多的集群软件,需要根据不同的需求进行选用。

  参考文献:

  [1]博韦.深入理解Linux内核[M].北京:

中国电力出版社,2009.

  [2]胡剑锋.Linux操作系统[M].北京:

清华大学出版社,2008.

  [3]杨鹏.Linux服务器架设[M].北京:

清华大学出版社,2010.

  [4]赵慧斌,李小群,孙玉芳.改善Linux核心可抢占性方法的研究与实现[J].计算机学报,2004

(2).

  [5]蒋溢,李琳皓,陈龙.Linux系统实时性探讨[J].重庆大学学报,2005(3).

  [6]董晓峰,顾新.关于Linux内核可抢占性的研究[J].计算机工程,2005

(1).

  [7]陈敏,周兴社.基于嵌入式Linux的实时优化方案[J].计算机应用研究,2005(3).

  [8]齐俊生,崔杜武,黑新洪.嵌入式Linux硬实时性的研究与实现[J].计算机应用,2003(6).

  [9]李凡,卢杜阶,邱鹏.在嵌入式应用中增强Linux实时性的方法研究[J].华中科技大学学报,2005

(2).

  [10]方建超.Redhatlinux9实用教程[M].北京:

中国铁道出版社,2006.

  [11]姚华.Linux操作系统[M].大连:

大连理工大学出版社,2006.

  [12]WANGYC,LINKJ.Enhancingtherealtimecapabilityofthelinuxkernel[J].RTCSA,2008.

  

  

  

  LinuxClusterService

  

  Abstract:

alongwiththerapiddevelopmentofinformatization,manynetworkservicebecausevisitedincreaseandcrumblingexplosion,cannotbehandledintimetheuser'srequest,causeuserslongwaits,andgreatlyreducethequalityofservice.Inordertosolvetheproblem,thispaperintroducestheLinuxoperatingsystemclusterservicerelatedconceptsand,withpracticalexamples,explainedtheLinuxoperatingsystemclusterserviceofactualapplication.

  KeyWords:

Cluster;Scheduling;Algorithm

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1