一种基于云计算的分布式数据采集系统及方法

文档序号:7549875阅读:199来源:国知局
专利名称:一种基于云计算的分布式数据采集系统及方法
技术领域
本发明涉及云计算技术领域,特别是涉及一种基于云计算的分布式数据采集系统及方法。
背景技术
当前,云计算(Cloud Computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。云计算的核心思想,是将大量用网络连接的计算资源统一管理和调度,构成一个统一资源池向用户提供按需服务。云计算(Cloud Computing)是网格计算(GridComputing)、分布式计算(Distributed Computing)、并行计算(ParallelComputing)、效用计算(Utility Computing)、网络存储 (Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
在云计算平台中,需要将大量用网络连接的计算资源信息采集同步到云计算平台中,进行统一管理和调度。需要采集的数据包括云服务器信息,资源运行时信息、虚拟化管理软件信息等。这些云服务器被虚拟化管理软件(VMS :virtualization Management Software)统一管理,云计算平台通过调用各类VMS的API接口,实现对各类云服务器中资源的统一管理及调度,与此同时,VMS中的各类信息需要同步到云计算平台中,数据采集及信息同步,涉及到了数据采集方法。数据采集方法的优劣,直接关系到云计算平台对云资源的调度能力。
现有的数据采集方法中,普遍存在两种模式,第一中模式通常在VMS中部署采集代理程序,云计算平台通过与采集代理程序通信,以获取VMS中的相关数据。在这种模式中,采集代理程序需要消耗VMS中的资源,在采集任务异常的情况下,需要人工进行调整, 从而导致成本增加、维护难度大等问题。另外一种模式通常部署独立的采集服务器,通过调用VMS中的相关接口,实现数据采集。在这种模式中,不需要在VMS中安装代理程序,采用多线程轮询执行采集操作,所有需要采集的数据将一次性采集完成,如果数据采集出现排队现象,一旦第一个线程执行出错,就会发生堵塞,导致队列中其后的所有线程都无法运行,无法及时采集VMS中的相关信息,容易造成数据冗余。对于大批量信息的采集,这种方式还会造成采集时间过长等问题。发明内容
鉴于本发 明的目的在于提供一种基于云计算的分布式数据采集系统,其包括 由至少一个服务器构成的云服务器、用于管理所述云服务器的至少一个虚拟化管理软件 (VMS),至少一个用于信息采集的Discover节点,一个Collect节点和一个云计算平台,其特征在于
所述云服务器用于在云计算环境中提供IT基础设施的被虚拟化后的服务器,可以是单台服务器,也可以是一组集群服务器;
所述虚拟化管理软件至少管理一台云服务器,并连接到一个Discover节点,用于在虚拟化层进行资源调度管理,对下接管云服务器中的资源,向云服务器分发调度指令,并对云服务器进行监控;对上向所述Discover节点提供各类API接口,以便所述Discover节点通过虚拟化管理软件提供的API接口获取虚拟化管理软件中的信息;
所述Discover节点连接一个提供信息采集API接口的虚拟化管理软件,用于按周期调用虚拟化管理软件提供的API获取虚拟化管理软件中的信息,将采集到的信息汇报到所述云计算平台中;
所述Collect节点连接到至少一个Discover节点,用于设置采集任务及各采集任务的采集时钟周期,并将设置信息下发到Collect节点连接的所有Discover节点中;
所述云计算平台连接至少一个Discover节点和所述Collect节点,用于设置 Collect节点的采集任务及采集周期,接收Discover节点采集到的信息,并对云环境中的资产、资源、模板进行管理,将云计算环境中的IT资源以服务的方式交付给用户使用,并且在此基础上实现监控及计费。
进一步,本发明所述的基于云计算的分布式数据采集系统,其特征在于所述虚拟化管理软件、所述Discover节点、所述Collect节点和所述云计算平台均可分别单独部署在PC、PC Server或虚拟机中。
进一步,本发明所述的基于云计算的分布式数据采集系统,其特征在于所述采集任务包括资产信息采集、资源信息采集、模板信息采集、告警信息采集任务。
进一步,本发明所述的基于云计算的分布式数据采集系统,其特征在于不同的虚拟化管理软件分别连接到不同的Discover节点,一个Discover节点独立处理一个虚拟化管理软件中的信息采集,某Discvoer节点故障不影响其余Discover节点的运行。
进一步,本发明所述的基于云计算的分布式数据采集系统,其特征在于所述虚拟化管理软件支持VMware vSphere中的管理软件VMware vCenter和IBM PowerVM虚拟化技术中的管理软件SystemDirector。
此外,本发明还提供一种基于云计算的分布式数据采集方法,其应用于上述的基于云计算的分布式数据采集系统,其特征在于包括如下步骤
S1:在云计算平台中设置采集任务及采集任务调度执行时间,调用Collect节点, 设置包括采集任务及采集周期在内的采集策略,并保存到共享数据库中;
S2 =Collect节点获取采集策略并创建线程池;
S3 =Collect节点读取数据库中虚拟化管理软件信息;
S4 Collect节点读取数据库中的Discover节点信息;
S5 =Collect节点将虚拟化管理软件信息与Discover节点信息匹配,并将匹配成功的信息对应到一个线程池并形成采集任务,采集任务按调度策略执行;
S6 =Discover节 点根据采集任务的类型分别调用虚拟化管理软件中提供的相关 API接口,获取相关数据并将数据按要求写入共享数据库中,以供云计算平台使用。
进一步,本发明所述的基于云计算的分布式数据采集方法,其特征在于在步骤S6 中,若数据获取失败,则Discover节点在任务时间期内,再次获取虚拟化管理软件标识并验证虚拟化管理软件的可连接性,若虚拟化管理软件可连接,则再次执行发现,若虚拟化管理软件连接失败,则抛出异常信息。
进一步,本发明所述的基于云计算的分布式数据采集方法,其特征在于在所述步骤S3,S4中,Collect节点每5分钟读取一次并缓存于内存中。
进一步,本发明所述的基于云计算的分布式数据采集方法,其特征在于在步骤S5 中,每类采集任务形成线程池中的独立主线程,后续虚拟化管理软件中的每个对象相关的信息采集,将生成独立子线程执行,各线程分时执行;所述Collect节点在采集任务执行过程中监控各线程执行情况,对于执行超时的线程,将强行终止,以便后续线程继续执行。
本发明将米集程序、调度程序、控制程序分开独立部署,可自定义米集策略、自定义数据采集时间戳及采集周期,采用线程池机制,可执行多VMS、多对象的不同数据的同时采集。采集任务通过线程池中的线程抢占方式执行,缩短数据采集延迟,减少采集任务阻塞,提高了数据采集效率。


图1为本发明的基于云计算分布式数据采集系统的结构示意图。
图2为本发明的基于云计算分布式数据采集方法的流程示意图。
具体实施方式
下面通过附图和实施例,对本发明的采集方法做进一步的详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
本发明基于云计算的分布式数据采集系统及方法,采用分布式部署、多线程及时间调度模式,无需在VMS中安装代理,通过多点部署采集服务器连接VMS中的API接口,通过集中的时间调度服务器统一对各采集任务进行运行时间调度,其中各采集任务采用多线程方式实现,在各线程间采用抢占机制,实现将VMS中各服务器的固有信息、运行时等信息及时同步到云计算平台中,以克服现有技术在被采集服务器安装代理、采集线程拥堵、数据冗余等问题。
本发明基于云计算的分布式数据采集系统包括由至少一个服务器构成的云服务器、若干个管理云服务器的虚拟化管理软件(VMS),若干个用于信息采集的Discover节点, 一个Collect节点和一个云计算平台。其中
所述云服务器也称云主机,是指在云计算环境中提供IT基础设施(如计算资源、 存储资源、网络资源)的被虚拟化后的服务器,可以是单台服务器,也可以是一组集群服务器。在每台云服务器中,可虚拟出多个类似独立服务器的部分,每个部分都可以做单独的操作系统,管理方法同物理服务器一样,独立出来的安装有单独操作系统的部分,称之为虚拟机。
所述VMS指虚拟化环境的管理软件,主要在虚拟化层进行资源调度管理,可部署在虚拟机中,也可部署在独立的PC Server中。在本发明中,VMS处于云服务器及云计算平台中间,属于中间层,具有两部分功能
对下接管云服务器中的资源,向云服务器分发调度指令,并对云服务器进行监控;
对上向云计算平台提供各类API接口,以便云计算平台通过VMS提供的API接口实现云计算平台相关功能,包括资源调度、信息采集、虚拟机 等对象监控等。
所述VMS至少管理一台云服务器,并连接到一个Discover节点中,本发明中的VMS 可支持多种虚拟化技术,如VMware vSphere中的管理软件VMwarevCenter, IBM Power VM 虚拟化技术中的管理软件SystemDirector等。
所述Discover节点主要用于按周期调用VMS提供的API获取VMS中的信息。其采集频率来自Collect节点,采集到的信息汇报到云计算平台中。可部署在独立的PC或 PCServer中,也可部署到虚拟机中,需要连接一个提供信息采集API接口的VMS、用于接收采集数据的云计算平台及提供采集频率时钟设置的Collect节点中。
不同的VMS可连接到不同的Discover节点中,一个Discover节点独立处理一个 VMS中的信息采集,某Discvoer节点故障不影响其余Discover节点的运行。
所述Collect节点为本发明特有,主要用于设置采集任务及各采集任务的采集的时钟周期,设置信息将下发到Collect节点连接的所有Discover节点中。在本发明中,可设置资产信息采集、资源信息采集、模板信息采集、告警信息采集任务,对于每类任何,可按照实际需求设置采集周周期,最小支持MS级别的周期。所述Collect可部署在PC、PC Server 或虚拟机中,需要连接到至少一个Discover节点。
其中,在所述Collect节点启动后,将匹配VMS与Discover节点的匹配信息,并为每对匹配成功的信息创建线程池,线程池中的线程轮流执行,若某线程执行超时,则强行停止,后续线程继续执行,以避免线程拥堵导致采集失败的情况。
所述云计算平台主要集中于IaaS层面的云计算平台,该云计算平台主要对云环境中的资产、资源、模板的管理,从而实现将云计算环境中的工T资源以服务的方式交付给用户使用,并且在此基础上实现监控及计费。对于用户来说,可通过所述云计算平台按需申请所需的IT资源(通常为虚拟机),并且获得快速交付的服务。对于管理员来说,通过所述云计算平台实现云环境中的资产、资源、模板等对象的管理,简化运维过程,整合数据中心资源。
所述云计算平台属于平台软件,可部署在PC Server或虚拟机中,部署所述云计算平台的服务器,可称之为云平台服务器。云计算平台是本发明的所述分布式采集的服务对象,在云计算平台中,可设置Collect节点的采集任务及采集周期,接收Discover节点采集到的信息并进行各类分析,按需展示。故所述云计算平台至少连接一个Discover节点,一个Collect节点。
本发明提供一种基于云计算的分布式数据采集方法,其特点在于
V进行分布式数据采集,避免采集线程单点故障影响整体采集;
V创建分布式线程池,线程抢占式执行,采集任务多线程执行,保证采集任务成功执行;
V任务按设定时间调度,确保各采集任务能按时执行。
图1为本发明的基于云计算分布式数据采集系统的结构示意图。如图1所示,本发明的基于云计算分布式数据采集系统包括若干个用于管理云服务器的虚拟化管理软件 (VMS),若干个用于信息采集的Discover节点,一个Collect节点和一个云计算平台,各节点具有一个公共数据库。
例如,在数据中 心中有三种虚拟化环境VMware vSphere虚拟化环境、OracleSUN Ldoms虚拟化环境、IBM Power VM虚拟化环境。所述虚拟化环境被4个虚拟化管理软件管理
VMSl管理VMware vSphere环境中的50台X86云服务器;
VMS2管理VMware vSphere环境中的30台X86云服务器;
VMS3 管理 Oracle SUN Ldoms 环境中的 20 台 Oracle SUN T 系列小型机;
VMS4 管理 IBM Power VM 环境中的 10 台 Power 小机。
在部署过程中,在PC Server中部署一个统一的Collect节点,用于统一采集时间调度;部署4个Discover节点分别对应4个VMS ;云计算平台中的公共数据库使用Oracle 10g,用于各节点读写共享数据。
其中所述VMS、Collect节点、Discover节点可分别独立部署在PC Server上或虚拟机上。对于某Discover节点出现故障,可使用PC Server或虚拟机紧急替换,部署简单, 易于扩张,维护难度较低。
此外,本发明还提供了一种基于云计算的分布式采集方法,其包括如下步骤
S1:在云计算平台中设置采集任务及采集任务调度执行时间,并写入数据库;
其中,所述步骤SI中包括一种时间调度程序(即Collect节点),云计算平台调用 Collect节点,设置包括采集任务及采集周期在内的采集策略,并保存到共享数据库中。
S2 =Collect节点获取采集策略并创建线程池;
其中,所述步骤S2中的Collect节点,一旦启动后,将自动创建线程池,等待执行。
S3 =Collect节点读取数据库中VMS信息;
S4 Collect节点读取数据库中的Discover节点信息;
其中,所述步骤S3,S4中的信息,Collect节点每5分钟读取一次并缓存于内存中。
S5 =Collect节点将VMS信息与Discover节点信息匹配;
其中,所述步骤S5后,Collect节点将匹配成功的信息对应到一个线程池并形成采集任务,采集任务按调度策略执行,每类采集任务(如资产信息采集、资源信息采集、模板信息采集、告警信息采集等)将形成线程池中的独立主线程,后续VMS中的每个对象相关的信息采集,将生成独立子线程执行 ,各线程分时执行。所述Collect节点在采集任务执行过程中监控各线程执行情况,对于执行超时的线程,将强行终止,以便后续线程继续执行。
S6 =Discover节点获取VMS信息并调用VMS中相关API接口,按策略执行数据采集;
其中,所述步骤S6中,Discover节点根据采集任务的类型(如告警采集、资源采集等)分别调用VMS中提供的相关API接口,获取相关数据并将数据按要求写入共享数据库中,以供云计算平台使用。
若数据获取失败,则Discover节点在任务时间期内,再次获取VMS标识并验证VMS 的可连接性,若VMS可连接,则再次执行发现,若VMS连接失败,则抛出异常信息。
图2为本发明的基于云计算分布式数据采集方法的流程示意图。如图2所示
步骤SOl :在云计算平台中的任务调度功能中,设置采集任务,包括资产信息采集、资源信息采集、模板采集、告警信息采集等,并设置各采集任务的执行时间周期。
所述步骤SOl中设置的采集周期,为了数据尽可能准确,一般情况下,实时数据设置周期为MS级别,静态数据设置周期为分钟级别。
例设置资源信息采集周期为每5MS执行一次,资产信息采集周期为每5分钟采集一次。
步骤S02 =Collect节点启动,创建线程池并读取共享数据库中的调度信息、VMS、 Discover节点信息并将VMS与Discover节点进行匹配。
所述步骤S02中包括所述Collect节点启动成功后,自动创建4个线程池,分别对应如上所述的4个VMS,每个线程池中自动默认创建10个主线程,每个主线程对应一类采集(如资产信息采集任务)。主线程数量根据采集周期及采集任务,在执行采集任务时动态调整。
Collect节点获取共享数据库中的VMS及Discover节点信息,并进行匹配,匹配成功的信息缓存与内存中,每5分钟刷新一次,以确保VMS信息与Discover节点始终匹配成功。
Collect节点读取共享数据库中的任务调度信息,执行采集任务。当采集任务时间点到达时,相应线程池中的主线程通过Discover节点执行设定好的采集任务。
例,针对上述VMSl中资产信息采集、资源采集任务,资产每5分钟执行一次采集, 资源每5MS执行一次采集。
当Collect节点启动后,自动创建线程池I用于执行VMSl的信息采集。Collect 节点读取共享数据库中的采集任务信息,在线程池I中创建资产采集主线程、资源采集主线程。当第一次资产采集时间达到时,Collect节点将在资产采集主线程中自动创建50个子线程,分别对应50台X86云服务器的资产信息采集任务。当第一次资源采集时间达到时,Collect节点在资源采集主线程中自动创建50个子线程,分别对应50台X86云服务器的资源信息采集任务。每次采集任务均通过Discover节点完成。
采集任务在执行过程中,Collect节点对线程池中的线程进行监控,以确保各线程顺利执行,若出现线程堵塞情况,则在设定的超时时间过后,Collect节点强制停止超时线程,继续执行后续线程。
具体过程为-Collect节点对每个线程的开始时间和结束时间进行记录及监控, 当出现某线程运行时间超出设定好的超时时间后,Collect将自动调度,终止当前线程,继续执行队列中的后续线程。
通过对线程运行情况进行监控,将进一步判断出采集对象是否出现异常。如在一轮采集任务中,某线程始终由于超时终止,可通过线程分析,获取采集对象标识,进而可通过人工方式判断采集对象运行情况。
步骤S03 =Discover节点从Collect节点获取匹配的VMS信息,并调用VMS提供的 API执行数据获取,获取成功后写入共享数据库。
所述步骤S03中包括所述Discover节点验证VMS的有效性及访问VMS相关API 接口。Discover节点通过网络广播方式验证获取的VMS信息的有效性,并使用共享数据库中的VMS链接标识进行连接。
例,采集VMSl中云服务器I的资产信息,每5分钟采集一次。
则Discoverl节点读取共享数据库中的VMSl信息及资产采集任务信息,在 Collect节点统一调度下,针对云服务器I资产采集子线程I运行时 ,Discoverl节点使用共享数据库中的VMSl连接标识连接到VMSl,扫描VMSl提供的记录资产信息的API,筛选出云服务器I的资产信息,按要求写入到共享数据库中。若共享数据库中已存在相关数据,则对数据执行更新操作,以确保共享数据库中的数据为最新数据,减少由于数据不一致造成的云计算平台与VMS之间的操作错误。
在步骤S03中,所述Discover节点将随着Collect中线程按周期执行信息采集, 在每次采集执行之前,Discover节点获取内存的VMS信息,以确认每次采集的VMS信息与 Collect节点提供VMS信息一致,避免数据冗余的情况。
若所述Discover节点判断VMS连接异常,或多次采集不到数据,则Discover节点将抛出异常信息。
每个Discover节点将按周期完成设置范围内的采集对象信息的采集,若 Discover单点故障,将不影响其他Discover节点的采集任务。Discover部署简单,故障后能快速部署新的Discover节点以替换故障节点继续执行采集任务。
本发明提供的一种基于云计算的分布式数据采集方法,通过时间调度、多线程采集方法,将采集对象中的数据采集到目标位置。所述采集方法可有效解决当前采集时间周期长、采集堵塞,数据冗余等问题。本文涉及到的采集方法,采用分布式部署,易于扩展及 维护,单点故障不影响其他节点,提高了对采集数据有效性的保障。
最后应当说明的是以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解依然可以对本发明的具体实施方式
进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
权利要求
1.一种基于云计算的分布式数据采集系统,包括由至少一个服务器构成的云服务器、用于管理所述云服务器的至少一个虚拟化管理软件(VMS),至少一个用于信息采集的 Discover节点,一个Collect节点和一个云计算平台,其特征在于;所述云服务器用于在云计算环境中提供IT基础设施的被虚拟化后的服务器,可以是单台服务器,也可以是一组集群服务器;所述虚拟化管理软件至少管理一台云服务器,并连接到一个Discover节点,用于在虚拟化层进行资源调度管理,对下接管云服务器中的资源,向云服务器分发调度指令,并对云服务器进行监控;对上向所述Discover节点提供各类API接口,以便所述Discover节点通过虚拟化管理软件提供的API接口获取虚拟化管理软件中的信息;所述Discover节点连接一个提供信息采集API接口的虚拟化管理软件,用于按周期调用虚拟化管理软件提供的API获取虚拟化管理软件中的信息,将采集到的信息汇报到所述云计算平台中;所述Collect节点连接到至少一个Discover节点,用于设置采集任务及各采集任务的采集时钟周期,并将设置信息下发到Collect节点连接的所有Discover节点中;所述云计算平台连接至少一个Discover节点和所述Collect节点,用于设置Collect 节点的采集任务及采集周期,接收Discover节点采集到的信息,并对云环境中的资产、资源、模板进行管理,将云计算环境中的IT资源以服务的方式交付给用户使用,并且在此基础上实现监控及计费。
2.根据权利要求1所述的基于云计算的分布式数据采集系统,其特征在于所述虚拟化管理软件、所述Discover节点、所述Collect节点和所述云计算平台均可分别单独部署在 PC、PC Server或虚拟机中。
3.根据权利要求1所述的基于云计算的分布式数据采集系统,其特征在于所述采集任务包括资产信息采集、资源信息采集、模板信息采集、告警信息采集任务。
4.根据权利要求1所述的基于云计算的分布式数据采集系统,其特征在于不同的虚拟化管理软件分别连接到不同的Discover节点,一个Discover节点独立处理一个虚拟化管理软件中的信息采集,某Discvoer节点故障不影响其余Discover节点的运行。
5.根据权利要求1所述的基于云计算的分布式数据采集系统,其特征在于所述虚拟化管理软件支持VMware vSphere中的管理软件VMware vCenter和、IBMPower VM虚拟化技术中的管理软件SystcmDirector。
6.一种基于云计算的分布式数据采集方法,其应用于如权利要求1-5所述的基于云计算的分布式数据采集系统,其特征在于包括如下步骤51:在云计算平台中设置采集任务及采集任务调度执行时间,调用Collect节点,设置包括采集任务及采集周期在内的采集策略,并保存到共享数据库中;52=Collect节点获取采集策略并创建线程池;53=Collect节点读取数据库中虚拟化管理软件信息;54Collect节点读取数据库中的Discover节点信息;55=Collect节点将虚拟化管理软件信息与Discover节点信息匹配,并将匹配成功的信息对应到一个线程池并形成采集任务,采集任务按调度策略执行;56-Discover节点根据采集任务的类型分别调用虚拟化管理软件中提供的相关API接口,获取相关数据并将数据按要求写入共享数据库中,以供云计算平台使用。
7.根据权利要求6所述的基于云计算的分布式数据采集方法,其特征在于在步骤S6 中,若数据获取失败,则Discover节点在任务时间期内,再次获取虚拟化管理软件标识并验证虚拟化管理软件的可连接性,若虚拟化管理软件可连接,则再次执行发现,若虚拟化管理软件连接失败,则抛出异常信息。
8.根据权利要求6所述的基于云计算的分布式数据采集方法,其特征在于在所述步骤 S3,S4中,Collect节点每5分钟读取一次并缓存于内存中。
9.根据权利要求6所述的基于云计算的分布式数据采集方法,其特征在于在步骤S5 中,每类采集任务形成线程池中的独立主线程,后续虚拟化管理软件中的每个对象相关的信息采集,将生成独立子线程执行,各线程分时执行;所述Collect节点在采集任务执行过程中监控各线程执行情况,对于执行超时的线程,将强行终止,以便后续线程继续执行。
全文摘要
一种基于云计算的分布式数据采集系统及方法,所述系统包括由至少一个服务器构成的云服务器、用于管理所述云服务器的至少一个虚拟化管理软件(VMS),至少一个用于信息采集的Discover节点,一个Collect节点和一个云计算平台。本发明通过将采集程序、调度程序、控制程序分开独立部署,可自定义采集策略、自定义数据采集时间戳及采集周期,采用线程池机制,可执行多VMS、多对象的不同数据的同时采集。采集任务通过线程池中的线程抢占方式执行,缩短数据采集延迟,减少采集任务阻塞,提高了数据采集效率。
文档编号H04L29/08GK103037019SQ201310004289
公开日2013年4月10日 申请日期2013年1月7日 优先权日2013年1月7日
发明者王雪山, 张志武, 刘兴辉, 邵文韬 申请人:北京华胜天成科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1