本发明涉及虚拟机部署领域,具体涉及一种基于虚拟化的动态管理方法。
背景技术:
虚拟化技术依赖其使用灵活、业务隔离、管理方便等特性在云平台中发挥了重要作用。由于虚拟机较高的创建/迁移/终止成本,虚拟机的部署策略对云平台的工作效率有着较大的影响。
虚拟机的部署问题类似装箱问题,将有着资源需求的若干虚拟机分配到有着最大容量的物理机集群上。现在的虚拟机部署策略主要分为两类:第一类部署策略将虚拟机的资源需求看作定值,借此将部署问题建模为装箱问题,通过fifo、fair等启发式算法进行虚拟机的部署;第二类部署策略处理资源需求为特定分布的虚拟机,如:高斯分布、指数分布、泊松分布、伯努利分布等,针对某类虚拟机设计近似算法。这两类方案都有着不足之处:第一类方案往往有着较差的资源利用效率,因为大多虚拟机的资源需求动态变化而非定值;第二类方案只适用于资源需求为特定分布的情况,泛用性较差。
因此针对虚拟机的部署问题需要设计一种资源利用效率高、适用范围广的部署方案。
技术实现要素:
本发明的目的是提供一种基于虚拟化的动态资源管理方法。
为了解决上述技术问题,本发明提供了一种基于虚拟化的动态资源管理方法,所述基于虚拟化的动态资源管理方法通过依据虚拟机的资源需求的随机变量完成对虚拟机的部署。
进一步地,所述通过依据虚拟机的资源需求的随机变量完成对虚拟机的部署的方法包括:
获取虚拟机的资源需求的随机变量;
依据随机变量将虚拟机部署在物理机上;
当被部署的虚拟机停止运行后,依据随机变量将虚拟机从物理机上移除。
进一步地,获取虚拟机的资源需求的随机变量,即,
当有一台资源需求随机变量为x的虚拟机到来时,将x的d种取值从小到大排序为(a1,a2,...,ad),定义二维数组x*[1,2][1,...,d],数组各项的值设置为x*[1][k]=([ak/x0]+1)*x0,x*[2][k]=pr(x=ak),k取1~d。
进一步地,所述依据随机变量将虚拟机部署在物理机上的方法包括:
步骤s110,找出所有
步骤s120,将物理机pi的pt表复制到数组xtmp中,进行步骤s130;
步骤s130,计算xtmp=add(xtmp,x*),进行步骤s140;
步骤s140,若xtmp的最后一项的值不大于系统规定的最大冲突率δ,进行步骤s150,否则,进行步骤s160;
步骤s150,将xtmp复制到物理机pi的pt表中,
步骤s160,令i=i+1,若i>m,进行步骤s107,否则,转到步骤s120;
步骤s170,寻找一台空闲的物理机,将该虚拟机分配到这台物理机上,其pt表更新为pt=add(pt,x*),
步骤s180,过程结束。
进一步地,所述当被部署的虚拟机停止运行后,依据随机变量将虚拟机从物理机上移除的方法包括:
步骤s210,从该虚拟机所在的物理机的链表q中寻找其对应的资源需求随机变量x,将x从链表q中删除,进行步骤s220;
步骤s220,将物理机的pt表的第一项设置为1,其他项设置为0,进行步骤s230;
步骤s230,将链表q中剩余的随机变量排序为(x1,x2,...,xr),令i=1,进行步骤s240;
步骤s240,pt表更新为pt=add(pt,xi),进行步骤s250;
步骤s250,令i=i+1,若i>r,进行步骤s260,否则,转到步骤s240;
步骤s260,
步骤s270,过程结束。
进一步地,add函数的计算方法,即,若pt的项数为n,x*的项数为d,则pt=add(pt,x*)的计算方法包括:
步骤s310,复制pt表到pt表的一个副本ptmp中,令i=1,进行步骤s320;
步骤s320,令j=1,进行步骤s330;
步骤s330,令ptmp[i]=ptmp[i]-pt[i]*x*[2][j],进行步骤s340;
步骤s340,设置变量num=i+x*[1][j]/x0,进行步骤s350;
步骤s350,若num<n,进行步骤s360,否则,进行步骤s370;
步骤s360,令ptmp[num]=ptmp[num]+pt[i]*x*[2][j],转到步骤380;
步骤s370,令ptmp[n]=ptmp[n]+pt[i]*x*[2][j],转到步骤380;
步骤s380,令j=j+1,若j>d,进行步骤390,否则,转到步骤330;
步骤s390,令i=i+1,若i<n,转到步骤320,否则,进行步骤410;
步骤s410,将ptmp中各项的值相应的复制到pt表中;
步骤s420,过程结束。
本发明的有益效果是,本发明提供了一种基于虚拟化的动态资源管理方法,其中,所述基于虚拟化的动态资源管理方法通过依据虚拟机的资源需求的随机变量完成对虚拟机的部署。在虚拟机的资源需求动态变化且需预知的情况下,将虚拟机的资源需求用随机变量的形式部署到物理机以及从物理机进行移除,从而实现将资源需求动态变化的虚拟机部署到物理机当中,同时,物理机有较高的资源利用效率。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是本发明所提供的基于虚拟化的动态资源管理方法的部分流程框图。
图2是本发明所提供的基于虚拟化的动态资源管理方法的另一部分流程框图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
实施例
本发明实施例提供了一种基于虚拟化的动态资源管理方法。所述基于虚拟化的动态资源管理方法通过依据虚拟机的资源需求的随机变量完成对虚拟机的部署。在虚拟机的资源需求动态变化且需预知的情况下,将虚拟机的资源需求用随机变量的形式部署到物理机以及从物理机进行移除,从而实现将资源需求动态变化的虚拟机部署到物理机当中,同时,物理机有较高的资源利用效率。
在本实施例中,所述通过依据虚拟机的资源需求的随机变量完成对虚拟机的部署的方法包括:
步骤s1:获取虚拟机的资源需求的随机变量,即,当有一台资源需求随机变量为x的虚拟机到来时,将x的分布储存到二维数组x*中,即将x的d种取值从小到大排序为(a1,a2,...,ad),定义二维数组x*[1,2][1,...,d],数组各项的值设置为x*[1][k]=([ak/x0]+1)*x0,x*[2][k]=pr(x=ak),k取1~d。其中,x=a的概率为虚拟机资源需求值为a的概率。
步骤s2:依据随机变量将虚拟机部署在物理机上;
在本实施例中,依据随机变量将虚拟机部署在物理机上,要求同一台物理机上所有虚拟机的资源需求的和超过物理机最大可提供资源量的概率(记为超载概率)不超过系统规定的最大冲突率δ,从而实现物理机资源的有效利用。
步骤s3:当被部署的虚拟机停止运行后,依据随机变量将虚拟机从物理机上移除。
在本实施例中,本发明实施例提供的基于虚拟化的动态资源管理方法,需要为每个物理机记录一些值以优化计算过程,这些值包括:①为每个物理机维护一张pt表,pt表的项数n=(物理机最大可提供资源量/x0+2),x0称为单位资源量,数值根据需求自行设置,第i项(0<i<n)的值表示物理机的负载(其上虚拟机的资源需求总和)的大小处于(i-1)*x0的概率,第n项的值记录超载概率的值;②为每个物理机维护一个变量
具体地,当需要对物理机进行虚拟机部署前,需要对物理机进行初始化,即,将每张pt表的第一项的值初始化为1,其他项初始化为0,表示物理机负载为0的概率是100%,即所有物理机处于空闲状态;所有物理机的
请参阅图1,在本实施例中,所述依据随机变量将虚拟机部署在物理机上的方法包括
步骤s110,找出所有
步骤s120,将物理机pi的pt表复制到数组xtmp中,进行步骤s130;
步骤s130,计算xtmp=add(xtmp,x*),进行步骤s140;
步骤s140,若xtmp的最后一项的值不大于系统规定的最大冲突率δ,进行步骤s150,否则,进行步骤s160;
步骤s150,将xtmp复制到物理机pi的pt表中,
步骤s160,令i=i+1,若i>m,进行步骤s107,否则,转到步骤s120;
步骤s170,寻找一台空闲的物理机,将该虚拟机分配到这台物理机上,其pt表更新为pt=add(pt,x*),
步骤s180,过程结束。
请参阅图2,在本实施例中,所述当被部署的虚拟机停止运行后,依据随机变量将虚拟机从物理机上移除的方法包括:
停机的虚拟机的资源需求随机变量记为x。
步骤s210,从该虚拟机所在的物理机的链表q中寻找其对应的资源需求随机变量x,将x从链表q中删除,进行步骤s220;
步骤s220,将物理机的pt表的第一项设置为1,其他项设置为0,进行步骤s230;
步骤s230,将链表q中剩余的随机变量排序为(x1,x2,...,xr),令i=1,进行步骤s240;
步骤s240,pt表更新为pt=add(pt,xi),进行步骤s250;
步骤s250,令i=i+1,若i>r,进行步骤s260,否则,转到步骤s240;
步骤s260,
步骤s270,过程结束。
其中,add函数的计算方法,即,若pt的项数为n,x*的项数为d,ptmp为pt表的一个副本,作为一个临时数组在add函数中使用,用于更新pt表的值;
则pt=add(pt,x*)的计算方法包括:
步骤s310,复制pt表到pt表的一个副本ptmp中,令i=1,进行步骤s320;
步骤s320,j是循环语句中的循环变量,表示当前循环语句中正在处理的是x取值为aj时的情况,令j=1,进行步骤s330;
步骤s330,令ptmp[i]=ptmp[i]-pt[i]*x*[2][j],进行步骤s340;
步骤s340,设置变量num=i+x*[1][j]/x0,num表示当前i,j取值下新的资源使用量情况,进行步骤s350;
步骤s350,若num<n,进行步骤s360,否则,进行步骤s370;
步骤s360,令ptmp[num]=ptmp[num]+pt[i]*x*[2][j],转到步骤s380;
步骤s370,令ptmp[n]=ptmp[n]+pt[i]*x*[2][j],转到步骤s380;
步骤s380,令j=j+1,若j>d,进行步骤390,否则,转到步骤330;
步骤s390,令i=i+1,若i<n,转到步骤320,否则,进行步骤410;
步骤s410,将ptmp中各项的值相应的复制到pt表中;
步骤s420,过程结束。
综上所述,本发明提供了一种基于虚拟化的动态资源管理方法,其中,所述基于虚拟化的动态资源管理方法通过依据虚拟机的资源需求的随机变量完成对虚拟机的部署。在虚拟机的资源需求动态变化且需预知的情况下,将虚拟机的资源需求用随机变量的形式部署到物理机以及从物理机进行移除,从而实现将资源需求动态变化的虚拟机部署到物理机当中,同时,物理机有较高的资源利用效率。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。