CN1790294A - 保留虚拟机的高速缓存的系统和方法 - Google Patents

保留虚拟机的高速缓存的系统和方法 Download PDF

Info

Publication number
CN1790294A
CN1790294A CNA2005100230131A CN200510023013A CN1790294A CN 1790294 A CN1790294 A CN 1790294A CN A2005100230131 A CNA2005100230131 A CN A2005100230131A CN 200510023013 A CN200510023013 A CN 200510023013A CN 1790294 A CN1790294 A CN 1790294A
Authority
CN
China
Prior art keywords
virtual machine
speed cache
cache
described high
another
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2005100230131A
Other languages
English (en)
Other versions
CN100451995C (zh
Inventor
S·舒尔茨
X·特卡特寿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1790294A publication Critical patent/CN1790294A/zh
Application granted granted Critical
Publication of CN100451995C publication Critical patent/CN100451995C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种管理虚拟机高速缓存的系统、计算机程序产品和方法。在存储器中定义高速缓存且虚拟机被指派给所述高速缓存。在存储设备中记录所述高速缓存的标识。所述虚拟机终止,尽管所述虚拟机终止,仍保留所述高速缓存和所述高速缓存的内容,以便如果所述虚拟机随后重新开始运行,所述虚拟机可访问所述高速缓存及其内容。还存在一种管理逻辑分区高速缓存的系统、方法和计算机程序产品。在存储器中定义高速缓存且所述高速缓存被指派给逻辑分区。在存储设备中记录所述高速缓存的标识。所述逻辑分区终止,尽管所述逻辑分区终止,仍保留所述高速缓存和所述高速缓存的内容,以便如果所述逻辑分区随后重新开始运行,所述逻辑分区可访问所述高速缓存及其内容。

Description

保留虚拟机的高速缓存的系统和方法
技术领域
本发明一般地涉及计算机系统,具体地说,涉及保留虚拟机的高速缓存的内容。
背景技术
目前,配置为虚拟机的计算机是公知的。在这种配置中,系统管理程序将实际计算机的物理资源逻辑地划分成独立的虚拟机。虚拟机是对诸如一个或多个处理器、存储器、存储设备和I/O(即网卡、打印机和显示装置)之类的计算机资源的一种虚拟共享。在每个虚拟机上执行/运行客户操作系统。一个或多个应用和中间件程序(例如文件管理器)运行在每个客户操作系统上。尽管每个应用、中间件程序和客户操作系统都在虚拟机中执行,但是它们就像运行在其自己专用的实际计算机上那样运行。在公知的IBM z/VM操作系统中,系统管理程序被称为控制程序(“CP”),并且每个虚拟机可以被称为“虚拟机”、“用户部分”或“客户”。由逻辑分区程序将实际计算机的物理资源逻辑地划分为逻辑分区(“LPAR”),然后由系统管理程序将每个LPAR逻辑地划分为虚拟机,这也公知的。在公知的IBM zSeries计算机中,公知的IBM处理器资源/资源管理器(“PR/SM”)程序将实际计算机逻辑地分区。
公知的将实际计算机划分成虚拟机将在下面进一步描述。系统管理程序将一个或多个实际处理器的时间划分分配给每个虚拟机。系统管理程序还将一系列映射到RAM的(虚拟)专用存储器(“VPM”)分配给每个虚拟机。当虚拟机寻址其自己的(虚拟)专用存储器时,系统管理程序将虚拟存储器地址转换成实存储器的实地址。系统管理程序还将存储器分配给自身以便存储其自己的控制结构。
每个虚拟机中的客户操作系统可以是Linux(Linus Torvalds的商标)操作系统、IBM CMS操作系统或其他操作系统。在每个虚拟机的每个客户操作系统上执行的应用可以是IBM DB2数据库管理应用、IBM Websphere应用或其他应用。
用于每个虚拟机的客户操作系统和应用(多个)被存储在分配给虚拟机的专用存储器中。每个虚拟机还包括虚拟机的专用存储器中的高速缓存。该高速缓存包含由应用或中间件通过文件系统从(盘)存储设备最近访问的数据,以及关联的元数据。元数据包括文件的目录和子目录路径、当前被写入或读取的文件中的记录的标识、文件大小、文件中的记录的大小、文件中的数据的类型(ASCII、EBCDIC或BINARY)、文件在盘上被存储在何处等。
如以上说明的,逻辑分区程序将单个实际计算机逻辑地划分成多个逻辑分区(“LPAR”),然后由系统管理程序将每个逻辑分区逻辑地划分为独立的虚拟机,这也是公知的。换言之,逻辑分区程序逻辑地划分和虚拟化计算机资源(包括处理器(多个)和存储器的共享)以形成每个LPAR,然后系统管理程序进一步划分每个LPAR的计算机资源的逻辑共享以便为每一个虚拟机形成资源平台。通常,管理员通过向逻辑分区程序指定用于每个LPAR的处理器、存储器、存储设备的数量来帮助定义每个逻辑分区(“LPAR”)。每个LPAR可以被分配特定的实际计算机资源或总的计算机资源的一份。在一些计算机中,单独的系统管理程序被装入每个LPAR以便在每个逻辑分区中形成多个虚拟机。每个LPAR中的虚拟机以相同的方式运行,好像它们是从实际计算机直接形成的那样。
现有的IBM z/VM 4.2.0或4.3.0版虚拟机操作系统包括已知的系统管理程序,其具有从LPAR或实际计算机形成每个虚拟机的能力。现有的z/VM4.2.0操作系统的详细信息已在IBM出版物“z/VM4.2.0通用信息”(z/VM4.2.0 General Information,文档号:GC24-5991-03)中公开,该出版物可从国际商业机器公司(PO Box 29570,IBMPublications,Raleigh,NorthCarolina 27626-0570)或者在万维网上从www.IBM.com/shop/publications/order获得。此出版物在此作为本公开的一部分被引入作为参考。
诸如IBM DB/2程序之类的文件管理器程序也是公知的。文件管理器程序可以被认为是“中间件”。虚拟机中的应用可以向文件管理器请求文件,而文件管理器为该应用从存储设备访问文件。文件管理器可以在存储器中创建高速缓存以便存储应用所需的文件页,并且根据最近使用的算法保留这些页。
有时,虚拟机会终止。当由虚拟机的用户或实际计算机的管理员请求时,终止可以是“故意的”。此故意的终止通常被实现为标准的“注销”。终止也可以是意外的,这归因于虚拟机、客户操作系统、系统管理程序或实际计算机的故障。当虚拟机由于虚拟机或客户操作系统的故障或者由于虚拟机的注销而终止时,公知的系统管理程序自动地删除虚拟机的专用存储器(包括高速缓存)的内容。
每个虚拟机中的客户操作系统定期地将其高速缓存的内容“记录”或复制到非易失性盘是公知的。所以,如果虚拟机由于虚拟机、客户操作系统、系统管理程序或实际计算机的故障而终止,则最近访问的数据和元数据将被保留。因此,当虚拟机重新启动时,可以从存储设备提供高速缓存的内容以便恢复处理。但是,与其他虚拟机操作相比,由于存储设备的性质,定期将数据记录/复制到存储设备是较慢的。这将使虚拟机的运行变慢。
本发明的一个目的是当虚拟机由于所述虚拟机或其客户操作系统的故障而终止时,保留所述虚拟机的高速缓存的内容。
本发明的一个更具体的目的是在不减缓虚拟机运行的情况下保留所述虚拟机的高速缓存的内容。
发明内容
本发明存在于用于管理虚拟机的高速缓存的系统、计算机程序产品和方法中。在存储器中定义高速缓存,并且虚拟机被指派给所述高速缓存。在存储设备中记录所述高速缓存的标识。所述虚拟机终止,并且尽管所述虚拟机终止,但是所述高速缓存和所述高速缓存的内容被保留,使得在所述虚拟机随后恢复运行时,所述虚拟机可以访问所述高速缓存及其内容。
根据本发明的另一个特征,在与所述第一虚拟机相同的实际计算机上定义第二虚拟机。产生所述第一和第二虚拟机都是所述高速缓存的用户的记录,使得当所述第一虚拟机终止时,仍存在一个为所述高速缓存记录的运行用户。当所述第一虚拟机终止时,根据所述高速缓存的所述一个运行用户的所述记录来保留所述高速缓存及其内容。
根据本发明的另一个特征,所述虚拟机请求连接到所述高速缓存,并且作为响应,产生所述虚拟机是所述高速缓存的用户的记录。第二虚拟机请求连接到所述高速缓存,并且作为响应,产生所述第二虚拟机是所述高速缓存的另一个用户的记录。
根据本发明的另一个特征,所述虚拟机向所述虚拟机的系统管理程序做出连接到所述高速缓存并在所述虚拟机终止的情况下保留所述高速缓存的请求。作为响应,所述系统管理程序定义了一个表,该表将所述高速缓存的所述虚拟机使用的虚拟地址与所述高速缓存相关联。所述表在所述虚拟机终止后继续存在,由此在所述虚拟机终止的情况下,所述高速缓存被保留。
根据本发明的另一个特征,在与所述第一虚拟机相同的实际计算机上的另一个虚拟机向所述系统管理程序做出连接到另一个高速缓存但是在另一个虚拟机终止的情况不保留另一个高速缓存的请求。作为响应,所述系统管理程序定义了另一个表,该表将所述另一个高速缓存的所述另一个虚拟机使用的虚拟地址与所述另一个高速缓存相关联。所述另一个表在所述另一个虚拟机终止时被删除,由此在另一个虚拟机终止的情况下,所述另一个高速缓存被删除。
根据本发明的另一个特征,所述虚拟机向所述虚拟机的系统管理程序做出连接到所述高速缓存并在所述虚拟机终止的情况下保留所述高速缓存的请求。作为响应,所述系统管理程序产生在所述虚拟机终止的情况下所述高速缓存应被保留的记录。当所述虚拟机终止时,所述系统管理程序保留所述高速缓存和所述高速缓存的内容,使得在所述虚拟机恢复运行时,所述虚拟机可以访问所述高速缓存及其内容。
根据本发明的另一个特征,所述虚拟机恢复运行,并且所述虚拟机对所述高速缓存及其内容的访问被恢复。
根据本发明的另一个实施例,存在一种用于管理逻辑分区的高速缓存的系统、方法和计算机程序产品。在存储器中定义高速缓存,并且所述高速缓存被指派给逻辑分区。在存储设备中产生所述高速缓存的标识的记录。所述逻辑分区终止,尽管所述逻辑分区终止,但是所述高速缓存和所述高速缓存的内容被保留,使得在所述逻辑分区随后恢复运行时,所述逻辑分区可以访问所述高速缓存及其内容。
附图说明
图1是根据本发明的一个实施例的实际计算机的方框图,该实际计算机具有两个逻辑分区,每个逻辑分区中有多个虚拟机和一个系统管理程序;
图2是在虚拟机的初始化和设置期间图1的计算机系统内的生产(productive)虚拟机和系统管理程序的处理的流程图;
图3是图1的计算机系统内的高速缓存继续存在(keep alive)虚拟机和系统管理程序的处理的流程图;
图4是示出了在虚拟机终止期间图2的生产虚拟机和系统管理程序的处理的流程图;
图5是示出了在虚拟机重新引导期间图2的生产虚拟机和系统管理程序的处理的流程图;
图6是根据本发明的另一个实施例的另一个实际计算机的方框图,该实际计算机具有两个逻辑分区,每个逻辑分区中有多个虚拟机和一个系统管理程序;
图7是在虚拟机的初始化和设置或重新引导期间图6的计算机系统内的虚拟机和系统管理程序的处理的流程图;
图8是示出了在虚拟机终止期间图7的虚拟机和系统管理程序的处理的流程图;
图9是根据本发明的另一个实施例的具有两个逻辑分区的实际计算机的方框图;
图10是在LPAR的初始化和设置期间图9的计算机系统内的生产LPAR和逻辑分区程序的处理的流程图;
图11是图9的计算机系统内的高速缓存继续存在虚拟LPAR和逻辑分区程序的处理的流程图;
图12是示出了在虚拟机终止期间图10的生产LPAR和逻辑分区程序的处理的流程图;
图13是示出了在虚拟机重新引导期间图10的生产LPAR和逻辑分区程序的处理的流程图。
具体实施方式
现在将参考附图详细描述本发明,其中相同的标号始终指相同的部件。图1示出了根据本发明的一个实施例的通常指定为110的计算机系统。计算机系统110包括实际/物理计算机20。计算机20包括CPU 23、RAM 24、逻辑分区程序25以及操作者控制台27。计算机系统110还包括本地或远程的外部(盘)存储设备26。通过实例的方式,实际计算机20可以是IBMzSeries服务器,尽管本发明也可以以其他服务器计算机或个人计算机来实现。在图1示出的实施例中,逻辑分区程序25是公知的IBM处理器资源/资源管理器(“PR/SM”)程序,并且将实际计算机20分成逻辑分区(“LPAR”)30和31,尽管如果希望,程序25可以将计算机20分成更多的逻辑分区。也可以使用其他公知的逻辑分区程序。LPAR是计算机20的实际计算机资源的实际或逻辑分区。例如,如果计算机20包括八个处理器,程序25可以将四个实际处理器分配给LPAR 30,而将其他四个实际处理器分配给LPAR31,或者程序25可以在LPAR 30与31之间分时使用所有八个处理器。程序25还在LPAR 30与LPAR 31之间划分整个存储器24,通常作为“虚拟”存储器。“虚拟”存储器分配基于分配给每个LPAR的虚拟存储器地址范围,与实存储器24中的物理位置无关。程序25借助地址转换表将每个LPAR使用的虚拟地址转换成实际数据存储的实存储器地址。两个LPAR中的虚拟机都通过提供给各自的系统管理程序的虚拟地址来访问存储设备26。本发明还可以被包含在包括虚拟机和系统管理程序但是并没有被划分成单独的LPAR的实际计算机中。
系统管理程序40和41分别在LPAR 30和31上执行。系统管理程序40将LPAR 30划分成虚拟机33,34和35(以及其他未示出的虚拟机)。换言之,系统管理程序40逻辑地划分和虚拟化LPAR 30的计算机资源(包括处理器(多个)23和存储器24的共享),以便为虚拟机33,34和35中的每个虚拟机形成资源平台。系统管理程序40将分配给LPAR 30的实际处理器(多个)23的时分分配给每个虚拟机33,34和35。系统管理程序40将一系列映射到RAM 24的(虚拟)专用存储器(“VPM”)(例如,用于虚拟机33的虚拟专用存储器133,以及用于虚拟机34的虚拟专用存储器134)分配给每个虚拟机33,34和35。当虚拟机33或34寻址其(虚拟)专用存储器时,系统管理程序40将虚拟存储器地址转换成实存储器24的实地址。虚拟机33和34是“生产”虚拟机,因为它们执行诸如Web应用或数据库应用之类的生产应用。如以下更详细地说明的,“高速缓存继续存在”虚拟机35的功能是确保在虚拟机33和34异常终止的情况下分配给虚拟机33和34的高速缓存继续存在。
对于LPAR 30中的每个虚拟机,客户操作系统、一个或多个应用以及中间件(例如文件管理器)在分配给虚拟机的(虚拟)处理器(多个)上执行。客户操作系统43,44和45分别在虚拟机33,34和35上执行,并且应用53,54和中间件63,64分别在客户操作系统43,44上执行。但是,每个客户操作系统上可以存在多个正在执行的应用。通过实例的方式,客户操作系统可以是Linux(Linus Torvalds的商标)操作系统或IBM CMS操作系统。其他客户操作系统也是可用的,例如Microsoft Windows(tm)操作系统、Unix(tm)操作系统、Sun Microsystems Solaris(tm)操作系统或Hewlett Packard HP UX操作系统。通过实例的方式,应用53和54可以是IBM DB2数据库管理应用、IBM Websphere应用或其他应用。应用53和54的性质并不形成本发明的任何部分,除了它们使用用于数据和元数据的高速缓存存储器以外。用于LPAR 30中的每个虚拟机的客户操作系统和应用(多个)被存储在分配给虚拟机的各自的专用存储器中。
在示出的实施例中,虚拟机33和34的高速缓存被存储在分配给系统管理程序40的存储器220中。用于虚拟机33的高速缓存233可由虚拟机33、虚拟机35和系统管理程序40访问,尽管实际上高速缓存继续存在虚拟机35不需要访问高速缓存233。同样地,用于虚拟机34的高速缓存234可由虚拟机34、虚拟机35和系统管理程序40访问,尽管实际上高速缓存继续存在虚拟机35不需要访问高速缓存234。
系统管理程序41将LPAR 31划分成虚拟机36,37和38(以及其他未示出的虚拟机)。换言之,系统管理程序41逻辑地划分和虚拟化LPAR 31的计算机资源(包括处理器(多个)23和存储器24的共享),以便为虚拟机36,37和38中的每个虚拟机形成资源平台。系统管理程序41将分配给LPAR 31的实际处理器(多个)23的时分分配给每个虚拟机36,37和38。系统管理程序41还从LPAR 31将一系列映射到RAM 24的(虚拟)专用存储器(“VPM”)(例如,用于虚拟机36的虚拟专用存储器136,以及用于虚拟机37的虚拟专用存储器137)分配给每个虚拟机36,37和38。当虚拟机36或37寻址其(虚拟)专用存储器时,系统管理程序41将虚拟存储器地址转换成实存储器24的实地址。虚拟机36和37是“生产”虚拟机,因为它们执行诸如Web应用或数据库应用之类的生产应用。如以下更详细地说明的,“高速缓存继续存在”虚拟机38的功能是确保在虚拟机36和37异常终止的情况下分配给虚拟机36和37的高速缓存继续存在。
对于LPAR 31中的每个虚拟机,客户操作系统以及一个或多个应用在分配给虚拟机的(虚拟)处理器(多个)上执行。客户操作系统46,47和48分别在虚拟机36,37和38上执行,并且应用56,57和中间件66,67(例如文件管理器)分别在客户操作系统46,47上执行。但是,每个客户操作系统上可以存在多个正在执行的应用。通过实例的方式,客户操作系统可以是Linux(Linus Torvalds的商标)操作系统或IBM CMS操作系统。其他客户操作系统也是可用的,例如Microsoft Windows(tm)操作系统、Unix(tm)操作系统、Sun Microsystems Solaris(tm)操作系统或Hewlett Packard HP UX操作系统。通过实例的方式,应用56和57可以是IBM DB2数据库管理应用、IBM Websphere应用或其他应用。应用56和57的性质并不形成本发明的任何部分,除了它们使用用于数据和元数据的高速缓存存储器以外。用于LPAR 31中的每个虚拟机的客户操作系统和应用(多个)被存储在分配给虚拟机的各自的专用存储器中。
在示出的实施例中,虚拟机36和37的高速缓存被存储在分配给系统管理程序41的存储器中。虚拟机36的高速缓存可由虚拟机36、虚拟机38和系统管理程序41访问,尽管实际上虚拟机38不需要访问此高速缓存。同样地,虚拟机37的高速缓存可由虚拟机37、虚拟机38和系统管理程序41访问,尽管实际上虚拟机38不需要访问此高速缓存。
每个生产虚拟机都具有其自己的高速缓存,该高速缓存存储从存储设备26获得的其自己的数据和元数据。缓存的数据通常是文件的最近引用的数据(或“页”)。元数据可以包括文件的目录和子目录路径、当前被写入或读取的文件中的记录的标识、文件大小、文件中的记录的大小、文件中的数据的类型(ASCII、EBCDIC或BINARY)、文件在盘上被存储在何处等。根据本发明,每个生产虚拟机33和34的高速缓存被存储在不能被其他生产虚拟机(在相同或不同LPAR中)访问但是可以被虚拟机的系统管理程序40访问的存储器区域中。在示出的实例中,虚拟机33具有高速缓存233,其不能被虚拟机34,36,37访问,但是可以被系统管理程序40访问。
图2示出了每个生产虚拟机的初始化和设置。当虚拟机33开始运行时(图2的步骤270),其读取存储设备26以便判定是否已经存在用于虚拟机的高速缓存(图2的步骤276)。如果没有预先存在的高速缓存(判定278,否分支),则虚拟机33请求连接到新的、空的高速缓存(步骤283)。作为响应,系统管理程序40建立一个临时的“页和段”表或其他此类表50以便寻址该新的高速缓存,即,使将由虚拟机提供的高速缓存的虚拟地址与高速缓存所在的存储器的相应实地址/段相关联(步骤284)。然后,系统管理程序40通知虚拟机33用来访问新的高速缓存的虚拟地址(步骤285)。这允许虚拟机33通过适当的虚拟地址来访问(即读出和写入)新的高速缓存233。由于此高速缓存的页和段表是临时的,系统管理程序40被编程为只要没有高速缓存的(活动)用户就删除该高速缓存。系统管理程序40还在高速缓存用户表250中记录当前存在高速缓存233的一个虚拟机用户(步骤286)。
再次参看判定278,是分支,其中具有预先存在的高速缓存。在这种情况下,虚拟机33向系统管理程序40做出“连接”到此高速缓存的请求(步骤279)。在此情况下,所述请求包括虚拟机33从存储设备读取的高速缓存233的标识。作为响应,系统管理程序40通知虚拟机33用于所述高速缓存的虚拟地址(步骤280)。然后,系统管理程序40递增高速缓存用户表250以反映虚拟机33现在是高速缓存233的用户(步骤281)。(如果此高速缓存的唯一其他活动用户是高速缓存继续存在虚拟机35,则在高速缓存用户表250中为此高速缓存233指示的活动用户数将为“2”,如示出的那样。)然后,虚拟机33重新开始处理当虚拟机33先前终止(异常地)时存在的高速缓存233中的数据(步骤282)。
图3示出了LPAR 30中的高速缓存继续存在虚拟机35进行的处理。高速缓存继续存在虚拟机35在引导时并且此后周期性地访问存储设备26以获知LPAR 30中的任意虚拟机的任意高速缓存的名称(步骤288)。在上述实例中,在某些时刻,高速缓存继续存在虚拟机35首先获知由生产虚拟机33使用的高速缓存233(以及由LPAR 30中的任意虚拟机使用的任何其他高速缓存)的名称。作为响应,高速缓存继续存在虚拟机35向系统管理程序40做出“连接”到高速缓存233(以及虚拟机35尚未被连接到其的由LPAR 30中的任意虚拟机使用的任何其他高速缓存)的请求(步骤290)。所述连接到每个此类高速缓存的请求包括高速缓存的标识,例如高速缓存233的标识。响应于此请求,系统管理程序40通知虚拟机35用于每个此类高速缓存的虚拟地址(步骤292)。另外,系统管理程序40为虚拟机现在请求连接的每个此类高速缓存递增高速缓存用户表250中的用户数(步骤294)。在图1示出的实例中,现在有两个高速缓存233的用户,即虚拟机33和虚拟机35。(对于图1所示的高速缓存233,是表250的第一行中的表项“2”)
图3还示出了高速缓存继续存在虚拟机35中的其他程序。如果高速缓存继续存在虚拟机35随后正常地(例如,通过注销)或异常地(这很少发生,除了其客户操作系统出现故障以外)终止,则系统管理程序40为虚拟机被连接到其的每个高速缓存递减高速缓存用户表中的用户数(步骤296)。另外,系统管理程序40判定这些高速缓存中的任意高速缓存是否存在活动用户,并且如果不存在活动用户,则系统管理程序40删除相应的高速缓存(步骤298)。
图4示出了根据本发明的后续处理。在图4的处理开始时,虚拟机33是活动(即,运行)的,如图2的步骤指示的(步骤302)。如果虚拟机33终止(故意的或者由于虚拟机33或客户操作系统43的故障)(判定303,是分支),虚拟机33将通知(恰好在关闭之前)其系统管理程序40它正在终止以及该终止的性质,即正常注销或由于故障(步骤304)。在z/VM 5.1系统管理程序中,可以通过虚拟机执行“禁用等待(disabled wait)”指令来执行通知。如果由于故障的性质,虚拟机33无法通知其系统管理程序40它正在终止,则系统管理程序40将在虚拟机随后试图重新引导时获知该终止,并且系统管理程序40被调用以便重新引导虚拟机(步骤304)。如果系统管理程序40检测到虚拟机的终止(判定305,否分支),则系统管理程序40将为虚拟机33递减高速缓存用户表250中的用户计数(步骤308)。只要存在一个高速缓存233的(活动)虚拟机用户,系统管理程序40就将保留(即,不删除)高速缓存233及其内容(判定310)。如果虚拟机33终止,则仍然存在高速缓存233的一个活动用户,即虚拟机35,所以系统管理程序40将保留高速缓存233及其内容(判定310,是分支和步骤312)。此外,系统管理程序40将在盘26上保存此高速缓存的标识以及此高速缓存被指派给虚拟机33的指示。接着,系统管理程序40将执行与虚拟机33的终止关联的其他公知的处理或″清除″(步骤320)。此公知的处理包括删除定义了此虚拟机的实际计算机资源的共享的数据结构,包括其专用虚拟存储器。
由于虚拟机35内部的问题,虚拟机35在与虚拟机33发生故障的相同时刻出现故障是不太可能的,因为虚拟机35基本上不执行功能。此外,虽然系统管理程序40、LPAR 30或物理计算机20的故障将导致失去高速缓存233,但是此类故障的发生比生产虚拟机的故障少得多。因此,当虚拟机33异常地终止并且直到虚拟机33重新引导时,很可能物理计算机20、LPAR30、系统管理程序40和虚拟机35仍然活动并且高速缓存233的用户计数将是“1”,所以如以上在步骤312指出的,系统管理程序40将保持高速缓存233及其内容。尽管如此,如果当虚拟机33发生故障/异常终止时没有一个高速缓存233的用户(判定310,否分支),则系统管理程序40将删除高速缓存233(步骤324)。高速缓存233的“删除”可以是由于实际擦除了高速缓存内容、将高速缓存存储器范围重新指派给其他虚拟机,或删除了用于高速缓存的页和段表或其他寻址表。
再次参考判定305,是分支,其中虚拟机33正常地终止(即,通过正常的注销)。在这种情况下,系统管理程序40将递减高速缓存233(以及虚拟机33被连接到其的任何其他高速缓存)的用户数(步骤306)。在步骤306,系统管理程序40还将判定是否存在高速缓存233的任何剩余用户,并且如果不存在,则系统管理程序40将擦除高速缓存233。无论哪种情况,系统管理程序40将执行虚拟机33的正常终止处理,即删除定义了此虚拟机的实际计算机资源的共享的数据结构,包括其专用虚拟存储器(步骤307)。
图5示出了后续的虚拟机33的恢复。在步骤402,虚拟机33被重新引导。然后,虚拟机33访问盘存储设备26以获知其是否具有高速缓存,并且如果具有高速缓存,获知其高速缓存233的标识(步骤404)。在上述条件下,其中虚拟机33终止并且高速缓存233被保留,则高速缓存233将仍然包含虚拟机33终止之前由虚拟机33存储的数据和元数据。所以,假设存在这样的高速缓存(判定406,是分支),在步骤402中重新引导之后,虚拟机33向系统管理程序40做出连接到高速缓存233的请求(步骤410)。该请求指定了高速缓存233的标识。作为响应,系统管理程序40将预先存在的高速缓存的虚拟地址(如存储在页和段表或者其他此类表中)返回给虚拟机33,以便允许虚拟机33访问高速缓存233(步骤412)。此外,系统管理程序40将表250中高速缓存233的用户计数递增为“2”(步骤494);当虚拟机33异常地终止时用户计数被递减为“1”。然后,虚拟机33可以重新开始处理,使用当虚拟机33异常地终止时其遗漏的高速缓存233中的数据和元数据(步骤420)。
再次参考判定406,否分支,其中没有用于虚拟机33的保留的高速缓存。在这种情况下,虚拟机33将继续到步骤283以请求连接到新的空高速缓存。作为响应,系统管理程序40将为该新的高速缓存建立临时的页和段表或者其他这样的表(步骤284),然后如上所述继续步骤285-294。
当虚拟机34,36和37初始化(图2)时,当它们终止(图4)时,以及当它们恢复(图5)时,对于每个其他生产虚拟机34、36和37以及高速缓存继续存在虚拟机38,将发生类似的处理。在LPAR 31中,虚拟机36和37在系统管理程序41的共享存储器(未示出)中具有相应的高速缓存存储器(未示出)和高速缓存用户表(未示出)。当虚拟机36和37是活动的时,它们各自的高速缓存的用户计数都是“2”,因为高速缓存继续存在虚拟机38也是每个这些高速缓存的用户。如果虚拟机36终止,系统管理程序41将其高速缓存的用户计数递减为“1”,但是保留该高速缓存及其内容以备虚拟机36重新引导时使用。同样地,如果虚拟机37终止,系统管理程序41将其高速缓存的用户计数递减为″1″,但是保留该高速缓存及其内容以备虚拟机37重新引导时使用。
图6,7和8示出了本发明的另一个实施例(通常指定为510),其类似于图1,2,4和5的实施例,除以下之外:如图6中示出的,系统510不包括任何高速缓存继续存在虚拟机。系统510中的每个生产虚拟机的高速缓存(例如,用于生产虚拟机533的高速缓存833和用于生产虚拟机534的高速缓存834)可以被存储在各自虚拟机的专用存储器中或存储在系统管理程序的共享存储器中;在示出的实施例中,每个高速缓存被存储在各自虚拟机的专用存储器中。当高速缓存被存储在虚拟机的专用存储器中时,系统510中没有高速缓存用户表。当LPAR 30中的生产虚拟机请求连接到新的高速缓存时,系统管理程序540对页和段或者其他这样的表进行更多永久扩展以便包含此新的高速缓存;这导致所述高速缓存在虚拟机异常终止时被保留。如图6和7中示出的和以下描述的,与系统管理程序40相比,系统管理程序540包括了其他功能,以便当虚拟机终止时保留虚拟机的高速缓存。
在系统510中,当生产虚拟机533引导时(图7的步骤600),其访问存储设备26以便判定虚拟机533是否已经具有预先存在的高速缓存(图7的步骤601)。然后,虚拟机533向系统管理程序540做出将虚拟机533连接到其预先存在的高速缓存(如果有)或否则连接到新的高速缓存的请求(步骤602)。虚拟机533可以在所述请求中包括在虚拟机533终止的情况下应保留所述高速缓存的指示(步骤602);否则,在虚拟机533终止的情况下,所述高速缓存将被删除。如果具有预先存在的高速缓存,所述请求还指定了希望的高速缓存的标识。响应于所述连接请求,系统管理程序540判定所述请求是要连接到新的高速缓存还是要连接到预先存在的高速缓存(判定603)。如果高速缓存是新的(判定603,是分支),则系统管理程序540进行判定并且在存储设备26中写入新的高速缓存的标识(步骤604)。如果虚拟机533在步骤602请求在虚拟机533终止的情况下保留所述高速缓存,则系统管理程序540“永久地”扩展其页和段或者其他这样的表550以便定义和包含用于虚拟机533的新的高速缓存833(步骤606)。所述页和段表将虚拟地址与所述高速缓存关联。如果永久的页和段或者其他这样的表引用了该新的高速缓存,则当虚拟机533异常终止时系统管理程序540将不会删除该新的高速缓存。可替代地,在步骤606,如果虚拟机533并未请求在虚拟机533终止的情况下保留高速缓存,则系统管理程序540“临时地”扩展其页和段或者其他这样的表550以便定义和包含用于虚拟机533的新的高速缓存。如果临时的页和段或者其他这样的表引用了该新的高速缓存,则当虚拟机533终止时系统管理程序540将删除该新的高速缓存。接着,系统管理程序540通知虚拟机533所述高速缓存的虚拟地址(步骤607)。然后,虚拟机533使用所述新的高速缓存来存储从存储设备读取的数据和元数据(步骤608)。
再次参考判定603,否分支,其中虚拟机533请求连接到预先存在的高速缓存。在这种情况下,系统管理程序540将虚拟机533连接到所述连接请求中标识的预先存在的高速缓存(步骤620)。如果虚拟机533在步骤602请求保留高速缓存,则系统管理程序540将创建页和段或其他这样的表的永久扩展,如果当前只存在用于预先存在的高速缓存的页和段或其他这样的表的临时扩展,则删除该临时扩展(步骤622)。如果已经存在用于预先存在的高速缓存的页和段或者其他这样的表的永久扩展,则系统管理程序540不对其进行任何操作。然后,系统管理程序540通知虚拟机533高速缓存的虚拟地址(步骤623)。然后,虚拟机533使用新的高速缓存来存储从存储设备读取的数据和元数据(步骤624)。
图8示出了当虚拟机533终止时生产虚拟机533和系统管理程序540的处理(步骤630)。系统管理程序540通过禁用等待指令的执行或虚拟机的重新引导来获知终止(步骤631)。系统管理程序540将删除临时的页和段或者其他这样的表(如果对于此终止的虚拟机的高速缓存,所述表存在的话)以及关联的高速缓存(步骤640)。但是,系统管理程序540将不会删除永久的页和段或者其他这样的表(如果对于此终止的虚拟机的高速缓存,所述表存在的话)以及关联的高速缓存(步骤640)。这是因为所述终止可能阻止了虚拟机完全地处理高速缓存中的数据和元数据或将高速缓存中的数据和元数据刷新回存储设备,并且如果虚拟机重新开始运行,它可能需要此数据和元数据。
本发明的两个其他实施例(未示出)分别类似于系统110或510,除了没有逻辑分区程序25和没有LPAR 30或31以外。存在诸如系统管理程序40或540之类的单个系统管理程序,并且该系统管理程序从实际计算机20的所有实际资源的共享形成了所有虚拟机。本发明的这两个其他实施例的虚拟机和其他元件的功能分别类似于系统110和510的虚拟机和其他元件的功能。
图9示出了根据本发明的另一个实施例的系统810。系统810在以下方面类似于系统110,即物理计算机20、处理器(多个)23、RAM 24、控制台27、逻辑分区程序25、LPAR 30、操作系统43、文件系统63、应用53、高速缓存233、高速缓存用户表250以及盘26。系统810还在以下方面类似于系统110,即操作系统44、文件系统64、应用54以及LPAR 31,尽管LPAR 31的作用是在操作系统43或LPAR 30终止的情况下保持高速缓存233继续存在。如图10-13所示出的,除了没有系统管理程序之外,系统810的程序步骤类似于系统110的那些步骤。
图10示出了每个生产LPAR 30的初始化和设置。当LPAR 30开始运行时(图10的步骤1070),LPAR 30读取存储设备26以判定用于LPAR的高速缓存是否已经存在(图10的步骤1076)。如果没有预先存在的高速缓存(判定1078,否分支),则LPAR 30请求连接到新的空高速缓存(步骤1083)。作为响应,逻辑分区程序25建立临时的“页和段”或其他这样的表50来寻址该新的高速缓存,即,使由LPAR提供的高速缓存的虚拟地址与高速缓存所在的存储器的相应实地址/段相关联(步骤1084)。然后,逻辑分区程序25通知LPAR 30用来访问新的高速缓存的虚拟地址(步骤1085)。这允许LPAR 30通过适当的虚拟地址来访问(即读取和写入)该新的高速缓存233。由于用于此高速缓存的页和段表是临时的,逻辑分区程序25被编程为只要没有该高速缓存的(活动)用户,逻辑分区程序25就删除该高速缓存。逻辑分区程序25还在高速缓存用户表250中记录当前有一个高速缓存233的LPAR用户(步骤1086)。
再次参考判定1078,是分支,其中存在预先存在的高速缓存。在这种情况下,LPAR 30向逻辑分区程序25做出“连接”到此高速缓存的请求(步骤1079)。在这种情况下,所述请求包括LPAR 30从存储设备读取的高速缓存233的标识。作为响应,逻辑分区程序25通知LPAR 30用于高速缓存的虚拟地址(步骤1080)。然后,逻辑分区程序25递增高速缓存用户表250以便反映LPAR 30现在是高速缓存233的用户(步骤1081)。(如果此高速缓存的唯一其他活动用户是高速缓存继续存在LPAR 31,则高速缓存用户表250中为此高速缓存233指示的活动用户数将为“2”,如所示出的。)然后,LPAR 30使用当LPAR 30先前终止(异常地)时在高速缓存233中存在的数据来重新开始处理(步骤1082)。
图11示出了高速缓存继续存在LPAR 31的处理。高速缓存继续存在LPAR 31在引导时并且此后周期性地访问存储设备26以获知由逻辑分区程序25提供的任何LPAR的任何高速缓存的名称(步骤1188)。在上述实例中,在某些时刻,高速缓存继续存在LPAR 31首先获知由生产LPAR 30使用的高速缓存233(以及由逻辑分区程序25提供的任何LPAR使用的任何其他高速缓存)的名称。作为响应,高速缓存继续存在LPAR 31向逻辑分区程序25做出“连接”到高速缓存233(以及LPAR 31尚未连接到其的、由逻辑分区程序25提供的任何LPAR使用的任何其他高速缓存)的请求(步骤1190)。所述连接到每个此类高速缓存的请求包括高速缓存的标识,例如高速缓存233的标识。响应于此请求,逻辑分区程序25通知LPAR 31用于每个此类高速缓存的虚拟地址(步骤1192)。此外,逻辑分区程序25为LPAR现在请求连接的每个此类高速缓存递增高速缓存用户表250中的用户数(步骤1194)。在图9示出的实例中,现在有两个高速缓存233的用户,即LPAR 30和LPAR 31。(对于图9所示的高速缓存233,是表250的第一行中的表项“2”。)
图11还示出了高速缓存继续存在LPAR 31中的其他程序。如果高速缓存继续存在LPAR 31随后正常地(例如,通过注销)或者异常地(这很少发生,除了其客户操作系统出现故障以外)终止,则逻辑分区程序25为LPAR 31被连接到其的每个高速缓存递减高速缓存用户表中的用户数(步骤1196)。此外,逻辑分区程序25判定这些高速缓存中的任意高速缓存是否存在活动用户,并且如果不存在活动用户,则逻辑分区程序25删除相应的高速缓存(步骤1198)。
图12示出了根据本发明的后续处理。在图12的处理开始时,LPAR 30是活动(即,运行)的,如图10的步骤指示的(步骤1002)。如果LPAR 30终止(故意的或者由于LPAR 30或操作系统43的故障)(判定1203,是分支),LPAR 30将通知(恰好在关闭之前)逻辑分区程序25它正在终止以及该终止的性质,即正常注销或由于故障(步骤1204)。可以通过LPAR执行“禁用等待”指令来执行通知。如果由于故障的性质,LPAR 30无法通知逻辑分区程序25它正在终止,则逻辑分区程序25将在虚拟机随后试图重新引导时获知该终止,并且逻辑分区程序25被调用以便重新引导LPAR(步骤1204)。如果逻辑分区程序25检测到LPAR的终止(判定1205,否分支),则逻辑分区程序25将在高速缓存用户表250中递减LPAR 31的用户计数(步骤308)。只要存在一个高速缓存233的(活动)LPAR用户(判定1210),逻辑分区程序25就将保留(即,不删除)高速缓存233及其内容。如果LPAR 30终止,则仍存在一个高速缓存233的活动用户(即,LPAR 31),所以逻辑分区程序25将保留高速缓存233及其内容(判定1210,是分支和步骤1212)。此外,逻辑分区程序25将在盘26上保存此高速缓存的标识以及此高速缓存被指派给LPAR 30的指示。接着,逻辑分区程序25将执行与LPAR 30的终止关联的其他公知的处理或″清除″(步骤1220)。此公知的处理包括删除定义了此LPAR的实际计算机资源的共享的数据结构,包括其专用虚拟存储器。
图13示出了后续的LPAR 30的恢复。在步骤1302,LPAR 30被重新引导。接着,LPAR 30访问盘存储设备26以获知其是否具有高速缓存,并且如果具有高速缓存,获知其高速缓存233的标识(步骤1304)。在上述条件下,其中LPAR 30终止并且高速缓存233被保留,则高速缓存233将仍包含LPAR 30终止前由LPAR 30存储的数据和元数据。所以,假定存在这样的高速缓存(判定1306,是分支),在步骤402的重新引导之后,LPAR30向逻辑分区程序25做出连接到高速缓存233的请求(步骤1310)。该请求指定了高速缓存233的标识。作为响应,逻辑分区程序25将存储在页和段表或其他这样的表中的预先存在的高速缓存的虚拟地址返回给LPAR30,以便允许LPAR 30访问高速缓存233(步骤1312)。此外,逻辑分区程序25将表250中高速缓存233的用户计数递增为“2”(步骤1314);当LPAR 30异常地终止时用户计数被递减为“1”。然后,LPAR 30可以重新开始处理,使用当LPAR 30异常地终止时其遗漏的高速缓存233中的数据和元数据(步骤1320)。
再次参考判定1306,否分支,其中没有为LPAR 30保留的高速缓存。在这种情况下,LPAR 30将转到步骤1083以便请求连接到新的空高速缓存。作为响应,逻辑分区程序25将为该新的高速缓存建立临时的页和段表或者其他这样的表(步骤1084),然后如上所述继续步骤1085-1096。
根据以上所述,已经公开了包含本发明的计算机系统、方法和程序。但是,可以做出大量修改和替换而不偏离本发明的范围。例如,代替在系统110中创建高速缓存继续存在虚拟机,当生产虚拟机请求连接到高速缓存时,用于每个生产虚拟机的系统管理程序可以为生产虚拟机的高速缓存在高速缓存用户表250中将用户数自动地递增额外的计数。因此,如果生产虚拟机终止并且系统管理程序40递减高速缓存用户表250中的用户数,将仍然存在表中指出的一个用户,并且系统管理程序40将不会删除该高速缓存。因此,通过示例而非限制的方式公开了本发明,并且应参考以下权利要求来确定本发明的范围。

Claims (21)

1.一种用于管理虚拟机的高速缓存的方法,所述方法包括以下步骤:
在存储器中定义高速缓存,将所述高速缓存指派给虚拟机,并且在存储设备中记录所述高速缓存的标识;以及
所述虚拟机终止,并且尽管所述虚拟机的所述终止,仍保留所述高速缓存和所述高速缓存的内容,以便如果所述虚拟机随后重新开始运行,所述虚拟机可以访问所述高速缓存和所述内容。
2.如权利要求1所述的方法,还包括以下步骤:
在与第一所述虚拟机相同的实际计算机上定义第二虚拟机;
记录所述第一和第二虚拟机都是所述高速缓存的用户,以便当所述第一虚拟机终止时,仍存在一个为所述高速缓存记录的运行用户,并且当所述第一虚拟机终止时保留所述高速缓存及其内容的所述步骤基于所述高速缓存的所述一个运行用户的所述记录。
3.如权利要求1所述的方法,还包括以下步骤:
所述虚拟机请求连接到所述高速缓存,并且作为响应,记录所述虚拟机是所述高速缓存的用户;以及
第二虚拟机请求连接到所述高速缓存,并且作为响应,记录所述第二虚拟机是所述高速缓存的另一个用户。
4.如权利要求1所述的方法,还包括以下步骤:
所述虚拟机向所述虚拟机的系统管理程序做出连接到所述高速缓存并且在所述虚拟机终止的情况下保留所述高速缓存的请求,并且作为响应,所述系统管理程序定义一个表,该表将所述高速缓存的所述虚拟机所使用的虚拟地址与所述高速缓存相关联,所述表在所述虚拟机终止之后继续存在,由此在所述虚拟机终止的情况下所述高速缓存被保留。
5.如权利要求4所述的方法,还包括以下步骤:
在与第一所述虚拟机相同的实际计算机上的另一个虚拟机向所述系统管理程序做出连接到另一个高速缓存但是在所述另一个虚拟机终止的情况下不保留所述另一个高速缓存的请求,并且作为响应,所述系统管理程序定义另一个表,该表将所述另一个高速缓存的所述另一个虚拟机所使用的虚拟地址与所述另一个高速缓存相关联,所述另一个表在所述另一个虚拟机终止时被删除,由此在所述另一个虚拟机终止的情况下所述另一个高速缓存被删除。
6.如权利要求1所述的方法,还包括以下步骤:
所述虚拟机向所述虚拟机的系统管理程序做出连接到所述高速缓存并且在所述虚拟机终止的情况下保留所述高速缓存的请求,并且作为响应,所述系统管理程序产生所述高速缓存在所述虚拟机终止的情况下应被保留的记录,并且当所述虚拟机终止时,所述系统管理程序保留所述高速缓存和所述高速缓存的内容,以便如果所述虚拟机重新开始运行,所述虚拟机可以访问所述高速缓存和所述内容。
7.如权利要求6所述的方法,还包括以下后续步骤:
所述虚拟机重新开始运行;以及
恢复所述虚拟机对所述高速缓存和所述内容的访问。
8.如权利要求1所述的方法,还包括以下后续步骤:
所述虚拟机重新开始运行;以及
恢复所述虚拟机对所述高速缓存和所述内容的访问。
9.一种系统,所述系统包括:
用于在存储器中定义高速缓存,将所述高速缓存指派给虚拟机,并且在存储设备中记录所述高速缓存的标识的装置;以及
用于终止所述虚拟机,并且尽管所述虚拟机的所述终止,仍保留所述高速缓存和所述高速缓存的内容,以便如果所述虚拟机随后重新开始运行,所述虚拟机可以访问所述高速缓存和所述内容的装置。
10.如权利要求9所述的系统,还包括:
用于在与第一所述虚拟机相同的实际计算机上定义第二虚拟机的装置;
用于记录所述第一和第二虚拟机都是所述高速缓存的用户,以便当所述第一虚拟机终止时,仍存在一个为所述高速缓存记录的运行用户的装置,并且当所述第一虚拟机终止时保留所述高速缓存及其内容的所述装置基于所述高速缓存的所述一个运行用户的所述记录。
11.如权利要求9所述的系统,还包括:
用于响应于所述虚拟机请求连接到所述高速缓存,记录所述虚拟机是所述高速缓存的用户的装置;以及
第二虚拟机和用于请求将所述第二虚拟机连接到所述高速缓存,并且作为响应,记录所述第二虚拟机是所述高速缓存的另一个用户的装置。
12.如权利要求9所述的系统,还包括:
用于所述虚拟机向所述虚拟机的系统管理程序做出连接到所述高速缓存并且在所述虚拟机终止的情况下保留所述高速缓存的请求的装置,并且作为响应,所述系统管理程序包括用于定义表的装置,该表将所述高速缓存的所述虚拟机所使用的虚拟地址与所述高速缓存相关联,所述表在所述虚拟机终止之后继续存在,由此在所述虚拟机终止的情况下所述高速缓存被保留。
13.如权利要求12所述的系统,还包括:
在与第一所述虚拟机相同的实际计算机上的另一个虚拟机,以及用于所述另一个虚拟机向所述系统管理程序做出连接到另一个高速缓存但是在所述另一个虚拟机终止的情况下不保留所述另一个高速缓存的请求的装置,并且作为响应,所述系统管理程序包括用于定义另一个表的装置,该表将所述另一个高速缓存的所述另一个虚拟机所使用的虚拟地址与所述另一个高速缓存相关联,所述另一个表在所述另一个虚拟机终止时被删除,由此在所述另一个虚拟机终止的情况下所述另一个高速缓存被删除。
14.如权利要求9所述的系统,还包括:
所述虚拟机包括用于向所述虚拟机的系统管理程序做出连接到所述高速缓存并且在所述虚拟机终止的情况下保留所述高速缓存的请求的装置,并且作为响应,所述系统管理程序包括用于产生所述高速缓存在所述虚拟机终止的情况下应被保留的记录的装置,并且当所述虚拟机终止时,所述系统管理程序保留所述高速缓存和所述高速缓存的内容,以便如果所述虚拟机重新开始运行,所述虚拟机可以访问所述高速缓存和所述内容。
15.如权利要求14所述的系统,还包括:
用于所述虚拟机重新开始运行的装置;以及
用于响应于所述虚拟机的重新开始运行,恢复所述虚拟机对所述高速缓存和所述内容的访问的装置。
16.如权利要求9所述的系统,还包括:
用于所述虚拟机重新开始运行的装置;以及
用于响应于所述虚拟机的重新开始,恢复所述虚拟机对所述高速缓存和所述内容的访问的装置。
17.一种用于管理虚拟机的高速缓存的计算机程序产品,所述计算机程序产品包括:
计算机可读介质;
第一程序指令,所述第一程序指令在存储器中定义高速缓存,将所述高速缓存指派给虚拟机,并且在存储设备中记录所述高速缓存的标识;以及
第二程序指令,所述第二程序指令使所述虚拟机终止,并且尽管所述虚拟机的所述终止,仍保留所述高速缓存和所述高速缓存的内容,以便如果所述虚拟机随后重新开始运行,所述虚拟机可以访问所述高速缓存和所述内容;并且其中
所述第一和第二程序指令被记录在所述介质上。
18.一种用于管理逻辑分区的高速缓存的方法,所述方法包括以下步骤:
在存储器中定义高速缓存,将所述高速缓存指派给逻辑分区,并且在存储设备中记录所述高速缓存的标识;以及
所述逻辑分区终止,并且尽管所述逻辑分区的所述终止,仍保留所述高速缓存和所述高速缓存的内容,以便如果所述逻辑分区随后重新开始运行,所述逻辑分区可以访问所述高速缓存和所述内容。
19.如权利要求18所述的方法,还包括以下步骤:
在与第一所述逻辑分区相同的实际计算机上定义第二逻辑分区;
记录所述第一和第二逻辑分区都是所述高速缓存的用户,以便当所述第一逻辑分区终止时,仍存在一个为所述高速缓存记录的运行用户,并且当所述第一逻辑分区终止时保留所述高速缓存及其内容的所述步骤基于所述高速缓存的所述一个运行用户的所述记录。
20.如权利要求18所述的方法,还包括以下步骤:
所述逻辑分区请求连接到所述高速缓存,并且作为响应,记录所述逻辑分区是所述高速缓存的用户;以及
第二逻辑分区请求连接到所述高速缓存,并且作为响应,记录所述第二逻辑分区是所述高速缓存的另一个用户。
21.如权利要求18所述的方法,还包括以下后续步骤:
所述逻辑分区重新开始运行;以及
恢复所述逻辑分区对所述高速缓存和所述内容的访问。
CNB2005100230131A 2004-12-17 2005-11-14 保留虚拟机的高速缓存的系统和方法 Active CN100451995C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/015,167 US8060683B2 (en) 2004-12-17 2004-12-17 System, method and program to preserve a cache of a virtual machine
US11/015,167 2004-12-17

Publications (2)

Publication Number Publication Date
CN1790294A true CN1790294A (zh) 2006-06-21
CN100451995C CN100451995C (zh) 2009-01-14

Family

ID=36597540

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100230131A Active CN100451995C (zh) 2004-12-17 2005-11-14 保留虚拟机的高速缓存的系统和方法

Country Status (2)

Country Link
US (1) US8060683B2 (zh)
CN (1) CN100451995C (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101470668B (zh) * 2007-12-24 2011-01-26 联想(北京)有限公司 一种计算机及计算机上配置高速缓存控制策略的方法
CN102483718A (zh) * 2009-08-25 2012-05-30 国际商业机器公司 虚拟化环境中的高速缓存分区
CN102495769A (zh) * 2010-09-30 2012-06-13 微软公司 动态虚拟设备故障恢复
CN102541468A (zh) * 2011-12-12 2012-07-04 华中科技大学 虚拟化环境下的脏数据回写系统
CN103733663A (zh) * 2011-08-10 2014-04-16 高通股份有限公司 用于在移动装置上提供安全虚拟环境的方法和设备
CN106610793A (zh) * 2016-11-11 2017-05-03 深圳市深信服电子科技有限公司 超融合系统的缓存数据管理方法及装置

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590803B2 (en) * 2004-09-23 2009-09-15 Sap Ag Cache eviction
US20060143398A1 (en) * 2004-12-23 2006-06-29 Stefan Rau Method and apparatus for least recently used (LRU) software cache
US7694065B2 (en) * 2004-12-28 2010-04-06 Sap Ag Distributed cache architecture
US7971001B2 (en) * 2004-12-28 2011-06-28 Sap Ag Least recently used eviction implementation
US20060143389A1 (en) * 2004-12-28 2006-06-29 Frank Kilian Main concept for common cache management
US7539821B2 (en) * 2004-12-28 2009-05-26 Sap Ag First in first out eviction implementation
US8204931B2 (en) 2004-12-28 2012-06-19 Sap Ag Session management within a multi-tiered enterprise network
US20060143256A1 (en) 2004-12-28 2006-06-29 Galin Galchev Cache region concept
US7516277B2 (en) 2005-04-28 2009-04-07 Sap Ag Cache monitoring using shared memory
US8589562B2 (en) 2005-04-29 2013-11-19 Sap Ag Flexible failover configuration
US7831634B2 (en) * 2005-04-29 2010-11-09 Sap Ag Initializing a cache region using a generated cache region configuration structure
US7581066B2 (en) * 2005-04-29 2009-08-25 Sap Ag Cache isolation model
US7966412B2 (en) * 2005-07-19 2011-06-21 Sap Ag System and method for a pluggable protocol handler
US7492704B2 (en) * 2005-09-15 2009-02-17 International Business Machines Corporation Protocol definition for software bridge failover
US8176485B2 (en) 2006-05-15 2012-05-08 Microsoft Corporation Launching hypervisor under running operating system
US20080016274A1 (en) * 2006-07-13 2008-01-17 Xing-Jia Wang Method of protecting cache memory data in storage system
US20080104589A1 (en) * 2006-11-01 2008-05-01 Mccrory Dave Dennis Adaptive, Scalable I/O Request Handling Architecture in Virtualized Computer Systems and Networks
US7529867B2 (en) * 2006-11-01 2009-05-05 Inovawave, Inc. Adaptive, scalable I/O request handling architecture in virtualized computer systems and networks
US20080162805A1 (en) * 2007-01-03 2008-07-03 Springfield Randall S Method and Apparatus for Using Non-Addressable Memories of a Computer System
US20090070761A1 (en) * 2007-09-06 2009-03-12 O2Micro Inc. System and method for data communication with data link backup
US8699377B2 (en) 2008-09-04 2014-04-15 Trilliant Networks, Inc. System and method for implementing mesh network communications using a mesh network protocol
US8291415B2 (en) * 2008-12-31 2012-10-16 Intel Corporation Paging instruction for a virtualization engine to local storage
US8195879B2 (en) 2009-05-08 2012-06-05 International Business Machines Corporation Demand based partitioning of microprocessor caches
US8538919B1 (en) * 2009-05-16 2013-09-17 Eric H. Nielsen System, method, and computer program for real time remote recovery of virtual computing machines
US8543769B2 (en) * 2009-07-27 2013-09-24 International Business Machines Corporation Fine grained cache allocation
US8250612B2 (en) * 2009-10-26 2012-08-21 Lg Electronics Inc. Digital broadcasting system and method of processing data in digital broadcasting system
US8863117B2 (en) * 2010-07-19 2014-10-14 International Business Machines Corporation Optimizing a file system interface in a virtualized computing environment
US9069622B2 (en) 2010-09-30 2015-06-30 Microsoft Technology Licensing, Llc Techniques for load balancing GPU enabled virtual machines
US8996807B2 (en) 2011-02-15 2015-03-31 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a multi-level cache
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9047313B2 (en) * 2011-04-21 2015-06-02 Red Hat Israel, Ltd. Storing virtual machines on a file system in a distributed environment
US9069587B2 (en) * 2011-10-31 2015-06-30 Stec, Inc. System and method to cache hypervisor data
US9195488B2 (en) 2011-11-21 2015-11-24 International Business Machines Corporation Image deployment in a cloud environment
US9081787B2 (en) * 2011-11-21 2015-07-14 International Business Machines Corporation Customizable file-type aware cache mechanism
US8990520B1 (en) * 2012-03-30 2015-03-24 Emc Corporation Global memory as non-volatile random access memory for guest operating systems
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US9507540B1 (en) 2013-03-14 2016-11-29 Amazon Technologies, Inc. Secure virtual machine memory allocation management via memory usage trust groups
US11669441B1 (en) * 2013-03-14 2023-06-06 Amazon Technologies, Inc. Secure virtual machine reboot via memory allocation recycling
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US9864609B1 (en) * 2013-06-13 2018-01-09 EMC IP Holding Company LLC Rebooting a hypervisor without disrupting or moving an associated guest operating system
SG10201802428QA (en) * 2013-09-23 2018-04-27 Gopc Pty Ltd Virtual computing systems and methods
US9183099B2 (en) * 2013-11-12 2015-11-10 Vmware, Inc. Replication of a write-back cache using a placeholder virtual machine for resource management
JP6165964B2 (ja) * 2014-03-07 2017-07-19 株式会社日立製作所 計算機
US9239729B1 (en) * 2014-09-04 2016-01-19 Vmware, Inc. Sidecar file framework for managing virtual disk plug-in data and metadata
WO2017209856A1 (en) 2016-05-31 2017-12-07 Brocade Communications Systems, Inc. Multichannel input/output virtualization
US10372622B2 (en) * 2017-01-27 2019-08-06 International Business Machines Corporation Software controlled cache line replacement within a data property dependent cache segment of a cache using a cache segmentation enablement bit and cache segment selection bits
US11237877B2 (en) * 2017-12-27 2022-02-01 Intel Corporation Robot swarm propagation using virtual partitions
JP7006265B2 (ja) * 2017-12-28 2022-01-24 富士通株式会社 情報処理装置,制御プログラムおよび情報処理方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6458013A (en) 1987-08-20 1989-03-06 Ibm Method and data processing system for guaranteeing large area identification and management of data memory
US5437033A (en) * 1990-11-16 1995-07-25 Hitachi, Ltd. System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
US5459857A (en) 1992-05-15 1995-10-17 Storage Technology Corporation Fault tolerant disk array data storage subsystem
US6067550A (en) * 1997-03-10 2000-05-23 Microsoft Corporation Database computer system with application recovery and dependency handling write cache
US6075938A (en) * 1997-06-10 2000-06-13 The Board Of Trustees Of The Leland Stanford Junior University Virtual machine monitors for scalable multiprocessors
WO1999012098A1 (en) 1997-08-29 1999-03-11 Hewlett-Packard Company Data backup and recovery systems
US6430564B1 (en) * 1999-03-01 2002-08-06 Hewlett-Packard Company Java data manager for embedded device
US6587937B1 (en) * 2000-03-31 2003-07-01 Rockwell Collins, Inc. Multiple virtual machine system with efficient cache memory design
JP2002041304A (ja) * 2000-07-28 2002-02-08 Hitachi Ltd 論理区画の予備リソース自動付与方法及び論理区画式計算機システム
US6871271B2 (en) 2000-12-21 2005-03-22 Emc Corporation Incrementally restoring a mass storage device to a prior state
JP2002229803A (ja) * 2001-02-06 2002-08-16 Hitachi Software Eng Co Ltd プログラム実行方法、中間コード解析プログラム、および仮想マシン
US6970990B2 (en) 2002-09-30 2005-11-29 International Business Machines Corporation Virtual mode virtual memory manager method and apparatus
US7117385B2 (en) 2003-04-21 2006-10-03 International Business Machines Corporation Method and apparatus for recovery of partitions in a logical partitioned data processing system

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101470668B (zh) * 2007-12-24 2011-01-26 联想(北京)有限公司 一种计算机及计算机上配置高速缓存控制策略的方法
CN102483718A (zh) * 2009-08-25 2012-05-30 国际商业机器公司 虚拟化环境中的高速缓存分区
US8739159B2 (en) 2009-08-25 2014-05-27 International Business Machines Corporation Cache partitioning with a partition table to effect allocation of shared cache to virtual machines in virtualized environments
US8745618B2 (en) 2009-08-25 2014-06-03 International Business Machines Corporation Cache partitioning with a partition table to effect allocation of ways and rows of the cache to virtual machine in virtualized environments
CN102483718B (zh) * 2009-08-25 2014-12-24 国际商业机器公司 虚拟化环境中的高速缓存分区
CN102495769B (zh) * 2010-09-30 2015-08-19 微软技术许可有限责任公司 动态虚拟设备故障恢复
CN102495769A (zh) * 2010-09-30 2012-06-13 微软公司 动态虚拟设备故障恢复
US8970603B2 (en) 2010-09-30 2015-03-03 Microsoft Technology Licensing, Llc Dynamic virtual device failure recovery
CN103733663A (zh) * 2011-08-10 2014-04-16 高通股份有限公司 用于在移动装置上提供安全虚拟环境的方法和设备
CN102541468A (zh) * 2011-12-12 2012-07-04 华中科技大学 虚拟化环境下的脏数据回写系统
CN102541468B (zh) * 2011-12-12 2015-03-04 华中科技大学 虚拟化环境下的脏数据回写系统
CN106610793A (zh) * 2016-11-11 2017-05-03 深圳市深信服电子科技有限公司 超融合系统的缓存数据管理方法及装置
CN106610793B (zh) * 2016-11-11 2019-09-17 深信服科技股份有限公司 超融合系统的缓存数据管理方法及装置

Also Published As

Publication number Publication date
US20060136667A1 (en) 2006-06-22
US8060683B2 (en) 2011-11-15
CN100451995C (zh) 2009-01-14

Similar Documents

Publication Publication Date Title
CN100451995C (zh) 保留虚拟机的高速缓存的系统和方法
US11663134B2 (en) Method, device and computer program product for implementing file system
US7831977B2 (en) Shared file system cache in a virtual machine or LPAR environment
US9959074B1 (en) Asynchronous in-memory data backup system
US8782335B2 (en) Latency reduction associated with a response to a request in a storage system
US20120290786A1 (en) Selective caching in a storage system
US5842226A (en) Virtual memory management for a microkernel system with multiple operating systems
US9075540B2 (en) Virtualizing storage for WPAR clients
US10733027B2 (en) Memory allocator
US20150234669A1 (en) Memory resource sharing among multiple compute nodes
CN101594309B (zh) 集群系统中内存资源的管理方法、设备及网络系统
JP4808275B2 (ja) ネットワークブートシステム
US20090307457A1 (en) Systems and Methods for Entitlement of Virtual Real Memory for Applications
US20220083281A1 (en) Reading and writing of distributed block storage system
CN103176845A (zh) 一种虚拟机部署方法、系统和装置
WO2018094649A1 (zh) 一种虚拟机启动过程中的数据获取方法和云计算系统
GB2545058A (en) Flash memory management
JP2012123556A (ja) 仮想サーバーシステム、及びその制御方法
US5678024A (en) Method and system for dynamic performance resource management within a computer based system
US20090307687A1 (en) Systems and methods for application mobility using virtual real memory services
CN114518962A (zh) 内存的管理方法及装置
KR101077782B1 (ko) 가상머신의 메모리 관리 시스템 및 관리 방법
US20170199701A1 (en) Enhanced message control banks
CN109343928B (zh) 虚拟化集群中虚拟机的虚拟内存文件重定向方法及其系统
US9152347B2 (en) Storage and retrieval of high importance pages in an active memory sharing environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant