CN1797342A - 用于增量式封包部署的设备和方法 - Google Patents

用于增量式封包部署的设备和方法 Download PDF

Info

Publication number
CN1797342A
CN1797342A CNA2005100809483A CN200510080948A CN1797342A CN 1797342 A CN1797342 A CN 1797342A CN A2005100809483 A CNA2005100809483 A CN A2005100809483A CN 200510080948 A CN200510080948 A CN 200510080948A CN 1797342 A CN1797342 A CN 1797342A
Authority
CN
China
Prior art keywords
magnetic disk
disk memory
redirected
detected
piece
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
CNA2005100809483A
Other languages
English (en)
Other versions
CN1797342B (zh
Inventor
C·李
J·王
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN1797342A publication Critical patent/CN1797342A/zh
Application granted granted Critical
Publication of CN1797342B publication Critical patent/CN1797342B/zh
Expired - Fee Related 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/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

描述了一种用于增量式封包部署的方法和设备。在一个实施例中,所述方法包括重定向磁盘输入/输出(I/O)以保持磁盘存储器的内容。在重定向磁盘I/O请求之后,根据重定向到未使用的磁盘存储器块的磁盘I/O写请求来创建软件分发封包。在一个实施例中,所述软件分发封包是利用固件代理生成的,所述固件代理将该软件分发封包上载到服务器,将软件分发封包供应给统一环境的其它计算机以确保该统一环境内的每个系统都具有完全相同的系统和存储器映像。还描述和要求了其它的实施例。

Description

用于增量式封包部署的设备和方法
技术领域
本发明总体上涉及数据处理和信息技术领域。更具体而言,涉及一种用于增量式封包部署的方法和设备。
背景技术
计算机的状态是指计算机的环境,其通常是利用运行的程序和基本硬件和软件特性来确定的。计算机环境的一个组成部分是操作系统。然而,操作系统包含许多不同的参数。另外,所述环境可能是操作系统及其它程序用以存储各种类型的杂项信息的存储器中的区域。所有这些元件合起来构成计算机环境。
最近,因特网咖啡店的出现以及维护计算机网络的当前存在的问题已经导致提供统一环境的工作量的增加。正如在此所描述的那样,术语″统一环境″是指这样的计算机网络,其中安装在计算机网络内的一个或多个客户端计算机上的软件配置是相同的。系统供应是如下统一环境中的重要需求,在所述统一环境中,相同的软件配置被安装在计算机网络内的一个或多个客户端计算机上。
正如在此所描述的那样,术语″系统供应″是指用于将安装在所选客户端计算机(在此称为″黄金计算机(golden computer)″)上的软件配置部署到计算机网络内的一个或多个客户端计算机中的技术。因此,系统供应提供了一种用于确保统一环境的解决方案。然而,所述系统可能要被周期性地更新;例如,安装新的驱动程序或新的软件。令人遗憾的是,为了维护所述统一环境,系统供应需要将完整的软件配置映像部署到计算机网络内的一个或多个客户端计算机中以维护该统一环境。换言之,每当将新的软件部分或驱动程序添加到网络的客户端计算机时,必须生成完整的软件配置映像。
发明内容
在本发明的一个方面,提供了一种方法,包括:重定向所检测的磁盘输入/输出I/O请求以保持磁盘存储器的内容;根据重定向到未使用的磁盘存储器块的磁盘I/O写请求来创建增量式封包;以及将增量式封包部署到至少一个客户端计算机。
在本发明的另一个方面,提供了一种方法,包括:根据所检测的、重定向到未使用的磁盘存储器块以保持磁盘存储器内容的磁盘输入/输出I/O写请求来生成增量式封包;以及将增量式封包传送到服务器计算机以便将所述增量式封包部署到至少一个客户端计算机。
在本发明的又一个方面,提供了一种包括机器可访问介质的产品,所述机器可访问介质具有相关的数据,当这些数据被访问时令机器执行下列操作,包括:检测发到磁盘存储器的目的地块的至少一个I/O写请求;将所检测的I/O写请求从磁盘存储器的目的地块重定向到所选的重定向的磁盘存储器块,其中重定向所检测的写请求以保持磁盘存储器的内容;在映射表中生成一个条目以包含磁盘存储器的目的地块的地址和所重定向的磁盘存储器块的地址;以及响应于接收到的命令进行重启以便根据映射表来执行磁盘恢复。
在本发明的再一个方面,提供了一种包括机器可访问介质的产品,所述机器可访问介质具有相关的数据,当这些数据被访问时,导致机器执行下列操作包括:中断由操作系统发出的至少一个写操作;将写操作从磁盘存储器的目的地块重定向到所重定向的未使用的磁盘存储器块以保持磁盘存储器的内容;记录磁盘存储器的目的地块和所重定向的磁盘存储器块的地址;以及响应于接收到的命令进行重启以便根据所重定向的写操作执行磁盘恢复。
在本发明的又一个方面,提供了一种包括机器可访问介质的产品,所述机器可访问介质具有关联数据,当这些数据被访问时会导致所述机器执行下列操作,包括:检测包含所检测的、重定向到未使用的磁盘存储器块以保持磁盘存储器的内容的磁盘I/O写请求的至少一个条目的数据结构;更新磁盘存储器以便向磁盘存储器提交列在所检测的数据结构中的所检测的I/O写请求;根据所检测的数据结构来生成增量式封包;以及将所述增量式封包传送到服务器计算机以便将该增量式封包部署到至少一个客户端计算机。
在本发明的另一个方面,提供了一种系统,包括:多个客户端计算机;和服务器计算机,所述服务器计算机向具有新安装软件的所选客户端计算机发送命令以生成增量式封包,所选计算机根据所检测的、重定向到未使用的磁盘存储器块的磁盘输入/输出(I/O)写请求来生成增量式封包,并且将所述增量式封包传送到服务器计算机以便将所述封包部署到至少一个客户端计算机。
附图说明
本发明的各种实施例是在附图的各图中以举例的方式而非限制的方式加以说明的,并且在其中:
图1是举例说明依照一个实施例的、在统一环境计算机网络内的增量式封包部署的框图。
图2是举例说明依照一个实施例的、将所检测的输入/输出(I/O)写请求重定向到未使用的磁盘存储器块以保持磁盘存储器的内容的框图。
图3是举例说明依照一个实施例的、发布到所重定向的磁盘存储器块的读请求的处理的框图。
图4是举例说明依照一个实施例的、在统一环境计算机网络内部署增量式封包的框图。
图5是举例说明依照一个实施例的、重定向所检测的磁盘I/O写请求以保持磁盘存储器的内容的流程图。
图6是举例说明依照一个实施例的、用于在统一环境计算机网络内的增量式封包部署的方法的流程图。
图7是依照一个实施例的、用在图1的客户端计算机和服务器计算机内的计算机系统的示意图。
具体实施方式
在下面的说明中,阐述了诸如逻辑实现方式、信号和总线的尺寸与名称、系统组件的类型和相关性以及逻辑划分/集中选择之类的许多细节以便提供更彻底的理解。然而,本领域的普通技术人员将会认识到的是,可以在没有这类细节的情况下实践所描述的实施例。在其它实例中,没有详细地示出控制结构和门电平电路,以免混淆本发明。本领域的普通技术人员利用所包括的说明书,将能实现适当的细节而无需进行不必要的试验。
图1是举例说明依照一个实施例的、在统一环境计算机网络100内的增量式封包部署的框图。正如在此所描述的那样,增量式封包部署是指用于递增地将软件部署到统一环境的预先部署的系统中的技术。正如在此所描述的那样,术语″统一环境″是指这样的计算机网络,其中相同的软件配置被安装在该计算机网络中的一个或多个客户端计算机上。在一个实施例中,增量式封包部署是基于磁盘输入/输出(I/O)监视和保护来进行的。
图1有代表性地举例说明了这样的计算机网络100,包括多个客户端计算机102(102-1.....102-N),所选计算机在此称为″黄金计算机″110,还包括服务器计算机112。在一个实施例中,黄金计算机110安装有磁盘I/O保护组件。正如参照图2描述的那样,在一个实施例中,这个磁盘I/O保护组件在维护磁盘存储器的原始内容的同时记录软件安装和配置变化的操作。
如图1所示,客户端计算机102是利用黄金计算机110的原始软件配置映像被预先部署的。因此,客户端计算机102和黄金计算机110符合统一环境,其中相同的软件配置被安装在所有客户端计算机102上。在一个实施例中,黄金计算机110的磁盘I/O保护组件响应于从服务器计算机112所接收的增量式封包创建命令,如转移箭头104所示,令黄金计算机110生成增量式封包,这是基于由磁盘I/O重定向组件在系统操作期间所执行的所重定向的I/O操作来进行的,正如参照图2所描述的那样。
正如在此所描述的那样,″系统供应″是指将软件配置映像从所选客户端计算机(在此称为″黄金计算机″)部署到一个或多个其它客户端计算机中以令这些客户端计算机根据例如图1的计算机网络100所示的统一环境进行操作或维护该统一环境的技术。再次参照图1,在一个实施例中,在创建增量式封包之后,将这个增量式封包发送到服务器计算机112,如转移箭头106所示。在一个实施例中,术语″增量式封包″是指例如对所重定向的I/O写请求而做出的基于磁盘存储器的脏块信息而递增的磁盘映像。正如在此所描述的那样,术语″磁盘存储器″是指非易失性存储器,例如像计算机系统的内部硬盘驱动器。
如图1所示,一旦服务器计算机112接收到增量式封包,所述服务器计算机112就将所述增量式封包部署到客户端计算机102。如下所述,在一个实施例中,修改客户端计算机102的启动过程以便令固件模块在备份磁盘存储器的当前内容之后建立先前的检查点(用于系统恢复),向各个客户端计算机102的磁盘存储器提交增量式封包所示的变化,并在磁盘恢复期间建立默认检查点,正如下面所述的那样。
因此,在提交增量式封包所示的变化之后,客户端计算机102和黄金计算机110再次符合统一环境,其中相同的软件配置被安装在客户端计算机102和黄金计算机110上。因此,尽管可以周期性地通过例如安装新的软件或新的驱动程序来更新黄金计算机110,但是在一个实施例中,增量式封包部署提供了一种解决方案,用以递增地将黄金计算机110上的改变部署到客户端计算机102,而不用对黄金计算机110上的每次改变都将整个软件配置映像部署到客户端计算机102。
图2是举例说明依照一个实施例的、重定向所检测的I/O写请求222以保持磁盘存储器260的内容的框图。在一个实施例中,磁盘驱动程序230包含磁盘I/O重定向组件232。磁盘I/O监视和保护是统一环境中的重要需求,例如正如在图1中举例说明的那样。在操作中,用户可能对该系统实施有害的操作,这可能会使系统变得不稳定。正如在此所描述的那样,基于通常用户实施的操作的任何变化称为″每日使用(daily usage)″并且不被提交给磁盘存储器。
在一个实施例中,磁盘驱动程序230的重定向组件232将由操作系统(OS)220发出的I/O请求重定向到未使用的磁盘存储器部分以保持磁盘存储器260的内容。在一个实施例中,重定向组件232记录关于由OS 220发出的所重定向的I/O写请求的信息,比如,哪些块被修改以及原始的和新的磁盘存储器内容。在一个实施例中,可以由管理员例如根据软件安装来授权这类改变。在一个实施例中,一旦在黄金计算机110上被提交,则例如增量地将经授权的改变供应给诸如图1中所示的统一环境内的客户端计算机。否则,就将所述改变标识为每日使用,这在各个客户端计算机的启动期间导致系统重启之后恢复到默认检查点以作为磁盘恢复的一部分。
正如在此所描述的那样,″磁盘恢复″描述了对例如图1所示的客户端计算机102和黄金计算机110的启动过程的修改以判断在系统启动期间所检测到的映射表是否包含经授权的软件配置改变。在一个实施例中,经授权的软件配置改变是通过增量式封包创建命令从服务器计算机到所选黄金计算机的传输来指示的。
如图1所示,在一个实施例中,黄金计算机110仅仅是已被系统管理员选择用来执行软件配置改变的客户端计算机102。在所期望的软件配置改变之后,管理员可以令服务器计算机112向黄金计算机110发送增量式封包创建命令。响应于接收到所述命令,黄金计算机110在增量式封包创建模式下重启并执行磁盘恢复。
正如在此所描述的那样,增量式封包创建模式是磁盘恢复模式,其中当经授权的软件配置改变时,固件模块识别在映射表252中所包含的被重定向的I/O请求。在一个实施例中,作为磁盘恢复的一部分,在备份磁盘存储器的当前内容以建立先前的检查点(用于系统恢复)之后,该固件模块向黄金计算机的磁盘存储器提交由所接收的增量式封包指示的软件配置改变。作为所述过程的一部分,正如在下面所进一步详述的那样,黄金计算机110生成增量式封包。
正如在此所描述的那样,磁盘恢复包括如上所述的标准磁盘恢复模式和增量式封包创建磁盘恢复模式。正如在此所描述的那样,标准磁盘恢复模式描述了在系统启动期间的过程,其中黄金计算机或客户端计算机的固件将映射表内的信息标识为每日使用。同样,作为标准磁盘恢复的一部分,该固件模块丢弃映射表并从磁盘存储器中删除与所量定向的I/O写请求相关联的任何写数据。
再次参照图2,在每日的操作期间,用户例如可能使用诸如图1的客户端计算机102之类的计算机。在一个实施例中,由磁盘驱动程序230的重定向组件232来监视用户所实施的I/O操作。在一个实施例中,磁盘驱动程序230中断由操作系统(OS)220发出的每一个写操作。在一个实施例中,不提交对磁盘存储器260的目的地块262或硬盘的修改。有代表性的是,对磁盘存储器260的原始的(目的地)块262的修改被重定向到磁盘存储器260的一些其它未使用的(所重定向的)块264中,并且更新映射表252以便列出关于磁盘存储器260的初始目的地块262与重定向块264之间的重定向关系的信息。
为了启用所检测的写请求的重定向来保持磁盘存储器的内容,初始化块201最初生成未使用的块表250。在一个实施例中,在磁盘恢复期间,初始化块201收集关于磁盘存储器260的未使用的块的信息。在一个实施例中,在初始化期间,计算指定硬盘上的扇区列表和该扇区是被使用还是未被使用的位图。在一个实施例中,可以通过用逻辑1值指代已使用的扇区和用逻辑0值指代未使用的扇区来生成位图。作为初始化过程的一部分,初始化块201可以在磁盘存储器260内生成隐藏分区以存储未使用的块表250以及映射表252。
                          表1
    目的地块                     重定向块
    0x3F            -->           0x708E
    0x5B            -->           0x708C
    0x5C            -->           0x708D
再次参照图2,如转移箭头224所示,OS 220可以向指向目的地块262的文件系统226发出写操作222。在一个实施例中,磁盘驱动程序230的重定向组件232中断所检测的写操作222。如转移箭头240所示,磁盘驱动程序230在未使用的块表250内查找磁盘存储器260的未使用的块以用作为重定向块264。响应于所述查询,如转移箭头242所示,磁盘驱动程序230定位磁盘存储器260的未使用的块以用作为重定向块264。如转移箭头236所示,磁盘驱动程序230在映射表252中生成一个条目以包含目的地块262的逻辑块地址和重定向块264的逻辑块地址,例如,如表1所示的那样。有代表性的是,如转移箭头244所示,代替在目的地块262内存储与写操作222相关联的写数据,而是重定向所述数据并存储在重定向块264内以保持磁盘存储器260的内容。
图3是举例说明指向磁盘存储器360的目的地块362的读操作322的处理的框图,其中所述读操作已被重定向到磁盘存储器360的重定向块364中。有代表性的是,如转移箭头324所示,OS 320可以向文件系统326发出读操作322。作为响应,如转移箭头328所示,在一个实施例中,磁盘驱动程序330中断读操作322以判断与读操作322相关联的读块是否被作为目的地块362而列在映射表352内,如转移箭头336所示的那样。如转移箭头338所示,在一个实施例中,映射表352返回读操作322所指向的重定向块364的逻辑块地址。在转移箭头340处,磁盘驱动程序330利用作为读操作322的源块的重定向块364来完成读操作322。否则,如果读块未列在映射表中,则磁盘驱动程序330完成对所请求的读块362的读请求。
因此,正如在图3中举例说明的那样,当由OS 320发出读操作322时,实施遍历映射表352的查询。如果待读取的块被重定向,那么读操作就转到重定向块364。否则,就照常实施读操作。因此,在一个实施例中,正如参照图2和3举例说明的那样,磁盘存储器360的原始内容得以保持。然而,从参照图3举例说明的用户观点来看,系统就像照常实施操作那样进行工作,而从用户的观点来看,可能会出现这样的情况,即磁盘I/O写请求被提交到磁盘存储器。
图4是举例说明依照一个实施例的、增量式封包部署的框图。有代表性的是,黄金计算机410在系统重启之后根据标准磁盘恢复模式来执行磁盘恢复,在所述标准磁盘恢复模式下丢弃记录重定向信息的映射表452并使所述系统恢复到其初始状态。因此,在一个实施例中,在系统重置之后,在磁盘恢复期间,除非黄金计算机410或任何其它客户端计算机402从服务器计算机412中接收到命令以生成增量式封包,否则作为磁盘恢复的一部分,所述计算机丢弃映射表452并通过丢弃写入磁盘存储器460的重定向块464中的信息来使系统恢复到其初始状态。
再次参照图4,当管理员想要升级系统时,选择黄金计算机410来施加软件配置改变,所述软件配置改变可以包括软件配置改变的安装/卸载、驱动程序安装等等。尽管实施了这些操作,但是黄金计算机410的磁盘存储器的所有内容和对黄金计算机410的磁盘存储器所做的修改都被重定向到重定向块,并且由磁盘I/O重定向组件来对用以记录重定向信息的映射表452进行维护。在一个实施例中,响应于来自于服务器计算机412的命令,黄金计算机410生成增量式封包466,在一个实施例中,所述增量式封包包含映射表452和重定向块464中的内容。
在一个实施例中,黄金计算机的固件(″重定向固件″)在磁盘恢复期间生成增量式封包466并且将该增量式封包466上载到服务器计算机412。另外,黄金计算机410根据映射表452将重定向块464内的写数据提交到其磁盘存储器的初始目的地块462。在一个实施例中,一旦写数据被提交到磁盘存储器,重定向固件就创建默认检查点。在一个实施例中,所述重定向固件可以通过在提交写数据之前保存磁盘存储器的内容来生成由映射表452表示的先前检查点,以使系统状态在提交所述改变之前能够恢复到先前的检查点。有代表性的是,依照一个实施例,将增量式封包466部署到统一环境计算机网络400的非黄金计算机402。
这里所用的固件是指存储在非易失性存储器结构(比如只读存储器(ROM)、闪速存储器等等)中的处理器例程。即使是当电源切断时,这些存储器结构也能保持存储在它们中的代码。即使所述固件是存储在非易失性存储器中的,也可以将固件拷贝或影射(shadow)到易失性存储器。典型地,这是由于性能的原因而进行的。传统固件的原理使用之一就是提供必要的指令或例程,这些指令或例程在已经测试和配置了易失性存储器结构之前,当计算机系统从关机状态被上电时控制所述计算机系统。固件例程还可以用于在各种硬件事件之后重新初始化或重新配置计算机系统并且用于处理确定的平台事件,比如系统中断之类的。
在客户端(非黄金)计算机402(402-1,...,402-N)进行磁盘恢复期间,非黄金计算机402的重定向固件根据由映射表452指示的逻辑块地址,将对磁盘存储器的重定向块的修改提交到磁盘存储器的初始目的地块。因此,依照一个实施例,一旦映射表信息和目的地块被非黄金计算机402的重定向固件提交,非黄金计算机402的软件配置就将软件配置匹配到黄金计算机410以便将计算机网络400维护成统一环境。在一个实施例中,非黄金计算机可以在根据增量式封包进行更新之后把系统状态设置为默认检查点。
在一个实施例中,来自于黄金计算机410以及非黄金计算机402的重定向固件可以接收检查点请求。响应于接收检查点请求,在磁盘恢复期间,重定向固件可以生成备份以便保持磁盘存储器的内容以作为先前的检查点。一旦备份了磁盘存储器的内容,重定向固件就将已经重定向到未使用的磁盘存储器块的磁盘I/O写请求提交到磁盘存储器的初始目的地块。一旦各种所重定向的写请求都被提交到存储器,重定向固件就可以创建新的检查点以作为默认检查点,同时维护备份信息以便如果接收到后续的检查点请求则对先前的检查点执行恢复。
因此,如上所述,在一个实施例中,响应于增量式封包的接收,该重定向固件把当前状态当作先前的检查点并且根据当前状态备份信息以便能够恢复到先前的检查点,并且在提交与接收到的增量式封包相关联的写数据之后,将新的状态设置为默认检查点。在一个实施例中,所述默认检查点允许重定向固件丢弃被标识为每日使用的改变,以便使得所重定向的写请求或I/O请求被丢弃,并且删除存储在未使用的块内的任何数据以便使存储器向回恢复到默认检查点。
图5是举例说明依照一个实施例的、用于通过生成映射表来重定向所检测的I/O写请求以保持磁盘存储器的内容的方法500的流程图。在过程块510中,判断发布到磁盘存储器的目的地块的I/O写请求是否被检测到。正如参照图2举例说明的那样,所检测的I/O写请求可以由OS 220发布到文件系统220。在一个实施例中,中断由操作系统发出的每个I/O请求以判断所述请求是I/O读请求还是写请求。
在过程块520中,将所检测的I/O写请求,从把I/O请求发布到的那个磁盘存储器的目的地块,重定向到所选的磁盘存储器的重定向块,其中所检测的写请求被重定向以便保持磁盘存储器的内容。在重定向之后,在过程块530中,在映射表中生成一个条目。在一个实施例中,所述条目包括磁盘存储器的目的地块的地址和所选的磁盘存储器的重定向块的地址。
在一个实施例中,所述地址是指逻辑块地址,其通过逻辑地引用具有线性地址的硬盘中的扇区来标识硬盘中的扇区(参见表1)。在一个实施例中,映射表以及其它重定向信息被包含在磁盘存储器的隐藏分区内。在一个实施例中,磁盘存储器的隐藏分区的位置例如由磁盘驱动程序传递给例如计算机系统的固件,作为磁盘恢复的一部分,所述固件在系统启动期间被调用。
在一个实施例中,如图5所示,在过程块540中,判断是否接收到了增量式封包创建命令。如果在过程块540中没有接收到增量式封包创建命令,则重复过程块510-530直到接收到增量式封包创建命令或检测到系统关闭为止。如果在过程块540中接收到增量式封包创建命令,则在一个实施例中,正在对其执行系统配置改变的所选黄金计算机量新引导黄金计算机以便根据磁盘恢复增量式封包创建模式来进行操作,如在过程块550中所示。如上所述,磁盘恢复增量式封包创建模式描述了这样的模式,其中黄金计算机的固件把在系统启动期间所检测的映射表标识为包含了经授权的软件配置改变。在一个实施例中,所述固件执行如参照图6举例说明的增量式封包的生成。
图6是举例说明依照一个实施例的、用于生成增量式封包和将该增量式封包部署到一个或多个客户端计算机的方法600的流程图。在过程块610,检测数据结构,所述数据结构包括列出关于所检测的、为保持磁盘存储器的内容而重定向到磁盘存储器的未使用块的磁盘I/O写请求的信息的至少一个条目。在一个实施例中,在磁盘恢复期间,响应于从自服务器计算机接收例如增量式封包创建命令,固件模块更新磁盘存储器以将列在数据结构上的所检测的I/O写请求提交到磁盘存储器。
在一个实施例中,可以在完成软件配置改变之后接收该命令以令黄金计算机根据增量式封包创建模式来重新引导。在一个实施例中,所述命令可以在磁盘恢复期间被接收。然而,如果没有接收到所述命令,则就将数据结构中的信息标识为每日使用,以便丢弃数据结构并删除由数据结构指示的重定向块内的任何数据以使系统恢复到默认检查点。
在过程块630中,根据所述数据结构创建增量式封包。在一个实施例中,正如参照图4中举例说明的那样,所述增量式分布式封包包括映射表,所述映射表包含每个所重定向的写请求的初始块或目的地块的逻辑块地址、写请求被重定向到的磁盘存储器的重定向块的逻辑块地址以及与该写请求相关联的数据。一旦被生成,所述增量式封包就在过程块640中被传送到服务器计算机。在一个实施例中,所述服务器计算机将所述封包部署到至少一个客户端计算机。因此,一旦将增量式封包部署到至少一个客户端计算机,则该至少一个客户端计算机和黄金计算机将具有匹配的系统映像。
参照图7,可以实现增量式封包部署的示例性计算机系统700可以包括处理器772,该处理器772经由北桥电路与系统700的其余部分通信,所述北桥电路也称为″存储器集线器″774。在一些实施例中,所述处理器772可以充当自引导处理器并且可以执行加载操作系统的引导代码。除向处理器772提供前端总线(Front Side Bus-FSB)773之外,所述存储器集线器774还可以提供到存储器总线775、诸如加速图形端口(Accelerated Graphics Port-AGP)总线或其它改进型图形总线之类的图形总线777和集线器链路781的接口。系统存储器776可以耦合于存储器总线775,并且图形加速器778可以耦合于图形总线777。所述图形加速器778来提供信号以控制显示器780。
所述存储器集线器774可以经由集线器链路781与南桥电路或输入/输出(I/O)集线器782进行通信。所述I/O集线器782可以提供到诸如工业标准结构(ISA)总线之类的I/O扩展总线783和诸如外设部件互连(Peripheral Component Interconnect-PCI)总线之类的外围总线788或包括PCIx、PCI快速的改进型总线等等的接口。I/O控制器784耦合于I/O扩展总线783并且接收来自鼠标785和键盘786的输入。I/O控制器784还可以控制软盘驱动器787的操作。作为示例,驱动器控制器790可以耦合于PCI总线788并且可以控制光盘只读存储器(CD-ROM)驱动器792和硬盘驱动器794的操作。在一个实施例中,可以将磁盘驱动程序730、I/O重定向磁盘组件732、OS 720和文件系统726存储在硬盘驱动器794上。照此,硬盘驱动器794可以充当启动设备。
在一个实施例中,计算机系统700例如包括非易失性存储器796以用来存储包含重定向固件798的一个或多个固件模块。在一个实施例中,重定向固件功能由可扩展固件接口(extensible firmwareinterface-EF1)结合系统抽象层(system abstraction layer-SAL)固件和处理器抽象层(processer avstraction layer-PAL)固件提供。在一个实施例中,所述非易失性存储器796包括快闪存储器、电可擦可编程只读存储器(EEPROM)或任何其它适当的非易失性存储器。在一个实施例中,非易失性存储器存储与磁盘驱动程序730相通信的重定向固件798以便响应于从服务器计算机接收的增量式封包创建命令和映射表来生成增量式封包。
因此,在一个实施例中,磁盘I/O监视和保护组件与系统供应相结合以作为增量式封包部署的新解决手段。如一个实施例中所述,黄金计算机上的例如参照图1和3举例说明的磁盘I/O和监视组件提供了改变的通知;例如,哪些块被修改和什么是初始内容和新的内容。依照一个实施例,当这个新的内容被提交到非黄金计算机(以及黄金计算机)的磁盘存储器时,递增地供应所述改变以维护统一环境。
可选的实施例
将会认识到的是,对于其它实施例,可以使用不同的系统配置。例如,尽管所述系统700包括单个CPU 772,但是对于其它实施例,多处理器系统(其中一个或多个处理器在对上述的CPU 772的配置和操作上是类似的)可以得益于各种实施例的增量式封包部署。此外,对于其它的实施例,可以使用不同类型的系统或不同类型的计算机系统,例如像如像服务器、工作站、台式计算机系统、博弃系统、内嵌式计算机系统、刀片式(blade)服务器等等。
已经公开了实施例和最佳方式,而当保持在下列权利要求所限定的实施例的范围内时,可以对所公开的实施例作出修改和变形。

Claims (30)

1.一种方法,包括:
重定向所检测的磁盘输入/输出I/O请求以保持磁盘存储器的内容;
根据重定向到未使用的磁盘存储器块的磁盘I/O写请求来创建增量式封包;以及
将增量式封包部署到至少一个客户端计算机。
2.如权利要求1所述的方法,其中重定向进一步包括:
检测至少一个发到磁盘存储器的目的地块的I/O写请求;
选择未使用的磁盘存储器块作为重定向块以便存储与所检测到的I/O写请求相关联的写数据;
在映射表中生成一个条目以包含磁盘存储器的目的地块的地址和所选的重定向的磁盘存储器块的地址;以及
在所选的重定向的磁盘存储器块内存储与所检测到的写请求相关联的写数据。
3.如权利要求2所述的方法,进一步包括:
检测由操作系统发出的读请求;
判断与该读请求相关联的磁盘存储器的读块是否被列在映射表中;
如果磁盘存储器的读块被列在映射表中,则利用与映射表内的读块相关联的目的地块来完成该请求。
4.如权利要求1所述的方法,其中在重定向之前,所述方法进一步包括:
收集关于未使用的磁盘存储器块的信息;以及
生成隐藏磁盘分区以存储用于重定向所检测的I/O请求以维护磁盘存储器的原始内容的信息。
5.如权利要求1所述的方法,进一步包括:
检测检查点请求;
生成备份以保持磁盘存储器的内容;
提交重定向到未使用的磁盘存储器块的磁盘I/O写请求;以及
根据所检测的检查点请求来创建新的检查点以作为默认检查点。
6.一种方法,包括:
根据所检测的、重定向到未使用的磁盘存储器块以保持磁盘存储器内容的磁盘输入/输出I/O写请求来生成增量式封包;以及
将增量式封包传送到服务器计算机以便将所述增量式封包部署到至少一个客户端计算机。
7.如权利要求6所述的方法,其中生成增量式封包包括:
在系统启动期间检测指示所检测的、重定向到未使用的磁盘存储器块的磁盘I/O写请求的数据结构;以及
形成软件分发封包以至少包含每个所检测的I/O写请求的目的地块、每个所检测的I/O写请求的所选的重定向块以及与每个所检测的I/O写请求相关联的数据。
8.如权利要求6所述的方法,其中在生成软件分发封包之前,所述方法包括:
在所选的机器上安装系统;
在所选的机器上加载磁盘I/O监视和保护组件;
该机器根据在机器的磁盘存储器内加载的脏块信息生成增量式磁盘映像;
将机器的文件增量式磁盘映像上载到管理服务器;以及
管理服务器将机器的增量式磁盘映像部署到至少一个客户端计算机。
9.如权利要求6所述的方法,进一步包括:
向初始的目的地存储器块提交所重定向的磁盘写请求,以便提交所检测的I/O写请求。
10.如权利要求6所述的方法,进一步包括:
在系统重启之后,检测包含所检测的、重定向到未使用的磁盘存储器块的磁盘I/O请求的列表的数据结构;
如果所检测的I/O写请求被标识为每日使用,则忽略所检测的数据结构;以及
如果所检测的数据结构被标识为经授权的系统配置改变,则提交所检测的I/O写请求。
11.一种包括机器可访问介质的产品,所述机器可访问介质具有相关的数据,当这些数据被访问时令机器执行下列操作,包括:
检测发到磁盘存储器的目的地块的至少一个I/O写请求;
将所检测的I/O写请求从磁盘存储器的目的地块重定向到所选的重定向的磁盘存储器块,其中重定向所检测的写请求以保持磁盘存储器的内容;
在映射表中生成一个条目以包含磁盘存储器的目的地块的地址和所重定向的磁盘存储器块的地址;以及
响应于接收到的命令进行重启以便根据映射表来执行磁盘恢复。
12.如权利要求11所述的产品,其中在重定向之前,所述机器进一步执行下列操作,包括:
收集关于未使用的磁盘存储器块的信息;以及
生成隐藏磁盘分区以存储用于重定向所检测的I/O请求以维护磁盘存储器的原始内容的信息。
13.如权利要求11所述的产品,其中所述机器可访问介质进一步包括令所述机器执行下列操作的数据,所述操作包括:
检测由操作系统发出的读请求;
判断与该读请求相关联的磁盘存储器的读块是否被列在映射表内;
如果磁盘存储器的读块被列在映射表上,则利用与映射表内的读块相关联的目的地块来完成所述请求。
14.如权利要求11所述的产品,其中检测写请求进一步令所述机器执行下列操作,包括:
中断由操作系统发出的至少一个写操作;
判断向其发出写操作的磁盘存储器的目的地块;以及
选择重定向的磁盘存储器块,其中所检测的写请求将被重定向。
15.如权利要求11所述的产品,其中映射表中的条目包括目的地块的逻辑块地址和重定向块的逻辑块地址。
16.一种包括机器可访问介质的产品,所述机器可访问介质具有相关的数据,当这些数据被访问时,导致机器执行下列操作包括:
中断由操作系统发出的至少一个写操作;
将写操作从磁盘存储器的目的地块重定向到所重定向的未使用的磁盘存储器块以保持磁盘存储器的内容;
记录磁盘存储器的目的地块和所重定向的磁盘存储器块的地址;以及
响应于接收到的命令进行重启以便根据所重定向的写操作执行磁盘恢复。
17.如权利要求16所述的产品,其中在中断写操作之前,所述机器进一步执行下列操作包括:
收集关于未使用的磁盘存储器块的信息;以及
生成隐藏磁盘分区以存储用于重定向所检测的I/O请求以维护磁盘存储器的原始内容的信息。
18.如权利要求16所述的产品,其中记录地址进一步令所述机器执行下列操作,包括:
在映射表中生成一个条目,所述条目包括向其发出I/O写请求的磁盘存储器的目的地块的逻辑块地址和所重定向的磁盘存储器块的逻辑块地址。
19.如权利要求18所述的产品,其中所述机器可访问介质进一步包含令所述机器执行下列操作的数据,所述操作包括:
检测由操作系统发出的读请求;
判断与读请求相关联的磁盘存储器的读块是否被列在映射表内;
如果磁盘存储器的读块被列在映射表上,则利用与映射表内的读块相关联的目的地块完成所述请求。
20.一种包括机器可访问介质的产品,所述机器可访问介质具有关联数据,当这些数据被访问时会导致所述机器执行下列操作,包括:
检测包含所检测的、重定向到未使用的磁盘存储器块以保持磁盘存储器的内容的磁盘I/O写请求的至少一个条目的数据结构;
更新磁盘存储器以便向磁盘存储器提交列在所检测的数据结构中的所检测的I/O写请求;
根据所检测的数据结构来生成增量式封包;以及
将所述增量式封包传送到服务器计算机以便将该增量式封包部署到至少一个客户端计算机。
21.如权利要求20所述的产品,其中所述机器可访问介质进一步包含令机器执行下列操作的数据,所述操作包括:
在系统重启之后检测包含所检测的、重定向到未使用的磁盘存储器块的磁盘I/O写请求的列表的数据结构;
如果所检测的I/O写请求被标识为每日使用,则忽略所检测的数据结构;以及
如果所列出的I/O写请求是被标识为经授权的系统配置改变的所检测的数据结构,则提交所检测的I/O写请求。
22.如权利要求20所述的产品,其中所述机器可访问介质进一步包含令所述机器执行下列操作的数据,所述操作包括:
检测检查点请求;
生成备份以保持磁盘存储器的内容;
提交重定向到未使用的磁盘存储器块的磁盘I/O写请求;以及
根据所检测的检查点请求来创建新的检查点以作为默认检查点。
23.如权利要求20所述的产品,其中所述机器可访问介质进一步包含令机器执行下列操作的数据,所述操作包括:
接收命令以创建增量式封包;以及
重新启动所述机器以便向磁盘存储器提交所重定向的I/O写请求;以及
生成增量式封包。
24.如权利要求20所述的产品,其中所述机器可访问介质进一步包含令机器执行下列操作的数据,所述操作包括:
根据所检测的数据结构、基于脏块信息来创建增量式磁盘映像。
25.一种系统,包括:
多个客户端计算机;和
服务器计算机,所述服务器计算机向具有新安装软件的所选客户端计算机发送命令以生成增量式封包,所选计算机根据所检测的、重定向到未使用的磁盘存储器块的磁盘输入/输出(I/O)写请求来生成增量式封包,并且将所述增量式封包传送到服务器计算机以便将所述封包部署到至少一个客户端计算机。
26.如权利要求25所述的系统,其中所述多个计算机进一步包括:
存储固件模块的非易失性存储器,所述固件模块用于检测检查点请求,用于生成备份以保持磁盘存储器的内容,用于提交重定向到未使用的磁盘存储器块的磁盘I/O写请求,并且用于根据所检测的检查点请求来创建新的检查点以作为默认检查点。
27.如权利要求25所述的系统,其中所述多个客户端计算机中的每一个进一步包括:
存储固件模块的非易失性存储器,所述固件模块用于在系统重启之后检测包含所检测的、重定向到未使用的磁盘存储器块的磁盘I/O写请求的列表的数据结构,用于如果所检测的I/O写请求被标识为每日使用则忽略所检测的数据结构,并且用于如果由所检测的数据结构指示的变化被标识为经授权的系统配置改变则提交所检测的I/O写请求。
28.如权利要求25所述的系统,其中所述多个客户端计算机中的每一个包括:
磁盘存储器;和
耦合于磁盘存储器的磁盘控制器,所述磁盘控制器包括驱动程序,用于中断由操作系统发出的至少一个写操作,用于将写操作从磁盘存储器的目的地块重定向到所重定向的未使用的磁盘存储器块以保持磁盘存储器的内容,并且用于记录目的地块和重定向块的地址。
29.如权利要求28所述的系统,其中所述驱动程序进一步用于在映射表中生成一个条目,所述条目包含磁盘存储器的目的地块的逻辑块地址和磁盘存储器的重定向块的逻辑块地址。
30.如权利要求29所述的系统,其中所述驱动程序进一步用于检测由操作系统发出的读请求,以判断与所述读请求相关联的磁盘存储器的读块是否被列在映射表内,并且如果磁盘存储器的读块被列在映射表上,则利用与映射表内的读块相关联的目的地块来完成所述请求。
CN2005100809483A 2004-12-29 2005-06-20 用于增量式封包部署的设备和方法 Expired - Fee Related CN1797342B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/027,870 US7613875B2 (en) 2004-12-29 2004-12-29 Apparatus and method for incremental package deployment
US11/027870 2004-12-29

Publications (2)

Publication Number Publication Date
CN1797342A true CN1797342A (zh) 2006-07-05
CN1797342B CN1797342B (zh) 2010-05-26

Family

ID=36613110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005100809483A Expired - Fee Related CN1797342B (zh) 2004-12-29 2005-06-20 用于增量式封包部署的设备和方法

Country Status (2)

Country Link
US (3) US7613875B2 (zh)
CN (1) CN1797342B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916172A (zh) * 2010-08-17 2010-12-15 中国人民解放军国防科学技术大学 一种基于虚拟磁盘映像逻辑分割的按需软件分发方法
CN102609301A (zh) * 2012-01-13 2012-07-25 武汉噢易科技有限公司 给多个客户端快速部署软件的方法
US8316107B2 (en) 2006-09-11 2012-11-20 Intel Corporation Personalizing space in a network environment

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7613875B2 (en) * 2004-12-29 2009-11-03 Intel Corporation Apparatus and method for incremental package deployment
US7725608B2 (en) * 2005-06-30 2010-05-25 Intel Corporation Enabling and disabling device images on a platform without disrupting BIOS or OS
EP1960873B1 (en) * 2005-12-17 2013-02-27 Intel Corporation Installing and executing shared applications in shared folders
US8621165B1 (en) * 2008-12-08 2013-12-31 Symantec Corporation Method and apparatus for providing a volume image backup of selected objects
JP5324365B2 (ja) * 2009-09-11 2013-10-23 Necパーソナルコンピュータ株式会社 情報処理装置、情報処理システム、情報処理方法、プログラム及び記録媒体
US8832259B1 (en) * 2009-10-30 2014-09-09 Hewlett-Packard Development Company, L.P. Virtual service mode methods for network remote monitoring and managing system
WO2013095571A1 (en) * 2011-12-22 2013-06-27 Intel Corporation Method and apparatus to tunnel messages to storage devices by overloading read/write commands
EP2795513A4 (en) * 2011-12-22 2015-12-16 Intel Corp SYSTEMS AND METHODS FOR PROVIDING PROTECTION AGAINST MALICIOUS SOFTWARE ON STORAGE DEVICES
WO2013095573A1 (en) 2011-12-22 2013-06-27 Intel Corporation Activation and monetization of features built into storage subsystems using a trusted connect service back end infrastructure
JP5414814B2 (ja) * 2012-01-19 2014-02-12 インテル・コーポレーション ネットワーク環境におけるスペースのカスタマイズ
CN104965719B (zh) * 2014-06-26 2018-07-06 腾讯科技(深圳)有限公司 应用安装文件生成方法和装置
US9760410B2 (en) * 2014-12-12 2017-09-12 Intel Corporation Technologies for fast synchronization barriers for many-core processing
KR20170010574A (ko) 2015-07-20 2017-02-01 삼성전자주식회사 정보처리장치, 영상처리장치 및 그들의 제어방법
CN108089868B (zh) * 2016-11-21 2020-07-31 北京京东尚科信息技术有限公司 对智能设备上的项目进行升级的方法以及相关设备
US20190102262A1 (en) * 2017-09-29 2019-04-04 Intel Corporation Automated continuous checkpointing
US10754785B2 (en) 2018-06-28 2020-08-25 Intel Corporation Checkpointing for DRAM-less SSD
US11615022B2 (en) * 2020-07-30 2023-03-28 Arm Limited Apparatus and method for handling accesses targeting a memory

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860012A (en) * 1993-09-30 1999-01-12 Intel Corporation Installation of application software through a network from a source computer system on to a target computer system
US5799147A (en) * 1994-10-19 1998-08-25 Shannon; John P. Computer recovery backup method
EP1008048B1 (en) * 1997-08-29 2001-10-31 Hewlett-Packard Company Data backup and recovery systems
US6052531A (en) * 1998-03-25 2000-04-18 Symantec Corporation Multi-tiered incremental software updating
US6487718B1 (en) * 1999-03-31 2002-11-26 International Business Machines Corporation Method and apparatus for installing applications in a distributed data processing system
US6513093B1 (en) * 1999-08-11 2003-01-28 International Business Machines Corporation High reliability, high performance disk array storage system
KR100390853B1 (ko) * 2000-06-07 2003-07-10 차상균 주 메모리 트랜잭션 처리 시스템에서 병렬적 회복 연산을 위한 디퍼런셜 로깅 방법 및 장치
US7539828B2 (en) * 2000-08-08 2009-05-26 Faronics Corporation Method and system for automatically preserving persistent storage
US20030182414A1 (en) * 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US20020156877A1 (en) * 2001-04-23 2002-10-24 Lu James C. System and method for the duplication of a software system onto an appropriate target computer
US6944653B2 (en) * 2001-08-30 2005-09-13 Hewlett-Packard Development Company, L.P. Zero-click deployment of data processing systems
US20060047927A1 (en) * 2004-08-31 2006-03-02 Bin Xing Incremental provisioning of software
US7613875B2 (en) * 2004-12-29 2009-11-03 Intel Corporation Apparatus and method for incremental package deployment

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8316107B2 (en) 2006-09-11 2012-11-20 Intel Corporation Personalizing space in a network environment
CN101916172A (zh) * 2010-08-17 2010-12-15 中国人民解放军国防科学技术大学 一种基于虚拟磁盘映像逻辑分割的按需软件分发方法
CN101916172B (zh) * 2010-08-17 2011-08-24 中国人民解放军国防科学技术大学 一种基于虚拟磁盘映像逻辑分割的按需软件分发方法
CN102609301A (zh) * 2012-01-13 2012-07-25 武汉噢易科技有限公司 给多个客户端快速部署软件的方法
CN102609301B (zh) * 2012-01-13 2014-03-19 武汉噢易科技有限公司 给多个客户端快速部署软件的方法

Also Published As

Publication number Publication date
CN1797342B (zh) 2010-05-26
US20110258286A1 (en) 2011-10-20
US7613875B2 (en) 2009-11-03
US7991950B2 (en) 2011-08-02
US20060143362A1 (en) 2006-06-29
US20090254723A1 (en) 2009-10-08
US8225037B2 (en) 2012-07-17

Similar Documents

Publication Publication Date Title
CN1797342A (zh) 用于增量式封包部署的设备和方法
CN1113291C (zh) 自动配置生成
US9671967B2 (en) Method and system for implementing a distributed operations log
US10073703B2 (en) Booting an operating system of a system using a read ahead technique
US7606842B2 (en) Method of merging a clone file system with an original file system
EP3312714B1 (en) Distributed data parallel method for reclaiming space
US8291409B2 (en) Updating virtual machine with patch on host that does not have network access
Wang et al. Hybrid checkpointing for MPI jobs in HPC environments
US8589913B2 (en) Tracking block-level writes
US8386428B2 (en) Method and system for fast generation of file system snapshot bitmap in virtual environment
US20100082962A1 (en) Flash memory device for booting a computing device including embedded general purpose operating system
US20080104441A1 (en) Data processing system and method
US20120215998A1 (en) Deploying a copy of a disk image from source storage to target storage
CN1492323A (zh) 多处理器地址转换的高效仿真方法和系统
CN101154185A (zh) 软件运行时执行恢复与重放方法
US5692187A (en) Shadow mechanism having masterblocks for a modifiable object oriented system
US5819306A (en) Shadow mechanism for a modifiable object oriented system
CN102693188A (zh) 用于在可控运行时环境中进行基于硬件的动态逸出检测的方法和装置
CN1682193A (zh) 存储服务与系统
JP4874908B2 (ja) 情報処理システム、および監視方法
US20240152286A1 (en) Fast restart of large memory systems
Li et al. FREM: A fast restart mechanism for general checkpoint/restart
JP2004295889A (ja) データ処理システム内での処理タスクの実行を制御する方法および装置
CN1920786A (zh) 实现操作系统安全控制的系统及方法
Wang et al. Hybrid full/incremental checkpoint/restart for MPI jobs in HPC environments

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100526

Termination date: 20170620

CF01 Termination of patent right due to non-payment of annual fee