CN105830020A - 存储器保留重新引导 - Google Patents

存储器保留重新引导 Download PDF

Info

Publication number
CN105830020A
CN105830020A CN201480068857.5A CN201480068857A CN105830020A CN 105830020 A CN105830020 A CN 105830020A CN 201480068857 A CN201480068857 A CN 201480068857A CN 105830020 A CN105830020 A CN 105830020A
Authority
CN
China
Prior art keywords
operating system
application
virtual memory
virtual
virtual machine
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
CN201480068857.5A
Other languages
English (en)
Other versions
CN105830020B (zh
Inventor
M·E·鲁斯诺维奇
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105830020A publication Critical patent/CN105830020A/zh
Application granted granted Critical
Publication of CN105830020B publication Critical patent/CN105830020B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/442Shutdown
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)

Abstract

描述了用于在操作系统重新引导期间将应用状态保留在虚拟存储器中的技术。标识已被应用使用状态填充的所保留的虚拟存储器分配。在操作系统重新引导期间,所述应用被关闭。操作系统被重新引导,而不修改所保留的虚拟存储器分配。例如,当操作系统被重新引导时,与计算机系统上所保留的虚拟存储器分配相关联的物理存储器以及分页文件页不被修改。所述应用在操作系统已经被重新引导之后被重启。所保留的虚拟存储器分配在应用重启后被标识,诸如通过检查存储器区域的内容或通过API返回值。然后,应用被重新连接到所保留的虚拟存储器分配,这允许应用立即访问所保留的状态而不必重建新状态。

Description

