CN101681268A - 管理虚拟机存储器的系统、方法和程序 - Google Patents
管理虚拟机存储器的系统、方法和程序 Download PDFInfo
- Publication number
- CN101681268A CN101681268A CN200880016015A CN200880016015A CN101681268A CN 101681268 A CN101681268 A CN 101681268A CN 200880016015 A CN200880016015 A CN 200880016015A CN 200880016015 A CN200880016015 A CN 200880016015A CN 101681268 A CN101681268 A CN 101681268A
- Authority
- CN
- China
- Prior art keywords
- memory
- virtual machine
- working storage
- swapping
- virtual
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0653—Configuration or reconfiguration with centralised address assignment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
对虚拟机控制程序为多个虚拟机分配的虚拟存储器的管理。每个虚拟机具有被划分为工作存储器、高速缓冲存储器和交换存储器的虚拟专用存储器分配。虚拟机控制程序确定它需要附加的虚拟存储器分配,作为响应,向所述虚拟机发出各自请求,以将其各自的工作存储器和/或高速缓冲存储器中的一些转换为交换存储器。在其它时间,虚拟机控制程序确定它需要更少的虚拟存储器分配,作为响应,向所述虚拟机发出各自请求,以将其各自的交换存储器中的一些转换为工作存储器和/或高速缓冲存储器。
Description
技术领域
本发明总体涉及计算机系统,更具体而言,处理对虚拟机存储器的管理。
背景技术
如今,配置为虚拟机的计算机已经众所周知。在这样的配置中,管理程序将实际计算机的物理资源(包括CPU,存储器,存储设备和I/O设备)逻辑上划分成独立的虚拟机。例如,管理程序为每个虚拟机分配对一个或多个处理器和映射到实际RAM的一段虚拟专用存储器的时间共享。当虚拟机寻址其自己的虚拟专用存储器时,管理程序将虚拟专用存储器地址转译成实际存储器的实际地址。管理程序还将虚拟专用存储器分配给它自己,以存储管理程序的程序(包含其控制结构)以及管理程序使用的数据。在已知的IBM z/VM操作系统中,管理程序的程序被称为控制程序(“CP”),每个虚拟机还可以被称为“用户部分”或“客户(guest)”。
还已知的是,逻辑分区程序将实际计算机的物理资源(包括CPU,存储器,存储设备和I/O设备)逻辑上划分为逻辑分区(“LPAR”),然后管理程序的程序在每个LPAR中执行,并将每个LPAR的资源划分成虚拟机。在公知的IBM z系列的计算机中,公知的IBM处理器资源/资源管理器(“PR/SM”)程序将实际计算机划分或分区为LPAR。典型地,通过向逻辑分区程序指定用于每个LPAR的CPU,存储器和存储设备的量,管理员辅助定义每个LPAR。逻辑分区程序可以向每个LPAR分配特定的实际计算机资源或对总计算机资源的逻辑共享。每个LPAR中的虚拟机以同样的方式操作,如同它们是从实际计算机直接形成,而没有经过逻辑分区一样。
先前已知的IBM z/VM 5.1版本的虚拟机操作系统包括已知的管理程序,该管理程序从LPAR或者从未划分的实际计算机形成虚拟机。在“z/VM版本5发布1更新版”(文件号码:GC24-6095-01)的IBM刊物“z/VM版本5发布1.0概述信息”(文件号码:GC24-6095-00)中公开了现有z/VM 5.1操作系统的细节,上述文件可以从位于PO Box 29570,IBMPublications,Raleigh,North Carolina 27626-0570的国际商业机器公司,或者通过WWW从IBM主页加后缀“/shop/publications/order”获得。这些刊物在此通过援引的方式纳入本文作为本文公开的一部分。
客户操作系统执行于每个虚拟机中(使用虚拟机共享的CPU,存储器,等)。在每个客户操作系统上执行一个或多个应用和中间件程序(诸如文件管理器)。尽管每个应用、中间件程序和客户操作系统在虚拟机中执行,但是它们如同在其自己的专用、实际计算机中执行一样进行操作。每个虚拟机中的客户操作系统可以是Linux(林纳斯·托瓦兹(Linus Torvalds)的商标)操作系统,IBM CMS操作系统或其它操作系统。在每个虚拟机上的每个客户操作系统上执行的应用和中间件可以是IBM DB2数据库管理应用,IBM Websphere应用,或各种其它程序。
每个虚拟机的客户操作系统、中间件、应用(多个)和数据存储在分配给该虚拟机的虚拟专用存储器的工作存储器部分中。每个虚拟机还包括分配给该虚拟机的虚拟专用存储器的高速缓冲存储器部分。高速缓冲存储器包含从(磁盘)存储设备存取的数据和相关联的元数据。元数据包含到数据文件的目录和子目录路径、当前正被写入或读取的文件中的记录的标识、文件的大小、文件中记录的大小、文件中数据的类型(ASCII,EBCDIC,或者是二进制)、文件存储在磁盘上的何处,等等。大多数客户操作系统包括一些算法,用于确定当高速缓冲存储器充满时应该将数据的哪些页保留在高速缓冲存储器中,以及当工作存储器充满时应该将数据的哪些页保留在工作存储器中。例如,大多数客户操作系统使用最近最少使用算法,用以当高速缓冲存储器中用于虚拟机所需新数据的空间不足时将最近最少使用的数据从高速缓冲存储器页调出到外部存储器中,并使用相似算法,用以当工作存储器中用于虚拟机所需新数据的空间不足时将最近最少使用的数据从工作存储器页调出到外部存储器中。
虚拟机还可包括从RAM分配给虚拟机的虚拟专用存储器的交换存储器部分。虚拟机的交换存储器用作为接收和存储从高速缓冲存储器和工作存储器页调出的数据的存储器位置,以替代将数据页调出到磁盘存储器。在典型的场景中,当存储虚拟机所需数据(信息和程序)的高速缓冲存储器或工作存储器不足时,虚拟机中的客户操作系统识别虚拟机的高速缓冲存储器或工作存储器中最近最少使用的存储器数据(作为四千字节的页)。然后,客户操作系统可以将最近最少使用的存储器页复制到虚拟机的交换存储器或磁盘存储设备中。客户操作系统基于管理员定义的虚拟机的配置,确定是将页调出到交换存储器还是(磁盘)存储设备。管理员可以配置虚拟机以将页调出到任意一个,或者将页调出到交换存储器直到充满然后再将页调出到磁盘。页调出释放了高速缓冲存储器和工作存储器,使得操作系统能够将其他更需要的数据页从交换存储器或存储设备页调入到高速缓冲存储器或工作存储器。
作为客户操作系统的Linux操作系统(以及其他操作系统)将管理程序分配给它的虚拟专用存储器虚拟化。在其自身的虚拟化过程中,Linux操作系统过量使用管理程序分配给它的虚拟专用存储器。例如,假定管理程序为具有Linux(或其他)客户操作系统的虚拟机分配了3千兆字节的虚拟专用存储器。作为响应,Linux客户操作系统可以自己为Linux操作系统上执行的进程虚拟地分配6千兆字节。这是可以实现的,因为这些进程平均来说典型地使用比分配给它们的存储器少得多的存储器。但是,Linux操作系统(以及Microsoft Windoes操作系统)倾向于在其工作存储器和高速缓冲存储器中保留过期数据,因为存在一定的机会将来需要这些数据,并且这会减少页调出和页调入。由于这样的原因,典型地,Linux操作系统在正常操作期间要么未能成功利用交换存储器,要么对其交换存储器严重利用不足,即使Linux操作系统配置为使用交换存储器用于页调出。
管理程序追踪在先验间隔期间每个虚拟机使用了多少存储器(称为“工作集”)。管理程序使用所有虚拟机的组合大小的“工作集”来确定它自己和它后续可能创建的其他虚拟机可用的存储器有多少。对于它自己和它后续可能创建的其他虚拟机来说,管理程序过量使用可用的虚拟专用存储器,因为管理程序和所有虚拟机通常并不使用所有的其各自存储器分配。
个别情况下,管理程序需要附加的存储器用于它自己的操作,用以形成另外的虚拟机,或用以分配给存储器不足的现有的、关键性虚拟机。在上述情况的任何一种的情况下,管理程序(例如在IBM z/VM 5.1操作系统中所建立的)可以请求具有多余虚拟专用存储器的虚拟机自愿地放弃一些其现有的虚拟专用存储器分配。典型地,响应于这样的请求,虚拟机将会放弃其全部虚拟专用存储器分配中的一些,然后基于其剩余的虚拟专用存储器分配重新平衡工作存储器和高速缓冲存储器的量。一些客户操作系统在高速缓冲存储器可用的情况下将仅仅从其高速缓冲存储器放弃虚拟专用存储器。如果存在交换存储器分配的话,该交换存储器分配不受影响。然而,这会使得一些或全部虚拟机用以有效执行其工作项目的虚拟专用存储器的量不足。
本发明的一个目的是更好地管理存储器的分配。
本发明的另一目的是更好地管理为虚拟机的存储器分配。
发明内容
本发明驻留在管理由虚拟机控制程序为多个虚拟机分配的虚拟存储器的系统、计算机程序产品和方法中。所述虚拟机中的每一个具有被划分为工作存储器、高速缓冲存储器和交换存储器的虚拟专用存储器分配。所述虚拟机控制程序确定它需要附加的虚拟存储器分配,作为响应,所述虚拟机控制程序向所述虚拟机发出各自请求,以将其各自工作存储器和/或高速缓冲存储器中的一些转换为交换存储器。
根据本发明的特征,所述请求中的每一个指定要转换为交换存储器的工作存储器和/或高速缓冲存储器的量。所述多个虚拟机包括各自的多个客户操作系统,所述多个客户操作系统被编程为,与分配给它们各自虚拟机的交换存储器相比,更为充分地利用分配给它们各自虚拟机的工作存储器和/或高速缓冲存储器。
本发明还驻留在管理由虚拟机控制程序为多个虚拟机分配的虚拟存储器的系统、计算机程序产品和方法中。所述虚拟机中的每一个具有被划分为工作存储器、高速缓冲存储器和交换存储器的虚拟专用存储器分配。所述虚拟机控制程序确定它需要比当前分配给所述虚拟机控制程序的虚拟存储器更少的虚拟存储器分配,作为响应,所述虚拟机控制程序向所述虚拟机发出各自请求,以将其各自交换存储器中的一些转换为工作存储器和/或高速缓冲存储器。
根据本发明的特征,所述请求中的每一个指定要转换为工作存储器和/或高速缓冲存储器的交换存储器的量。所述多个虚拟机包括各自的多个客户操作系统,所述客户操作系统被编程为,与分配给它们各自虚拟机的交换存储器相比,更为充分地利用分配给它们各自虚拟机的工作存储器和/或高速缓冲存储器。
附图说明
图1是根据本发明包括客户操作系统和管理程序的实际计算机的框图。
图2是图1的管理程序的功能和操作的流程图。
图3是图1的客户操作系统的功能和操作的流程图。
具体实施方式
现在参照附图详细描述本发明。图1说明根据本发明一个实施例的总体标为10的计算机系统。计算机系统10包括实际/物理计算机20,其具有实际CPU 23,RAM 24,I/O设备25,外部存储器26,以及外部操作员控制台27。在本发明一个实施例中,计算机20没有被划分为逻辑分区(“LPAR”)。然而,在本发明另一个实施例中,公知的逻辑分区程序(未示出)将计算机20划分为LPAR,图1中示出一个这样的LPAR。LPAR是计算机20的实际计算机资源的实际或逻辑分区。例如,如果计算机20包括8个处理器,那么逻辑分区程序可以为4个LPAR中的每一个分配2个实际处理器,或者逻辑分区程序可以在4个LPAR之间分时共享全部8个处理器。逻辑分区程序还将计算机20的总存储器在不同LPAR之间划分,将每个LPAR使用的逻辑地址转译成实际数据存储于其中的实际存储器地址。作为示例,实际计算机20可以是IBM z系列服务器,不过本发明也可以在其它服务器计算机或个人计算机中实施。在计算机20被划分为LPAR的实施例中,逻辑分区程序可以是已知的IBM处理器资源/资源管理器(“PR/SM”)(tm)程序。
管理程序40在计算机20中执行,并将计算机20的实际资源划分为虚拟机33,34和35(以及其它未示出的虚拟机)。换言之,管理程序40将包含计算机20的CPU 23,存储器24,I/O设备25和磁盘存储器26的计算机资源进行逻辑划分和虚拟化,以形成用于虚拟机33,34和35中每个虚拟机的资源平台。(如果计算机20被划分为不同的LPAR,那么与管理程序40类似的单独管理程序在每个LPAR中执行,将每个LPAR逻辑划分为虚拟机)。例如,管理程序40为每个虚拟机33,34和35分配实际处理器23的分时共享和映射到实际RAM24的一段虚拟专用存储器。例如,管理程序40将虚拟专用存储器133分配给虚拟机33,将虚拟专用存储器134分配给虚拟机34,并将虚拟专用存储器135分配给虚拟机35。当虚拟机33,34或35寻址其虚拟专用存储器时,管理程序40将虚拟存储器地址转译成实际存储器24的实际地址。管理程序40可以请求各自虚拟机中的客户操作系统增加或减小其各自的交换存储器,以分别满足管理程序用于其自身或其它虚拟机的对更多或更少虚拟专用存储器的需要。
客户操作系统43,44和45在各自的虚拟机33,34和35中执行,应用53,54和55以及中间件63,64和65在各自的客户操作系统43,44和45上执行。然而,每个客户操作系统上可能执行多个应用。作为示例,客户操作系统可以是根据本发明修改的Linux(Linus Torvalds的商标)操作系统或IBM CMS操作系统,以履行来自管理程序的请求,所述请求用以增加或减小虚拟专用存储器,并同时增加或减小交换存储器,以补偿同时增加的或减小的工作存储器和高速缓冲存储器,使得每个虚拟机中分配的总的虚拟专用存储器大致保持相同。也可以使用其它操作系统,例如根据本发明修改的Microsoft Windows(tm)操作系统,Unix(tm)操作系统,Sun Microsystems Solaris(tm)操作系统,或Hewlett Packard HP UX操作系统。作为示例,应用53,54和55可以是IBM DB2数据库管理应用,中间件63,64和65可以是IBM Websphere程序。除了使用虚拟专用存储器这一点之外,应用53,54和55以及中间件63,64和65的性质不构成本发明的一部分。各自虚拟机33,34和35中的客户操作系统43,44和45将其各自的虚拟专用存储器分配133,134和135划分为各自的(虚拟)工作存储器233,234和235,高速缓冲存储器333,334和335,以及交换存储器433,434和435。客户操作系统、中间件和应用以及用于计算机10中每个虚拟机的它们的数据存储在分配给虚拟机的各自的工作存储器中。高速缓冲存储器包含从(磁盘)存储器或交换存储器存取的数据和相关联的元数据。元数据包含到数据文件的目录和子目录路径、当前正被写入或读取的文件中的记录的标识、文件的大小、文件中记录的大小、文件中数据的类型(ASCII,EBCDIC,或者是二进制)、文件存储在磁盘上的何处,等等。大多数客户操作系统包括一些算法,用于确定当高速缓冲存储器充满时应该将数据的哪些页保留在高速缓冲存储器中,以及当工作存储器充满时应该将数据的哪些页保留在工作存储器中。例如,大多数客户操作系统使用最近最少使用算法,用以当高速缓冲存储器中用于虚拟机所需新数据的空间不足时将最近最少使用的数据从高速缓冲存储器页调出到外部存储器或交换存储器中,并使用相似算法,用以当工作存储器中用于虚拟机所需新数据的空间不足时将最近最少使用的数据从工作存储器页调出到外部存储器或交换存储器中。每个交换存储器用于接收和存储从高速缓冲存储器和工作存储器页调出的数据,作为将数据页调出到磁盘存储器的替代方式。交换存储器中驻留的数据在需要时也会被页调入。每个客户操作系统基于虚拟机的用户配置,选择将数据页调出到交换存储器,还是页调出到磁盘存储器。在本发明中,客户操作系统被配置为将数据页调出到交换存储器,并从交换存储器页调入数据。在典型场景中,当存储虚拟机所需数据(信息和程序)的高速缓冲存储器或工作存储器不足时,虚拟机中的客户操作系统识别虚拟机的高速缓冲存储器或工作存储器中最近最少使用的存储器数据(作为4千字节的页)。然后,客户操作系统将最近最少使用的存储器页复制到虚拟机的交换存储器。这释放了虚拟机的高速缓冲存储器和工作存储器,以使得各自客户操作系统能够将其他更需要的数据页从交换存储器页调入到高速缓冲存储器或工作存储器。
管理程序40还为自己分配虚拟专用存储器140,并将自己的虚拟专用存储器140划分为工作存储器240,高速缓冲存储器340和交换存储器440。管理程序40还分配共享存储器150(所有虚拟机33,34和35可存取并共享该存储器)。
作为客户操作系统的Linux操作系统(Microsoft Windows操作系统以及其他操作系统)将管理程序40分配给它的虚拟专用存储器虚拟化。在其自身的虚拟化过程中,Linux操作系统过量使用管理程序40分配给它的虚拟专用存储器。例如,假定管理程序为具有Linux(或其他)客户操作系统的虚拟机分配了3千兆字节的虚拟专用存储器。作为响应,Linux客户操作系统可以自己为Linux操作系统上执行的进程虚拟地分配6千兆字节。这是可以实现的,因为这些进程平均来说典型地使用比分配给它们的存储器少得多的存储器。
Linux操作系统(以及Microsoft Windows操作系统)倾向于在其工作存储器和高速缓冲存储器中保留非最近使用的数据,因为存在一定的机会将来需要这些数据,并且这会减少后续的页调出和页调入。由于这样的原因,Linux操作系统(和Microsoft Windows操作系统)在正常操作期间通常不使用交换存储器,或者对其交换存储器利用严重不足,即使它被配置为使用交换存储器用于页调出(和页调入)。
下面是当配置为使用交换存储器时,在正常操作期间的某时刻管理程序40和客户操作系统43,44和45进行的存储器分配的例子:
部件 管理程序分配的 客户操作系统基于管理
虚拟专用存储器 程序分配的虚拟专用存
储器而分配的虚拟专用
专用存储器
实际存储器
(15千兆字节)
管理程序40
工作存储器240: 4千兆字节
高速缓冲存储器340:1千兆字节
交换存储器440: 0.5千兆字节
虚拟机33
工作存储器233: 5千兆字节 10千兆字节
高速缓冲存储器333:2千兆字节 4千兆字节
交换存储器433: 1千兆字节 2千兆字节
虚拟机34
工作存储器234: 5千兆字节 10千兆字节
高速缓冲存储器334:2千兆字节 4千兆字节
交换存储器434: 1千兆字节 2千兆字节
虚拟机35
工作存储器235: 2.5千兆字节 5千兆字节
高速缓冲存储器335:1千兆字节 2千兆字节
交换存储器435: 0.5千兆字节 1千兆字节
注意到,在这个示例中,计算机10中总的实际存储器(15千兆字节)显著小于管理程序40分配的所有虚拟存储器的组合(41.5千兆字节)。在这个示例中,由所有客户操作系统分配给其进程的虚拟的虚拟存储器总量甚至更高(83千兆字节)。这是可以实现的,因为管理程序40和虚拟机33-35通常使用比其各自的虚拟存储器分配要少得多的虚拟存储器。假定在这个示例中,计算机10中所有进程的实际存储器消耗在8千兆字节和13千兆字节之间变动。
在这个示例中,假定,在稍后的时间,管理程序40需要附加的虚拟专用存储器(例如,大约附加5千兆字节)用于它自己。因此,管理程序40请求各自虚拟机33,34和35中的客户操作系统43,44和45通过将工作存储器和/或高速缓冲存储器转换为附加的交换存储器来增加特定量的其各自的交换存储器。例如,为了为自己释放大约5千兆字节的实际存储器,管理程序40将请求客户操作系统43将附加的2千兆字节的虚拟专用存储器(也就是,工作存储器和/或高速缓冲存储器)转换为交换存储器,管理程序40将请求客户操作系统44将附加的2千兆字节的虚拟专用存储器(也就是,工作存储器和/或高速缓冲存储器)转换为交换存储器,并且管理程序40将请求客户操作系统43将附加的1千兆字节的虚拟专用存储器(也就是,工作存储器和/或高速缓冲存储器)转换为交换存储器。这就总体增加了5千兆字节的交换存储器。响应于上述请求,每个客户操作系统将指定量的其工作存储器和/或高速缓冲存储器转换为交换存储器。(如果任何客户操作系统不具有符合该请求的足够的可用工作存储器或高速缓冲存储器,那么该客户操作系统将尽它所能够达到的程度来履行)。每个客户操作系统使用它自己的算法来确定将多少当前工作存储器转换为交换存储器,以及将多少当前高速缓冲存储器转换为交换存储器来满足管理程序的请求。例如,每个客户操作系统可以基于其目前的分配状况,成比例地将现有工作存储器和现有高速缓冲存储器转换为交换存储器来满足管理程序的请求。在前述的示例中,以下是管理程序请求每个虚拟存储器将指定量的其虚拟专用存储器(也就是,工作存储器和/或高速缓冲存储器)转换为交换存储器,并且每个虚拟机履行其工作存储器和高速缓冲存储器的成比例减小之后的存储器分配状况。
部件 管理程序分配的 客户操作系统基于管理
虚拟专用存储器 程序分配的虚拟专用存
储器而分配的虚拟专用
存储器
实际存储器
(15千兆字节)
管理程序40
工作存储器240: 7.60千兆字节
高速缓冲存储器340:1.90千兆字节
交换存储器440: 0.95千兆字节
虚拟机33
工作存储器233: 3.57千兆字节 7.14千兆字节
高速缓冲存储器333:1.43千兆字节 2.86千兆字节
交换存储器433: 3千兆字节 6千兆字节
虚拟机34
工作存储器234: 3.57千兆字节 7.14千兆字节
高速缓冲存储器334:1.43千兆字节 2.86千兆字节
交换存储器434: 3千兆字节 6千兆字节
虚拟机35
工作存储器235: 1.78千兆字节 3.56千兆字节
高速缓冲存储器335:.72千兆字节 1.44千兆字节
交换存储器435: 1.5千兆字节 3千兆字节
在这个示例中,管理程序40将其总虚拟专用存储器分配增加了5千兆字节,虚拟机33成比例地将2千兆字节的组合的工作存储器和高速缓冲存储器转换为交换存储器,虚拟机34成比例地将2千兆字节的组合的工作存储器和高速缓冲存储器转换为交换存储器,虚拟机35成比例地将1千兆字节的组合的工作存储器和高速缓冲存储器转换为交换存储器。在这个示例中,给每个虚拟机33,34和35的总的虚拟专用存储器分配并没有改变,尽管给管理程序40的总存储器分配增加了5千兆字节。这是可以实现的,因为平均来说,每个虚拟机对其各自的交换存储器严重利用不足,但是在需要辅助页调出时,交换存储器可用于各自虚拟机。(在本发明另一实施例中,每个虚拟机将增加其交换存储器的量,但是更多地减少工作存储器和/或高速缓冲存储器的量)。
利用每个虚拟机中从工作存储器和高速缓冲存储器到交换存储器的转换,虚拟机实际上将总体更少地使用虚拟专用存储器,因为交换存储器仅在需要时才使用,而通常高速缓冲存储器和工作存储器不管是否需要都会充分使用。这为管理程序提供了额外的可用存储器。每个虚拟机中额外的交换存储器倾向于补偿每个虚拟机中减少的工作存储器和高速缓冲存储器,因为减少的工作存储器和高速缓冲存储器会有更多的页调出和页调入,附加的交换存储器会在需要时辅助页调出和页调入。
在这个示例中,假定在稍后时间,管理程序40需要更少的虚拟专用存储器(例如,大约少5千兆字节)用于它自己。因此,管理程序40请求各自虚拟机33,34和35中的客户操作系统43,44和45将特定量的其各自的交换存储器转换为工作存储器和/或高速缓冲存储器,由此减少每个虚拟机中的交换存储器的量。作为响应,每个客户操作系统将特定量的交换存储器转换为工作存储器和/或高速缓冲存储器。每个客户操作系统使用它自己的算法来确定将多少指定量的交换存储器转换为工作存储器,以及将多少指定量的交换存储器转换为高速缓冲存储器。在前述示例中,每个客户操作系统可以基于其目前的分配状况,成比例地将指定量的交换存储器转换为工作存储器和高速缓冲存储器。例如,为了放弃大约5千兆字节的实际存储器用于自己使用,管理程序40将请求客户操作系统43将2千兆字节的其交换存储器转换为工作存储器和/或高速缓冲存储器,管理程序40将请求客户操作系统44将2千兆字节的交换存储器转换为工作存储器和/或高速缓冲存储器,并且管理程序40将请求客户操作系统43将1千兆字节的交换存储器转换为工作存储器和/或高速缓冲存储器。这就总体减少了5千兆字节的交换存储器。响应于上述请求,每个客户操作系统将指定量的其减少的交换存储器转换为工作存储器和/或高速缓冲存储器。每个客户操作系统使用它自己的算法来确定增加多少其当前工作存储器和多少当前高速缓冲存储器来满足管理程序的请求。例如,每个客户操作系统可以基于工作存储器和高速缓冲存储器的目前分配状况,成比例地将额外的交换存储器转换为工作存储器和高速缓冲存储器,以满足管理程序的请求。替代地,每个客户操作系统可以基于工作存储器和高速缓冲存储器的目前使用状况,将额外的交换存储器转换为工作存储器和高速缓冲存储器。替代地,每个客户操作系统可以将所有额外的交换存储器转换为高速缓冲存储器。在前述的示例中,以下是管理程序请求每个虚拟存储器将指定量的其交换存储器转换为工作存储器和/或高速缓冲存储器,并且每个虚拟机履行其工作存储器和高速缓冲存储器的成比例增加之后的存储器分配状况。
部件 管理程序分配的 客户操作系统基于管理
虚拟专用存储器 程序分配的虚拟专用存
储器而分配的虚拟专用
存储器
实际存储器
(15千兆字节)
管理程序40
工作存储器240: 4千兆字节
高速缓冲存储器340:1千兆字节
交换存储器440: 0.5千兆字节
虚拟机33
工作存储器233: 5千兆字节 10千兆字节
高速缓冲存储器333:2千兆字节 4千兆字节
交换存储器433: 1千兆字节 2千兆字节
虚拟机34
工作存储器234: 5千兆字节 10千兆字节
高速缓冲存储器334:2千兆字节 4千兆字节
交换存储器434: 1千兆字节 2千兆字节
虚拟机35
工作存储器235: 2.5千兆字节 5千兆字节
高速缓冲存储器335:1千兆字节 2千兆字节
交换存储器435: 0.5千兆字节 1千兆字节
在这个示例中,管理程序40将其总虚拟专用存储器分配减少了5千兆字节,虚拟机33将2千兆字节的交换存储器转换为工作存储器和高速缓冲存储器,虚拟机34将2千兆字节的交换存储器转换为工作存储器和高速缓冲存储器,虚拟机35将1千兆字节的交换存储器转换为工作存储器和高速缓冲存储器。在这个示例中,给每个虚拟机的总的虚拟专用存储器分配并没有改变,尽管给管理程序40的总存储器分配减少了5千兆字节。这是可以实现的,因为平均来说,每个虚拟机比使用存储器更充分地使用工作存储器和高速缓冲存储器。
图2更详细地说明管理程序40的操作和功能。在步骤600,管理程序40监视其自己的虚拟专用存储器150的当前总利用状况。管理程序40通过监视从其自己的虚拟专用存储器的页调出和页调入的量来监视虚拟专用存储器的当前使用状况。如果管理程序的虚拟专用存储器被充分使用或接近充分使用,将会有大量的页调出和页调入,因为可用的工作存储器和高速缓冲存储器不足,反之亦然。例如,在工作存储器和高速缓冲存储器不足的情况下,预定间隔期间页调出和页调入的数目将会高于预定上限阈值。接着,管理程序40确定其自己的虚拟专用存储器150的当前总使用是否高于阈值,例如,页调出和页调入的数目是否高于预定上限阈值(决定604)。如果管理程序40的虚拟专用存储器150的当前总使用超过预定阈值(决定604,“是”分支),那么管理程序40确定管理程序40所需要的附加虚拟专用存储器的总量(步骤608)。在步骤608,管理程序40基于页调出和页调入的数目确定它所需要的虚拟专用存储器的总量。管理程序40经历的页调出和页调入越多,管理程序40所需要的虚拟专用存储器就越多。接下来,管理程序40确定每个虚拟机应该增加多少交换存储器来达到管理程序40所需要的虚拟专用存储器的总的附加量。例如,管理程序40可以要求每个虚拟机将相等量的虚拟专用存储器转换为交换存储器以达到管理程序40所需要的量。这样,如果管理程序需要5千兆字节的虚拟专用存储器并且有5个虚拟机,那么管理程序40可以请求每个虚拟机将1千兆字节的自己的工作存储器和/或高速缓冲存储器转换为交换存储器。作为另一示例,区分虚拟机的优先级,相比于管理程序40请求较高优先级的虚拟机转换为交换存储器,管理程序40请求较低优先级的虚拟机将更大量的工作存储器和/或高速缓冲存储器转换为交换存储器。接下来,管理程序40向每个虚拟机33,34和35发送请求,以将各自的指定量的工作存储器和/或高速缓冲存储器转换为交换存储器(步骤630)。在前述示例中,管理程序40请求虚拟机33将2千兆字节的工作存储器和/或高速缓冲存储器转换为交换存储器,管理程序40请求虚拟机34将2千兆字节的工作存储器和/或高速缓冲存储器转换为交换存储器,管理程序40请求虚拟机35将1千兆字节的工作存储器和/或高速缓冲存储器转换为交换存储器.
再次参照决定604,否分支,其中管理程序40不需要附加的虚拟专用存储器。在这种情况下,管理程序40基于其当前的页调出和页调入的数目,确定它是否可以放弃一些它当前的虚拟专用存储器分配。如果页调出和页调入的数目非常低,那么相比于当前页调出和页调入更高的情况,管理程序40可以放弃更多的其当前的虚拟专用存储器分配(决定620)。如果管理程序40决定不放弃一些其当前的虚拟专用存储器分配,那么管理程序40在预定间隔之后回到步骤600,再次监视其虚拟专用存储器的当前使用状况。然而,如果管理程序40决定放弃一些其当前的虚拟专用存储器分配(决定620,是分支),那么管理程序40确定管理程序40将放弃的附加虚拟专用存储器的总量(步骤622)。在步骤622,管理程序40如上所述基于页调出和页调入的当前数目确定不需要的虚拟专用存储器的总量。接下来,管理程序40确定每个虚拟机应该将多少交换存储器转换为工作存储器和/或高速缓冲存储器以达到管理程序40将要放弃的虚拟专用存储器的量。例如,管理程序40可以为每个虚拟机放弃等量的管理程序不需要的虚拟专用存储器的共享。替代地,相比于较低优先级的虚拟机,管理程序40可以为较高优先级的虚拟机放弃更大量的对不需要的专用虚拟存储器的共享。接下来,管理程序40向每个虚拟机33,34和35发送请求,以将各自的指定量的交换存储器转换为工作存储器和/或高速缓冲存储器(步骤610)。在前述示例中,管理程序40请求虚拟机33将2千兆字节的交换存储器转换为工作存储器和/或高速缓冲存储器,管理程序40请求虚拟机34将2千兆自己的交换存储器转换为工作存储器和/或高速缓冲存储器,管理程序40请求虚拟机35将1千兆字节的交换存储器转换为工作存储器和/或高速缓冲存储器。
图3说明在虚拟机之一中的客户操作系统的功能和操作。(其它虚拟机中的其它客户操作系统相似地作用和操作)。在步骤700,启动客户操作系统。接着,客户操作系统读取指示了管理程序40的初始虚拟专用存储器分配的配置文件,使用其内部算法将该初始虚拟专用存储器分配划分为工作存储器、高速缓冲存储器和交换存储器,并将来自管理程序的初始虚拟专用存储器分配虚拟化(步骤702)。例如,该内部算法可以基于由系统管理员定义的初始配置来将初始虚拟专用存储器划分为工作存储器、高速缓冲存储器和交换存储器。接下来,客户操作系统执行其公知的操作系统功能,例如,执行其应用和中间件(步骤704)。然后,客户操作系统从管理程序40接收请求,以改变客户操作系统的交换存储器的量(决定706),并确定该请求是要增加还是要减小交换存储器量以及所请求的交换存储器增加或减小的量(决定710)。如果来自管理程序的请求是要增加交换存储器(决定710,是分支),那么客户操作系统将其工作存储器和/或高速缓冲存储器的总虚拟专用存储器分配减小指定的量,并将其交换存储器的虚拟专用存储器分配增加指定的量(步骤720)。在步骤720中,客户操作系统基于其自己的算法或者用户定义的配置来确定要减小多少工作存储器。同样地,在步骤720中,客户操作系统基于其自己的算法或者用户定义的配置来确定要减小多少高速缓冲存储器。例如,客户操作系统可以将其高速缓冲存储器减小它增加其自身的交换存储器的全部总量。在另一示例中,客户操作系统将其工作存储器和高速缓冲存储器分别减小的量可以对应于工作存储器和高速缓冲存储器分别利用不足的量。因此,如果大量工作存储器利用不足,而较少量的高速缓冲存储器利用不足,那么客户操作系统将会把较多的工作存储器和较少的高速缓冲存储器(但是每种都有一些)转换为交换存储器。再次参照决定710,如果来自管理程序的请求是要减小交换存储器(决定710,否分支),那么客户操作系统将其工作存储器和/或高速缓冲存储器增加指定的量,并将其交换存储器减小指定的量(步骤730)。在步骤730中,客户操作系统基于其自己的算法或者用户定义的配置来确定要增加多少工作存储器。同样地,在步骤730中,客户操作系统基于其自己的算法或者用户定义的配置来确定要增加多少高速缓冲存储器。例如,客户操作系统可以将其高速缓冲存储器增加它减小其自身的交换存储器的全部总量。在另一示例中,客户操作系统将其工作存储器和高速缓冲存储器分别增加的量可以对应于工作存储器和高速缓冲存储器各自的利用量。因此,如果利用大量工作存储器,而利用较少量的高速缓冲存储器,那么客户操作系统将会把较多交换存储器转换为工作存储器,将较少的交换存储器转换为高速缓冲存储器(但是每种都有一些)。
客户操作系统43,44和45可以从诸如磁带或磁盘、光学介质、DVD、半导体存储器、记忆棒等的计算机可读介质80加载到计算机20中,或者经由TCP/IP适配卡84从因特网82下载。
管理程序40可以从诸如磁带或磁盘、光学介质、DVD、半导体存储器、记忆棒等的计算机可读介质90加载到计算机20中,或者经由TCP/IP适配卡84从因特网82下载。
基于前文所述,公开了一种用于管理虚拟机存储器的计算机系统、方法和程序。然而,在不偏离本发明范围的情况下,可以做出多种修改和替换。例如,当面对用于自己的附加或更少的虚拟专用存储器的需要时,管理程序40除了改变虚拟机的交换存储器量之外,还可以改变分配给一个或多个虚拟机的虚拟专用存储器的总量。因此,本发明通过说明而非限制的方式公开,应该参照下面的权利要求来确定本发明的范围。
Claims (14)
1.一种管理由虚拟机控制程序为多个虚拟机分配的虚拟存储器的方法,所述虚拟机中的每一个具有被划分为工作存储器、高速缓冲存储器和交换存储器的虚拟专用存储器分配,所述方法包括如下步骤:
所述虚拟机控制程序确定它需要附加的虚拟存储器分配,作为响应,所述虚拟机控制程序向所述虚拟机发出各自请求,以将其各自工作存储器和/或高速缓冲存储器中的一些转换为交换存储器;以及
所述虚拟机履行所述各自请求,将其各自工作存储器和/或高速缓冲存储器中的一些转换为交换存储器。
2.如权利要求1所述的方法,其中所述请求中的每一个指定要转换为交换存储器的工作存储器和/或高速缓冲存储器的量。
3.如权利要求1或2所述的方法,其中所述多个虚拟机包括各自的多个客户操作系统,所述多个客户操作系统被编程为,与分配给它们各自虚拟机的交换存储器相比,更为充分地利用分配给它们各自虚拟机的工作存储器和/或高速缓冲存储器。
4.如权利要求1,2或3所述的方法,其中所述虚拟机中的每一个履行所述请求,通过将高速缓冲存储器转换为交换存储器,以此将其各自的工作存储器和/或高速缓冲存储器中的一些转换为交换存储器。
5.一种虚拟机控制程序产品,用于将虚拟存储器分配给虚拟机控制程序和多个虚拟机,所述虚拟机中的每一个具有被划分为工作存储器、高速缓冲存储器和交换存储器的虚拟专用存储器分配,所述虚拟机控制程序产品包括:
计算机可读介质;
第一程序指令,用以确定所述虚拟机控制程序需要附加的虚拟存储器分配,作为响应,向所述虚拟机的每一个发出请求,以将其各自工作存储器和/或高速缓冲存储器中的一些转换为交换存储器;其中
所述第一程序指令以功能形式存储在所述计算机可读介质上。
6.如权利要求5所述的虚拟机控制程序产品,其中所述请求中的每一个指定要转换为交换存储器的工作存储器和/或高速缓冲存储器的量。
7.如权利要求5所述的虚拟机控制程序产品,其中所述多个虚拟机包括各自的多个客户操作系统,所述多个客户操作系统被编程为,与分配给它们各自虚拟机的交换存储器相比,更为充分地利用分配给它们各自虚拟机的工作存储器和/或高速缓冲存储器。
8.一种计算机系统,用于将虚拟存储器分配给虚拟机控制程序和多个虚拟机,所述虚拟机中的每一个具有被划分为工作存储器、高速缓冲存储器和交换存储器的虚拟专用存储器分配,所述计算机系统包括:
用以确定所述虚拟机控制程序需要附加的虚拟存储器分配,并作为响应,向所述虚拟机发出各自请求,以将其各自工作存储器和/或高速缓冲存储器中的一些转换为交换存储器的装置;以及
所述虚拟机包括用以履行所述各自请求,以将其各自工作存储器和/或高速缓冲存储器中的一些转换为交换存储器的装置。
9.如权利要求8所述的计算机系统,其中所述请求中的每一个指定要转换为交换存储器的工作存储器和/或高速缓冲存储器的量。
10.如权利要求8或9所述的计算机系统,其中所述多个虚拟机包括各自的多个客户操作系统,所述多个客户操作系统被编程为,与分配给它们各自虚拟机的交换存储器相比,更为充分地利用分配给它们各自虚拟机的工作存储器和/或高速缓冲存储器。
11.一种管理由虚拟机控制程序为多个虚拟机分配的虚拟存储器的方法,所述虚拟机中的每一个具有被划分为工作存储器、高速缓冲存储器和交换存储器的虚拟专用存储器分配,所述方法包括如下步骤:
所述虚拟机控制程序确定它需要比当前分配给所述虚拟机控制程序的虚拟存储器更少的虚拟存储器分配,作为响应,所述虚拟机控制程序向所述虚拟机发出各自请求,以将其各自交换存储器中的一些转换为工作存储器和/或高速缓冲存储器。
12.如权利要求11所述的方法,其中所述请求中的每一个指定要转换为工作存储器和/或高速缓冲存储器的交换存储器的量。
13.如权利要求11或12所述的方法,其中所述多个虚拟机包括各自的多个客户操作系统,所述客户操作系统被编程为,与分配给它们各自虚拟机的交换存储器相比,更为充分地利用分配给它们各自虚拟机的工作存储器和/或高速缓冲存储器。
14.如权利要求11,12或13所述的方法,还包括步骤:
所述虚拟机履行所述各自请求,以将其各自的交换存储器中的一些转换为工作存储器和/或高速缓冲存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/769,161 | 2007-06-27 | ||
US11/769,161 US8015383B2 (en) | 2007-06-27 | 2007-06-27 | System, method and program to manage virtual memory allocated by a virtual machine control program |
PCT/EP2008/058081 WO2009000856A1 (en) | 2007-06-27 | 2008-06-25 | System, method and program to manage memory of a virtual machine |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101681268A true CN101681268A (zh) | 2010-03-24 |
CN101681268B CN101681268B (zh) | 2012-09-26 |
Family
ID=39737116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880016015XA Active CN101681268B (zh) | 2007-06-27 | 2008-06-25 | 管理虚拟机存储器的系统、方法和程序 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8015383B2 (zh) |
JP (1) | JP5235989B2 (zh) |
KR (1) | KR101137172B1 (zh) |
CN (1) | CN101681268B (zh) |
WO (1) | WO2009000856A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102467449A (zh) * | 2010-11-16 | 2012-05-23 | 英业达股份有限公司 | 支持文件存取测试的大容量扇区磁盘的模拟方法 |
CN102804140A (zh) * | 2009-06-18 | 2012-11-28 | 思杰系统有限公司 | 用于将设备驱动程序导入到客户计算环境中的方法和系统 |
CN102880557A (zh) * | 2012-09-13 | 2013-01-16 | 浙江金大科技有限公司 | 一种异构数据源的多级分布式高速缓存 |
CN103608792A (zh) * | 2013-05-28 | 2014-02-26 | 华为技术有限公司 | 支持多核架构下资源隔离的方法及系统 |
CN103729249A (zh) * | 2012-10-11 | 2014-04-16 | 财团法人工业技术研究院 | 虚拟机的存储器管理的方法和计算机系统 |
CN103729230A (zh) * | 2012-10-11 | 2014-04-16 | 财团法人工业技术研究院 | 虚拟机系统的内存管理方法和计算机系统 |
Families Citing this family (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8811431B2 (en) | 2008-11-20 | 2014-08-19 | Silver Peak Systems, Inc. | Systems and methods for compressing packet data |
US8489562B1 (en) | 2007-11-30 | 2013-07-16 | Silver Peak Systems, Inc. | Deferred data storage |
US8885632B2 (en) | 2006-08-02 | 2014-11-11 | Silver Peak Systems, Inc. | Communications scheduler |
US8307115B1 (en) | 2007-11-30 | 2012-11-06 | Silver Peak Systems, Inc. | Network memory mirroring |
US8145871B2 (en) * | 2008-06-09 | 2012-03-27 | International Business Machines Corporation | Dynamic allocation of virtual real memory for applications based on monitored usage |
US9717021B2 (en) | 2008-07-03 | 2017-07-25 | Silver Peak Systems, Inc. | Virtual network overlay |
US10805840B2 (en) | 2008-07-03 | 2020-10-13 | Silver Peak Systems, Inc. | Data transmission via a virtual wide area network overlay |
US10164861B2 (en) | 2015-12-28 | 2018-12-25 | Silver Peak Systems, Inc. | Dynamic monitoring and visualization for network health characteristics |
US8788739B2 (en) * | 2009-06-29 | 2014-07-22 | Hewlett-Packard Development Company, L.P. | Hypervisor-based management of local and remote virtual memory pages |
KR101077782B1 (ko) * | 2009-12-18 | 2011-10-28 | 한국과학기술원 | 가상머신의 메모리 관리 시스템 및 관리 방법 |
US8862922B2 (en) * | 2010-01-14 | 2014-10-14 | International Business Machines Corporation | Data center power adjustment |
US9110806B2 (en) * | 2010-03-10 | 2015-08-18 | Microsoft Technology Licensing, Llc | Opportunistic page caching for virtualized servers |
US8863117B2 (en) * | 2010-07-19 | 2014-10-14 | International Business Machines Corporation | Optimizing a file system interface in a virtualized computing environment |
US8707300B2 (en) * | 2010-07-26 | 2014-04-22 | Microsoft Corporation | Workload interference estimation and performance optimization |
US9086921B2 (en) | 2010-11-16 | 2015-07-21 | Vmware, Inc. | Dynamic database memory management according to swap rates |
US8935456B2 (en) * | 2010-11-16 | 2015-01-13 | Vmware, Inc. | Method and system for integrating database memory management in virtual machines |
US8943259B2 (en) * | 2010-11-16 | 2015-01-27 | Vmware, Inc. | Relieving memory pressure in a host using database memory management |
CN102541619B (zh) * | 2010-12-23 | 2015-09-16 | 国际商业机器公司 | 虚拟机管理装置和方法 |
JP5673210B2 (ja) * | 2011-02-28 | 2015-02-18 | 日本電気株式会社 | 仮想計算機システム、仮想計算機システムのメモリ管理方法およびメモリ管理プログラム |
US9552215B2 (en) | 2011-03-08 | 2017-01-24 | Rackspace Us, Inc. | Method and system for transferring a virtual machine |
US8943260B2 (en) * | 2011-03-13 | 2015-01-27 | International Business Machines Corporation | Dynamic memory management in a virtualized computing environment |
US8725963B1 (en) * | 2011-04-15 | 2014-05-13 | Parallels IP Holdings GmbH | System and method for managing a virtual swap file for virtual environments |
US9237127B2 (en) * | 2011-05-12 | 2016-01-12 | Airmagnet, Inc. | Method and apparatus for dynamic host operating system firewall configuration |
US9130991B2 (en) | 2011-10-14 | 2015-09-08 | Silver Peak Systems, Inc. | Processing data packets in performance enhancing proxy (PEP) environment |
US9626224B2 (en) * | 2011-11-03 | 2017-04-18 | Silver Peak Systems, Inc. | Optimizing available computing resources within a virtual environment |
US8990263B2 (en) * | 2012-03-15 | 2015-03-24 | International Business Machines Corporation | Policy-based management of storage functions in data replication environments |
JP2013196421A (ja) * | 2012-03-21 | 2013-09-30 | Nec Corp | 仮想化システム、仮想サーバ、メモリ管理方法及びメモリ管理プログラム |
US20130262811A1 (en) * | 2012-03-27 | 2013-10-03 | Hitachi, Ltd. | Method and apparatus of memory management by storage system |
US9996370B1 (en) * | 2012-04-18 | 2018-06-12 | Open Invention Network Llc | Page swapping in virtual machine environment |
US9027024B2 (en) | 2012-05-09 | 2015-05-05 | Rackspace Us, Inc. | Market-based virtual machine allocation |
US9336147B2 (en) * | 2012-06-12 | 2016-05-10 | Microsoft Technology Licensing, Llc | Cache and memory allocation for virtual machines |
KR101694297B1 (ko) | 2012-08-30 | 2017-01-23 | 한국전자통신연구원 | 가상화 시스템을 위한 데스크탑 가상화 매니저 장치 및 클라이언트 장치 |
US9116744B2 (en) * | 2012-09-07 | 2015-08-25 | International Business Machines Corporation | Resource management within a process via iterative negotiation |
US9256532B2 (en) * | 2012-10-11 | 2016-02-09 | Industrial Technology Research Institute | Method and computer system for memory management on virtual machine |
KR101999132B1 (ko) * | 2012-12-17 | 2019-10-01 | 삼성전자주식회사 | 가상 머신 환경에서 메모리 관리 방법 및 장치 |
KR101442091B1 (ko) * | 2012-12-31 | 2014-09-25 | 고려대학교 산학협력단 | 가상화 시스템에서의 메모리 관리 방법 |
US11669441B1 (en) * | 2013-03-14 | 2023-06-06 | Amazon Technologies, Inc. | Secure virtual machine reboot via memory allocation recycling |
US9507540B1 (en) | 2013-03-14 | 2016-11-29 | Amazon Technologies, Inc. | Secure virtual machine memory allocation management via memory usage trust groups |
US9323552B1 (en) | 2013-03-14 | 2016-04-26 | Amazon Technologies, Inc. | Secure virtual machine memory allocation management via dedicated memory pools |
US9817756B1 (en) * | 2013-05-23 | 2017-11-14 | Amazon Technologies, Inc. | Managing memory in virtualized environments |
JP6069515B2 (ja) * | 2013-09-26 | 2017-02-01 | 株式会社日立製作所 | 計算機システムおよび計算機システムのメモリ割当調整方法 |
DE102013222167B4 (de) | 2013-10-31 | 2024-07-11 | Pfeiffer Vacuum Gmbh | Vakuumpumpe |
US9396014B2 (en) | 2014-02-27 | 2016-07-19 | International Business Machines Corporation | Data swap in virtual machine environment |
KR101709121B1 (ko) * | 2014-04-09 | 2017-02-22 | 한국전자통신연구원 | 가상 머신 구동 방법 및 가상 머신 구동 시스템 |
US9052938B1 (en) | 2014-04-15 | 2015-06-09 | Splunk Inc. | Correlation and associated display of virtual machine data and storage performance data |
EP3140734B1 (en) | 2014-05-09 | 2020-04-08 | Nutanix, Inc. | Mechanism for providing external access to a secured networked virtualization environment |
US9948496B1 (en) | 2014-07-30 | 2018-04-17 | Silver Peak Systems, Inc. | Determining a transit appliance for data traffic to a software service |
US9875344B1 (en) | 2014-09-05 | 2018-01-23 | Silver Peak Systems, Inc. | Dynamic monitoring and authorization of an optimization device |
US10055146B1 (en) * | 2014-12-30 | 2018-08-21 | EMC IP Holding Company LLC | Virtual machine rollback |
JP6589417B2 (ja) * | 2015-07-03 | 2019-10-16 | 富士通株式会社 | 起動制御プログラム、起動制御方法及び起動制御装置 |
KR102513961B1 (ko) | 2015-11-11 | 2023-03-27 | 삼성전자주식회사 | 멀티 운영시스템을 지닌 전자장치 및 이의 동적 메모리 관리 방법 |
US10831465B2 (en) | 2016-02-12 | 2020-11-10 | Nutanix, Inc. | Virtualized file server distribution across clusters |
US11218418B2 (en) | 2016-05-20 | 2022-01-04 | Nutanix, Inc. | Scalable leadership election in a multi-processing computing environment |
US10432484B2 (en) | 2016-06-13 | 2019-10-01 | Silver Peak Systems, Inc. | Aggregating select network traffic statistics |
US9967056B1 (en) | 2016-08-19 | 2018-05-08 | Silver Peak Systems, Inc. | Forward packet recovery with constrained overhead |
US10481951B2 (en) * | 2016-11-15 | 2019-11-19 | Red Hat Israel, Ltd. | Multi-queue device assignment for application groups |
US10824455B2 (en) | 2016-12-02 | 2020-11-03 | Nutanix, Inc. | Virtualized server systems and methods including load balancing for virtualized file servers |
US11568073B2 (en) * | 2016-12-02 | 2023-01-31 | Nutanix, Inc. | Handling permissions for virtualized file servers |
US11562034B2 (en) | 2016-12-02 | 2023-01-24 | Nutanix, Inc. | Transparent referrals for distributed file servers |
US11294777B2 (en) | 2016-12-05 | 2022-04-05 | Nutanix, Inc. | Disaster recovery for distributed file servers, including metadata fixers |
US11281484B2 (en) | 2016-12-06 | 2022-03-22 | Nutanix, Inc. | Virtualized server systems and methods including scaling of file system virtual machines |
US11288239B2 (en) | 2016-12-06 | 2022-03-29 | Nutanix, Inc. | Cloning virtualized file servers |
US10257082B2 (en) | 2017-02-06 | 2019-04-09 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows |
US11044202B2 (en) | 2017-02-06 | 2021-06-22 | Silver Peak Systems, Inc. | Multi-level learning for predicting and classifying traffic flows from first packet data |
US10892978B2 (en) | 2017-02-06 | 2021-01-12 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows from first packet data |
US10771394B2 (en) | 2017-02-06 | 2020-09-08 | Silver Peak Systems, Inc. | Multi-level learning for classifying traffic flows on a first packet from DNS data |
US10481954B2 (en) * | 2017-06-09 | 2019-11-19 | Bank Of America Corporation | System and method of managing computing resources |
US11212210B2 (en) | 2017-09-21 | 2021-12-28 | Silver Peak Systems, Inc. | Selective route exporting using source type |
US10637721B2 (en) | 2018-03-12 | 2020-04-28 | Silver Peak Systems, Inc. | Detecting path break conditions while minimizing network overhead |
US11086826B2 (en) | 2018-04-30 | 2021-08-10 | Nutanix, Inc. | Virtualized server systems and methods including domain joining techniques |
US11194680B2 (en) | 2018-07-20 | 2021-12-07 | Nutanix, Inc. | Two node clusters recovery on a failure |
US10901781B2 (en) | 2018-09-13 | 2021-01-26 | Cisco Technology, Inc. | System and method for migrating a live stateful container |
US11770447B2 (en) | 2018-10-31 | 2023-09-26 | Nutanix, Inc. | Managing high-availability file servers |
CN110209354B (zh) * | 2019-05-24 | 2022-04-19 | 北京百度网讯科技有限公司 | 用于处理数据的方法、装置、设备和介质 |
US11200091B2 (en) * | 2020-02-03 | 2021-12-14 | Dell Products L.P. | Adaptive memory optimization for thin clients |
US11768809B2 (en) | 2020-05-08 | 2023-09-26 | Nutanix, Inc. | Managing incremental snapshots for fast leader node bring-up |
US12131192B2 (en) | 2021-03-18 | 2024-10-29 | Nutanix, Inc. | Scope-based distributed lock infrastructure for virtualized file server |
US20230066137A1 (en) | 2021-08-19 | 2023-03-02 | Nutanix, Inc. | User interfaces for disaster recovery of distributed file servers |
US12117972B2 (en) | 2021-08-19 | 2024-10-15 | Nutanix, Inc. | File server managers and systems for managing virtualized file servers |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07262093A (ja) * | 1994-03-17 | 1995-10-13 | Hitachi Ltd | 記憶装置の領域再構成制御方式 |
US20020016891A1 (en) * | 1998-06-10 | 2002-02-07 | Karen L. Noel | Method and apparatus for reconfiguring memory in a multiprcessor system with shared memory |
US6542926B2 (en) * | 1998-06-10 | 2003-04-01 | Compaq Information Technologies Group, L.P. | Software partitioned multi-processor system with flexible resource sharing levels |
JP2002041304A (ja) * | 2000-07-28 | 2002-02-08 | Hitachi Ltd | 論理区画の予備リソース自動付与方法及び論理区画式計算機システム |
GB2381886B (en) * | 2001-11-07 | 2004-06-23 | Sun Microsystems Inc | Computer system with virtual memory and paging mechanism |
US7788461B2 (en) * | 2004-04-15 | 2010-08-31 | International Business Machines Corporation | System and method for reclaiming allocated memory to reduce power in a data processing system |
US7421533B2 (en) * | 2004-04-19 | 2008-09-02 | Intel Corporation | Method to manage memory in a platform with virtual machines |
US7257811B2 (en) * | 2004-05-11 | 2007-08-14 | International Business Machines Corporation | System, method and program to migrate a virtual machine |
DE602004027516D1 (de) * | 2004-12-03 | 2010-07-15 | St Microelectronics Srl | Ein Verfahren zum Verwalten von virtuellen Maschinen in einer körperlichen Verarbeitungsmaschine, ein entsprechendes Prozessorsystem und Computerprogrammprodukt dafür |
US7500048B1 (en) * | 2005-12-15 | 2009-03-03 | Vmware, Inc. | Transparent page sharing on commodity operating systems |
US7487307B2 (en) * | 2006-01-05 | 2009-02-03 | International Business Machines Corporation | Method, apparatus and program product for managing memory in a virtual computing system |
-
2007
- 2007-06-27 US US11/769,161 patent/US8015383B2/en active Active
-
2008
- 2008-06-25 KR KR1020097018203A patent/KR101137172B1/ko active IP Right Grant
- 2008-06-25 CN CN200880016015XA patent/CN101681268B/zh active Active
- 2008-06-25 WO PCT/EP2008/058081 patent/WO2009000856A1/en active Application Filing
- 2008-06-25 JP JP2010513902A patent/JP5235989B2/ja active Active
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102804140A (zh) * | 2009-06-18 | 2012-11-28 | 思杰系统有限公司 | 用于将设备驱动程序导入到客户计算环境中的方法和系统 |
CN102467449A (zh) * | 2010-11-16 | 2012-05-23 | 英业达股份有限公司 | 支持文件存取测试的大容量扇区磁盘的模拟方法 |
CN102880557A (zh) * | 2012-09-13 | 2013-01-16 | 浙江金大科技有限公司 | 一种异构数据源的多级分布式高速缓存 |
CN102880557B (zh) * | 2012-09-13 | 2015-06-10 | 浙江金大科技有限公司 | 一种异构数据源的多级分布式高速缓存的查找方法 |
CN103729249A (zh) * | 2012-10-11 | 2014-04-16 | 财团法人工业技术研究院 | 虚拟机的存储器管理的方法和计算机系统 |
CN103729230A (zh) * | 2012-10-11 | 2014-04-16 | 财团法人工业技术研究院 | 虚拟机系统的内存管理方法和计算机系统 |
CN103729249B (zh) * | 2012-10-11 | 2017-04-12 | 财团法人工业技术研究院 | 虚拟机的存储器管理的方法和计算机系统 |
CN103729230B (zh) * | 2012-10-11 | 2017-04-12 | 财团法人工业技术研究院 | 虚拟机系统的内存管理方法和计算机系统 |
CN103608792A (zh) * | 2013-05-28 | 2014-02-26 | 华为技术有限公司 | 支持多核架构下资源隔离的方法及系统 |
CN103608792B (zh) * | 2013-05-28 | 2016-03-09 | 华为技术有限公司 | 支持多核架构下资源隔离的方法及系统 |
US9411646B2 (en) | 2013-05-28 | 2016-08-09 | Huawei Technologies Co., Ltd. | Booting secondary processors in multicore system using kernel images stored in private memory segments |
Also Published As
Publication number | Publication date |
---|---|
JP2010532034A (ja) | 2010-09-30 |
US20090006801A1 (en) | 2009-01-01 |
JP5235989B2 (ja) | 2013-07-10 |
CN101681268B (zh) | 2012-09-26 |
US8015383B2 (en) | 2011-09-06 |
WO2009000856A1 (en) | 2008-12-31 |
KR101137172B1 (ko) | 2012-04-19 |
KR20090122936A (ko) | 2009-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101681268B (zh) | 管理虚拟机存储器的系统、方法和程序 | |
JP3882930B2 (ja) | 共用リソースを使用するための仮想計算機の管理 | |
US8230434B2 (en) | Entitlement management system, method and program product for resource allocation among micro-partitions | |
JP3978199B2 (ja) | リソースの利用およびアプリケーションの性能の監視システムおよび監視方法 | |
JP5510556B2 (ja) | 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム | |
US7945913B2 (en) | Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system | |
US7665090B1 (en) | System, method, and computer program product for group scheduling of computer resources | |
US8667207B2 (en) | Dynamic reallocation of physical memory responsive to virtual machine events | |
EP1089173B1 (en) | Dynamic adjustment of the number of logical processors assigned to a logical partition | |
US20100211958A1 (en) | Automated resource load balancing in a computing system | |
US8782646B2 (en) | Non-uniform memory access (NUMA) enhancements for shared logical partitions | |
US20130339956A1 (en) | Computer system and optimal arrangement method of virtual machine in computer system | |
EP4280067A2 (en) | A metadata control in a load-balanced distributed storage system | |
CN103577345A (zh) | 提高由多个系统共享的存储高速缓存灵活性的方法和结构 | |
CN103530170A (zh) | 在虚拟机环境中提供硬件虚拟化的系统和方法 | |
KR20180116971A (ko) | 하이퍼바이저 기반의 가상 머신 격리 장치 및 방법 | |
JP2009265778A (ja) | 仮想化サーバ | |
CN113939803B (zh) | 用于专用主机的管理计算资源放置即服务 | |
JP2022034455A (ja) | 計算機システムおよび管理方法 | |
US20190114254A1 (en) | Virtualization of Multiple Coprocessor Memory | |
JP4862770B2 (ja) | 仮想計算機システムにおけるメモリ管理方式及びその方法、およびプログラム | |
CN110447019B (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
US20220318042A1 (en) | Distributed memory block device storage | |
Brito et al. | IBM PowerVM Virtualization Active Memory Sharing | |
Tang et al. | Thoth: Provisioning Over-Committed Memory Resource with Differentiated QoS in Public Clouds |
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 |