linux企业集群实习报告.docx
- 文档编号:4442809
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:7
- 大小:68.22KB
linux企业集群实习报告.docx
《linux企业集群实习报告.docx》由会员分享,可在线阅读,更多相关《linux企业集群实习报告.docx(7页珍藏版)》请在冰豆网上搜索。
linux企业集群实习报告
一、计算机集群介绍
1.1、什么是集群
简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。
这些单个的计算机系统就是集群的节点(node)。
一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统。
并且集群系统的管理员可以随意增加和删改集群系统的节点。
1.2为什么需要集群
集群并不是一个全新的概念,其实早在七十年代计算机厂商和研究机构就开始了对集群系统的研究和开发。
由于主要用于科学工程计算,所以这些系统并不为大家所熟知。
直到Linux集群的出现,集群的概念才得以广为传播。
对集群的研究起源于集群系统的良好的性能可扩展性(scalability)。
提高CPU主频和总线带宽是最初提供计算机性能的主要手段。
但是这一手段对系统性能的提供是有限的。
接着人们通过增加CPU个数和内存容量来提高性能,于是出现了向量机,对称多处理机(SMP)等。
但是当CPU的个数超过某一阈值,象SMP这些多处理机系统的可扩展性就变的极差。
主要瓶颈在于CPU访问内存的带宽并不能随着CPU个数的增加而有效增长。
与SMP相反,集群系统的性能随着CPU个数的增加几乎是线性变化的。
图1显示了这中情况。
集群系统的优点并不仅在于此。
下面列举了集群系统的主要优点:
●高可用性:
集群中的一个节点失效,它的任务可以传递给其他节点。
可以有效防止单点失效。
●高性能:
负载平衡集群允许系统同时接入更多的用户。
●高性价比:
可以采用廉价的符合工业标准的硬件构造高性能的系统。
1.2.1集群系统的分类
虽然根据集群系统的不同特征可以有多种分类方法,但是一般我们把集群系统分为两类:
高可用(HighAvailability)集群,简称HA集群。
这类集群致力于提供高度可靠的服务。
高性能计算(HighPerfermanceComputing)集群,简称HPC集群。
这类集群致力于提供单个计算机所不能提供的强大的计算能力。
二、高可用集群
2.1什么是高可用性
计算机系统的可用性(availability)是通过系统的可靠性(reliability)和可维护性(maintainability)来度量的。
工程上通常用平均无故障时间(MTTF)来度量系统的可靠性,用平均维修时间(MTTR)来度量系统的可维护性。
于是可用性被定义为:
MTTF/(MTTF+MTTR)*100%
2.2高可用集群
高可用集群就是采用集群技术来实现计算机系统的高可用性。
高可用集群通常有两种工作方式:
容错系统:
通常是主从服务器方式。
从服务器检测主服务器的状态,当主服务工作正常时,从服务器并不提供服务。
但是一旦主服务器失效,从服务器就开始代替主服务器向客户提供服务。
负载均衡系统:
集群中所有的节点都处于活动状态,它们分摊系统的工作负载。
一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。
关于高可用集群的讨论很多,这里就不进行深入的阐述了。
三、高性能计算集群
3.1什么是高性能计算集群
简单的说,高性能计算(High-PerformanceComputing)是计算机科学的一个分支,它致力于开发超级计算机,研究并行算法和开发相关软件。
高性能计算主要研究如下两类问题:
大规模科学问题,象天气预报、地形分析和生物制药等;存储和处理海量数据,象数据挖掘、图象处理和基因测序;顾名思义,高性能集群就是采用集群技术来研究高性能计算。
3.2高性能计算分类
高性能计算的分类方法很多。
这里从并行任务间的关系角度来对高性能计算分类。
3.2.1高吞吐计算(High-throughputComputing)
有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。
象在家搜寻外星人(SETI@HOME--SearchforExtraterrestrialIntelligenceatHome)就是这一类型应用。
这一项目是利用Internet上的闲置的计算资源来搜寻外星人。
SETI项目的服务器将一组数据和数据模式发给Internet上参加SETI的计算节点,计算节点在给定的数据上用给定的模式进行搜索,然后将搜索的结果发给服务器。
服务器负责将从各个计算节点返回的数据汇集成完整的数据。
因为这种类型应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。
所谓的Internet计算都属于这一类。
按照Flynn的分类,高吞吐计算属于SIMD(SingleInstruction/MultipleData)的范畴。
3.2.2分布计算(DistributedComputing)
另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。
按照Flynn的分类,分布式的高性能计算属于MIMD(MultipleInstruction/MultipleData)的范畴。
3.3Linux高性能集群系统
当论及Linux高性能集群时,许多人的第一反映就是Beowulf。
起初,Beowulf只是一个著名的科学计算集群系统。
以后的很多集群都采用Beowulf类似的架构,所以,实际上,现在Beowulf已经成为一类广为接受的高性能集群的类型。
尽管名称各异,很多集群系统都是Beowulf集群的衍生物。
当然也存在有别于Beowulf的集群系统,COW和Mosix就是另两类著名的集群系统。
这段时间一直在研究集群方面的东西,主要就是在学习现在较为流行的LVS集群架构,从中也能获得一些启发。
下面来简单介绍一下。
LVS是LinuxVirtualServer的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,现在LVS已经是Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能。
使用LVS技术要达到的目标是:
通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能、高可用的服务器群集,它具有良好可靠性、可扩展性和可操作性。
从而以低廉的成本实现最优的服务性能。
LVS自从1998年开始,发展到现在已经是一个比较成熟的技术项目了。
可以利用LVS技术实现高可伸缩的、高可用的网络服务,例如WWW服务、Cache服务、DNS服务、FTP服务、MAIL服务、视频/音频点播服务等等,有许多比较著名网站和组织都在使用LVS架设的集群系统,例如:
Linux的门户网站()、向RealPlayer提供音频视频服务而闻名的Real公司()、全球最大的开源网站()等。
(1)、LVS体系结构
使用LVS架设的服务器集群系统有三个部分组成:
最前端的负载均衡层,用LoadBalancer表示,中间的服务器群组层,用ServerArray表示,最底端的数据共享存储层,用SharedStorage表示,在用户看来,所有的内部应用都是透明的,用户只是在使用一个虚拟服务器提供的高性能服务。
LVS体系结构如图1所示:
图1LVS的体系结构
下面对LVS的各个组成部分进行详细介绍:
LoadBalancer层:
位于整个集群系统的最前端,有一台或者多台负载调度器(DirectorServer)组成,LVS模块就安装在DirectorServer上,而Director的主要作用类似于一个路由器,它含有完成LVS功能所设定的路由表,通过这些路由表把用户的请求分发给ServerArray层的应用服务器(RealServer)上。
同时,在DirectorServer上还要安装对RealServer服务的监控模块Ldirectord,此模块用于监测各个RealServer服务的健康状况。
在RealServer不可用时把它从LVS路由表中剔除,恢复时重新加入。
ServerArray层:
由一组实际运行应用服务的机器组成,RealServer可以是WEB服务器、MAIL服务器、FTP服务器、DNS服务器、视频服务器中的一个或者多个,每个RealServer之间通过高速的LAN或分布在各地的WAN相连接。
在实际的应用中,DirectorServer也可以同时兼任RealServer的角色。
SharedStorage层:
是为所有RealServer提供共享存储空间和内容一致性的存储区域,在物理上,一般有磁盘阵列设备组成,为了提供内容的一致性,一般可以通过NFS网络文件系统共享数据,但是NFS在繁忙的业务系统中,性能并不是很好,此时可以采用集群文件系统,例如Redhat的GFS文件系统,oracle提供的OCFS2文件系统等。
从整个LVS结构可以看出,DirectorServer是整个LVS的核心,目前,用于DirectorServer的操作系统只能是Linux和FreeBSD,linux2.6内核不用任何设置就可以支持LVS功能,而FreeBSD作为DirectorServer的应用还不是很多,性能也不是很好。
对于RealServer,几乎可以是所有的系统平台,Linux、windows、Solaris、AIX、BSD系列都能很好的支持。
(2)、LVS集群的特点
3.1IP负载均衡与负载调度算法
1.IP负载均衡技术
负载均衡技术有很多实现方案,有基于DNS域名轮流解析的方法、有基于客户端调度访问的方法、有基于应用层系统负载的调度方法,还有基于IP地址的调度方法,在这些负载调度算法中,执行效率最高的是IP负载均衡技术。
LVS的IP负载均衡技术是通过IPVS模块来实现的,IPVS是LVS集群系统的核心软件,它的主要作用是:
安装在DirectorServer上,同时在DirectorServer上虚拟出一个IP地址,用户必须通过这个虚拟的IP地址访问服务。
这个虚拟IP一般称为LVS的VIP,即VirtualIP。
访问的请求首先经过VIP到达负载调度器,然后由负载调度器从RealServer列表中选取一个服务节点响应用户的请求。
当用户的请求到达负载调度器后,调度器如何将请求发送到提供服务的RealServer节点,而RealServer节点如何返回数据给用户,是IPVS实现的重点技术,IPVS实现负载均衡机制有三种,分别是NAT、TUN和DR,详述如下:
VS/NAT:
即(VirtualServerviaNetworkAddressTranslation)
也就是网络地址翻译技术实现虚拟服务器,当用户请求到达调度器时,调度器将请求报文的目标地址(即虚拟IP地址)改写成选定的RealServer地址,同时报文的目标端口也改成选定的RealServer的相应端口,最后将报文请求发送到选定的RealServer。
在服务器端得到数据后,RealServer返回数据给用户时,需要再次经过负载调度器将报文的源地址和源端口改成虚拟IP地址和相应端口,然后把数据发送给用户,完成整个负载调度过程。
可以看出,在NAT方式下,用户请求和响应报文都必须经过DirectorServer地址重写,当用户请求越来越多时,调度器的处理能力将称为瓶颈。
VS/TUN:
即(VirtualServerviaIPTunneling)
也就是IP隧道技术实现虚拟服务器。
它的连接调度和管理与VS/NAT方式一样,只是它的报文转发方法不同,VS/TUN方式中,调度器采用IP隧道技术将用户请求转发到某个RealServer,而这个RealServer将直接响应用户的请求,不再经过前端调度器,此外,对RealServer的地域位置没有要求,可以和DirectorServer位于同一个网段,也可以是独立的一个网络。
因此,在TUN方式中,调度器将只处理用户的报文请求,集群系统的吞吐量大大提高。
VS/DR:
即(VirtualServerviaDirectRouting)
也就是用直接路由技术实现虚拟服务器。
它的连接调度和管理与VS/NAT和VS/TUN中的一样,但它的报文转发方法又有不同,VS/DR通过改写请求报文的MAC地址,将请求发送到RealServer,而RealServer将响应直接返回给客户,免去了VS/TUN中的IP隧道开销。
这种方式是三种负载调度机制中性能最高最好的,但是必须要求DirectorServer与RealServer都有一块网卡连在同一物理网段上。
2.负载调度算法
上面我们谈到,负载调度器是根据各个服务器的负载情况,动态地选择一台RealServer响应用户请求,那么动态选择是如何实现呢,其实也就是我们这里要说的负载调度算法,根据不同的网络服务需求和服务器配置,IPVS实现了如下八种负载调度算法,这里我们详细讲述最常用的四种调度算法,剩余的四种调度算法请参考其它资料。
轮叫调度(RoundRobin)
“轮叫”调度也叫1:
1调度,调度器通过“轮叫”调度算法将外部用户请求按顺序1:
1的分配到集群中的每个RealServer上,这种算法平等地对待每一台RealServer,而不管服务器上实际的负载状况和连接状态。
加权轮叫调度(WeightedRoundRobin)
“加权轮叫”调度算法是根据RealServer的不同处理能力来调度访问请求。
可以对每台RealServer设置不同的调度权值,对于性能相对较好的RealServer可以设置较高的权值,而对于处理能力较弱的RealServer,可以设置较低的权值,这样保证了处理能力强的服务器处理更多的访问流量。
充分合理的利用了服务器资源。
同时,调度器还可以自动查询RealServer的负载情况,并动态地调整其权值。
最少链接调度(LeastConnections)
“最少连接”调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。
如果集群系统的真实服务器具有相近的系统性能,采用“最小连接”调度算法可以较好地均衡负载。
加权最少链接调度(WeightedLeastConnections)
“加权最少链接调度”是“最少连接调度”的超集,每个服务节点可以用相应的权值表示其处理能力,而系统管理员可以动态的设置相应的权值,缺省权值为1,加权最小连接调度在分配新连接请求时尽可能使服务节点的已建立连接数和其权值成正比。
其它四种调度算法分别为:
基于局部性的最少链接(Locality-BasedLeastConnections)、带复制的基于局部性最少链接(Locality-BasedLeastConnectionswithReplication)、目标地址散列(DestinationHashing)和源地址散列(SourceHashing),对于这四种调度算法的含义,本文不再讲述,如果想深入了解这其余四种调度策略的话,可以登陆LVS中文站点zh.linuxvirtualserver.org,查阅更详细的信息。
3.2高可用性
LVS是一个基于内核级别的应用软件,因此具有很高的处理性能,用LVS构架的负载均衡集群系统具有优秀的处理能力,每个服务节点的故障不会影响整个系统的正常使用,同时又实现负载的合理均衡,使应用具有超高负荷的服务能力,可支持上百万个并发连接请求。
如配置百兆网卡,采用VS/TUN或VS/DR调度技术,整个集群系统的吞吐量可高达1Gbits/s;如配置千兆网卡,则系统的最大吞吐量可接近10Gbits/s。
3.3高可靠性
LVS负载均衡集群软件已经在企业、学校等行业得到了很好的普及应用,国内外很多大型的、关键性的web站点也都采用了LVS集群软件,所以它的可靠性在实践中得到了很好的证实。
有很多以LVS做的负载均衡系统,运行很长时间,从未做过重新启动。
这些都说明了LVS的高稳定性和高可靠性。
3.4适用环境
LVS对前端DirectorServer目前仅支持Linux和FreeBSD系统,但是支持大多数的TCP和UDP协议,支持TCP协议的应用有:
HTTP,HTTPS,FTP,SMTP,,POP3,IMAP4,PROXY,LDAP,SSMTP等等。
支持UDP协议的应用有:
DNS,NTP,ICP,视频、音频流播放协议等。
LVS对RealServer的操作系统没有任何限制,RealServer可运行在任何支持TCP/IP的操作系统上,包括Linux,各种Unix(如FreeBSD、SunSolaris、HPUnix等),Mac/OS和Windows等。
这里就做这些简单的介绍,对于一个高性能的集群系统,这些知识显然还是太过于单薄,但是时间有限,只能做这么多了。
四.小结
经过一段时间的研究,现在对集群有较为深入的了解,但是这里的只是实在是太丰富了,不是一时半会可以消化的,还要在日后的工作实战中学习加固,这里只是分享一下自己这段时间来所学习的东西。
希望经过前期的努力,可以再毕业设计中把这段时间的努力全部变成成果,做一个好的设计。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 企业 集群 实习 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)