提高分布式系统中资源可用性的方法及系统的制作方法

文档序号:7988336阅读:228来源:国知局
提高分布式系统中资源可用性的方法及系统的制作方法
【专利摘要】本发明涉及分布式计算机系统【技术领域】,提供了一种提高分布式系统中资源可用性的方法及系统。该方法包括步骤:在部署资源的同时上报该资源的基本信息;实时监控系统平台中运行的资源状态及资源运行环境的设备能力和状态;根据资源状态及设备能力和状态判断是否满足事件发生条件,根据不同的判断结果抛出相应的异常事件;响应于各异常事件,为资源提供者提供资源移植向导服务和/或为资源使用者提供资源访问向导服务。本发明的技术方案中,通过对大型分布式系统中的基础资源进行管理、监控和调配,并基于监控事件为用户提供资源访问/移植的跟踪向导服务,既保证了用户访问资源的服务质量和容灾能力,又保证了提供非硬件资源的持续性和可靠性。
【专利说明】提高分布式系统中资源可用性的方法及系统
【技术领域】
[0001]本发明涉及计算机网络【技术领域】,特别涉及一种提高分布式系统中资源可用性的方法及系统。
【背景技术】
[0002]随着计算设备的多样化和互联网规模的扩展,信息技术产业未来的发展特点必然是广泛分布、海量数据、高并发度以及个性化服务。比如近年来兴起的云计算技术,就是通过互联网为用户提供按需分配、动态扩展的服务和/或资源的一种大型分布式系统,其实现了计算资源的整合,在为用户提供多样化的服务的同时大幅降低了服务的成本。
[0003]但是,对于分布式系统而言,随着系统规模和数据量的增大,系统管理和维护的难度呈指数级增长,一旦发生故障势必给用户或系统带来不可估量的损失。即便未发生故障,由于管理不善造成的负载不均衡也会给用户的使用带来不便;又或者,由于现有的网络系统经常要面对千万级甚至亿级的网络服务和/或用户访问,大型分布式系统的用户往往很难快速定位应用端点。因此,如何提高系统的可用性是分布式系统必须考虑的一个问题。
[0004]现有技术中,集群系统中一般采用冗余的方式为系统提供高可用性,最通用的做法是使系统部件加倍,在一些部件不可用时,立即切换到备用的部件工作。一个强壮的高可用性系统通常指即使在系统硬件或软件故障后也能继续运行的系统,强壮的高可用性系统不具有单点故障(单点故障是单个部件故障致使整个系统不可用的现象)。
[0005]但是集群系统的处理方式更多针对的是硬件故障,对于大型分布式系统(比如云计算平台)来说,系统中普遍存在着大量的服务和虚拟资源,这些非硬件资源的故障同样会影响系统的正常运行,若在服务失败或虚拟资源失效时均采用切换硬件的方式解决故障,显然又会严重影响系统性能。可以看出,单纯的硬件冗余已无法解决云计算平台中的高可用性问题,且部件的冗余又进一步增大了系统管理(如负载均衡或服务/数据的获取)的难度。

【发明内容】

[0006](一 )要解决的技术问题
[0007]为了解决现有技术中大型分布式系统的资源可用性难以保证的问题,本发明提供了一种提高分布式系统中资源可用性的方法及系统。
[0008]( 二 )技术方案
[0009]为解决上述技术问题,本发明采用如下的技术方案实施:
[0010]首先,本发明提供了一种提高分布式系统中资源可用性的方法,所述方法包括步骤:
[0011]SI,在部署资源的同时向系统平台上报该资源在系统平台中运行时的基本信息;
[0012]S2,实时监控系统平台中运行的资源状态以及资源运行环境的设备能力和状态;
[0013]S3,根据所述资源状态以及所述设备能力和状态判断是否满足事件发生条件,根据不同的判断结果抛出相应的异常事件;
[0014]S4,响应于各异常事件,为资源提供者提供资源移植向导服务和/或为资源使用者提供资源访问向导服务。
[0015]优选地,步骤S3中,所述异常事件包括初次访问事件、访问异常事件、告警事件和资源移植事件。
[0016]优选地,步骤S4中,响应于初次访问事件,为资源使用者提供资源访问向导服务;响应于资源移植事件,首先为资源提供者提供资源移植向导服务,在资源移植完成后再为资源使用者提供资源访问向导服务。
[0017]优选地,步骤S4中,响应于访问异常事件或告警事件,首先确定资源状态,若资源正常运行,则在资源运行环境中进行负载均衡并为资源使用者提供资源访问向导服务;否贝U,先为资源提供者提供资源移植向导服务,在资源移植完成后再为资源使用者提供资源访问向导服务。
[0018]优选地,步骤SI中,上报所述基本信息的过程包括步骤:
[0019]S11,客户端通过S0AP/HTTP接口将注册请求数据放入消息队列中,资源注册模块获取队列中的注册请求数据,并将所述数据提交给目录服务(如UDDI等服务);
[0020]S12,目录服务将所述数据写入注册表/数据库中,并生成资源的service key ;
[0021]S13,资源注册模块将注册结果和service key返回给客户端,在客户端保存所述service key。
[0022]优选地,步骤S2中,监控过程包括步骤:
[0023]S21,接收资源注册模块的通知,获得新注册的信息数据;
[0024]S22,根据预设置的监控调度策略,通过nrpe ssl通道向被监控资源服务器发起监控请求;
[0025]S23,被监控的资源服务器收到请求后,执行插件采集资源当前状态数据完成监控请求;
[0026]S24,被监控的资源服务器将采集的状态数据通过NRPE协议返回给资源监控模块;
[0027]S25,将收到的采集数据写入数据库。
[0028]优选地,所述方法还在作为数据源的多个活跃的数据库实体之间进行数据同步。
[0029]优选地,所述数据同步具体包括步骤:
[0030]在源数据库端,通过数据库操作接口获取数据库中数据变更信息;
[0031]对所述数据变更信息进行预置的过滤和转换,通过JMS消息总线将其传输到目标数据库端;
[0032]通过数据库操作接口将所述数据变更信息复制到目标数据库中,在两端数据库间进行数据的增量同步。
[0033]另一方面,本发明还同时提供一种提高分布式系统中资源可用性的系统,所述系统包括:
[0034]注册模块,用于在部署资源的同时向系统平台上报该资源在系统平台中运行时的基本信息;
[0035]监控模块,用于实时监控系统平台中运行的资源状态以及资源运行环境的设备能力和状态;
[0036]事件模块,用于根据所述资源状态以及所述设备能力和状态判断是否满足事件发生条件,根据不同的判断结果抛出相应的异常事件;
[0037]向导模块,用于响应于各异常事件,为资源提供者提供资源移植向导服务和/或为资源使用者提供资源访问向导服务。
[0038]优选地,所述系统还包括数据同步模块,用于在作为数据源的多个活跃的数据库实体之间进行数据同步。
[0039](三)有益效果
[0040]本发明的技术方案中,通过对大型分布式系统中的基础资源进行管理、监控和调配,基于监控事件为用户提供资源访问/移植的跟踪向导服务,一方面保证了用户访问资源的服务质量和容灾能力,另一方面又保证了提供非硬件资源的持续性和可靠性。此外,通过向导服务,本发明的技术方案在增强基础资源和计算资源的可用性的同时使得系统管理更加透明简洁,降低了资源管理和维护的难度。
【具体实施方式】
[0041]下面将对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042]传统的计算机系统的运营大多基于相互独立的硬件资源,因而系统的高可用性也主要是针对硬件资源的冗余处理,但在大型分布式系统中,尤其是时下的云计算平台中,系统资源进一步细分为服务、数据、虚拟机和/或实体设备,单纯的硬件冗余已无法适应这类系统的高可用性要求。
[0043]在本发明的实施例中,提高资源可用性的方法可作为一个服务在系统平台中运行,对该平台及其上的服务的运行进行监控,并对该平台中的资源进行管理和维护;该服务的根本目标是为使用该服务的大型分布式系统平台和运行于该平台上的其他服务提供资源(通常包括服务和/或数据)的高可靠、高可信保证。在一个优选的实施例中,本发明的技术方案针对一个云计算平台进行管理和维护,该云计算平台可为各种网络服务提供资源支持和运行环境,包括服务器资源、存储资源、网络资源以及支持服务和数据运行的软件环境(如操作系统、J2EE服务运行环境和数据库软件等)。云计算平台中的非硬件资源主要以服务或数据的形式存在,优选地,服务是基于SOA架构的J2EEServletS,提供对外的WebService接口 ;服务的数据源为关系型数据库,服务与数据源在系统中均部署有多个备份。
[0044]在该优选的实施例中,本发明的提高分布式系统中资源可用性的方法一般包括资源信息管理、监控、事件报警和服务向导等几个基本步骤,各步骤具体为:
[0045]首先,获取在系统平台中运行的各项资源的基本信息。由于系统的运行维护首先需要了解被调度者的基本情况,随后才能在被调度者的能力范围内进行综合考量和调度。对于传统的基于硬件资源的负载均衡,信息采集通常采用现有技术周期性地收集设备的硬件能力和状态即可;但对于云计算平台,数据和服务都是动态变化的,随时可能有新的数据源或服务加入或退出系统,每项资源的能力还可以动态设定,因而很难在资源运行初期就准确掌握数据和/或服务提供者的能力、内容以及访问方式等关键信息。为此,本发明的实施例中提供了注册流程,在部署数据源和/或服务的同时就主动上报资源的基本信息,比如由数据和服务提供者向系统平台注册上述关键信息。当然,若不要求在运行初期就了解资源的基本情况,也可以根据长时间的运行记录进行统计分析,推断出上述关键信息,但这势必会对系统初期的稳定性造成一定影响。
[0046]其次,实时监控服务和数据源的状态以及其运行环境的资源能力和状态。在获取数据和服务提供者注册信息之后,系统需要实时监控各资源的状态信息,比如可用性、负载等;同时,系统还需要实时监控服务和数据源运行环境的资源能力和状态,这些信息是系统实现各项控制调度功能(如访问导航、迁移导航、访问控制等功能)的依据。
[0047]再次,根据监控的状态判断是否满足系统事件的发生条件,基于判断结果抛出具体的异常事件。为了使对资源的监控、管理和维护不影响资源的正常运行,本发明的实施例中采用基于事件触发的方式对资源进行控制。具体地,当将资源的基本信息上报给系统时(即在系统平台中进行注册时),需要提供异常事件的定义,包括事件发生条件、外部处理接口和外部通知接口等。事件处理模块周期性地从数据库中取出资源监控信息,按照异常事件的表达式进行计算,如果满足预定义的发生条件则抛出事件信息进行提示,随后调用事件的外部处理接口或外部通知接口来触发下一步的操作。
[0048]最后,为系统平台用户提供资源向导服务。本发明的基本目标就是使系统在任何状况下都能被用户所使用,由于在云计算平台中涉及到的资源类型多、数目大,且提供资源和使用资源的用户数量庞大、分布范围广,在保证可靠性的同时还需要考虑用户访问的便利性(难以被用户访问到的资源一般也被视为不可靠资源)。为此,本发明的实施例中,基于资源能力和使用情况,根据预定策略为用户(包括资源提供者和资源使用者)提供向导服务。具体地,基于各类异常事件,在资源故障或因使用情况而需要调整(包括系统自动调整或提供者手动调整等)时,为资源提供者提供资源移植向导服务;在资源正常运行时或成功移植后,为资源使用者提供资源访问向导服务。通过这种方式,使得各类资源可以动态且合理地分配到各节点,同时可为使用者提供最适宜的访问节点和路由,实现了数据和服务调度和访问的透明性,保证了系统整体的可靠性。
[0049]在更优选的实施例中,考虑到云计算技术中经常要面对异构资源,不同的资源提供者很少关注其他资源的兼容性,因此,本发明进一步对上述各步骤的功能实现提供了两种模式的支持。一方面,本发明的技术方案中定义了标准的接口规范,如果云平台和/或其中运行的服务支持该接口规范,服务可以主动通过接口实现注册,而系统也可以直接调用这些接口对资源和服务进行监控。另一方面,如果云平台和/或其中运行的服务不能直接支持该接口规范,本发明中进一步提供了远端服务代理,系统将通过该远端服务代理完成相应的注册和监控功能。在一个优选的实施例中,远端服务代理可以是NRPE(Nagi0SRemote Plugin Executor) Daemon 程序。
[0050]具体地,注册步骤通过系统的注册模块(以运行在系统中的注册服务形式存在)实现,注册模块又进一步分为服务注册模块和数据注册模块。在注册步骤中,根据数据或服务是否支持标准的注册接口规范,注册过程分为直接注册和代理注册两种模式:
[0051]a.直接注册:当数据库和服务启动初始化完成后,直接调用注册模块接口(SOAP/HTTP)实现注册;
[0052]b.代理注册:远端服务代理根据系统设置,在监测到数据库和服务启动初始化完成后,调用注册模块接口(S0AP/HTTP)实现代理注册。
[0053]不管采用上述何种模式,调用接口实现的具体注册流程为:
[0054]1)客户端注册模块(运行在服务和/或数据服务器中的客户端应用)通过SOAP/HTTP接口将注册请求数据放入消息队列中,服务注册模块和数据注册模块获取队列中的注册请求数据;
[0055]2)系统注册模块通过服务注册模块和数据注册模块将注册数据提交给目录服务;一般情况下,服务的注册信息包括服务名称和描述、服务访问端点、服务访问绑定协议、月艮务界面、服务功能操作、服务调用信息、服务状态查询方式等;数据源的注册信息包括数据源名称和描述、数据访问端点、数据访问绑定协议、数据定义信息、数据状态查询方式等。
[0056]3)目录服务将注册数据写入注册表/数据库中,并生成该服务和数据的servicekey ;
[0057]4)系统注册模块将注册结果和service key返回给客户端注册模块,客户端保存service key。
[0058]监控步骤通过系统的监控模块实现,系统通过SSL (SecureSockets Layer,安全套接层)连接调用在需要监控的服务器上部署的远端服务代理来监控系统状态、资源使用情况、以及在服务器上运行的服务状态。系统通过远端服务代理获得实时的服务可用状态和运行状态信息,并将获取的数据及时更新资源服务信息数据库。
[0059]资源监控的流程如下:
[0060]1)接收系统注册模块的通知,获得新注册的信息数据;
[0061]2)根据预设置的监控调度策略,通过nrpe ssl通道向被监控服务和/或数据服务器发起监控请求;
[0062]3)被监控服务和/或数据服务器收到请求后,执行插件采集资源当前状态数据完成监控请求;
[0063]4)被监控服务和/或数据服务器将采集的状态数据通过NRPE协议返回给资源监控模块;
[0064]5)将收到的采集数据写入数据库。
[0065]事件的触发和处理是监控的目的和资源向导的起始,为减轻监控服务对资源运行的影响,监控模块作为独立的服务(或服务器系统进程等)运行,定期对采集数据进行计算分析,根据异常事件的定义判断是否发生了对应的事件,并调用相关接口将异常事件通知给向导模块进行下一步处理。
[0066]资源向导是本发明的技术方案中高可用性实现的保障,具体地,资源向导又细分为访问向导和移植向导。其一方面在系统故障或负载不均衡时协助进行资源移植(复制转移),保证了资源的可靠性;另一方面在大数据、多用户及广泛分布的环境下提供访问透明性控制,保证了资源的易用性。其中,访问向导为资源的使用者提供访问所需资源的向导,其响应于特定的访问事件,如用户对资源的初次访问事件,根据提供者的注册信息、资源能力、采集到的实时资源利用状态信息(如资源负载等)以及预先定义的访问策略,计算出最适宜的访问端点提供给用户。该最适宜的访问端点在同一用户再次访问该资源时可直接提供给用户,但如果用户多次访问失败、资源长时间无响应或系统负载严重不平衡时,通常会产生访问异常事件或告警事件,则可能会引起资源移植过程,系统在资源移植后稳定运行时会再次为用户提供资源访问向导服务。通常情况下,资源访问向导服务的具体流程如下:
[0067]接收资源使用者发出的资源访问请求,基于该请求向目录服务发起查询,获取符合请求的资源列表;
[0068]对列表中的每个资源项进行监控信息检索,获取资源的基本信息、资源状态信息、设备能力和状态信息;
[0069]计算最适宜的资源访问端点,并将结果返回给资源使用者。
[0070]资源移植向导则是在资源由于软硬件故障或系统负载原因等需要动态移植到其他备份上时(此时通常会产生访问异常事件或告警事件),又或者是资源提供者主动进行资源移植(此时产生资源移植事件),根据资源的注册信息、相关的系统资源能力、采集到的实时资源利用状态信息(资源负载等)以及预定义的移植策略,计算出资源最适宜的移植端点。随后根据记录的资源基本信息和状态信息,将与事件对应的资源完整地迁移到该最适宜的移植端点上,在移植完成后对应修改资源的注册信息,并在用户访问时启动资源访问向导。
[0071]更进一步地, 为保证数据的可靠性和服务迁移的成功率,使得服务在保持当前数据内容的状态下进行动态移植,本发明还可在作为数据源的多个活跃的数据库实体之间进行数据同步。在优选的实施例中,系统在各个数据库的活跃节点上部署关系型数据库数据复制同步工具来实现数据的增量同步:在源数据库端,数据同步复制工具通过数据库操作接口获取数据库中数据变更信息;在经过预置的过滤和转换后,通过JMS消息总线可靠的传输到目标数据库端;再通过数据库操作接口将数据变更复制到目标数据库中,达到两端数据库数据的增量同步。本发明优选实施例中的数据同步提供对Oracle和MySQL数据库的支持,主要通过对数据库(Oracle和MySQL)的数据变更日志分析获得数据变更信息,t匕如利用数据库开发者提供的工具(如OracleGolden Gate)完成。随后,将采集到的数据变更信息自动转化为文本格式的可执行的SQL语句序列文本;根据预置策略,对生成的SQL文本实行过滤、语句转换、编码转换、类型转换等,以满足业务系统及远端数据库的要求;然后将生成的SQL文本可靠高效的传输到一个或多个远程端点,提供增量传输和断点续传支持;最后将接收到的SQL文本应用于目标数据库,通过在目标数据库执行该SQL文本实现数据复制同步。本发明的技术方案中还进一步提供对数据库Checkpoint支持,用于实现基于Checkpoint的数据增量复制同步。
[0072]本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时可实现上述实施例方法中的各个步骤,而所述的存储介质可以是:R0M/RAM、磁碟、硬盘、光盘、存储卡等。因此,与本发明的方法相对应的,本发明还同时包括一种高可用安全增强服务系统,该系统包括:
[0073]注册模块,用于在部署数据源和/或服务的同时由数据和/或服务提供者向云计算平台注册,获取云计算平台中运行的各项资源的基本信息;
[0074]监控模块,用于实时监控服务和数据源的状态以及其运行环境的资源能力和状态;
[0075]导航模块,用于根据提供者注册的基本信息、资源能力、实时监控的状态信息以及导航策略,在资源故障或因使用情况而需要调整时,为资源提供者提供迁移导航服务;在资源正常运行或迁移后,为资源使用者提供访问导航服务。
[0076]综上所述,本发明的技术方案中,通过对大型分布式系统(尤其是云计算平台)中的基础资源执行调配监测,并通过提供注册管理及其访问/迁移导航的跟踪服务,增强了基础资源和计算资源的可用性;此外,通过导航服务,本发明的技术方案即增强了服务在网络拥堵情况下的质量保证能力,又增强了服务在区域性网络瘫痪情况下的容灾保证能力。
[0077]以上实施方式仅用于说明本发明,而并非对本发明的限制,有关【技术领域】的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
【权利要求】
1.一种提高分布式系统中资源可用性的方法,其特征在于,所述方法包括步骤: SI,在部署资源的同时向系统平台上报该资源在系统平台中运行时的基本信息; S2,实时监控系统平台中运行的资源状态以及资源运行环境的设备能力和状态; S3,根据所述资源状态以及所述设备能力和状态判断是否满足事件发生条件,根据不同的判断结果抛出相应的异常事件; S4,响应于各异常事件,为资源提供者提供资源移植向导服务和/或为资源使用者提供资源访问向导服务。
2.根据权利要求1所述的方法,其特征在于,步骤S3中,所述异常事件包括初次访问事件、访问异常事件、告警事件和资源移植事件。
3.根据权利要求2所述的方法,其特征在于,步骤S4中,响应于初次访问事件,为资源使用者提供资源访问向导服务;响应于资源移植事件,首先为资源提供者提供资源移植向导服务,在资源移植完成后再为资源使用者提供资源访问向导服务。
4.根据权利要求2所述的方法,其特征在于,步骤S4中,响应于访问异常事件或告警事件,首先确定资源状态,若资源正常运行,则在资源运行环境中进行负载均衡并为资源使用者提供资源访问向导服务;否则,先为资源提供者提供资源移植向导服务,在资源移植完成后再为资源使用者提供资源访问向导服务。
5.根据权利要求1所述的方法,其特征在于,步骤SI中,上报所述基本信息的过程包括步骤: S11,客户端通过SOAP/HTTP接口将注册请求数据放入消息队列中,资源注册模块获取队列中的注册请求数据,并将所述数据提交给目录服务; S12,目录服务将所述数据写入注册表/数据库中,并生成资源的service key ; S13,资源注册模块将注册结果和service key返回给客户端,在客户端保存所述service key。
6.根据权利要求5所述的方法,其特征在于,步骤S2中,监控过程包括步骤: S21,接收资源注册模块的通知,获得新注册的信息数据; S22,根据预设置的监控调度策略,通过nrpe ssl通道向被监控资源服务器发起监控请求; S23,被监控的资源服务器收到请求后,执行插件采集资源当前状态数据完成监控请求; S24,被监控的资源服务器将采集的状态数据通过NRPE协议返回给资源监控模块; S25,将收到的采集数据写入数据库。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还在作为数据源的多个活跃的数据库实体之间进行数据同步。
8.根据权利要求7所述的方法,其特征在于,所述数据同步具体包括步骤: 在源数据库端,通过数据库操作接口获取数据库中数据变更信息; 对所述数据变更信息进行预置的过滤和转换,通过JMS消息总线将其传输到目标数据库端; 通过数据库操作接口将所述数据变更信息复制到目标数据库中,在两端数据库间进行数据的增量同步。
9.一种提高分布式系统中资源可用性的系统,其特征在于,所述系统包括: 注册模块,用于在部署资源的同时向系统平台上报该资源在系统平台中运行时的基本信息; 监控模块,用于实时监控系统平台中运行的资源状态以及资源运行环境的设备能力和状态; 事件模块,用于根据所述资源状态以及所述设备能力和状态判断是否满足事件发生条件,根据不同的判断结果抛出相应的异常事件; 向导模块,用于响应于各异常事件,为资源提供者提供资源移植向导服务和/或为资源使用者提供资源访问向导服务。
10.根据权利要求9所述的系统,其特征在于,所述系统还包括数据同步模块,用于在作为数据源的多个 活跃的数据库实体之间进行数据同步。
【文档编号】H04L29/08GK103905234SQ201210580070
【公开日】2014年7月2日 申请日期:2012年12月28日 优先权日:2012年12月28日
【发明者】孙晓光, 朱海东, 王明哲 申请人:北京友友天宇系统技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1