发明内容
鉴于上述问题,本发明实施例提供一种实现虚拟机真实设备调度的方法及装置,以合理调度真实设备的闲散带宽,保证能最有效的满足用户的需求,从而保证服务的质量。
为了解决上述技术问题,本发明实施例提供的一种实现虚拟机真实设备调度的方法,其包括:
检测当前目标虚拟机的连接数变化量;
将所述连接数变化量转换为对应的真实设备变化量;
根据所述真实设备变化量确定当前的真实设备变化趋势级别;
根据当前的真实设备变化趋势级别相应对分配给该目标虚拟机的真实设备进行调度。
其中,检测目标虚拟机的连接数变化量包括:
按照指定统计周期时间对目标虚拟机的连接数进行采样;
将当前统计周期时间内采样得到的连接数与前一统计周期时间内采样得到的连接数进行比较确定当前目标虚拟机的连接数变化量。
其中,将所述连接数变化量转换为对应的真实设备变化量包括:
将所述连接数变化量转换为对应的带宽变化量;
将所述带宽变化量转换为对应的真实设备变化量。
其中,根据所述真实设备变化量确定当前的真实设备变化趋势级别包括:
根据真实设备变化量确定真实设备变化所对应的基数数目;
根据真实设备变化所对应的基数数目和当前分配窗口大小所对应的基数数目确定当前的真实设备变化趋势级别。
其中,根据真实设备变化所对应的基数数目和当前分配窗口大小所对应的基数数目确定当前的真实设备变化趋势级别包括:
若所述真实设备变化所对应的基数数目值大于零,且所述真实设备变化所对应的基数数目值大于当前分配窗口大小所对应的基数数目,则确定当前的真实设备变化趋势级别为快速增加趋势级别;
若所述真实设备变化所对应的基数数目大于零,且所述真实设备变化所对应的基数数目小于当前分配窗口大小所对应的基数数目与调整门限阈值系数的乘积,则确定当前的真实设备变化趋势为基本稳定趋势级别;
若所述真实设备变化所对应的基数数目大于零,且所述真实设备变化所对应的基数数目大于当前分配窗口大小所对应基数数目与调整门限阈值系数的乘积,并小于当前分配窗口大小所对应的基数数目,则确定当前的真实设备变化趋势为缓慢增加趋势级别;
若所述真实设备变化所对应的基数数目大于零,且富余至少一倍以上当前分配窗口大小所对应基数数目的带宽,则确定当前的真实设备变化趋势为富余趋势级别;
若所述真实设备变化所对应的基数数目小于零,且所述真实设备变化所对应的基数数目小于负的当前分配窗口大小所对应的基数数目,则确定当前的真实设备变化趋势级别为快速减少趋势级别;
若所述真实设备变化所对应的基数数目小于零,且所述真实设备变化所对应的基数数目大于负的当前分配窗口大小所对应的基数数目与调整门限阈值系数的乘积,则确定当前的真实设备变化趋势为基本稳定趋势级别;
若所述真实设备变化所对应的基数数目小于零,且所述真实设备变化所对应的基数数目小于负的当前分配窗口大小所对应的基数数目与调整门限阈值系数的乘积,并大于负的当前分配窗口大小所对应的基数数目,则确定当前的真实设备变化趋势为缓慢减少趋势级别。
其中,对分配给该目标虚拟机的真实设备进行调度包括:
对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整。
其中,真实设备变化趋势级别为快速增加趋势级别;
对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
调整分配窗口大小为当前值的两倍;
给目标虚拟机新分配调整后的分配窗口大小所对应基数数目所代表的数量的真实设备。
其中,真实设备变化趋势级别为缓慢增加趋势级别;
对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
保持当前的分配窗口大小不变;
给目标虚拟机新分配当前分配窗口大小所对应基数数目所代表的数量的真实设备。
其中,真实设备变化趋势级别为基本稳定趋势级别;
对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
保持当前的分配窗口大小不变;
判断当前需要的带宽总量是否大于所有真实设备可提供的带宽总量,若判断结果为是,则给目标虚拟机新分配当前分配窗口大小所对应基数数目所代表的数量的真实设备,否则,继续保持目标虚拟机当前的真实设备数量。
其中,真实设备变化趋势级别为缓慢减少趋势级别;
对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
保持当前的分配窗口大小不变;
以基数为单位回收目标虚拟机中全部没有客户端连接的真实设备组。
其中,真实设备变化趋势级别为快速减少趋势级别;
对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
调整分配窗口大小为当前值的一半,如果新的值不是一个整数,则向上取整数;
以基数为单位回收目标虚拟机中全部没有客户端连接的真实设备组。
其中,真实设备变化趋势级别为富余趋势级别;
对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
调整分配窗口大小为当前值的一半,如果新值不是整数,则向上取整数;
以基数为单位回收目标虚拟机中全部没有客户端连接的真实设备组。
其中,对目标虚拟机的真实设备数量按照下述任一种方式进行初始分配:
全部分配方式;折半分配方式、最小分配方式以及中间量分配方式。
根据本发明的另一方面,本发明实施例提供的一种实现虚拟机真实设备调度的装置,其包括:
检测处理模块,用于检测当前目标虚拟机的连接数变化量;
转换处理模块,用于将所述连接数变化量转换为对应的真实设备变化量;
真实设备变化趋势级别确定处理模块,用于根据所述真实设备变化量确定当前的真实设备变化趋势级别;
调度处理模块,根据当前的真实设备变化趋势级别相应对分配给该目标虚拟机的真实设备进行调度。
其中,检测处理模块包括:
采样子模块,用于按照指定统计周期时间对目标虚拟机的连接数进行采样;
第一确定子模块,用于将当前统计周期时间内采样得到的连接数与前一统计周期时间内采样得到的连接数进行比较确定当前目标虚拟机的连接数变化量。
其中,转换处理模块包括:
带宽变化量转换子模块,用于将所述连接数变化量转换为对应的带宽变化量;
真实设备变化量转换子模块,用于将所述带宽变化量转换为对应的真实设备变化量。
其中,真实设备变化趋势级别确定处理模块包括:
真实设备变化基数数目确定子模块,用于根据真实设备变化量确定真实设备变化所对应的基数数目;
第二确定子模块,根据真实设备变化所对应的基数数目和当前分配窗口大小所对应的基数数目确定当前的真实设备变化趋势级别。
其中,第二确定子模块采用下述方式确定当前的真实设备变化趋势级别:
若所述真实设备变化所对应的基数数目大于零,且所述真实设备变化所对应的基数数目大于当前分配窗口大小所对应的基数数目,则确定当前的真实设备变化趋势级别为快速增加趋势级别;
若所述真实设备变化所对应的基数数目大于零,且所述真实设备变化所对应的基数数目小于当前分配窗口大小所对应的基数数目与调整门限阈值系数的乘积,则确定当前的真实设备变化趋势为基本稳定趋势级别;
若所述真实设备变化所对应的基数数目大于零,且所述真实设备变化所对应的基数数目大于当前分配窗口大小所对应的基数数目与调整门限阈值系数的乘积,并小于当前分配窗口大小所对应的基数数目,则确定当前的真实设备变化趋势为缓慢增加趋势级别;
若所述真实设备变化所对应的基数数目大于零,且富余至少一倍以上当前分配窗口大小所对应基数数目的带宽,则确定当前的真实设备变化趋势为富余趋势级别;
若所述真实设备变化所对应的基数数目小于零,且所述真实设备变化所对应的基数数目小于负的当前分配窗口大小所对应的基数数目,则确定当前的真实设备变化趋势级别为快速减少趋势级别;
若所述真实设备变化所对应的基数数目小于零,且所述真实设备变化所对应的基数数目大于负的当前分配窗口大小所对应的基数数目与调整门限阈值系数的乘积,则确定当前的真实设备变化趋势为基本稳定趋势级别;
若所述真实设备变化所对应的基数数目小于零,且所述真实设备变化所对应的基数数目小于负的当前分配窗口大小所对应的基数数目与调整门限阈值系数的乘积,大于负的当前分配窗口大小所对应的基数数目,则确定当前的真实设备变化趋势为缓慢减少趋势级别。
其中,调度处理模块进行调度包括对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整。
其中,真实设备变化趋势级别为快速增加趋势级别;
调度处理模块对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
调整分配窗口大小为当前值的两倍;
给目标虚拟机新分配调整后的分配窗口大小所对应基数数目所代表的数量的真实设备。
其中,真实设备变化趋势级别为缓慢增加趋势级别;
调度处理模块对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
保持当前的分配窗口大小不变;
给目标虚拟机新分配当前分配窗口大小所对应基数数目所代表的数量的真实设备。
其中,真实设备变化趋势级别为基本稳定趋势级别;
调度处理模块对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
保持当前的分配窗口大小不变;
判断当前需要的带宽总量是否大于所有真实设备可提供的带宽总量,若判断结果为是,则给目标虚拟机新分配当前分配窗口大小所对应基数数目所代表的数量的真实设备,否则,继续保持目标虚拟机当前的真实设备数量。
其中,真实设备变化趋势级别为缓慢减少趋势级别;
调度处理模块对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
保持当前的分配窗口大小不变;
以基数为单位回收目标虚拟机中全部没有客户端连接的真实设备组。
其中,真实设备变化趋势级别为快速减少趋势级别;
调度处理模块对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
调整分配窗口大小为当前值的一半,如果新值不是整数,则向上取整;
以基数为单位回收目标虚拟机中全部没有客户端连接的真实设备组。
其中,真实设备变化趋势级别为富余趋势级别;
调度处理模块对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
调整分配窗口大小为当前值的一半,如果新值不是整数,则向上取整;
以基数为单位回收目标虚拟机中全部没有客户端连接的真实设备组。
其中,调度处理模块还对目标虚拟机的真实设备数量按照下述任一种方式进行初始分配:
全部分配方式;折半分配方式、最小分配方式以及中间量分配方式。
根据本发明提供的实现虚拟机真实设备调度的方法及装置,其通过检测当前目标虚拟机的连接数变化量;将所述连接数变化量转换为对应的真实设备变化量;根据所述真实设备变化量确定当前的真实设备变化趋势级别;根据当前的真实设备变化趋势级别相应对分配给该目标虚拟机的真实设备进行调度,由于根据当前的真实设备变化趋势级别进行调度,因此,可以合理的调整真实设备的闲散带宽,保证能最有效的满足用户的需求,从而保证服务的质量。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其为根据本发明实现虚拟机真实设备调度的方法的一个具体实施例流程图。在本实施例中,实现虚拟机真实设备调度的方法主要包括如下步骤:
步骤S101,检测当前目标虚拟机的连接数变化量;
本实施例中连接数也可以称为并发数,即同时连接到目标虚拟机中各个真实设备的连接数目,具体实现时,检测当前目标虚拟机的连接数变化量可以采用各种方式,例如,结合图2,作为一种可选的实施例,检测目标虚拟机的连接数变化量可采用下述方式,即:
在步骤S1011,按照指定统计周期时间对目标虚拟机的连接数进行采样;然后在步骤S1012,将当前统计周期时间内采样得到的连接数与前一统计周期时间内采样得到的连接数进行比较确定当前目标虚拟机的连接数变化量,实际中当前目标虚拟机的连接数变化量可以是增长的,例如将当前统计周期内的连接数减去前一统计周期内的连接数为正的一个数值,即比较结果为正的一个数值,亦即可以用该正的数值来表示连接数,同样的,当前目标虚拟机的连接数变化量也可以是减少的,例如将当前统计周期内的连接数减去前一统计周期内的连接数为负的一个数值,即比较结果为负的一个数值,亦即可以用该负的数值来表示连接数。
步骤S102,将所述连接数变化量转换为对应的真实设备变化量;
具体实现时,可采用各种转换方式,例如,将所述连接数变化量转换为对应的带宽变化量;将所述带宽变化量转换为对应的真实设备变化量,这里不做具体限定。
步骤S103,根据所述真实设备变化量确定当前的真实设备变化趋势级别;
具体实现时,根据所述真实设备变化量可采用各种计算方式确定当前的真实设备变化趋势级别,例如,可根据真实设备变化量确定真实设备变化所对应的基数数目;然后根据真实设备变化所对应的基数数目和当前分配窗口大小所对应的基数数目确定当前的真实设备变化趋势级别。
需要说明的,本实施例中基数的含义是一种计算单位,一个真实设备RD基数对应的是提供网络服务所需要的最起码的RD设备数量,是一个固定的值,一个虚拟机VM包括了正整数个基数的真实设备,实际中,可通过客户端连接数变化量进行计算,可以得到对应的带宽变化量,进一步的能换算出所对应的真实设备RD基数个数,所以计算结果有可能是一个分数,该种情况下则需进行取整,而当前分配窗口则必须是正整数个真实设备RD基数,表示为虚拟机VM进行下一次分配所需要的总真实设备RD数量,本实施例中真实设备变化量的单位是基数,分配窗口大小的单位也是基数,因此,进行比较时可根据真实设备变化所对应的基数数目和当前分配窗口大小所对应的基数数目确定当前的真实设备变化趋势级别。
具体举例来说,根据真实设备变化所对应的基数数目和当前分配窗口大小所对应的基数数目确定当前的真实设备变化趋势级别可采用但不限于下述方式,即:
若所述真实设备所对应的变化基数数目大于零,且所述真实设备变化所对应的基数数目大于当前分配窗口大小所对应的基数数目,则确定当前的真实设备变化趋势级别为快速增加趋势级别;
若所述真实设备变化所对应的基数数目大于零,且所述真实设备变化所对应的基数数目小于当前分配窗口大小所对应的基数数目与调整门限阈值系数的乘积,则确定当前的真实设备变化趋势为基本稳定趋势级别;
若所述真实设备变化所对应的基数数目大于零,且所述真实设备变化所对应的基数数目大于当前分配窗口大小所对应的基数数目与调整门限阈值系数的乘积,并小于当前分配窗口大小所对应的基数数目,则确定当前的真实设备变化趋势为缓慢增加趋势级别;
若所述真实设备变化所对应的基数数目大于零,且富余至少一倍以上当前分配窗口大小所对应的基数数目的带宽,则确定当前的真实设备变化趋势为富余趋势级别;
若所述真实设备变化所对应的基数数目小于零,且所述真实设备变化所对应的基数数目小于负的当前分配窗口大小所对应的基数数目,则确定当前的真实设备变化趋势级别为快速减少趋势级别;
若所述真实设备变化所对应的基数数目小于零,且所述真实设备变化所对应的基数数目大于负的当前分配窗口大小所对应的基数数目与调整门限阈值系数的乘积,则确定当前的真实设备变化趋势为基本稳定趋势级别;
若所述真实设备变化所对应的基数数目小于零,且所述真实设备变化所对应的基数数目小于负的当前分配窗口大小所对应的基数数目与调整门限阈值系数的乘积,并大于负的当前分配窗口大小所对应的基数数目,则确定当前的真实设备变化趋势为缓慢减少趋势级别。
步骤S104,根据当前的真实设备变化趋势级别相应对分配给该目标虚拟机的真实设备进行调度。
具体实现时,对分配给该目标虚拟机的真实设备进行调度有各种形式,例如可对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整,而其中对真实设备RD调整的依据是分配窗口的大小,即分配窗口的值是若干个RD基数,而每个RD基数对应了固定数目的RD设备,所以分配窗口就表示了一组RD设备的数量。
下面以不同的真实设备变化趋势级别说明调整的过程。
本实施例中若真实设备变化趋势级别为快速增加趋势级别;对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整可包括:
调整分配窗口大小为当前值的两倍;
给目标虚拟机新分配调整后的分配窗口大小所对应基数数目所代表的数量的真实设备。
另外,作为一个具体实施例,本实施例中若真实设备变化趋势级别为缓慢增加趋势级别;
对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
保持当前的分配窗口大小不变;
给目标虚拟机新分配当前分配窗口大小所对应基数数目所代表的数量的真实设备。
另外,作为一个具体实施例,本实施例中若真实设备变化趋势级别为基本稳定趋势级别;
对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
保持当前的分配窗口大小不变;
判断当前需要的带宽总量是否大于所有真实设备可提供的带宽总量,若判断结果为是,则给目标虚拟机新分配当前分配窗口大小所对应基数数目所代表的数量的真实设备,否则,继续保持目标虚拟机当前的真实设备数量。
另外,作为一个具体实施例,本实施例中若真实设备变化趋势级别为缓慢减少趋势级别;
对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
保持当前的分配窗口大小不变;
以基数为单位回收目标虚拟机中全部没有客户端连接的真实设备组。
另外,作为一个具体实施例,本实施例中若真实设备变化趋势级别为快速减少趋势级别;
对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
调整分配窗口大小为当前值的一半,如果新值不是整数,则向上取整;
以基数为单位回收目标虚拟机中全部没有客户端连接的真实设备组。
另外,作为一个具体实施例,本实施例中若真实设备变化趋势级别为富余趋势级别;
对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:
调整分配窗口大小为当前值的一半,如果新值不是整数,则向上取整;
以基数为单位回收目标虚拟机中全部没有客户端连接的真实设备组。
下面以具体的例子进行举例说明。
若用户按自身需求创建若干台虚拟机,并指定每台虚拟机服务器需要多少带宽,本实施例中标记为Tb,由于真实设备(即RD设备)运行的环境不同,实际中可能提供的上行带宽也会有差异,因此,本实施例中使用的是平均可用上行带宽,本实施例中标记为Ab,该值可以根据对RD设备某一时间段的带宽测量得到,也可以根据同样网络环境下的其他RD设备的值来推测,例如同一地域同一网络运营商环境下,大多数设备可以提供的Ab值,然后将该Ab值做为计算标准。则理论上需要的RD设备总数目Rn=Tb/Ab,但这个值还受到一些制约,即:
由于RD设备之间会有一些通信,会消耗一定量的带宽,在分配时的RD设备总数量会略大于理论值,以抵消RD设备之间互相通信带来的损耗,亦即本实施例中Rn>(Tb/Ab+1);
另外,由于RD之间组网方式可以有多种不同的方式,因此存在一个分配基数,本实施例中记为Bn。比如采用对等方式(Peer to Peer)组网,则RD设备之间关系是平等的P2P连接方式,则Bn为1,即RD的最小分配粒度就是一台RD设备。而如果是采用分级方式组网,例如一台RD设备作为顶级节点,然后带动若干台RD设备,例如10台RD设备作为二级节点,则Bn为11,即每次需要分配一个顶级节点,十个二级节点。
下文为叙述方便,描述时将Bn作为最小分配单位,一个Bn数目的RD设备为一组,一次性分配或是回收。
另外,根据虚拟机(VM)服务器对带宽的使用强度,对目标虚拟机的真实设备数量初始固定分配的策略也可以不同,本实施例中对目标虚拟机的真实设备数量按照下述任一种方式进行初始分配,即划分四种基本初始配置:
全部分配方式,即一次性按照客户对虚拟机服务器的带宽要求,分配对应带宽所需要的RD设备,具体实现时,例如每个Bn可提供的服务带宽是Bb,而客户需求是Tb,则分配([Tb/Bb]+1)*Bn的设备数目,其中符号[]表示向下取整,例如,3.3向下取整则为4。
折半分配方式,即首次分配时只分配达到预先定义带宽一半所需要的RD设备,之后视需要,再按照一定的策略进行增加或者是减少,即首次分配([(Tb/2)/Bb]+1)*Bn的设备数目。
最小分配方式,即首次只分配Bn的设备数目。
其他分配方式,例如中间量分配方式,即其他初次分配数小于或等于[Tb/Bb]的分配方式,这种方式分配的RD设备的数目至少与全部分配方式还差一个基数Bn。
另外,本例子中,系统每隔一个固定时间间隔对目标虚拟机的连接数进行一次采样统计,这个时间间隔就是一个统计周期的时间单位,本实施例中记为T,另外,本实施例中设置并维护一个分配窗口,所述分配窗口即调度时按照该窗口大小为基础单位进行调度,例如增加或减少,实际中窗口大小是一个变量,对应的是正整数个基数数目的RD设备,可根据真实设备变化趋势级别进行调整,本实施例中将该分配窗口记为W,以基数为单位,其中窗口大小的初始值是1,即1个基数,1个基数对应的RD设备可以是1个Bn,也可以是N个Bn,这里不做具体限定。
在第一个T后,系统开始计算带宽使用趋势,即启动确定RD设备变化趋势级别,假设连接数变化量为⊿c,即每个统计周期时间T后,将这个时间段内的连接数和上一次统计周期内统计得到的连接数进行比较,两者比较得到的差值即为⊿c,假设每个连接消耗带宽记为Acb,则可以确定带宽变化量为⊿c*Acb;
定义每个分配窗口对应提供的平均带宽为Bb,为描述方便,可将带宽变化值转换为对应的RD设备变化基数数目⊿Bn=(⊿c*Acb)/Bb,需要说明的,RD设备变化基数⊿Bn可以不是整数,而是一个有小数点的分数,本实施例中对真实设备变化趋势级别判断即可针对⊿Bn进行。
具体可分为如下几种情况,预先设定一个调整门限阈值系数Vlimit,所述调整门限阈值系数Vlimit指带宽变化量与调整RD数量的门限阈值,可根据不同业务类型进行测试得到,一般Vlimit远远小于1,另外,本实施例中将存量的连接数记为Tc,存量的已分配基数总数记为TBn。
具体进行调度时,根据⊿Bn是大于0还是小于0,分为两大类,即当⊿Bn<0时有可能会启动回收模式,将没有访问的某组RD设备全部回收,而当⊿Bn>0时,会暂时关闭回收模式,但可能会调整增加目标虚拟机的真实设备的分配窗口大小和调整该目标虚拟机的真实设备的数量,下面具体进行说明。
⊿Bn>0的情况:
若⊿Bn<Vlimit*W,即带宽的变化在门限阈值范围之内,则可判定为带宽状况基本稳定,因此,可确定当前的真实设备变化趋势为基本稳定趋势级别,无需做任何分配操作的调度,保持当前的分配窗口大小所对应的基数数目为W,但需判断当前需要的带宽总量是否大于所有真实设备可提供的带宽总量,若判断结果为是,则给目标虚拟机新分配当前分配窗口大小所对应基数数目的真实设备,否则,继续保持目标虚拟机当前的真实设备数量,即当(Tc+⊿c)*Acb>TBn*Bb,可确定当前需要的带宽总量大于所有RD设备可以提供的带宽总量,因此,需给目标虚拟机分配一个W基数的新RD设备。
若⊿Bn>=Vlimit*W,并且⊿Bn<=W,则可判定当前增长缓慢,因此,可确定当前的真实设备变化趋势为缓慢增加趋势级别,只分配一个W基数的新RD设备,分配窗口大小所对应的基数数目W的值不做调整。
若⊿Bn>W,则可判定当前增长迅速,因此,可确定当前的真实设备变化趋势级别为快速增加趋势级别,需调整分配窗口的大小,例如倍增W的值,并分配一个调整后的W基数的新RD设备。
需要说明的,以上进行调度所分配的RD设备总数有个前提条件,即调度所分配的RD设备总数不会超过预先定义的总RD数目Rn,如果超出,则不会再做任何调整。
对于⊿Bn<0的情况:
对真实设备变化趋势级别的判断与⊿Bn>0时是一样的,但是由于来自客户端的连接可能是分布在不同的RD设备上,所以在回收RD设备时需要避免回收正在使用的RD设备,即只是当某一组基数的RD设备全部都没有连接了,才将整组的RD设备回收,具体的:
若⊿Bn>=-Vlimit*W,即带宽的变化在门限阈值范围之内,则可判定为带宽状况基本稳定,因此,可确定当前的真实设备变化趋势为基本稳定趋势级别,无需做任何分配操作的调度,保持当前的分配窗口大小所对应的基数数目值为W。
若⊿Bn<-Vlimit*W,并且⊿Bn>=-W,则判定为当前减少缓慢级别,因此,可确定当前的真实设备变化趋势为缓慢减少趋势级别,可启动回收模式,将完全没有客户端连接的某些组的RD设备回收,而分配窗口的大小,即W的值不做调整。
若⊿Bn<-W,则判定为当前减少迅速,因此,可确定当前的真实设备变化趋势级别为快速减少趋势级别,可将分配窗口的大小W调整为原来值的一半,即新W=W/2,如果W<1,则设定W=1,即将W的值变为原来的一半,并且将会启动回收模式,将完全没有客户端连接的某些组的RD设备回收。这里缩小W的目的,是为了预防在后续的统计周期连接数再次出现增长的情况下,W的值过大,导致分配过于迅速。
另外,在回收模式的使用上,除了根据⊿Bn<0的情况有可能来触发外,在每个统计周期时间T内,当⊿Bn>0时,还可根据总连接数判断当前分配的RD设备是否过于富余,即当(Tc+⊿c)*Acb<(TBn–nW)*Bb,也就是富余了至少n个以上W基数的带宽,这里n是一个系数,可以根据用户的特征进行动态修正,即对于上述状况,可确定当前的真实设备变化趋势为富余趋势级别,可进行调度,即将分配窗口的新W=W/2,如果W<1,则将W=1,并启动回收模式。
下面说明本发明的另一方面。
参考图3,该图是根据本发明实现虚拟机真实设备调度的装置的一个具体实施例整体示意图,本实施例实现虚拟机真实设备调度的装置主要包括:
检测处理模块1,用于检测当前目标虚拟机的连接数变化量;
本实施例中连接数也可以称为并发数,即同时连接到目标虚拟机中各个真实设备的连接数目,具体实现时,检测当前目标虚拟机的连接数变化量可以采用各种方式,例如,结合图4,作为一种可选的实施例,检测处理模块1可包括:采样子模块11和第一确定子模块12,其中
本实施例的采样子模块11主要用于按照指定统计周期时间对目标虚拟机的连接数进行采样;
而本实施例中的第一确定子模块12主要用于将当前统计周期时间内采样得到的连接数与前一统计周期时间内采样得到的连接数进行比较确定当前目标虚拟机的连接数变化量。
转换处理模块2,用于将所述连接数变化量转换为对应的真实设备变化量;具体实现时,转换处理模块3可采用各种转换方式,例如,作为一个可选的实施例,结合图5,转换处理模块2可包括:带宽变化量转换子模块21和真实设备变化量转换子模块22,其中
本实施例中的带宽变化量转换子模块21主要用于将所述连接数变化量转换为对应的带宽变化量;
而本实施例中的真实设备变化量转换子模块22主要用于将所述带宽变化量转换为对应的真实设备变化量。
真实设备变化趋势级别确定处理模块3,用于根据所述真实设备变化量确定当前的真实设备变化趋势级别;具体实现时,作为一个可选的实施例,结合图6,真实设备变化趋势级别确定处理模块3可包括:真实设备变化基数数目确定子模块31和第二确定子模块32,其中
本实施例中真实设备变化基数数目确定子模块31主要用于根据真实设备变化量确定真实设备变化所对应的基数数目;
而本实施例中第二确定子模块32主要用于根据真实设备变化所对应的基数数目和当前分配窗口大小确定当前的真实设备变化趋势级别。
实际中,第二确定子模块32可采用但不限于下述方式确定当前的真实设备变化趋势级别,即:
若所述真实设备变化所对应的基数数目大于零,且所述真实设备变化所对应的基数数目大于当前分配窗口大小所对应的基数数目,则确定当前的真实设备变化趋势级别为快速增加趋势级别;
若所述真实设备变化所对应的基数数目大于零,且所述真实设备变化所对应的基数数目小于当前分配窗口大小所对应的基数数目与调整门限阈值系数的乘积,则确定当前的真实设备变化趋势为基本稳定趋势级别;
若所述真实设备变化所对应的基数数目大于零,且所述真实设备变化所对应的基数数目大于当前分配窗口大小所对应的基数数目与调整门限阈值系数的乘积,小于当前分配窗口大小所对应的基数数目,则确定当前的真实设备变化趋势为缓慢增加趋势级别;
若所述真实设备变化所对应的基数数目大于零,且富余至少一倍以上当前分配窗口大小所对应基数数目的带宽,则确定当前的真实设备变化趋势为富余趋势级别;
若所述真实设备变化所对应的基数数目小于零,且所述真实设备变化所对应的基数数目小于负的当前分配窗口大小所对应的基数数目,则确定当前的真实设备变化趋势级别为快速减少趋势级别;
若所述真实设备变化所对应的基数数目小于零,且所述真实设备变化所对应的基数数目大于负的当前分配窗口大小所对应的基数数目与调整门限阈值系数的乘积,则确定当前的真实设备变化趋势为基本稳定趋势级别;
若所述真实设备变化所对应的基数数目小于零,且所述真实设备变化所对应的基数数目小于负的当前分配窗口大小所对应的基数数目与调整门限阈值系数的乘积,并大于负的当前分配窗口大小所对应的基数数目,则确定当前的真实设备变化趋势为缓慢减少趋势级别。
需要说明的,上述仅仅是为了一种算法实现的方式,实际中还可以根据具体情况设置其他参数和算法确定真实设备变化趋势,这里不做具体限定。
调度处理模块4,根据当前的真实设备变化趋势级别相应对分配给该目标虚拟机的真实设备进行调度,具体实现时,调度处理模块进行调度可包括对分配给该目标虚拟机的真实设备进行分配窗口大小所对应的基数数目和真实设备数量的调整,实际中还可以采用其他的调度实施方式,这里不做具体限定。
下面以不同的真实设备变化趋势级别说明调度处理模块进行调度的过程。
本实施例中若真实设备变化趋势级别为快速增加趋势级别;调度处理模块4可对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:调整分配窗口大小为当前值的两倍;给目标虚拟机新分配调整后的分配窗口大小所对应基数数目所代表的数量的真实设备。
另外,本实施例中若真实设备变化趋势级别为缓慢增加趋势级别;调度处理模块4对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:保持当前的分配窗口大小不变;给目标虚拟机新分配当前分配窗口大小所对应基数数目所代表的数量的真实设备。
另外,本实施例中若真实设备变化趋势级别为基本稳定趋势级别;调度处理模块4对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:保持当前的分配窗口大小不变;判断当前需要的带宽总量是否大于所有真实设备可提供的带宽总量,若判断结果为是,则给目标虚拟机器新分配当前分配窗口大小所对应基数数目所代表的数量的真实设备,否则,继续保持目标虚拟机器当前的真实设备数量。
另外,本实施例中若真实设备变化趋势级别为缓慢减少趋势级别;调度处理模块4对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:保持当前的分配窗口大小不变;回收目标虚拟机中全部没有客户端连接的真实设备组,且回收按照基数单位进行。
另外,本实施例中若真实设备变化趋势级别为快速减少趋势级别;调度处理模块4对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:调整分配窗口大小为当前值的一半,如果新值不是一个整数,则向上取整数;回收目标虚拟机中全部没有客户端连接的真实设备组,且回收按照基数单位进行。
另外,本实施例中若真实设备变化趋势级别为富余趋势级别;调度处理模块4对分配给该目标虚拟机的真实设备进行分配窗口大小和真实设备数量的调整包括:调整分配窗口大小为当前值的一半,如果新值不是一个整数,则向上取整数;回收目标虚拟机中全部没有客户端连接的真实设备组,且回收按照基数单位进行。
需要说明的,本实施例中调度处理模块还可以对目标虚拟机的真实设备数量按照下述任一种方式进行初始分配,即:
全部分配方式;折半分配方式、最小分配方式以及中间量分配方式。
上述全部分配方式、折半分配方式、最小分配方式以及中间量分配方式的具体说明可参考前述说明,这里不再赘述。
在上述所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。