管理虚拟机存储器的系统、方法和程序的制作方法

文档序号:6477173阅读:213来源:国知局
专利名称:管理虚拟机存储器的系统、方法和程序的制作方法
技术领域
本发明总体涉及计算机系统,更具体而言,处理对虚拟机存储器的管理。
背景技术
如今,配置为虚拟机的计算机已经众所周知。在这样的配置中,管理
程序将实际计算机的物理资源(包括CPU,存储器,存储设备和i/o设备)
逻辑上划分成独立的虛拟机。例如,管理程序为每个虚拟机分配对一个或
多个处理器和映射到实际RAM的一段虚拟专用存储器的时间共享。当虛 拟机寻址其自己的虚拟专用存储器时,管理程序将虚拟专用存储器地址转 译成实际存储器的实际地址。管理程序还将虛拟专用存储器分配给它自己, 以存储管理程序的程序(包含其控制结构)以及管理程序4吏用的数据。在 已知的IBMz/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, IBM Publications, Raleigh, North Carolina 27626 - 0570的国际商业机器7>司, 或者通过WWW从IBM主页加后缀'7shop/publications/order"获得。这 些刊物在此通过援引的方式纳入本文作为本文>^开的一部分。
客户操作系统执行于每个虚拟机中(使用虛拟机共享的CPU,存储器, 等)。在每个客户操作系统上执行一个或多个应用和中间件程序(诸如文 件管理器)。尽管每个应用、中间件程序和客户操作系统在虚拟机中执行, 但是它们如同在其自己的专用、实际计算机中执行一样进行操作。每个虚 拟机中的客户操作系统可以是Linux (林纳斯.托瓦兹(Linus Torvalds)的 商标)操作系统,IBM CMS操作系统或其它^Mt系统。在每个虚拟机上 的每个客户操作系统上执行的应用和中间件可以是IBM DB2数据库管理 应用,IBM Websphere应用,或各种其它禾呈序。
每个虛拟机的客户操作系统、中间件、应用(多个)和数据存储在分 配给该虚拟机的虛拟专用存储器的工作存储器部分中。每个虛拟机还包括 分配给该虛拟机的虚拟专用存储器的高速緩冲存储器部分。高速緩冲存储 器包含从(磁盘)存储设备存取的数据和相关联的元数据。元数据包含到 数据文件的目录和子目录路径、当前正被写入或读取的文件中的记录的标 识、文件的大小、文件中记录的大小、文件中数据的类型(ASCII, EBCDIC, 或者是二进制)、文件存储在磁盘上的何处,等等。大多数客户操作系统 包括一些算法,用于确定当高速緩沖存储器充满时应该将数据的哪些页保
留在高速緩沖存储器中,以及当工作存储器充满时应该将数据的哪些页保 留在工作存储器中。例如,大多数客户操作系统使用最近最少使用算法, 用以当高速緩冲存储器中用于虛拟机所需新数据的空间不足时将最近最少使用的数据从高速緩冲存储器页调出到外部存储器中,并使用相似算法, 用以当工作存储器中用于虛拟机所需新数据的空间不足时将最近最少使用 的数据从工作存储器页调出到外部存储器中。
虛拟机还可包括从RAM分配给虛拟机的虛拟专用存储器的交换存储 器部分。虛拟机的交换存储器用作为接收和存储从高速緩冲存储器和工作 存储器页调出的数据的存储器位置,以替代将数据页调出到磁盘存储器。 在典型的场景中,当存储虚拟机所需数据(信息和程序)的高速緩冲存储 器或工作存储器不足时,虚拟机中的客户操作系统识别虚拟机的高速緩沖 存储器或工作存储器中最近最少使用的存储器数据(作为四千字节的页)。
然后,客户操作系统可以将最近最少使用的存储器页复制到虛拟机的交换 存储器或磁盘存储设备中。客户操作系统基于管理员定义的虛拟机的配置, 确定是将页调出到交换存储器还是(磁盘)存#^殳备。管理员可以配置虛 拟机以将页调出到任意一个,或者将页调出到交换存储器直到充满然后再 将页调出到磁盘。页调出释放了高速緩沖存储器和工作存储器,使得操作 系统能够将其他更需要的数据页从交换存储器或存储设备页调入到高速緩 冲存储器或工作存储器。
作为客户操作系统的Linux操作系统(以及其他操作系统)将管理程 序分配给它的虚拟专用存储器虛拟化。在其自身的虚拟化过程中,Linux 操作系统过量使用管理程序分配给它的虚拟专用存储器。例如,假定管理 程序为具有Linux (或其他)客户操作系统的虚拟机分配了 3千兆字节的 虛拟专用存储器。作为响应,Linux客户操作系统可以自己为Linux ^^作 系统上执行的进程虚拟地分配6千兆字节。这是可以实现的,因为这些进 程平均来说典型地使用比分配给它们的存储器少得多的存储器。但是, Linux操作系统(以及Microsoft Windoes操作系统)倾向于在其工作存储 器和高速緩冲存储器中保留过期数据,因为存在一定的机会将来需要这些 数据,并且这会减少页调出和页调入。由于这样的原因,典型地,Linux 操作系统在正常操作期间要么未能成功利用交换存储器,要么对其交换存 储器严重利用不足,即使Linux操作系统配置为使用交换存储器用于页调出。
管理程序追踪在先验间隔期间每个虛拟机使用了多少存储器(称为"工 作集")。管理程序使用所有虛拟机的组合大小的"工作集,,来确定它自 己和它后续可能创建的其他虛拟机可用的存储器有多少。对于它自己和它 后续可能创建的其他虛拟机来说,管理程序过量使用可用的虛拟专用存储 器,因为管理程序和所有虛拟机通常并不使用所有的其各自存储器分配。
个别情况下,管理程序需要附加的存储器用于它自己的操作,用以形 成另外的虛拟机,或用以分配给存储器不足的现有的、关键性虛拟机。在
上述情况的任何一种的情况下,管理程序(例如在IBM z/VM 5.1操作系 统中所建立的)可以请求具有多余虛拟专用存储器的虛拟机自愿地放弃一 些其现有的虛拟专用存储器分配。典型地,响应于这样的请求,虛拟机将 会放弃其全部虚拟专用存储器分配中的一些,然后基于其剩余的虚拟专用 存储器分配重新平衡工作存储器和高速緩冲存储器的量。 一些客户操作系 统在高速緩沖存储器可用的情况下将仅仅从其高速緩冲存储器放弃虚拟专 用存储器。如果存在交换存储器分配的话,该交换存储器分配不受影响。 然而,这会使得一些或全部虚拟机用以有效执行其工作项目的虛拟专用存 储器的量不足。
本发明的一个目的是更好地管理存储器的分配。 本发明的另一目的是更好地管理为虛拟机的存储器分配。

发明内容
本发明驻留在管理由虚拟机控制程序为多个虛拟机分配的虛拟存储器 的系统、计算;l^4呈序产品和方法中。所述虚拟机中的每一个具有被划分为 工作存储器、高速緩冲存储器和交换存储器的虚拟专用存储器分配。所述 虚拟机控制程序确定它需要附加的虛拟存储器分配,作为响应,所述虚拟 机控制程序向所述虛拟机发出各自请求,以将其各自工作存储器和/或高速 緩冲存储器中的一些转换为交换存储器。
根据本发明的特征,所述请求中的每一个指定要转换为交换存储器的工作存储器和/或高速緩冲存储器的量。所述多个虚拟机包括各自的多个客户操作系统,所述多个客户操作系统被编程为,与分配给它们各自虚拟机的交换存储器相比,更为充分地利用分配给它们各自虚拟机的工作存储器和/或高速緩冲存储器。
本发明还驻留在管理由虚拟机控制程序为多个虛拟机分配的虚拟存储器的系统、计算机程序产品和方法中。所述虛拟机中的每一个具有^皮划分为工作存储器、高速緩冲存储器和交换存储器的虚拟专用存储器分配。所述虚拟机控制程序确定它需要比当前分配给所述虚拟机控制程序的虚拟存储器更少的虚拟存储器分配,作为响应,所述虚拟机控制程序向所述虚拟机发出各自请求,以将其各自交换存储器中的一些转换为工作存储器和/或高速緩沖存储器。
根据本发明的特征,所述请求中的每一个指定要转换为工作存储器和/或高速緩沖存储器的交换存储器的量。所述多个虚拟机包括各自的多个客户操作系统,所^户操作系统被编程为,与分配给它们各自虛拟机的交换存储器相比,更为充分地利用分配给它们各自虛拟机的工作存储器和/或高速緩沖存储器。


图1是根据本发明包括客户操作系统和管理程序的实际计算机的框图。
图2是图1的管理程序的功能和操作的流程图。
图3是图1的客户操作系统的功能和操作的流程图。
具体实施例方式
现在参照附图详细描述本发明。图l说明根据本发明一个实施例的总体标为10的计算机系统。计算机系统10包括实际/物理计算机20,其具有实际CPU23, RAM24, 1/0设备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的CPU23,存储器24, 1/0设备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: 高速緩冲存储器340: 交换存储器440:
虚拟机33
工作存储器233: 高速緩沖存储器333: 交换存储器433:
虚拟机34
工作存储器234: 高速緩沖存储器334: 交换存储器434:
虚拟机35
工作存储器235: 高速緩沖存储器335: 交换存储器435:
4千兆字节 1千兆字节 0.5千兆字节
5千兆字节 2千兆字节 1千兆字节
5千兆字节 2千兆字节 1千兆字节
客户操作系统基于管理 程序分配的虛拟专用存 储器而分配的虛拟专用 专用存储器
IO千兆字节 4千兆字节 2千兆字节
10千兆字节 4千兆字节 2千兆字节
5千兆字节 2千兆字节 1千兆字节
2.5千兆字节 1千兆字节 0.5千兆字节
注意到,在这个示例中,计算机IO中总的实际存储器(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:高速緩冲存储器340:交换存储器440:
虛拟机33
工作存储器233:高速緩冲存储器333:交换存储器433:
虚拟机34
工作存储器234:高速緩冲存储器334:交换存储器434:
虛拟机35
工作存储器235:高速緩冲存储器335:交换存储器435:
7.60千兆字节1.90千兆字节0.95千兆字节
3.57千兆字节1.43千兆字节3千兆字节
3.57千兆字节1.43千兆字节3千兆字节
客户操作系统基于管理程序分配的虛拟专用存储器而分配的虛拟专用存储器
7.14千兆字节2.86千兆字节6千兆字节
7.14千兆字节2.86千兆字节6千兆字节
3.56千兆字节1.44千兆字节3千兆字节
1.78千兆字节.72千兆字节1.5千兆字节
在这个示例中,管理程序40将其总虛拟专用存储器分配增加了 5千兆字节,虛拟机33成比例地将2千兆字节的组合的工作存储器和高速緩冲存储器转换为交换存储器,虚拟机34成比例地将2千兆字节的组合的工作存储器和高速緩沖存储器转换为交换存储器,虛拟机35成比例地将1千兆字节的组合的工作存储器和高速緩沖存储器转换为交换存储器。在这个示例中,给每个虛拟机33, 34和35的总的虛拟专用存储器分配并没有改变,尽管给管理程序40的总存储器分配增加了 5千兆字节。这是可以实现的, 因为平均来说,每个虛拟机对其各自的交换存储器严重利用不足,但是在 需要辅助页调出时,交换存储器可用于各自虚拟机。(在本发明另一实施 例中,每个虚拟机将增加其交换存储器的量,但是更多地减少工作存储器
和/或高速緩冲存储器的量)。
利用每个虛拟机中从工作存储器和高速緩沖存储器到交换存储器的转 换,虚拟机实际上将总体更少地使用虚拟专用存储器,因为交换存储器仅 在需要时才使用,而通常高速緩冲存储器和工作存储器不管是否需要都会 充分使用。这为管理程序提供了额外的可用存储器。每个虛拟机中额外的 交换存储器倾向于补偿每个虚拟机中减少的工作存储器和高速緩沖存储 器,因为减少的工作存储器和高速緩沖存储器会有更多的页调出和页调入, 附加的交换存储器会在需要时辅助页调出和页调入。
在这个示例中,假定在稍后时间,管理程序40需要更少的虛拟专用存 储器(例如,大约少5千兆字节)用于它自己。因此,管理程序40请求各 自虚拟机33, 34和35中的客户^Mt系统43, 44和45将特定量的其各自 的交换存储器转换为工作存储器和/或高速緩冲存储器,由此减少每个虛拟 机中的交换存储器的量。作为响应,每个客户操作系统将特定量的交换存 储器转换为工作存储器和/或高速緩沖存储器。每个客户操作系统使用它自 己的算法来确定将多少指定量的交换存储器转换为工作存储器,以及将多 少指定量的交换存储器转换为高速緩冲存储器。在前述示例中,每个客户 操作系统可以基于其目前的分配状况,成比例地将指定量的交换存储器转 换为工作存储器和高速緩冲存储器。例如,为了放弃大约5千兆字节的实 际存储器用于自己使用,管理程序40将请求客户操作系统43将2千兆字 节的其交换存储器转换为工作存储器和/或高速緩冲存储器,管理程序40 将请求客户操作系统44将2千兆字节的交换存储器转换为工作存储器和/ 或高速緩沖存储器,并且管理程序40将请求客户操作系统43将1千兆字 节的交换存储器转换为工作存储器和/或高速緩冲存储器。这就总体减少了 5千兆字节的交换存储器。响应于上述请求,每个客户操作系统将指定量的其减少的交换存储器转换为工作存储器和/或高速緩沖存储器。每个客户 操作系统使用它自己的算法来确定增加多少其当前工作存储器和多少当前 高速緩冲存储器来满足管理程序的请求。例如,每个客户操作系统可以基 于工作存储器和高速緩沖存储器的目前分配状况,成比例地将额外的交换
存储器转换为工作存储器和高速緩冲存储器,以满足管理程序的请求。替 代地,每个客户操作系统可以基于工作存储器和高速緩冲存储器的目前使 用状况,将额外的交换存储器转换为工作存储器和高速緩冲存储器。替代 地,每个客户操作系统可以将所有额外的交换存储器转换为高速緩冲存储 器。在前述的示例中,以下是管理程序请求每个虚拟存储器将指定量的其 交换存储器转换为工作存储器和/或高速緩冲存储器,并且每个虛拟机履行 其工作存储器和高速緩冲存储器的成比例增加之后的存储器分配状况。
部件
管理程序分配的 虚拟专用存储器
实际存储器
(15千兆字节)
管理程序40
工作存储器240: 高速緩冲存储器340: 交换存储器440:
虛拟机33
工作存储器233: 高速緩冲存储器333: 交换存储器433:
虚拟机34
工作存储器234:
4千兆字节 1千兆字节 0.5千兆字节
5千兆字节 2千兆字节 l千兆字节
5千兆字节
客户操作系统基于管理 程序分配的虚拟专用存 储器而分配的虚拟专用 存储器
IO千兆字节 4千兆字节 2千兆字节
IO千兆字节高速緩沖存储器334 交换存储器434: 虚拟才几35
工作存储器235: 高速緩沖存储器335 交换存储器435:
2千兆字节 1千兆字节
4千兆字节 2千兆字节
2.5千兆字节 1千兆字节 0.5千兆字节
5千兆字节 2千兆字节 1千兆字节
在这个示例中,管理程序40将其总虛拟专用存储器分配减少了 5千兆 字节,虚拟机33将2千兆字节的交换存储器转换为工作存储器和高速緩冲 存储器,虚拟机34将2千兆字节的交换存储器转换为工作存储器和高速緩 冲存储器,虛拟机35将1千兆字节的交换存储器转换为工作存储器和高速 緩冲存储器。在这个示例中,给每个虛拟机的总的虚拟专用存储器分配并 没有改变,尽管给管理程序40的总存储器分配减少了 5千兆字节。这是可 以实现的,因为平均来"i兌,每个虛拟机比4吏用存储器更充分地4吏用工作存 储器和高速緩冲存储器。
图2更详细地说明管理程序40的^Mt和功能。在步骤600,管理程序 40监视其自己的虛拟专用存储器150的当前总利用状况。管理程序40通 过监M其自己的虛拟专用存储器的页调出和页调入的量来监视虚拟专用 存储器的当前使用状况。如果管理程序的虚拟专用存储器被充分使用或接 近充分使用,将会有大量的页调出和页调入,因为可用的工作存储器和高 速緩冲存储器不足,反之亦然。例如,在工作存储器和高速緩冲存储器不 足的情况下,预定间隔期间页调出和页调入的数目将会高于预定上限阈值。 接着,管理程序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)。例如,该内部算法可以基于由系 统管理员定义的初始配置来将初始虚拟专用存储器划分为工作存储器、高 速緩冲存储器和交换存储器。接下来,客户操作系统执行其/^P的操作系 统功能,例如,执行其应用和中间件(步骤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除了改变虛拟机的交换存储器量之外,还可以改变分配给一个或多个虛拟机的虚拟专用存储器的总量。因此,本发明通过说明而非限制的 方式公开,应该参照下面的权利要求来确定本发明的范围。
权利要求
1.一种管理由虚拟机控制程序为多个虚拟机分配的虚拟存储器的方法,所述虚拟机中的每一个具有被划分为工作存储器、高速缓冲存储器和交换存储器的虚拟专用存储器分配,所述方法包括如下步骤所述虚拟机控制程序确定它需要附加的虚拟存储器分配,作为响应,所述虚拟机控制程序向所述虚拟机发出各自请求,以将其各自工作存储器和/或高速缓冲存储器中的一些转换为交换存储器;以及所述虚拟机履行所述各自请求,将其各自工作存储器和/或高速缓冲存储器中的一些转换为交换存储器。
2. 如权利要求1所述的方法,其中所述请求中的每一个指定要转换 为交换存储器的工作存储器和/或高速緩冲存储器的量。
3. 如权利要求1或2所述的方法,其中所述多个虚拟机包括各自的 多个客户操作系统,所述多个客户操作系统被编程为,与分配给它们各自 虛拟机的交换存储器相比,更为充分地利用分配给它们各自虛拟机的工作 存储器和/或高速緩冲存储器。
4. 如权利要求l, 2或3所述的方法,其中所述虚拟机中的每一个 履行所述请求,通过将高速緩冲存储器转换为交换存储器,以此将其各自 的工作存储器和/或高速緩冲存储器中的 一些转换为交换存储器。
5. —种虚拟机控制程序产品,用于将虛拟存储器分配给虛拟机控制 程序和多个虚拟机,所述虚拟机中的每一个具有被划分为工作存储器、高 速緩冲存储器和交换存储器的虛拟专用存储器分配,所述虚拟机控制程序 产品包括计算机可读介质;第一程序指令,用以确定所述虚拟机控制程序需要附加的虚拟存储器 分配,作为响应,向所述虚拟机的每一个发出请求,以将其各自工作存储器和/或高速緩冲存储器中的一些转换为交换存储器;其中所述第 一程序指令以功能形式存储在所述计算机可读介质上。
6. 如权利要求5所述的虚拟机控制程序产品,其中所述请求中的每 一个指定要转换为交换存储器的工作存储器和/或高速緩沖存储器的量。
7. 如权利要求5所述的虚拟机控制程序产品,其中所述多个虚拟机 包括各自的多个客户操作系统,所述多个客户操作系统被编程为,与分配 给它们各自虛拟机的交换存储器相比,更为充分地利用分配给它们各自虚 拟机的工作存储器和/或高速緩冲存储器。
8. —种计算机系统,用于将虛拟存储器分配给虛拟机控制程序和多 个虚拟机,所述虚拟机中的每一个具有被划分为工作存储器、高速緩冲存 储器和交换存储器的虛拟专用存储器分配,所述计算机系统包括用以确定所述虛拟机控制程序需要附加的虚拟存储器分配,并作为响 应,向所述虚拟机发出各自请求,以将其各自工作存储器和/或高速緩沖存 储器中的一些转换为交换存储器的装置;以及所述虚拟机包括用以履行所述各自请求,以将其各自工作存储器和/ 或高速緩冲存储器中的一些转换为交换存储器的装置。
9. 如权利要求8所述的计算机系统,其中所述请求中的每一个指定 要转换为交换存储器的工作存储器和/或高速緩冲存储器的量。
10. 如权利要求8或9所述的计算机系统,其中所述多个虚拟机包括 各自的多个客户操作系统,所述多个客户操作系统被编程为,与分配给它 们各自虛拟机的交换存储器相比,更为充分地利用分配给它们各自虚拟机 的工作存储器和/或高速緩冲存储器。
11. 一种管理由虚拟机控制程序为多个虚拟机分配的虛拟存储器的 方法,所述虛拟机中的每一个具有被划分为工作存储器、高速緩冲存储器 和交换存储器的虚拟专用存储器分配,所述方法包括如下步骤所述虚拟机控制程序确定它需要比当前分配给所述虛拟机控制程序的 虛拟存储器更少的虛拟存储器分配,作为响应,所述虛拟机控制程序向所 述虛拟机发出各自请求,以将其各自交换存储器中的一些转换为工作存储 器和/或高速緩沖存储器。
12. 如权利要求11所迷的方法,其中所述请求中的每一个指定要转换为工作存储器和/或高速緩沖存储器的交换存储器的量。
13. 如权利要求11或12所述的方法,其中所述多个虛拟机包括各自的多个客户操作系统,所^J:户操作系统被编程为,与分配给它们各自虚拟机的交换存储器相比,更为充分地利用分配给它们各自虚拟机的工作存储器和/或高速緩冲存储器。
14. 如权利要求ll, 12或13所述的方法,还包括步骤所述虛拟机履行所述各自请求,以将其各自的交换存储器中的一些转换为工作存储器和/或高速緩沖存储器。
全文摘要
对虚拟机控制程序为多个虚拟机分配的虚拟存储器的管理。每个虚拟机具有被划分为工作存储器、高速缓冲存储器和交换存储器的虚拟专用存储器分配。虚拟机控制程序确定它需要附加的虚拟存储器分配,作为响应,向所述虚拟机发出各自请求,以将其各自的工作存储器和/或高速缓冲存储器中的一些转换为交换存储器。在其它时间,虚拟机控制程序确定它需要更少的虚拟存储器分配,作为响应,向所述虚拟机发出各自请求,以将其各自的交换存储器中的一些转换为工作存储器和/或高速缓冲存储器。
文档编号G06F9/50GK101681268SQ200880016015
公开日2010年3月24日 申请日期2008年6月25日 优先权日2007年6月27日
发明者S·舒尔茨, X·特卡特寿 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1