Linux集群的研究及应用毕业论文
目 录
1 引言 ............................................................ 1
1.1选题背景和意义............................................... 1 1.2国内外的研究现状............................................. 1 2 集群技术 ........................................................ 3
2.1集群的定义................................................... 3 2.2集群的分类................................................... 3 2.3 集群的优点 .................................................. 4 3 所采用的关键技术及实验平台 ...................................... 5
3.1 双机热备技术 ................................................ 5 3.2 IP负载调度均衡技术.......................................... 5 3.3共享存储..................................................... 5 3.4 VMware Workstation ......................................... 5 4 高可用(High Availability)集群 ................................... 7
4.1高可用集群................................................... 7 4.2 HA集群的工作过程............................................ 8 4.3 High-Availability Linux 项目和 HeartBeat .................... 8 4.4高可用(HA)集群的设计及实现................................. 8 5 Linux虚拟服务器与集群系统 ...................................... 13
5.1 LVS集群的特点.............................................. 13 5.2 IPVS几种常用的负载均衡调度算法............................. 14 5.3 LVS 三种工作方式的具体原理 ................................. 14 5.4 LVS集群系统的设计及实现.................................... 17 5.5三种工作模式的比较.......................................... 26 5.6设计三层架构的WWW服务器集群................................ 26 6 总结与展望 ..................................................... 31 参考文献 .......................................................... 32 致 谢 ........................................................................................................... 错误!未定义书签。
I
1 引言
1.1 选题背景和意义
当今计算机技术已进入以网络为中心的计算时代。由于客户/服务器模型的简单性、易管理性和易维护性,客户/服务器计算模式在网上被大量采用。在九十年代中期,万维网(World Wide Web)的出现以其简单操作方式将图文并茂的网上信息带给普通大众,Web也正在从一种内容发送机制成为一种服务平台,大量的服务和应用(如新闻服务、网上银行、电子商务等)都是围绕着Web进行。这促进Internet用户剧烈增长和Internet流量爆炸式地增长。
现在Web服务中越来越多地使用CGI、动态主页等CPU密集型应用,这对服务器的性能有较高要求。未来的网络服务会提供更丰富的内容、更好的交互性、更高的安全性等,需要服务器具有更强的CPU和I/O处理能力。例如,通过HTTPS(Secure HTTP)取一个静态页面需要的处理性能比通过HTTP的高一个数量级,HTTPS正在被电子商务站点广为使用。所以,网络流量并不能说明全部问题,要考虑到应用本身的发展也需要越来越强的处理性能。
大部分网站都需要提供每天24小时、每星期7天的服务,对电子商务等网站尤为突出,任何服务中断和关键性的数据丢失都会造成直接的商业损失。例如,根据Dell的新闻发布,Dell现在每天在网站上的交易收入为一千四百万美元,一个小时的服务中断都会造成平均五十八万美元的损失。所以,这对网络服务的可靠性提出了越来越高的要求。 1.2 国内外的研究现状
九十年代末期,Linux操作系统不断走向成熟,它的健壮性不断增强,并且提供了GNU软件和标准化的PVM、MPI消息传递机制,最重要的是Linux在普通PC机上提供了对高性能网络的支持,这样就大大推动了基于Linux的集群系统的发展。在国内,包括中国科学院在内的许多大学与研究机构早在20世纪90年代就开始了基于Linux集群研究,联想、浪潮等国内许多公司都有Linux集群产品和解决方案。Google、Baidu和腾讯后台均采用Linux集群,其中Google在2005年就达到了200万台,不仅如此,Linux集群大量在金融、证券、电信以及IT行业使用。
名为 High-Availability Linux 的开源项目的目标是,通过社区开发努力提供一个提升 Linux 可靠性(reliability)、可用性(availability)和可服
务性(serviceability)(RAS)的群集解决方案。Linux-HA 项目得到了广泛的应用,是很多有趣的高可用性解决方案的重要组成部分。
LVS是中国章文嵩博士发起和领导的优秀的集群解决方案,许多商业的集群产品,比如RedHat的Piranha等,都是基于LVS的核心代码的。
HA和LVS的不足主要有:HA集群一般都是以两个节点的形式出现的,单机处理能力有限,所以当服务器压力较大时,想扩容服务器的处理能力往往得把以前的服务器淘汰掉,浪费了以前的投资;LVS集群的真实服务器都是靠前端IP负载器进行调度分配的,所以存在单点故障,如果IP负载器Down机,整个集群系统就会瘫痪。所以必须把HA和LVS整合在一起。真实服务器的数据源所涉及的共享存储一般都是利用商业的硬件解决方案,如SAN网络区域存储,对于小型集群系统来说,投入非常高昂,完全可以利用Linux的软件RAID5技术和NFS网络文件系统来实现。
2
2 集群技术
2.1 集群的定义
集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统的节点。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,工作站或超级计算机性能价格比要高得多。[1] 2.2 集群的分类
集群分为同构与异构两种,它们的区别在于:组成集群系统的计算机之间的体系结构是否相同。集群计算机按功能和结构的不同可以分成:高可用性集群 (High-availability clusters,简称HA)、负载均衡集群(Load balancing clusters)、高性能计算集群(High-performance clusters,简称HPC)、网格计算(Grid computing)等几类。
高可用性集群一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。还指可以将集群中的某节点进行离线维护再上线,该过程并不影响整个集群的运行。
负载均衡集群运行时一般通过一个或者多个前端负载均衡器将工作负载分发到后端的一组服务器上,从而达到整个系统的高性能和高可用性。这样的计算机集群有时也被称为服务器群(Server Farm)。 一般高可用性集群和负载均衡集群会使用类似的技术,或同时具有高可用性与负载均衡的特点。
高性能计算集群采用将计算任务分配到集群的不同计算节点而提高计算能力,因而主要应用在科学计算领域。比较流行的HPC采用Linux操作系统和其它一些免费软件来完成并行运算。这一集群配置通常被称为Beowulf集群。这类集群通常运行特定的程序以发挥HPC cluster的并行能力。这类程序一般应用特定的运行库, 比如专为科学计算设计的MPI库。HPC集群特别适合于在计算中各计算节点之间发生大量数据通讯的计算作业,比如一个节点的中间结果或影响到其它节点计算结果的情况。
网格计算或网格集群是一种与集群计算非常相关的技术。网格与传统集群的
3
主要差别是网格是连接一组相关并不信任的计算机,它的运作更像一个计算公共设施而不是一个独立的计算机。还有,网格通常比集群支持更多不同类型的计算机集合。[2] 2.3 集群的优点
性能:网络服务的工作负载通常是大量相互独立的任务,通过一组服务器分而治之,可以获得很高的整体性能。
性能/价格比:组成集群系统的PC服务器或RISC服务器和标准网络设备因为大规模生产降低成本,价格低,具有最高的性能/价格比。若整体性能随着结点数的增长而接近线性增加,该系统的性能/价格比接近于PC服务器。所以,这种松耦合结构比紧耦合的多处理器系统具有更好的性能/价格比。
可伸缩性:集群系统中的结点数目可以增长到几千个,乃至上万个,其伸缩性远超过单台超级计算机。
高可用性:在硬件和软件上都有冗余,通过检测软硬件的故障,将故障屏蔽,由存活结点提供服务,可实现高可用性。
4