提高由多个系统共享的存储高速缓存灵活性的方法和结构的制作方法

文档序号:6500802阅读:98来源:国知局
提高由多个系统共享的存储高速缓存灵活性的方法和结构的制作方法
【专利摘要】在虚拟机计算环境(100)中,用于提高管理计算设备(104)的存储控制器(106)中高速缓存灵活性的方法和结构,其中,多个虚拟机(VMs)(110)运行于所述计算设备上。本发明的实施例提供存储控制器用以从与存储控制器耦合的VM管理系统(102)接收配置信息,其中配置信息包括关于当前在计算设备上运行的每个VM的信息。基于配置信息,存储控制器分配和解除分配存储控制器高速缓存的段(208、210、212)以供当前在计算设备上运行的各种虚拟机使用。配置信息可以包括当前运行的VMs的数量标记,以及性能度量阈值配置信息用于根据当前每个虚拟机的性能分配/解除分配段。
【专利说明】提高由多个系统共享的存储高速缓存灵活性的方法和结构[0001]本专利申请要求2012年7月19日提交的美国临时专利申请号61/673,378的优先权。
【技术领域】
[0002]本发明通常涉及利用高速缓存存储器的系统,并且更具体地涉及在虚拟机计算环境下,提高多系统运行中存储高速缓存的灵活性。
[0003]相关专利
[0004]本专利涉及2011年8月3日提交的名称为“METHOD TO ALLOW STORAGE CACHEACCELERATION WHEN THE SLOW TIER IS ON INDEPENDENT CONTROLLER”,申请号为13/197,009的共同拥有的美国专利,其通过引用在本文作为参考。
【背景技术】
[0005]各种计算应用为网络连接客户端系统的大型企业提供多种服务。例如,大型企业中的计算服务可以包括打印服务、文件/存储服务、域/安全服务、web服务等。这些服务中的每一项可以驻留在一个或者多个服务器计算设备上。为了在提供这些计算设备中提高灵活性和可靠性,很多系统管理员优选使用虚拟系统提供这些服务中的每一项(或者提供服务的各种组合),其中每一项在一个或者多个虚拟机上执行。虚拟机由在计算设备上操作的软件抽象层提供,所述计算设备对提供所需服务的软件系统隐藏底层计算硬件。然后监控程序(例如,“管理程序”或者“虚拟机监控器”)将虚拟机操作转换成对相应的实际物理计算设备以及其相关1/0和存储设备的特征的访问。
[0006]VMware?是常见的可商购的系统,其提供这种管理程序和相关管理工具以管理计算设备上的虚拟机。管理工具有助于创建和销毁在计算设备上运行的虚拟机以及在各种计算设备之间迁移虚拟机。
[0007]这种虚拟计算环境的一个重要优点是在各种物理计算设备之间移动/迁移虚拟机(提供所需的计算设备)的能力。例如,如果管理员需要禁止特定的物理计算设备以服务该设备,那么在该计算设备上运行的虚拟机可以被移动或者迁移至另一个物理计算设备以允许对第一物理计算设备的管理服务。VMware?系列产品提供称为vMotionTM(也称作“动态迁移”)的特征/功能以提高在物理计算设备之间迁移虚拟机的灵活性。VMWar^VMotioii1^使运行的虚拟机从一个物理服务器(计算设备)动态迁移至另一个,并且具有零停机时间、连续的服务可用性和完整的执行完整性。vMotion?是创建动态、自动化和自优化数据中心的关键实现技术。
[0008]一些系统利用这种虚拟化环境以提供多个虚拟机-每个在存储系统管理的上下文中提供不同的计算服务。例如,在一个或者多个物理计算设备上,联网客户端程序集群(例如在供应商的呼叫中心)可以被实现为虚拟机。每个呼叫中心代表在虚拟机上运行客户端程序,所述虚拟机可以被物理迁移(通过管理程序)至任何合适的物理计算系统。客户端程序利用下层计算设备的计算资源,包括其I/o设备和存储子系统。一些存储子系统包括先进的高速缓存能力以允许提高性能。数据通过虚拟机的运行被存储在永久大容量存储设备上,所述数据可以被存储在具有不同性能特征的永久存储的各个层级中以提高存储子系统的整体性能。例如,LSI公司提供的产品-RAID存储控
制器,提供闪存组件作为与由存储控制器控制的典型硬盘驱动器相比更高速的存储层。因此,这种存储控制器可以提供不同性能存储容量的各个层级,并且可以动态地确定相对于正在访问已存储数据的系统哪些存储的数据应该在各个层级之间透明地移动。
[0009]在虚拟机环境中利用存储子系统的背景下,对于多个虚拟机(每个提供相关的客户端服务)要求对已存储数据的共享访问是常见的。在VMwai*e?的背景中,^StorageVirtual Machine File System(VMFS)是高性能集群文件系统,其提供针对虚拟机优化的存储虚拟化。每个虚拟机被封装到小文件集内并且VMFS是这些文件在物理SCSI磁盘和分区上的默认存储系统。使用VMFS用于在多个虚拟机之间分享的存储操作带来许多挑战。这些挑战中的主要挑战是VMFS增加了显著的处理开销,从而减小了高级存储控制器的性能优势,所述高级存储控制器可以在高速缓存存储的各个分层级别中存储数据以提高性能。此外,在计算系统上分享存储数据访问的虚拟机的创建、删除和迁移在虚拟机之间公平分配不同层级的存储性能产生了进一步的问题。此外,各种虚拟机的性能特性可能会迅速地改变,以至于高级高速缓存存储控制器的提高性能可能不能快速适应多个虚拟机正在改变的性能分布。
[0010]因此,在多虚拟机共享访问存储数据的虚拟系统的背景下,关于分层高速缓存存储子系统中的存储容量的分配和解除分配 仍然存在许多挑战,尤其是在VMware?.计算环境背景下。