存储器保留重新引导
背景
操作系统重新引导通过使得应用停机并且通过销毁它们维护在虚拟存储器中的所导出和高速缓存的状态而使应用中断,从而使它们的性能降级。重新引导操作系统涉及关闭正在运行的操作系统并立即启动它。存在重新引导操作系统的若干原因。例如,硬件维护和升级通常要求操作系统在硬件可被修改之前离线。更频繁地,需要重新引导以应用代码和配置更新,并且操作系统在没有重启的情况下不能采用这些更新。
重新引导操作系统会中断运行在该系统上的应用,这必须关闭客户端连接、将它们的状态提交到存储、并关闭。在重启期间,那些应用必须随后恢复它们的状态,重建存储器高速缓存,并恢复接受客户端连接。这些破坏在虚拟化环境中被放大,因为重新引导不仅影响在主机分区上操作的应用,而且还影响在所托管的虚拟机上运行的应用。
在重新引导期间,在虚拟机上运行的应用将在关闭虚拟机、关闭主机、运行固件通电自检(POST)、启动主机、启动虚拟机以及启动应用所需的时间期间离线。在某些情况下,此停机的持续时间可以三十分钟或更多的量级。如果服务级协定(SLA)要求应用的特定可用性,则由主机操作系统重新引导所引起的停机时间将消耗SLA的停机时间预算的至少一部分。这将在SLA停机时间预算内为在频率和持续时间方面不可预测的非计划的停机留下较少的时间。
为减轻主机导致的重新引导对虚拟机的影响,大多数小规模虚拟化平台实现了实况迁移,这使得虚拟机能从一个服务器无缝地移动到另一个服务器,以便避免主机的根据计划的重新引导。实况迁移的缺点是,它给总体系统管理增加显著的复杂性,对网络资源造成负担,并延长应用更新所需的时间。重新引导一群服务器要求迁移每个虚拟机至少一次。并且除非空服务器与将被迁移的每一个托管虚拟机配对,否则虚拟机的迁移会变为洗牌游戏并且服务器更新会变为串行操作。
虚拟机挂起-更新-恢复(VM-SUR)是针对基于现有虚拟机技术关闭虚拟机的替代方案。利用此办法,主机操作系统挂起虚拟机,将它们的状态(包括RAM和虚拟CPU)保存到盘,将服务器重启到经更新的主机操作系统,并随后恢复虚拟机。这允许虚拟机保留它们的存储器内高速缓存并避免虚拟机关机和重启。VM-SUR的缺点是被托管在服务器上的所有虚拟机的RAM必须读并写到本地存储作为主机操作系统更新的一部分,在该时间期间虚拟机被挂起。使用反映当代云硬件的大致的数量,将100GB的RAM保存并恢复到具有100MB/s的吞吐量的本地存储将要花大约三十分钟。该中断并不比由典型的关闭/重启所导致的中断好,并且在虚拟机保留它们的高速缓存时,停机时间将长到足以导致单实例虚拟机的可见停机。
概述
提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
本发明的各实施例使用操作系统来支持重新引导持久存储器。所述支持包括两个机制,这两者都对降低重新引导的影响有贡献。第一个机制是跳过固件POST,其可以是重新引导时间的显著贡献者,并且在物理环境中可触发硬件故障。第二个机制是使得应用能够在重新引导期间在存储器中保留指定的状态。在本文中这些增强一起被称为存储器保留重新引导(MPR)。这些机制可以显著地降低由重新引导导致的应用停机时间和性能降级,尤其是针对于数据库、科学以及其他存储器密集的应用而言。MPR还提高系统资源利用率并且降低操作的成本。
在示例实施例中,用于保留计算机系统中的虚拟存储器的系统与方法标识所保留的虚拟存储器分配,其中所保留的虚拟存储器分配已被应用使用状态来填充。可由应用使用API来选择重新引导持久虚拟存储器来标识所保留的虚拟存储器分配。所述应用被作为操作系统重新引导的一部分而被关闭。然后,所述操作系统被重新引导,而不修改所保留的虚拟存储器分配。例如,当操作系统被重新引导时,与计算机系统上所保留的虚拟存储器分配相关联的物理存储器以及分页文件页不被修改。所述应用在操作系统已经被重新引导之后被重启。所保留的虚拟存储器分配在应用重启后被标识,诸如通过检查存储器区域的内容或通过API返回值。然后,应用被重新连接到所保留的虚拟存储器分配,这允许应用立即访问所保留的状态而不必重建新状态。
附图简述
为了进一步阐明本发明的各实施例的以上和其他优点和特征,将参考附图来呈现本发明的各实施例的更具体的描述。可以理解,这些附图只描绘本发明的典型实施例,因此将不被认为是对其范围的限制。本发明将通过使用附图用附加特征和细节来描述和解释,附图中:
图1解说重新引导对应用性能的影响,即操作系统重新引导对数据库应用性能的影响。
图2A-C解说在主机重新引导期间分配给虚拟机的物理RAM的保留。
图3解说当一应用利用存储器保留重新引导时重新引导的经降低的影响。
图4A-C解说所保留的虚拟存储器的基本行为。
图5是解说用于更新主机操作系统同时保留在主机服务器上运行的虚拟机的过程或方法的流程图。
图6是解说用于更新主机操作系统同时保留在主机服务器上运行的虚拟机的过程或方法的流程图。
图7解说根据一实施例的用于更新主机操作系统的计算和网络环境的示例。
详细描述
为了最小化操作系统(“OS”)重新引导的影响,两种机制一起被使用以使应用能够在重新引导期间将状态保留在虚拟或物理存储器中。第一个机制是操作系统软重新引导。这个机制在2012年12月4日提交的待审美国专利申请No.14/379,972“VirtualMachinePreservingHostUpdates(保留虚拟机的主机更新)”中被公开。第二个机制包括使各应用能够指定应在重新引导期间被保留不变的存储器部分以及允许所述应用在重新引导后使用所保留的存储器的操作系统服务。
出于各种各样的原因,计算机必须重新引导。一些硬件变化需要重置操作系统在其上运行的物理硬件。更频繁地,操作系统重新引导由于操作系统或应用更新需要从初始状态重启执行以便应用所述更新而发生。这样的更新的典型示例包括更新核操作系统组件(其可增加新功能或修复安全漏洞)以及配置更改。在许多情况下,维持更新组件状态的一致性(特别是当它向相关组件继续提供服务时)所需的复杂度超过支持在线更新的益处。尽管重新引导对于应用以及最终用户是破坏性的,但它们不能被消除。
操作系统重新引导以两种关键方式来使应用中断。首先,重新引导导致应用停机。应用的重新引导停机的历时包括应用关闭、操作系统关闭、固件POST、操作系统重新引导、以及应用重启所需的时间。即使这一停机时间可被最小化或甚至降至零,应用也丢失所有的已生成的、所导出的、以及仅被存储在虚拟存储器中的经高速缓存的状态。这导致应用已经重启后的第二中断。应用在重启后快速重新生成它的状态是有可能的,但许多应用则需要延长的历时以及许多事务才能重建状态。如果应用状态相对于持久存储的速度而言很小,则应用可以通过在重新引导关闭期间将状态串行化到存储来保留它的状态,并随后在重启后将状态解串行化。然而,当应用状态相对于持久存储的速度而言很大时,操作系统允许的用于应用关闭的时间可能不准许将状态串行化到存储。即使给予足够的时间,在串行化以及后续的解串行化期间招致的性能降级可能很显著且实际上导致应用以及其客户端在之后的几十分钟甚至几小时中体验重新引导的负面影响。
图1解说重新引导对应用性能的影响,即操作系统重新引导对数据库应用性能的影响。在该示例中,数据库应用在具有大量的RAM以及相对慢的耐久存储的服务器上运行。在操作达一些时间(101)后,应用已经用它的经高速缓存的数据库状态完全填充了RAM并获得了最佳性能。然后,要求重新引导服务器(或可只要求关闭并重启数据库应用)操作系统更新被部署。在该情形中,数据库应用串行化所高速缓存的状态是没有意义的,因为它可以从源数据库重建该高速缓存状态。因此,应用提交待决事务并迅速关闭(102)以及清除其高速缓存(103)。随后,在所有应用都被关闭之后,关闭操作系统(104)。服务器固件(105)在操作系统重启(106)之前重新引导。一旦操作系统被重启,所述应用就可重启(107)。重新引导需要一些时间,在此期间,客户端不能访问数据库,并且应用在没有经高速缓存的数据的情况下开始。当应用重启并再次运行(108)时,它不知道什么客户端访问将会到来,并且它必须重建数据库高速缓存(109)。在此重建期间,大多数访问将错失高速缓存,并且应用响应将是缓慢的。只有在重启后再次运行数个小时之后,应用才能再次建立高速缓存来达到其重新引导前的性能水平。在一些情形中,应用在重启之后快速重新生成状态是可能的。结果,重新引导中断(110)的实际持续时间长于该应用离线的时间。
当它们不得不重新引导时,数据库以及其他高速缓存应用失去在别处持久存储的状态。执行长期运行的计算以及生成大量中间状态的科学及金融计算应用比其它应用更受影响,因为除了不得不重新读取可能大量的数据之外,这些应用还必须重做从开始或至少从先前的检查点起的昂贵的计算。
降低重新引导对应用的影响需要减少重启停机的历时,但该影响还可通过使应用在重新引导期间能够保留所导出的和所高速缓存的状态来降低。存储器保留重新引导(MPR)可被用于减少重新引导停机以及通过避免POST来延长硬件健康。MPR使用所提出的操作系统服务在重新启动期间保留存储在虚拟存储器中的应用状态。
避免POST
操作系统开发者将继续提高操作系统及应用在关闭和重启期间的性能;但是,避免固件POST将产生立即且持续的改进。固件重新引导(105)可将显著延迟引入到重新引导过程中,特别是对慢速总线枚举而言。附随的硬件重置可推动硬件超过故障阈值。VM-PHU引入了被称为核软重新引导(KSR)的新能力,用于关闭操作系统到加载器存根并随后重启经更新的操作系统代码和配置,从而完全跳过固件POST。VM-PHU是被设计用于基于映像的操作系统部署,因此,该重新引导被执行到新操作系统虚拟硬盘(VHD)中。KSR将用于基于组件的更新,其中该加载器引导回相同的、经更新的操作系统安装。
在重新引导期间保留存储器
虽然KSR可在需要重新引导的操作系统更新期间减少应用停机时间,但它没有解决应用状态的丢失。省略POST使得能够在重新引导期间保留RAM,这在VM-PHU的上下文中激发了KSR的开发。如图2A-C所例示,VM-PHU在主机重新引导期间保留被分配到虚拟机的物理RAM
图2A解说了托管一个或多个虚拟机(VM)202的服务器201。服务器201正在运行现用主机操作系统203,其支持虚拟机202。现用主机操作系统203维护每一个虚拟机的当前状态204。VM-PHU在现用主机操作系统更新期间通过使虚拟机202留待不变并只挂起它们足够长的时间以用于重启经更新的主机操作系统来最小化虚拟机202停机时间。
在图2B中,经更新的主机操作系统映像(经更新的主机操作系统)205已经被存储到存储器206。现用主机操作系统203冻结虚拟机202,但是使它们驻留在服务器201上的RAM中。现用主机操作系统203将虚拟机202的分配和VM状态204作为VM状态207记录到RAM中和/或本地存储206中。作为操作系统更新的一部分,现用主机操作系统203关闭并且将执行转移给加载器208。
在图2C中,将经更新的主机操作系统205的核读入RAM的加载器208删除现用主机操作系统203。另外,加载器208将包括虚拟机202的分配图连同用于恢复虚拟机202的指令的调用从现用主机操作系统203传递到经更新的主机操作系统205。加载器208将执行转移到经更新的主机操作系统205入口点。在经更新的主机操作系统205初始化之后,它加载虚拟机202的VM状态207并恢复它们。VM-PHU技术避免服务器201上由硬件重置所引起的负担,并由此延长服务器201的寿命。
当采用VM-PHU技术时由托管的虚拟机202经历的停机的持续时间受限于关闭现用主机操作系统203并随后加载并启动经更新的主机操作系统205所花的时间。VM-PHU技术跳过固件POST,并避免虚拟机202关机和重启。在虚拟机202中运行的应用不会丢失它们的状态或高速缓存。如果经更新的主机操作系统205被加载得足够快,则中断可以足够短,以至于在虚拟机202上运行的应用以及它们的相应的客户端不会觉察到停机。相反,虚拟机应用的客户端可能感觉到显现为所有网络客户端已被设计成能处理的长网络故障。如果虚拟机停机足够短(诸如小于三十秒),则标准负载平衡器探测超时将不会触发,由此保持虚拟机202一旦恢复就轮流工作。
使用这相同的RAM保留能力,操作系统存储器管理者可展示将要分配在重新引导过程中被保留的虚拟存储器的API。应用然后可通过充分利用对重新生成或持久存储而言昂贵的状态的保留支持,来选择性地管理它们的状态。跳过POST与存储器保留的组合定义了存储器保留重新引导(MPR)。
图3解说在应用利用MPR时重新引导对与图1中描述的相同的数据库应用的降低的影响。如图3所例示,使用允许应用较快地重启的VM-PHU技术来消除固件重新引导延迟。并且,通过保留允许应用性能(302)迅速地返回到重新引导之前的水平(103)的高速缓存存储器来最小化重新引导中断(301)。
注意,MPR为使用它的应用引入复杂性。应用必须确保它们保留的状态限定了闭包。如果所保留的状态具有对未被保留的状态的任何引用(例如,通过嵌入指向被分配在未被保留的存储器中的数据结构的指针),则只有部分状态将被保留并且该应用可能在重新引导之后失败。选择使用MPR的应用将承担维护并测试它们的保留数据的闭包的附加成本。
物理和虚拟存储器保留
至少有两种实现存储器保留的方式。在使用来自微软公司的操作系统的一种办法中,进程可使用被称为地址窗口扩展(AWE)的API来分配RAM。这些API可被增强以提供重新引导-保留的模式。然而,依赖于这个API来用于重新引导-保留功能有若干缺点。一种考虑是AWEAPI从操作系统的管理处移除存储器,从而防止操作系统使用其全局视图来最佳决定什么数据应该被存储在RAM而非被分页至盘。另一个考虑是,AWEAPI需要默认未被授予用户账户的账户特权,因此需要非标准账户配置。这样的原因是,为特定应用指定固定物理资源可不仅使其他应用的性能降级,而且还使操作系统本身的性能降级。此外,应用比较容易使用虚拟存储器的抽象,而不是直接使用物理存储器。
第二个办法更加灵活,但是更加复杂,并且涉及向应用提供用于重新引导-持久虚拟存储器的API。虚拟存储器保留API会采取唯一的应用标识符(例如当一过程向它注册时由操作系统分配的一个应用标识符)以及应用为该应用希望保留的每个虚拟存储器区域选择的标识符。这些分配请求会返回就像标准分配API一样的虚拟存储器指针。应用会以与它们用于标准虚拟存储器相同的方式并使用相同的API与存储器交互。
在重新引导时,除通过API返回值或通过检查存储器区域的内容来检测来自先前重新引导的所保留的区域之外,应用将不需要实现特殊逻辑。例如,经初始化的虚拟存储器是零填充的,所以区域开始处的一个字节的值是一区域被保留的足够标志。当一区域包含经保留内容,应用可以立即访问存储在其内的状态。
图4A-C解说所保留虚拟存储器的基本行为。在图4A中,RAM401和分页文件402已经被应用403、操作系统404、以及加载器405填充。应用403已经做了保留虚拟存储器分配406并已将其用状态填充。在图4B中,应用(403)和操作系统(404)已关闭到加载器存根405,留下与虚拟存储器406相关联的物理存储器401和分页文件页402不受干扰。在图4C中,应用403'已重启并且通过经更新的操作系统404'与所保留的存储器406和它的内容重新连接。
图5是解说根据一个实施例的用于在计算机系统中保留虚拟存储器的方法的流程图。在步骤501,标识所保留的虚拟存储器分配。所保留的虚拟存储器分配已被应用用状态来填充。可由应用使用API来选择重新引导-持久虚拟存储器来标识所保留的虚拟存储器分配。在步骤502,关闭应用。
在步骤503,计算机系统上的操作系统被重新引导,而不修改所保留的虚拟存储器分配。例如,当操作系统被重新引导时,与计算机系统上所保留的虚拟存储器分配相关联的物理存储器可不被修改。另外,当操作系统被重新引导时,与计算机系统上所保留的虚拟存储器分配相关联的分页文件页可不被修改。
在步骤504,应用随后在操作系统已重新引导之后重启。在步骤505,所保留的虚拟存储器分配在应用重启后被标识。所保留的虚拟存储器分配可通过检查存储器区域的内容或通过API返回值来被标识。在步骤506,应用被重新连接到所保留的虚拟存储器分配,这允许应用立即访问所保留的状态而不必重建新状态。
图6是解说用于更新主机操作系统同时保留在主机服务器上运行的虚拟机的过程或方法的流程图。在步骤601中,将经更新的主机操作系统复制到服务器上的RAM或本地存储。在步骤602中,现用主机操作系统冻结当前在服务器上运行的虚拟机。在步骤603中,现用主机操作系统将虚拟机的分配和状态记录到RAM或本地存储。在步骤604中,现用主机操作系统随后关闭自己并将执行转移到加载器应用。
在步骤605中,加载器将经更新的主机操作系统的核读入RAM。在步骤606中,来自现用主机操作系统的调用将虚拟机的分配图连同用以恢复虚拟机的指令一起传递到经更新的主机操作系统。在步骤607中,执行被从加载器转移到经更新的主机操作系统入口点。
在步骤608中,初始化经更新的主机操作系统。最后,在步骤609中,经更新的主机操作系统加载虚拟机的状态并恢复虚拟机。
图7解说了其上可实现图1-6的示例的适当的计算和联网环境700的示例。计算系统环境700只是合适的计算环境的一个示例,而非意在暗示对本发明的使用或功能性范围有任何限制。本发明可用众多其他通用或专用计算系统环境或配置来操作。适用于本发明的公知计算系统、环境、和/或配置的示例包括但不限于:个人计算机、服务器计算机、多处理器系统、基于微处理器的系统、网络PC、微型计算机、大型计算机、包括任何以上系统或设备的分布式计算环境,等等。
本发明可在诸如程序模块等由计算机执行的计算机可执行指令的通用上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本发明也可被实践在分布式计算环境中,分布式计算环境中任务是由通过通信网络链接的远程处理设备执行的。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和/或远程计算机存储介质中。
参考图7,用于实现本发明的各个方面的示例性系统可以包括计算机700形式的通用计算设备。组件可包括但不限于诸如处理单元701之类的各种硬件组件、诸如系统存储器之类的数据存储702、以及将包括数据存储702在内的各种系统组件耦合到处理单元701的系统总线703。系统总线703可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线架构中的任一种的局部总线。作为示例而非限制,这样的架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也称为夹层(Mezzanine)总线)。
计算机700通常包括各种计算机可读介质704。计算机可读介质704可以是能由计算机700访问的任何可用介质,并同时包含易失性和非易失性介质以及可移动、不可移动介质,但不包括传播信号。作为示例而非限制,计算机可读介质704可包括计算机存储介质和通信介质。计算机存储介质包括以存储诸如计算机可读的指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不仅限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备,或可以用来存储所需信息并可以被计算机700访问的任何其他介质。通信介质通常以诸如载波或其他传输机制之类的已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上面各项中的任何项的组合也包括在计算机可读介质的范围内。计算机可读介质可被实现为计算机程序产品,诸如存储在计算机存储介质上的软件。
数据存储或系统存储器702包括诸如只读存储器(ROM)和/或随机存取存储器(RAM)之类的易失性和/或非易失性存储器形式的计算机存储介质。基本输入/输出系统(BIOS)包含有助于诸如启动时在计算机700中元件之间传递信息的基本例程,它通常被存储在ROM中。RAM通常包含处理单元701可立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制性,数据存储702保存操作系统、应用程序、其他程序模块、和程序数据。
数据存储702还可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,数据存储702可以是对不可移动、非易失性磁介质进行读写的硬盘驱动器,对可移动、非易失性磁盘进行读写的磁盘驱动器,以及对诸如CDROM或其它光学介质等可移动、非易失性光盘进行读写的光盘驱动器。可在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。上文所描述的并且在图6中所显示的驱动器以及它们的关联的计算机存储介质,为计算机700提供对计算机可读取的指令、数据结构、程序模块及其他数据的存储。
用户可以通过用户接口705或输入设备输入命令和信息。用户输入接口705可被耦合到系统总线703,但是可以通过其他接口和总线结构来连接。监视器706或其他类型的显示设备也可以经由诸如视频接口之类的接口连接至系统总线703。
计算机700可使用至一个或多个远程设备(诸如远程计算机)的逻辑连接707在网络化或云计算环境中操作。远程计算机可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并且一般包括上面关于计算机700所述的许多或全部元件。图6中所描述的逻辑连接包括一个或多个局域网(LAN)和一个或多个广域网(WAN),但是,也可以包括其他网络。此类联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。
当在联网或云计算环境中使用时,计算机700可通过网络接口或适配器707连接至公共或私有网络。在一些实施例中,使用调制解调器或用于在网络上建立通信的其它装置。调制解调器可以是内置或外置的,它经由网络接口707或其它适当的机制连接至系统总线703。诸如包括接口和天线的无线联网组件可通过诸如接入点或对等计算机之类的合适的设备耦合到网络。在联网环境中,相关于计算机700所示的程序模块或其部分可被存储在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其他手段。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (15)

1.一种保留计算系统中的虚拟存储器的方法,包括:
标识被应用用状态填充的所保留的虚拟存储器分配;
关闭所述应用;
在所述计算机系统中重新引导操作系统,而不修改所保留的虚拟存储器分配;
在所述操作系统已经被重新引导之后重启所述应用;以及
将所述应用重新连接至所保留的虚拟存储器分配。
2.如权利要求1所述的方法,其特征在于,重新引导所述操作系统进一步包括:
接收经更新的主机操作系统的副本;
挂起运行在所述计算机系统上的所有虚拟机;
记录所述虚拟机中的每一个虚拟机的分配图和状态;
将执行从现用主机操作系统转移到加载器;
关闭所述现用主机操作系统;
经由所述加载器将经更新的主机操作系统的核读入RAM;
加载所述虚拟机中的每一个虚拟机的所述分配图和状态;以及
通过所述经更新的主机操作系统来恢复所述虚拟机的操作。
3.如权利要求1所述的方法,其特征在于,进一步包括:
当所述虚拟机被挂起时,使所述虚拟机驻留在RAM中。
4.如权利要求1所述的方法,其特征在于,当所述操作系统被重新引导时,与所述计算机系统上所保留的虚拟存储器分配相关联的物理存储器不被修改。
5.如权利要求1所述的方法,其特征在于,当所述操作系统被重新引导时,与所述计算机系统上所保留的虚拟存储器分配相关联的一个或多个分页文件页不被修改。
6.如权利要求1所述的方法,其特征在于,由所述应用使用API来选择重新引导-持久虚拟存储器来标识所保留的虚拟存储器分配。
7.如权利要求1所述的方法,其特征在于,进一步包括:
在所述应用被重启之后,标识所保留的虚拟存储器分配。
8.如权利要求6所述的方法,其特征在于,通过检查存储器区域的内容来标识所保留的虚拟存储器分配。
9.如权利要求6所述的方法,其特征在于,通过API返回值来标识所保留的虚拟存储器分配。
10.一种计算机系统,包括:
处理器;
系统存储器;
其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述指令在由所述处理器执行时使得所述处理器在主机操作系统更新期间保留虚拟存储器,所述处理器用于:
标识被应用用状态填充的所保护的虚拟存储器分配;
关闭所述应用;
在所述计算机系统中重新引导操作系统,而不修改所保护的虚拟存储器分配的内容;
在所述操作系统已经被重新引导之后重启所述应用;以及
将所述应用重新连接至所保护的虚拟存储器分配。
11.如权利要求10所述的计算机系统,其特征在于,所述处理器进一步用于:
接收经更新的主机操作系统的副本;
挂起运行在所述计算机系统上的所有虚拟机;
记录所述虚拟机中的每一个虚拟机的分配图和状态;
将执行从现用主机操作系统转移到加载器;
关闭所述现用主机操作系统;
经由所述加载器将经更新的主机操作系统的核读入RAM;
加载所述虚拟机中的每一个虚拟机的所述分配图和状态;以及
通过所述经更新的主机操作系统来恢复所述虚拟机的操作。
12.如权利要求10所述的计算机系统,其特征在于,当所述操作系统被重新引导时,与所述计算机系统上所保护的虚拟存储器分配相关联的物理存储器不被修改。
13.如权利要求10所述的计算机系统,其特征在于,当所述操作系统被重新引导时,与所述计算机系统上所保护的虚拟存储器分配相关联的一个或多个分页文件页不被修改。
14.如权利要求10所述的计算机系统,其特征在于,由所述应用使用API来选择重新引导-持久虚拟存储器来标识所保护的虚拟存储器分配。
15.如权利要求10所述的计算机系统,其特征在于,所述处理器进一步用于:
在所述应用重启之后,通过检查存储器区域的内容来标识所保留的虚拟存储器分配。
CN201480068857.5A 2013-12-20 2014-12-18 存储器保留重新引导 Active CN105830020B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/136,890 2013-12-20
US14/136,890 US9875115B2 (en) 2013-12-20 2013-12-20 Memory-preserving reboot
PCT/US2014/071002 WO2015095427A1 (en) 2013-12-20 2014-12-18 Memory-preserving reboot

