1、目 录I目 录1 绪 论 .11.1 课题研究背景、目的与意义 .11.2 国内外的研究现状 .21.3 相关知识概述 .31.4 课题研究内容 .52 课题整体规划 .62.1 工程设计中主要运用的技术 .62.2 工程整体规划 .73 需求分析 .103.1 可行性研究 .103.2 用户业务分析 .103.3 用户性能分析 .113.4 服务管理分析 .114 总体设计 .124.1 工作环境设定 .124.2 软件安装及主要文件的配置 .134.3 测试高可用/高可靠性 .165 详细设计 .185.1 LVS 集群的特点 .185.2 IPVS 几种常用的负载均衡调度算法 .195.
2、3 LVS 三种工作方式的具体原理 .205.4 LVS 集群系统的设计及实现 .235.5 三种工作模式的比较 .336 系统实施 .35目 录II结束语 .39致 谢 .40参考文献 .41附 录 .42附录 A 主要源程序 .42附录 B 用户手册 .44附录 C 软件光盘 .45附录 D 科技译文 .47山东科技大学泰山科技学院毕业设计(论文)说明书11 绪 论本文针对基于 Linux 下的 REDHAT 操作系统,计算机集群虚拟化的问题进行研究,具体的研究内容包括研究该课题的可行性,并从用户业务,用户性能及服务管理等三方面进行了分析;课题的主要技术及运用高可用集群实现课题研究的基本思
3、路,并简单介绍了 HA 集群的实现过程;负载均衡集群的工作原理、工作方式及工作过程等内容。1.1 课题研究背景、目的与意义全球范围内 Linux 的发展状况让人鼓舞,从全球来看 Linux 的增长是非常快的。目前,全球 Linux 市场超过 70 亿美元整个操作系统的市场来看,Linux 的增长比其他操作系统都来得更加快。而中国比全球的增长更显得快,从大致的增长率来看,全球大概是 9%-13%的增长率,在中国,Linux 的服务器市场是 33%的增长率。拿 IBM 做例子,Linux 是 IBM 所大力倡导的,同时也在不断投入。从 Linux 解决方案来讲,IBM 全球最大的提供商之一。 IB
4、M 所有的服务器都支持 Linux,另外有超过 500 种中间件产品都支持 Linux 平台,IBM 全球 Service 也都提供了对 Linux 的支持与服务。在 IBM,有超过 600 名的员工在 LTC 工作,LTC(Linux Technology Center)是最早 IBM 建立起来的一个围绕 Linux 的开发组织和技术部门,在这里面其中有超过 300 人,就专门围绕 Linux 内核进行了创新的工作。现在 Web 服务中越来越多地使用 CGI、动态主页等 CPU 密集型应用,这对服务器的性能有较高要求。未来的网络服务会提供更丰富的内容、更好的交互性、更高的安全性等,需要服务器
5、具有更强的 CPU 和 I/O 处理能力。例如,通过 HTTPS( Secure HTTP)取一个静态页面需要的处理性能绪 论2比通过 HTTP 的高一个数量级,HTTPS 正在被电子商务站点广为使用。所以,网络流量并不能说明全部问题,要考虑到应用本身的发展也需要越来越强的处理性能。本课题首先对现有服务器集群系统的技术进行了分析,介绍了几个典型的集群系统,重点讨论了负载均衡集群(LVS)和高可用集群( High Availability)的工作原理和实现技术。然后根据现有的集群技术的缺点进行了改进,将负载均衡集群和高可用集群整合在一起,结合 Linux 软件RAID5 技术实现了三层构架的 W
6、WW 服务器集群,以较低的价格达到了昂贵的商业硬件存储解决方案所实现的效果,同时可以满足大流量的站点访问以及设备故障的自动更替。1.2 国内外的研究现状九十年代末期,Linux 操作系统不断走向成熟,它的健壮性不断增强,并且提供了 GNU 软件和标准化的 PVM、MPI 消息传递机制,最重要的是Linux 在普通 PC 机上提供了对高性能网络的支持,这样就大大推动了基于Linux 的集群系统的发展。在国内,包括中国科学院在内的许多大学与研究机构早在 20 世纪 90 年代就开始了基于 Linux 集群研究,联想、浪潮等国内许多公司都有 Linux 集群产品和解决方案。Google、Baidu
7、和腾讯后台均采用 Linux 集群,其中 Google 在 2005年就达到了 200 万台,不仅如此,Linux 集群大量在金融、证券、电信以及 IT 行业使用。名为 High-Availability Linux 的开源项目的目标是,通过社区开发努力提供一个提升 Linux 可靠性(reliability) 、可用性(availability )和可服务性( serviceability) (RAS)的群集解决方案。Linux-HA 项目得到了广泛的应用,是很多有趣的高可用性解决方案的重要组成部分。 山东科技大学泰山科技学院毕业设计(论文)说明书3LVS 是中国章文嵩博士发起和领导的优秀的
8、集群解决方案,许多商业的集群产品,比如 RedHat 的 Piranha 等,都是基于 LVS 的核心代码的。HA 和 LVS 的不足主要有:HA 集群一般都是以两个节点的形式出现的,单机处理能力有限,所以当服务器压力较大时,想扩容服务器的处理能力往往得把以前的服务器淘汰掉,浪费了以前的投资;LVS 集群的真实服务器都是靠前端 IP 负载器进行调度分配的,所以存在单点故障,如果IP 负载器 Down 机,整个集群系统就会瘫痪。所以必须把 HA 和 LVS 整合在一起。真实服务器的数据源所涉及的共享存储一般都是利用商业的硬件解决方案,如 SAN 网络区域存储,对于小型集群系统来说,投入非常高昂,
9、完全可以利用 Linux 的软件 RAID5 技术和 NFS 网络文件系统来实现。1.3 相关知识概述1.3.1 集群的定义集群(Cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(Node) 。一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统的节点。集群计算机通常用来改进单个计算机的计算速度和可靠性。一般情况下集群计算机比单个计算机,工作站或超级计算机性能价格比要高得多。1.3.2 集群的分类集群分为同构与异构两种,它们的区别在于:组成
10、集群系统的计算机之间的体系结构是否相同。集群计算机按功能和结构的不同可以分成:高绪 论4可用性集群 (High-availability clusters,简称 HA) 、负载均衡集群(Load balancing clusters) 、高性能计算集群( High-Performance Clusters,简称HPC)等几类。高可用性集群一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。还指可以将集群中的某节点进行离线维护再上线,该过程并不影响整个集群的运行。负载均衡集群运行时一般通过一个或者多个前端负载均衡器将工作负载分发到后端的一组服务器上,从而达到整个系统的
11、高性能和高可用性。这样的计算机集群有时也被称为服务器群(Server Farm) 。一般高可用性集群和负载均衡集群会使用类似的技术,或同时具有高可用性与负载均衡的特点。1.3.3 集群的优点集群具有以下几个方面的优点:(1)性能网络服务的工作负载通常是大量相互独立的任务,通过一组服务器分而治之,可以获得很高的整体性能。(2)性能/价格比组成集群系统的 PC 服务器或 RISC 服务器和标准网络设备因为大规模生产降低成本,价格低,具有最高的性能/价格比。若整体性能随着结点数的增长而接近线性增加,该系统的性能/价格比接近于 PC 服务器。所以,这种松耦合结构比紧耦合的多处理器系统具有更好的性能/价
12、格比。(3)可伸缩性集群系统中的结点数目可以增长到几千个,乃至上万个,其伸缩性远超过单台超级计算机。(4)高可用性山东科技大学泰山科技学院毕业设计(论文)说明书5在硬件和软件上都有冗余,通过检测软硬件的故障,将故障屏蔽,由存活结点提供服务,可实现高可用性。1.4 课题研究内容本文主要内容安排如下:第一章绪论研究了选择该课题的背景和意义、国内外研究的现状以及完成课题所需要的相关技术描述。通过对选题的背景和意义的调查阐述了该课题的研究价值,国内外的研究现状确定了该课题研究的独特点,相关知识概述的部分则表述了研究该课题所需要的关键技术。第二章工程规划研究了三层架构的 WWW 服务器集群所需的关键技术
13、并简单介绍了高可用集群的工作过程。第三章需求分析从技术可行性、经济可行性以及操作可行性进行了分析,得出了服务器集群是有研究价值的。站在用户需求的角度分析,该课题从业务、性能和系统管理等方面完全可以满足用户的需求。第四章总体设计介绍了高可用集群的设计及实现过程,通过详细的配置说明实现了高可用集群的基本功能,并进行了模拟测试且测试成功。第五章详细设计介绍了负载均衡系统的三种工作模式及实现过程,通过详细的实现过程,对比出三种工作模式的不同功能,为系统设计提供了参考,用户可根据自身需求选择特定的工作模式。第六章系统实施,详细介绍架设三层 WWW 服务器集群的过程,并且测试完成。第七部分是结束语,介绍了
14、实现整个课题过程中自己所做的工作,以及课题没有完成的内容和缺陷,同时在总结过程中反思了自己在整个设计过程中的不足。课题整体规划62 课题整体规划2.1 工程设计中主要运用的技术工程设计中主要运用了以下几个技术:(1)双机热备技术所谓双机热备,就是将中心服务器安装成互为备份的两台服务器,并且在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会迅速的自动启动并运行(一般为 2 分钟左右) ,从而保证整个网络系统的正常运行!双机热备的工作机制实际上是为整个网络系统的中心服务器提供了一种故障自动恢复能力。(2)IP 负载调度均衡技术用户通过虚拟 IP 地址(V
15、irtual IP Address)访问服务时,访问请求的报文会到达负载调度器,由它进行负载均衡调度,从一组真实服务器选出一个,将报文的目标地址 Virtual IP Address 改写成选定服务器的地址,报文的目标端口改写成选定服务器的相应端口,最后将报文发送给选定的服务器。真实服务器的回应报文经过负载调度器时,将报文的源地址和源端口改为 Virtual IP Address 和相应的端口,再把报文发给用户。(3)共享存储共享存储为服务器组提供统一的存储空间,这使得系统的维护工作比较轻松,如 Webmaster 只需要更新共享存储中的页面,对所有的服务器都有效。分布式文件系统提供良好的伸缩
16、性和可用性,当分布式文件系统的存储空间增加时,所有服务器的存储空间也随之增大。对于大多数 Internet服务来说,它们都是读密集型(Read-intensive )的应用,分布式文件系统在每台服务器使用本地硬盘作 Cache(如 2Gbytes 的空间) ,可以使得访问山东科技大学泰山科技学院毕业设计(论文)说明书7分布式文件系统本地的速度接近于访问本地硬盘。RAID 是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。冗余磁盘阵列技术诞生于 1987 年,由美国加州大学伯克利分校提出。简单地解释,就是将 N 台硬盘通过 RAID
17、Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用。RAID 的采用为存储系统(或者服务器的内置存储)带来巨大利益,其中提高传输速率和提供容错功能是最大的优点。(4)VMware WorkstationVMware Workstation 是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。VMware Workstation 可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先进的技术胜过了市面上其他的虚拟计算机软件。对于企业 IT 开发人
18、员和系统管理员而言,VMware 在虚拟网路,实时快照,拖曳共享文件夹,支持 PXE 等方面的特点使它成为必不可少的工具。2.2 工程整体规划2.2.1 高可用集群计算机系统的可靠性用平均无故障时间(MTTF)来度量,即计算机系统平均能够正常运行多长时间,才发生一次故障。系统的可靠性越高,平均无故障时间越长。可维护性用平均维修时间(MTTR )来度量,即系统发生故障后维修和重新恢复正常运行平均花费的时间。系统的可维护性越好,平均维修时间越短。计算机系统的可用性定义为:MTTF/(MTTF+MTTR ) * 100%。由此可见,计算机系统的可用性定义为系统保持正常运行时间的百分比。课题整体规划8
19、计算机产业界通常用表 2.1 所示的“9”的个数来划分计算机系统可用性的类型。表 2.1 可用性的分类可用性分类 可用水平 每年停机时间容错可用性 999999 1 min具有故障自动恢复能力的可用性 99999 53 min高可用性 999 8.8 h商品可用性 99 43.8h通过硬件冗余或软件的方法都可以从很大程度上提高系统的可用性。硬件冗余主要是通过在系统中维护多个冗余部件如硬盘、网线等来保证工作部件失效时可以继续使用冗余部件来提供服务;而软件的方法是通过软件对集群中的多台机器的运行状态进行监测,在某台机器失效时启动备用机器接管失效机器的工作来继续提供服务。高可用(High Avail
20、ability)集群,简称 HA 集群。常见的就是 2 个节点做成的 HA 集群,有很多通俗的名称,比如“双机热备” , “双机互备” ,“双机” 。这样做的好处是当服务启动的时候,两台服务器一个作为主,另一个是从。测试机每几秒会 ping 主机,当发现主机没有回应,就证明主机宕机了,那么从机马上会启动相应的服务,继续进行服务。这样就可以保证服务不间断。高可用性群集的出现是为了使群集的整体服务尽可能可用,以便考虑计算硬件和软件的易错性。如果高可用性群集中的主节点发生了故障,那么这段时间内将由次节点代替它。次节点通常是主节点的镜像,所以当它代替主节点时,它可以完全接管其身份,并且因此使系统环境对于用户是一致的。尽管集群系统本身独立于它在使用的软件或硬件,但要有效运行系统时,硬件连接将起关键作用。