一种基于云计算的资源限制及动态调整方法与流程

文档序号:11690970阅读:356来源:国知局

本发明涉及云计算中的资源分配问题,具体涉及一种基于云计算的资源限制及动态调整方法。



背景技术:

随着云计算和大数据技术的发展,特别是一些开源云平台的支持,使云平台的构建更加方便、快捷。例如,学生们在利用云平台支撑的上机实验中,可以跳过复杂的环境搭建过程,快速地搭建实验环境,使用接近真实的场景。学生们利用云平台进行ctf(capturetheflag,夺旗赛)的大致流程如下:

步骤一,选择比赛的配置信息、规模,创建夺旗环境;

步骤二,前端判断参数的正确性,调用云平台接口;

步骤三,云平台收到请求,根据拓扑结构准备资源。创建对应实例,设置网络环境,启动实例,准备软件环境;

步骤四,云平台环境准备完成后,返回给前端,学生端获取相应信息;

步骤五,学生攻击靶机,获取靶机flag,提交至竞赛系统,系统根据提交的靶机判定结果,并进行显示。

如果在步骤五学生攻击靶机的过程中,靶机的资源是没有限制的,当学生将靶机的流量打满时,很可能就会影响到平台中其它竞赛的正常进行。

基于云平台来构建大数据实验使环境变得简单,可以任意申请各种类型的数据处理及分析环境直接使用,避免了搭建环境的复杂过程。但是大数据的处理及分析本身是很耗费资源的,存在着激烈的资源竞争。在现有应用中,一般很少对虚拟机的资源进行限制及动态调整。由于物理主机的资源固定,同一物理主机上的某个虚拟机占用的资源多了,其它虚拟机可使用的资源就会少,使其它的用户体验不好,严重时影响正常工作。



技术实现要素:

为了解决现有技术中存在的上述问题,本发明提出一种基于云计算的资源限制及动态调整方法,可以实现资源的动态调整,避免不同用户之间的相互影响,提高资源利用率。

为实现上述目的,本发明采用如下技术方案:

本发明提供一种基于云计算的资源限制及动态调整方法,包括以下步骤:

设置虚拟机资源参数的限值;

定期获取物理主机及每个虚拟机占用的资源;

基于设置的虚拟机资源参数的限值,根据获取的物理主机及每个虚拟机占用的资源进行资源调整。

进一步地,所述设置虚拟机资源参数的限值,包括:设置cpu(centralprocessingunit,中央处理器)资源参数的限值、内存资源参数的限值、磁盘资源参数的限值和网卡资源参数的限值中的一种或几种,其中:

设置cpu资源参数的限值,包括:设置a1、a2和a3的值。a1为一无量纲的常数,当两个不同的虚拟机进行资源竞争时,根据各自的a1的大小按比例分配资源;a2和a3配合使用,表示虚拟机的每个处理器在a3内使用cpu的时间不能超过a2,a2和a3的单位均为微秒。

设置内存资源参数的限值,包括:设置b1、b2和b3的值。b1为虚拟机能够使用的内存的最大值,b2为当虚拟机进行内存竞争时分配的内存的最小值,b3为虚拟机能够使用的最大的交换分区(即虚拟内存分区,当物理内存用完后将磁盘空间虚拟成内存);b1、b2和b3的单位均为kb。

设置磁盘资源参数的限值,包括:设置c1、c2、c3和c4的值。c1和c2分别为虚拟机读磁盘带宽的最大值和虚拟机写磁盘带宽的最大值,单位均为byte/s;c3和c4分别为虚拟机读磁盘速度的最大值和虚拟机写磁盘速度的最大值,单位均为次/秒。

设置网卡资源参数的限值,包括:设置d1、d2、d3、d4、d5和d6的值。d1和d2分别为虚拟机网卡流入带宽平均值的最大值和虚拟机网卡流出带宽平均值的最大值;d3和d4分别为虚拟机网卡流入带宽峰值的最大值和虚拟机网卡流出带宽峰值的最大值;d5和d6分别为当虚拟机网卡流入带宽峰值和虚拟机网卡流出带宽峰值分别为d3和d4时,网卡能够传输数据总量的最大值。d1、d2、d3、d4、d5和d6的单位均为kb。

进一步地,所述资源调整包括以下(1)~(4)项操作中的任意一项或几项:

(1)动态调整虚拟机的cpu资源;

(2)动态调整虚拟机的内存资源;

(3)动态调整虚拟机读磁盘带宽、写磁盘带宽、读磁盘的速度和写磁盘的速度;

(4)动态调整虚拟机网卡流出带宽和虚拟机网卡流入带宽。

与现有技术相比,本发明具有以下有益效果:

本发明提出的一种基于云计算的资源限制及动态调整方法,通过设置虚拟机资源参数的限值,定期获取每个虚拟机占用的资源,基于设置的虚拟机资源参数的限值,根据获取的物理主机及每个虚拟机占用的资源进行资源调整,能够实现虚拟机资源的动态调整,避免不同用户之间的相互影响,提高资源利用率,即使在资源超分(分配给虚拟机的内存总量超过物理内存总量)的情况下虚拟机仍能正常使用。

附图说明

图1为本发明实施例一种基于云计算的资源限制及动态调整方法的流程图。

具体实施方式

下面结合附图对本发明作进一步详细说明。

本发明实施例一种基于云计算的资源限制及动态调整方法的流程图如图1所示,所述方法包括:

步骤101,设置虚拟机资源参数的限值;

在本步骤中,通过设置虚拟机各种资源(如cpu、内存等)的最大或最小值等,以便对资源的使用进行限制,即不超过设置的最大值,不低于设置的最小值。由于物理主机的资源是固定的,某些虚拟机用的多了,其它虚拟机就会少,这样其它的用户体验就会受到影响,因此需要对虚拟机资源进行限制。进行资源限制后,如果某些用户的系统受到攻击,即使不能抵御攻击,也能保证其它用户不受影响。

步骤102,定期获取物理主机及每个虚拟机占用的资源;

在本步骤中,物理主机的资源可以通过系统工具及对某些资源文件进行统计获取,如/proc目录下会有cpu和内存的信息。获取虚拟机占用的资源有两条途径:一是通过hypervisor(虚拟机管理器,也叫虚拟机监视器)的接口获取;二是利用系统工具获取详细的资源使用情况。定期获取是指每隔一段时间获取一次虚拟机占用的资源,并据此进行资源调整,这样可以对资源进行动态实时调整。获取资源的时间间隔一般由实验确定。

步骤103,基于设置的虚拟机资源参数的限值,根据获取的物理主机及每个虚拟机占用的资源进行资源调整。

在本步骤中,基于步骤101设置的虚拟机资源参数的限值,根据步骤102获取的物理主机及每个虚拟机占用的资源,按照预先设置好的调整策略进行资源调整。例如,根据步骤102获取的物理主机及虚拟机占用的内存资源,如果虚拟机的可用内存量小于20%,就对虚拟机内存进行动态扩容;如果虚拟机的可用内存量大于60%,就对虚拟机的内存进行回收。通过动态调整,使虚拟机的内存在步骤101设置的虚拟机内存的最大值和最小值之间动态变化。

作为一种可选实施例,所述设置虚拟机资源参数的限值,包括:设置cpu资源参数的限值、内存资源参数的限值、磁盘资源参数的限值和网卡资源参数的限值中的一种或几种,其中:

设置cpu资源参数的限值,包括:设置a1、a2和a3的值。a1为一无量纲的常数,当两个不同的虚拟机进行资源竞争时,根据各自的a1的大小按比例分配资源;a2和a3配合使用,表示虚拟机的每个处理器在a3内使用cpu的时间不能超过a2,a2和a3的单位均为微秒。

设置内存资源参数的限值,包括:设置b1、b2和b3的值。b1为虚拟机能够使用的内存的最大值,b2为当虚拟机进行内存竞争时分配的内存的最小值,b3为虚拟机能够使用的最大的交换分区;b1、b2和b3的单位均为kb。

设置磁盘资源参数的限值,包括:设置c1、c2、c3和c4的值。c1和c2分别为虚拟机读磁盘带宽的最大值和虚拟机写磁盘带宽的最大值,单位均为byte/s;c3和c4分别为虚拟机读磁盘速度的最大值和虚拟机写磁盘速度的最大值,单位均为次/秒。

设置网卡资源参数的限值,包括:设置d1、d2、d3、d4、d5和d6的值。d1和d2分别为虚拟机网卡流入带宽平均值的最大值(也叫上限值,下同)和虚拟机网卡流出带宽平均值的最大值;d3和d4分别为虚拟机网卡流入带宽峰值的最大值和虚拟机网卡流出带宽峰值的最大值;d5和d6分别为当虚拟机网卡流入带宽峰值和虚拟机网卡流出带宽峰值分别为d3和d4时,网卡能够传输数据总量的最大值。d1、d2、d3、d4、d5和d6的单位均为kb。

在本实施例中,给出了设置虚拟机资源参数的限值的方法,包括对虚拟机的cpu、内存、磁盘和网卡中的一种或几种的资源参数的限值进行设置,也就是说,不管是对上述限值任意一种、任意两种、任意三种进行限制设置,还是对上述四种资源同时进行限制设置,都属于本实施例的范围。当然,在实际应用中,为了获得好的效果,一般是对尽量多的资源参数的限值进行设置。

在本实施例中,对cpu资源参数限值的三个主要参数a1、a2和a3进行了设置。a1、a2和a3主要用于对虚拟机占用cpu时间的限制,其中,a1为一无量纲的常数,当两个不同的虚拟机进行资源竞争时,根据各自的a1值的大小按比例分配资源,例如,一个虚拟机的a1值设置为1024,另一个虚拟机的a1值设置为2048,那么当两个虚拟机竞争cpu资源时,a1值为2048的虚拟机将得到两倍于a1值为1024值的虚拟机的cpu时间。a2和a3成对儿使用,表示虚拟机的每个处理器在a3时间内使用cpu的时间最多不能超过a2。a2和a3的单位均为微秒,也可采用其它时间单位。a1、a2和a3的值一般通过实验获得。应用a2和a3可以使虚拟机所有的处理器以相同的速度运行。

在本实施例中,对内存资源参数限值的三个主要参数b1、b2和b3进行了设置。b1、b2和b3主要用于对虚拟机使用内存的限制,其中,b1为虚拟机能够使用的内存的最大值,b2为当虚拟机进行内存竞争时分配的内存的最小值,b3为虚拟机能够使用的最大的交换分区;b1、b2和b3的单位均为kb,也可采用其它单位,如mb。在实际应用中,设置b1可能引起虚拟机被内核终止,因此,对b1的设置一定要谨慎,如果出现由于设置b1引起虚拟机被内核终止的现象,取消设置b1。

在本实施例中,对磁盘资源参数限值的四个主要参数c1、c2、c3和c4、进行了设置。c1~c4主要用于对虚拟机读写磁盘的带宽和速度进行限制,其中,c1和c2分别为虚拟机读磁盘带宽的最大值和虚拟机写磁盘带宽的最大值;c3和c4分别为虚拟机读磁盘速度的最大值和虚拟机写磁盘速度的最大值;c1、c2的单位均为byte/s,c3、c4的单位均为次/秒。

在本实施例中,对网卡资源参数限值的六个主要参数d1、d2、d3、d4、d5和d6进行了设置。d1~d6是对虚拟机网卡流入流出带宽的限制,其中,d1和d2分别为虚拟机网卡流入带宽平均值的最大值和虚拟机网卡流出带宽平均值的最大值。d3和d4分别为虚拟机网卡流入带宽峰值的最大值和虚拟机网卡流出带宽峰值的最大值。d3大于d1,d4大于d2。d5和d6分别为当虚拟机网卡流入带宽峰值和虚拟机网卡流出带宽峰值分别为d3和d4时,网卡能够传输数据总量的最大值。d1、d2、d3、d4、d5和d6的单位均为kb,也可采用其它单位,如mb。

作为一种可选实施例,所述资源调整包括以下(1)~(4)项操作中的任意一项或几项:

(1)动态调整虚拟机的cpu资源;

(2)动态调整虚拟机的内存资源;

(3)动态调整虚拟机读磁盘带宽、写磁盘带宽、读磁盘的速度和写磁盘的速度;

(4)动态调整虚拟机网卡流出带宽和虚拟机网卡流入带宽。

在本实施例中,(1)~(4)项中的每一项调整,均是按照步骤103所述的方法进行,即基于步骤101设置的虚拟机资源参数的限值,根据步骤102获取的物理主机及每个虚拟机占用的资源,按照预先设置好的调整策略进行资源调整。下面通过举例说明上述各项调整的方法。

动态调整虚拟机的cpu资源:

多台虚拟机在一台物理主机上运行,根据获取的物理主机及每个虚拟机占用的资源,如果物理主机的cpu使用率已经达到调整策略设定的阈值,如80%,则对物理主机上所有虚拟机的cpu使用率进行分析,如果某个虚拟机的cpu使用率低于设定的阈值,如50%,则通过减小该虚拟机的cpu资源限值(如前面实施例中提到的在a3时间内使用cpu的时间的最大值a2)释放部分cpu资源,释放出来的cpu资源分配给其它虚拟机使用;如果某个虚拟机的cpu使用率高于设定的阈值,如90%,则通过增大该虚拟机的cpu资源限值(如前面实施例中提到的在a3时间内使用cpu的时间的最大值a2)获取额外资源。

动态调整虚拟机网卡流出带宽和虚拟机网卡流入带宽:

假设物理主机网卡的最大带宽为110mb/s左右,每个虚拟机的初始带宽为10mb/s。如果根据获取的物理主机及每个虚拟机的带宽资源,发现某个虚拟机的实时带宽一直持续在10mb/s,而这时物理主机的总带宽只有50mb/s(这些阈值可根据实际情况进行调整),那么就将该虚拟机的带宽的最大值(前面实施例中的c1~c4的值)调高,例如调整到20mb/s,或者更多。

在前面实施例的步骤103中已给出了动态调整虚拟机内存资源的例子,这里不再重复举例;虚拟机磁盘资源的动态调整方法与其它资源的调整方法基本相同,这里不再举例说明。

上述仅对本发明中的几种具体实施例加以说明,但并不能作为本发明的保护范围,凡是依据本发明中的设计精神所做出的等效变化或修饰或等比例放大或缩小等,均应认为落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1