一种存储资源分配方法及装置的制造方法
【技术领域】
[0001]本发明涉及存储技术领域,尤其涉及一种存储资源分配方法及装置。
【背景技术】
[0002]云计算是将计算作业分布在大量的分布式计算机上的一种服务模式。这种模式具有可配置的计算资源共享池(包括网络,服务器,存储,应用软件,服务等),可以为用户提供可用的、便捷的、按需的网络访问。云存储系统是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的系统。
[0003]在云存储系统中,虚拟网元用于实现一类网络功能,比如用于实现终端通信的虚拟网元,这类网络功能由一个或多个虚拟机(Virtual Machine, VM)来执行,比如有的VM负责语音通信,有的VM负责短信通信。云存储系统需要为虚拟网元分配存储资源,其中包括外部存储资源,如硬盘资源。数据中心(Data Center, DC)作为部署各个虚拟网元的站点,具有多个外部存储设备,这多个存储设备整体上被划分为了多个逻辑单元,每个逻辑单元对应一个逻辑单元号(Logical Unit Number, LUN)。
[0004]云存储系统在为VM分配存储资源时,一般以一个虚拟网元为整体,将执行该虚拟网元的功能的所有VM所需的全部存储资源部署在一个逻辑单元上。在这种情况下,当每个逻辑单元的剩余存储资源都不足该虚拟网元所需的存储资源时,就会导致存储资源分配失败,而这时,可能很多逻辑单元中都还剩余存储资源,只是剩余的存储资源少于该虚拟网元所需的存储资源,这样也导致存储资源利用率较低。
[0005]综上,以虚拟网元为整体进行存储资源分配的方式,进行存储资源分配失败的概率较高,并且对存储资源利用率较低。
【发明内容】
[0006]本发明实施例提供一种存储资源分配方法及装置,用以解决以虚拟网元为整体进行存储资源分配的方式,进行存储资源分配失败的概率较高,并且对存储资源利用率较低的问题。
[0007]第一方面,提供一种存储资源分配方法,包括:
[0008]在需要为虚拟网元申请存储资源时,将执行该虚拟网元的功能的各个虚拟机VM按照所需存储资源大小由大到小的顺序进行排序;
[0009]根据所述各个VM的排列顺序,依次为每个VM申请存储资源。
[0010]结合第一方面,在第一种可能的实现方式中,根据所述各个VM的排列顺序,依次为每个VM申请存储资源之后,还包括:
[0011]若需要为新增的执行所述虚拟网元的功能的VM申请存储资源时,在判断当前数据中心DC中每个逻辑单元中的剩余存储资源均分别无法满足新增的所述VM的存储资源需求时,调整不同逻辑单元中存储资源的部署,以达到调整后存在一个逻辑单元中的剩余存储资源能够满足新增的所述VM的存储资源需求。
[0012]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,调整不同逻辑单元中存储资源的部署,包括:
[0013]针对所述DC中的每个逻辑单元,根据该逻辑单元当前剩余的存储资源以及每个VM所占用该逻辑单元中的存储资源,确定若满足新增的所述VM的存储资源需求,至少需要迀移部署到其它逻辑单元的存储资源大小;其中,迀移部署到其它逻辑单元的存储资源为一个或多个VM的存储资源;
[0014]根据确定的各个逻辑单元需要迀移部署到其它逻辑单元的存储资源大小,选择需要迀移部署的存储资源最少的逻辑单元;
[0015]将选择的所述逻辑单元中需要迀移部署的存储资源迀移部署到其它逻辑单元中。
[0016]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,将选择的所述逻辑单元中需要迀移部署的存储资源迀移部署到其它逻辑单元中,包括:
[0017]若确定需要迀移部署的存储资源最少的逻辑单元存在多个,则在多个需要迀移部署的存储资源最少的逻辑单元中选择当前剩余存储资源最多的逻辑单元;
[0018]将选择的该逻辑单元中需要迀移部署的存储资源迀移部署到其它逻辑单元中。
[0019]结合第一方面,或第一方面的第一?三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,在需要为虚拟网元申请存储资源时,将执行该虚拟网元的功能的各个虚拟机VM按照所需存储资源由大到小的顺序进行排序,包括:
[0020]在确定当前数据中心DC中每个逻辑单元剩余存储资源的大小都小于执行该虚拟网元的功能的所有VM总共所需的存储资源大小时,将执行该虚拟网元的功能的各个虚拟机VM按照所需存储资源由大到小的顺序进行排序。
[0021]第二方面,提供一种存储资源分配装置,包括:
[0022]排序模块,用于在需要为虚拟网元申请存储资源时,将执行该虚拟网元的功能的各个虚拟机VM按照所需存储资源大小由大到小的顺序进行排序;
[0023]申请模块,用于根据所述各个VM的排列顺序,依次为每个VM申请存储资源。
[0024]结合第二方面,在第一种可能的实现方式中,所述装置还包括:
[0025]调整模块,用于在所述申请模块依次为每个VM申请存储资源之后,若需要为新增的执行所述虚拟网元的功能的VM申请存储资源时,在判断当前数据中心DC中每个逻辑单元中的剩余存储资源均分别无法满足新增的所述VM的存储资源需求时,调整不同逻辑单元中存储资源的部署,以达到调整后存在一个逻辑单元中的剩余存储资源能够满足新增的所述VM的存储资源需求。
[0026]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述调整模块具体用于:
[0027]针对所述DC中的每个逻辑单元,根据该逻辑单元当前剩余的存储资源以及每个VM所占用该逻辑单元中的存储资源,确定若满足新增的所述VM的存储资源需求,至少需要迀移部署到其它逻辑单元的存储资源大小;其中,迀移部署到其它逻辑单元的存储资源为一个或多个VM的存储资源;根据确定的各个逻辑单元需要迀移部署到其它逻辑单元的存储资源大小,选择需要迀移部署的存储资源最少的逻辑单元;将选择的所述逻辑单元中需要迀移部署的存储资源迀移部署到其它逻辑单元中。
[0028]结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述调整模块具体用于根据以下步骤将选择的所述逻辑单元中需要迀移部署的存储资源迀移部署到其它逻辑单元中:
[0029]若确定需要迀移部署的存储资源最少的逻辑单元存在多个,则在多个需要迀移部署的存储资源最少的逻辑单元中选择当前剩余存储资源最多的逻辑单元;将选择的该逻辑单元中需要迀移部署的存储资源迀移部署到其它逻辑单元中。
[0030]结合第二方面,或第二方面的第一?三种可能的实现方式中的任意一种可能的实现方式,在第四种可能的实现方式中,所述排序模块具体用于:
[0031]在确定当前数据中心DC中每个逻辑单元剩余存储资源的大小都小于执行该虚拟网元的功能的所有VM总共所需的存储资源大小时,将执行该虚拟网元的功能的各个虚拟机VM按照所需存储资源由大到小的顺序进行排序。
[0032]第三方面,提供一种存储资源分配设备,该设备包括处理器、存储器和总线,所述存储器存储执行指令,当所述设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述执行指令使得所述设备执行如下方法:
[0033]在需要为虚拟网元申请存储资源时,将执行该虚拟网元的功能的各个虚拟机VM按照所需存储资源大小由大到小的顺序进行排序;
[0034]根据所述各个VM的排列顺序,依次为每个VM申请存储资源。
[0035]结合第三方面,在第一种可能的实现方式中,所述处理器执行的所述方法中,根据所述各个VM的排列顺序,依次为每个VM申请存储资源之后,还包括:
[0036]若需要为新增的执行所述虚拟网元的功能的VM申请存储资源时,在判断当前数据中心DC中每个逻辑单元中的剩余存储资源均分别无法满足新增的所述VM的存储资源需求时,调整不同逻辑单元中存储资源的部署,以达到调整后存在一个逻辑单元中的剩余存储资源能够满足新增的所述VM的存储资源需求。<