论文部分内容阅读
计算机系统的高可用性是指,系统具有的对使用它的用户提供尽量长的延续和不中断服务的能力。在集群技术出现并被广泛使用后,集群服务器系统的高可用性研究得到了广泛的关注。这是因为,采用多个相对便宜的计算结点构造的集群系统能够提供足够的计算资源来实现计算的冗余性:即当正在提供服务的计算机失效后,从剩余的计算结点中另外找一台健康的计算机来接替失效的计算机所正在进行的工作。另一方面,正是因为集群的组成模块就个体来说具有较差的可靠性和可用性,只有在整体上提高其可用性才能满足应用的需求。今天,集群服务器系统整体的可用性已经成为衡量其优劣的一个重要指标。 总的来说,集群系统的高可用性研究仍然处于起步阶段,现在为工业界所广泛采用的高可用解决方案,并不能从根本上解决单一失效点问题和集群内服务结点的崩溃而导致的重要任务丢失的问题。同时,为了适应具体的应用,集群的高可用性不仅意味着提供具有延续性的服务,而且必须在故障发生时将其在客户端进行屏蔽。为了解决这些问题和实现故障屏蔽,对通讯中所广为采用的TCP连接进行复制和容错是对集群服务任务进行容错保证的一个很好的方法。主要就非共享结构的集群系统在信息服务应用领域上的高可用问题进行研究,并在对前人的研究成果进行分析和总结的基础上提出了一种高可用集群系统结构——HA Cluster,该结构不仅消除了系统的单一失效点,而且能够对关键任务进行备份。 集群系统的高可用性分为两种:服务高可用性和数据高可用性。前者强调集群对外提供不间断的服务,而后者强调在对故障进行屏蔽的过程中保证数据的一致性。为了实现集群的服务高可用性,本文在高可用集群系统结构的背景下提出了多种对TCP连接复制和容错的方案(包括HARTS、LW-HARTS、ER-TCP),以实现集群的TCP连接级服务高可用性,并对其中的每一种方案进行了性能测试。在这一基础上,本文将提出的方案与前人提出的其它方案进行了横向对比,对比的结果表明在对连接进行复制的前提下,本文提出的方案达到了更小的通讯性能损耗,从而更加贴近实际应用的需要。 为了实现集群的数据高可用性,本文首先对前人在数据复制领域做出的研究进行分析和总结,指出主动数据复制技术是满足集群数据高可用性所需要的数据一致性的合适的方法。为了对主动数据复制技术加以支持,本文在高可用集群系统结构上,提出了将集群服务的多个TCP连接进行原子多播转换的方案——TCP-ABC,并对其具有的属性进行了证明。在对TCP-ABC方案所实现的数据一致性加以充分利用的基础上,本文提出了将这些TCP连接本身进行主动复制以实现读-写多策略的方案——AR-TCP。AR-TCP将TCP流中的只读操作抽取出来并定向到单一的服务器结点上执行。最后,本文将这两种方案应用到具体的MySQL数据库服务器集群上,以实现该集群的数据高可用性。对所构造的集群进行的性能测试结果表明,在对集群内多个数据副本进行一致性保证的前提下,这两种方案都实现了比较小的数据更新性能损耗,同时AR-TCP方案极大地提高了集群系统的并发读数据的性能。