大规模联网系统中的软件部署的制作方法

文档序号:6478486阅读:208来源:国知局
专利名称:大规模联网系统中的软件部署的制作方法
大规模联网系统中的软件部署背景大规模联网系统是在用于运行应用程序和维护数据以用于商务和操作功能的各 种环境中使用的常见系统。例如,数据中心可以提供各种web应用程序(例如,电子邮件服 务、搜索引擎服务等)。大规模联网系统包括大量服务器节点,其中每一节点是物理机或在 物理主机上运行的虚拟机。部分地由于这样的大规模系统中可包括的大量服务器节点,将 软件(操作系统(OS)和应用程序)部署到各节点并在每一节点上维护该软件可以是耗时 且昂贵的过程。尤其是软件通常在每一节点本地安装和升级,使得安装和更新专用于各单 独节点。可能发生只能在在线供应和/或更新过程期间检测的多个故障。另外,在串行地 升级并在本地修补机器时,可发生“位腐坏”。位腐坏指的是由于人类或软件错误而发生的 本地软件状态(例如,操作系统配置状态)的改变。在该状态改变时,节点的行为变得不可 预测。概述提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概 念。该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定 所要求保护的主题的范围。本发明的各实施例涉及向大规模联网系统内的各服务器节点部署软件。各实施例 使用基于镜像的部署,其中大部分是不可变的镜像在中央服务处提供并从该中央服务传送 到服务器节点。该镜像包括不可变的基本镜像和可写的且向基本部分提供角色专用和/或 节点专用状态的增量镜像。在服务器节点从中央服务器接收到镜像时,服务器节点原样存 储该镜像而不安装。服务器节点随后直接从所存储的镜像运行软件。若干附图的简述以下参考附图详细描述本发明,附图中

图1是适用于实现本发明的示例性计算环境的框图;图2是示出其中可以使用本发明各实施例的示例性系统的框图;图3是根据本发明的一实施例的存储用于多个角色和多个版本的软件镜像的示 例性节点上(on-node)高速缓存的框图;图4是示出根据本发明的一实施例的用于向大规模联网系统中的服务器节点部 署软件的方法的流程图;以及图5是示出根据本发明的一实施例的用于向大规模联网系统中的服务器节点部 署软件更新的方法的流程图。详细描述此处用细节来描述本发明的主题以满足法定要求。然而,描述本身并非旨在限制 本专利的范围。相反,发明人设想所要求保护的主题还可结合其它当前或未来技术按照其 他方式来具体化,以包括不同的步骤或类似于本文中所描述的步骤的步骤组合。此外,尽管 术语“步骤”和/或“框”可在此处用于指示所采用的方法的不同元素,但这些术语不应被 解读为意味着此处公开的各个步骤之中或之间有任何特定次序,除非是明确描述了各个步骤的次序并且仅当如此时才可如此来解读。如上所示,本发明的各实施例使用基于镜像的部署来向服务器节点提供软件部 署。如此处所使用的,“镜像”指的是任何被封闭的名字空间。因此,在一个方面,本发明的一实施例针对一个或多个包含用于执行一种向大规 模联网系统内的多个服务器节点部署软件的方法的计算机-可使用指令的计算机-可读介 质。该方法包括在大规模联网系统内的中央服务处提供第一镜像。该第一镜像包括不可变 部分和可写部分。该方法还包括将该第一镜像从中央服务传送到各服务器节点。该方法还 包括在每一服务器节点处存储该第一镜像而不在每一服务器节点处执行该第一镜像的安 装。该方法还包括在一个或多个服务器节点处直接从该第一镜像运行软件。在本发明的另一实施例中,一个方面针对一个或多个包含用于执行一种向大规模 联网系统中的多个服务器节点部署软件更新的方法的计算机-可使用指令的计算机可读 介质。该方法包括通过将软件更新应用于先前镜像来生成新镜像。该方法还包括将该新镜 像从中央服务传送到各服务器节点,其中这些节点中的至少一部分正在运行先前镜像。该 方法还包括在各服务器节点处存储该新镜像而不安装该新镜像。该方法还包括在一个或多 个服务器节点处直接从该新镜像运行软件。本发明的又一方面针对一种包括中央服务的系统,该中央服务包括用于存储镜像 和将该镜像传送到多个服务器节点的一个或多个计算设备。该镜像具有不可变部分和可写 部分。各服务器节点被配置成从中央服务接收镜像,存储该镜像而不安装该镜像,以及直接 从该镜像引导。在简要描述了本发明的概览之后,以下描述其中可实现本发明的各方面的示例性 操作环境,以便为本发明各方面提供一般上下文。一开始具体参考图1,示出用于实现本发 明的实施例的示例性操作环境,并将其笼统地指定为计算设备100。计算设备100只是合适 的计算环境的一个示例,并且不旨在对本发明的使用范围或功能提出任何限制。也不应该 将计算设备100解释为对所示出的任一组件或其组合有任何依赖性或要求。本发明可以在计算机代码或机器可使用指令的一般上下文中描述,机器可使用指 令包括由计算机或诸如个人数据助理或其他手持式设备等其他机器执行的诸如程序模块 等的计算机可执行指令。一般而言,包括例程、程序、对象、组件、数据结构等的程序模块指 的是执行特定任务或实现特定抽象数据类型的代码。本发明可以在各种系统配置中实施, 这些系统配置包括手持式设备、消费电子产品、通用计算机、更专用计算设备等等。本发明 也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实施。参考图1,计算设备100包括直接或间接耦合以下设备的总线110 存储器112、一 个或多个处理器114、一个或多个呈现组件116、输入/输出端口 118、输入/输出组件120、 和说明性电源122。总线110可以是一条或多条总线(诸如地址总线、数据总线、或其组 合)。尽管为了清楚起见用线条示出了图1的各框,但是在实际上,各组件的轮廓并不是那 样清楚,并且按比喻性地来说,线条更精确地将是灰色的和模糊的。例如,可以将诸如显示 设备等呈现组件认为是1/0(输入/输出)组件。同样,处理器具有存储器。可以认识到, 这是本领域的特性,并且重申,图1的图示只是例示可结合本发明的一个或多个实施例来 使用的示例性计算设备。在诸如“工作站”、“服务器”、“膝上型计算机”、“手持式设备”等分 类之间不加以区别,因为它们全部都被认为是在图1的范围之内的并且以“计算设备”来引用。计算设备100通常包括各种计算机可读介质。计算机可读介质可以是能由计算 设备100访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。 作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介 质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方 法和技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限 于,RAM、ROM、EEPR0M、闪存或其它存储器技术、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处分开维护并在部署时合并。将操作系统和应用程序分成分开镜像结合使用基本镜像和增量镜像,意味着节点 运行的“镜像”实际上包括一组若干物理文件。因此,“镜像”指的是整个文件集合(所有基 本镜像和增量镜像)。“操作系统镜像”或“应用程序镜像”指的是文件集合,它们分别构成 操作系统镜像或应用程序镜像盘集合(基本镜像和增量镜像)。在本发明的一个实施例中,这些镜像是使用微软⑧虚拟硬盘(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处所示,服务器节点接着直接从新镜像运行软件。在操作系统镜像的 情况下,服务器节点直接从该新操作系统镜像重新引导。在应用程序镜像的情况下,服务器 节点直接从该镜像运行应用程序。如可理解的,本发明的各实施例便于到大规模联网系统内的多个服务器节点的镜 像部署和管理。参考各具体实施例描述了本发明,各具体实施例在所有方面都旨在是说明 性的而非限制性的。在不背离本发明范围的情况下各替换实施例对本发明所属领域的普通 技术人员将变得显而易见。从前述内容可知,本发明很好地适用于实现前述的所有目的和目标,并且具有对于该系统和方式是显而易见且固有的其它优点。也可理解特定的特征和子组合是有用的, 并且可以加以利用而无需参考其它特征和子组合。这由权利要求书所构想并在其范围之 内。
权利要求
一个或多个包含用于执行一种将软件部署到大规模联网系统内的多个服务器节点的方法的计算机可使用指令的计算机可读介质,所述方法包括在所述大规模联网系统内的中央服务处提供第一镜像(402),所述第一镜像包括不可变部分和可写部分;将所述第一镜像从所述中央服务传送到所述多个服务器节点(404);在每一服务器节点处存储所述第一镜像而不在每一服务器节点处执行所述第一镜像的安装(406);以及在一个或多个服务器节点处从所述第一镜像直接运行所述软件(408)。
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所述的一个或多个计算机可读介质,其特征在于,在所述至少一个 服务器节点继续运行所述第一镜像的同时将所述第二镜像传送到所述至少一个服务器节点o
12.如权利要求10所述的一个或多个计算机可读介质,其特征在于,所述方法还包括 在所述在至少一个服务器节点处直接从所述第二镜像运行所述软件。
13.如权利要求12所述的一个或多个计算机可读介质,其特征在于,所述至少一个服 务器节点高速缓存所述第一镜像和所述第二镜像,并且其中所述方法还包括将所述至少一 个服务器节点的操作从所述第二镜像切换到所述第一镜像。
14.一个或多个包含用于执行一种将软件更新部署到大规模联网系统中的多个服务器 节点的方法的计算机可使用指令的计算机可读介质,所述方法包括通过将所述软件更新应用于先前镜像来生成新镜像(504),其中所述新镜像包括不可 变部分和可写部分;将所述新镜像从中央服务传送到所述多个服务器节点(506),其中所述多个节点中的 至少一部分正在运行所述先前镜像;将所述新镜像存储在所述多个服务器节点处而不安装所述新镜像(508);以及在一个或多个服务器节点处从所述新镜像直接运行软件(510)。
15.如权利要求14所述的一个或多个计算机可读介质,其特征在于,所述新镜像包括 操作系统镜像和应用程序镜像中的至少一个。
16.如权利要求14所述的一个或多个计算机可读介质,其特征在于,所述至少一个服 务器节点高速缓存所述新镜像和所述先前镜像,并且其中所述方法还包括将所述至少一个 服务器节点的操作从所述新镜像切换回所述先前镜像。
17.如权利要求14所述的一个或多个计算机可读介质,其特征在于,生成所述新镜像 包括将所述软件更新应用于所述先前镜像的不可变部分。
18.一种系统,包括中央服务(202),所述中央服务包括用于存储镜像并将所述镜像传送到多个服务器节 点的一个或多个计算设备,所述镜像具有不可变部分和可写部分;以及多个服务器节点(204),所述多个服务器节点被配置成从所述中央服务接收所述镜像, 存储所述镜像而不安装所述镜像,以及直接从所述镜像引导。
19.如权利要求18所述的系统,其特征在于,所述中央服务存储多个镜像并管理镜像 到所述多个服务器节点的部署。
20.如权利要求18所述的系统,其特征在于,所述镜像包括操作系统镜像和应用程序 镜像中的至少一个。
全文摘要
使用基于镜像的部署提供了在大规模联网系统内的各服务器节点的软件部署。在中央服务处提供大部分不可变的镜像并将其从该中央服务传送到各服务器节点。该镜像包括不可变的基本镜像和可写的且向基本部分提供角色专用和/或节点专用状态的增量镜像。在服务器节点从中央服务器接收到镜像时,服务器节点原样存储该镜像而不安装。服务器节点随后直接从所存储的镜像运行软件。
文档编号G06F15/16GK101802807SQ200880108196
公开日2010年8月11日 申请日期2008年8月25日 优先权日2007年9月21日
发明者A·英格尔, C·T·伦茨梅尔, S·塞德, Y·A·哈利迪 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1