Publications (2)

Publication Number Publication Date
CN105830020A true CN105830020A (zh) 2016-08-03
CN105830020B CN105830020B (zh) 2019-03-19

Family

ID=52345555

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480068857.5A Active CN105830020B (zh) 2013-12-20 2014-12-18 存储器保留重新引导

Country Status (5)

Country Link
US (1) US9875115B2 (zh)
EP (1) EP3084595B1 (zh)
CN (1) CN105830020B (zh)
BR (1) BR112016013559B1 (zh)
WO (1) WO2015095427A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110088731A (zh) * 2016-12-14 2019-08-02 微软技术许可有限责任公司 使用非易失性ram的内核软重置
CN112673345A (zh) * 2018-09-14 2021-04-16 微软技术许可有限责任公司 在保持设备被附接到虚拟机的同时更新虚拟机

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
WO2015132941A1 (ja) * 2014-03-07 2015-09-11 株式会社日立製作所 計算機
US9478274B1 (en) 2014-05-28 2016-10-25 Emc Corporation Methods and apparatus for multiple memory maps and multiple page caches in tiered memory
US9535844B1 (en) 2014-06-30 2017-01-03 EMC IP Holding Company LLC Prioritization for cache systems
US10235054B1 (en) 2014-12-09 2019-03-19 EMC IP Holding Company LLC System and method utilizing a cache free list and first and second page caches managed as a single cache in an exclusive manner
US10176028B2 (en) * 2015-09-25 2019-01-08 International Business Machines Corporation Upgrading a kernel or kernel module with a configured persistent memory unused by the kernel
US10192055B2 (en) * 2016-01-10 2019-01-29 Apple Inc. Log in/log out process for EDU mode
US10133868B2 (en) 2016-01-10 2018-11-20 Apple Inc. Switching users and sync bubble for EDU mode
US10754792B2 (en) * 2016-01-29 2020-08-25 Hewlett Packard Enterprise Development Lp Persistent virtual address spaces
US9779248B1 (en) 2016-03-30 2017-10-03 Microsoft Technology Licensing, Llc Protection of secured boot secrets for operating system reboot
US10318162B2 (en) * 2016-09-28 2019-06-11 Amazon Technologies, Inc. Peripheral device providing virtualized non-volatile storage
US10552194B2 (en) 2017-10-23 2020-02-04 Microsoft Technology Licensing, Llc Virtualization operations for directly assigned devices
US10725908B2 (en) 2018-08-10 2020-07-28 Microsoft Technology Licensing, Llc. Fast initialization of complex in-memory data structures
DE112018007748T5 (de) * 2018-12-18 2021-04-08 Intel Corporation Berechnungsverfahren und Vorrichtung mit Mehrphasen/stufen-Start
CN109684133A (zh) * 2018-12-20 2019-04-26 林琳 一种计算机死机状态自动重启方法
CN109976906A (zh) * 2019-03-08 2019-07-05 上海博达数据通信有限公司 一种linux系统的内存分配管理方法
US11150890B2 (en) * 2019-09-12 2021-10-19 International Business Machines Corporation File system synchronization-based updating
US11237837B2 (en) * 2020-01-27 2022-02-01 Dell Products L.P. System and method for managing devices during reboot
US11314521B2 (en) 2020-01-27 2022-04-26 Dell Products L.P. System and method for managing component updates
US20220100532A1 (en) * 2020-09-25 2022-03-31 Intel Corporation Technology for transferring iommu ownership to a new version of system software
WO2022061859A1 (en) * 2020-09-28 2022-03-31 Intel Corporation Application restore based on volatile memory storage across system resets
US20220129292A1 (en) * 2020-10-28 2022-04-28 Red Hat, Inc. Fast virtual machine resume at host upgrade
US11467850B2 (en) 2020-11-11 2022-10-11 Micron Technology, Inc. Computing device reboot
US20230305854A1 (en) * 2022-03-25 2023-09-28 Sap Se Reducing downtime during operating system patching
CN116107668B (zh) * 2023-04-13 2023-08-15 紫光同芯微电子有限公司 一种应用程序运行方法及其系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901298B1 (en) * 2002-09-30 2005-05-31 Rockwell Automation Technologies, Inc. Saving and restoring controller state and context in an open operating system
US20080005529A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space
US20080120480A1 (en) * 2006-11-22 2008-05-22 International Business Machines Corporation Method and System For Preserving Critical Storage Contents Across A System Restart
US20100251235A1 (en) * 2009-03-30 2010-09-30 Microsoft Corporation Timer access from user mode through a shared memory page
CN102077188A (zh) * 2008-06-26 2011-05-25 微软公司 用于虚拟化操作系统的直接存储器访问过滤器

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4731740A (en) * 1984-06-30 1988-03-15 Kabushiki Kaisha Toshiba Translation lookaside buffer control system in computer or virtual memory control scheme
US5778411A (en) * 1995-05-16 1998-07-07 Symbios, Inc. Method for virtual to physical mapping in a mapped compressed virtual storage subsystem
US6854054B1 (en) 2001-12-06 2005-02-08 Ciena Corporation System and method of memory management for providing data storage across a reboot
US7130997B2 (en) 2003-05-29 2006-10-31 International Business Machines Corporation Method of registering a portion of RAM with firmware to preserve the portion during reboot
US7533254B2 (en) 2004-10-29 2009-05-12 Finisar Corporation Volatile memory persistence during warm reboot in an optical transceiver
US7506203B2 (en) 2005-11-10 2009-03-17 International Business Machines Corporation Extracting log and trace buffers in the event of system crashes
US20090282396A1 (en) 2008-05-07 2009-11-12 Boyer John M Preserving a state of an application during update
US7900090B2 (en) 2009-02-13 2011-03-01 Oracle America, Inc. Systems and methods for memory retention across resets
US8266419B2 (en) * 2009-11-25 2012-09-11 Sprint Communications Company L.P. Fast restart on a virtual machine
US9104619B2 (en) 2010-07-23 2015-08-11 Brocade Communications Systems, Inc. Persisting data across warm boots
US8495351B2 (en) 2010-10-13 2013-07-23 International Business Machines Corporation Preparing and preserving a system configuration during a hot upgrade
US9110762B2 (en) * 2012-12-04 2015-08-18 Microsoft Technology Licensing, Llc Virtual machine-preserving host updates

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6901298B1 (en) * 2002-09-30 2005-05-31 Rockwell Automation Technologies, Inc. Saving and restoring controller state and context in an open operating system
US20080005529A1 (en) * 2006-06-30 2008-01-03 Morris Robert P Methods, Systems, and Computer Program Products for Providing Access to Addressable Entities Using a Non-Sequential Virtual Address Space
US20080120480A1 (en) * 2006-11-22 2008-05-22 International Business Machines Corporation Method and System For Preserving Critical Storage Contents Across A System Restart
CN102077188A (zh) * 2008-06-26 2011-05-25 微软公司 用于虚拟化操作系统的直接存储器访问过滤器
US20100251235A1 (en) * 2009-03-30 2010-09-30 Microsoft Corporation Timer access from user mode through a shared memory page

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110088731A (zh) * 2016-12-14 2019-08-02 微软技术许可有限责任公司 使用非易失性ram的内核软重置
US11243782B2 (en) 2016-12-14 2022-02-08 Microsoft Technology Licensing, Llc Kernel soft reset using non-volatile RAM
CN112673345A (zh) * 2018-09-14 2021-04-16 微软技术许可有限责任公司 在保持设备被附接到虚拟机的同时更新虚拟机

