论文部分内容阅读
随着信息化社会不断深入,很多领域的业务量和数据处理量都大大增加,它们对服务器运行能力有很高要求。而单节点服务器受到处理能力限制无法满足这些业务处理需求,因此,需要构建由多个节点构成的服务器系统,对外提供多项服务。然而,仅仅满足处理能力的要求还不能完全迎合社会的需要,因为在诸如银行、电信和航空航天等等领域,处理的数据往往非常关键,如果出现系统故障,造成数据丢失,就会带来无法挽回的损失。在此背景下,构建由多个节点构成的容错服务器成为信息处理发展的需要。
过去,构建多节点容错服务器受到硬件结构和硬件成本等因素限制,并不能很好地推广使用。直到近几年,虚拟化技术取得了飞速的发展,其诸多优点和特性为多节点容错服务器的研究和发展提供了新的思路和广阔前景。
本文在此背景下,对如何利用现有的虚拟化技术为多节点容错服务器领域提供容错模式进行了研究和探讨。
Xen是由剑桥大学开发的虚拟化技术,在开源虚拟化领域占据了重要地位。而Remus是由加拿大哥伦比亚大学开发的一个针对Xen的虚拟机容错项目,它能够在备份服务器上维持一个正常情况下不需要运行的虚拟机的完整拷贝,并且实时进行更新;当源虚拟机结点发生故障时,备份虚拟机能够自动激活,透明地继续对外提供服务。
本文将Remus功能应用于多节点容错服务器的软件设计中,实现了可移植性和容错能力都非常强的多单元容错服务器系统。该系统以虚拟机为应用服务的载体,并允许一个节点运行多个相互隔离的虚拟机独立提供服务,同时针对每个虚拟机进行了容错,从而成功地将虚拟化技术应用到多节点容错服务器领域。在实现的过程中,针对多单元容错服务器的具体特点,对Remus进行了改进,并针对Remus设计了基于虚拟机的容错管理软件,实现了多单元容错服务器系统。本文的具体研究内容包括以下几个方面:
Remus最初是为实现双机容错设计的,主要针对单个节点上只运行一个虚拟机的情况,其现有的异步消息查询机制,并不适合单个节点上运行多个虚拟机的情况。为此,本文在对Remus容错原理进行分析的基础上,为Remus设计和实现了异步等待消息查询机制,解决了单节点多个虚拟机同时进行容错的问题。
本文还针对Remus的特点设计了基于虚拟机的容错管理软件。其中,重点设计了针对多单元容错服务器的两层心跳模式,该模式包括服务器节点心跳监测和虚拟机备份心跳监测;并且,重点设计了针对多单元容错服务器特点的动态负载均衡策略,该策略同时考虑了虚拟机负载的迁移和虚拟机容错备份的管理两方面因素,使整个服务器系统在面对正常情况和节点故障情况时,能够尽量减少系统负载的差异,保持良好和稳定的运行。