专利名称:机架空间分配方法及装置的制作方法
技术领域:
本发明涉及空间分配技术,更具体地说,涉及一种互联网数据中心的机架空间的自动分配方法及装置。
背景技术:
在互联网的数据中心,一般都是用机架(rack)容纳客户的设备(数据),机架具有机架空间(rack space),客户的设备(数据)保存在机架空间中,客户的设备(数据)称之为业务,业务需要保存在连续的空闲的机架空间中。当有一个新的业务请求出现时,就需要查询目前的机架空间中连续的空闲空间是否大于该业务所要求的空间,当有足够的连续空间时,就能够接受该业务。
机架空间是一种昂贵而稀有的资源,通常,机架空间的大小以单位空间(Unit Space)来表示,下面的描述中将使用单位U来表示机架空间的大小。通常,一个中等大小的互联网数据中心具有的机架空间的大小为200(单个机架的数量)×40(单个机架中所具有的单位空间数)=8000U=8KU。所以,相对而言,在互联网数据中心中,机架空间是珍贵的资源。
对于珍贵资源的利用必须是高效率的,但是,和其他所有的空间分配方案一样,比如计算机的硬盘分配方案和内存分配方案,机架空间的分配也会遇到碎片的问题。碎片是由于反复地分配、释放空间而产生。碎片的数量和分配的算法直接相关,同时,碎片的数量将直接影响到机架空间的整体性能。大量的碎片将导致机架空间中连续可用空间的数量大大减少,以至于在总的空闲空间量足够的情况下仍然无法承接新的业务请求。
比如,参考下面的例子,参见图1所示,图1中示出了两个机架,机架A和机架B,它们都具有30U的总空间,但是使用的状况不相同对于机架A,总共具有6U的空闲空间,被分成了4部分,分别是1U、1U、2U、2U。机架B也具有6U的空闲空间,被分成了2部分,分别是5U和1U。此时,出现了一个业务请求,大小是4U,对于机架A,虽然总共具有6U的空闲空间,但是其中没有任何一个连续空间的大小是达到4U的,因此机架A无法承接这个业务,而机架B中具有一个5U的连续空间,机架B可以承接这个业务。此时,就可以看到,由于大量的碎片(相对于4U的业务来说,小于4U的连续空间都可被视为是碎片)存在,使得机架A在总的空闲空间足够的情况下仍然无法承接这个新的业务,并且,此时的机架A只能够承接2U以下的业务,如果没有2U以下的业务出现,机架A中的空闲空间将一直闲置,这种情况对于珍贵的机架空间来说是一种极大的浪费。
然后,在讨论一下碎片产生的原因,参考图2,图2A示出了一个10U的连续的机架空间。此时,一个新的业务请求了1U的空间。对于10U的连续空间来说,其中的任意位置都能够存放这1U的业务请求,但是不恰当的分配就会导致碎片的产生。
比如,按照图2B的分配方式,将位于中间1U空间分配给了这个业务,从而剩下的连续空间形成了4U和5U两个空间,这时,该机架只能承接5U以下的新业务,对于一个6U的业务,它将无法承接,但是实际上该机架空间中的空闲空间有9U。
如果更换一种分配的方式,将位于一端的1U空间分配给这个业务,参考图2C所示,则剩下的连续空间还是9U,该机架仍然可以承接9U的业务,与其实际的空闲空间相等,达到高的利用效率。
通过上面的实例,可以得知,在实际的应用中,由于业务请求的大小不一,在处理大量需要较小空间的业务请求时,如果分配的方式不合理,就会产生大量的碎片,从而大大地降低整个机架空间的性能。
类似的问题也会出现在其他的空间分配领域中,比如计算机的硬盘空间或者内存空间的分配。参考图3A,此时所示的是计算机的硬盘空间或者内存空间的状况,同样对于一个30U的空间(为了说明简单,此处将计算机的硬盘空间或者内存空间也采用单位空间U作为计量单位)。它的使用状况如下4个被占用的空间,大小分别是11U、5U、3U、3U,它们之间被空闲空间隔开,分别是1U、1U、2U、2U,此时出现了一个5U的业务请求。如果是计算机的硬盘空间或者内存空间,则可以通过调整空间的使用状况来合并上述不连续的空闲空间,通过调整之后,将产生一个6U的连续空间,所有的被占用的空间也将变得连续,参考图3B。在计算机的硬盘空间或者内存空间中,这样的调整是可行的,因为底层的物理空间对用用户来说是透明的,并且调整存储位置并不会影响到这些数据的使用。
但是,上述的方法在机架空间中是不可行的,因为1)互联网数据中心的机架空间中保存的是用户的设备(数据),每一次存储空间的改变都会牵涉到该设备的相应调整,由于用户的数量众多,每当有新的业务请求产生时,就要求所有的用户都调整存储的位置并修改设备的相应设置显然是不可行的。
2)互联网数据中心的机架空间是一个向用户开放的空间,不像计算机的硬盘空间或者内存空间是一个仅供系统使用的内部空间。对于开放空间的频繁改动是用户所不能接受的。
因此,和其他的空间分配方案相比较,机架空间的分配有着如下的重要差别,所分配的空间只能被释放,而不能被移动,因而,对于已经分配的空间,不能通过调整合并的方式来进行修改。
于是,对于机架空间的分配,就要求在分配时就要考虑如何减少碎片产生的可能性,并尽量保持较大的连续空闲空间,因为在分配之后就无法通过空间的移动和合并来消除碎片。
发明内容
本发明的目的是提供一种能够有效减少碎片并尽量保持较大的连续空闲空间的机架空间的分配方法。
根据本发明的第一方面,提供一种互联网数据中心的机架空间的分配方法,包括确定一片段空间门限值;以及在所述机架空间中划分一片段空间;其中,当接收到请求机架空间的业务时,首先判断该业务所请求的空间大小是否小于所述片段空间门限值,如果小于所述片段空间门限值,则从所述片段空间中分配空间给所述业务。
较佳的,每一次接收到新的业务并从所述机架空间中分配空间后,重新确定片段空间门限值。以及,每一次接收到新的业务并从所述机架空间中分配空间后,重新划分片段空间。
根据本发明,所述方法还包括确定一大空间门限值;以及在所述机架空间中划分一大空间,所述大空间与所述片段空间不重叠;其中当接收到请求机架空间的业务时,首先判断该业务所请求的空间大小是否大于所述大空间门限值,如果大于所述大空间门限值,则从所述大空间中分配空间给所述业务。
较佳的,每一次接收到新的业务并从所述机架空间中分配空间后,重新确定大空间门限值。以及,每一次接收到新的业务并从所述机架空间中分配空间后,重新划分大空间。
根据本发明,所述方法还包括,所述机架空间中除去片段空间和大空间以外的空间设定为一般业务空间,当接收到请求机架空间的业务,并且判断该业务所请求的空间大小是小于所述大空间门限值而大于所述片段空间门限值,则从所述一般业务空间中分配空间给所述业务。
较佳的,所述片段空间、大空间和一般业务空间都是连续的空间。
根据本发明,所述方法还包括,所述互联网数据中心的机架空间划分为数个机架,设定第一对象,每个第一对象表示一单个的机架;设定第二对象,每个第二对象表示一单个机架中的一连续的空闲空间;当接收到请求机架空间的业务时,基于所述第一对象、第二对象、该业务所请求的空间、所述大空间门限值以及所述片段空间门限确定分配给所述业务的空间。
其中,所述第二对象包括第一子对象,表示该单个机架中的该连续的空闲空间的权重;第二子对象,表示该单个机架中的该连续的空闲空间的大小;当接收到请求机架空间的业务时,基于所述第一对象、第一子对象、第二子对象、该业务所请求的空间、所述大空间门限值以及所述片段空间门限确定分配给所述业务的空间。以及,根据第一对象当前值、第一子对象当前值、第二子对象当前值、业务所请求的空间、大空间门限值以及片段空间门限计算确定新的第一子对象的值,即一单个机架中的一连续的空闲空间的权重;在分配空间时,所分配的空间需满足如下的条件,该连续空间具有最大的第一子对象值,即最大的权重;该空间具有不小于业务所请求的空间的第二子对象值,即连续的空闲空间。
较佳的,该方法还包括,设定第三对象,表示机架空间中一单位空间的大小。
根据本发明的第二方面,提供一种互联网数据中心的机架空间的分配装置,包括门限值确定装置,确定一片段空间门限值;空间划分装置,在所述机架空间中划分一片段空间;判断装置,判断所接收的业务所请求的空间大小;以及空间分配装置,分配空间给所述业务;其中,当接收到请求机架空间的业务时,判断装置首先判断该业务所请求的空间大小是否小于门限值确定装置所设定的片段空间门限值,如果小于片段空间门限值,则空间分配装置从空间划分装置划分的片段空间中分配空间给所述业务。
较佳的,门限值确定装置在每一次接收到新的业务并从所述机架空间中分配空间后重新确定片段空间门限值。以及,空间划分装置在每一次接收到新的业务并从所述机架空间中分配空间后重新划分片段空间。
根据本发明,门限值确定装置还确定一大空间门限值;以及空间划分装置还在机架空间中划分一大空间,所述大空间与所述片段空间不重叠;其中,当接收到请求机架空间的业务时,判断装置首先判断该业务所请求的空间大小是否大于门限值确定装置所设定的大空间门限值,如果大于大空间门限值,则空间分配装置从空间划分装置划分的大空间中分配空间给所述业务。
较佳的,门限值确定装置在每一次接收到新的业务并从所述机架空间中分配空间后重新确定大空间门限值。以及,空间划分装置在每一次接收到新的业务并从所述机架空间中分配空间后重新划分大空间。
根据本发明,空间划分装置将机架空间中除去片段空间和大空间以外的空间设定为一般业务空间,当接收到请求机架空间的业务,并且判断装置判断该业务所请求的空间大小是小于大空间门限值而大于片段空间门限值,则从一般业务空间中分配空间给所述业务。
较佳的,空间划分装置将片段空间、大空间和一般业务空间都划分成连续的空间。
根据本发明,所述互联网数据中心的机架空间划分为数个机架,所述分配装置还包括对象设定装置,该对象设定装置,设定第一对象,每个第一对象表示一单个的机架;设定第二对象,每个第二对象表示一单个机架中的一连续的空闲空间;当接收到请求机架空间的业务时,基于所述第一对象、第二对象、该业务所请求的空间、所述大空间门限值以及所述片段空间门限确定分配给所述业务的空间。
其中,对象设定装置还为第二对象设定子对象,包括第一子对象,表示该单个机架中的该连续的空闲空间的权重;第二子对象,表示该单个机架中的该连续的空闲空间的大小;当接收到请求机架空间的业务时,基于所述第一对象、第一子对象、第二子对象、该业务所请求的空间、所述大空间门限值以及所述片段空间门限确定分配给所述业务的空间。以及,本发明的分配装置还包括计算装置,该计算装置根据第一对象当前值、第一子对象当前值、第二子对象当前值、业务所请求的空间、大空间门限值以及片段空间门限计算确定新的第一子对象的值,即一单个机架中的一连续的空闲空间的权重;空间分配装置将满足如下的条件的空间分配给所述业务,该连续空间具有最大的第一子对象值,即最大的权重;该空间具有不小于业务所请求的空间的第二子对象值,即连续的空闲空间。
较佳的,对象设定装置还设定第三对象,表示机架空间中一单位空间的大小。
采用了本发明的技术方案,通过将较小的业务请求放置在专门划分的片段空间中,从而避免了较小的业务请求占用大段的连续空间的状况,可有效地减小机架空间中碎片产生的可能性,并且,较大的连续空间可供较大的业务请求使用,加大了机架空间的整体利用效率,提高了性能并且较小了出现浪费的可能性。
本发明上述的以及其他的特征、性质和优势将通过下面结合附图和实施例的详细描述而变得更加明显,在附图中,相同的附图标记始终表示相同的特征,其中图1是机架空间使用状况的一个实例,其中产生了碎片;图2A-C是产生碎片的原因分析的示意图;图3A、B是其他空间分配方式中的碎片消除方法的示意图;图4A是根据本发明的机架空间分配方法的第一实施例的流程图;图4B是根据本发明的机架空间分配方法的第二实施例的流程图;图4C是根据本发明的机架空间分配方法的第三实施例的流程图;图5A-D是根据本发明的机架空间分配方法的第一实施例进行分配后的机架空间的分配状况;图5E-H是根据本发明的机架空间分配方法的第二实施例进行分配后的机架空间的分配状况;图6示出了根据本发明的一机架分配算法的示例;图7示出了根据本发明的一实施例的权重计算算法的流程图;图8示出了根据本发明的一实施例的机架空间分配装置的结构框图。
具体实施例方式
本发明的目的是提供一种互联网数据中心的机架空间的分配方案,其主要思想是对容易产生碎片的较小的业务请求从专门的区域中分配空间,从而避免对于较大的连续空间的不必要的分割,由此可保留较大的连续空间供较大的业务请求使用。
示例的机架空间分配方法第一实施例参考图4A,其示出了根据本发明的一种互联网数据中心的机架空间的分配方法,包括如下的步骤400.确定一片段空间门限值;402.在机架空间中划分一片段空间;404.接收到请求机架空间的业务时,判断该业务所请求的空间大小是否小于片段空间门限值;406.如果小于片段空间门限值,则从片段空间中分配空间给所述业务;408.如果大于片段空间门限值,则从除片段空间以外的空间中分配给所述业务。
参考图5A所示,图5A示出了根据图4A所示的分配方法进行分配后的机架空间的分配状况。在图5A所示的实例中,一个具有20U的机架空间500被分成了两个部分,5U的片段空间501以及15U的剩余空间502。根据使用状况,设定片段空间门限值为2U,即小于2U的业务请求将被放置到5U的片段空间501中,大于2U的业务请求将被放置到15U的剩余空间502中,对于恰好是2U的业务请求,放在任何一个空间中都可以,这可以根据实际的使用状况加以设定,本发明并不对此作出限制。
通常,在进行了一次空间分配之后,需要重新确定片段空间门限值以及重新划分片段空间。例如参考图5B,在5U的片段空间501中已经有三个1 U的空间被占据,此时,片段空间501最大的连续空间已经变成了1U,则可以重新确定片段空间门限值为1U。
在每一次接收到新的业务并从机架空间中分配空间后,还可以重新划分片段空间,比如,参考图5C所示,在5U的片段空间501中已经有两个1U的空间被占据,且片段空间501最大的连续空间已经变成了1U,此时希望继续保持片段空间门限值为2U,则可以通过改变片段空间501的大小来实现,比如,如图5C所示的,将片段空间501的大小变为6U,从而使的片段空间501中最大的连续空间大小依然为2U。
有时,需要同时调整片段空间门限值以及重新划分片段空间,比如在图5D所示的情况中,片段空间501中已经有两个1U的空间被占据,而15U的剩余空间502中同样有11U的空间被占据,此时,希望保持这个机架仍然能够承接5U的业务,则需要将剩余空间502扩大为16U,这样,片段空间501中最大的连续空间变成了1U,则需要将片段空间门限值为1U。
第二实施例图4B是根据本发明的机架空间分配方法的第二实施例的流程图,根据该实施例,该方法包括如下的步骤410.确定一片段空间门限值;411.在机架空间中划分一片段空间;412.确定一大空间门限值;413.在机架空间中划分一大空间,大空间与片段空间不重叠;414.接收到请求机架空间的业务时,判断该业务所请求的空间大小是否小于片段空间门限值;415.如果小于片段空间门限值,则从片段空间中分配空间给所述业务;416.如果大于片段空间门限值,则进一步判断该业务所请求的空间是否大空间门限值;417.如果大于大空间门限,则从大空间中分配空间给所述业务;418.如果小于大空间门限,则从除了片段空间和大空间之外的空间中分配给所述业务。
参考图5E所示,图5E示出了根据图4B所示的分配方法进行分配后的机架空间的分配状况。在图5E所示的实例中,一个具有30U的机架空间510被分成了两个部分,5U的片段空间511以及10U的剩余空间502和15U的大空间513。根据使用状况,设定片段空间门限值为2U,即小于2U的业务请求将被放置到5U的片段空间511中,大空间门限值被设定为5U,即大于5U的业务请求将被放置到大空间513中,大于2U而小于5U的业务请求将被放置到10U的剩余空间512中,对于恰好是2U以及5U的业务请求,类似前面所述的情况,可以根据实际的使用状况加以设定放置在哪一个空间中,本发明并不对此作出限制。
通常,在进行了一次空间分配之后,也需要重新确定大空间门限值以及重新划大空间。例如参考图5F,在15U的大空间513中已经有一个6U和一个5U的空间被占据,此时,大空间513最大的连续空间已经变成了4U,则可以重新确定片段空间门限值为4U。
在每一次接收到新的业务并从机架空间中分配空间后,还可以重新划分大空间,比如,参考图5G所示,此时希望继续保持大空间门限值为5U,则可以通过改变大空间513的大小来实现,比如,如图5G所示的,将大空间513的大小变为16U,从而使的大空间513中最大的连续空间大小依然为5U,此时,剩余空间的大小变为9U。
有时,需要同时调整大空间门限值以及重新划分大空间,比如在图5G所示的情况中,大空间501中已经有一个6U和一个5U的空间被占据,此时,希望这个机架能够承接一个7U的业务,则需要将大空间513扩大为18U,这样,大空间513中最大的连续空间变成了7U,可将大空间门限值也调整为7U,相应的,剩余空间缩小到了7U,参考图5H所示。
对于本领域技术人员来说,可以预见到,在一些情况下,对于大空间参数的调整会影响到片段空间的参数,此时,就需要对两者同时进行调整,比如,在上述的图5H中,如果希望保持剩余空间的大小为10U,就需要调整片段空间的大小,结合片段空间的使用状况,可能还需要调整片段门限值。这是属于本领域的技术人员可以预见的内容,这里就不再详细描述。
第三实施例图4C是根据本发明的机架空间分配方法的第三实施例的流程图,根据该实施例,该方法包括如下的步骤420.确定一片段空间门限值;421.在机架空间中划分一片段空间;422.确定一大空间门限值;423.在机架空间中划分一大空间,大空间与片段空间不重叠;424.将剩余的空间设定为一般业务空间;425.接收到请求机架空间的业务时,判断该业务所请求的空间大小是否小于片段空间门限值;426.如果小于片段空间门限值,则从片段空间中分配空间给所述业务;427.如果大于片段空间门限值,则进一步判断该业务所请求的空间是否大空间门限值;428.如果大于大空间门限,则从大空间中分配空间给所述业务;429.如果小于大空间门限,则从一般业务空间中分配给所述业务。
该实施例的流程以及空间分配的状况和上述的第二实施例相近,这里就不再重复描述。需要说明,通常,片段空间、大空间和一般业务空间都是各自连续的空间。三个空间互相领接,对于如何安排这三个空间的顺序,本发明并不进行限制。
划分机架时的机架空间分配算法在实际的应用中,通常在一个互联网的数据中心的机架空间会被划分成数个机架,每一个机架会具有一对应的机架空间,此时,当出现一业务请求时,就需要从数个机架中选取最合适的机架来分配给该业务。总的分配原则如上面所介绍的,下面说明一具体的示例分配算法。
首先,需要定义一系列的对象,包括第一对象,每个第一对象表示一单个的机架。在该示例中,第一对象被设定为Rack;第二对象,每个第二对象表示一单个机架中的一连续的空闲空间,在该示例中,第二对象被设定为RackRoom。在该实例中,第二对象还包括两个字对象第一子对象,表示该单个机架中的该连续的空闲空间的权重,此处被设定为iWeight;第二子对象,表示该单个机架中的该连续的空闲空间的大小,此处被设定为iSpace;该示例中,还设定了第三对象,表示机架空间中一单位空间的大小,即一个U的大小,由于U不是标准的空间单位,该对象规定了一个U的实际大小,第三对象被设定为RackSpace。
此外,还定义了一系列的参数,包括片段空间门限值(fragment space threshold,FSH);大空间门限值(big space threshold,BSH);片段空间区域(fragment space area,FSA),FSA将表示片段空间的范围。
业务所请求的空间大小iNeedSpace。
此处,并没有定义大空间区域,下面的描述将结合上述三个参数来进行,对于本领域的技术人员来说,可以预见到,如果增加一个大空间区域的参数,也可以实现上述的算法。
当接收到一个新的业务请求时,可根据Rack当前值、iWeight当前值、iSpace当前值、iNeedSpace、BSH、FSH和FSA计算确定新的iWeight值,即一单个机架中的一连续的空闲空间的权重;在分配空间时,所分配的空间需满足如下的条件,该空间具有最大的iWeight,即最大的权重;该空间具有不小于iNeedSpace的iSpace,即连续的空闲空间。
图6示出了根据本发明的一机架分配算法的示例,参考图6,该算法包括600.接收业务所要求的机架空间iNeedSpace;602.计算所有单个机架中的所有连续空间的权重,即对于所有的Rack,计算其中母一个RackRoom的iWeight;604.从所有的单个机架的所有连续空间中,找到具有最大权重的一个,即遍历所有Rack的所有RackRoom,寻找具有最高的iWeight的一个;606.如果该RackRoom的iSpace同样符合小于iNeedSpace条件,就确定为该连续空间分配给该业务;608.在分配之后,重新计算所有的所有单个机架中的所有连续空间的权重,即对于所有的Rack,重新计算其中每一个RackRoom的iWeight;610.在全部运行结束后,清除所有的权重值,即对于所有Rack中的所有RackRoom清除其iWeight值。
在上述的步骤中,无疑计算权重iWeight是实现本发明的算法的最重要一环。
图7示出了根据本发明的一实施例的权重计算算法的流程图,参考图7,该算法包括700.接收业务所要求的机架空间iNeedSpace;701.判断iNeedSpace与BSH的大小,如果iNeedSpace大于BSH,则进入步骤703,如果不大于,则进入步骤702;702.设置一中间变量iCtrl,并将其设置为1,之后进入步骤704;703.设置一中间变量iCtrl,并将其设置为-1,之后进入步骤704;704.设置一中间变量i,且对于所有Rack,使用i作为其索引;705.判断下述条件是否满足当前的Rack不是处于FSA中,并且iNeedSpace不大于FSH,如果符合上述条件,则改变上述的索引值i,查询下一Rack时候符合上述条件,直至找到出现不符合的Rack;706.对于在该Rack中的所有RackRoom,进行如下的判断该RackRoom的iSpace大于iNeedSpace,如果是的话,进入步骤708,如果不是的话,则进入步骤707;707.将该RackRoom的iWeight设置为0;进入步骤709;708.将该RackRoom的iWeight设置为iWeightthreshold-i*iCtrl;进入步骤709,此处,iWeightthreshold是一预定的变量值,通常,iWeightthreshold会被设置成一个常量,以保证iWeight总是能够大于0;709.判断是否对于该Rack内所有的RackRoom都进行了iWeight设置,如果没有完成,回到步骤706对该Rack中的下一个RackRoom计算iWeight;如果该Rack中的RackRoom已经计算完毕,则回到步骤705,查找下一个Rack。
当所有的Rack以及其中所有的RackRoom都具有了iWeight之后,遍历所有的Rack中的所有RackRoom,找到其中具有最高的iWeight的RackRoom,并判断该RackRoom的iSpace大于iNeedSpace,即可进行分配。
上述的算法中,RackRoom的iSpace大于iNeedSpace的,它们的iWeight总是要比那些iSpace小于等于iNeedSpace的RackRoom大。
通过上述的算法,可以将要求较小空间的业务限制在FSA内,以保证留有足够的连续空间供要求较大空间的业务使用。
示例的机架空间分配装置第一实施例根据本发明的第二方面,提供一种互联网数据中心的机架空间的分配装置,图8示出了根据本发明的一实施例的机架空间分配装置的结构框图,如图8所示,该装置800包括门限值确定装置802,用于确定一片段空间门限值;空间划分装置804,在机架空间中划分一片段空间;判断装置806,判断所接收的业务所请求的空间大小;以及空间分配装置808,分配空间给所述业务;其中,当接收到请求机架空间的业务时,判断装置806首先判断该业务所请求的空间大小是否小于门限值确定装置802所设定的片段空间门限值,如果小于片段空间门限值,则空间分配装置808从空间划分装置804划分的片段空间中分配空间给所述业务。
第一实施例的空间分配装置的功能与上述的第一实施例的机架空间的分配方法相对应,具体的功能以及空间分配的实例参考上面的描述以及图5A-5D。
同样,根据第一实施例,门限值确定装置802在每一次接收到新的业务并从机架空间中分配空间后重新确定片段空间门限值。以及,空间划分装置804在每一次接收到新的业务并从所述机架空间中分配空间后重新划分片段空间。
第二实施例第二实施例的结构框图同样参考图8所示,该装置800包括门限值确定装置802,用于确定一片段空间门限值,还确定一大空间门限值空间划分装置804,在机架空间中划分一片段空间,还在机架空间中划分一大空间,所述大空间与所述片段空间不重叠;判断装置806,判断所接收的业务所请求的空间大小;以及空间分配装置808,分配空间给所述业务;其中,当接收到请求机架空间的业务时,判断装置806首先判断该业务所请求的空间大小是否小于门限值确定装置802所设定的片段空间门限值,如果小于片段空间门限值,则空间分配装置808从空间划分装置804划分的片段空间中分配空间给所述业务,如果不小于片段空间门限值,则判断装置806还判断该业务所请求的空间大小是否大于门限值确定装置802所设定的大空间门限值,如果大于大空间门限值,则空间分配装置808从空间划分装置804划分的大空间中分配空间给所述业务。
第二实施例的空间分配装置的功能与上述的第二实施例的机架空间的分配方法相对应,具体的功能以及空间分配的实例参考上面的描述以及图5E-5H。
同样,根据第二实施例,门限值确定装置802在每一次接收到新的业务并从所述机架空间中分配空间后重新确定大空间门限值。以及,空间划分装置804在每一次接收到新的业务并从所述机架空间中分配空间后重新划分大空间。类似的,第二实施例的装置也可能由门限值确定装置802同时调整片段空间门限值和大空间门限值,而空间划分装置804可同时调整片段空间和大空间。
第三实施例第三实施例的结构框图同样参考图8所示,该装置800包括门限值确定装置802,用于确定一片段空间门限值,还确定一大空间门限值;空间划分装置将机架空间中除去片段空间和大空间以外的空间设定为一般业务空间空间划分装置804,在机架空间中划分一片段空间,还在机架空间中划分一大空间,所述大空间与所述片段空间不重叠;空间划分装置804还将判断装置806,判断所接收的业务所请求的空间大小;以及空间分配装置808,分配空间给所述业务;其中,当接收到请求机架空间的业务时,判断装置806首先判断该业务所请求的空间大小是否小于门限值确定装置802所设定的片段空间门限值,如果小于片段空间门限值,则空间分配装置808从空间划分装置804划分的片段空间中分配空间给所述业务,如果不小于片段空间门限值,则判断装置806还判断该业务所请求的空间大小是否大于门限值确定装置802所设定的大空间门限值,如果大于大空间门限值,则空间分配装置808从空间划分装置804划分的大空间中分配空间给所述业务。对于判断装置806判断该业务所请求的空间大小是小于大空间门限值而大于片段空间门限值,则从一般业务空间中分配空间给所述业务。
在上述的三个实施例中,空间划分装置804将片段空间、大空间和一般业务空间都划分成连续的空间。
划分机架时的机架空间分配装置同样对应于前面所述的划分机架时的空间分配算法,本发明也提供一种划分机架时的空间分配装置,一般的互联网数据中心的机架空间都会划分为数个机架,因此,在上述三个实施例中的任一个的基础上,该分配装置还包括对象设定装置810,该对象设定装置810用于设定第一对象,每个第一对象表示一单个的机架。在该示例中,第一对象被设定为Rack;第二对象,每个第二对象表示一单个机架中的一连续的空闲空间,在该示例中,第二对象被设定为RackRoom。在该实例中,第二对象还包括两个字对象第一子对象,表示该单个机架中的该连续的空闲空间的权重,此处被设定为iWeight;第二子对象,表示该单个机架中的该连续的空闲空间的大小,此处被设定为iSpace;该示例中,还设定了第三对象,表示机架空间中一单位空间的大小,即一个U的大小,由于U不是标准的空间单位,该对象规定了一个U的实际大小,第三对象被设定为RackSpace。
此外,对象设定装置804还定义了一系列的参数,包括片段空间门限值(fragment space threshold,FSH);大空间门限值(big space threshold,BSH);片段空间区域(fragment space area,FSA),FSA将表示片段空间的范围。
业务所请求的空间大小iNeedSpace。
此处,并没有定义大空间区域,下面的描述将结合上述三个参数来进行,对于本领域的技术人员来说,可以预见到,如果增加一个大空间区域的参数,也可以实现上述的算法。
当接收到一个新的业务请求时,可根据Rack当前值、iWeight当前值、iSpace当前值、iNeedSpace、BSH、FSH和FSA计算确定新的iWeight值,即一单个机架中的一连续的空闲空间的权重;
在分配空间时,空间分配装置808所分配的空间需满足如下的条件,该空间具有最大的iWeight,即最大的权重;该空间具有不小于iNeedSpace的iSpace,即连续的空闲空间。
上述的分配装置800中的判断装置806和空间分配装置808共同实现下列的功能,或者,也可以在分配装置800中另外增加一处理器812,用于实现下述的算法接收业务所要求的机架空间iNeedSpace;计算所有单个机架中的所有连续空间的权重,即对于所有的Rack,计算其中每一个RackRoom的iWeight;从所有的单个机架的所有连续空间中,找到具有最大权重的一个,即遍历所有Rack的所有RackRoom,寻找具有最高的iWeight的一个;如果该RackRoom的iSpace同样符合小于iNeedSpace条件,就确定为该连续空间分配给该业务;在分配之后,重新计算所有的所有单个机架中的所有连续空间的权重,即对于所有的Rack,重新计算其中每一个RackRoom的iWeight;在全部运行结束后,清除所有的权重值,即对于所有Rack中的所有RackRoom清除其iWeight值。
在上述的过程中,无疑计算权重iWeight是实现本发明的算法的最重要一环。权重计算算法包括接收业务所要求的机架空间iNeedSpace;判断iNeedSpace与BSH的大小,如果iNeedSpace大于BSH,则设置一中间变量iCtrl,并将其设置为-1;如果不大于,则设置一中间变量iCtrl,并将其设置为1;设置一中间变量i,且对于所有Rack,使用i作为其索引;判断下述条件是否满足当前的Rack不是处于FSA中,并且iNeedSpace不大于FSH,如果符合上述条件,则改变上述的索引值i,查询下一Rack时候符合上述条件,直至找到出现不符合的Rack;对于在该Rack中的所有RackRoom,进行如下的判断该RackRoom的iSpace大于iNeedSpace,如果是的话,将该RackRoom的iWeight设置为iWeightthreshold-i*iCtrl,此处,iWeightthreshold是一预定的变量值,通常,iWeightthreshold会被设置成一个常量,以保证iWeight总是能够大于0;如果不是的话,则将该RackRoom的iWeight设置为0;判断是否对于该Rack内所有的RackRoom都进行了iWeight设置,如果没有完成,回到前面的过程对该Rack中的下一个RackRoom计算iWeight;如果该Rack中的RackRoom已经计算完毕,则回到前面的过程查找下一个Rack。
当所有的Rack以及其中所有的RackRoom都具有了iWeight之后,遍历所有的Rack中的所有RackRoom,找到其中具有最高的iWeight的RackRoom,并判断该RackRoom的iSpace大于iNeedSpace,即可进行分配。
上述的算法中,RackRoom的iSpace大于iNeedSpace的,它们的iWeight总是要比那些iSpace小于等于iNeedSpace的RackRoom大。
通过上述的算法,可以将要求较小空间的业务限制在FSA内,以保证留有足够的连续空间供要求较大空间的业务使用。
需要说明,对本领域的技术人员来说,实现上述算法的装置可以有多种实现的形式,比如执行一软件程序的通用处理器、专门设计的专用处理器、逻辑电路等等,这些都在本发明的范围之内。
采用了本发明的技术方案,通过将较小的业务请求放置在专门划分的片段空间中,从而避免了较小的业务请求占用大段的连续空间的状况,可有效地减小机架空间中碎片产生的可能性,并且,较大的连续空间可供较大的业务请求使用,加大了机架空间的整体利用效率,提高了性能并且较小了出现浪费的可能性。
上述实施例是提供给熟悉本领域内的人员来实现或使用本发明/实用新型的,熟悉本领域的人员可在不脱离本发明/实用新型的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明/实用新型的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。
权利要求
1.一种互联网数据中心的机架空间的分配方法,其特征在于,包括确定一片段空间门限值;以及在所述机架空间中划分一片段空间;其中,当接收到请求机架空间的业务时,首先判断该业务所请求的空间大小是否小于所述片段空间门限值,如果小于所述片段空间门限值,则从所述片段空间中分配空间给所述业务。
2.如权利要求1所述的分配方法,其特征在于,还包括每一次接收到新的业务并从所述机架空间中分配空间后,重新确定片段空间门限值。
3.如权利要求2所述的分配方法,其特征在于,还包括每一次接收到新的业务并从所述机架空间中分配空间后,重新划分片段空间。
4.如权利要求1所述的分配方法,其特征在于,还包括确定一大空间门限值;以及在所述机架空间中划分一大空间,所述大空间与所述片段空间不重叠;其中当接收到请求机架空间的业务时,首先判断该业务所请求的空间大小是否大于所述大空间门限值,如果大于所述大空间门限值,则从所述大空间中分配空间给所述业务。
5.如权利要求4所述的分配方法,其特征在于,还包括每一次接收到新的业务并从所述机架空间中分配空间后,重新确定大空间门限值。
6.如权利要求5所述的分配方法,其特征在于,还包括每一次接收到新的业务并从所述机架空间中分配空间后,重新划分大空间。
7.如权利要求4所述的分配方法,其特征在于,还包括所述机架空间中除去片段空间和大空间以外的空间设定为一般业务空间,当接收到请求机架空间的业务,并且判断该业务所请求的空间大小是小于所述大空间门限值而大于所述片段空间门限值,则从所述一般业务空间中分配空间给所述业务。
8.如权利要求7所述的分配方法,其特征在于,所述片段空间、大空间和一般业务空间都是连续的空间。
9.如权利要求7所述的分配方法,其特征在于,所述互联网数据中心的机架空间划分为数个机架,该方法还包括设定第一对象,每个第一对象表示一单个的机架;设定第二对象,每个第二对象表示一单个机架中的一连续的空闲空间;当接收到请求机架空间的业务时,基于所述第一对象、第二对象、该业务所请求的空间、所述大空间门限值以及所述片段空间门限确定分配给所述业务的空间。
10.如权利要求9所述的分配方法,其特征在于,所述第二对象包括第一子对象,表示该单个机架中的该连续的空闲空间的权重;第二子对象,表示该单个机架中的该连续的空闲空间的大小;当接收到请求机架空间的业务时,基于所述第一对象、第一子对象、第二子对象、该业务所请求的空间、所述大空间门限值以及所述片段空间门限确定分配给所述业务的空间。
11.如权利要求10所述的分配方法,其特征在于,根据第一对象当前值、第一子对象当前值、第二子对象当前值、业务所请求的空间、大空间门限值以及片段空间门限计算确定新的第一子对象的值,即一单个机架中的一连续的空闲空间的权重;在分配空间时,所分配的空间需满足如下的条件,该连续空间具有最大的第一子对象值,即最大的权重;该空间具有不小于业务所请求的空间的第二子对象值,即连续的空闲空间。
12.如权利要求11所述的分配方法,其特征在于,还包括设定第三对象,表示机架空间中一单位空间的大小。
13.一种互联网数据中心的机架空间的分配装置,其特征在于,包括门限值确定装置,确定一片段空间门限值;空间划分装置,在所述机架空间中划分一片段空间;判断装置,判断所接收的业务所请求的空间大小;以及空间分配装置,分配空间给所述业务;其中,当接收到请求机架空间的业务时,判断装置首先判断该业务所请求的空间大小是否小于门限值确定装置所设定的片段空间门限值,如果小于片段空间门限值,则空间分配装置从空间划分装置划分的片段空间中分配空间给所述业务。
14.如权利要求13所述的分配装置,其特征在于,门限值确定装置在每一次接收到新的业务并从所述机架空间中分配空间后重新确定片段空间门限值。
15.如权利要求14所述的分配装置,其特征在于,空间划分装置在每一次接收到新的业务并从所述机架空间中分配空间后重新划分片段空间。
16.如权利要求13所述的分配装置,其特征在于,门限值确定装置还确定一大空间门限值;以及空间划分装置还在机架空间中划分一大空间,所述大空间与所述片段空间不重叠;其中,当接收到请求机架空间的业务时,判断装置首先判断该业务所请求的空间大小是否大于门限值确定装置所设定的大空间门限值,如果大于大空间门限值,则空间分配装置从空间划分装置划分的大空间中分配空间给所述业务。
17.如权利要求16所述的分配装置,其特征在于,门限值确定装置在每一次接收到新的业务并从所述机架空间中分配空间后重新确定大空间门限值。
18.如权利要求17所述的分配装置,其特征在于,空间划分装置在每一次接收到新的业务并从所述机架空间中分配空间后重新划分大空间。
19.如权利要求16所述的分配装置,其特征在于,空间划分装置将机架空间中除去片段空间和大空间以外的空间设定为一般业务空间,当接收到请求机架空间的业务,并且判断装置判断该业务所请求的空间大小是小于大空间门限值而大于片段空间门限值,则从一般业务空间中分配空间给所述业务。
20.如权利要求19所述的分配装置,其特征在于,空间划分装置将片段空间、大空间和一般业务空间都划分成连续的空间。
21.如权利要求20所述的分配装置,其特征在于,所述互联网数据中心的机架空间划分为数个机架,所述分配装置还包括对象设定装置,该对象设定装置,设定第一对象,每个第一对象表示一单个的机架;设定第二对象,每个第二对象表示一单个机架中的一连续的空闲空间;当接收到请求机架空间的业务时,基于所述第一对象、第二对象、该业务所请求的空间、所述大空间门限值以及所述片段空间门限确定分配给所述业务的空间。
22.如权利要求21所述的分配装置,其特征在于,对象设定装置还为第二对象设定子对象,包括第一子对象,表示该单个机架中的该连续的空闲空间的权重;第二子对象,表示该单个机架中的该连续的空闲空间的大小;当接收到请求机架空间的业务时,基于所述第一对象、第一子对象、第二子对象、该业务所请求的空间、所述大空间门限值以及所述片段空间门限确定分配给所述业务的空间。
23.如权利要求22所述的分配装置,其特征在于,还包括计算装置,该计算装置根据第一对象当前值、第一子对象当前值、第二子对象当前值、业务所请求的空间、大空间门限值以及片段空间门限计算确定新的第一子对象的值,即一单个机架中的一连续的空闲空间的权重;空间分配装置将满足如下的条件的空间分配给所述业务,该连续空间具有最大的第一子对象值,即最大的权重;该空间具有不小于业务所请求的空间的第二子对象值,即连续的空闲空间。
24.如权利要求23所述的分配方法,其特征在于,对象设定装置还设定第三对象,表示机架空间中一单位空间的大小。
全文摘要
本发明揭示了一种互联网数据中心的机架空间的分配方法,包括确定一片段空间门限值;以及在机架空间中划分一片段空间;其中,当接收到请求机架空间的业务时,首先判断该业务所请求的空间大小是否小于片段空间门限值,如果小于片段空间门限值,则从片段空间中分配空间给所述业务。采用了本发明的技术方案,通过将较小的业务请求放置在专门划分的片段空间中,从而避免了较小的业务请求占用大段的连续空间的状况,可有效地减小机架空间中碎片产生的可能性,并且,较大的连续空间可供较大的业务请求使用,加大了机架空间的整体利用效率,提高了性能并且减小了出现浪费的可能性。
文档编号H04L12/24GK101071386SQ20061002648
公开日2007年11月14日 申请日期2006年5月12日 优先权日2006年5月12日
发明者蔡军, 尤毅 申请人:上海惠普有限公司