CN101802807A - 大规模联网系统中的软件部署 - Google Patents

大规模联网系统中的软件部署 Download PDF

Info

Publication number
CN101802807A
CN101802807A CN200880108196A CN200880108196A CN101802807A CN 101802807 A CN101802807 A CN 101802807A CN 200880108196 A CN200880108196 A CN 200880108196A CN 200880108196 A CN200880108196 A CN 200880108196A CN 101802807 A CN101802807 A CN 101802807A
Authority
CN
China
Prior art keywords
mirror image
server node
computer
server
node
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
CN200880108196A
Other languages
English (en)
Other versions
CN101802807B (zh
Inventor
C·T·伦茨梅尔
Y·A·哈利迪
A·英格尔
S·塞德
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 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN101802807A publication Critical patent/CN101802807A/zh
Application granted granted Critical
Publication of CN101802807B publication Critical patent/CN101802807B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

使用基于镜像的部署提供了在大规模联网系统内的各服务器节点的软件部署。在中央服务处提供大部分不可变的镜像并将其从该中央服务传送到各服务器节点。该镜像包括不可变的基本镜像和可写的且向基本部分提供角色专用和/或节点专用状态的增量镜像。在服务器节点从中央服务器接收到镜像时,服务器节点原样存储该镜像而不安装。服务器节点随后直接从所存储的镜像运行软件。

Description

大规模联网系统中的软件部署
背景
大规模联网系统是在用于运行应用程序和维护数据以用于商务和操作功能的各种环境中使用的常见系统。例如,数据中心可以提供各种web应用程序(例如,电子邮件服务、搜索引擎服务等)。大规模联网系统包括大量服务器节点,其中每一节点是物理机或在物理主机上运行的虚拟机。部分地由于这样的大规模系统中可包括的大量服务器节点,将软件(操作系统(OS)和应用程序)部署到各节点并在每一节点上维护该软件可以是耗时且昂贵的过程。尤其是软件通常在每一节点本地安装和升级,使得安装和更新专用于各单独节点。可能发生只能在在线供应和/或更新过程期间检测的多个故障。另外,在串行地升级并在本地修补机器时,可发生“位腐坏”。位腐坏指的是由于人类或软件错误而发生的本地软件状态(例如,操作系统配置状态)的改变。在该状态改变时,节点的行为变得不可预测。
概述
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的各实施例涉及向大规模联网系统内的各服务器节点部署软件。各实施例使用基于镜像的部署,其中大部分是不可变的镜像在中央服务处提供并从该中央服务传送到服务器节点。该镜像包括不可变的基本镜像和可写的且向基本部分提供角色专用和/或节点专用状态的增量镜像。在服务器节点从中央服务器接收到镜像时,服务器节点原样存储该镜像而不安装。服务器节点随后直接从所存储的镜像运行软件。
若干附图的简述
以下参考附图详细描述本发明,附图中:
图1是适用于实现本发明的示例性计算环境的框图;
图2是示出其中可以使用本发明各实施例的示例性系统的框图;
图3是根据本发明的一实施例的存储用于多个角色和多个版本的软件镜像的示例性节点上(on-node)高速缓存的框图;
图4是示出根据本发明的一实施例的用于向大规模联网系统中的服务器节点部署软件的方法的流程图;以及
图5是示出根据本发明的一实施例的用于向大规模联网系统中的服务器节点部署软件更新的方法的流程图。
详细描述
此处用细节来描述本发明的主题以满足法定要求。然而,描述本身并非旨在限制本专利的范围。相反,发明人设想所要求保护的主题还可结合其它当前或未来技术按照其他方式来具体化,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。此外,尽管术语“步骤”和/或“框”可在此处用于指示所采用的方法的不同元素,但这些术语不应被解读为意味着此处公开的各个步骤之中或之间有任何特定次序,除非是明确描述了各个步骤的次序并且仅当如此时才可如此来解读。
如上所示,本发明的各实施例使用基于镜像的部署来向服务器节点提供软件部署。如此处所使用的,“镜像”指的是任何被封闭的名字空间。
因此,在一个方面,本发明的一实施例针对一个或多个包含用于执行一种向大规模联网系统内的多个服务器节点部署软件的方法的计算机-可使用指令的计算机-可读介质。该方法包括在大规模联网系统内的中央服务处提供第一镜像。该第一镜像包括不可变部分和可写部分。该方法还包括将该第一镜像从中央服务传送到各服务器节点。该方法还包括在每一服务器节点处存储该第一镜像而不在每一服务器节点处执行该第一镜像的安装。该方法还包括在一个或多个服务器节点处直接从该第一镜像运行软件。
在本发明的另一实施例中,一个方面针对一个或多个包含用于执行一种向大规模联网系统中的多个服务器节点部署软件更新的方法的计算机-可使用指令的计算机可读介质。该方法包括通过将软件更新应用于先前镜像来生成新镜像。该方法还包括将该新镜像从中央服务传送到各服务器节点,其中这些节点中的至少一部分正在运行先前镜像。该方法还包括在各服务器节点处存储该新镜像而不安装该新镜像。该方法还包括在一个或多个服务器节点处直接从该新镜像运行软件。
本发明的又一方面针对一种包括中央服务的系统,该中央服务包括用于存储镜像和将该镜像传送到多个服务器节点的一个或多个计算设备。该镜像具有不可变部分和可写部分。各服务器节点被配置成从中央服务接收镜像,存储该镜像而不安装该镜像,以及直接从该镜像引导。
在简要描述了本发明的概览之后,以下描述其中可实现本发明的各方面的示例性操作环境,以便为本发明各方面提供一般上下文。一开始具体参考图1,示出用于实现本发明的实施例的示例性操作环境,并将其笼统地指定为计算设备100。计算设备100只是合适的计算环境的一个示例,并且不旨在对本发明的使用范围或功能提出任何限制。也不应该将计算设备100解释为对所示出的任一组件或其组合有任何依赖性或要求。
本发明可以在计算机代码或机器可使用指令的一般上下文中描述,机器可使用指令包括由计算机或诸如个人数据助理或其他手持式设备等其他机器执行的诸如程序模块等的计算机可执行指令。一般而言,包括例程、程序、对象、组件、数据结构等的程序模块指的是执行特定任务或实现特定抽象数据类型的代码。本发明可以在各种系统配置中实施,这些系统配置包括手持式设备、消费电子产品、通用计算机、更专用计算设备等等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。
参考图1,计算设备100包括直接或间接耦合以下设备的总线110:存储器112、一个或多个处理器114、一个或多个呈现组件116、输入/输出端口118、输入/输出组件120、和说明性电源122。总线110可以是一条或多条总线(诸如地址总线、数据总线、或其组合)。尽管为了清楚起见用线条示出了图1的各框,但是在实际上,各组件的轮廓并不是那样清楚,并且按比喻性地来说,线条更精确地将是灰色的和模糊的。例如,可以将诸如显示设备等呈现组件认为是I/O(输入/输出)组件。同样,处理器具有存储器。可以认识到,这是本领域的特性,并且重申,图1的图示只是例示可结合本发明的一个或多个实施例来使用的示例性计算设备。在诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等分类之间不加以区别,因为它们全部都被认为是在图1的范围之内的并且以“计算设备”来引用。
计算设备100通常包括各种计算机可读介质。计算机可读介质可以是能由计算设备100访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法和技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算设备100访问的任何其它介质。通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。术语“已调制数据信号”指的是以在信号中编码信息的方式设定或更改其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其它无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
存储器112包括易失性和/或非易失性存储器形式的计算机存储介质。存储器可以是可移动的、不可移动的、或其组合。示例性硬件设备包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备100包括从诸如存储器112或I/O组件120等各种实体读取数据的一个或多个处理器。呈现组件116向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等等。
I/O端口118允许计算设备100逻辑上耦合至包括I/O组件120的其他设备,其中某些设备可以是内置的。说明性组件包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、无线设备等等。
现在参考图2,提供了示出根据本发明的一实施例的便于向各服务器节点部署软件的系统200的框图。应当理解,此处所描述的这一安排以及其他安排只是作为示例来阐明的。作为所示安排和元素(例如机器、接口、功能、次序、以及功能分组等)的补充或替换,可以使用其它安排和元素,并且某些元素可以一起省略。此外,此处所描述的许多元素是可以实现为分立或分布式组件或结合其它组件的、以及以任何合适的组合和在任何合适的位置的功能实体。此处描述为由一个或多个实体执行的各种功能可以由硬件、固件、和/或软件来执行。例如,各种功能可以由执行存储器中所存储的指令的处理器来执行。
系统200一般可包括中央服务202、服务器节点204、和网络206,以及其他未示出组件。系统200的各组件(包括中央服务202和服务器节点204)中的每一个组件可包括任何类型的计算设备,如参考图1描述的计算设备100。各组件可以经由网络206彼此通信,网络206包括但不限于一个或多个局域网(LAN)和/或广域网(WAN)。这样的联网环境常见于办公室、企业范围计算机网络、内联网和因特网中。应理解,可在本发明范围内的系统200内采用任何数量的中央服务、服务器节点、以及网络。另外,虽然未示出系统200的许多其他组件,但是本领域普通技术人员将会认识到这些组件和它们的互连是公知的。另外,关于系统200中的未示出组件的附加细节未在此处进一步披露。
中央服务202可包括用于管理对系统200内的服务器节点204的软件(操作系统和/或应用程序)进行部署的一个或多个计算设备(如图1的计算设备100)。中央服务202负责构建和存储镜像。另外,中央服务202负责将镜像传送到服务器节点204。
本发明的各实施例使用基于镜像的部署,这至少意味着两件事情。第一,向每一服务器节点204发送节点204要运行的软件的确切镜像。服务器节点204并不是首先从一个位置安装操作系统、随后可能从另一位置安装附加支持软件、并且最后从第三位置安装应用程序软件来组装其软件。相反,服务器节点204在一个包中接收其软件,已准备好运行。第二,服务器节点204直接从所部署的镜像来运行软件。节点204不只将该镜像用作在机器上安装软件的源,因为这将是耗时且易于出错的。相反,服务器节点204实际上从该镜像引导操作系统。
通过向每一服务器节点204部署至少两个不同的镜像(即,操作系统镜像和应用程序镜像),应用程序状态与操作系统状态被分开。这些镜像是在中央服务202处分开构建的并在服务器节点204处保持分开。应用程序需要知道该分开。因此,在一实施例中,应用程序在其上运行的操作系统镜像显现与应用程序镜像不同的驱动器名。该特定的驱动器名安排不是预定义的,但可通过配置对应用程序可用。
各实施例中的每一软件镜像(例如,操作系统镜像或应用程序镜像)包括基本镜像和增量(delta)镜像。基本镜像是不可变的(或只读的),而增量镜像是可写的。增量镜像用于向基本镜像提供角色专用和/或节点专用状态。在部署之前在中央服务202处和/或在部署之后在单独的服务器节点204处可以将角色专用和/或节点专用数据写到增量镜像。基本镜像和增量镜像可以在中央服务202处分开维护并在部署时合并。
将操作系统和应用程序分成分开镜像结合使用基本镜像和增量镜像,意味着节点运行的“镜像”实际上包括一组若干物理文件。因此,“镜像”指的是整个文件集合(所有基本镜像和增量镜像)。“操作系统镜像”或“应用程序镜像”指的是文件集合,它们分别构成操作系统镜像或应用程序镜像盘集合(基本镜像和增量镜像)。
在本发明的一个实施例中,这些镜像是使用微软
Figure GPA00001066720700061
虚拟硬盘(VHD)格式来存储的,该格式指定可位于封装在单个文件内的本机主机文件系统上的虚拟机硬盘。VHD格式提供有差异的盘,其中单个逻辑盘在两个文件中维护:“基本”VHD文件和“增量”VHD文件。在本发明的各实施例中,共同状态位于基本VHD中,而按角色或按节点状态位于增量VHD中。基本VHD是只读的,并且对模拟盘进行的任何改变都被写到增量VHD中。虽然在此明确提到VHD格式,但本领域技术人员将认识到,在本发明各实施例的范围内可以使用其他打包技术(例如,WIM)。
根据本发明的各实施例的基于镜像的部署允许以若干方式进行快速且可靠的服务器供应,包括以下:
·服务器节点204上没有安装阶段,所以一旦将镜像部署到服务器节点204,则节点204可以快速引导到所分配的软件。
·镜像在中央服务202处集中组装,并且在这一阶段期间发生的任何错误可比在按节点安装期间发生的错误更易于检测。
·服务器节点204直接从镜像引导,使得在节点204运行它们当前角色的同时在后台部署新镜像(更新或不同的角色)成为可能。一旦新镜像就位,则节点204可以在最小停机时间的情况下引导到它们的新角色。在一些情况下,旧镜像保持缓存在节点204上,并且在必要的情况下节点204可在最小停机时间的情况下回退到它们的先前状态。
·所部署的镜像中的大多数内容在所有节点204之间是相同的,并且使用增量镜像将按角色状态和/或按节点状态与共同状态分开。这允许共同状态(基本镜像)经由多播同时发送到运行该版本的操作系统或应用程序镜像的所有物理节点204。这减少部署所花费的网络带宽并使得装配(roll-out)更快地发生。
·类似地,在虚拟化主机上,大多数操作系统数据在所有所分配的客(guest)节点之间是相同的,并且只需要向主机发送操作系统基本VHD的一个副本。
基于镜像的部署还帮助减少“位腐坏”问题,因为不需要在服务器节点204上进行修补。相反,在需要安装修补或应用程序的新版本可用时,在中央服务202处创建镜像的新版本并随后循环运行到服务器节点204。这允许在部署之前检测修补错误并确保所有服务器节点204运行相同的位集合。在正常操作的过程中,如果给定节点的状态以某种方式损坏(例如,因为盘错误),则中央服务202可以重新部署该镜像并使节点204快速且可靠地返回到已知良好的状态(因为它具有关于节点的“真实”状态)。
在各实施例中,基于镜像的部署还使得能够通过对物理和虚拟节点使用相同的镜像格式来直接部署到这两种节点,从而允许将基本镜像部署到所有服务器节点204。为了向虚拟节点部署镜像,将该镜像发送到物理服务器节点204上的根分区,并随后在将该镜像作为模拟物理盘来连接而运行该虚拟机。为了向物理服务器节点204部署镜像,将镜像发送到在节点204上运行的维护操作系统,并且该镜像(作为文件)被存储在物理盘上。随后直接从在盘上本机可用的镜像重新引导服务器节点204。例如,在一些实施例中,使用使镜像作为盘本机地可用的特殊驱动程序来从镜像直接重新引导服务器节点204。
因为基于镜像的部署将静态状态从动态状态中分开,所以通过只写一次基本镜像(即,当在中央服务202处构建该镜像时)并隔离对增量镜像的写,可以(基本上)减少或避免闪存驱动器的磨损极限问题。在一些实现中,基本镜像可以只写一次,并且增量镜像可以保存在RAM中,每次都以清白板开始。这将一起避免磨损极限问题,并将是用于无状态前端服务器节点的合适的操作模式。
基于镜像的部署还使得能够使用无盘操作模式。例如,在一个实施例中,服务器节点204可以使用远程盘镜像(例如,使用因特网小型计算机系统接口(iSCSI))。在另一实施例中,服务器节点204从RAM引导,从而将镜像作为RAM盘。
如上所示,中央服务202包括用于构建和提供可部署镜像的组件。镜像由中央服务202离线地(即,不在活动的服务器节点204上)构建。
对于操作系统镜像,中央服务202最初构建操作系统基本镜像。在一些实施例中,可以构建多个操作系统镜像(例如,不同的版本)。通过添加角色专用状态在操作系统基本镜像上构建服务角色。角色专用状态的示例包括启用操作系统可任选组件、添加外部软件、以及修改操作系统设置。中央服务202通过创建与操作系统镜像分开但链接到它的增量镜像来使该角色专用状态可用于部署。共同的操作系统基本镜像和角色专用增量镜像一起成为从中央服务202发送到服务器节点204的操作系统镜像。
在一实施例中,构建增量镜像的过程涉及离线地配置镜像并随后在离线虚拟机上引导该镜像。该虚拟机引导用于运行在一次离线配置期间排队的“在线动作”,而非在每一服务器节点204上。
在一些实施例中,中央服务202还允许节点专用操作系统配置设置,例如应用程序开发者所指定的设置。另外,还存在中央服务器202所生成的节点专用操作系统配置设置。这些设置与操作系统镜像一起被部署到服务器节点204,并且在节点204处被应用于角色专用增量镜像的副本以创建节点专用增量镜像。节点204直接从该镜像引导操作系统。
应用程序镜像同样包括基本镜像和增量镜像。在一实施例中,应用程序开发者可以提供描述其二进制和配置设置的清单,并且该描述可用于构建该应用程序的基本镜像。节点专用应用程序配置设置连同应用程序基本镜像一起部署到服务器节点204,并且在节点204处被应用来创建节点专用增量镜像。服务器节点204直接从该镜像运行应用程序。
在操作系统和应用程序修补和更新可用时,可以不在各单独的服务器节点204处应用这些修补和更新。相反,在中央服务202处离线地应用这些修补和更新以创建新的部署镜像,该新镜像随后被部署到服务器节点204。通过在中央服务202处创建新镜像并随后将该镜像部署到服务器节点204,该过程帮助避免在服务器节点204上失败的或部分地应用修补的问题。
如上所示,在中央服务202处构建的镜像被部署到服务器节点204。换言之,镜像可以从中央服务202传送到系统200内的各节点204。在一些实施例中,因为基本镜像不包含每-节点状态,所以许多服务器节点204可以使用相同的操作系统和应用程序基本镜像。这意味着在需要同时供应许多节点204时,需要多次复制同一文件。为减少网络带宽使用,本发明的各实施例使用多播协议来向许多节点同时发送该文件。
在服务器节点204处接收到镜像后,节点204保存该镜像而不安装。这允许服务器节点204维护所部署的镜像的高速缓存。换言之,因为镜像不是在服务器节点204上安装,而是改为以镜像形式保留,所以可能在服务器节点204上高速缓存多个镜像的集合(例如,操作系统和/或应用程序的不同版本)。该设计在系统中提供灵活性并允许各种功能。
首先,允许服务器节点204包括一个镜像高速缓存以提供在后台装配新镜像的能力。具体地,在操作系统或应用程序的新版本准备好部署时,可以在这些节点204运行先前版本的同时将该新版本复制到目的地节点204。这意味着复制时间不是停机时间,并且在网络带宽是问题的情况下能够以缓慢的步调进行复制,或者复制可以在网络负载间歇期间发生(如上所述,还可以通过使用多播传输来节省网络带宽)。镜像下载由镜像激活而被解耦,这允许确认已下载的镜像并对决定何时将节点切换到镜像的新版本给予更多自由。
在一些实施例中,在部署镜像的新版本时,在服务器节点204上的镜像高速缓存中保留先前版本。如果在装配序列期间发生问题——例如,如果在1000个服务器节点204中的500个上激活镜像之后,注意到服务不能正常操作,则通过重新引导到先前镜像,已经前进的节点204可以非常快速地回退。不需要再次下载先前镜像或重新安装先前镜像。一旦问题被修复,则可以重复装配。(注意,如果修复不涉及对新镜像的改变,则不需要重新复制新镜像。)
各实施例还便于将服务器节点204回退到最后已知的良好状态。对节点204上的操作系统卷或应用程序卷所做的改变被存储在增量镜像中。在激活角色之前可以保存原始增量镜像,并且如果因为改变发生问题,则可以恢复原始增量镜像而不必从部署服务器(即,中央服务202)复制。
另外,本发明的各实施例允许服务器节点204使用高速缓存的镜像来容易地切换角色。具体地,可以在给定服务器节点204上高速缓存对应于不止一个角色的镜像。因此,将节点204从一个角色切换到另一个角色与重新引导节点204一样简单。进行切换不存在重新安装成本。
各实施例还便于使用校验和来标识对基本镜像的改变。基本镜像在服务器节点204上是只读的,因为任何改变都被写到增量镜像中。这意味着由于错误(例如,盘错误)而发生的对基本镜像的改变可以通过校验和来检测。如果发生这样的改变,可以将基本镜像重新复制到服务器节点204。
仅作为示例而非限制,图3示出节点上镜像高速缓存300的内容的示例的框图。在所示示例中,两个角色的镜像被存储在高速缓存中。例如,角色1可允许服务器节点提供电子邮件服务而角色2允许服务器节点提供搜索引擎服务。如上所示,通过高速缓存这两个角色的镜像,服务器节点可以通过简单地重新引导该节点来容易且快速地从一个角色切换到另一个。另外,高速缓存中存在角色1的两个版本(版本1.0和1.1)而只存在角色2的一个版本(版本1.1)。如上所述,通过高速缓存特定角色的多个版本,在必要的情况下服务器节点可快速地回退到先前版本。例如,如果角色1的版本1.1是活动角色,则服务器节点可通过重新引导来快速回退到角色1的版本1.0,因为先前版本存储在高速缓存中。
如图3所示,角色1的版本1.0包括操作系统1.0版本基本镜像302、操作系统1.0版本增量镜像304、应用程序11.0版本基本镜像306、以及应用程序11.0版本增量镜像308。角色1的版本1.1包括操作系统1.1版本基本镜像312、操作系统1.1版本增量镜像314、应用程序11.1版本基本镜像316、以及应用程序11.1版本增量镜像318。角色2的版本1.1包括操作系统1.1版本基本镜像312、操作系统1.1版本增量镜像324、应用程序21.1版本基本镜像326、以及应用程序21.1版本增量镜像328。注意,角色1的版本1.1和角色2的版本1.1都使用操作系统1.1版本基本镜像312,所以只在高速缓存中存储了该镜像的一个副本并且可以共享。
转向图4,提供了示出示例性方法400的流程图,该方法用于根据本发明的一实施例向大规模联网系统中的服务器节点部署软件。最初,如在框402处所示,在诸如图2的中央服务202等中央服务处提供软件镜像。该软件镜像可包括操作系统镜像或应用程序镜像。如上所述,该软件镜像包括只读的基本镜像和可写的增量镜像。增量镜像旨在通过添加角色专用和/或节点专用状态来在基本镜像上构建。在一些实施例中,中央服务可以维护多个操作系统镜像和多个应用程序镜像,并管理各镜像到系统内的各服务器节点(例如,图2的服务器节点204)的部署。
如在框404处所示,将镜像从中央服务传送到针对该镜像的目的地服务器节点。具体地,在中央服务处的镜像的副本被发送到目的地服务器节点中的每一个。在服务器节点从中央服务接收到镜像时,该服务器节点保存该镜像而不安装,如在框406处所示。如上所述,这与传统上将软件部署到服务器节点显著不同。传统上,在每一服务器节点处安装软件,这涉及从该软件“解包”各单独的文件并将每一单独的文件复制到盘。相反,在本发明的各实施例中,镜像被保存到盘而不安装。因此,软件的各单独的文件不作为单独的文件存在于服务器节点上而相反只是作为镜像的一部分存在。
服务器节点接着直接从该镜像运行软件,如在框408处所示。在操作系统镜像的情况下,服务器节点直接从操作系统镜像引导。在应用程序镜像的情况下,服务器节点直接从该镜像运行应用程序。因此,服务器节点不是只将镜像用作用于在机器上安装软件的源,而是改为实际上在操作系统镜像的情况下从该镜像引导操作系统和在应用程序镜像的情况下从该镜像运行应用程序。
如上所示,在软件修补/更新可用时,与在各单独的节点处应用相对照,在中央服务处(例如,图2的中央服务202)将这些修补/更新应用于镜像。图5中示出了根据本发明的一实施例的用于应用软件更新的示例性方法500。最初,如在框502处所示,在中央服务处接收软件更新。在中央服务处,该软件更新被应用于先前镜像的副本以离线地生成新镜像,如在框504处所示。在一实施例中,为生成该新镜像,复制基本镜像的当前版本,并且安装该新的基本镜像。应用软件更新,并随后卸载新的基本镜像。还可以重新生成角色专用增量镜像。该新的基本镜像和重新生成的角色专用增量镜像一起构成所生成的具有软件更新的新镜像。
注意,在各实施例中,镜像可以增强版本化。因此,除新镜像之外,可以在中央服务处维护先前镜像。因此,可以在中央服务处维护操作系统镜像或应用程序镜像的多个版本,中央服务可以管理各个版本到不同的服务器节点的,取决于每一服务器节点的角色的部署。
当在中央服务处基于软件更新生成新镜像后,将该新镜像的副本传送到系统内的每一目的地服务器节点(例如,图2的服务器节点204),如在框506处所示。服务器节点可以在运行先前镜像的同时接收该新镜像,从而在镜像传输期间防止任何停机时间。服务器节点将新镜像保存到盘而不安装,如在框508处所示。因此,除先前在服务器节点上高速缓存的任何镜像(包括服务器节点当前正在运行的镜像)之外,该新镜像作为原样镜像被保存到盘。
如在框510处所示,服务器节点接着直接从新镜像运行软件。在操作系统镜像的情况下,服务器节点直接从该新操作系统镜像重新引导。在应用程序镜像的情况下,服务器节点直接从该镜像运行应用程序。
如可理解的,本发明的各实施例便于到大规模联网系统内的多个服务器节点的镜像部署和管理。参考各具体实施例描述了本发明,各具体实施例在所有方面都旨在是说明性的而非限制性的。在不背离本发明范围的情况下各替换实施例对本发明所属领域的普通技术人员将变得显而易见。
从前述内容可知,本发明很好地适用于实现前述的所有目的和目标,并且具有对于该系统和方式是显而易见且固有的其它优点。也可理解特定的特征和子组合是有用的,并且可以加以利用而无需参考其它特征和子组合。这由权利要求书所构想并在其范围之内。

Claims (20)

1.一个或多个包含用于执行一种将软件部署到大规模联网系统内的多个服务器节点的方法的计算机可使用指令的计算机可读介质,所述方法包括:
在所述大规模联网系统内的中央服务处提供第一镜像(402),所述第一镜像包括不可变部分和可写部分;
将所述第一镜像从所述中央服务传送到所述多个服务器节点(404);
在每一服务器节点处存储所述第一镜像而不在每一服务器节点处执行所述第一镜像的安装(406);以及
在一个或多个服务器节点处从所述第一镜像直接运行所述软件(408)。
2.如权利要求1所述的一个或多个计算机可读介质,其特征在于,所述第一镜像包括操作系统镜像和应用程序镜像中的至少一个。
3.如权利要求1所述的一个或多个计算机可读介质,其特征在于,所述第一镜像的不可变部分包括基本镜像且所述第一镜像的可写部分包括增量镜像。
4.如权利要求3所述的一个或多个计算机可读介质,其特征在于,所述增量镜像包括角色专用数据。
5.如权利要求1所述的一个或多个计算机可读介质,其特征在于,在一个或多个服务器节点处直接从所述第一镜像运行所述软件包括直接从存储在所述一个或多个服务器节点中的每一个处的所述第一镜像引导所述一个或多个服务器节点。
6.如权利要求1所述的一个或多个计算机可读介质,其特征在于,所述方法还包括在所述中央服务处提供第二镜像,所述第二镜像包括不可变部分和可写部分。
7.如权利要求6所述的一个或多个计算机可读介质,其特征在于,所述第一镜像便于服务器节点以第一角色操作且所述第二镜像便于服务器节点以第二角色操作。
8.如权利要求6所述的一个或多个计算机可读介质,其特征在于,所述第一镜像的不可变部分是所述第二镜像的不可变部分。
9.如权利要求6所述的一个或多个计算机可读介质,其特征在于,在所述中央服务处提供的所述第二镜像包括通过将软件更新应用于所述第一镜像来在所述中央服务处生成所述第二镜像。
10.如权利要求6所述的一个或多个计算机可读介质,其特征在于,所述方法还包括:
将所述第二镜像传送到至少一个服务器节点;以及
在所述至少一个服务器节点处存储所述第二镜像而不执行所述第二镜像的安装。
11.如权利要求10所述的一个或多个计算机可读介质,其特征在于,在所述至少一个服务器节点继续运行所述第一镜像的同时将所述第二镜像传送到所述至少一个服务器节点。
12.如权利要求10所述的一个或多个计算机可读介质,其特征在于,所述方法还包括在所述在至少一个服务器节点处直接从所述第二镜像运行所述软件。
13.如权利要求12所述的一个或多个计算机可读介质,其特征在于,所述至少一个服务器节点高速缓存所述第一镜像和所述第二镜像,并且其中所述方法还包括将所述至少一个服务器节点的操作从所述第二镜像切换到所述第一镜像。
14.一个或多个包含用于执行一种将软件更新部署到大规模联网系统中的多个服务器节点的方法的计算机可使用指令的计算机可读介质,所述方法包括:
通过将所述软件更新应用于先前镜像来生成新镜像(504),其中所述新镜像包括不可变部分和可写部分;
将所述新镜像从中央服务传送到所述多个服务器节点(506),其中所述多个节点中的至少一部分正在运行所述先前镜像;
将所述新镜像存储在所述多个服务器节点处而不安装所述新镜像(508);以及
在一个或多个服务器节点处从所述新镜像直接运行软件(510)。
15.如权利要求14所述的一个或多个计算机可读介质,其特征在于,所述新镜像包括操作系统镜像和应用程序镜像中的至少一个。
16.如权利要求14所述的一个或多个计算机可读介质,其特征在于,所述至少一个服务器节点高速缓存所述新镜像和所述先前镜像,并且其中所述方法还包括将所述至少一个服务器节点的操作从所述新镜像切换回所述先前镜像。
17.如权利要求14所述的一个或多个计算机可读介质,其特征在于,生成所述新镜像包括将所述软件更新应用于所述先前镜像的不可变部分。
18.一种系统,包括:
中央服务(202),所述中央服务包括用于存储镜像并将所述镜像传送到多个服务器节点的一个或多个计算设备,所述镜像具有不可变部分和可写部分;以及
多个服务器节点(204),所述多个服务器节点被配置成从所述中央服务接收所述镜像,存储所述镜像而不安装所述镜像,以及直接从所述镜像引导。
19.如权利要求18所述的系统,其特征在于,所述中央服务存储多个镜像并管理镜像到所述多个服务器节点的部署。
20.如权利要求18所述的系统,其特征在于,所述镜像包括操作系统镜像和应用程序镜像中的至少一个。
CN2008801081969A 2007-09-21 2008-08-25 大规模联网系统中的软件部署 Active CN101802807B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/859,469 2007-09-21
US11/859,469 US9262366B2 (en) 2007-09-21 2007-09-21 Software deployment in large-scale networked systems
PCT/US2008/074231 WO2009042327A2 (en) 2007-09-21 2008-08-25 Software deployment in large-scale networked systems

Publications (2)

Publication Number Publication Date
CN101802807A true CN101802807A (zh) 2010-08-11
CN101802807B CN101802807B (zh) 2012-10-10

Family

ID=40472900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008801081969A Active CN101802807B (zh) 2007-09-21 2008-08-25 大规模联网系统中的软件部署

Country Status (10)

Country Link
US (1) US9262366B2 (zh)
EP (1) EP2191385B1 (zh)
JP (1) JP5319685B2 (zh)
KR (1) KR101569945B1 (zh)
CN (1) CN101802807B (zh)
AU (1) AU2008305449B2 (zh)
BR (1) BRPI0814845B1 (zh)
CA (1) CA2695469C (zh)
RU (1) RU2495481C2 (zh)
WO (1) WO2009042327A2 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419753A (zh) * 2010-09-28 2012-04-18 联想(北京)有限公司 信息处理设备、信息处理方法和信息处理系统
CN104380255A (zh) * 2012-05-24 2015-02-25 国际商业机器公司 虚拟机独占缓存
CN104618453A (zh) * 2015-01-05 2015-05-13 广州杰赛科技股份有限公司 一种软件分发方法、系统及服务器
CN104639614A (zh) * 2015-01-05 2015-05-20 广州杰赛科技股份有限公司 一种软件分发方法、系统及服务器
CN105830017A (zh) * 2013-11-19 2016-08-03 电子湾有限公司 零停机时间部署和回滚
CN106201502A (zh) * 2016-07-06 2016-12-07 中国银联股份有限公司 一种跨主机应用程序部署方法及装置
CN107483590A (zh) * 2017-08-22 2017-12-15 郑州云海信息技术有限公司 云数据系统中云化管理系统和方法
CN107577475A (zh) * 2017-08-22 2018-01-12 清华大学 一种数据中心集群系统的软件包管理方法及系统
CN116635917A (zh) * 2020-10-13 2023-08-22 埃尔构人工智能有限责任公司 用于改进的智能设施数据传送的系统和方法

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8601467B2 (en) * 2006-10-03 2013-12-03 Salesforce.Com, Inc. Methods and systems for upgrading and installing application packages to an application platform
US8239662B1 (en) * 2008-03-20 2012-08-07 Google Inc. Network based operating system across devices
US9442850B1 (en) * 2008-03-25 2016-09-13 Blue Coat Systems, Inc. Efficient directory refresh operations in wide area file systems
US8386757B1 (en) * 2009-02-13 2013-02-26 Unidesk Corporation Managed desktop system
US9940208B2 (en) * 2009-02-27 2018-04-10 Red Hat, Inc. Generating reverse installation file for network restoration
US8434090B2 (en) 2009-04-02 2013-04-30 Novell, Inc. Optimally managing computing images for deployment
US8448219B2 (en) * 2009-04-23 2013-05-21 Novell, Inc. Securely hosting workloads in virtual computing environments
US8375382B2 (en) * 2009-05-13 2013-02-12 International Business Machines Corporation Enabling parallel websphere runtime versions
CN102082780B (zh) 2009-11-30 2014-03-05 国际商业机器公司 安全验证的方法和装置
US8789155B2 (en) * 2009-12-07 2014-07-22 Microsoft Corporation Pure offline software appliance configuration
US8347071B2 (en) * 2010-02-09 2013-01-01 Microsoft Corporation Converting virtual deployments to physical deployments to simplify management
US8549272B2 (en) 2010-02-10 2013-10-01 Dell Products L.P. Information handling system image management deployment of virtual machine images to physical information handling systems
US8762508B2 (en) * 2010-03-11 2014-06-24 Microsoft Corporation Effectively managing configuration drift
US8533701B2 (en) * 2010-03-15 2013-09-10 Microsoft Corporation Virtual machine image update service
US8898668B1 (en) * 2010-03-31 2014-11-25 Netapp, Inc. Redeploying baseline virtual machine to update a child virtual machine by creating and swapping a virtual disk comprising a clone of the baseline virtual machine
US9015707B2 (en) 2010-09-02 2015-04-21 International Business Machines Corporation Virtual machine rapid provisioning system
US8544007B2 (en) * 2010-09-13 2013-09-24 Microsoft Corporation Customization, deployment and management of virtual and physical machine images in an enterprise system
US9069620B2 (en) 2010-10-20 2015-06-30 Microsoft Technology Licensing, Llc Creating and deploying service-ready virtual hard disks
JP5681465B2 (ja) * 2010-12-02 2015-03-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体
US20120159471A1 (en) * 2010-12-21 2012-06-21 Microsoft Corporation Multi-machine deployment and configuration of multi-tiered applications
US9354852B2 (en) 2010-12-23 2016-05-31 Microsoft Technology Licensing, Llc Satisfying application dependencies
US9489224B2 (en) * 2010-12-28 2016-11-08 Nec Corporation Network virtualization system, physical node, and virtual interface identification method in virtual machine
US20120260246A1 (en) * 2011-04-06 2012-10-11 International Business Machines Corporation Software application installation
US10075505B2 (en) 2011-05-30 2018-09-11 International Business Machines Corporation Transmitting data including pieces of data
JP5566342B2 (ja) * 2011-06-08 2014-08-06 株式会社エヌ・ティ・ティ・データ コンピュータシステム、仮想マシンデータ配置方法およびプログラム
JP5175957B2 (ja) * 2011-08-09 2013-04-03 株式会社東芝 情報処理装置及びクライアント管理方法
US9654896B2 (en) * 2011-09-22 2017-05-16 International Business Machines Corporation Smart online services presence in a cellular network
US20130111018A1 (en) * 2011-10-28 2013-05-02 International Business Machines Coporation Passive monitoring of virtual systems using agent-less, offline indexing
WO2013066286A1 (en) 2011-10-31 2013-05-10 Hewlett-Packard Development Company, L.P. Remote software depolyment across a network
CN102611734A (zh) * 2011-12-16 2012-07-25 广州市品高软件开发有限公司 一种基于云计算的镜像实例启动方法及装置
US9116735B2 (en) * 2012-03-07 2015-08-25 Microsoft Technology Licensing, Llc Offline provisioning of virtual machines
US20140068040A1 (en) * 2012-09-04 2014-03-06 Bank Of America Corporation System for Enabling Server Maintenance Using Snapshots
US9244693B2 (en) 2012-11-05 2016-01-26 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for booting multiple servers from snapshots of an operating system installation image while reducing access to unmodified portions of the installation image and reducing latencies between server ports
US9766912B1 (en) 2012-11-27 2017-09-19 Amazon Technologies, Inc. Virtual machine configuration
US8924351B2 (en) 2012-12-14 2014-12-30 Lsi Corporation Method and apparatus to share a single storage drive across a large number of unique systems when data is highly redundant
US20140359213A1 (en) * 2013-05-31 2014-12-04 Microsoft Corporation Differencing disk improved deployment of virtual machines
FR3019336B1 (fr) * 2014-03-25 2016-03-25 Bull Sas Procede et dispositif de controle du changement de systeme d'exploitation dans des nœuds de service d'un calculateur haute performance
KR102227185B1 (ko) * 2014-10-20 2021-03-11 건국대학교 산학협력단 분산 플랫폼의 자동 구축 방법
EP3062223A1 (en) * 2015-02-26 2016-08-31 Agfa Healthcare A system and method for installing software with reduced downtime
CN105007326A (zh) * 2015-07-24 2015-10-28 中食安信(北京)信息咨询有限公司 一种远程动态部署系统及其方法
KR102568985B1 (ko) * 2016-06-22 2023-08-23 한국전자통신연구원 오프라인 가상 데스크탑 제공 장치, 오프라인 가상 데스크탑 단말 및 오프라인 가상 데스크탑 제공 방법
US10606450B2 (en) * 2016-06-24 2020-03-31 Accenture Global Solutions Limited Method and system for visual requirements and component reuse driven rapid application composition
KR101835431B1 (ko) * 2016-09-01 2018-03-09 주식회사 시큐아이 가상화 시스템에서 컨테이너의 데이터 업데이트 방법 및 그 장치
US10146519B2 (en) 2016-09-20 2018-12-04 Bluedata Software, Inc. Generation and deployment of scripts for large scale processing framework services
US10747520B2 (en) 2017-04-14 2020-08-18 Microsoft Technology Licensing, Llc Resource deployment using device analytics
KR102019487B1 (ko) * 2018-02-27 2019-11-04 주식회사 시큐아이 가상화 시스템에서 컨테이너 업데이트 방법 및 그 장치
KR102019486B1 (ko) * 2018-02-27 2019-09-06 주식회사 시큐아이 가상화 시스템에서 컨테이너 업데이트 방법 및 그 장치
KR102019485B1 (ko) * 2018-02-27 2019-09-06 주식회사 시큐아이 가상화 시스템에서 컨테이너 업데이트 방법 및 그 장치
JP7052565B2 (ja) 2018-05-29 2022-04-12 京セラドキュメントソリューションズ株式会社 シート後処理装置およびそれを備えた画像形成システム
US10868853B2 (en) 2018-06-08 2020-12-15 Verizon Patent And Licensing Inc. System and method for image file generation and management
US10990372B2 (en) * 2018-09-20 2021-04-27 Microsoft Technology Licensing, Llc Updating an edge computing device
US11385881B2 (en) * 2020-10-31 2022-07-12 Nutanix, Inc. State-driven virtualization system imaging
US20220377533A1 (en) * 2021-05-19 2022-11-24 Mehmood Zafarullahkhan System of mobile device operating system and apps delivery service
US20220413825A1 (en) * 2021-06-29 2022-12-29 EMC IP Holding Company LLC Immutable edge devices
US12019522B2 (en) 2022-01-20 2024-06-25 Pure Storage, Inc. Container recovery layer prioritization
US11928452B2 (en) * 2022-02-03 2024-03-12 Red Hat, Inc. Reducing the size of image files usable for deploying software in computing environments

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5291595A (en) * 1989-05-22 1994-03-01 Martins Augusto B Batch/application program processing
US5452454A (en) * 1991-12-10 1995-09-19 Digital Equipment Corporation Generic remote boot for networked workstations by creating local bootable code image
US5842811A (en) * 1997-02-21 1998-12-01 Johnson; David B. Confined space manhole sign system
US6496839B2 (en) * 1998-06-12 2002-12-17 Microsoft Corporation Persistent names for logical volumes
US6141010A (en) * 1998-07-17 2000-10-31 B. E. Technology, Llc Computer interface method and apparatus with targeted advertising
US7000230B1 (en) * 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US7051326B2 (en) * 2000-12-13 2006-05-23 International Business Machines Corporation Code image distribution in a multi-node network of processors
US7213065B2 (en) * 2001-11-08 2007-05-01 Racemi, Inc. System and method for dynamic server allocation and provisioning
KR100391952B1 (ko) 2001-11-21 2003-07-23 최백준 Aip시스템에서 서버측 어플리케이션을 이용한 직접파일 실행 방법
US20030121024A1 (en) * 2001-12-13 2003-06-26 Microsoft Corporation System and method for building a runtime image from components of a software program
US8336044B2 (en) * 2002-10-09 2012-12-18 Rpx Corporation Method and system for deploying a software image
US7664984B2 (en) * 2002-10-09 2010-02-16 Xpoint Technologies, Inc. Method and system for updating a software image
US7503043B2 (en) * 2003-09-05 2009-03-10 International Business Machines Corporation Method of building dynamic installation packages using a declarative authoring tool
US7802084B2 (en) * 2003-11-26 2010-09-21 Hewlett-Packard Development Company, L.P. System and method for management and installation of operating system images for computers
US7583457B2 (en) * 2004-03-22 2009-09-01 Microsoft Corporation RAM disk boot of optical media image
US8190714B2 (en) * 2004-04-15 2012-05-29 Raytheon Company System and method for computer cluster virtualization using dynamic boot images and virtual disk
JP4353003B2 (ja) * 2004-06-25 2009-10-28 日本電気株式会社 インストール方式およびインストール方法ならびに配布装置およびそのプログラム
US7610477B2 (en) * 2004-09-15 2009-10-27 Microsoft Corporation Deploying and receiving software over a network susceptible to malicious communication
KR100471420B1 (ko) 2004-09-17 2005-03-14 심영보 관리대상 컴퓨터에 대한 소프트웨어 원격설치 방법
US8387037B2 (en) * 2005-01-28 2013-02-26 Ca, Inc. Updating software images associated with a distributed computing system
US7516206B2 (en) * 2005-01-28 2009-04-07 Cassatt Corporation Management of software images for computing nodes of a distributed computing system
US20060184937A1 (en) * 2005-02-11 2006-08-17 Timothy Abels System and method for centralized software management in virtual machines
US8370819B2 (en) * 2005-03-25 2013-02-05 Microsoft Corporation Mechanism to store information describing a virtual machine in a virtual disk image
JP4863154B2 (ja) * 2005-03-29 2012-01-25 日本電気株式会社 起動イメージ提供システム及びその動作方法、ブートノード装置、ブートサーバ装置並びにその動作プログラム
US7653894B2 (en) * 2005-05-04 2010-01-26 International Business Machines Corporation Method and apparatus for classifying and modeling operating system image for data center management
US20070006205A1 (en) * 2005-05-18 2007-01-04 Michael Kennedy System for virtual image migration
US7574491B2 (en) * 2005-07-29 2009-08-11 Scalent Systems Virtual data center for network resource management
US8949364B2 (en) * 2005-09-15 2015-02-03 Ca, Inc. Apparatus, method and system for rapid delivery of distributed applications
US8745124B2 (en) * 2005-10-31 2014-06-03 Ca, Inc. Extensible power control for an autonomically controlled distributed computing system
US7764683B2 (en) * 2005-12-16 2010-07-27 Oracle America, Inc. Reliable multicast operating system (OS) provisioning
US20080052702A1 (en) * 2006-07-07 2008-02-28 Inventec Multimedia & Telecom Corporation Firmware update method and system utilizing digital broadcasting system
JP4900805B2 (ja) * 2007-02-21 2012-03-21 株式会社日立製作所 Osイメージのデプロイメントマシン及び方法
WO2008117500A1 (ja) * 2007-03-27 2008-10-02 Nec Corporation 仮想マシン運用システム、仮想マシン運用方法およびプログラム
US8966474B2 (en) * 2007-04-30 2015-02-24 Hewlett-Packard Development Company, L.P. Managing virtual machines using shared image

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419753A (zh) * 2010-09-28 2012-04-18 联想(北京)有限公司 信息处理设备、信息处理方法和信息处理系统
CN102419753B (zh) * 2010-09-28 2014-02-12 联想(北京)有限公司 信息处理设备、信息处理方法和信息处理系统
CN104380255A (zh) * 2012-05-24 2015-02-25 国际商业机器公司 虚拟机独占缓存
CN105830017A (zh) * 2013-11-19 2016-08-03 电子湾有限公司 零停机时间部署和回滚
CN104618453A (zh) * 2015-01-05 2015-05-13 广州杰赛科技股份有限公司 一种软件分发方法、系统及服务器
CN104639614A (zh) * 2015-01-05 2015-05-20 广州杰赛科技股份有限公司 一种软件分发方法、系统及服务器
CN106201502A (zh) * 2016-07-06 2016-12-07 中国银联股份有限公司 一种跨主机应用程序部署方法及装置
CN107483590A (zh) * 2017-08-22 2017-12-15 郑州云海信息技术有限公司 云数据系统中云化管理系统和方法
CN107577475A (zh) * 2017-08-22 2018-01-12 清华大学 一种数据中心集群系统的软件包管理方法及系统
CN107577475B (zh) * 2017-08-22 2020-02-07 清华大学 一种数据中心集群系统的软件包管理方法及系统
CN116635917A (zh) * 2020-10-13 2023-08-22 埃尔构人工智能有限责任公司 用于改进的智能设施数据传送的系统和方法

Also Published As

Publication number Publication date
KR20100068392A (ko) 2010-06-23
CN101802807B (zh) 2012-10-10
BRPI0814845B1 (pt) 2019-05-07
WO2009042327A2 (en) 2009-04-02
WO2009042327A3 (en) 2009-05-22
EP2191385A2 (en) 2010-06-02
JP2010541044A (ja) 2010-12-24
CA2695469C (en) 2017-04-11
AU2008305449B2 (en) 2012-08-09
EP2191385B1 (en) 2016-11-16
BRPI0814845A2 (pt) 2015-01-27
CA2695469A1 (en) 2009-04-02
US20090083404A1 (en) 2009-03-26
JP5319685B2 (ja) 2013-10-16
RU2010110588A (ru) 2011-09-27
EP2191385A4 (en) 2012-04-04
AU2008305449A1 (en) 2009-04-02
KR101569945B1 (ko) 2015-11-18
US9262366B2 (en) 2016-02-16
RU2495481C2 (ru) 2013-10-10

Similar Documents

Publication Publication Date Title
CN101802807B (zh) 大规模联网系统中的软件部署
US8156301B1 (en) Method and apparatus for synchronizing a physical machine with a virtual machine while the virtual machine is operational
CN102591675B (zh) 使用共享存储块管理多软件镜像的方法和系统
CN100449524C (zh) 维护基于组件的软件产品
CN101821727B (zh) 管理更新以创建虚拟机复制品
CN101443748B (zh) 将机器转换为虚拟机
CN102834822B (zh) 由虚拟机共享的群集的快速-完整备份
CN100547551C (zh) 不同类型操作系统中使用通用预安装环境的方法和系统
CN103098016B (zh) 基于文件系统备份的去重
RU2483349C2 (ru) Поэтапная, облегченная система резервного копирования
US8489552B1 (en) Generic granular restore of application data from a volume image backup
CN102193817B (zh) 简化物理和虚拟部署的管理
US10684844B2 (en) Making and using functional exploitation information in performing software or firmware updates
CN102597983A (zh) 使用元数据虚拟硬盘驱动器和差分虚拟硬盘驱动器进行备份
CN102929665B (zh) 用于驱动安装的系统
CN102200921A (zh) 智能引导设备选择和恢复
CN103988177A (zh) 基于维护寄存器的离线虚拟机的维护
JP5284604B2 (ja) 過渡状態情報を格納するための方法、システムおよびコンピュータ・プログラム
US8448133B2 (en) Software development, deployment and evolution system, method and program product
EP2648092B1 (en) Updating method and multi-domain embedded system
CN105630428A (zh) 一种用于数据通信的方法和系统
US20110113412A1 (en) Object linkage device for linking objects in statically linked executable program file, method of linking objects, and computer readable storage medium storing program thereof
US20070079279A1 (en) Embedded device with software registry
JP4353003B2 (ja) インストール方式およびインストール方法ならびに配布装置およびそのプログラム
US20070234000A1 (en) Method and system for dynamic management of a utility partition in a pre-operating system environment

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150428

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150428

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.