CN103250134A - 基于流技术的软件映像更新 - Google Patents

基于流技术的软件映像更新 Download PDF

Info

Publication number
CN103250134A
CN103250134A CN2011800592189A CN201180059218A CN103250134A CN 103250134 A CN103250134 A CN 103250134A CN 2011800592189 A CN2011800592189 A CN 2011800592189A CN 201180059218 A CN201180059218 A CN 201180059218A CN 103250134 A CN103250134 A CN 103250134A
Authority
CN
China
Prior art keywords
storage block
storage
target software
reflection
release portion
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
CN2011800592189A
Other languages
English (en)
Other versions
CN103250134B (zh
Inventor
C·马里内利
M·弗伊勒乌米尔·斯图克尔伯格
J·方迪格尼耶
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 CN103250134A publication Critical patent/CN103250134A/zh
Application granted granted Critical
Publication of CN103250134B publication Critical patent/CN103250134B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种解决方案,用于使数据处理实体(100)从安装于数据处理实体的大容量存储器(130)上的源软件映像(205s)迁移至存储于外部源(225)上的目标软件映像,每个软件映像包括每一个在软件映像内都具有对应的映像地址的多个存储块,并且大容量存储器包括每一个都用于保存存储块的多个存储位置,该存储位置在大容量存储器内具有对应的存储地址。对应的方法(300)包括以下步骤:释放(306)大容量存储器的一部分,将存储于目标软件映像的引导位置内的存储块重定位(310)到所释放部分,引导位置是具有等于目标软件映像的引导块的映像地址的存储地址的存储位置,该目标软件映像包括引导数据处理实体来加载适于从外部源下载目标软件映像的流功能(215)所需的存储块,将引导块存储(314)于对应的引导位置内,从对应的引导位置内的引导块中引导(316)数据处理实体,由此引导流功能,并且服务(330-350)通过流功能来读取目标软件映像的选定存储块的每个请求,流功能从外部源中下载(336)选定的存储块,并且当在大容量存储器内不可获得选定的存储块时,将选定的存储块存储(338-346)于所释放部分内,否则从大容量存储器中检索(348)选定的存储块。

Description

基于流技术的软件映像更新
技术领域
根据本发明的一种或多个实施例的解决方案涉及数据处理领域。更特别地,该解决方案涉及软件映像(software image)的迁移。
背景技术
软件映像的迁移是现代数据处理系统中很平常的活动;一般而言,软件映像是包括安装于计算机的大容量存储器上的软件模块(例如,其操作系统、应用程序和/或数据)的结构。例如,典型的情景是计算机的刷新,以将其操作系统更新到它的新版本。
旨在将当前安装于计算机上的操作系统(称为源操作系统)移动到另一操作系统(称为目标操作系统)的标准迁移过程一般地涉及下列步骤。首先,获取计算机的快照,并且将其存储于外部设备(例如,移动硬盘或远程服务器)上。然后,运行迁移工具以收集计算机的配置信息(该计算机的配置信息同样存储于外部设备上)。在这点上,可以将目标操作系统安装于计算机上。然后,迁移工具再次运行以将所存储的配置信息应用于目标操作系统。在目标操作系统遇到了任何问题(例如,计算机的不正确操作)的情况下,源操作系统的快照就被恢复到计算机上以便返回其初始状态。
但是,上述迁移过程存在几个缺点。
特别地,迁移过程很缓慢。实际上,目标操作系统的安装耗费的时间长(量级为30-60分钟);在这段时间内,计算机是完全不可用的。而且,原操作系统的恢复(在必要时)耗费的时间同样是长的(在这段时间内计算机也是不可用的)。还要花费更多的时间来获取源操作系统的快照,该操作应当总是在安装目标操作系统之前进行的(以便允许在有问题的情况下恢复源操作系统)。
迁移过程还需要大量存储空间(在外部设备上)来存储源操作系统的快照,此外还需要更多的存储空间来存储配置信息。
另外,一旦目标操作系统已经安装于计算机上,就丢失尚未以迁移工具收集的任何配置信息(例如,因为它已被遗漏)。因此,该配置信息无法再恢复。实际上,访问它的唯一可能是恢复源操作系统的快照;但是,该操作是如此耗时以致于在实践中几乎不会执行它。相反地,当这发生时,常见的做法是设法手工施加丢失的配置信息;但是,该操作很容易出错和/或疏漏。
作为代替,US-B-6,920,555描述了就地(in-place)迁移过程。为了这个目的,估计需要保存配置信息的存储空间;在计算机的硬盘内创建空闲存储空间,以致于足以存储配置信息。然后,将目标软件映像安装于计算机上(例如,通过使用可引导光盘或网络引导映像)。在这点上,可以将配置信息从空闲存储空间恢复到目标软件映像。
这允许避免对在例如网络服务器上存储配置信息的需要;以此方式,迁移过程可以在多个计算机上并行进行。而且,配置信息的迁移也可以在没有任何网络连接的情况下执行。但是,该文献所描述的方法存在以上所指出的所有其他缺点。
发明内容
一般地说,根据本发明的一种或多个实施例的解决方案基于在迁移过程中维持大容量存储器的初始内容的思路。
特别地,根据本发明的具体实施例的解决方案的一个或多个方面在独立权利要求中阐明,在从属权利要求中阐明同一解决方案的有利特征,这些权利要求的用词以引用方式逐字并入本文(具有参照根据本发明的一个实施例的解决方案的一个具体方案来提供的任何有利特征,该具体方面加以必要变更可应用于该解决方案的所有其他方面)。
更具体地,根据本发明的一个实施例的解决方案的一个方面提供了一种用于将数据处理实体(例如,计算机)从安装于该数据处理实体的大容量存储器上的原软件映像迁移到存储于外部源(例如,远程映像储存库)上的目标软件映像的方法。每个软件映像包括多个存储块;每个存储块在软件映像内都具有对应的映像地址。大容量存储器包括多个存储位置,每个存储位置用于保存存储块;存储位置在大容量存储器内具有对应的存储地址。该方法包括下列步骤。释放大容量存储器的一部分(例如,通过收缩(shrink)源软件映像)。存储于目标软件映像的引导位置内的存储块被重定位于所释放部分上;引导位置是具有与目标软件映像的引导块的映像地址相等的存储地址的存储位置内,该引导块包括将数据处理实体引导到加载流功能(streaming function)(适合于从外部源中下载目标软件映像)的存储块。引导块存储于对应的引导位置。数据处理实体从对应引导位置内的引导块引导(由此加载流功能)。对读取目标软件映像的选定存储块的每个请求都通过流功能来服务:当选定的存储块不能在大容量存储器中获得时,流功能从外部源中下载选定的存储块,并且将所选存储块存储于所释放部分内,或者(否者的话)流功能从大容量存储器中检索所选定的存储块。
根据本发明的一个实施例的解决方案的另一方面提供了包括用于在计算机程序执行于数据处理系统上时促使数据处理系统执行本方法的步骤的代码装置的计算机程序;根据本发明的一种能够实施例的又一方面提供了包括体现计算机程序的非暂时性计算机可读介质的计算机程序产品,计算机程序包括可直接加载到数据处理系统的工作存储器内由此配置数据处理系统使其执行该同一方法的代码装置。
根据本发明的一个实施例的解决方案的另一方面提供了包括用于执行所述方法的步骤的装置的系统。
附图说明
参考下面纯粹以非限制性的指示的方式给出的应结合附图来阅读的具体实施方式,根据本发明的一种或多个实施例的解决方案,以及它的更多特征和优点将会得到最佳的理解(在附图中,为了简单起见,对应的元件以相同的或类似的参照符号来表示,并且不重复关于它们的解释,以及每个实体的名称一般被用来指示其类型和属性两者,例如,它的值、内容和表示)。具体地:
图1示出了其中可应用根据本发明的一个实施例的解决方案的计算机的示意性框图;
图2A至图2G示出了表示根据本发明的一个实施例的解决方案的一个示例性应用的总体概览的协作图,
图3A-图3C示出了描述与根据本发明的一个实施例的迁移过程相关的活动流程的活动图,以及
图4示出了表示可以用来实现根据本发明的一个实施例的制备过程的主要软件构件的协作图。
具体实施方式
特别地参照图1,图中示出了根据本发明的一个实施例的解决方案可应用于其中的计算机100的示例性框图。计算机100(例如,PC)由与系统总线105并行连接的若干单元形成。详细地,一个或多个微处理器(μP)110控制着计算机100的操作;RAM115由微处理器110用作工作存储器,以及ROM120存储计算机100的基本代码。若干外围单元聚集于局部总线125周围(借助于各自的接口)。特别地,大容量存储器包括一个或多个硬盘130以及用于读取光盘140(例如,DVD或CD)的驱动器135。而且,计算机100包括输入单元145(例如,键盘和鼠标),以及输出单元150(例如,监视器和打印机)。适配器155被用来将计算机100连接至网络(图中未示出)。桥接器单元160使系统总线105与局部总线120接口连接(interface)。每个微处理器110和桥接器单元160能够作为为了传输信息请求对系统总线105的访问的主代理来操作。仲裁器165管理对系统总线105的互斥访问的授权。
根据本发明的一个实施例的解决方案被用来迁移安装于计算机100上的软件映像(例如,将其操作系统更新为它的新版本)。一般地,每个软件映像包括一个或多个软件模块(例如,操作系统、应用程序和/或数据);软件映像由一组存储块(例如,每个存储块为1-10MB)形成,该组存储块在软件映像内具有对应的地址(称为映像地址)。
更具体地,在图2A-图2G中示出了代表根据本发明的一个实施例的解决方案的一种示例性应用的总体概览的协作图。协作图示出了所涉及的主要软件构件的作用,并且特别地示出了它们的静态结构(以标记符号200标示为一个整体)和动态行为(通过一系列交换消息,每个交换消息代表对应的动作,以符号“A”开头的渐进序列编号标示)。
从图2A开始,源软件映像205s被安装于硬盘130上;源软件映像205s包括硬盘130的一个或多个逻辑分区,图中未示出(例如,主引导分区和可能的附加分区)。硬盘130被组织成在硬盘130内具有对应地址(称为,存储地址)的一组存储位置,每个存储位置用于保存存储块。源软件映像205s包括至少部分加载到工作存储器115内的源操作系统210s和部署代理215(在下面描述)。
计算机100的用户220向部署代理215提交使计算机100迁移至可在外部源(例如,远程映像储存库)上获得的目标软件映像225(动作“A1:迁移(Migrate)”)的请求。响应于此,部署代理215通过例如利用源操作系统210s的内置功能来收缩源软件映像205s(动作“A2:收缩(Shrink)”)。
结果,如图2B所示,硬盘130的一部分230被释放。在这点上,部署代理215下载目标软件映像225的一组引导块(通过称为引导地址的对应的映像地址来标识);目标软件映像225的引导块包括需要用以开始目标软件映像225的引导顺序以加载部署代理的流驱动器的存储块(将在下面描述)(动作“A3:下载(Download)”)。部署代理215然后将存储于目标软件映像225的引导位置(具有它们的等于目标软件映像225的引导地址的存储地址)内的源软件映像205s的存储块重定位到释放部分230的对应存储位置——称为重定位的存储位置235s(动作“A4:重定位(Relocate)”)。部署代理215现在能够将目标软件映像225的引导块存储于它们的引导位置中——在这些引导位置中它们以深灰色来区分并且以符号240t标示。以此方式,引导块240t被布置于硬盘130内,正好于它们在目标软件映像225的引导顺序期间被预期被发现的地方;然而,这不会导致源软件映像205s中的信息的任何损失,因为被覆盖的对应存储块被保存于重定位的存储位置235s内(动作“A5:存储(Store)”)。在这点上,部署代理215关闭,然后开启计算机100,以便从其引导位置内的目标软件映像225的引导块240t重新引导它(动作“A6:重新引导(Re-boot)”)。
因此,如图2C所示,目标软件映像225的目标操作系统210t的对应于其引导块240t的部分及部署代理215的流驱动器被加载到工作存储器115内。部署代理215然后将源软件映像205s的用户配置传输到正安装于计算机100上的目标软件映像225;例如,源软件映像205s的配置信息被从(安装于目标操作系统210t内的)硬盘130中收集,并且然后被应用于目标软件映像225的本地版本——即,在被写入释放部分230中的对应存储块内(动作“A7:传输(Transfer)”)。计算机100现在能够以由流驱动器以流方式提供的目标软件映像225的每个存储块来正常地使用(运行目标软件映像225的本地版本);为了该目的,如同下面将详细描述的,流驱动器在其可从硬盘130中获得时通过在硬盘130中检索存储块来读取存储块,否则通过从外部源下载存储块来读取它(同时将其存储于释放部分230内),并且无论何种情况都通过将其存储于释放部分230内来写入存储块。然后,用户220能够广泛地测试利用目标软件映像225的本地版本的计算机100,以便验证它是否操作正确(动作“A8:流(Stream)”)。
现在参照图2D,当用户220确信(satisfy)利用目标软件映像225的本地版本的计算机100的操作时,她/他通过将对应的请求提交到部署代理215来提交迁移(动作“A9:提交(Commit)”)。响应于此,部署代理215将目标软件映像225的本地版本的全部存储块(在可从释放部分230获得时则从释放部分230复制,否则从外部源复制)复制到它们在硬盘130中的实际存储位置(具有等于对应的映像地址的存储地址)(动作“A10:复制(Copy)”)。
因此,如图2E所示,目标软件映像的本地版本(以符号205t标示)现在已通过覆盖源软件映像的方式完全安装于硬盘130上。计算机100现在能够自目标软件映像205t重新引导,以便正常地操作(动作“A11:重新引导(Re-boot)”)。
相反地,如图2F所示,如果用户不确信具有目标软件映像225的本地版本的计算机100的操作,她/他可以通过将对应的请求提交到部署代理215而回滚至源软件映像205s(动作“A12:回滚(Roll-back)”)。响应于此,部署代理215使源软件映像205t的存储块从重定位的位置235s恢复到目标软件映像225的引导位置(动作“A13:恢复(Restore)”)。然后,部署代理215放大源软件映像205s以便恢复其原始尺寸,由此覆盖存储于释放部分230内的目标软件映像225的存储块(动作“A14:放大(Enlarge)”)。在这点上,部署代理215关闭并然后开启计算机100。
因此,如图2G所示,计算机100自源软件映像205s重新引导,由此再次加载源操作系统210s(动作“A15:重新引导(Re-boot)”)。
上述解决方案使计算机在很短的时间内——刚好在其引导块已经存储于硬盘内之后(例如,对于10-200Mb的典型尺寸的引导块,在1-2分钟之后)准备好以目标软件映像来使用;然后,计算机的操作是完全正常的(其引导如往常一样直接来自硬盘),与在硬盘内是否可获得目标软件映像的其他存储块无关——当它访问还要从外部源下载的存储块时,计算机的性能只是稍微下降(该性能下降随时间减小,因为一旦存储块被访问过一次,则越来越多的存储块将已经是可在硬盘上获得的)。而且,使计算机做好使用准备所需要的时间与目标软件映像的尺寸无关。
该迁移过程不需要任何另加的存储空间。实际上,源软件映像保留于硬盘上;因此,其配置信息可以直接从硬盘中收集,以便将其应用于目标软件映像。
而且,源软件映像被维持为原样,直到用户决定提交到目标软件映像的迁移。因此,源软件映像的配置信息仍然可由目标软件映像访问(直到迁移被提交)。以此方式,可以收集(从源软件映像)并且在利用目标软件映像的计算机的测试期间的任何时间应用(到目标软件映像)任一配置信息(即使它在开始时已被遗忘);这避免了或者至少基本上降低了在迁移过程中丢失任一配置信息的风险。
上述解决方案还允许在很短的时间内恢复源操作系统(在必要时),因为它仍然可在硬盘上获得;实际上,该操作只需要恢复已经重定位的源软件映像的存储块(以存储目标软件映像的引导块)。而且,该解决方案不需要预先获取源软件映像的任何快照用于其在出问题的情况下恢复(相对应地节省时间)。
现在参照图3A-3C,图中示出了描述与根据本发明的一个实施例的迁移过程相关的活动流程的活动图,该迁移过程以方法300表示。
方法300从黑色的开始圆形302开始,并且然后一旦用户提交使计算机迁移到目标软件映像的请求(到部署代理)就转到块304。响应于此,部署代理在块306处收缩源软件映像,以便释放硬盘的一部分;例如,该结果可以通过恢复尚未分配给任何文件的未使用存储空间,或者通过删除临时文件来获得(使用源操作系统的内置功能)。转到块308,部署代理从外部源下载目标软件映像的引导块(如其中与目标软件映像关联地所指定的);例如,在微软的Windows中,引导块包括(除了流驱动器外)主引导记录(MBR)、引导扇区、bootmgr.exe文件、boot\bcd文件、系统注册表、winload.exe文件,以及在系统注册表中指定的驱动文件。为了该目的,当目标软件映像被存储于远程服务器的映像储存库内时,部署代理可以充当基于例如互联网小型计算机系统接口(iSCSI)协议而与远程服务器的远程访问服务程序交互的远程访问启动程序。
现在参照块310,部署代理将存储于目标软件映像的引导位置内的源软件映像的存储块重定位到释放部分。特别地,存储于目标软件映像的引导位置内的存储块被连续地读取,并且将其按相同的顺序复制到释放部分的第一存储位置内。
继续到块312,部署代理以流驱动器的控制结构来初始化所释放部分。为了该目的,部署代理创建用来使目标软件映像的每个存储块与其在硬盘中存储的存储位置关联的块映射(block map)(在开始时,指示在硬盘中没有可获得的目标软件映像的存储块)。特别地,当所释放部分(更精确地,其在重定位的存储位置和控制结构之后的有用部分)具有允许存储整个目标软件映像的尺寸时,它可以作为用于目标软件映像的本地储存库来操作。在这种情况下,块映射可以是位图;位图具有用于目标软件映像的每个映像地址的条目,该条目包括用于指示对应的存储块是否存储于所释放部分中的相同位置内的可用性标记(即,在具有等于映像地址加上在硬盘内的释放部分的有用部分的偏移的存储地址的存储位置中);在开始时,所有可用性标记都被取消断言(以指示对应的存储块没有存储于所释放部分内)。相反地,当所释放部分具有不允许存储整个目标软件映像的尺寸时,它可以作为用于目标软件映像的本地高速缓存来操作。在这种情况下,块映射可以是查找表;查找表具有用于所释放部分的有用部分的每个存储位置的存储地址的条目,该条目包括存储于其内的目标软件映像的存储块的映像地址,并且指示存储块是否已经更新过的更新标记(关于其在外部源内的原始版本);在开始时,查找表的所有条目都具有等于空值的映像地址(以指示存储块没有存储于所释放部分内)。另外,部署代理创建引导列表;引导列表指出目标软件映像的引导地址。部署代理还创建复制计数器,该复制计数器指定在迁移提交之后已经复制到其在硬盘内的正确位置的目标软件映像的最后存储块的映像地址,这将在下面描述(该复制计数器在开始时被设定为零)。现在转到块314,部署代理将目标软件映像的引导块存储于它们的引导位置内(这在引导列表内指出)。
在块316,部署代理关闭并然后开启计算机,以便促使其自在其引导位置内的目标软件映像的引导块重新引导。实际上,存储于计算机的固件内的在计算机开启时执行的引导加载程序(例如,基本输入/输出系统(BIOS))将硬盘识别为可引导设备;因此,BIOS加载MBR,MBR加载引导扇区,引导扇区找到并启动bootmgr.exe文件,bootmgr.exe找到并读取boot\bcd文件以确定系统注册表的存储位置(the memory locations of)并然后加载系统注册表、winload.exe文件以及在系统注册表中指定的驱动文件;winload.exe然后启动部署代理的流驱动器,该流驱动器覆盖目标操作系统的标准文件系统驱动器(以服务访问目标软件映像的任何存储块的每个请求,这将在下面描述)。继续到块318,部署代理根据目标操作系统来安装计算机上的硬盘(以便允许访问它,并且然后源软件映像)。
在这点上,部署代理将源软件映像的用户配置传输到目标软件映像;例如,源软件映像的用户配置包括设定(例如,与操作系统或应用程序的外观和行为相关的)和/或数据(例如,外设驱动器、Cookie和地址簿)。为了该目的,部署代理在块320处通过运行合适的迁移工具(例如,Windows中的用户状态迁移工具(USMT)的ScanState.exe程序)来收集源软件映像的配置信息。在这种情况下,对于读取在对应的映像地址处的源软件映像的存储块(分别称为配置映像地址和配置存储块)的每个请求(由迁移工具),流驱动器在块322处验证配置存储块是否已经重定位到释放部分(即,当配置映像地址等于目标软件映像的引导地址之一时,如同在其引导列表内所指出的)。若果如此,流驱动器在块324处更新配置映像地址以便指向对应的重定位的存储位置。然后,方法300下行至块326;当配置存储位置还未被重定位时,也可从块322直接到达该同一点。在这点上,流驱动器从具有等于(可能已更新的)配置映像地址的存储地址的存储位置中检索配置存储块。继续到块328,流驱动器将所收集的配置信息应用于目标软件映像(通过执行在所讨论的实例中的USMT的LoadState.exe程序);为了该目的,流驱动器将目标软件映像的对应存储块写入硬盘内(这将在下面描述)。
现在,计算机100能够正常地使用(运行目标软件映像)。特别地,方法300一旦读取目标软件映像的选定存储块(在对应的选定映像地址处)的请求被提交给目标操作系统(例如,由应用程序)就下行至块330。读请求在块332处被传递到流驱动器,该流驱动器验证所选定的存储块是否已经可在硬盘上获得。为了该目的,流驱动器首先将所选定映像地址与目标软件映像的引导地址进行比较(如在引导列表中所指示的),以确定所选定的存储块是否是引导块,并且然后总是存储于对应的引导位置内。若否,则流驱动器将所选定的映像地址与复制计数器比较,以确定所选定的映像地址是否等于或高于复制计数器,并且然后所选定的存储块已经被复制到其在硬盘内的正确位置(在迁移已经提交之后,这将在下面描述)。相反地,按照所释放部分的操作模式来执行不同的操作。特别地,当所释放部分作为本地储存库来操作时,流驱动器检索位图中对应的可用性标记,以确定所选定的存储块是否存储于释放部分内(分别在可用标记已断言或已取消断言时);另一方面,当释放部分作为本地高速缓存来操作时,流驱动器在查找表中查找所选定的映像地址,以确定所选定的存储块是否存储于释放部分内(分别在所选定的映像地址被找到或者未被找到时)。然后,活动流程根据验证的结果在块334处分出支路。
当所选定的存储块在硬盘中不可获得时,流驱动器在块336处从外部源下载所选定的存储块。现在,方法300根据释放部分的操作模式分成可择一地执行的两个支路。特别地,如果释放部分作为本地储存库来操作,则流驱动器在块338处将所选定的存储器存储到释放部分的对应存储位置(具有等于所选定的映像地址加上其偏移的存储地址)内;同时,在位图中的对应的可用性标记被断言(以指出所选定的存储块现在可在硬盘中获得)。相反地,如果释放部分作为本地高速缓存来操作,则流驱动器在块340处查找在释放部分中的空闲存储位置(即,具有在查找表内等于空值的对应的映像地址)。下行至块342,如果没有空闲的存储位置可用,则流驱动器在块344处回收(evict)释放部分的存储位置;待回收的存储位置仅在用于保存从外部源下载之后尚未更新的存储块的存储位置(如已取消断言的对应的更新标记所指示的)当中根据例如最近最少使用(LRU)算法来选择,以便避免任何信息丢失。然后,方法300下行至块346;当空闲存储位置已经找到时,也可从块342直接到达该同一点。在这点上,流驱动器将所选定的存储块存储于释放部分的第一空闲存储位置内;同时,在查找表内,对应的条目被设定于所选定的映像地址(以指示所选定的存储块现在可从其中获得),并且对应的更新标记被取消断言(以指示所选定的存储块尚未更新)。
返回至块334,如果所选定的存储块相反地可在硬盘中获得(在对应的引导块内,在其于硬盘中的正确位置内,或者在释放部分内),则该方法下行至块348。在该阶段,流驱动器从硬盘中检索所选定的存储块。特别地,如果所选定的存储块是引导块(即,所选定的映像地址是在引导列表中指示的引导地址之一),则所选定的存储块从对应的引导位置中检索(具有等于所选定的映像地址的存储地址)。类似地,如果所选定的存储块已经被复制到其在硬盘内的正确位置(即,所选定的映像地址小于复制计数器),则所选定的存储块从其正确的存储位置(具有等于所选定的映像地址的存储地址)中检索。作为代替,如果所选定的存储器被存储于释放部分内,则所选定的存储块从释放部分内具有等于所选定的映像地址加上释放部分的偏移的存储地址的存储位置中检索(当所释放部分作为本地储存库来操作时),或者从具有与存储所选定的映像地址的查找表的条目关联的存储地址的存储位置中检索(当所选定的部分作为本地高速缓存来操作时)。在任何情况下,来自块338、块346或块348的活动流程在块350合并;在这点上,流驱动器将所选定的存储块返回至文件系统驱动器,该文件系统驱动器进而将它返回至应用程序。
一旦写入目标软件映像的选定存储块(在对应的选定的映像地址处)的请求被提交给目标操作系统(例如,由应用程序),方法300就相反地下行至块352。写请求在块354被传递到流驱动器,该流驱动器验证所选的定存储块是否已经可在硬盘上获得,如同上述。然后,活动流程在块356根据验证的结果而分出支路。
当所选定的存储块不可在硬盘中获得时,流驱动器通过重复上文所述的相同操作将所选定的存储块存储于硬盘内。特别地,如果释放部分作为本地储存库来操作,则流驱动器在块358处将所选定的存储块存储于释放部分的对应存储位置(具有等于所选定的映像地址加上其偏移的存储地址)内;同时,在位图中的对应的可用性标记被断言。相反地,如果所释放部分作为本地高速缓存来操作,则流驱动器在块360处查找在释放部分内的空闲存储位置。下行至块362,如果没有找到空闲的存储位置,则流驱动器在块364处回收所释放部分的存储位置(在用于保存尚未更新的存储块的存储位置当中)。然后,方法300下行至块366;当找到了空闲的存储位置时,也可从块362直接到达该同一点。在这点上,流驱动器将所选定的存储块存储于所释放部分的第一空闲存储位置内;同时,在查找表中,对应的条目被设定于所选定的映像地址,并且对应的更新标记被取消断言。
返回至块356,如果所选定的存储块相反地可在硬盘中获得,则方法下行至块368。在该阶段,流驱动器将所选定的存储块存储于对应的存储位置内。特别地,如果所选定的存储块是引导快(即,所选定的映像地址是在引导列表中指示的引导地址之一),则所选定的存储块被存储于对应的引导位置(具有等于所选定的映像地址的存储地址)内。类似地,如果所选定的存储块已经被复制到其在硬盘内的正确位置(即,所选定的映像地址小于复制计数器),所选定的存储块被存储于其正确的存储位置(具有等于所选定的映像地址的存储地址)内。作为代替,如果所选定的存储器被存储于释放部分内,则所选定的存储块被存储于释放部分中的具有等于所选定的映像地址加上释放部分的偏移的存储地址的存储位置内(当释放部分作为本地储存库来操作时),或者被存储于具有与用于存储所选定的映像地址的查找表的条目关联的存储地址的存储位置内(当释放部分作为本地高速缓存来操作时)。
因而,这种流技术旨在将尽可能多的目标软件映像的存储块存储于硬盘上(与本技术领域已知的用于按需提供软件映像的流技术相反,在该已知的流技术中,仅为了其直接使用而将软件映像的存储块下载到计算机上)。而且,当释放部分作为本地储存库来操作时,所下载的存储块被永久地存储于硬盘上(在它们的使用之后不消失,在计算机关闭时也不消失),使得它们不必为了它们的下次使用而再次下载。
现在,一旦对提交到目标软件映像的迁移的请求被提交给部署代理,方法300就下行至块370(通过合并自块358、块366或块368)。响应于此,部署代理在块372处可以获取源软件映像的快照(例如,用于其备份)。为了该目的,源软件映像的各个存储块都从硬盘中检索;特别地,如果对应的存储位置尚未重定位,则存储块从对应的存储位置中检索,否则从对应的重定位的存储位置中检索。然后,存储块被存储于外部设备(例如,移动盘)上。因此,在这种情况下,可以仅在其确实有必要时才获取源软件映像的快照。
然后,对目标软件映像的每个存储块都执行循环。该循环开始于块374,其中流驱动器同上文一样验证目标软件映像在对应的当前映像地址(等于复制计数器加1)处的当前存储块是否已经可在硬盘上获得(在这种情况下,仅在引导位置内或者在释放部分内)。然后,活动流程根据验证的结果在块376分出支路。
在当前存储块没有在硬盘中获得时,流驱动器在块378处从外部源下载当前存储块。反之,活动流程从块376下行至块380。在这点上,如果当前存储块不是引导块,则流驱动器在块382处从释放部分中检索它;特别地,当前存储块从具有等于当前映像地址加上释放部分的偏移的存储地址的存储位置中检索(当释放部分作为本地储存库来操作时),或者从具有与用于存储当前映像地址的查找表的条目关联的存储地址的存储位置中检索(当释放部分作为本地高速缓存来操作时)。然后,方法300从块378或块382下行至块384。在该阶段,当前存储块被复制到其正确的存储位置(具有等于当前映像地址的存储地址),复制计数器随后加1;同时,如果释放部分作为本地高速缓存来操作,则在查找表中的对应条目被回收(通过将其映像地址设定为空值)。活动流程现在转到块386;在当前存储块是引导块时,也可在不执行任何操作的情况下从块380直接到达该同一点(因为它已经存储于正确的位置内)。现在进行测试以验证是否目标软件映像的全部存储块都已经被处理。若否,活动流程返回至块372以对目标软件映像的下一存储块重复相同的操作。相反地,循环通过下行至块388而退出,在该块388中,部署代理禁用流驱动器(此外还从目标软件映像的引导顺序中去除它)。在这点上,部署代理在块390处关闭并然后开启计算机,以便从目标软件映像来重新引导它,用于其正常的操作(不再需要外部源)。
该复制过程可以在后台执行,以便对于计算机的操作基本上是不透明;以此方式,计算机可以继续正常地工作,仅有的差别是目标软件映像的任意存储块现在可在其被复制到它的正确位置之后在该正确位置中访问。更具体地,当对访问(或者用于读取或者用于写入)目标软件映像的选定存储块(在对应的选定映像地址处)的请求被提交给操作系统时,访问请求被再次传递到流驱动器,该流驱动器验证所选定的存储块是否已经被复制(即,所选定的映像地址是否低于或等于复制计数器)。若果如此,则在具有等于所选定的映像地址的存储地址的存储位置中访问所选定的存储块;否则,通过重复以上所述的相同操作来读取或写入所选定的存储块。
例如,复制过程的操作可以根据计算机的工作负荷来重复。为了该目的,计算机的工作负荷被监测(例如,每隔10-100毫秒(ms));如果计算机的工作负荷低于预定的阈值(例如,由于在此刻没有操作被执行),则通过重复上述操作来复制目标软件映像的一个或多个存储块。以此方式,可以使复制过程对计算机的操作的影响最小化。结果,到目标软件映像的实际切换是很快的(因为它只需要重新引导计算机)。
作为选择,一旦对回滚源软件映像的请求被提交给部署代理,方法300就相反地下行(从块358,从块366或者从块368)至块392。响应于此,部署代理在块394处将源软件映像的存储块从重定位的位置恢复到目标软件映像的引导位置(通过连续地从重定位的存储位置中读出它们,并且将它们按相同的顺序复制到目标软件映像的对应引导位置内,如在其引导列表中所指示的)。然后,部署代理在块396处放大源软件映像(例如,再次通过利用源操作系统的内置功能),以便恢复其原始尺寸并且然后重写目标软件映像的任何存储块。在这点上,部署代理在块398处关闭并然后开启计算机,以便为了该计算机正常的操作而从源软件映像重新引导该计算机。
在两种情形中,方法300结束于中心为白色/黑色的停止圆形399处(或者来自块390或者来自块398)。
上述解决方案需要知道每个软件映像的引导块。为了该目的,例如,可以因此而准备软件映像。在这方面,参照图4,该图中示出了表示可以用来实现待使用于根据本发明的一个实施例的解决方案中的通用软件映像的准备过程的主要软件构件(整体标示为符号400)的作用的协作图。
该准备过程被实现于包括服务器计算机405s(具有其工作存储器和大容量存储器,分别以符号415s和430s标示)的系统中。服务器计算机405s运行部署管理器435——例如,IBM公司的用于操作系统部署的IBM Tivoli配置管理器(或用于OSD的TPM)的IBM Tivoli映像配置管理器(或TPMfI)(IBM和Tivoli是IBM公司的商标)。部署管理器435管理主软件映像(或者简写为主映像)440的储存库;每个主映像440提供对应的软件映像的基本版本(例如,通过采集它先前安装于其内的施主计算机的硬盘内容而创建的),其中与施主计算机的任何配置相关的具体内容(例如,驱动器和注册表设定)已经被去除。服务器计算机405s还包括模型445的储存库;每个模型445又包括软件映像必须部署于其内的计算机的对应配置所专有的内容。而且,部署管理器435与允许远程访问数据的远程访问服务器450交互(例如,基于iSCSI协议)。
操作者455为具体类型的计算机(由对应的辅助计算机405a表示)选择软件映像(包括选定的主映像440和选定的模型445)(动作“B1:选择(Select)”)。辅助计算机405a(具有其工作存储器和大容量存储器,分别以符号415a和430a标示)运行用于与部署管理器435交互的部署代理460。响应于此,部署管理器435通过传递所选定的软件映像的标识符来唤醒辅助计算机405a上的部署代理460(动作“B2:唤醒(Wake-up)”)。结果,部署代理460将所选定的软件映像安装为用于通过远程访问服务器450来对其进行远程访问的远程盘(即,通过充当所讨论的实例中的iSCSI启动程序)。结果,用于通过辅助计算机405a来进行排他性访问的临时软件映像(或者简写为临时映像)465被创建;临时映像465简单地通过指向所选定的主映像440及所选定的模型445的存储块的索引结构来定义——即,在没有制作它的任何副本的情况下。临时映像465以所启用的块跟踪功能来安装,以便跟踪被访问的临时映像465的任何存储块的映像地址(动作“B3:安装(Mount)”)。
在这点上,部署代理460模拟在临时映像465上的辅助计算机405a的引导顺序(直至部署代理的加载);例如,在微软的Windows中,部署代理460读出MBR、引导扇区、bootmgr.exe文件、boot\bcd文件、系统注册表、winload.exe文件、在系统注册表中指定的驱动文件,以及流驱动器(动作“B4:模拟引导(Simulated boot)”)。一旦完成了所模拟的引导顺序,部署代理460就卸载临时映像465(动作“B5:卸载(Unmount)”)。然后,部署代理460将临时映像465提交到部署管理器435(动作“B6:提交(Commit)”)。响应于此,部署管理器435根据临时映像465(由其检索结构简单定义的)来构建新的软件映像(或者简写为新映像)470;而且,新映像470与在所模拟的引导过程中已经访问过的存储块的列表关联,这些存储块定义了对应的引导块(动作“B7:构建(Build)”)。
自然地,为了满足局部的及具体的要求,本领域技术人员可以对以上所描述的解决方案加以许多逻辑的和/或物理的修改和改变。更具体地,虽然本解决方案在某种特定的程度上已经参照它的一种或多个实施例进行了描述,但是应当理解,形式及细节的各种删除、替换和改变以及其他实施例都是可能的(例如,关于数字值)。特别地,本发明的不同实施例甚至可以在没有前面的描述所阐明的具体细节的情况下实施,以提供对本发明的更彻底的理解;相反地,可以省略或简化众所周知的特征,以免以不必要的细节来混淆该描述。而且,应当明确指出,结合所公开的解决方案的任何实施例来描述的具体元件和/或方法步骤可以作为通用设计选择的事项并入任何其他实施例中。
例如,如果相同的解决方案以等同的方法来实现,则应用类似的考虑(通过使用具有其更多的步骤或部分的相同功能的类似步骤,去除某些非必要的步骤,或者添加更多的可选步骤);而且,步骤可以按照不同顺序、同时地或者以交织的方式(至少部分地)来执行。
软件映像可以包括任何软件程序(例如,只是没有任何应用程序的操作系统);类似地,存储块可以包括任何类型的信息(例如,一个或多个扇区、文件、库、目录,它们的组合或某些部分)。而且,目标软件映像可以由任何等同的外部源(例如,移动存储设备)来提供。在任何情况下,所提出的技术可以被用来安装不同的操作系统,以使计算机降级到相同操作系统的先前版本,从而为了灾难恢复或者任何其他原因而恢复计算机的快照。
相同的技术也可以应用于具有任意引导顺序的任何其他操作系统。例如,在Linux(是Linus Torvalds的商标)中,引导块包括(除了流驱动器之外)包含GRBU引导加载程序的MBR,以及包含内核及initrd文件系统的/boot目录;在这种情况下,在引导顺序中,BIOS加载包含GRBU的MBR,BRBU找到/boot目录并且加载内核和initrd文件系统,GRBU在内核上引导,内核启动initrd文件系统,并且initrd文件系统启动流驱动器。
在任何情况下,上述流功能可以由任何等同结构来实现(即使没有任何部署代理)。而且,软件映像可以按不同的方式来准备(例如,通过实际引导辅助计算机,并且跟踪在引导顺序中被访问的存储块,以识别其引导块)。
所提出的技术也可以被用来准确地安装目标软件映像,因为它由外部源提供(例如,用于恢复计算机先前的快照)。
在这种情况下,也可以避免传输源软件映像的任何配置信息。
在任何情况下,配置信息可以包括任何其他类型的信息(例如,应用程序、文档等);配置信息也可以从源软件映像中收集和/或以等同的技术应用于目标软件映像(即使是手动地,通过简单地复制某些文件)。
提交到目标软件映像的迁移的操作(通过将其存储块复制到它们在硬盘内的正确位置)可以用任何其他方式来执行。
例如,存储块即使在计算机被测试时也可以连续地下载;而且,也可以在单个动作中提交到目标软件映像的迁移(例如,通过在它们已经被下载之后同时复制其全部存储块)。
工作负荷可以按任何其他频率或者仅在具体的时段内(例如,在晚上)来监测;如果对计算机、服务器、网络或者它们的任意组合进行工作负荷监测,则应用类似的考虑。而且,工作负荷的阈值可以用任何其他方式来定义(例如,通过为其贡献分配不同的权重)。如果两个或更多的存储块在工作负荷降至阈值以下的同时被下载,则应用类似的考虑。
可以实现等同的算法,以在目标软件映像的存储块被复制到其正确的位置时确保它们的一致性。
作为选择,也可以使流驱动器保持为总是启用的,即使在目标软件映像已经被完全下载(例如,用于下载最新版本的存储块)之后。
如果设想用于回滚到源软件映像的其他过程,则应用类似的考虑。
硬盘的释放部分可以用任何其他方式来获得(例如,通过压缩某些文件);在任何情况下,只有硬盘的一部分可以被收缩(例如,硬盘的某些分区)。
可以实现任何等同的控制结构,以便由流驱动器使用(当释放部分作为本地储存库或本地高速缓存来操作时)。
如果程序(该程序可以用来实现本发明的每一个实施例)以不同的方式构造,或者如果提供附加的模块或功能,则应用类似的考虑;类似地,存储器结构可以是其他类型的,或者可以用等同的实体替换(不一定包括物理存储介质)。该程序可以采取适合于由任何数据处理系统使用的任何形式或者与其结合(例如,在虚拟机内);特别地,程序可以是以下形式:外部或驻留软件、固件或微代码(目标代码或源代码——例如,待编译的或待解释的)。而且,可以将程序作为实现于任何计算机可用的介质上的制造品来提供;该介质能够是适合于容纳、存储、传达、传播或传输程序的任何元件。例如,该介质可以是电子、磁、光、电磁、红外或半导体类型的;此类介质的实例是固定盘(在固定盘中,程序能够预先加载)、移动盘、带、卡、导线、光纤、无线连接、网络、广播电波等。在任何情况下,根据本发明的一个实施例的解决方案适用于甚至以硬件结构(例如,集成于半导体材料的芯片内)或者以适当地用另外的配置来编程的软件和硬件的组合来实现。
作为选择,该系统具有不同的结构或者包括等同的构件,或者它具有其他操作特性。在任何情况下,它的每个构件都可以分离成多个元件,或者两个或更多的构件可以结合在一起成为单个元件;而且,每个构件都可以被复制以支持对应操作并行的执行。同样应当指出,(除非另有说明)在不同构件之间的任何交互一般都不需要是连续的,并且它可以是直接的也可以是间接的(通过一个或多个中间物)。特别地,该系统可以基于不同的体系结构(例如,广域网、全球网络、蜂窝网络或卫星网络),并且可以利用任何类型的(有线和/或无线)连接。在任何情况下,每个计算机都可以具有别的结构或者可以包括类似的元件(例如,任何其他大容量存储器——例如,基于闪存的);而且,可以以任何数据处理实体(基于物理机或虚拟机(例如,PDA、移动电话等))或者以多个实体的组合来替换计算机。

Claims (15)

1.一种用于使数据处理实体(100)从安装于所述数据处理实体的大容量存储器(130)上的源软件映像(205s)迁移至存储于外部源(225)上的目标软件映像的方法(300),每个软件映像包括多个存储块,每一个存储块在所述软件映像之内具有对应映像地址,并且所述大容量存储器包括多个存储位置,每一个存储位置用于保存存储块,所述存储位置在所述大容量存储器之内具有对应存储地址,其中所述方法包括以下步骤:
释放(306)所述大容量存储器的一部分,
将存储于所述目标软件映像的引导位置内的所述存储块重定位(310)到所释放部分,所述引导位置是具有等于所述目标软件映像的引导块的所述映像地址的所述存储地址的所述存储位置,所述目标软件映像包括引导所述数据处理实体来加载适于从所述外部源下载所述目标软件映像的流功能(215)所需要的所述存储块,
将所述引导块存储(314)于对应引导位置内,
从所述对应引导位置内的所述引导块来引导(316)所述数据处理实体,由此加载所述流功能,以及
由所述流功能服务(330-350)每个读取所述目标软件映像的选定存储块的请求,当在所述大容量存储器中不可获得所述选定存储块时,所述流功能从所述外部源下载(336)所述选定存储块并将所述选定存储块存储(338-346)于所释放部分内,否则从所述大容量存储器中检索(348)所述选定存储块。
2.根据权利要求1所述的方法(300),还包括以下步骤:
由所述流功能(215)服务(352-368)每个写入所述目标软件映像的另一个选定存储块的请求,当所述另一选定存储块是所述引导块之一时,所述流功能则将所述另一选定存储块存储(354-368)于所述对应引导位置内,否则存储(354-368)于所释放部分内。
3.根据权利要求1或2所述的方法(300),其中所述方法在引导(316)所述数据处理实体之后还包括以下步骤:
从所述源软件映像中收集(318-326)配置信息,以及
通过将对应存储块存储于所释放部分内而将所述配置信息应用(328)于所述目标软件映像。
4.根据权利要求3所述的方法(300),其中从所述源软件映像中收集(318-326)配置信息的步骤包括:
检索(320-324)所述源软件映像的一组配置存储块,每个配置存储块在被重定位于所释放部分内时则从所释放部分中检索,否则从所述对应存储位置中检索。
5.根据权利要求1至4中的任一权利要求所述的方法(300),还包括响应于提交到所述目标软件映像的迁移的请求(370)的以下步骤:
将所述目标软件映像的不同于所述引导块的全部存储块复制(372-386)到具有等于所述对应映像地址的存储地址的所述存储位置内。
6.根据权利要求5所述的方法(300),其中复制(374-386)所述目标软件映像的全部存储块的步骤包括通过以下操作来重复复制(374-384)所述目标软件映像的至少一个当前存储块的步骤:
当在所释放部分中不可获得所述当前存储块时,则从所述外部源中下载(378)所述当前存储块,否则从所释放部分中检索(382)所述当前存储块,以及
将所述当前存储块存储(384)于具有等于所述对应映像地址的存储地址的所述存储位置内。
7.根据权利要求6所述的方法(300),其中复制(374-386)所述目标软件映像的全部存储块的步骤包括:
监测(374)数据处理实体的工作负荷,所述复制(374-384)所述目标软件映像的至少一个当前存储块的步骤在所述工作负荷降至阈值以下时执行。
8.根据权利要求5至7中的任一权利要求所述的方法(300),其中,在提交到所述目标软件映像的迁移的请求(370)之后,在所述选定存储块已经被复制到具有等于所述对应映像地址的存储地址的所述存储位置中之后,所述流功能从所述存储位置中检索(348)所述大容量存储器中可获得的所述选定存储块,否则从所释放部分中检索,并且在所述另一个选定存储块已经被复制到具有等于所述对应映像地址的存储地址的所述存储位置之后,则将所述另一选定存储块存储(366)于所述存储位置内,否则存储(366)于所释放部分内。
9.根据权利要求5至8中的任一权利要求所述的方法(300),还包括以下步骤:
在复制(372-386)所述目标软件映像的全部存储块之后禁用(388)所述流功能。
10.根据权利要求1至9中的任一权利要求所述的方法(300),还包括响应于回滚至所述目标软件映像的请求(392)的以下步骤:
将所述重定位的存储块恢复(394)到所述目标软件映像的所述引导位置内,以及
恢复(396)所述大容量存储器的所释放部分。
11.根据权利要求1至10中的任一权利要求所述的方法(300),其中释放(306)所述大容量存储器的一部分的步骤包括:
收缩(306)所述源软件映像。
12.根据权利要求1至11中的任一权利要求所述的方法(300),其中所释放部分(230)具有足以存储所述目标软件映像(225)的全部存储块的尺寸,存储(338-346)所述选定存储块的步骤以及存储(354-368)所述另一选定存储块的步骤包括:
将所述选定存储块或者所述另一选定存储块存储于所释放部分的具有等于所述对应映像地址加上所释放部分在所述大容量存储器中的偏移的存储地址的存储位置。
13.根据权利要求1至12中的任一权利要求所述的方法(300),其中所释放部分(230)具有足以存储所述目标软件映像的只是一部分存储块的尺寸,存储(338-346)所述选定存储块的步骤以及存储(354-368)所述另一选定存储块的步骤包括:
查找(340,360)在所释放部分内可获得的的空闲存储位置,用于存储所述选定存储块或者所述另一选定存储块,
当找不到空闲存储位置时,通过回收所释放部分的选定存储位置来创建(344,364)所述空闲存储位置,所述选定存储位置在所释放部分的用于保存在下载之后未被写入的存储块的存储位置中选择,以及
将所述选定存储块或者所述另一选定存储块存储(346,366)于所述空闲存储位置内。
14.一种计算机程序(200),包括用于在所述计算机程序被执行于数据处理系统(100)上时促使所述数据处理系统执行根据权利要求1至13中的任一权利要求所述的方法(300)的步骤的代码装置。
15.一种系统(100),包括用于执行根据权利要求1至13中的任一权利要求所述的方法(300)的步骤的装置(200)。
CN201180059218.9A 2010-12-13 2011-11-10 基于流技术的软件映像更新 Active CN103250134B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP10194709.1 2010-12-13
EP10194709 2010-12-13
PCT/EP2011/069873 WO2012079864A1 (en) 2010-12-13 2011-11-10 Upgrade of software images based on streaming technique

Publications (2)

Publication Number Publication Date
CN103250134A true CN103250134A (zh) 2013-08-14
CN103250134B CN103250134B (zh) 2016-09-07

Family

ID=44983528

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180059218.9A Active CN103250134B (zh) 2010-12-13 2011-11-10 基于流技术的软件映像更新

Country Status (7)

Country Link
US (2) US9058235B2 (zh)
JP (1) JP5911504B2 (zh)
CN (1) CN103250134B (zh)
CA (1) CA2817109C (zh)
DE (1) DE112011104356B4 (zh)
GB (1) GB2499964B (zh)
WO (1) WO2012079864A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104407918A (zh) * 2014-11-29 2015-03-11 中国航空工业集团公司第六三一研究所 一种航空电子系统任务数据的保存和恢复方法
US8996667B2 (en) 2010-04-27 2015-03-31 International Business Machines Corporation Deploying an operating system
US9052918B2 (en) 2010-12-14 2015-06-09 International Business Machines Corporation Management of multiple software images with shared memory blocks
US9058235B2 (en) 2010-12-13 2015-06-16 International Business Machines Corporation Upgrade of software images based on streaming technique
US9086892B2 (en) 2010-11-23 2015-07-21 International Business Machines Corporation Direct migration of software images with streaming technique
US9230118B2 (en) 2010-12-09 2016-01-05 International Business Machines Corporation Encrypting and decrypting a virtual disc
CN105468541A (zh) * 2015-12-11 2016-04-06 中南大学 一种面向透明计算智能终端的缓存管理方法
CN105677256A (zh) * 2016-01-08 2016-06-15 中电科华云信息技术有限公司 基于本地缓存的虚拟磁盘系统及调度方法

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9678769B1 (en) 2013-06-12 2017-06-13 Amazon Technologies, Inc. Offline volume modifications
US10409625B1 (en) * 2013-09-17 2019-09-10 Amazon Technologies, Inc. Version management for hosted computing workspaces
US9766930B2 (en) 2014-06-28 2017-09-19 Vmware, Inc. Using active/passive asynchronous replicated storage for live migration
US9898320B2 (en) 2014-06-28 2018-02-20 Vmware, Inc. Using a delta query to seed live migration
US9760443B2 (en) 2014-06-28 2017-09-12 Vmware, Inc. Using a recovery snapshot during live migration
US10671545B2 (en) 2014-06-28 2020-06-02 Vmware, Inc. Asynchronous encryption and decryption of virtual machine memory for live migration
US9672120B2 (en) 2014-06-28 2017-06-06 Vmware, Inc. Maintaining consistency using reverse replication during live migration
US9588796B2 (en) 2014-06-28 2017-03-07 Vmware, Inc. Live migration with pre-opened shared disks
US10585654B2 (en) * 2015-12-04 2020-03-10 Vmware, Inc. Deployment of processing components of computing infrastructure using annotated command objects
US10114702B2 (en) * 2016-01-06 2018-10-30 International Business Machines Corporation Method and system to discover and manage distributed applications in virtualization environments
EP3286648B1 (en) * 2016-02-12 2020-08-26 Hewlett-Packard Enterprise Development LP Assembling operating system volumes
US10579358B2 (en) * 2016-11-10 2020-03-03 Cisco Technology, Inc. Space-optimized software installation using in-place extractable archive image
US20220413825A1 (en) * 2021-06-29 2022-12-29 EMC IP Holding Company LLC Immutable edge devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030225986A1 (en) * 2002-04-23 2003-12-04 Casio Computer Co., Ltd. Program install method, file renewal method, program and computer system
US20040088367A1 (en) * 2002-10-31 2004-05-06 Paragon Development Systems, Inc. Method of remote imaging
US20080010639A1 (en) * 2006-05-24 2008-01-10 Lanrev Lp System and method for remotely re-imaging a computer system
US20100205594A1 (en) * 2009-02-10 2010-08-12 Microsoft Corporation Image-based software update

Family Cites Families (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075858A (en) 1995-10-27 2000-06-13 Scm Microsystems (U.S.) Inc. Encryption key system and method
US5991876A (en) 1996-04-01 1999-11-23 Copyright Clearance Center, Inc. Electronic rights management and authorization system
US6098158A (en) 1997-12-18 2000-08-01 International Business Machines Corporation Software-enabled fast boot
US6567774B1 (en) 1998-01-30 2003-05-20 Compaq Computer Corporation Method and system for configuring and updating networked client stations using a virtual disk and a snapshot disk
US6385721B1 (en) 1999-01-22 2002-05-07 Hewlett-Packard Company Computer with bootable hibernation partition
US6973447B1 (en) 2000-03-23 2005-12-06 International Business Machines Corporation System apparatus and method for supporting multiple partitions including multiple systems in boot code
US8140683B2 (en) 2000-12-07 2012-03-20 International Business Machines Corporation Method and system for selecting an operating system at user login on a target device
US6920555B1 (en) 2001-03-10 2005-07-19 Powerquest Corporation Method for deploying an image into other partition on a computer system by using an imaging tool and coordinating migration of user profile to the imaged computer system
US7428636B1 (en) 2001-04-26 2008-09-23 Vmware, Inc. Selective encryption system and method for I/O operations
FR2824646B1 (fr) 2001-05-09 2003-08-15 Canal Plus Technologies Procede de selection d'une image de logiciel executable
US7103747B2 (en) 2001-06-28 2006-09-05 Hewlett-Packard Development Company, L.P. Memory table and memory manager for use in managing memory
US20030126242A1 (en) 2001-12-28 2003-07-03 Chang Albert H. Network boot system and method using remotely-stored, client-specific boot images created from shared, base snapshot image
US20040024580A1 (en) 2002-02-25 2004-02-05 Oak Technology, Inc. Server in a media system
US7379982B2 (en) 2002-04-15 2008-05-27 Bassam Tabbara System and method for custom installation of an operating system on a remote client
US7313793B2 (en) * 2002-07-11 2007-12-25 Microsoft Corporation Method for forking or migrating a virtual machine
US7107385B2 (en) 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US7062517B2 (en) 2002-08-14 2006-06-13 Hitachi, Ltd. Method and apparatus for centralized computer management
JP2004192329A (ja) * 2002-12-11 2004-07-08 Fuji Photo Film Co Ltd プログラム書換え方法および端末装置
US6857069B1 (en) 2003-03-24 2005-02-15 Cisco Technology, Inc. Modified operating system boot sequence for iSCSI device support
US7360072B1 (en) 2003-03-28 2008-04-15 Cisco Technology, Inc. iSCSI system OS boot configuration modification
US6925533B2 (en) 2003-05-07 2005-08-02 International Business Machines Corporation Virtual disk image system with local cache disk for iSCSI communications
US7281247B2 (en) * 2003-06-24 2007-10-09 Microsoft Corporation Software image creation in a distributed build environment
US20070220494A1 (en) * 2003-11-06 2007-09-20 Intuwave Limited A Method of Rapid Software Application Development for a Wireless Mobile Device
US20050160150A1 (en) * 2004-01-20 2005-07-21 Su-Hwa Kao Apparatus and method for managing and transporting virtual disks over a network to networked stations
JP4900760B2 (ja) 2004-03-31 2012-03-21 株式会社日立製作所 Osイメージのデプロイメントマシン及び方法
JP4604543B2 (ja) * 2004-04-30 2011-01-05 日本電気株式会社 計算機、計算機起動方法、管理サーバ装置およびプログラム
US8230095B2 (en) 2004-05-07 2012-07-24 Wyse Technology, Inc. System and method for integrated on-demand delivery of operating system and applications
US7424601B2 (en) 2004-07-07 2008-09-09 Yongyong Xu Methods and systems for running multiple operating systems in a single mobile device
US7664834B2 (en) 2004-07-09 2010-02-16 Maxsp Corporation Distributed operating system management
US7269722B1 (en) 2004-07-26 2007-09-11 Sun Microsystems, Inc. Preview of UNIX boot process from multi-user level
US8346886B2 (en) 2004-09-08 2013-01-01 Red Hat, Inc. System, method, and medium for configuring client computers to operate disconnected from a server computer while using a master instance of the operating system
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US7509530B2 (en) 2005-01-19 2009-03-24 Sonic Solutions Method and system for use in restoring an active partition
US7512833B1 (en) 2005-05-09 2009-03-31 Adam C. Murphy Universal imaging utility program
US7536541B2 (en) 2006-03-07 2009-05-19 Novell Inc. Parallelizing multiple boot images with virtual machines
US7653794B2 (en) 2006-05-08 2010-01-26 Microsoft Corporation Converting physical machines to virtual machines
JP4725798B2 (ja) 2006-06-21 2011-07-13 日本電気株式会社 コンピュータシステム、ネットワークブートシステム、osイメージ切替方法、osイメージ切替プログラム
JP4584196B2 (ja) 2006-06-27 2010-11-17 九州日本電気ソフトウェア株式会社 情報処理システム、情報処理方法、およびプログラム
US7809919B2 (en) 2006-07-26 2010-10-05 Hewlett-Packard Development Company, L.P. Automatic data block misalignment detection and correction in a computer system utilizing a hard disk subsystem
JP4366698B2 (ja) 2006-07-27 2009-11-18 日本電気株式会社 計算機、計算機システム、及びディスクイメージ配布方法
US8387038B2 (en) 2006-08-14 2013-02-26 Caterpillar Inc. Method and system for automatic computer and user migration
JP4818868B2 (ja) 2006-10-05 2011-11-16 日本電信電話株式会社 仮想端末を利用した検疫ネットワークシステム、仮想端末を検疫する方法、及び、仮想端末を検疫するためのプログラム
US9038062B2 (en) 2006-10-17 2015-05-19 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US9086917B1 (en) 2006-10-17 2015-07-21 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8032351B2 (en) 2006-11-30 2011-10-04 Symantec Corporation Running a virtual machine directly from a physical machine using snapshots
US20080141015A1 (en) 2006-12-06 2008-06-12 Glen Edmond Chalemin System and method for operating system deployment in a peer-to-peer computing environment
US8312115B2 (en) 2006-12-21 2012-11-13 1E Limited Network booting apparatus and method
US20100107163A1 (en) 2007-03-20 2010-04-29 Sanggyu Lee Movable virtual machine image
US8331366B2 (en) * 2007-04-11 2012-12-11 Dell Products L.P. System and method for deployment of a software image to a plurality of target devices
US8245022B2 (en) 2007-06-01 2012-08-14 Dell Products L.P. Method and system to support ISCSI boot through management controllers
US20090049160A1 (en) 2007-08-14 2009-02-19 Dell Products L.P. System and Method for Deployment of a Software Image
US8375440B2 (en) 2007-10-15 2013-02-12 Microsoft Corporation Secure bait and switch resume
US8782637B2 (en) * 2007-11-03 2014-07-15 ATM Shafiqul Khalid Mini-cloud system for enabling user subscription to cloud service in residential environment
US20090164994A1 (en) 2007-12-20 2009-06-25 Virtual Computer, Inc. Virtual computing management systems and methods
US7953833B2 (en) * 2008-01-31 2011-05-31 Wanova Technologies Ltd. Desktop delivery for a distributed enterprise
CN100578461C (zh) 2008-03-12 2010-01-06 中兴通讯股份有限公司 一种引导程序的备份方法及其备份装置
US20090240953A1 (en) 2008-03-19 2009-09-24 Safenet, Inc. On-disk software image encryption
US7882342B1 (en) * 2008-03-31 2011-02-01 Symantec Corporation Systems and methods for imaging a computer system
JP5062687B2 (ja) 2008-03-31 2012-10-31 Eugrid株式会社 情報処理装置
JP5290287B2 (ja) * 2008-05-29 2013-09-18 株式会社シー・オー・コンヴ ネットワークブートシステム
SG158757A1 (en) 2008-07-10 2010-02-26 Fast And Safe Technology Pte L Method and apparatus for protecting data in computers
US8434093B2 (en) * 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
US8510352B2 (en) * 2008-10-24 2013-08-13 Microsoft Corporation Virtualized boot block with discovery volume
US8701106B2 (en) 2008-11-30 2014-04-15 Red Hat Israel, Ltd. Hashing storage images of a virtual machine
US20100174894A1 (en) 2009-01-07 2010-07-08 Lenovo (Singapore) Pte, Ltd. Method, Apparatus, and System for Configuring an Operating System on a Target Computer
JP2010231567A (ja) 2009-03-27 2010-10-14 Fujitsu Ltd ストレージスイッチ、記憶領域サイズ変更方法
US20100318987A1 (en) * 2009-06-15 2010-12-16 Microsoft Corporation Bootstrapping streamed and virtualized applications
US8112505B1 (en) * 2009-10-20 2012-02-07 Wanova Technologies, Ltd. On-demand block-level file system streaming to remote desktops
US9130912B2 (en) * 2010-03-05 2015-09-08 International Business Machines Corporation System and method for assisting virtual machine instantiation and migration
US8312296B2 (en) 2010-03-10 2012-11-13 Dell Products L.P. System and method for recovering from an interrupted encryption and decryption operation performed on a volume
US8996667B2 (en) 2010-04-27 2015-03-31 International Business Machines Corporation Deploying an operating system
US8407662B2 (en) * 2010-06-25 2013-03-26 Wyse Technology Inc. Apparatus and method for network driver injection into target image
US8560825B2 (en) 2010-06-30 2013-10-15 International Business Machines Corporation Streaming virtual machine boot services over a network
GB2499956B (en) 2010-11-23 2018-02-14 Servicenow Inc Direct migration of software images with streaming technique
WO2012076266A1 (en) 2010-12-09 2012-06-14 International Business Machines Corporation Computer-readable storage mediums for encrypting and decrypting a virtual disc
GB2499964B (en) 2010-12-13 2013-12-11 Ibm Upgrade of software images based on streaming technique
CN102567042B (zh) 2010-12-14 2015-04-15 国际商业机器公司 利用引导块重定位来管理多个软件镜像的方法和系统
JP5767565B2 (ja) 2010-12-14 2015-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理)

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030225986A1 (en) * 2002-04-23 2003-12-04 Casio Computer Co., Ltd. Program install method, file renewal method, program and computer system
US20040088367A1 (en) * 2002-10-31 2004-05-06 Paragon Development Systems, Inc. Method of remote imaging
US20080010639A1 (en) * 2006-05-24 2008-01-10 Lanrev Lp System and method for remotely re-imaging a computer system
US20100205594A1 (en) * 2009-02-10 2010-08-12 Microsoft Corporation Image-based software update

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996667B2 (en) 2010-04-27 2015-03-31 International Business Machines Corporation Deploying an operating system
US9086892B2 (en) 2010-11-23 2015-07-21 International Business Machines Corporation Direct migration of software images with streaming technique
US9230118B2 (en) 2010-12-09 2016-01-05 International Business Machines Corporation Encrypting and decrypting a virtual disc
US9230113B2 (en) 2010-12-09 2016-01-05 International Business Machines Corporation Encrypting and decrypting a virtual disc
US9626302B2 (en) 2010-12-09 2017-04-18 International Business Machines Corporation Encrypting and decrypting a virtual disc
US9058235B2 (en) 2010-12-13 2015-06-16 International Business Machines Corporation Upgrade of software images based on streaming technique
US9195452B2 (en) 2010-12-13 2015-11-24 International Business Machines Corporation Upgrade of software images based on streaming technique
US9052918B2 (en) 2010-12-14 2015-06-09 International Business Machines Corporation Management of multiple software images with shared memory blocks
CN104407918A (zh) * 2014-11-29 2015-03-11 中国航空工业集团公司第六三一研究所 一种航空电子系统任务数据的保存和恢复方法
CN104407918B (zh) * 2014-11-29 2017-06-27 中国航空工业集团公司第六三一研究所 一种航空电子系统任务数据的保存和恢复方法
CN105468541A (zh) * 2015-12-11 2016-04-06 中南大学 一种面向透明计算智能终端的缓存管理方法
CN105677256A (zh) * 2016-01-08 2016-06-15 中电科华云信息技术有限公司 基于本地缓存的虚拟磁盘系统及调度方法

Also Published As

Publication number Publication date
GB2499964B (en) 2013-12-11
US20150052508A1 (en) 2015-02-19
US20130247020A1 (en) 2013-09-19
DE112011104356T5 (de) 2013-09-12
CN103250134B (zh) 2016-09-07
CA2817109A1 (en) 2012-06-21
US9058235B2 (en) 2015-06-16
JP2013545204A (ja) 2013-12-19
DE112011104356B4 (de) 2014-05-15
WO2012079864A1 (en) 2012-06-21
JP5911504B2 (ja) 2016-05-11
CA2817109C (en) 2020-11-03
US9195452B2 (en) 2015-11-24
GB2499964A (en) 2013-09-04
GB201311739D0 (en) 2013-08-14

Similar Documents

Publication Publication Date Title
CN103250134A (zh) 基于流技术的软件映像更新
US9965217B2 (en) Managing data in a storage system
CN102591675B (zh) 使用共享存储块管理多软件镜像的方法和系统
JP5649184B2 (ja) ブート・ブロックの再配置によって複数のソフトウェア・イメージを管理するための方法、コンピュータ・プログラムおよびシステム
US8930947B1 (en) System and method for live migration of a virtual machine with dedicated cache
US8413133B2 (en) Software update management apparatus and software update management method
US8041991B2 (en) System and method for recovering solid state drive data
CN102193817B (zh) 简化物理和虚拟部署的管理
CN101354715A (zh) 用于操作数据处理系统的系统、方法和计算机程序产品
US9665496B2 (en) Non-volatile memory write mechanism
CN104081329A (zh) 对数据进行备份的备份存储系统、备份存储装置以及方法
CN104011677A (zh) 利用流技术在多个目标上部署软件映像
EP1810154A2 (en) Flash file system management
US20060149899A1 (en) Method and apparatus for ongoing block storage device management
CN104516792A (zh) 一种数据备份方法及装置
US9557983B1 (en) Flexible storage application deployment mechanism
CN100365601C (zh) 仿真系统和仿真方法
JP2010259004A (ja) 画像処理装置、画像形成装置、記憶装置増設方法、及び記憶装置増設プログラム
KR100947136B1 (ko) 소프트웨어의 증분 프로비져닝
JP2004021318A (ja) ディスクアレイ装置、及びその制御方法
CN103443758A (zh) 虚拟磁盘的优化缩减

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