用于管理虚拟机磁盘的方法和系统的制作方法

文档序号:6489596阅读:284来源:国知局
用于管理虚拟机磁盘的方法和系统的制作方法
【专利摘要】本发明的实施例涉及用于管理虚拟机磁盘的方法和系统。根据本发明的实施例,精简配置和密集配置被有机地结合在一起,形成一种混合型虚拟机磁盘管理机制。具体而言,对于精简配置而言,如果确定虚拟机磁盘的负载水平较重或者说虚拟机磁盘比较繁忙,则可以确定将其切换为密集配置。反之,对于密集配置而言,如果确定虚拟机磁盘的负载水平较轻或者说虚拟机磁盘比较空闲,则可以确定将其切换为精简配置以避免资源浪费。由此,可以有效地改善虚拟机存储磁盘管理的效率和灵活性。
【专利说明】用于管理虚拟机磁盘的方法和系统
【技术领域】
[0001]总体上,本发明的实施例涉及虚拟机,并且更具体地涉及用于管理虚拟机磁盘的方法和系统。
【背景技术】
[0002]虚拟机(Virtual Machine, VM)是指由特定的应用程序在物理机器的硬件平台上创建的应用执行环境,用户可以通过该环境来运行应用并与之交互,如同使用物理机器一样。在创建一个虚拟机时,通常需要从托管该虚拟机的主机系统的存储池(Storage Pool)中分配一定数量的存储资源,以供虚拟机在操作中使用。所分配的这些存储资源构成虚拟机磁盘(VM disk)。虚拟机磁盘的分配和管理是影响虚拟机性能的一个重要因素。一般而言,如本领域中已经知道的,虚拟机磁盘的管理机制可以分为两类:密集配置(thickprovisioning)和精简配置(thin provisioning)。
[0003]密集配置是指:在创建虚拟机时,就从存储池中分配虚拟机磁盘所需的全部存储资源。这种分配方法简单、直接,并且在虚拟机运行期间对虚拟机磁盘的管理相对简单。然而很明显,密集配置可能导致存储资源的潜在浪费。虚拟机可能仅使用它全部可用磁盘资源的很小一部分,但是闲置的存储资源无法由其他虚拟机使用。尽管可以使用例如磁盘收缩之类的方案来缓解这一问题,但是密集配置在很多应用场景中仍然将造成较大的资源浪费。
[0004]与此不同,精简配置不会在虚拟机创建时完全分配虚拟机磁盘需要的所有存储资源,而是将在虚拟机运行期间根据需要动态地从存储池中分配和回收资源。精简配置能够降低存储占用成本、虚拟机存储迁移时间,并且可以改善虚拟化系统的资源使用率。然而,精简配置也存在某些问题和缺陷。首先,在精简配置中存在元数据成本增长的缺陷。元数据是用于管理已分配磁盘块的数据。随着更多的磁盘块被分配,元数据的尺寸将不断增加,并且还可能需要频繁的元数据更新操作。频繁的元数据访问可能导致最重要的问题是锁竞争,这可能需要硬件层级的改变来解决。其次,当一个系统中存在多个基于精简配置的虚拟机磁盘时,动态的磁盘空间分配和回收将导致存储池中出现越来越多的碎片。因此,需要定期管理存储池中的碎片以便使存储资源尽量连续,这增加了系统管理虚拟机存储的负担。另外,目前不存在针对精简配置的虚拟机磁盘的高效磁盘块回收机制。
[0005]因此,本领域中需要一种用于管理虚拟机磁盘的更为有效的方法。

【发明内容】

[0006]鉴于本领域中目前存在的上述问题,本发明提出一种用于管理虚拟机磁盘的方法和系统。
[0007]在本发明的一个方面,提供一种用于管理虚拟机磁盘的方法。该方法包括:确定所述虚拟机磁盘是基于精简配置还是密集配置;响应于所述确定而监测所述虚拟机磁盘的使用信息以确定所述虚拟机磁盘的负载水平;以及基于所述负载水平确定是否在精简配置与密集配置之间切换所述虚拟机磁盘。
[0008]在本发明的另一方面,提供一种用于管理虚拟机磁盘的系统。该系统包括:确定装置,被配置为确定所述虚拟机磁盘是基于精简配置还是密集配置;监测装置,被配置为响应于所述确定而监测所述虚拟机磁盘的使用信息以确定所述虚拟机磁盘的负载水平;以及决策装置,被配置为基于所述负载水平确定是否在精简配置与密集配置之间切换所述虚拟机磁盘。
[0009]根据本发明的实施例,精简配置和密集配置被有机地结合在一起,形成一种混合型虚拟机磁盘管理机制。具体而言,对于精简配置下的虚拟机磁盘而言,如果确定虚拟机磁盘的负载水平较重或者说虚拟机磁盘比较繁忙,则可以确定将其切换为密集配置。反之,对于密集配置下的虚拟机磁盘而言,如果确定虚拟机磁盘的负载水平较轻或者说虚拟机磁盘比较空闲,则可以确定将其切换为精简配置以避免资源浪费。以此方式,可以兼顾精简配置和密集配置二者的优点,提高虚拟机存储磁盘管理的效率和灵活性。
【专利附图】

