虚拟化集群中进行节点调度的方法及装置的制造方法

文档序号:9547023阅读:529来源:国知局
虚拟化集群中进行节点调度的方法及装置的制造方法
【技术领域】
[0001]本发明涉及虚拟化集群技术,尤其涉及虚拟化集群中进行节点调度的方法及装置。
【背景技术】
[0002]虚拟化,指计算元件在虚拟的基础上而不是真实的基础上运行,把有限的固定的资源根据不同需求进行重新规划以达到最大利用率。常见的支持该技术的平台如:VmWare、HyperViso^Kvm等。虚拟化集群,指在多个主机的大型集群环境中,部署运行多个虚拟机的环境,一个主机上至少运行一个虚拟机。一个集群一般由多个数据节点(Datanode)组成,每个数据节点即一个虚拟机。下面以虚拟化平台上运行的hadoop集群为例,对虚拟化集群中进行节点调度的方法进行具体说明。
[0003]Hadoop,是一个分布式文件系统基础架构,由Apache基金会所开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
[0004]随着大数据的时代来临和开源平台hadoop的流行,越来越多的系统使用hadoop来存储和分析企业的海量数据。在此环境下,为了更有效的利用现有主机的资源,发挥计算机集群的威力,hadoop平台通常会部署到集群式的虚拟化平台中。但随着计算请求越来越多,虚拟机的cpu、内存、磁盘存储等资源会不断耗尽,虚拟机会高负荷运转,运转效率越来越低。
[0005]该环境下,需要动态的添加数据节点来扩展集群下的系统资源。目前,采用的是由系统维护人员,对虚拟机资源进行监控,在发现资源耗尽的情况下,手动添加新的虚拟机资源到现有的集群中。这将大量的消耗人力、物力,运维人员也要小心的修改,对系统的稳定性有一定的影响。
[0006]上述是进行数据添加的情况,在某些环境下,也需要系统维护人员进行数据节点的关闭操作。
[0007]综上,现有采用人为监控、手动进行节点调度的方案,存在操作繁琐、消耗大量人力和物力、且稳定性差、效率低的缺陷。

【发明内容】