Also Published As

Publication number Publication date
BR112016013559A2 (zh) 2017-08-08
BR112016013559A8 (pt) 2020-05-19
CN105830020B (zh) 2019-03-19
US20150178097A1 (en) 2015-06-25
BR112016013559B1 (pt) 2022-02-22
EP3084595A1 (en) 2016-10-26
EP3084595B1 (en) 2019-08-07
WO2015095427A1 (en) 2015-06-25
US9875115B2 (en) 2018-01-23

Similar Documents

Publication Publication Date Title
CN105830020A (zh) 存储器保留重新引导
US10664186B2 (en) Systems and methods for performing live migrations of software containers
CN104823160A (zh) 虚拟机-保留主机更新
CN103098043B (zh) 随需虚拟机映像流式传输的方法和系统
US7036040B2 (en) Reliability of diskless network-bootable computers using non-volatile memory cache
CN107870968B (zh) 对文件系统卷执行实时更新
CN102612686B (zh) 作为团块管理虚拟硬盘驱动器
CN102473089B (zh) 用于双操作系统的文件系统
TWI471726B (zh) 快取資料與元資料之管理
US8219851B2 (en) System RAS protection for UMA style memory
US8806265B2 (en) LPAR creation and repair for automated error recovery
US20120272236A1 (en) Mechanism for host machine level template caching in virtualization environments
US11861390B1 (en) Transparent disk caching for virtual machines
US10929288B1 (en) Protecting against data loss during garbage collection
US20200150950A1 (en) Upgrade managers for differential upgrade of distributed computing systems
US10895997B2 (en) Durable client-side caching for distributed storage
US11226875B2 (en) System halt event recovery
JP7483054B2 (ja) 致命的なメモリエラー時におけるターゲットホストへの仮想マシンのライブマイグレート
CN113641298A (zh) 数据存储方法、设备和计算机程序产品
US20240012668A1 (en) Integrated hardware compatability and health checks for a virtual storage area network (vsan) during vsan cluster bootstrapping
US11435996B2 (en) Managing lifecycle of solutions in virtualization software installed in a cluster of hosts

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant