基于Openstack的Nova组件消息队列调度方法、系统和交换优化器与流程

文档序号:11156391阅读:615来源:国知局
基于Openstack的Nova组件消息队列调度方法、系统和交换优化器与制造工艺
本发明涉及通信
技术领域
,特别涉及一种基于Openstack的Nova组件消息队列调度方法和调度系统。
背景技术
:云计算现已成为全球IT行业发展的重要趋势,而云基础设施管理技术是基于虚拟化技术实现的供政府/企业/个人使用的云资源平台,它将网络、存储、计算等一系列虚拟资源进行组合,供政府/企业/个人用户按需使用。当前,云基础设施管理已经成为全球政府/企业云产业界公认的发展重点;国际和国内的云产业巨头加快技术研发、企业转型和联盟合作以抢占云计算发展的主导权和新兴市场空间。现有云计算应用系统随着云计算应用业务的快速增长,伴之产生的消息队列阻塞等问题日益突出。图1为现有技术中的Nova组件消息队列调度系统的结构示意图,如图1所示,包括:交换优化器8和若干个彼此独立的Nova组件消息队列9,现有的交换优化器8主要采用广播式、直接式等转发方式来转发Nova消息,现有的这种转发Nova消息容易出现Nova组件消息队列9阻塞程度高的问题。在这种情况下,面对日益迫切的云计算发展需求,基于Openstack的Nova组件消息队列优化调度系统对于云计算的迅速持续发展具有重要意义。技术实现要素:本发明旨在至少解决现有技术中存在的技术问题之一,提出了一种基于Openstack的Nova组件消息队列调度方法、系统和交换优化器。为实现上述目的,本发明提供了一种基于Openstack的Nova组件消息队列调度方法,包括:步骤S1、获取各Nova组件消息队列当前的消息负载比率和单位时间消息处理量;步骤S2、根据各Nova组件消息队列当前的消息负载比率和单位时间消息处理量确定当前最优Nova组件消息队列;步骤S3、将新来的Nova消息调度至所述当前最优Nova组件消息队列,以供所述最优Nova组件消息队列进行存储和处理。可选地,所述步骤S2包括:步骤S201、根据各Nova组件消息队列当前的消息负载比率和单位时间消息处理量生成各Nova组件消息队列的初始消息队列复合向量其中,Vi0为第i个Nova组件消息队列的初始消息队列复合向量,为第i个Nova组件消息队列的当前的消息负载比率,为第i个Nova组件消息队列的当前的单位时间消息处理量;步骤S202、建立迭代模型,其中迭代评价函数:迭代等式:其中,k为迭代步数且k∈[1,d],d为预先设置的最大迭代次数;n为Nova组件消息队列的总数,为第k次迭代时计算出的消息队列优化调度评价值;Vik为对应于第k次迭代时所计算出的第i个Nova组件消息队列的Nova组件消息队列复合向量,为对应于第k次迭代时所计算出的第i个Nova组件消息队列的消息负载比率,βik为对应于第k次迭代时所计算出的第i个Nova组件消息队列的单位时间消息处理量;xik表示在第k次迭代时第i个Nova组件消息队列是否在处理新来的Nova消息,若第k次迭代时第i个Nova组件消息队列在处理新来的Nova消息,则xik取值为1,否则,xik取值为0;θ和σ分别为消息负载比率和单位时间消息处理量调节因子,且θ∈(0,1),σ∈(0,1);当k取值为1时,当k取值大于1时,为Nova组件消息队列复合向量Vik-1的变差立方值期望,ζ为调节因子,且ζ∈(0,1),为Nova组件消息队列复合向量Vik-1的二阶中心矩,步骤S203、针对上述迭代模型,输入初始值k=0,并计算出f0(xik)的值;步骤S204、对k进行加1处理,并根据迭代等式计算出第k次迭代时各Nova组件消息队列复合向量Vik;步骤S205、根据计算出的各Nova组件消息队列复合向量Vik,计算出第k次迭代时对应的消息队列优化调度评价值fk(xik);步骤S206、判断第k次迭代时对应的消息队列优化调度评价值fk(xik)是否满足如下条件:其中,ε∈(0,1);若满足,则执行步骤S208;否则,执行步骤S207。步骤S207、判断k是否小于d;若判断出k小于d,则继续执行上述步骤S204;否则,执行步骤S208。步骤S208、输出当前的k的值,并确定第k次迭代时所选择的Nova组件消息队列为所述最优Nova组件消息队列。可选地,还包括:步骤S4、检测各所述Nova组件消息队列的存储空间是否已满;若存在存储空间已满的Nova组件消息队列,则执行步骤S5;步骤S5、控制存储空间已满的Nova组件消息队列将部分待处理的Nova消息发送至预先设置的共享消息队列中,以供共享消息队列对所述待处理的Nova消息进行处理。可选地,还包括:步骤S6、检测所述共享消息队列的存储空间是否已满;若检测出所述共享消息队列的存储空间已满,则执行步骤S7;步骤S7、控制所述共享消息队列将部分待处理的Nova消息发送至交换优化器,以供所述交换优化器将接收到待处理的Nova消息重新进行调度。为实现上述目的,本发明还提供了一种交换优化器,包括:第一获取模块,用于获取各Nova组件消息队列当前的消息负载比率和单位时间消息处理量;确定模块,用于根据各Nova组件消息队列当前的消息负载比率和单位时间消息处理量确定当前最优Nova组件消息队列;调度模块,用于将新来的Nova消息调度至所述当前最优Nova组件消息队列,以供所述最优Nova组件消息队列进行存储和处理。可选地,所述确定模块包括:第一生成单元,用于根据各Nova组件消息队列当前的消息负载比率和单位时间消息处理量生成各Nova组件消息队列的初始消息队列复合向量其中,Vi0为第i个Nova组件消息队列的初始消息队列复合向量,为第i个Nova组件消息队列的当前的消息负载比率,为第i个Nova组件消息队列的当前的单位时间消息处理量;建模单元,用于建立迭代模型,其中迭代评价函数:迭代等式:其中,k为迭代步数且k∈[1,d],d为预先设置的最大迭代次数;n为Nova组件消息队列的总数,fk(xik)为第k次迭代时计算出的消息队列优化调度评价值;Vik为对应于第k次迭代时所计算出的第i个Nova组件消息队列的Nova组件消息队列复合向量,为对应于第k次迭代时所计算出的第i个Nova组件消息队列的消息负载比率,βik为对应于第k次迭代时所计算出的第i个Nova组件消息队列的单位时间消息处理量;xik表示在第k次迭代时第i个Nova组件消息队列是否在处理新来的Nova消息,若第k次迭代时第i个Nova组件消息队列在处理新来的Nova消息,则xik取值为1,否则,xik取值为0;θ和σ分别为消息负载比率和单位时间消息处理量调节因子,且θ∈(0,1),σ∈(0,1);当k取值为1时,当k取值大于1时,为Nova组件消息队列复合向量Vik-1的变差立方值期望,ζ为调节因子,且ζ∈(0,1),为Nova组件消息队列复合向量Vik-1的二阶中心矩,初始值输入单元,用于针对上述迭代模型,输入初始值k=0,并计算出f0(xik)的值;向量计算单元,用于对k进行加1处理,并根据迭代等式计算出第k次迭代时各Nova组件消息队列复合向量Vik;评价值计算单元,用于根据计算出的各Nova组件消息队列复合向量Vik,计算出第k次迭代时对应的消息队列优化调度评价值fk(xik);第一判断单元,用于判断第k次迭代时对应的消息队列优化调度评价值fk(xik)是否满足如下条件:其中,ε∈(0,1);第二判断单元,用于若第一判断单元判断出第k次迭代时对应的消息队列优化调度评价值fk(xik)不满足相应条件时,判断k是否小于d;输出单元,用于当第一判断单元判断判断出第k次迭代时对应的消息队列优化调度评价值fk(xik)满足相应条件时,或者所述第二判断单元判断出k等于d时,输出当前的k的值,并确定第k次迭代时所选择的Nova组件消息队列为所述最优Nova组件消息队列。可选地,还包括:第一检测模块,用于检测各所述Nova组件消息队列的存储空间是否已满;第一控制模块,用于若所述第一检测模块检测出存在存储空间已满的Nova组件消息队列时,控制存储空间已满的Nova组件消息队列将部分待处理的Nova消息发送至预先设置的共享消息队列中,以供共享消息队列对所述待处理的Nova消息进行处理。可选地,还包括:第二检测模块,用于检测所述共享消息队列的存储空间是否已满;第二控制模块,用于若检测出所述共享消息队列的存储空间已满时,则控制所述共享消息队列将部分待处理的Nova消息发送至交换优化器,以供所述交换优化器将接收到待处理的Nova消息重新进行调度。为实现上述目的,本发明还提供了一种基于Openstack的Nova组件消息队列调度系统,包括上述的交换优化器。可选地,还包括:若干个Nova组件消息队列和至少一个共享消息队列。本发明具有以下有益效果:本发明提供了一种基于Openstack的Nova组件消息队列调度方法、系统和交换优化器,通过获取各Nova组件消息队列当前的消息负载比率和单位时间消息处理量,并根据各Nova组件消息队列当前的消息负载比率和单位时间消息处理量确定当前最优Nova组件消息队列;最后将新来的Nova消息调度至当前最优Nova组件消息队列,以供最优Nova组件消息队列进行存储和处理,可有效避免出现网络拥塞。此外,共享消息队列的设置,可有效避免数据丢失。附图说明图1为现有技术中的Nova组件消息队列调度系统的结构示意图;图2为本发明实施例一提供的一种基于Openstack的Nova组件消息队列调度方法的流程图;图3为本发明中迭代运算的流程图;图4为本发明实施例二提供的一种基于Openstack的Nova组件消息队列调度方法的流程图;图5为本发明实施例三提供的一种交换优化器的结构示意图;图6为本发明实施例四提供的一种基于Openstack的Nova组件消息队列调度系统的结构示意图。具体实施方式为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图对本发明提供的一种基于Openstack的Nova组件消息队列调度方法、系统和交换优化器进行详细描述。图2为本发明实施例一提供的一种基于Openstack的Nova组件消息队列调度方法的流程图,如图2所示,该调度方法包括:步骤S1、获取各Nova组件消息队列当前的消息负载比率和单位时间消息处理量。其中,第i个Nova组件消息队列的当前的消息负载比率记为第i个Nova组件消息队列的当前的单位时间消息处理量记为步骤S2、根据各Nova组件消息队列当前的消息负载比率和单位时间消息处理量确定当前最优Nova组件消息队列。图3为本发明中迭代运算的流程图,如图3所示,可选地,步骤S2包括:步骤S201、根据各Nova组件消息队列当前的消息负载比率和单位时间消息处理量生成各Nova组件消息队列的初始消息队列复合向量其中,Vi0为第i个Nova组件消息队列的初始消息队列复合向量。步骤S202、建立迭代模型,其中迭代评价函数:迭代等式:其中,k为迭代步数且k∈[1,d],d为预先设置的最大迭代次数;n为Nova组件消息队列的总数;fk(xik)为第k次迭代时计算出的消息队列优化调度评价值;Vik为对应于第k次迭代时所计算出的第i个Nova组件消息队列的Nova组件消息队列复合向量,为对应于第k次迭代时所计算出的第i个Nova组件消息队列的消息负载比率;βik为对应于第k次迭代时所计算出的第i个Nova组件消息队列的单位时间消息处理量;xik表示在第k次迭代时第i个Nova组件消息队列是否在处理新来的Nova消息,若第k次迭代时第i个Nova组件消息队列在处理新来的Nova消息,则xik取值为1,否则,xik取值为0;θ和σ分别为消息负载比率和单位时间消息处理量调节因子,且θ∈(0,1),σ∈(0,1);当k取值为1时,当k取值大于1时,为Nova组件消息队列复合向量Vik-1的变差立方值期望,ζ为调节因子,且ζ∈(0,1),为Nova组件消息队列复合向量Vik-1的二阶中心矩,步骤S203、针对上述迭代模型,输入初始值k=0,并计算出f0(xik)的值。步骤S203具体过程如下:对于n个Nova组件消息队列,该Nova信息的转发策略有n种,x10、x20......xn0的赋值情况如下表1所示;表1.转发策略表x10x20......xn0策略110......0策略201......0..............................策略n00......1由上述表1可见,针对每一个策略,x10、x20......xn0中均只有一个取值为1(对应的Nova组件消息队列处理Nova消息),且不同策略中取值为1的xik是不同的。f0(xi0)即表示在第0次迭代时,针对n种策略分别计算其评价值,并选取评价值最小的一种策略作为第0次迭代时的优选策略,同时,基于该优选策略所计算出的评价值作为第0次迭代时计算出的消息队列优化调度评价值。步骤S204、对k进行加1处理,并根据迭代等式计算出第k次迭代时各Nova组件消息队列复合向量Vik。步骤S205、根据计算出的各Nova组件消息队列复合向量Vik,计算出第k次迭代时对应的消息队列优化调度评价值fk(xik)。需要说明的是,与k取值为0时类似,在计算第k次迭代时对应的消息队列优化调度评价值时,同样存在n种策略(如表1所示)。在步骤S205中,在第k次迭代时,针对n种策略分别计算其评价值,并选取评价值最小的一种策略作为第k次迭代时的优选策略,同时,基于该优选策略所计算出的评价值作为第k次迭代时计算出的消息队列优化调度评价值fk(xik)。由上述内容可见,每进行一次迭代计算,均可以确定出该次迭代计算所选择出的优选策略(选择的Nova组件消息队列)。步骤S206、判断第k次迭代时对应的消息队列优化调度评价值fk(xik)是否满足如下条件:其中,ε为预设值,且ε∈(0,1);若满足,则执行步骤S208;否则,执行步骤S207。步骤S207、判断k是否小于d;若判断出k小于d,则继续执行上述步骤S204;否则,执行步骤S208。步骤S208、输出当前的k的值,并确定第k次迭代时所选择的Nova组件消息队列为最优Nova组件消息队列。步骤S3、将新来的Nova消息调度至当前最优Nova组件消息队列,以供最优Nova组件消息队列进行存储和处理。本发明实施例一提供了一种基于Openstack的Nova组件消息队列调度方法,通过获取各Nova组件消息队列当前的消息负载比率和单位时间消息处理量,并根据各Nova组件消息队列当前的消息负载比率和单位时间消息处理量确定当前最优Nova组件消息队列,最后将新来的Nova消息调度至当前最优Nova组件消息队列,以供最优Nova组件消息队列进行存储和处理。本发明的技术方案可根据各Nova组件消息队列的实时情况,选择出当前最优Nova组件消息队列,从而可有效避免出现网络拥塞。实施例二图4为本发明实施例二提供的一种基于Openstack的Nova组件消息队列调度方法的流程图,如图4所示,该调度方法除了包括上述实施例一中的步骤S1~步骤S3外,还包括步骤S4~步骤S7,下面仅对步骤S4~步骤S7进行详细描述。步骤S4、检测各Nova组件消息队列的存储空间是否已满。在现有技术中发现,当某个Nova组件消息队列的存储空间已满后,若继续向该Nova组件消息队列转发Nova消息,则该Nova组件消息队列会出现丢包(位于队列中的部分Nova消息或新转发的Nova消息被丢弃)的现象。为解决上述技术问题,本发明在Nova组件消息队列调度系统中还设置有至少一个共享消息队列。在步骤S4中,若检测出存在存储空间已满的Nova组件消息队列,则执行步骤S5;若检测出不存在存储空间已满的Nova组件消息队列,则表明不会出现丢包。步骤S5、控制存储空间已满的Nova组件消息队列将部分待处理的Nova消息发送至预先设置的共享消息队列中,以供共享消息队列对待处理的Nova消息进行处理。本实施例中,通过将存储空间已满的Nova组件消息队列中的部分Nova消息发送至预先设置的共享消息队列中进行处理,可有效避免出现丢包的现象。步骤S6、检测共享消息队列的存储空间是否已满。若检测出共享消息队列的存储空间已满,此时该共享消息队列容易出现丢包的风险,则执行步骤S7;否则,表明该共享消息队列不会丢包。步骤S7、控制共享消息队列将部分待处理的Nova消息发送至交换优化器,以供交换优化器将接收到待处理的Nova消息重新进行调度。需要说明的是,在步骤S7结束后,可继续重复执行上述步骤S1,以供交换优化器对共享消息队列所发送的Nova消息重新进行调度,以分配至当前的最优Nova组件消息队列中。本发明实施例二的技术方案不但能有效避免出现网络拥塞,还可有效避免系统出现丢包的风险。实施例三图5为本发明实施例三提供的一种交换优化器的结构示意图,如图5所示,该交换优化器用于执行上述实施例一或实施例二提供的基于Openstack的Nova组件消息队列调度方法,该交换优化器包括:第一获取模块1,用于获取各Nova组件消息队列9当前的消息负载比率和单位时间消息处理量。确定模块2,用于根据各Nova组件消息队列9当前的消息负载比率和单位时间消息处理量确定当前最优Nova组件消息队列9。调度模块3,用于将新来的Nova消息调度至当前最优Nova组件消息队列9,以供最优Nova组件消息队列9进行存储和处理。需要说明的是,本实施例中的第一获取模块1用于执行上述实施例一和实施例二中的步骤S1,确定模块2用于执行上述实施例一和实施例二中的步骤S2,调度模块3用于执行上述实施例一和实施例二中的步骤S3,对于上述三个模块的具体描述可参见上述实施例一中的描述,此处不再赘述。可选地,确定模块包括:第一生成单元201,用于根据各Nova组件消息队列9当前的消息负载比率和单位时间消息处理量生成各Nova组件消息队列9的初始消息队列复合向量其中,Vi0为第i个Nova组件消息队列的初始消息队列复合向量,为第i个Nova组件消息队列的当前的消息负载比率,为第i个Nova组件消息队列的当前的单位时间消息处理量;建模单元202,用于建立迭代模型,其中迭代评价函数:迭代等式:其中,k为迭代步数且k∈[1,d],d为预先设置的最大迭代次数;n为Nova组件消息队列的总数,fk(xik)为第k次迭代时计算出的消息队列优化调度评价值;Vik为对应于第k次迭代时所计算出的第i个Nova组件消息队列的Nova组件消息队列复合向量,为对应于第k次迭代时所计算出的第i个Nova组件消息队列的消息负载比率,βik为对应于第k次迭代时所计算出的第i个Nova组件消息队列的单位时间消息处理量;xik表示在第k次迭代时第i个Nova组件消息队列是否在处理新来的Nova消息,若第k次迭代时第i个Nova组件消息队列在处理新来的Nova消息,则xik取值为1,否则,xik取值为0;θ和σ分别为消息负载比率和单位时间消息处理量调节因子,且θ∈(0,1),σ∈(0,1);当k取值为1时,Bik=E[Vik-1-E(Vik-1)]2;当k取值大于1时,为Nova组件消息队列复合向量Vik-1的变差立方值期望,ζ为调节因子,且ζ∈(0,1),为Nova组件消息队列复合向量Vik-1的二阶中心矩,初始值输入单元203,用于针对上述迭代模型,输入初始值k=0,并计算出f0(xik)的值;向量计算单元204,用于对k进行加1处理,并根据迭代等式计算出第k次迭代时各Nova组件消息队列复合向量Vik;评价值计算单元205,用于根据计算出的各Nova组件消息队列复合向量Vik,计算出第k次迭代时对应的消息队列优化调度评价值fk(xik);第一判断单元206,用于判断第k次迭代时对应的消息队列优化调度评价值fk(xik)是否满足如下条件:其中,ε∈(0,1);第二判断单元207,用于若第一判断单元判断出第k次迭代时对应的消息队列优化调度评价值fk(xik)不满足相应条件时,判断k是否小于d;输出单元208,用于当第一判断单元判断判断出第k次迭代时对应的消息队列优化调度评价值fk(xik)满足相应条件时,或者所述第二判断单元判断出k等于d时,输出当前的k的值,并确定第k次迭代时所选择的Nova组件消息队列为所述最优Nova组件消息队列。需要说明的是,本实施例中的第一生成单元201用于执行上述实施例一中的步骤S201,建模单元202用于执行上述实施例一中的步骤S202,初始值输入单元203用于执行上述实施例一中的步骤S203,向量计算单元204用于执行上述实施例一中的步骤S204,评价值计算单元205用于执行上述实施例一中的步骤S205,第一判断单元206用于执行上述实施例一中的步骤S206,第二判断单元207用于执行上述实施例一中的步骤S207,输出单元208用于执行上述实施例一中的步骤S208。对于上述各单元的具体描述可参见上述实施例一中的描述,此处不再赘述。为解决现有技术中系统出现丢包的问题,可选地,该交换优化器还包括:第一检测模块4,用于检测各Nova组件消息队列9的存储空间是否已满;第一控制模块5,用于若第一检测模块4检测出存在存储空间已满的Nova组件消息队列9时,控制存储空间已满的Nova组件消息队列9将部分待处理的Nova消息发送至预先设置的共享消息队列10(附图仅示例性画出了一个共享消息队列10)中,以供共享消息队列10对待处理的Nova消息进行处理。可选地,还包括:第二检测模块6,用于检测共享消息队列10的存储空间是否已满;第二控制模块7,用于若检测出共享消息队列10的存储空间已满时,则控制共享消息队列10将部分待处理的Nova消息发送至交换优化器,以供交换优化器将接收到待处理的Nova消息重新进行调度。需要说明的是,本实施例中的第一检测模块4用于执行上述实施例二中的步骤S4,第一控制模块5用于执行上述实施例二中的步骤S5,第二检测模块6用于执行上述实施例二中的步骤S6,第二控制模块7用于执行上述实施例二中的步骤S7。对于上述各模块的具体描述可参见上述实施例二中的描述,此处不再赘述。实施例四图6为本发明实施例四提供的一种基于Openstack的Nova组件消息队列调度系统的结构示意图,如图6所示,该调度系统包括交换优化器8,该交换优化器采用上述实施例三中的交换优化器8,具体内容可参见上述实施例三中的描述,此处不再赘述。可选地,还包括:若干个Nova组件消息队列9和至少一个共享消息队列10。本实施例中,通过设置共享消息队列可有效避免系统出现丢包的现象。可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1