1、基于REDHAT系统的计算机集群虚拟化技术的设计与实现毕业设计论文毕业设计论文基于REDHAT系统的计算机集群虚拟化技术的设计与实现1 绪 论本文针对基于Linux下的REDHAT操作系统,计算机集群虚拟化的问题进行研究,具体的研究内容包括研究该课题的可行性,并从用户业务,用户性能及服务管理等三方面进行了分析;课题的主要技术及运用高可用集群实现课题研究的基本思路,并简单介绍了HA集群的实现过程;负载均衡集群的工作原理、工作方式及工作过程等内容。1.1 课题研究背景、目的与意义全球范围内Linux的发展状况让人鼓舞,从全球来看Linux的增长是非常快的。目前,全球Linux市场超过70亿美元整个
2、操作系统的市场来看,Linux的增长比其他操作系统都来得更加快。而中国比全球的增长更显得快,从大致的增长率来看,全球大概是9%-13%的增长率,在中国,Linux的服务器市场是33%的增长率。拿IBM做例子,Linux是IBM所大力倡导的,同时也在不断投入。从Linux解决方案来讲,IBM全球最大的提供商之一。IBM所有的服务器都支持Linux,另外有超过500种中间件产品都支持Linux平台,IBM全球Service也都提供了对Linux的支持与服务。在IBM,有超过600名的员工在LTC工作,LTC(Linux Technology Center)是最早IBM建立起来的一个围绕Linux的
3、开发组织和技术部门,在这里面其中有超过300人,就专门围绕Linux内核进行了创新的工作。现在Web服务中越来越多地使用CGI、动态主页等CPU密集型应用,这对服务器的性能有较高要求。未来的网络服务会提供更丰富的内容、更好的交互性、更高的安全性等,需要服务器具有更强的CPU和I/O处理能力。例如,通过HTTPS(Secure HTTP)取一个静态页面需要的处理性能比通过HTTP的高一个数量级,HTTPS正在被电子商务站点广为使用。所以,网络流量并不能说明全部问题,要考虑到应用本身的发展也需要越来越强的处理性能。本课题首先对现有服务器集群系统的技术进行了分析,介绍了几个典型的集群系统,重点讨论了
4、负载均衡集群(LVS)和高可用集群(High Availability)的工作原理和实现技术。然后根据现有的集群技术的缺点进行了改进,将负载均衡集群和高可用集群整合在一起,结合Linux 软件RAID5技术实现了三层构架的WWW服务器集群,以较低的价格达到了昂贵的商业硬件存储解决方案所实现的效果,同时可以满足大流量的站点访问以及设备故障的自动更替。1.2 国内外的研究现状九十年代末期,Linux操作系统不断走向成熟,它的健壮性不断增强,并且提供了GNU软件和标准化的PVM、MPI消息传递机制,最重要的是Linux在普通PC机上提供了对高性能网络的支持,这样就大大推动了基于Linux的集群系统的
5、发展。在国内,包括中国科学院在内的许多大学与研究机构早在20世纪90年代就开始了基于Linux集群研究,联想、浪潮等国内许多公司都有Linux集群产品和解决方案。Google、Baidu和腾讯后台均采用Linux集群,其中Google在2005年就达到了200万台,不仅如此,Linux集群大量在金融、证券、电信以及IT行业使用。名为 High-Availability Linux 的开源项目的目标是,通过社区开发努力提供一个提升 Linux 可靠性(reliability)、可用性(availability)和可服务性(serviceability)(RAS)的群集解决方案。Linux-HA
6、项目得到了广泛的应用,是很多有趣的高可用性解决方案的重要组成部分。 LVS是中国章文嵩博士发起和领导的优秀的集群解决方案,许多商业的集群产品,比如RedHat的Piranha等,都是基于LVS的核心代码的。HA和LVS的不足主要有:HA集群一般都是以两个节点的形式出现的,单机处理能力有限,所以当服务器压力较大时,想扩容服务器的处理能力往往得把以前的服务器淘汰掉,浪费了以前的投资;LVS集群的真实服务器都是靠前端IP负载器进行调度分配的,所以存在单点故障,如果IP负载器Down机,整个集群系统就会瘫痪。所以必须把HA和LVS整合在一起。真实服务器的数据源所涉及的共享存储一般都是利用商业的硬件解决
7、方案,如SAN网络区域存储,对于小型集群系统来说,投入非常高昂,完全可以利用Linux的软件RAID5技术和NFS网络文件系统来实现。1.3 相关知识概述1.3.1 集群的定义集群(Cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(Node)。一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统的节点。集群计算机通常用来改进单个计算机的计算速度和可靠性。一般情况下集群计算机比单个计算机,工作站或超级计算机性能价格比要高得多。1.3.2 集群
8、的分类集群分为同构与异构两种,它们的区别在于:组成集群系统的计算机之间的体系结构是否相同。集群计算机按功能和结构的不同可以分成:高可用性集群 (High-availability clusters,简称HA)、负载均衡集群(Load balancing clusters)、高性能计算集群(High-Performance Clusters,简称HPC)等几类。高可用性集群一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。还指可以将集群中的某节点进行离线维护再上线,该过程并不影响整个集群的运行。负载均衡集群运行时一般通过一个或者多个前端负载均衡器将工作负载分发到后端
9、的一组服务器上,从而达到整个系统的高性能和高可用性。这样的计算机集群有时也被称为服务器群(Server Farm)。一般高可用性集群和负载均衡集群会使用类似的技术,或同时具有高可用性与负载均衡的特点。1.3.3 集群的优点集群具有以下几个方面的优点:(1)性能网络服务的工作负载通常是大量相互独立的任务,通过一组服务器分而治之,可以获得很高的整体性能。(2)性能/价格比组成集群系统的PC服务器或RISC服务器和标准网络设备因为大规模生产降低成本,价格低,具有最高的性能/价格比。若整体性能随着结点数的增长而接近线性增加,该系统的性能/价格比接近于PC服务器。所以,这种松耦合结构比紧耦合的多处理器系
10、统具有更好的性能/价格比。(3)可伸缩性集群系统中的结点数目可以增长到几千个,乃至上万个,其伸缩性远超过单台超级计算机。(4)高可用性在硬件和软件上都有冗余,通过检测软硬件的故障,将故障屏蔽,由存活结点提供服务,可实现高可用性。1.4 课题研究内容本文主要内容安排如下:第一章绪论研究了选择该课题的背景和意义、国内外研究的现状以及完成课题所需要的相关技术描述。通过对选题的背景和意义的调查阐述了该课题的研究价值,国内外的研究现状确定了该课题研究的独特点,相关知识概述的部分则表述了研究该课题所需要的关键技术。第二章工程规划研究了三层架构的WWW服务器集群所需的关键技术并简单介绍了高可用集群的工作过程
11、。第三章需求分析从技术可行性、经济可行性以及操作可行性进行了分析,得出了服务器集群是有研究价值的。站在用户需求的角度分析,该课题从业务、性能和系统管理等方面完全可以满足用户的需求。第四章总体设计介绍了高可用集群的设计及实现过程,通过详细的配置说明实现了高可用集群的基本功能,并进行了模拟测试且测试成功。第五章详细设计介绍了负载均衡系统的三种工作模式及实现过程,通过详细的实现过程,对比出三种工作模式的不同功能,为系统设计提供了参考,用户可根据自身需求选择特定的工作模式。第六章系统实施,详细介绍架设三层WWW服务器集群的过程,并且测试完成。第七部分是结束语,介绍了实现整个课题过程中自己所做的工作,以
12、及课题没有完成的内容和缺陷,同时在总结过程中反思了自己在整个设计过程中的不足。2 课题整体规划2.1 工程设计中主要运用的技术工程设计中主要运用了以下几个技术:(1)双机热备技术所谓双机热备,就是将中心服务器安装成互为备份的两台服务器,并且在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会迅速的自动启动并运行(一般为2分钟左右),从而保证整个网络系统的正常运行!双机热备的工作机制实际上是为整个网络系统的中心服务器提供了一种故障自动恢复能力。(2)IP负载调度均衡技术用户通过虚拟IP地址(Virtual IP Address)访问服务时,访问请求的报文
13、会到达负载调度器,由它进行负载均衡调度,从一组真实服务器选出一个,将报文的目标地址Virtual IP Address改写成选定服务器的地址,报文的目标端口改写成选定服务器的相应端口,最后将报文发送给选定的服务器。真实服务器的回应报文经过负载调度器时,将报文的源地址和源端口改为Virtual IP Address和相应的端口,再把报文发给用户。(3)共享存储共享存储为服务器组提供统一的存储空间,这使得系统的维护工作比较轻松,如Webmaster只需要更新共享存储中的页面,对所有的服务器都有效。分布式文件系统提供良好的伸缩性和可用性,当分布式文件系统的存储空间增加时,所有服务器的存储空间也随之增
14、大。对于大多数Internet服务来说,它们都是读密集型(Read-intensive)的应用,分布式文件系统在每台服务器使用本地硬盘作Cache(如2Gbytes的空间),可以使得访问分布式文件系统本地的速度接近于访问本地硬盘。RAID是“Redundant Array of Independent Disk”的缩写,中文意思是独立冗余磁盘阵列。冗余磁盘阵列技术诞生于1987年,由美国加州大学伯克利分校提出。简单地解释,就是将N台硬盘通过RAID Controller(分Hardware,Software)结合成虚拟单台大容量的硬盘使用。RAID的采用为存储系统(或者服务器的内置存储)带来巨
15、大利益,其中提高传输速率和提供容错功能是最大的优点。(4)VMware WorkstationVMware Workstation是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。VMware Workstation可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先进的技术胜过了市面上其他的虚拟计算机软件。对于企业 IT开发人员和系统管理员而言,VMware在虚拟网路,实时快照,拖曳共享文件夹,支持PXE等方面的特点使它成为必不可少的工具。2.2 工程整体规划2.2.1 高可用
16、集群计算机系统的可靠性用平均无故障时间(MTTF)来度量,即计算机系统平均能够正常运行多长时间,才发生一次故障。系统的可靠性越高,平均无故障时间越长。可维护性用平均维修时间(MTTR)来度量,即系统发生故障后维修和重新恢复正常运行平均花费的时间。系统的可维护性越好,平均维修时间越短。计算机系统的可用性定义为:MTTF/(MTTF+MTTR) * 100%。由此可见,计算机系统的可用性定义为系统保持正常运行时间的百分比。计算机产业界通常用表2.1所示的“9”的个数来划分计算机系统可用性的类型。表2.1 可用性的分类可用性分类可用水平每年停机时间容错可用性999999 1 min具有故障自动恢复能
17、力的可用性9999953 min高可用性9998.8 h商品可用性9943.8h通过硬件冗余或软件的方法都可以从很大程度上提高系统的可用性。硬件冗余主要是通过在系统中维护多个冗余部件如硬盘、网线等来保证工作部件失效时可以继续使用冗余部件来提供服务;而软件的方法是通过软件对集群中的多台机器的运行状态进行监测,在某台机器失效时启动备用机器接管失效机器的工作来继续提供服务。高可用(High Availability)集群,简称HA集群。常见的就是2个节点做成的HA集群,有很多通俗的名称,比如“双机热备”,“双机互备”,“双机”。这样做的好处是当服务启动的时候,两台服务器一个作为主,另一个是从。测试机
18、每几秒会ping主机,当发现主机没有回应,就证明主机宕机了,那么从机马上会启动相应的服务,继续进行服务。这样就可以保证服务不间断。高可用性群集的出现是为了使群集的整体服务尽可能可用,以便考虑计算硬件和软件的易错性。如果高可用性群集中的主节点发生了故障,那么这段时间内将由次节点代替它。次节点通常是主节点的镜像,所以当它代替主节点时,它可以完全接管其身份,并且因此使系统环境对于用户是一致的。尽管集群系统本身独立于它在使用的软件或硬件,但要有效运行系统时,硬件连接将起关键作用。2.2.2 HA集群的工作过程HA集群的工作过程包括以下几个阶段:(1)自动侦测(Auto-Detect)阶段。由主机上的软
19、件通过冗余侦测线,经由复杂的监听程序进行逻辑判断,来相互侦测对方运行的情况,所检查的项目有主机硬件(CPU和周边)、主机网络、主机操作系统、数据库引擎及其它应用程序、主机与磁盘阵列连线。为确保侦测的正确性,防止错误的判断,可设定安全侦测时间,包括侦测时间间隔,侦测次数以调整安全系数,并且由主机的冗余通信连线,将所汇集的讯息记录下来,以供维护。(2)自动切换(Auto-Switch)阶段。某一主机如果确认对方故障,则正常主机除继续进行原来的任务,还将依据各种容错备援模式接管预先设定的备援作业程序,并进行后续的程序及服务。(3)自动恢复(Auto-Recovery)阶段。在正常主机代替故障主机工作
20、后,故障主机可离线进行修复工作。在故障主机修复后,透过冗余通讯线与原正常主机连线,自动切换回修复完成的主机上。整个回复过程完成由EDI-HA自动完成,亦可依据预先配置,选择回复动作为半自动或不回复。2.2.3 High-Availability Linux 项目和 HeartBeatHeartBeat是可以从Linux-HA项目Web站点公开获得的软件包之一。它提供了所有HA系统所需要的基本功能,比如启动和停止资源、监测群集中系统的可用性、在群集中的节点间转移共享IP地址的所有者等。它通过串行线、以太网接口或者同时使用二者来监测特定服务(或多个服务)的健康状况。当前版本支持两节点配置,使用专门
21、的HeartBeat“pings”来检查服务的状态和可用性。3 需求分析3.1 可行性研究本课题主要从以下几个方面进行了可行性研究:(1)技术可行性LINUX系统是开源系统,完成虚拟化集群所需的软件基本上都是开源的。在大学学习期间开设了Linux系统的专业课程,我也参加了培训,通过自身的学习已基本掌握了Linux系统调试以及架设服务器集群的具体方法,在技术方面的难题是可以克服并解决的。(2)经济可行性众所周知,Linux系统是开源、免费的,而完成该课题所需要的软件如VMware Workstation、HeartBeat等软件都可以在网上免费获得,且性能可以满足设计要求。在运用到实际工作环境中
22、时,该系统本身的目的就在于取代昂贵的设备来完成满足高访问量的需求。(3)操作可行性系统在操作上是简单快捷的,该系统运用了高可用集群技术,每个节点都会有备用节点,当该节点出现故障时,系统会自动切换到备用节点,保证系统正常提供其自身功能。在节点故障后,用户可在系统正常工作的前提下对故障设备进行修复,当修复完成后,系统会自动切换回原来的节点。综上所述,架设三层架构的WWW服务器集群系统,从技术、经济及操作方面都是可行的。3.2 用户业务分析该系统针对访问量较大的提供Web服务的网站进行设计,用户的需求在于保证其提供的服务满足7*24小时不宕机,并且当访问量增大时不影响服务器响应速度,可根据访问量的增
23、大灵活的增加服务器数量,维护工作简单,价格低廉且性价比高。3.3 用户性能分析网站访问量的高低,除了网站用户数外,服务性能也是其关键因素之一。一般Web服务在响应速度、吞吐量及并发用户数需求方面的要求是比较高的,在保证正常网络流量访问的前提下,还要防备吞吐量及并发用户数的短期增长,这就对系统的可扩展性提出了要求。该系统在扩展性方面是比较灵活的,当用户提出增加服务器数量的要求时,可在短时间内方便快捷的增加或减少,且不会影响服务器正常提供服务。3.4 服务管理分析服务器大部分情况下是存放在服务器机房的,距离公司比较远,该系统可满足用户远程管理的需求,用户只需登录到各服务器节点上,即可实现对该服务器
24、的各项管理,并且远程登录的方式可根据用户对安全性的要求来设定。该系统设定了日志备份,当出现故障时,用户可通过日志查询故障原因。系统采用了高可用集群技术,节点出现故障后可自动切换服务节点,并且各节点所存储的数据时相同的,做到了数据备份。如果用户对数据备份方面的要求较高,系统还可以单独增加数据备份节点,用来存储日益增加的存储数据。4 总体设计4.1 工作环境设定本课题的工作环境设定具体如下:虚拟机版本:VMware Workstation 6.5.2 build-156735;服务器操作系统:HA1和HA2都采用Redhat6.4;客户机(测试):Win7 IP:202.114.216.174。选
25、择虚拟机网卡工作模式,全部设为桥接,直接连接到物理网络,并配置各节点的IP地址,详细设置如下。高可用集群的拓扑结构图如图4.1所示。图4.1 高可用集群调度分发器的网络配置如下:VIP:202.114.216.177node1: 主机名 HA1 eth0: 202.114.216.234 /对外IP地址eth1: 192.168.88.10 /HA心跳使用地址node2:主机名:HA2eth0: 202.114.216.235 /对外IP地址eth1: 192.168.88.20 /HA心跳使用地址4.2 软件安装及主要文件的配置本设计的软件安装及主要文件配置如下:(1)安装HeartBeat
26、软件在安装过程中需要解决依赖包的问题,第一次安装时会出错,要安装两次,并解压HeartBeat包含的文件。rpm -ivh HeartBeat-pils-2.1.3-3.el5.centos.i386.rpmmkdir /mnt/cdrommount /dev/cdrom /mnt/cdromcd /mnt/cdrom/CentOSrpm -ivh telnet-0.17-39.el5.i386.rpm rpm -ivh PyXML-0.8.4-4.i386.rpm cd rpm -ivh HeartBeat-stonith-2.1.3-3.el5.centos.i386.rpmrpm -iv
27、h HeartBeat-2.1.3-3.el5.centos.i386.rpm rpm -q HeartBeat -d (2)配置所需文件在每个节点上配置HeartBeat,需要有authkeys、ha.cf、haresources三个文件,它们必须存在于/etc/ha.d/目录里:cp /usr/share/doc/HeartBeat-2.1.3/authkeys /etc/ha.d/ cp /usr/share/doc/HeartBeat-2.1.3/ha.cf /etc/ha.d/cp /usr/share/doc/HeartBeat-2.1.3/haresources /etc/ha.
28、d/(3)配置/etc/ha.d/ha.cf在配置文件中要指明日志文件存放位置,指明心跳时间为2秒(即每两秒钟在eth1上发送一次广播),指明服务切换时间为30秒(30秒内没反应切换服务),指明心跳延迟的时间为10秒(当10秒钟内备份机不能联系上主机(当前活动的服务器,即无心跳信号),就会往日志中写入一个警告日志,但此时不会切换服务),设置网络重启时间为120秒(在一些配置中,节点重启后需要花一些时间启动网络,这个时间和“deadtime”不同,要单独对待,至少是标准死亡时间的两倍)。详细配置内容如下:vi /etc/ha.d/ha.cflogfile /var/log/ha-log /日志文
29、件存放位置logfacility local0 keepalive 2 /心跳时间deadtime 30 / 服务切换时间warntime 10 /心跳延迟时间initdead 120 /网络重启时间udpport 694 /心跳检测的通信端口bcast eth1 /指明心跳连接的接口号ucast eth1 192.168.88.20 /心跳连接的pc的ipauto_failback on /主服务器恢复正常自动切换回来node HA1 /两个的主机名node HA2ping 202.114.216.254 /网关 (4)配置/etc/ha.d/haresourcesvi /etc/ha.d/
30、haresources HA1 202.114.216.177 httpd(5)配置vi /etc/ha.d/authkeys该文件时安全方面的配置,里面有三种认证方式:crc md5 sha1,在这里使用第一种认证方式,最后要更改文件的权限。vi /etc/ha.d/authkeysauth 1 1 crc chmod 600 /etc/ha.d/authkeys(6)远程同步配置文件两台心跳的服务器的配置基本上是完全一样的,所以用sftp远程传到另一个已经安装完成,同样是放在 /etc/ha.d中,唯一不一样的是这台机器的ha.cf中的ucast eth1 192.168.88.20改为9
31、2.168.8.10。同样把authkeys的权限也改为600。(7)配置/etc/hosts文件需要把两台心跳连接的电脑的主机信息写上。node1的hosts内容如下:vim /etc/hosts 127.0.0.1 localhost.localdomain localhost202.114.216.234 HA1192.168.88.10 HA1192.168.88.20 HA2202.114.216.235 HA2node2的hosts内容如下:127.0.0.1 localhost.localdomain localhost202.114.216.235 HA2192.168.88.20 HA2192.168.88.10 HA1202.114.216.234 HA1(8)Apache网页服务器的架设首先要将光驱挂载,并从挂载的光驱软件安装包目录中安装Apache服务器,命令如下:mkdir /mnt/cdrom mount /dev/cdrom /mnt/cdrom cd /mnt/cdrom/CentOS rpm -ivh httpd-2.2.3-31.el5.centos.i386.rpm 分别编辑2台真实服务器的不同网页内容:vi /var/www/html/index.htmlThis is X Apache Server HA 11
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1