虚拟机调度器、调度需求管理器及方法和虚拟机调度系统的制作方法_4

文档序号:9235329阅读:来源:国知局
请求和所述其它调度需求管理器15的虚拟机迁出的请求是否能够匹配。
[0158]在该调度请求未包含表示所述调度需求管理器15a与邻近调度需求管理器15b达成了调度决议的信息的情况下,等待来自其它调度需求管理器的匹配的调度请求一定时间(例如10分钟,可以预先设定)。
[0159]作为一个具体实施例,如果由调度需求管理器15a传来的调度请求未包含表示所述调度需求管理器15a与邻近调度需求管理器15b达成了调度决议的信息,并且该调度请求表示需要迁出虚拟机14以减轻CPU负荷30 %,则虚拟机调度器12a开始监听来自其它调度需求管理器15c的表示需要迁入虚拟机的调度请求。如果监听到来自其它调度需求管理器15c的表示需要迁入虚拟机的调度请求表示要迁入虚拟机14以增加CPU负荷30%或更多,则判断为能够匹配,则分别向所述调度需求管理器15a和所述其它调度需求管理器15发送有关对方的信息,并发送调度指令。
[0160]在分别向所述调度需求管理器15a和所述其它调度需求管理器15发送有关对方的信息后,也可以等待所述调度需求管理器15a和所述其它调度需求管理器15应答后,发送调度指令。
[0161]作为另一个具体实施例,如果由调度需求管理器15a传来的调度请求未包含表不所述调度需求管理器15a与邻近调度需求管理器15b达成了调度决议的信息,并且该调度请求表示需要迁入虚拟机14以增加CPU负荷30 %,则虚拟机调度器12a开始监听来自其它调度需求管理器15c的表示需要迁出虚拟机的调度请求。如果监听到来自其它调度需求管理器15c的表示需要迁出虚拟机的调度请求表示要迁出虚拟机14以减少CPU负荷30%或更少,则判断为能够匹配,则分别向所述调度需求管理器15a和所述其它调度需求管理器15发送有关对方的信息,并发送调度指令。
[0162]在判断为所述调度需求管理器15a的虚拟机的调度请求和所述其它调度需求管理器15的调度请求不能够匹配时(ST505:否),可以生成错误信息,通知管理员,也可以向发来调度请求的调度需求管理器15发送错误信息,也可以进行如图5c那样的操作(ST5002)。
[0163]图5c示出在虚拟机调度系统中有两级或更多级虚拟机调度器的情况下的底层虚拟机调度器的虚拟机调度方法的流程图。更具体地说,图5c是图5a的ST502为“否”的情况下的一个实施例的虚拟机调度方法的流程图。特别需要说明的是,如上所述在图5a的ST502为“否”的情况下,不限于图5c的虚拟机调度方法,也可以生成错误信息,通知管理员,也可以向发来调度请求的调度需求管理器15发送错误信息。
[0164]图5c的ST501-ST503与图5a中的ST501-ST503完全相同,故不进行重复说明。
[0165]在调度请求未包含表示所述调度需求管理器15a与邻近调度需求管理器15b达成了调度决议的信息的情况下(ST502中判断为“否”),判断是否存在上一层虚拟机调度器12(ST507),在存在上一层虚拟机调度器12的情况下,将上述调度请求上报给上一层虚拟机调度器12,并将从上一层虚拟机调度器12接收到的有关其它调度需求管理器15a的信息和调度指令传回所述调度需求管理器15(ST508)。
[0166]另外,也可以在图5b的ST505中判断为“否”的情况下,进行上述ST507、ST508。具体来说,如果在一定时间内(例如10分钟)没有找到匹配的调度请求,将从调度需求管理器15a传来的迁出虚拟机14的调度请求继续上报给上一级虚拟机调度器12,该上级虚拟机调度器12也可能是顶层虚拟机调度器11 (两级虚拟机调度器的情况),并将从上一层虚拟机调度器12接收到的有关其它调度需求管理器15a的信息和调度指令传回所述调度需求管理器15。
[0167]图6为本发明的一个实施例的非底层虚拟机调度器的虚拟机调度方法的流程图。
[0168]图6a示出虚拟机调度系统中的非底层虚拟机调度器的一个实施例的虚拟机调度方法的流程图。
[0169]非底层虚拟机调度器11 (或顶层虚拟机调度器11)监听来自两个或更多个下一层虚拟机调度器12的调度请求(ST601),所述调度请求包括将虚拟机迁出的请求和将虚拟机迁入的请求,根据来自一个下一层虚拟机调度器12a的虚拟机迁出的请求和另一个下一层虚拟机调度器12m的虚拟机迁入的请求的需求量,判断所述一个下一层虚拟机调度器12a的虚拟机迁出的请求和所述另一个下一层虚拟机调度器12m的虚拟机迁入的请求是否能够匹配(ST602),如果所述一个下一层虚拟机调度器12a的虚拟机迁出的请求和所述另一个下一层虚拟机调度器12m的虚拟机迁入的请求能够匹配(ST602 是”),则分别向所述一个下一层虚拟机调度器12a和所述另一个下一层虚拟机调度器12m发送有关对方调度请求中的有关调度需求管理器的信息,并发送调度指令(ST603)。
[0170]在一个实施例,非底层虚拟机调度器11接收来自下一层虚拟机调度器12a的表示迁出虚拟机14的需求的调度请求,该调度请求表示调度需求管理器15a需要迁出虚拟机14以减轻CPU负荷30%,则非底层虚拟机调度器11开始寻找从其它下一级虚拟机调度器12传来的表示迁入虚拟机14的需求的调度请求,该迁入虚拟机14的调度请求需要满足迁入虚拟机14以增加CPU负荷30%或更多的要求,随后将第一个找到的发来这种需求的调度需求管理器15m的信息通知给虚拟机调度器12a,并将调度需求管理器15a的信息通知给虚拟机调度器12m,并发送调度指令。
[0171]在将调度需求管理器15m的信息通知给虚拟机调度器12a,并将调度需求管理器15a的信息通知给虚拟机调度器12m后,也可以等待虚拟机调度器12a和虚拟机调度器12m的应答后,发送调度指令。
[0172]如果在一定时间内(例如10分钟)没有找到匹配的需求,也可以将配对失败结果通知给虚拟机调度器12a或/和虚拟机调度器12m。
[0173]作为另一个实施例,非底层虚拟机调度器11接收来自下一层虚拟机调度器12a的表示迁入虚拟机14的需求的调度请求,该调度请求表示调度需求管理器15a需要迁入虚拟机14以增加CPU负荷30%,则非底层虚拟机调度器11开始寻找从其它下一级虚拟机调度器12传来的表示迁出虚拟机14的需求的调度请求,该迁出虚拟机14的调度请求需要满足迁入虚拟机14以减少CPU负荷30%或更少的要求,随后将第一个找到的发来这种需求的调度需求管理器15m的信息通知给虚拟机调度器12a,并将调度需求管理器15a的信息通知给虚拟机调度器12m,并发送调度指令。
[0174]如果所述一个下一层虚拟机调度器12a的虚拟机迁出的请求和所述另一个下一层虚拟机调度器12m的虚拟机迁入的请求不能够匹配(ST602 否”),可以生成错误信息,通知管理员,也可以向发来调度请求的调度需求管理器15发送错误信息,也可以进行如图6b那样的操作(ST6001)。
[0175]图6b示出多级虚拟机调度系统中的中间层虚拟机调度器或顶层虚拟机调度器的一个实施例的虚拟机调度方法的流程图。更具体地说,图6b是图6a的ST602为“否”的情况下的一个实施例的虚拟机调度方法的流程图。特别需要说明的是,如上所述在图6a的ST602为“否”的情况下,不限于图6b的虚拟机调度方法,也可以生成错误信息,通知管理员,也可以向发来调度请求的调度需求管理器15发送错误信息。
[0176]图6b的ST601-ST603与图6a中的ST601-ST603完全相同,故不进行重复说明。
[0177]如果所述一个下一层虚拟机调度器12a的虚拟机迁出的请求和所述另一个下一层虚拟机调度器12m的虚拟机迁入的请求不能够匹配(ST602 否”),虚拟机调度器11判断是否存在上一层虚拟机调度器(ST604)。
[0178]在存在上一层虚拟机调度器的情况下(ST604 是”),将上述调度请求上报给上一层虚拟机调度器,并将从上一层虚拟机调度器接收到的有关其它调度需求管理器15的信息和调度指令传回下一层虚拟机调度器12a(ST605)。
[0179]图7示出本发明的一个实施例的调度需求管理方法的流程图。
[0180]以下,以调度需求管理器15a为例子进行说明调度需求管理器15执行的四个动作:
[0181](I)从物理机监控器13a获取物理服务器的负荷信息(ST701)。
[0182](2)从物理机监控器13获取物理服务器的负荷信息,根据该物理服务器的负荷信息(例如有关CPU、内存的信息)计算物理服务器的负荷状态(ST702),并判断是否需要虚拟机的调度(ST703)。负荷状态表示例如CPU负荷过大、CPU负荷过小或CPU负荷正常,或者内存负荷过大、内存负荷过小或内存负荷正常。物理服务器的负荷信息也可以是除了 CPU、内存之外的其它的有关物理服务器的信息。
[0183](3)在判断为需要虚拟机14的调度(虚拟机14的迁出或迁入)的情况下(ST703:“是”),与邻近调度需求管理器15b通信,询问是否接受虚拟机14的调度(ST704)。
[0184]在判断为不需要虚拟机14的调度(虚拟机14的迁出或迁入)的情况下(ST703:“否”),例如可以返回到步骤ST701。
[0185]在从所述邻近调度需求管理器15b接收到包含表示所述邻近调度需求管理器15b接受虚拟机的调度的信息的情况下(ST705 是”),与所述邻近调度需求管理器15b达成调度决议,并向虚拟机调度器12a发送包含表示所述调度需求管理器15a与邻近调度需求管理器15b达成了调度决议的信息和有关所述邻近调度需求管理器15b的信息的虚拟机的调度请求(ST706)。
[0186]在从所述邻近调度需求管理器15b接收到未包含表示所述邻近调度需求管理器15b接受虚拟机的调度的信息的情况下(ST705 否”),向所述虚拟机调度器12a发送未包含表示所述调度需求管理器15a与邻近调度需求管理器15b达成了调度决议的信息的虚拟机的调度请求(ST707)。
[0187]所述调度需求管理器15a可以向其它调度需求管理器15发送响应时间测试请求,获取其它调度需求管理器15的响应时间,按照响应时间从短到长的顺序,依次询问其它调度需求管理器15是否接受虚拟机的调度,直到其它调度需求管理器15中的一个调度需求管理器15接受虚拟机的调度,所述调度需求管理器15a与接受虚拟机的调度的其它虚拟机调度器15达成调度决议,并视为所述调度需求管理器15a与邻近调度需求管理器15达成了调度决议,如果在规定的时间内,所述调度需求管理器15a未接收到接受虚拟机的调度的信息,则视为所述调度需求管理器15a与邻近调度需求管理器15未达成调度决议。
[0188]在上述方案中,所述调度需求管理器15a也可以同时询问响应时间最短的某几个(例如3台,可以跟据网络的延迟情况具体修改为1、2、4…台等)其它调度需求管理器15是否接受虚拟机的调度,并与最早发来接受虚拟机的调度的信息的调度需求管理器15达成调度决议,如果在规定的时间内,所述调度需求管理器15a未接收到接受虚拟机的调度的信息,则视为所述调度需求管理器15a与邻近调度需求管理器15未达成调度决议。
[0189]在上述方案中,所述调度需求管理器15a也可以不发送响应时间测试请求,而直接询问与同一个虚拟机调度器12连接的其它调度需求管理器15是否接受虚拟机的调度,并与最早发来接受虚拟机的调度的信息的调度需求管理器15达成调度决议。
[0190]与邻近调度需求管理器通信,询问是否接受虚拟机的
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1