【发明内容】

[0011]本发明解决了上述和其它问题,从而通过为计算设备存储控制器中管理高速缓存提高灵活性提供方法和结构,改进了有用技术的现状,在所述计算设备上,多个虚拟机(VMs)在VM计算环境中操作。本发明实施例提供存储控制器用于从与存储控制器耦合的VM管理系统接收配置信息,其中配置信息包括关于目前在计算设备上运行的每个VM的信息。基于配置信息,存储控制器分配和解除分配存储控制器的高速缓存存储器段以供目前在计算设备上运行的各种虚拟机使用。配置信息可以包括当前运行的VM数量的标记以及基于每个虚拟机当前性能对段进行分配/解除分配的性能度量阈值配置信息。
[0012]在本发明的一个方面中,增强型存储控制器被提供用于与在虚拟机(VM)计算环境中操作的计算设备耦合。VM计算环境提供计算设备上多个VMs的操作并且包括与计算设备耦合的VM管理系统(VMMS)。存储控制器包括可访问VMs中任何一个的高速缓存存储器。高速缓存存储器逻辑上被细分成多个段。存储控制器进一步包括与高速缓存存储器耦合并且与VMMS通信耦合的高速缓存控制逻辑块,用于从VMMS接收配置信息。配置信息包括关于当前在计算设备上运行的每个VM的配置信息。基于从VMMS接收的配置信息,高速缓存控制逻辑块适用于可控地分配和解除分配多个段的一部分以供当前在计算设备上操作的每个虚拟机使用,其中基于配置信息每个部分包括多个段。
[0013]本发明中的另一个方面提供包括多个计算设备的系统,每个计算设备进一步包括增强型存储控制器(如上所述)和与存储控制器中的每一个通信耦合的虚拟机管理系统。
[0014]本发明中的又一方面提供可操作用于增强型存储控制器中的方法,其适用于与在VM计算环境中在计算设备上运行的一个或者多个虚拟机(VM)通信耦合。该方法包括将存储控制器的高速缓存存储器逻辑上划分成多个段并且为在计算设备上初始运行的VM中的每一个分配多个段的一部分。每个部分包括根据在计算设备上初始运行的VM的数量而确定的若干段。该方法进一步包括从VMMS接收配置信息。配置信息包括当前在计算设备上运行的VM数量的变化。然后该方法响应于接收到配置信息,调整与一个或者多个VM关联的部分中分配的段的数量。
【专利附图】