[0008]本发明提供了一种虚拟化集群中进行节点调度的方法,该方法能够实现在虚拟化集群中自动进行节点调度。
[0009]本发明提供了一种虚拟化集群中进行节点调度的装置,该装置能够实现在虚拟化集群中自动进行节点调度。
[0010]一种虚拟化集群中进行节点调度的方法,该方法包括:
[0011]设置调度条件,所述调度条件包含定制参数及对应各定制参数的调度阈值范围;
[0012]从虚拟化集群的各数据节点获取与定制参数对应的数据;
[0013]判断获取的定制参数对应的数据是否满足调度阈值范围,如果是,则进行数据节点的调度。
[0014]一种虚拟化集群中进行节点调度的装置,该装置包括定制化模块、采集模块、调度模块和操作模块;
[0015]所述定制化模块,设置调度条件发送给所述调度模块,所述调度条件包含定制参数及对应各定制参数的调度阈值范围,并将调度条件包含的定制参数发送给所述采集模块;
[0016]所述采集模块,从虚拟化集群的各数据节点获取与定制参数对应的数据,发送给所述调度模块;
[0017]所述调度模块,接收来自所述定制化模块的调度条件,以及来自所述采集模块的获取的与定制参数对应的数据,判断获取的定制参数对应的数据是否满足调度阈值范围,如果是,则向所述操作模块发送调度操作命名;
[0018]所述操作模块,接收来自所述调度模块的调度操作命令,进行数据节点的调度。从上述方案可以看出,本发明中,设置调度条件,所述调度条件包含定制参数及对应各定制参数的调度阈值范围;从虚拟化集群的各数据节点获取与定制参数对应的数据;判断获取的定制参数对应的数据是否满足调度阈值范围,如果是,则进行数据节点的调度。采用本发明方案,设置调度参数后,便可自动根据定制参数进行数据获取、阈值判断,根据判断结果进一步启动数据节点的调度。这样,无需人为监控、手动进行节点调度,简化了操作,节省了大量人力和物力,具有较高的操作效率,且不会出现因人为误差而引起稳定性差的问题。
【附图说明】
[0019]图1为本发明虚拟化集群中进行节点调度的方法示意性流程图;
[0020]图2为本发明虚拟化集群中进行节点调度的方法流程图实例;
[0021]图3为本发明虚拟化集群中进行节点调度的装置结构示意图。
【具体实施方式】
[0022]为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
[0023]现有虚拟化集群中进行节点调度的方案,采用人为监控、手动调度实现,存在操作繁琐、消耗大量人力和物力、且稳定性差、效率低的缺陷。针对该问题,本申请提出了自动进行节点调度的方案,先设置调度条件,然后基于调度条件自动从虚拟机进行数据获取,并进行数据分析,根据分析结果启动关于数据节点的调度。这样,无需人为监控、手动进行节点调度,简化了操作,节省了大量人力和物力,具有较高的操作效率,且不会出现因人为误差而引起稳定性差的问题。
[0024]参见图1,为本发明虚拟化集群中进行节点调度的方法示意性流程图,其包括以下步骤:
[0025]步骤101,设置调度条件,所述调度条件包含定制参数及对应各定制参数的调度阈值范围。
[0026]调度条件包含的内容可根据需要设置,例如包含定制参数以及对应的调度阈值范围。所述定制参数例如为CPU使用量、内存使用量、磁盘使用量、网络输入输出大小等中的至少一项。每项定制参数对应各自的调度阈值范围,调度阈值范围根据需要设定,例如,该调度阈值范围可以只包含大于调度阈值上限的范围,如果超过调度阈值上限,表明负荷过重,则进行数据节点的添加;该调度阈值范围也可以只包含小于调度阈值下限的范围,如果低于调度阈值下限,表明负荷较小,为节省资源,可关闭相应的数据节点;还可以,该调度阈值范围同时包含大于调度阈值上限的范围和小于调度阈值下限的范围。
[0027]步骤102,从虚拟化集群的各数据节点获取与定制参数对应的数据。
[0028]步骤103,判断获取的定制参数对应的数据是否满足调度阈值范围,如果是,则进行数据节点的调度。
[0029]进一步地,所述进行数据节点的调度之后,还可自动根据对数据节点的调度,修改集群内各虚拟机上的集群配置信息,所述集群配置信息包含集群内所有虚拟机的标识信息;所述标识信息可具体为各虚拟机的IP地址和主机名。集群内的虚拟机可根据集群配置信息互相进行访问。
[0030]本步骤中,如果判断出获取的定制参数对应的数据大于调度阈值上限,则为集群设置新的数据节点;并在集群内原各虚拟机上的集群配置信息中添加新增数据节点的标识信息,并将更新后的集群配置信息写入新设置的数据节点中。
[0031]如果判断出获取的定制参数对应的数据小于调度阈值下限,则关闭小于调度阈值下限的数据节点;并在集群内各虚拟机上的集群配置信息中删除所关闭的数据节点的标识信息;并将关闭的数据节点上的数据复制到具有空闲资源的数据节点上。
[0032]进一步地,为了保证关闭数据节点的同时,集群中有足够空闲容量的数据节点;上述在判断出获取的定制参数对应的数据小于调度阈值下限时,还判断集群的总体资源使用量是否小于集群阈值,如果是,才进行数据节点的关闭。集群的总体资源使用量可根据获取的定制参数对应的数据计算得到,集群的总体资源量预先已经知道,用当前获取的集群内所有虚拟机的资源量与总体资源量相除,便得到集群的总体资源使用量。
[0033]图1的流程中,步骤102从虚拟化集群的各数据节点获取与定制参数对应的数据,可采用多种方式实现,如随机获取、实时获取等,还可以周期性地进行获取,例如每隔10秒获取一次。
[0034]步骤101设置的调度条件中还可进一步包括对应各定制参数的持续时间;相应地,步骤103所述判断获取的定制参数对应的数据是否满足调度阈值范围包括:判断从当前时刻开始往前的持续时间之内,获取的定制参数对应的数据是否满足调度阈值范围。各定制参数的持续时间可以不相同,也可以相同,例如都为30分钟,也就是,每次进行判断是,都提取当前时刻之前30分钟内从虚拟机获取的数据,进行分析判断。调度条件中包含的定制参数可以只包含一个,也可以包含两个以上;如果为两个以上,所述判断从当前时刻开始往前的持续时间之内,获取的定制参数对应的数据是否都满足调度阈值范围,如果都满足调度阈值范围,才进行数据节点的调度。
[0035]采用本发明方案,设置调度参数后,便可自动根据定制参数进行数据获取,进行阈值判断,根据判断结果进一步启动数据节点的调度。这样,无需人为监控、手动进行节点调度,简化了操作,节省了大量人力和物力,具有较高的操作效率,且不会出现因人为误差而引起稳定性差的问题。
[0036]下面通过图2的流程对本发明虚拟化集群中进行节点调度的方法进行实例说明,本实例具体涉及hadoop集群中节点数据的添加,其包括以下步骤:
[0037]步骤201,设置调度条件,所述调度条件包含定制参数及对应各定制参数的调度阈值范围,还包含对应各定制参数的持续时间。
[0038]本实例中,定制参数包含:CPU使用量、内存使用量、磁盘使用量,分别各自的调度阈值上限:CPU使用率阈值(90% )、内存使用率阈值(80% )、硬盘空间使用率阈值(85% );持续时间都为30分钟。当然地,各调度阈值上限也可不采用百分比的表示方式。
[0039]步骤202,每隔10秒从虚拟化集群的各数据节点获取与定制参数对应的数据。
[0040]与定制参数对应的数据,体现了各数据节点的运行状态。本实例中,每隔10秒获取一次运行状态数据,并存储,以供步骤203中进行分析判断。
[0041]步骤203,判断从当前时刻开始往前的持续时间之内,获取的定制参数对应的数据是否都大于调度阈值上限,如果是,则执行步骤204。
[0042]虚拟机的资源总量已知,在获取CPU使用量、内存使用量、磁盘使用量对应的数据后,与相应的资源总量进行相除,便可得到CPU使用率、内
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1