【附图说明】
[0010]通过参考附图阅读下文的详细描述,本发明实施例的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施例,其中:
[0011]图1示出了根据本发明示例性实施例的用于管理虚拟机磁盘的方法100的流程图;
[0012]图2示出了根据本发明示例性实施例的用于管理精简配置下的虚拟机磁盘的方法200的流程图;
[0013]图3示出了根据本发明示例性实施例的用于管理密集配置下的虚拟机磁盘的方法300的流程图;
[0014]图4示出了根据本发明示例性实施例的用于管理虚拟机磁盘的系统400的框图;以及
[0015]图5示出了可用来实现本发明实施例的计算机系统500的框图。
[0016]在各个附图中,相同或对应的标号表不相同或对应的部分。
【具体实施方式】
[0017]下面将参考附图中示出的若干示例性实施例来描述本发明的原理和精神。给出这些实施例仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
[0018]一般地,本发明的主要创造性思想在于:将精简配置和密集配置有机地结合在一起,形成一种混合型虚拟机磁盘管理机制。具体而言,对于精简配置下的虚拟机磁盘而言,如果确定虚拟机磁盘的当前负载水平较重或者说虚拟机磁盘比较繁忙,则可以确定将其切换为密集配置。反之,对于密集配置下的虚拟机磁盘而言,如果确定虚拟机磁盘的当前负载水平较轻或者说虚拟机磁盘比较空闲以至于可能存在存储资源浪费,则可以确定将其切换为精简配置。以此方式,可以兼顾精简配置和密集配置二者的优点,改善虚拟机存储磁盘管理的效率和灵活性。[0019]在下文描述中,虚拟机在物理机器上被创建和运行。托管虚拟机的系统被称为主机(host)或主机系统。主机系统可以从存储池中为一个或多个虚拟机磁盘分配存储资源;主机系统还可以将已经分配给虚拟机磁盘的存储资源回收到存储池中。另外,尽管在下文描述中有时将存储空间称为“盘”或者“磁盘”,但这仅仅是为了描述的方便和清晰,并非意在以任何方式限制本发明的范围。相反,本发明所提出的虚拟机磁盘管理机制适用于各种存储介质和机制。
[0020]参考图1,其示出了根据本发明示例性实施例的用于管理虚拟机磁盘的方法100的流程图。根据本发明的实施例,方法100的实例可以由托管该虚拟机的主机系统来执行。
[0021]方法100开始之后,在步骤S101,确定虚拟机磁盘基于精简配置还是密集配置。
[0022]如上文所述,精简配置是指在创建一个虚拟机时,仅分配虚拟机磁盘所需的部分而非全部存储资源,并且在虚拟机运行期间动态地分配和回收虚拟机磁盘的存储资源。具体而言,在虚拟机执行期间,主机系统可以根据虚拟机的请求动态地从存储池中向虚拟机磁盘分配附加的存储空间。与此相反,密集配置是指在创建一个虚拟机时即按照该虚拟机的请求分配虚拟机磁盘的全部存储资源。
[0023]本领域技术人员可以理解,虚拟机磁盘的配置机制可以由托管该虚拟机的主机系统确定。因此,对于任何一个虚拟机磁盘,主机系统可以确定该虚拟机磁盘是基于精简配置还是密集配置。例如,主机系统可以记录由其托管的每个虚拟机磁盘的配置机制。这种记录例如可以通过配置文件、简档、注册表项、表、映射等各种方式实现,本发明的范围在此方面不受限制。相应地,在步骤SlOl处,可以通过访问这些记录来确定主机系统托管的任何虚拟机磁盘的配置机制。
[0024]接下来,方法100进行到步骤S102,在此响应于步骤SlOl处的确定而监测虚拟机磁盘的使用信息,以便计算虚拟机磁盘的负载水平。本领域技术人员可以理解,对于不同的配置机制,可以监测不同的数据和信息作为度量虚拟机磁盘运行情况的使用信息。这些信息可以指示指虚拟机磁盘的负载水平。在此使用的术语“负载水平”是指虚拟机磁盘的繁忙程度或者工作负荷的轻重程度。在本申请的上下文中,负载水平可以包括虚拟机磁盘的使用率以及虚拟机磁盘的性能水平,这将在下文详述。
[0025]具体而言,根据本发明的某些实施例,如果在步骤SlOl处确定虚拟机磁盘基于精简配置,则在步骤S102处监测的使用信息例如可以包括以下一个或多个:已分配磁盘块的容量、用于管理已分配磁盘块的元数据的量、虚拟机磁盘上的每秒输入输出(IOPS)、虚拟机磁盘的吞吐量、虚拟机磁盘的延迟响应,等等。
[0026]类似地,如果在步骤SlOl处确定虚拟机磁盘基于密集配置,则在步骤S102处监测的使用信息至少可以包括以下一个或多个:虚拟机磁盘的当前使用容量、10PS、虚拟机磁盘的吞吐量、虚拟机磁盘的延迟响应,等等。特别地,可以看到:与精简配置相比,针对密集配置下的虚拟机磁盘而监测的使用信息不包括用于管理已分配磁盘块的元数据的量。这是因为,在密集配置下,不需要这样的元数据来支持虚拟机磁盘的运转。
[0027]注意,上文描述的仅仅是虚拟机磁盘的使用信息的几个示例。本领域技术人员能够想到监测备选的和/或附加的信息来量度精简配置和密集配置下的虚拟机磁盘的负载水平。所有这样的信息均可作为“使用信息”与本发明的实施例结合使用。
[0028]另外请注意,步骤S102处对使用信息的监测可以持续地进行(例如,在后台持续)。备选地或附加地,也可以按照一定的时间间隔定期监测虚拟机磁盘的使用信息。
[0029]可以理解的是,在步骤S102处监测的使用信息有些可以直接反映虚拟机磁盘的负载水平,例如10PS、虚拟机磁盘的吞吐量、虚拟机磁盘的延迟响应等性能指标。反之,另一些被监测到的使用信息则需要通过计算或运算来指示虚拟机磁盘的负载水平。例如,如果虚拟机磁盘基于精简配置,则负载水平可以包括虚拟机磁盘在精简配置下的使用率,它可以根据先前步骤监测到的已分配磁盘块的容量、元数据量以及虚拟机磁盘总容量而被计算得到。类似地,如果虚拟机磁盘基于密集配置,则负载水平可以包括虚拟机磁盘在密集配置下的使用率,它可以根据虚拟机磁盘的总容量和当前使用容量而被计算得到。这方面的详细示例还将在下文参考图2和图3描述。
[0030]接下来,方法100进行到步骤S103,在此基于步骤S102处确定的负载水平来确定是否在精简机制与密集机制之间切换虚拟机磁盘。
[0031]根据本发明的实施例,如果虚拟机磁盘目前处于精简配置下,并且其负载水平已经超过预定的阈值,则可以确定将该虚拟机磁盘从精简配置切换为密集配置。这样,可以缓解随着已分配磁盘块的增加而导致的元数据量膨胀。而且,虚拟机磁盘可以在其他虚拟化平台中透明地使用。
[0032]与之相对,如果虚拟机磁盘目前处于密集配置下,并且其负载水平低于预定的阈值,则可以确定将该虚拟机磁盘从密集配置切换为精简配置。以此方式,能够更为有效地使用存储池中的存储资源,避免由于磁盘长时间闲置而导致的资源浪费。
[0033]方法100在步骤S103之后结束。通过执行方法100,能够在虚拟机的运行期间动态地监测虚拟机磁盘的使用情况,并且相应地确定是否需要改变虚拟机磁盘的配置模式。
[0034]下面参考图2,其示出了根据本发明示例性实施例的用于管理精简配置下的虚拟机磁盘的方法200的流程图。可以理解,方法200是上文描述的方法100在虚拟机磁盘被确定为基于精简配置时的特定实现。
[0035]方法200开始之后,在步骤S201处,监测已经分配给虚拟机磁盘的已分配磁盘块的容量。例如,根据某些实施例,可以获得在虚拟机运行期间已经分配的磁盘块的数目,例如从托管虚拟机的主机系统处获得。此外,还可以知道每个已分配磁盘块的大小。例如,已分配磁盘块的大小可以是已知的常量或者可变量,例如1M、2M、4M等。通过从主机系统访问已分配磁盘块的数目和大小,可以确定已经分配磁盘块的容量。
[0036]接下来,方法200进行到步骤S202,在此监测用于管理已分配磁盘块的元数据的量。如上文所述,对于精简配置下的虚拟机磁盘而言,元数据用于管理已分配磁盘块。例如,元数据可以用于管理访客存储地址间隔(GSAI)与主机存储地址间隔(HSAI)之间的映射。随着已分配磁盘块的增多,元数据的量也会随之增加。本领域技术人员知道,针对每个已分配磁盘块的元数据的大小是主机系统已知的。因此,根据已分配磁盘块的数目和针对每个已分配磁盘块的元数据的大小,可以获得针对虚拟机磁盘的元数据的量。
[0037]方法200继而进行到步骤S203,在此基于步骤S201监测的已分配磁盘块容量、步骤S202监测的元数据的量以及虚拟机磁盘的总容量,计算虚拟机磁盘在精简配置下的使用率:
[0038]精简配置下的磁盘使用率=(已分配磁盘块容量+元数据量)/磁盘总容量
[0039]其中虚拟机磁盘的总容量通常是已知的或者事先确定的。例如,在主机系统上创建虚拟机时,虚拟机可以向主机系统请求和指明虚拟机磁盘的大小。备选地或附加地,虚拟机磁盘总容量也可以由主机系统规定。
[0040]在步骤S204处,将虚拟机磁盘在精简配置下的使用率与预定的阈值(例如80%,或其他任何数值)进行比较,以确定虚拟机磁盘使用率是否超过了预定阈值。如果确定虚拟机磁盘使用率超过了预定阈值(分支“是”),方法200进行到步骤S205,在此确定将虚拟机磁盘切换为密集配置。
[0041]如果在步骤S204确定精简配置使用率低于预定阈值(分支“否”),方法200进行到步骤S206,在此可以监测指示虚拟机磁盘性能水平的一个或多个性能指标,包括但不限于以下一个或多个:虚拟机磁盘上平均每秒钟发生多少次I/O事件,即IOPS ;虚拟机磁盘的吞吐量;虚拟机磁盘的响应延迟,等等。这些性能指标在步骤S207处与相应的一个或多个预定阈值进行比较。如果确定性能指标中的一个或多个超过了相应阈值(分支“是”),方法200进行到步骤S205,在此确定将虚拟机磁盘切换为密集配置。
[0042]方法200在步骤S205之后结束。注意,这里所说的“结束”仅仅是逻辑上的,方法200可以定期或者循环执行,以持续地监测虚拟机磁盘的使用情况。
[0043]应当理解,上文描述的方法步骤的顺序仅仅是示例性的。例如,尽管图2中的实施例被描述为首先计算虚拟机磁盘在精简配置下的使用率(通过步骤S201到S203),而后监测性能指标(通过步骤S206到S207),但这仅仅是为了描述清晰之目的。实际上,这两类使用信息可以按照任意顺序或者并行地监测。另外,方法200可以监测磁盘使用率或者一个或多个性能指标,而并非必须监测二者。而且,上文描述中提及的10PS、吞吐量和响应延迟仅仅是性能指标的几个示例,方法200还可以监测其他任何需要的或者适当的数据或指标。本发明的范围在这些方面不受限制。
[0044]参考图3,其示出了根据本发明示例性实施例的用于管理密集配置下的虚拟机磁盘的方法300的流程图。可以理解,方法300是上文描述的方法100在虚拟机磁盘被确定为基于密集配置时的特定实现。
[0045]方法300开始之后,在步骤S301处,监测虚拟机磁盘的当前使用容量。例如,根据某些实施例,可以确定虚拟机磁盘上的处于使用中的磁盘块的数目,该数目可以由主机系统记录。此外,每个使用中的磁盘块的大小也可以从主机系统获知。由此,可以计算出虚拟机磁盘的当前使用容量。
[0046]接下来,方法300进行到步骤S302,在此基于步骤S301监测的虚拟机磁盘的当前使用容量和虚拟机磁盘的总容量(总容量通常是已知的或者事先确定的),计算虚拟机磁盘在密集配置下的使用率:
[0047]密集配置下的磁盘使用率=当前使用容量/磁盘总容量
[0048]注意,不同于精简配置,密集配置不需要元数据来管理已分配磁盘块,因为所有的磁盘资源在虚拟机创建时便被一次性分配。因此,只需监测虚拟机磁盘的当前使用量即可计算出密集配置下的虚拟机磁盘使用率。
[0049]接下来,方法300进行到步骤S303,将计算出的密集配置下的虚拟机磁盘使用率与预定的阈值(例如20%,或其他任何数值)进行比较,以确定密集配置使用率是否低于预定阈值。如果确定密集配置使用率低于预定阈值(分支“是”),方法300进行到步骤S304,在此确定将虚拟机磁盘切换为精简配置。[0050]在步骤S303,如果确定密集配置使用率高于预定阈值(分支“否”),方法300进行到步骤S305,在此可以监测指示虚拟机磁盘性能水平的一个或多个性能指标,包括但不限于以下一个或多个:虚拟机磁盘上平均每秒钟发生多少次I/O事件,即IOPS ;虚拟机磁盘的吞吐量;虚拟机磁盘的响应延迟,等等。这些性能指标在步骤S306处与相应的一个或多个预定阈值进行比较。如果确定性能指标中的一个或多个低于相应阈值(分支“是”),方法300进行到步骤S304,在此确定将虚拟机磁盘切换为精简配置。
[0051]方法300在步骤S304之后结束。注意,这里所说的“结束”仅仅是逻辑上的,方法300可以定期或者循环执行,以持续地监测虚拟机磁盘的使用情况。
[0052]应当理解,上文描述的方法步骤的顺序仅仅是示例性的。例如,尽管图3中的实施例被描述为首先计算虚拟机磁盘在密集配置下的使用率(通过步骤S301到S302),而后监测虚拟机磁盘的性能指标(通过步骤S305到S306),但这仅仅是为了描述清晰之目的。实际上,这两类使用信息可以按照任意顺序或者并行地监测。另外,方法300可以监测磁盘使用率或者一个或多个性能指标,而并非必须监测二者。而且,上文描述中提及的10PS、吞吐量和响应延迟仅仅是性能指标的几个示例,方法300还可以监测其他任何需要的或者适当的数据或指标。本发明的范围在这些方面不受限制。
[0053]上文已经描述了本发明所提出的混合型虚拟机磁盘管理方案。可以理解,本发明的核心思想在于根据虚拟机磁盘的实际使用情况,动态地判断是否需要在精简配置与密集配置之间进行切换。
[0054]如果确定需要进行切换,本发明的实施例可以按照任何适当的方式来执行切换。例如,根据某些实施例,切换可以以离线(offline)模式执行。也即,首先将虚拟机设置为不活跃状态,而后进行配置模式的转换,最后重新激活虚拟机。备选地,根据其他实施例,也可以以在线(online)模式执行。也即,在虚拟机保持活跃的同时改变虚拟机磁盘的配置方式。任何目前已知或者将来开发的适当技术手段均可与本发明的实施例结合使用,用于实现虚拟机磁盘配置的在线转换。这些机制包括但不限于:快照策略、脏块跟踪、I/O监测和跟踪,等等。本发明的范围在此方面不受限制。
[0055]注意,本发明所要解决的主要技术问题是如何动态地判断是否需要在精简配置与密集配置之间切换虚拟机磁盘。虚拟机磁盘的切换操作本身并非本发明重点关注的问题。任何目前已知或者将来开发的虚拟机磁盘切换机制均可与本发明的实施例结合使用。
[0056]此外,根据本发明的某些实施例,为了进一步改善虚拟机的存储管理,还可以监视存储池的使用率。例如,主机系统可以定期或者持续地计算存储池中已经分配的存储资源占池的总容量的比率。一旦确定使用率超过预定阈值,便可以向系统的存储池中添加新的存储资源,以用于分配给虚拟机磁盘。备选地或附加地,也可以在存储池使用率超过预定阈值时向用户报警。
[0057]在本发明的某些其他实施例中,还可以定期对主机系统的存储池中的资源碎片情况进行监测。一旦发现存储池中出现过多资源碎片,或者响应于用户的指示,可以对存储池进行资源碎片整理之类的过程。任何目前已知或者将来开发的存储资源碎片整理机制均可与本发明的实施例结合使用,本发明的范围在此方面不受限制。
[0058]下面参考图4,其示出了根据本发明示例性实施例的用于管理虚拟机磁盘的系统400的框图。如图所示,根据本发明的实施例,系统400包括:确定装置401,被配置为确定所述虚拟机磁盘是基于精简配置还是密集配置;监测装置402,被配置为响应于所述确定而监测所述虚拟机磁盘的使用信息以确定所述虚拟机磁盘的负载水平;以及决策装置403,被配置为基于所述负载水平确定是否在精简配置与密集配置之间切换所述虚拟机磁盘。
[0059]根据某些实施例,监测装置402可以包括:精简监测装置,被配置为响应于所述虚拟机被确定为精简配置,监测已分配磁盘块的容量以及用于管理所述已分配磁盘块的元数据的量;以及精简磁盘使用率计算装置,被配置为基于所述已分配磁盘块的容量、所述元数据的量以及所述虚拟机磁盘的总容量,计算所述虚拟机磁盘在精简配置下的使用率。
[0060]根据某些实施例,监测装置402可以包括:密集监测装置,被配置为响应于所述虚拟机被确定为密集配置,监测所述虚拟机磁盘的当前使用容量;以及密集磁盘使用率计算装置,被配置为基于所述当前使用容量和所述虚拟机磁盘的总容量,计算所述虚拟机磁盘在密集配置下的使用率。
[0061 ] 根据某些实施例,监测装置402至少可以包括以下一个或多个:IOPS监测装置,被配置为监测所述虚拟机磁盘的每秒输入输出IOPS ;吞吐量监测装置,被配置为监测所述虚拟机磁盘的吞吐量;以及延迟监测装置,被配置为监测所述虚拟机磁盘的响应延迟。
[0062]根据某些实施例,决策装置403可以包括:精简向密集切换决策装置,被配置为响应于所述虚拟机被确定为精简配置,在所述负载水平超过预定阈值的情况下确定将所述虚拟机磁盘切换为密集配置。
[0063]根据某些实施例,决策装置403可以包括:密集向精简切换决策装置,被配置为响应于所述虚拟机被确定为精简配置,在所述负载水平低于预定阈值的情况下确定将所述虚拟机磁盘切换为精简配置。
[0064]根据某些实施例,系统400进一步包括:切换执行装置,被配置为响应于确定在精简配置与密集配置之间切换所述虚拟机磁盘而执行所述切换。
[0065]根据某些实施例,所述虚拟机磁盘的存储资源由托管虚拟机的主机系统从存储池中分配,并且系统400进一步包括:存储池使用率监测装置,被配置为监测所述存储池的使用率;以及资源添加装置,被配置为响应于所述存储池的使用率超过预定阈值,向所述存储池中添加存储资源以用于分配给所述虚拟机磁盘。
[0066]根据某些实施例,所述虚拟机磁盘的存储资源由托管虚拟机的主机系统从存储池中分配,系统400进一步包括:存储池碎片监测装置,被配置为监测所述存储池的存储资源碎片情况;以及碎片整理装置,被配置为对所述存储池中的存储资源碎片进行整理。
[0067]请注意,为清晰起见,在图4中没有示出可选装置以及各个装置所包含的子装置。然而,应当理解,系统400中包含的各个装置分别对应于上文参考图1-图3描述的方法步骤。由此,上文结合图1-图3描述的所有特征同样适用于系统400,在此不再赘述。
[0068]应当理解,系统400可以利用各种方式实现。例如,在某些实施例中,系统400可以利用软件和/或固件来实现。备选地或附加地,系统400可以部分地或者完全地基于硬件来实现。例如,系统400可以实现为集成电路(IC)芯片或专用集成电路(ASIC)。系统400也可以实现为片上系统(SOC)。现在已知或者将来开发的其他方式也是可行的,本发明的范围在此方面不受限制。
[0069]下面参考图5,其示出了可用来实现本发明实施例的计算机系统500的框图。
[0070]如图5所示,计算机系统可以包括:CPU(中央处理单元)501、RAM(随机存取存储器)502、ROM(只读存储器)503、系统总线504、硬盘控制器505、键盘控制器506、串行接口控制器507、并行接口控制器508、显示控制器509、硬盘510、键盘511、串行外部设备512、并行外部设备513和显示器514。在这些设备中,与系统总线504耦合的有CPU501、RAM502、R0M503、硬盘控制器505、键盘控制器506、串行控制器507、并行控制器508和显示控制器509。硬盘510与硬盘控制器505耦合,键盘511与键盘控制器506耦合,串行外部设备512与串行接口控制器507耦合,并行外部设备513与并行接口控制器508耦合,以及显示器514与显示控制器509耦合。应当理解,图5所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
[0071]如上所述,系统400可以通过硬件实现,例如芯片、ASIC、S0C等。这些硬件可以集成在计算机系统500中。此外,本发明的实施例也可以通过计算机程序产品的形式实现。例如,本发明的方法均可通过计算机程序产品来实现。该计算机程序产品可以存储在例如图5所示的RAM504、R0M504、硬盘510和/或任何适当的存储介质中,或者通过网络从适当的位置下载到计算机系统500上。计算机程序产品可以包括计算机代码部分,其包括可由适当的处理设备(例如,图5中示出的CPU501)执行的程序指令。所述程序指令至少可以包括用于实现本发明方法的步骤的指令。
[0072]本发明的实施例可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的系统和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明系统可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
[0073]应当注意,尽管在上文详细描述中提及了系统的若干装置或子装置,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
[0074]此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0075]虽然已经参考若干具体实施例描述了本发明,但是应该理解,本发明并不限于所公开的具体实施例。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
【权利要求】
1.一种用于管理虚拟机磁盘的方法,所述方法包括: 确定所述虚拟机磁盘是基于精简配置还是密集配置; 响应于所述确定而监测所述虚拟机磁盘的使用信息以确定所述虚拟机磁盘的负载水平;以及 基于所述负载水平确定是否在精简配置与密集配置之间切换所述虚拟机磁盘。
2.根据权利要求1所述的方法,其中响应于所述确定而监测所述虚拟机磁盘的使用信息以确定所述虚拟机磁盘的负载水平包括: 响应于所述虚拟机被确定为精简配置: 监测已分配磁盘块的容量,以及用于管理所述已分配磁盘块的元数据的量;以及 基于所述已分配磁盘块的容量、所述元数据的量以及所述虚拟机磁盘的总容量,计算所述虚拟机磁盘在精简配置下的使用率。
3.根据权利要求1所述的方法,其中响应于所述确定而监测所述虚拟机磁盘的使用信息以确定所述虚拟机磁盘的负载水平包括: 响应于所述虚拟机被确定为密集配置: 监测所述虚拟机磁盘的当前使用容量;以及 基于所述当前使用容量和所述虚拟机磁盘的总容量,计算所述虚拟机磁盘在密集配置下的使用率。
4.根据权利要求1-3任一项所述的方法,其中响应于所述确定而监测所述虚拟机磁盘的使用信息以确定所述虚拟机磁盘的负载水平至少包括监测以下一个或多个性能指标: 所述虚拟机磁盘的每秒输入输出IOPS ; 所述虚拟机磁盘的吞吐量;以及 所述虚拟机磁盘的响应延迟。
5.根据权利要求1所述的方法,其中基于所述负载水平确定是否在精简配置与密集配置之间切换所述虚拟机磁盘包括: 响应于所述虚拟机被确定为精简配置,在所述负载水平超过预定阈值的情况下确定将所述虚拟机磁盘切换为密集配置。
6.根据权利要求1所述的方法,其中基于所述负载水平确定是否在精简配置与密集配置之间切换所述虚拟机磁盘包括: 响应于所述虚拟机被确定为精简配置,在所述负载水平低于预定阈值的情况下确定将所述虚拟机磁盘切换为精简配置。
7.根据权利要求1所述的方法,进一步包括: 响应于确定在精简配置与密集配置之间切换所述虚拟机磁盘而执行所述切换。
8.根据权利要求1所述的方法,其中所述虚拟机磁盘的存储资源由托管虚拟机的主机系统从存储池中分配,所述方法进一步包括: 监测所述存储池的使用率;以及 响应于所述存储池的使用率超过预定阈值,向所述存储池中添加存储资源以用于分配给所述虚拟机磁盘。
9.根据权利要求1所述的方法,其中所述虚拟机磁盘的存储资源由托管虚拟机的主机系统从存储池中分配,所述方法进一步包括:监测所述存储池的存储资源碎片情况;以及 对所述存储池中的存储资源碎片进行整理。
10.一种用于管理虚拟机磁盘的系统,所述系统包括: 确定装置,被配置为确定所述虚拟机磁盘是基于精简配置还是密集配置; 监测装置,被配置为响应于所述确定而监测所述虚拟机磁盘的使用信息以确定所述虚拟机磁盘的负载水平;以及 决策装置,被配置为基于所述负载水平确定是否在精简配置与密集配置之间切换所述虚拟机磁盘。
11.根据权利要求10所述的系统,其中所述监测装置包括: 精简监测装置,被配置为响应于所述虚拟机被确定为精简配置,监测已分配磁盘块的容量以及用于管理所述已分配磁盘块的元数据的量;以及 精简磁盘使用率计算装置,被配置为基于所述已分配磁盘块的容量、所述元数据的量以及所述虚拟机磁盘的总容量,计算所述虚拟机磁盘在精简配置下的使用率。
12.根据权利要求10所述的系统,其中所述监测装置包括: 密集监测装置,被配置为响应于所述虚拟机被确定为密集配置,监测所述虚拟机磁盘的当前使用容量;以及 密集磁盘使用率计算装置,被配置为基于所述当前使用容量和所述虚拟机磁盘的总容量,计算所述虚 拟机磁盘在密集配置下的使用率。
13.根据权利要求10-12任一项所述的系统,其中所述监测装置至少包括以下一个或多个: IOPS监测装置,被配置为监测所述虚拟机磁盘的每秒输入输出IOPS ; 吞吐量监测装置,被配置为监测所述虚拟机磁盘的吞吐量;以及 延迟监测装置,被配置为监测所述虚拟机磁盘的响应延迟。
14.根据权利要求10所述的系统,其中所述决策装置包括: 精简向密集切换决策装置,被配置为响应于所述虚拟机被确定为精简配置,在所述负载水平超过预定阈值的情况下确定将所述虚拟机磁盘切换为密集配置。
15.根据权利要求10所述的系统,其中所述决策装置包括: 密集向精简切换决策装置,被配置为响应于所述虚拟机被确定为精简配置,在所述负载水平低于预定阈值的情况下确定将所述虚拟机磁盘切换为精简配置。
16.根据权利要求10所述的系统,进一步包括: 切换执行装置,被配置为响应于确定在精简配置与密集配置之间切换所述虚拟机磁盘而执行所述切换。
17.根据权利要求10所述的系统,其中所述虚拟机磁盘的存储资源由托管虚拟机的主机系统从存储池中分配,所述系统进一步包括: 存储池使用率监测装置,被配置为监测所述存储池的使用率;以及资源添加装置,被配置为响应于所述存储池的使用率超过预定阈值,向所述存储池中添加存储资源以用于分配给所述虚拟机磁盘。
18.根据权利要求10所述的系统,其中所述虚拟机磁盘的存储资源由托管虚拟机的主机系统从存储池中分配,所述系统进一步包括:存储池碎片监测装置,被配置为监测所述存储池的存储资源碎片情况;以及 碎片整理装置,被配置为对所述存储池中的存储资源碎片进行整理。
【文档编号】G06F3/06GK103699334SQ201210375612
【公开日】2014年4月2日 申请日期:2012年9月27日 优先权日:2012年9月27日
【发明者】杨子夜, 房海峰, 范晨辉, 陈齐彦 申请人:伊姆西公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1