【附图说明】
[0015]图1示出了根据本发明的特征和方面结合多个增强的存储控制器的示例性虚拟机计算系统的框图,以对相应计算设备上运行的虚拟机的高速缓存存储器提供快速、动态分配和解除分配。
[0016]图2示出了描述图1的增强型存储控制器的示例性其它细节的流程图。
[0017]图3至图8示出了根据本发明的特征和方面的描述操作图1和图2的增强型存储控制器的示例性方法的流程图,为相应计算设备上运行的虚拟机的高速缓存存储器提供快速、动态分配和解除分配。
【具体实施方式】
[0018]图1示出了虚拟机计算环境的框图,所述虚拟机计算环境(系统100)包括与虚拟机管理系统(VMMS) 102通信耦合的多个计算设备(104、124和144)。每个计算设备102、124和144可以包括能够在虚拟机计算环境中操作的任何合适的计算系统或者组件(例如个人计算机、服务器或者其它类似计算设备)。虚拟机管理系统102同样包括任何合适的计算设备,在所述计算设备上,虚拟机管理程序可操作用于配置和控制整个虚拟机环境以及可在计算设备104、124和144的每一个中运行的虚拟机的参数。虚拟机管理系统102通过任何标准通信介质和协议与每个计算设备104、124和144 (用连接标签“A”的线表示)的组件进行通信,所述标准通信介质和协议包括例如TCP/IP的网络协议。在一些实施例中,VMMS102可以是在计算设备104、124或者144中的一个内运行的程序。
[0019]根据本发明的特征和方面,每个计算设备104、124和144分别包括相应的增强型存储控制器106、126和146。每个存储控制器与VMMS102通信耦合(如连接器标签“A”所示)。每个存储控制器可以包括任何合适的外围接口设备,适于与相应计算设备通信耦合并且适于管理和控制与每个存储控制器耦合的存储设备(未示出)。在一些示例性实施例中,每个增强型存储控制器106、126和146可以包括RAID存储控制器,可操作用于定义和管理对逻辑卷的访问,所述逻辑卷包括一个或者多个物理存储设备的各部分并且提供由RAID存储管理技术所定义的可靠性和性能的提高。在一些示例性实施例中,每个存储控制器可以包括主机总线适配器(HBA),适用于与其相应的计算设备物理耦合和电耦合。
[0020]根据虚拟机计算环境,每个计算设备104、124和144包括管理程序(例如,计算设备104内的管理程序108和在计算设备124和144内运行的类似管理程序(未示出))。如在虚拟机计算环境【技术领域】中通常已知的,管理程序为计算设备的物理计算电子器件提供抽象层,管理程序在所述计算设备中运行以便当管理程序为多个虚拟机的每一个实现物理计算设备和外围设备的分享时,多个虚拟机可以像它们存在于专用计算系统中一样运行。如图1所示,计算设备104包括三个示例性虚拟机-虚拟机“A”110.1、虚拟机“B”110.2和虚拟机“C” 110.3。每个这种虚拟机通过管理程序108进行通信以访问计算设备104的物理计算资源,包括例如增强型控制器106和其相关的存储设备(未显示)。
[0021]本领域普通技术人员容易将VMware?理解为典型的可商购的虚拟机计算环境。在这种VMware?计算环境中,VMMS102代表“VMwarevCenter”,即一种程序,可操作用于管理在多个计算设备中运行的虚拟机的配置和状态。在各种类似的虚拟机计算环境中,本发明的特征和方面是可操作的。因此,VM\vare_w仅旨在作为一个示例性的本发明的特征和方面可以被有利地使用的VM计算环境。在一些VMware?实施例中,管理系统(VMMS102)进一步包括插件模块150,通过相应的计算设备的管理程序与每个存储控制器进行通信。换言之,在VMware?示例性实施例中,VMMS102(vCenter)中的插件模块150根据VMware?:规范被设计用于与管理程序108进行通信,所述管理程序108进而通过也是在VMware?的规范中定义的标准定义应用程序接口(APi)与存储控制器106进行通信。在其它示例性实施例中,其它合适的通信信道、协议和API可以被有利地使用以将存储控制器与VMMS进行通信耦合。
[0022]增强型存储控制器106、126和146各自为提高性能提供与访问底层物理存储设备(未示出)相比高性能的高速缓存存储器管理。如存储领域通常已知的,高速缓存存储器结构被利用以提供与访问较慢、永久、非易失性存储设备(例如旋转光盘驱动器或者磁盘驱动器)相比提高的性能。从永久、非失易性存储设备读取的数据可以被存储在存储控制器的高速缓存存储器中,以便后续读取请求可以通过访问高速缓存存储器中的数据更快速完成,而不是通过较慢、永久、非失易性存储设备完成。同样地,与由增强型存储控制器106、126和146处理的写请求相关的数据可以被存储在相应的存储控制器的高速缓存存储器中,从而允许后续读取请求从高速缓存访问数据。另外,高速缓存存储器可以以回写模式进行操作,以便写至高速缓存存储器的数据稍后可以被发送或者刷新至永久、非失易性存储设备,从而允许存储控制器指示立即完成相应请求虚拟机的写请求(110.1至110.3)。
[0023]如上所述,在虚拟机计算环境中运行的虚拟机可以被动态创建和销毁以及(例如,为了负载均衡等通过VMMS)从一个计算设备迁移至另一个计算设备。因此,增强型存储控制器106、126和146提供改进的高速缓存存储器管理以允许动态增加和减少在相应计算设备(分别为104、124和144)内运行的每个虚拟机利用的高速缓存存储器一部分的尺寸。通常来说,增强型存储控制器106、126和146可操作用于将它们各自的高速缓存细分成多个高速缓存存储器段,以便可以根据需要基于所需性能的水平和/或者基于在每个计算设备中运行的虚拟机的数量,将各段在分别在对应计算设备104、124和144中运行的各种虚拟机之间进行分配和解除分配。
[0024]图2示出了描述增强型存储控制器(例如图1的存储控制器104、124和144)结构的示例性其它细节的框图。每个存储控制器可以包括控制逻辑250,代表电路和/或编程指令,编程指令可在存储控制器的适当处理器中操作以控制存储控制器的操作。控制逻辑250可以包括一般性存储控制逻辑252,代表用于控制存储控制器总体操作的适当编程指令和/或者定制电路(例如,用于与附接主机系统和附接存储设备进行交互的逻辑以及用于执行适当操作以处理从附接主机系统接收到的指向存储设备和/或者逻辑卷的I/o请求)。经过控制逻辑252的存储控制器106可以表示沿着相应的高速缓存存储器部分的存储设备和/或者逻辑卷为原生装置,所述原生装置由相应的虚拟机通过相应计算设备的管理程序访问。因此在VMware?虚拟机计算环境中,可以避免与vmfs相关的额外开销处理。
[0025]根据本发明的特征和方面,控制逻辑250进一步包括插件模块接口 202和高速缓存控制逻辑块204。此外,每个存储控制器包括用于存储高速缓存数据的高速缓存存储器220,所述高速缓存数据与存储在与控制器耦合的永久、非失易性存储设备上的数据相关联。插件模块接口 202可以包括用于与管理程序(例如图1的VMMS102)交互的任何合适的电路和/或者程序指令。通常,插件模块接口 102可以从VMMS102接收异步信息,所述信息指示对虚拟机计算环境配置的改变。另外,插件模块接口 202可以询问VMMS102以请求关于在计算设备上运行的虚拟机的当前配置信息,其中存储控制器在所述计算设备中操作。在VMware?示例性实施例中,接口 202执行根据VMware?规范定义的APi以与vCenter内对应的插件模块(例如,VMMS102的插件模块150)交换信息。高速缓存存储器220可以使用任何合适的存储电路来实现,包括例如动态随机存取存储器(DRAM)。高速缓存控制逻辑块204代表任何合适的电子电路和/或者程序指令(由合适的处理器执行),其适于与插件模块接口 202耦合以接收关于在相应计算设备(以及整个虚拟机计算环境)上运行的虚拟机的配置信息。高速缓存控制逻辑块204进一步适于与高速缓存存储器220耦合以管理高速缓存存储器220的各段的分配和解除分配,以与在对应计算设备中运行的多个虚拟机中的每一个相关联。本领域普通技术人员将容易认识到控制逻辑250的元件可以被实现为适当设计的定制电子电路、存储在适当程序存储器(未示出)中由合适的通用或者专用处理器(未示出)执行的适当编程指令,或者定制电路和程序指令的任意组合。
[0026]在运行中,高速缓存控制逻辑块204将高速缓存存储器220的容量划分成多个段(208.1至208.5,210.1至210.3和212.1至212.6)。通过它与插件模块接口 202的交互,高速缓存控制逻辑块204可以分配任何数量的这种段以供在计算设备上运行的每个虚拟机使用。因此,目前在计算设备上运行的每个虚拟机具有被分配供其使用的一部分高速缓存存储器220容量。每个部分可以由高速缓存控制逻辑块204分配为段的有序序列。例如,部分206.1可以与图1的VM “Α,,110.I相关联,部分206.2可以与图2的VM “Β”110.2相关联,以及部分206.3可以与图1的VM “C” 110.3相关联。根据存储控制器206可在其中运行的计算设备104的目前配置和运行状态,部分206.1已被分配了五个段(208.1至208.5)。类似地,部分206.2已被分配了三个段(210.1至210.3),以及部分206.3目前还没有段分配给它(例如,对应的虚拟机目前不需要高速缓存来达到其期望的性能)。此外,根据存储控制器正在其中运行的计算设备104的当前配置和运行状态,高速缓存存储器220包括六个目前未被分配的段212.1至212.6。本领域普通技术人员将容易地认识到任何数量的这种段可以是分配的或者未被分配的。因此,图2的每个部分所示以及显示为未分配的段的数量仅旨在代表可能的目前运行配置。此外,根据虚拟机和整个虚拟机计算环境的当前性能目标和/或期望性能目标,每个段的大小可以被确定为设计选择的问题。
[0027]每个部分可以通过任何合适的数据结构关联它目前分配的段作为部分,所述数据结构包括,例如,单链表结构或者双链表结构或者其它合适的元数据结构,用于关联当前分配给相应部分的一个或者多个段(例如,供相应的虚拟机使用)。如上所述,以及如存储领域中已知的,高速缓存存储器可以在直写模式中被使用,在该模式中,被写入高速缓存存储器的所有数据立即被发送或者刷新至相应的永久、非失易性存储设备,或者可以在回写模式中操作,在该模式中,数据立即被写入高速缓存存储器但是发送或者刷新至永久存储被推迟至存储控制器有空闲处理能力的稍晚的时间。为了提高针对特定部分可以分配和解除分配段的速度,每个分配的段可以被指定用于回写或者直写操作。被指定用于直写操作的段可以立即被解除分配,以用于重新分配给所需要的另一部分,以提高在计算设备中运行的虚拟机的性能。相反,在高速缓存存储器220另一部分中由另一个虚拟机解除分配以用于重新分配和使用之前,分配给一部分并且指定用于回写的段必须首先被刷新至相应的永久存储器。因此,如图2所示的每个段表示它是否已经被指定用于回写操作(WB)或者直写操作(WT)。在一个示例性实施例中,如图2所示,每个部分的段被分配成段的序列(例如,附图标记指示的诸如208.1至208.5的序列)。因此,这种段序列至少包括序列的最后段。例如,在部分206.1中,段208.5表示这种最后段,而在部分206.2中,段210.3表示这种最后段。在一些示例性实施例中,最后段可以一直被指定用于直写使用,以便任何部分的最后段可以被立即解除分配,从而用于重新分配段用于在另一部分和其相应虚拟机中使用。如本文以下进一步详细讨论的,当这种直写最后段被解除分配时,新的最后段(例如,段的当前序列的最后段的紧邻段)从回写使用转换到直写使用。伴随这种转换,存储控制器106 (例如,由高速缓存控制逻辑块204操作)从回写高速缓存存储器段将任何数据刷新至相应的永久、非失易性存储器的位置。完成刷新或者发送这种“脏”数据后,新的最后段可以被指定用于直写使用,以使得其可用于在各种部分之间迅速的解除分配和重新分配。
[0028]本领域普通技术人员将容易地认识到许多附加和等同的元件可能存在于功能完全的虚拟机计算环境(例如图1的系统100和图2的存储控制器106)中。为了该讨论的简单和简洁,此处省略了这些附加和等同元件。
[0029]图3至图8示出了描述用于增强型存储控制器(例如图1和图2的存储控制器106)的示例性操作方法的流程图。具体地说,图3至图8的方法可操作用于高速缓存控制逻辑块元件中(例如图2的增强型存储控制器106的高速缓存控制逻辑块204)。图3的步骤300从虚拟机管理系统接收初始配置信息。初始配置信息包括关于初始可运行在计算设备上的虚拟机的信息,其中增强型控制器可用在所述计算设备中。这些配置信息可以包括,例如,初始被配置为在计算设备上运行的虚拟机的数量。如本文以下进一步所讨论的,初始配置信息还可以包括被分配给这些最初运行虚拟机的每一个的最小高速缓存部分的大小。这种最小高速缓存部分的大小可以由高速缓存控制逻辑块使用以确保分配给每个虚拟机的部分从不下降到指定最小值以下。其它配置信息可以包括性能阈值信息,其指示可在计算设备上运行的每个虚拟机的阈值性能度量。例如,性能度量阈值配置信息可以包括诸如每个VM的I/O请求处理速率、每个VM的期望用户响应时间和由每个VM处理的小I/O请求与大I/O请求的比率。本领域普通技术人员将容易地认识到其它配置信息,所述其它配置信息可以从虚拟机管理系统获取以识别每个虚拟机的期望性能特性以及整个计算设备或者整个虚拟机计算环境的性能。在步骤302,增强型存储控制器将高速缓存存储器的容量逻辑地细分成多个高速缓存存储器段。如上所述,为适合特定的应用,段的大小可以被确定为设计选择的问题。此外,只要可以适合特定应用,段可以大小不同以允许分配不同大小的段。多个段的每个段最初未被分配(例如,通过增强型存储控制器的操作自由分配给虚拟机的任何一个)。根据初始配置信息,步骤304为在该计算设备上运行的每个虚拟机分配多个段的一部分。例如,每个虚拟机可以接收相等的分配作为其高速缓存存储器容量部分。在其它实施例中,配置信息可以表明提供给每一个虚拟机的特定分配。更进一步,如上所述,按照初始配置信息,最小分配可被指定给每一个虚拟机。因此,用于每个虚拟机的多个段的部分的初始分配可以基于最初运行的虚拟机的数量或者可以基于从初始配置信息得出的其它标准。在一些实施例中,虚拟机可以接收零分配的段作为所述高速缓存存储器的初始部分(例如,虚拟机的最小分配可以是零)。
[0030]当存储控制器开始正常操作(代表在计算设备中运行的每个虚拟机处理I/O请求),存储控制器可以从虚拟机管理系统接收(在步骤306处)更新的配置信息。更新的信息可以表明,例如,目前在该计算设备上运行的虚拟机数量的改变。另外,更新的配置信息可以表明在期望性能度量阈值配置信息的变化。当虚拟机被创建或者终止(或者在计算设备之间移动/迁移),更新的配置信息可以反映在当前运行的虚拟机数量的适当改变和/或者当前运行的各种虚拟机期望性能特征的变化。在一些实施例中,存储控制器可以周期性地查询虚拟机管理系统以获取这些更新的配置信息。在其它示例性实施例中,当虚拟机计算环境的配置改变时,虚拟机管理系统可以异步地提供(例如,推送)这些信息至存储控制器。如上所述,增强型存储控制器内的插件模块可以从虚拟机管理系统接收这些信息。在虚拟机计算环境的VMware?实施的背景中,插件模块可以与1VlViwarei8i环境的vCenter组件交互以获取这些更新的配置信息。根据更新的配置信息,步骤308为当前在计算设备上运行的一个或者多个虚拟机调整分配给高速缓存存储器部分的段的数量。例如,如果虚拟机已经被终止或者迁移至另一个计算设备,分配给该虚拟机的高速缓存存储器段的部分可以被解除分配,并且因此自由地重新分配给该计算设备上的其它虚拟机。或者,例如,如果性能度量阈值配置信息被改变或者如果正在运行的虚拟机的性能度量的当前测量值发生改变,那么高速缓存存储器段可以在运行在该计算设备上的各种虚拟机之间分配或者解除分配。
[0031]如上所述,高速缓存存储器可以在直写模式或者回写模式中使用。图4至图8表示图3方法的变化,以使得高速缓存存储器段在回写或者直写模式中使用。图4示出了描述根据本发明的特征和方面的另一个示例性方法的流程图,所述方法动态地调整分配给计算设备上运行的多个虚拟机的每一个的高速缓存存储器段的分配。如上所述,图4的方法可在增强型存储控制器(例如图1和图2的存储控制器106)上执行。步骤400至404可以以类似如上关于图3所述的步骤300至304的方法进行执行。一般来说,初始配置信息是从虚拟机管理系统接收的。根据初始配置信息,高速缓存存储器的容量被逻辑地细分成多个段并且分配给最初在该计算设备上运行的虚拟机的每一个。初始分配可以基于对每个VM指定的最小高速缓存尺寸和/或者可以基于最初在计算设备上运行的虚拟机的数量。
[0032]在这种初始分配之后,步骤406将每个部分的最后段设置为用作直写高速缓存段。如上所述,在一些示例性实施例中,可以由代表相应虚拟机的存储控制器在回写高速缓存模式中更好地利用高速缓存段。为了提高段可以被分配或者解除分配的速度,被分配为用于虚拟机的高速缓存存储器一部分的段的序列的最后段被指定/配置以用作直写高速缓存段。这种被配置用作直写高速缓存段的最后段可以立刻被解除分配用于重新分配给在计算设备上运行的另一个虚拟机的另一部分。除了最后段之外的部分的序列中的段可以被配置用作回写高速缓存段。如上所述,解除分配和重新分配回写高速缓存段需要通过存储控制器的额外处理以确保高速缓存段内要被解除分配的任何“脏的”数据首先被刷新或者发送至由存储控制器控制的存储设备上的永久存储器。
[0033]然后,步骤408和410可以以类似图3的步骤306和308的方式进行操作。在步骤408,增强型存储控制器从虚拟机管理系统接收更新的配置信息,所述配置信息指示当前在该计算设备中运行的虚拟机中的一些变化。根据从虚拟机管理系统接收的更新配置信息,步骤410调整分配给一个或者多个虚拟机一部分的段的数量。
[0034]图5示出了表示增强型存储控制器(例如图1和图2的存储控制器106)操作的示例性附加细节的流程图。图5的方法可以周期性地在增强型存储控制器内操作以检测一个或者多个虚拟机的性能度量的变化以及基于期望性能在每个虚拟机的各种部分之间调整段的分配。步骤500将与每个虚拟机相关的性能度量阈值配置信息与在存储控制器内测量的相应当前性能度量比较。基于比较,步骤502可以调整分配给一个或者多个虚拟机一部分的段的数量。例如,如果一个虚拟机具有下降到相应期望性能度量阈值以下的性能度量测量值,与该虚拟机相关的高速缓存存储器部分可以要求分配一个或者多个附加的高速缓存存储器段。或者,例如,根据被测量的特定性能度量,超过阈值可以表明减少分配给特定虚拟机段的数量的理由。在要求附加段的地方,如果可用,可以利用当前未被分配的段。如果当前没有未被分配的段可用,则当前被分配给其它虚拟机的一个或者多个段可以被解除分配,并且接着重新分配给用于需要附加高速缓存存储器段以满足其所需性能度量阈值的该虚拟机的部分。
[0035]图6示出了描述在增强型存储控制器(例如图1和图2的增强型存储控制器106)内处理以分配附加的高速缓存存储器段给特定虚拟机的示例性附加细节的示意图。在步骤600,存储控制器确定是否有足够的段可用于从当前未被分配的高速缓存存储器段池进行分配。如果不是,步骤620可操作地定位当前被分配给部分其它虚拟机的一个或者多个段,所述段可被解除分配以允许重新分配给需要附加高速缓存段的虚拟机。将如此定位的附加高速缓存段解除分配,步骤620还从其它虚拟机将标识的段解除分配以使它们目前未被分配,从而允许它们被重新分配给需要附加段的虚拟机。处理接着循环返回至步骤600以确定目前是否有足够的段可用于重新分配。
[0036]当足够的可用段已经被定位以及解除分配(通过步骤620的操作),步骤602重新配置对于虚拟机部分的当前最后段以利用回写高速缓存模式。由于最后段之前被配置为利用直写高速缓存模式,因此没有数据需要被发送或者刷新。相反,高速缓存段可以简单地被重新配置用在回写模式。步骤604接着为虚拟机分配一个或者多个附加段(从新解除分配/释放的段)并且添加新分配的段至段序列,该段序列被分配给需要附加高速缓存段的虚拟机的高速缓存存储器部分。步骤606接着配置新分配的段以用作回写高速缓存段,并且步骤608将该部分中的段的序列的新的最后段配置为直写段,以便之后如果需要它还可以被迅速地解除分配。
[0037]图7示出了描述图6步骤620的处理的示例性其它细节的流程图,所述处理从其它可以被解除分配的虚拟机定位段以使它们可用于重新分配给需要附加段的虚拟机。根据计算设备上的虚拟机的当前配置和/或者根据各种虚拟机的当前性能,图7的方法迭代通过目前在计算设备上运行的虚拟机的高速缓存存储器部分以定位可以被解除分配的段。对于要考虑的第一虚拟机,步骤700将一个或者多个性能度量阈值与对应当前性能度量测量值进行比较。根据性能度量比较,步骤702确定虚拟机目前是否有过多的段分配给其可以被解除分配的高速缓存存储器部分。如果不是,步骤712准备检查目前在计算设备上操作的另一个虚拟机并且处理继续循环返回至步骤700以进一步执行性能度量比较。如果步骤702基于性能测量比较确定虚拟机目前有过多的段分配给它的部分,则步骤704接着确定目前被分配给该虚拟机的段的数量是否超过被配置用于该虚拟机的最低分配。如果不是,步骤712可操作(如上)地用于准备检查下一个虚拟机并且处理继续循环返回至步骤700。否则,该虚拟机有过多的段分配给其高速缓存存储器部分,步骤706解除分配一个或者多个过多的段,从而释放它们用于重新分配给其它虚拟机。
[0038]图8示出了描述解除分配当前已分配给与特定虚拟机相关联的高速缓存存储器部分的一个或者多个段所需处理的示例性附加细节的流程图。图8的处理可以如上所述参考图7的步骤706被调用,或者在段可以被解除分配的其它情况下调用(例如将虚拟机从计算设备终止或者移除)。步骤800确定解除分配是否正试图将目前被分配给虚拟机的多于一个段解除分配。如果不是,如下所述,处理在步骤804处继续。如果是,步骤802发送或者刷新存储在将被解除分配的当前被配置用于回写使用的段内的任何“脏”数据。步骤804接着将一个或者多个段从与该虚拟机相关的高速缓存存储器部分解除分配。步骤806将段序列(如果有的话)的新的最后段重新配置用作直写高速缓存段。如果段之前被配置用于回写高速缓存操作,那么步骤806还保证目前存储在新的最后段中的任何“脏”数据首先被刷新或者发送至与存储控制器耦合的永久存储器设备。
[0039]本领域普通技术人员将容易认识到许多附加的和等同的步骤可能存在于全功能方法中,例如上述图3至8中描述的方法。为了本讨论的简单和简洁的目的,这里省略了这些附加和等同的步骤。
[0040]尽管已在附图和前面的描述中示出和详细描述了本发明,但是这样的图示和描述实质上应被认为是示例性的而非限制性的。已经示出和描述了本发明的一个实施例和对其的微小改变。特别地,作为示例性的软件或固件的实施例中所示出和描述的特征可以等效地实现为定制逻辑电路,反之亦然。期望对本发明的精神范围内的所有改变和修改进行保护。本领域的技术人员将理解落入本发明范围内的上述实施例的变化。结果是,本发明不限于上面所讨论的特定实例和图示,而是仅由下面的权利要求书及其等效方式限定。
【权利要求】
1.一种存储控制器(106),适用于与在虚拟机(VM)计算环境(100)中运行的计算设备(104)耦合,其中所述VM计算环境在计算设备上提供多个VM(IlO)的运行,并且其中所述VM计算环境包括与计算设备耦合的VM管理系统(VMMS) (102),所述存储控制器包括: 高速缓存存储器(220),能够访问VM中的任何一个,其中高速缓存存储器被逻辑地细分成多个段(208、210、212);以及 高速缓存控制逻辑块(204),与高速缓存存储器耦合并且与VMMS通信地耦合,其中高速缓存控制逻辑块适用于根据从VMMS接收的配置信息将多个段的一部分(206)可控地分配和解除分配以供当前在计算设备上运行的每个虚拟机使用,其中根据配置信息每个部分包括若干段。
2.根据权利要求1所述的系统, 其中关于每个VM的所述配置、信息进一步包括所述每个VM需要的部分的最小尺寸,以及 其中所述高速缓存控制逻辑块进一步适用于确保分配给所述每个VM的部分的尺寸至少与用于所述每个VM的最小尺寸一样大。
3.根据权利要求1所述的系统, 其中所述配置信息包括所述每个VM的性能度量阈值配置信息,所述性能度量阈值配置信息包括如下的一个或者多个: 所述每个VM的I/O请求处理速率, 所述每个VM的用户响应时间,以及 由所述每个VM处理的小I/O请求与大I/O请求的比率, 其中根据所述每个VM的当前性能度量与所述每个VM的性能度量阈值配置信息的比较,所述高速缓存控制逻辑块为所述每个VM分配和解除分配所述部分的段。
4.根据权利要求1所述的系统, 其中高速缓存控制逻辑块进一步适用于为所述每个VM分配每个部分作为一个或者多个段的有序序列,其中所述有序序列至少包括最后段。
5.根据权利要求4所述的系统, 其中高速缓存控制逻辑块将所述每个VM的部分的最后段配置为使用作为直写高速缓存存储器段。
6.根据权利要求5所述的系统, 其中所述高速缓存控制逻辑块进一步适用于确定第一 VM需要高速缓存存储器的附加段的分配, 其中所述高速缓存控制逻辑块进一步适用于将目前分配给另一个VM的最后段解除分配并且进一步适用于将解除分配的段分配给第一 VM。
7.根据权利要求4所述的系统, 其中分配给VM的段的有序序列包括具有最后段的多个段, 其中高速缓存控制逻辑块将所述序列的除了最后段之外的所有段配置为使用作为回写高速缓存存储器段,并且将最后段配置为使用作为直写高速缓存存储器段。
8.根据权利要求7所述的系统, 其中高速缓存控制逻辑块进一步适用于将当前分配给所述VM的最后段解除分配,以及 其中所述高速缓存控制逻辑块进一步适用于将剩余段的最后段重新配置为使用作为直写高速缓存存储器段。
9.根据权利要求1所述的系统, 其中所述高速缓存控制逻辑块进一步适用于从所述VMMS接收信号,所述信号指示从计算设备移除标识的W,以及 其中高速缓存控制逻辑块进一步适用于响应于接收到所述信号,将当前分配给所标识的VM的所有段解除分配。
10.一种可操作用在存储控制器(106)中的方法,所述存储控制器适用于与一个或者多个虚拟机(VM) (110)中的每一个通信地耦合,所述虚拟机在VM计算环境(100)中在计算设备上运行,所述方法包括: 将所述存储控制器的高速缓存存储器逻辑地划分成多个段; 为最初在所述计算设备上运行的每一个VM分配多个段的一部分,其中所述部分包括根据最初在所述计算设备上运行的VM的数量而确定的若干段; 从所述VMMS接收配置信息,其中配置信息包括当前在所述计算设备上运行的VM的数量的改变;以及 响应于接收配置信息,调整在与一个或者多个VM相关的部分中分配的段的数量。
11.根据权利要求10所述的方法, 其中配置信息进一步包括当前在所述计算设备上运行的每个VM的部分的最小尺寸,其中分配步骤进一步包括分配所述部分,其中在所述部分中的段的数量不少于用于当前在所述计算设备上运行的每个VM的最小尺寸,以及 其中分配步骤进一步包括分配所述部分,其中所述部分的尺寸至少是用于当前在计算设备上运行的每个VM的最小尺寸,以及 其中调整步骤进一步包括调整所述部分尺寸中段的数量,其中所述部分的尺寸至少是用于当前在所述计算设备上运行的每个VM的最小尺寸。
12.根据权利要求10所述的方法, 其中所述配置信息包括所述每个VM的性能度量阈值配置信息,所述性能度量阈值配置信息如下的包括一个或者多个: 所述每个VM的I/O请求处理速率, 所述每个VM的用户响应时间,以及 由所述每个VM处理的小I/O请求与大I/O请求的比率, 其中调整步骤进一步包括: 比较所述每个VM的当前性能度量与性能度量阈值配置信息,并且根据所述每个VM的当前性能度量与所述每个VM的性能度量阈值配置信息的比较分配和解除分配用于所述每个VM的部分的段。
13.根据权利要求10所述的方法, 其中分配步骤进一步包括分配用于所述每个VM的部分作为一个或者多个段的有序序列,其中所述有序序列至少包括最后段。
14.根据权利要求13所述的方法,其中分配步骤进一步包括将所述每个VM的部分的最后段配置为使用作为直写高速缓存存储器段。
15.根据权利要求14所述的方法, 其中调整步骤进一步包括: 确定第一 VM需要高速缓存存储器的附加段的分配; 将当前分配给另一个VM的最后段解除分配;以及 将所述解除分配的段分配给第一 VM。
16.根据权利要求13所述的方法, 其中分配给VM的段的有序序列包括具有最后段的多个段, 其中分配步骤进一步包括: 将所述序列的除了最后段之外的所有段配置为使用作为回写高速缓存存储器段;以及 将所述最后段配置为使用作为直写高速缓存存储器段。
17.根据权利要求16所述的方法, 其中调整步骤进一步包括: 将目前被分配给所述VM的所述最后段解除分配;以及 将剩余段的最后段重新配置为使用作为直写高速缓存存储器段。
18.根据权利要求10所述·的方法, 其中所接收到的配置信息包括来自所述VMMS的信息,所述信息指示从所述计算设备移除标识的W,以及 其中调整步骤进一步包括响应于接收到所述信息,将目前分配给所标识的VM的所有段解除分配。
【文档编号】G06F12/08GK103577345SQ201310085023
【公开日】2014年2月12日 申请日期:2013年3月18日 优先权日:2012年7月19日
【发明者】L·伯特, P·R·玛哈拉纳 申请人:Lsi公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1