CN104011677A - 利用流技术在多个目标上部署软件映像 - Google Patents

利用流技术在多个目标上部署软件映像 Download PDF

Info

Publication number
CN104011677A
CN104011677A CN201280061514.7A CN201280061514A CN104011677A CN 104011677 A CN104011677 A CN 104011677A CN 201280061514 A CN201280061514 A CN 201280061514A CN 104011677 A CN104011677 A CN 104011677A
Authority
CN
China
Prior art keywords
data processing
storage block
processing entities
selected storage
target data
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
CN201280061514.7A
Other languages
English (en)
Other versions
CN104011677B (zh
Inventor
C·马里内利
J·方迪格尼耶
伯纳多·帕斯托里尔利
L·皮切蒂
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 CN104011677A publication Critical patent/CN104011677A/zh
Application granted granted Critical
Publication of CN104011677B publication Critical patent/CN104011677B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]

Landscapes

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

Abstract

本发明公开涉及利用流技术在多个目标上部署软件映像。提出了一种解决方案,用于在目标数据处理系统的多个目标数据处理实体上部署来自源数据处理系统的软件映像,该软件映像包括多个可单独访问的存储块,其带有定义自举模块的存储块的预定义子集。相应的方法(400)包括步骤:把自举模块从源数据处理系统下载(406)到目标数据处理实体的一个主目标数据处理实体上;从自举模块引导(407-409)主目标数据处理实体,由此加载包含在自举模块中的流驱动器;通过流驱动器服务(410-422)访问主数据处理实体上的软件映像的选定存储块的每个请求;响应访问选定存储块的第一请求,流驱动器从源数据处理系统中下载(413-414)选定存储块并且把选定存储块存储(415-416)到主目标数据处理实体中,否则,在主目标数据处理实体中访问(417)选定存储块;给一组二级目标数据处理实体中的每一个提供(423-427)自举模块;从自举模块引导每个二级目标数据处理实体,由此加载流驱动器;及通过流驱动器服务(430-448)访问二级数据处理实体上的软件映像的另外选定存储块的每个请求;响应访问另外选定存储块的第一请求,流驱动器从主目标数据处理实体中检索(433-440)另外选定存储块并且把另外选定存储块存储(441-442)到二级目标数据处理实体中,否则,在二级目标数据处理实体中访问(443)另外选定存储块。

Description

利用流技术在多个目标上部署软件映像
技术领域
根据本发明的一个或多个实施例的解决方案涉及数据处理领域。更具体而言,该解决方案涉及软件映像(software image)的部署(deployment)。
背景技术
软件映像是现代数据处理系统的关键特征。一般而言,软件映像是封装驻留在(物理或虚拟)数据处理机上的文件的结构–例如,存储数据处理机的操作系统、应用程序、和/或数据。软件映像适于以非常简单的方式移动、拷贝、复制、保护和描绘。当软件映像用在在虚拟机(即,通过物理机的软件来模拟)中时,能清楚地感受到这些优点;的确,在这种情况下,通过简单地创建新的虚拟机然后从所期望的软件映像引导新的虚拟机,就可以按需提供任何种类的虚拟机。例如,在云计算中(其中给对它们的物理实现完全不知道的客户端计算机提供多种数据处理服务),这是特别有用的。
软件映像通常存储在源数据处理系统中(例如,源服务器),软件映像从源数据处理系统部署到多个目标数据处理实体(例如,在目标服务器上托管的目标虚拟机)上。目标服务器通常远离源服务器;因此,软件映像在目标服务器的目标虚拟机上的部署是相对漫长的过程。
为了处理这个问题,也已经提议使用一些用于向其它目标虚拟机提供软件映像(或至少其部分)的目标虚拟机-例如,如在US-A-2011/0231844、US-B-7788713和US-A-2011/0219372中所描述的(其完整的公开内容通过引用结合于此)。而且,也可能沿着从源服务器到目标服务器的网络路径高速缓存软件映像,用于由其它目标服务器对它的访问–例如,如在“Datacast:A Scalable and EfficientGroup Data Delivery Service for Data Centers,Chuanxiong Guo et al.(Microsoft Ltd.),Microsoft Technology report(MSR-TR-2011-76)”中所描述的(其完整的公开内容通过引用结合于此)。
在任何情况下,只有当全部软件映像已经部署在每个新目标虚拟机上之后(通常在几小时之后),每个新目标虚拟机才可用。
作为替代,可能只按需下载其存储块,而不是把整个软件映像都部署到每个目标虚拟机上;下载的存储块也可以临时地保存到本地高速缓存中并可能为它们接下来的使用而预取。特别地,如在“Optimizing Multi-Deployment On Clouds By Means Of Self-Adaptive Prefetching,Nicolae,Bogdan et al;Cappello,Franck et al.,Lecture Notes in Computer Science(including subseries LectureNotes In Artificial Intelligence and Lecture Notes in Bioinformatics),v6852LNCS,n PART1,p503-513,2011,Euro-Par2011ParallelProcessing–17thInternational Conference,Proceedings,SpringerVerlag”中所描述的(其完整的公开内容通过引用结合于此),当同一软件映像的多个实例在同一目标服务器上同时使用时,它们的存储块可以由遵循较快目标虚拟机之前的访问模式的较慢目标虚拟机来预取(因为它们的访问模式应该是非常类似的)。
但是,在上述技术中,软件映像的存储块被下载到每个目标虚拟机上仅用于其马上使用。因此,当这些存储块被使用之后、并且在任何情况下当目标虚拟机被关闭之后就消失了,结果为了其任何接下来的使用不得不重新下载它们(使得目标服务器永远不能从源服务器断开)。甚至当存储块存储在本地高速缓存中(可能利用存储块的预取)时,它们中只有少数保留在本地高速缓存中用于它们的重用(在任何情况下,利用最终被回收用于存储新存储块的本地高速缓存中最近最少使用的存储块)。
发明内容
一般而言,根据本发明的一个或多个实施例的解决方案是基于通过从已经下载软件映像的存储块的地方检索该存储块来部署软件映像的思想。
特别地,在独立权利要求中阐述了根据本发明特定实施例的解决方案的一个或多个方面,并且在从属权利要求中阐述了同一解决方案的有益特征,在此通过引用逐字并入所有权利要求的描述(参考根据对其每个其它方面应用“必要的变更(mutatis mutandis)”的本发明实施例的特定方面,提供任何有利的特征)。
更具体地,根据本发明实施例的解决方案的一个方面提供了用于在目标数据处理系统的多个目标数据处理实体上部署来自源数据处理系统的软件映像的方法,其中目标数据处理实体中的一个是主目标数据处理实体(其中软件映像的存储块是从源数据处理系统中下载的并且在它们的第一次访问时被存储在本地)并且其它的目标数据处理实体是二级目标数据处理实体(其中软件映像的存储块是从主目标数据处理实体中检索的并且在它们的第一次访问时被存储在本地)。
根据本发明实施例的解决方案的还一个方面提供了相应的计算机程序。
根据本发明实施例的解决方案的仍然还有的一个方面提供了相应的计算机程序产品。
根据本发明实施例的解决方案的一个不同的方面提供了相应的数据处理系统。
附图说明
根据本发明一个或多个实施例的解决方案及其进一步的特征与优点将参考以下详细描述得到最好的理解,以下详细描述仅仅是作为非限制性指示给出,需要结合附图来理解(其中,为简单起见,相应的元素用相同的或类似的标号来表示,并且不重复的对它们的解释,并且每个实体的名称一般用来同时表示其类型和其属性–诸如值、内容以及表示)。特别地:
图1示出了可以用来实践根据本发明实施例的解决方案的部署基础设施的图形表示,
图2A-图2I示出了根据本发明实施例的解决方案的应用的概念表示,
图3示出了可以用来实现根据本发明实施例的解决方案的主软件模块的框图,及
图4A-图4E示出了描述活动流程的活动图,其中活动流程关于根据本发明实施例的解决方案的实现。
具体实施方式
具体参考图1,示出了可以用来实践根据本发明实施例的解决方案的部署基础设施100的图形表示。
部署基础设施100具有基于网络105––例如局域网(LAN)––的分布式体系结构。多个数据处理系统(例如,服务器计算机)通过网络105彼此连接。特别地,源服务器计算机(或简称源服务器)110控制软件映像(例如,每个软件映像包括操作系统和若干个应用程序)在一个或多个目标服务器计算机(或简称目标服务器)115上的部署。
每个(源或目标)服务器110,115包括并联连接到系统总线120的若干个单元。详细地,一个或多个微处理器(μP)125控制服务器110,115的操作;RAM130被微处理器115用作工作存储器,并且ROM135存储用于服务器110,115的自举(bootstrap)的基本代码。若干个外围单元围绕着本地总线140群集(通过各自的接口)。特别地,大容量存储器包括一个或多个硬盘145和用于读/写光盘155的驱动器150。而且,服务器110,115包括输入单元160(例如,键盘和鼠标)及输出单元165(例如,显示器和打印机)。网络适配器170用来把服务器110,115连接到网络105。桥单元175连接系统总线120和本地总线140。每个微处理器125和桥单元175可以担当请求为传输信息而对系统总线120进行访问的主代理。仲裁器180利用管理对系统总线120的互斥访问的授权。
图2A-图2I中示出了根据本发明实施例的解决方案的应用的概念表示。
从图2A开始,利用标号SI表示要从源服务器105部署到目标服务器110之一上托管的多个目标虚拟机上的通用软件映像。
软件映像SI包括多个存储块,存储块中的每一个都是可以被单独访问的(用于读和/或写);存储块可以包括任何类型的信息,诸如一个或多个扇区、文件、库、目录、其组合或部分(例如,每个存储块都包括520个字节)。存储块的子集定义自举模块Bt,自举模块Bt包括需要用来引导目标虚拟机直到加载流驱动器(在下文描述)的存储块(在其正确位置,甚至不彼此相邻)。
转到图2B,目标虚拟机中主要的一个(表示为主虚拟机VMm)被选定用于软件映像SI的部署(例如,在目标服务器110上创建的第一目标虚拟机用于软件映像SI在其上的第一部署)。自举模块Bt从源服务器105下载到主虚拟机VMm上;这时,主虚拟机VMm从自举模块Bt引导,由此加载在其中包含的流驱动器(没有在图中示出)。
参考图2C,在主虚拟机VMm的操作期间,访问软件映像SI的选定存储块(利用标号MBs表示)的每个请求现在由流驱动器来服务。特别地,当第一次在主虚拟机VMm上请求存储块MBs时,流驱动器从源服务器105下载存储块MBs并把它存储到主虚拟机VMm中。
否则,如在图2D中所示出的,当选定存储块被再次访问时(如下面同一存储块MBs的情况下那样),它已经存储在主虚拟机VMm中了;因此,现在可以直接在主虚拟机VMm中访问存储块MBs(而不需要从源服务器105再次下载它)。
上述流技术使得每个目标虚拟机在非常短的时间里即可使用–仅仅当自举模块被下载在其上之后,即使软件映像其余部分的部署仍在进行中(例如,对于10-200M字节的典型尺寸的自举模块在1-2分钟之后);然后,目标虚拟机的操作完全正常,无论其中软件映像的其它存储块是否可用–只有当目标虚拟机访问仍然要从源服务器下载的存储块时,目标虚拟机的性能才稍微降低。而且,使主虚拟机即可使用所需要的时间不依赖于软件映像的尺寸。由于一旦软件映像的存储块被访问过一次,在主虚拟机中就将可以获得软件映像的存储块越来越多,因此使用网络在主虚拟机上下载软件映像也随着时间而减少(例如,按对数定律)。
转到图2E,目标虚拟机中的二级目标虚拟机(表示为二级虚拟机VMs)被选定用于同一软件映像SI的部署(例如,在目标服务器110上创建的下一个目标虚拟机用于软件映像SI在其上的下一次部署)。自举模块Bt提供给二级虚拟机VMs(例如,通过从源服务器105再次下载它);如同上述,二级虚拟机VMs从自举模块Bt引导,由此加载在其中包含的流驱动器(没有在图中示出)。
参考图2F,在二级虚拟机VMs的操作期间,访问软件映像SI的另外选定存储块(如以上同一存储块MBs那样)的每个请求再次由流驱动器来服务。
但是,在根据本发明实施例的解决方案中,当存储块MBs在二级虚拟机VMs上被第一次请求时,流驱动器现在从主虚拟机VMm中检索存储块MBs并把它存储到二级虚拟机VMs中–利用直接从主虚拟机VMm读取或从源服务器105下载并如同上述存储在其中的存储块MBs。
否则,如在图2G中所示出的,当选定存储块被再次访问时(如在下面同一存储块MBs的情况下那样),它已经存储在二级虚拟机VMs中了;因此,现在可以直接在二级虚拟机VMs中访问存储块MBs(而不需要从主虚拟机VMm再次检索它)。
现在,由于每个存储块只下载一次到主虚拟机上,因此这极大地减少了从源服务器下载存储块的必要。
而且,由于(主和二级)目标虚拟机是非常类似的(因为基于同一软件映像),因此它们很有可能具有共同的行为(即,以基本上相同的次序访问基本上相同的存储块);因此,每个二级虚拟机所需的存储块已经存储在主虚拟机中(然后可以以很快的方式直接从主虚拟机中检索这些存储块)的可能性非常高。
上述解决方案在主虚拟机上的影响在大多数实践情形中可以忽略不计;确实,主虚拟机用于服务来自二级虚拟机的请求的开销基本上不危害其操作(由于只需为二级虚拟机下载还没有存储在主虚拟机中的少量其它的存储块,其中存储块在任何情况下都会在以后被主虚拟机自身访问)。
应当指出,上述解决方案与标准的高速缓存技术无关。确实,在高速缓存技术中,存储块在请求时下载并且为它们的(可能的)下一次使用临时地存储在本地。相反,主虚拟机下载存储块并且为主虚拟机自身的操作把存储块永久地存储在其中(使得这个结果是自动完成的而无须具有由二级虚拟机请求的存储块);换句话说,由于由二级虚拟机请求的存储块已经被主虚拟机自身访问过,因此它们应该存储在主虚拟机中(相反,利用在其中存储的已经被每个二级虚拟机访问过的存储块,那么根本不需要对主虚拟机进行请求)。
所有以上这些,通过极大地减少源服务器的工作负载和网络流量从而改善了上述流技术。
而且,这使得流技术很容易地扩展(例如,来支持云计算基础设施)。
现在参考图2H,在本发明的特定实施例中,存储块也可以在主虚拟机VMm中更新,如对于图中用浅色阴影表示的存储块MBu那样。因此,如果(更新的)存储块MBu在二级虚拟机VMs中被第一次请求,那么它不能从主虚拟机VMm中检索到(由于存储块MBu不同于它在软件映像SI中的原始版本)。在这种情况下,存储块MBu的原始版本从源服务器105下载到主虚拟机VMm上并且返回到二级虚拟机VMs(而不把它存储到主虚拟机VMm中)。
作为替代,如在图2I中所示出的,所有更新的存储块的原始版本可以保存到主虚拟机VMm的专用的块存储库BR中。在这种情况下,当更新的存储块在二级虚拟机VMs中被第一次请求时(如以上同一存储块MBu那样),它的原始版本现在可以从块存储库BR中提取并且直接返回到二级虚拟机VMs。
块存储库避免了再次从源服务器下载更新的存储块的需要(相应地减少了源服务器的工作负载和网络流量,但是以主虚拟机中存储器空间的相应浪费为代价)。
现在参考图3,示出了可以用来实现根据本发明实施例的解决方案的主软件模块的框图。信息(程序和数据)通常存储在不同服务器计算机的硬盘中并且当程序运行时(至少部分地)加载到这些服务器计算机的工作存储器中。程序初始地例如从光盘安装到硬盘上。
特别地,源服务器105运行部署管理器305–例如,IBM公司(IBM公司的商标)的IBM Tivoli Provisioning Manager for OSDeployment(或TPM for OSD)的IBM Tivoli ProvisioningManager for Images(或TPMfI);部署管理器305用于自动化软件映像到目标服务器110(图中只示出了一个)上的部署;软件映像存储在相应的存储库310中–每个软件映像都通过单个文件或多个文件、用预定义的格式(例如,符合VMDK或VHD的规范)存储。为此目的,源服务器105还运行远程访问服务器315r(例如,基于互联网小型计算机系统接口(iSCSI)协议),其用于从外部访问存储在存储库310中的软件映像。
转到目标服务器110,(直接在其硬件上运行的)主机操作系统317定义了任何其它程序可以在其上运行的软件平台。特别地,部署代理320在主机操作系统317上运行,用于与部署管理器305交互。虚拟化层325也在主机操作系统317上运行,用于实现目标服务器110的虚拟化;在市场上可以得到的虚拟化层325的例子是VMware公司的VMware(VMware公司的商标)和Citrix Systems公司的Xen(Citrix Systems公司的商标)。虚拟化层325托管多个虚拟机,包括其中部署同一软件映像SI的主虚拟机VMm和一个或多个二级虚拟机VMs(在图中只示出了一个)。
每个(主和二级)虚拟机VMm、VMs包括模拟物理机硬件的抽象结构(其中虚拟机VMm、VMs对其具有唯一控制权)。特别地,该模拟的硬件包括虚拟盘330m,330s(模拟物理盘),用于存储在虚拟机VMm,VMs上部署的软件映像SI的存储块(最初从其自举模块的存储块开始,其它存储块一被访问就被添加)。
在每个虚拟机VMm,VMs中,客户操作系统335m,335s在虚拟机的模拟硬件上运行以定义任何其它程序可以在其上运行的软件平台(最初从由自举模块提供的它的最少的功能开始,软件平台的其它功能一被使用就被添加)。特别地,主虚拟机VMm运行另一个远程访问服务器315l(例如,基于同一iSCSI协议),用于从外部访问主虚拟机的虚拟盘330m(存储软件映像SI的一部分)。在任何情况下,每个虚拟机VMm,VMs运行相应的流驱动器(用标号340m,340s表示),用于控制任何对虚拟盘330m,330s的存储块的访问(用于读和/或写)。特别地,在主虚拟机VMm中的流驱动器340m配置成与远程访问服务器315r交互(从源服务器105下载软件映像SI的存储块);二级虚拟机VMs中的流驱动器335s相反地配置成与远程访问服务器315l交互(从主虚拟机VMm中检索软件映像SI的存储块)。为此目的,流驱动器340m,340s控制映射表345m,345s;对软件映像SI的每个存储块,映射表345m,345s包括访问标志,其指示存储块是否已经被访问过,然后,把存储块存储(访问标志被断言)还是不存储(访问标志未被断言)在虚拟盘330m,330s中。
为了管理已经在虚拟机VMm,VMs中更新的存储块(如在下文中详细描述的),映射表345m,345s还包括用于每个存储块的更新标志;更新标志指示存储块是否已经在虚拟机VMm,VMs中被更新,然后,存储块与软件映像SI中它的原始版本不同(更新标志被断言)还是相同(更新标志未被断言)。可选地,每个虚拟机VMm,VMs还可以包括块存储库(用标号BRm,BRs表示);对于每个更新的存储块,块存储库BRm,BRs在其连续位置中存储存储块的原始版本(如在软件映像SI中的那样)。在这种情况下,对每个更新的存储块,映射表345m,345s还包括存储块原始版本在块存储库BRm,BRs中的地址。
图4A-图4E中示出了描述关于根据本发明实施例的解决方案的实现的活动流程的活动图。特别地,该活动图表示可以实现为用方法400把特定的软件映像部署到多个目标虚拟机上的示例性过程。
方法400在源服务器的泳道线中的黑色开始圆圈401处开始,然后转到块402,其中系统管理员通过部署管理器(例如,经其网站界面)选择这个软件映像及软件映像应该部署到其上的目标服务器。对其作出响应,部署管理器在块403指导目标服务器的部署代理来创建相应的目标虚拟机(利用用于存储软件映像的虚拟盘);同时,相应的信息被部署管理器保存(例如,在其中增加识别目标服务器上的这个目标虚拟机与将在其上部署的软件映像的记录的部署映射(map)中)。活动流程然后在块404根据已经在目标服务器上部署的软件映像的实例数量进行分支(如在部署映射中所指示的);特别地,如果这是软件映像当前在目标服务器上的第一次部署(即,当在配置映射中不存在用于目标服务器上同一软件映像的其它记录时),那么执行块405-422,而如果这是软件映像当前在目标服务器上接下来的部署,那么执行块423-448(即,当在配置映射中存在用于目标服务器上同一软件映像的至少另一条记录时)。
现在考虑块405(软件映像的第一部署),目标虚拟机设置为用于软件映像部署的主虚拟机(例如,通过使映射表中其记录的相应标志被断言)。部署管理器然后在块406把自举模块上载到目标服务器上,并且指导部署代理把它的存储块存储到主虚拟机的虚拟盘中(在其中主虚拟机的引导期间期望找到这些存储块的位置中)。这时候,部署管理器指导部署代理在块407打开主虚拟机。
转到主虚拟机的泳道线中的块408,主虚拟机从自举模块正常地引导,由此加载客户操作系统的相应部分及带有其映射表的流驱动器;例如,在Microsoft Windows(微软公司的商标)中,自举模块Bt包括主引导记录(MBR)、引导扇区、bootmgr.exe文件、boot\bcd文件、系统注册表、winload.exe文件、和在系统注册表中指定的驱动器(包括用于与相应的远程访问服务器及流驱动器交互的远程访问驱动器);流驱动器的映射表初始化为具有被断言的自举模块的存储块的访问标志和未被断言的其它存储块的访问标志,以及未被断言的所有存储块的更新标志。流驱动器重写客户操作系统的标准文件系统驱动器(由于它存储于虚拟盘中,因此看到整个软件映像),用于服务访问其选定存储块的每个请求。特别地,自举模块缺省地配置成使流驱动器与源服务器的远程访问服务器交互。而且,自举模块缺省地还配置成用于启动它的远程访问服务器(包含在软件映像中),使得这在块409发生。
现在参考块410,用于访问选定存储块的访问请求一提交到文件系统驱动器(用于最初加载远程访问驱动器及用于以后操作主虚拟机),该请求就传递到流驱动器。活动流程然后在块411根据访问请求的模式分支;特别地,如果访问请求是用于读取选定存储块,那么执行块412-418,而如果访问请求是用于写选定存储块,那么就执行块419-422。
现在考虑块412(读访问请求),做测试以验证选定存储块(通常)在主虚拟机中是否是第一次被访问(如在映射表中所指示的)。如果是这样(即,当选定存储块的访问标志未被断言时),那么流驱动器把访问请求传递到远程访问驱动器;反过来,远程访问驱动器(在所讨论的例子中充当iSCSI发起者)在块413把相应的下载请求提交到源服务器的远程访问服务器。继续到块414,源服务器的远程访问服务器把选定存储块下载到主虚拟机上。源驱动器在块415把选定存储块(从远程访问驱动器接收的)存储到虚拟盘中。流驱动器然后在块416通过使相应的访问标志被断言来更新映射表。再次参考块412,相反(即,当选定存储块的访问标志被断言时),流驱动器在块417直接从虚拟盘中读取选定存储块。在这两种情况下,方法400然后转到块418(或者从块416或者从块417),其中流驱动器把选定存储块返回给文件系统驱动器,文件系统驱动器又把该存储块返回给它的请求者。
改为考虑块419(写访问请求),活动的流程根据流驱动器的实现进行分支。特别地,如果流驱动器支持块存储库并且选定存储块还没有被更新(即,它的更新标志是未被断言的),那么方法400降到块420中,在该阶段,选定存储块的原始拷贝从虚拟盘中拷贝到块存储库的第一个空闲位置中;同时,块存储库的这个位置的地址在映射表中与选定存储块相关联。方法400然后继续到块421;当流驱动器不支持块存储库或选定存储块已经被更新时,也可以从块419直接到达该同一点。在任何情况下,流驱动器把选定存储块的期望的值写入到虚拟盘中(通过或者在第一次存储它或者改变它之前的版本)。流驱动器然后在块422通过使相应的访问标志和相应的更新标志(如果必要的话)被断言来更新映射表。
在这两种情况下,活动流程返回到块410(从块418或从块422)等待访问下一个选定存储块的任何请求。
改为考虑块423(软件映像的下一次部署),目标虚拟机设置为用于软件映像部署的二级虚拟机(例如,通过使它在映射表中的记录的相应标志未被断言)。活动流程然后在块424根据流驱动器的实现进行分支。特别地,如果流驱动器不支持块存储库,那么如上的部署管理器在块425把自举模块上载到目标服务器上。相反(如果流驱动器支持块存储库),那么部署管理器在块426指导部署代理从主虚拟机重新产生自举模块的原始版本;为此目的,自举模块的每个存储块都从它的虚拟盘中读取(当相应的更新标志未被断言)或否则的话从它的块存储库中提取。
在这两种情况下,方法400继续到块427(从块425或从块426);在这点上,部署管理器指导部署代理来配置(下载的或者重新产生的)自举模块,以便使流驱动器与主虚拟机的远程访问服务器交互(如在部署映射中所指示的,用于同一目标服务器上的同一软件映像),并且用于不使它的远程访问服务器启动。部署管理器然后指导部署代理把(更新的)自举模块的存储块存储到二级虚拟机的虚拟盘中。现在参考块428,部署管理器指导部署代理打开二级虚拟机。
转到二级虚拟机的泳道线中的块429,二级虚拟机从自举模块正常引导,由此加载客户操作系统的相应部分及带有其映射表的流驱动器(如同上述初始化的),这再次重写客户操作系统的标准文件系统驱动器,用于服务访问目标虚拟盘的(另外)选定存储块的每个请求。
现在参考块430,用于访问选定存储块的访问请求一提交给文件系统驱动器(用于操作二级虚拟机),如同上述,该请求就传递到流驱动器。活动流程然后在块431根据访问请求的模式进行分支;特别地,如果访问请求是用于读取选定存储块,那么执行块432-444,而如果访问请求是用于写选定存储块,那么执行块445-448。
现在考虑块432(读访问请求),做测试以验证选定存储块(通常)在二级虚拟机中是否是第一次被访问(如在映射表中所指示的)。如果是这样(即,当选定存储块的访问标志未被断言时),那么流驱动器把访问请求传递到远程访问驱动器;随后,远程访问驱动器(再次充当iSCSI的发起者)在块433把相应的检索请求提交到主虚拟机的远程访问服务器。
转到主虚拟机的泳道线,流驱动器(从远程访问服务器接收检索请求)在块434执行测试,以验证选定存储块在主虚拟机中是否已经被更新(如在映射表中所指示的)。如果是(即,当选定存储块的更新标志是被断言的,以指示选定存储块在它下载之前已经被写入或在它下载之后已经被改变),那么活动流程在块435根据流驱动器的实现分支。特别地,如果流驱动器不支持块存储库,那么方法400降到块436中;在该阶段,流驱动器把访问请求传递到远程访问驱动器,远程访问驱动器又把相应的下载请求提交给该源服务器的远程访问服务器。继续到块437,源服务器的远程访问服务器把选定存储块下载到主虚拟机上。再次参考块435,相反(即,当主流驱动器支持块存储库时)流驱动器在块438直接从在映射表中指示的块存储库的位置提取选定存储块的原始版本。改为返回到块434,当选定存储块在主虚拟机中还没有被更新时(即,它的更新标志是未被断言的),方法400降到块439中;在该阶段,通过重复与上述相同的操作在主虚拟机上读取选定存储块(即,当第一次访问选定存储块时,从源服务器下载它并且把它存储到虚拟盘中,否则从虚拟盘中读取该选定存储块)。在任何情况下,方法400在块440再次合并(从块437、块438或块439),其中流驱动器把选定存储块传到远程访问服务器,远程访问服务器又把它返回到二级虚拟机的远程访问驱动器。回到二级虚拟机的泳道线,流驱动器在块441把选定存储块(从远程访问驱动器接收的)存储到虚拟盘中。流驱动器然后在块442通过使相应的访问标志被断言来更新映射表。
再次参考块432,当选定存储块在二级虚拟机中已经被访问过(即,它的访问标志是被断言的)时,那么流驱动器在块443直接从目标虚拟盘中读取选定存储块。
在这两种情况下,方法400然后(从块442或从块443)转到块444,其中流驱动器把选定存储块返回到文件系统驱动器,文件系统驱动器又把选定存储块返回到它的请求者。
改为考虑块445(写访问请求),在块445-448执行以上参考块419-422进行描述的完全相同的操作(因此不再重复对它们的解释)。
在这两种情况下,活动流程返回到块430(从块444和从块448)等待访问下一个选定存储块的任何请求。
以完全异步的方式,系统管理员在块449在源服务器的泳道线中选择目标虚拟机中的一个(下文中称作旧虚拟机),其中相应的软件映像之前已经被部署,至少部分地(如在部署映射中所指示的)为了通过部署管理器把它去除。作为对其的响应,在块450做测试以验证旧虚拟机的类型(如在部署映射中所指示的)。特别地,如果旧虚拟机是相应的目标服务器上用于它的软件映像的主虚拟机,那么方法400转到块451;在该阶段,做另一个测试来验证在同一目标服务器上用于这个软件映像的二级虚拟机的数量(如在部署映射中所指示的)。如果用于软件映像的一个或多个二级虚拟机在目标服务器上可用,那么它们中的其中一个在块452被选定(成为代替旧虚拟机的新的主虚拟机);特别地,该选定的二级目标虚拟机是软件映像已经部署其上(至少部分地)的目标服务器中最老的一个。以这种方式,该选定的二级虚拟机可能具有最高数量的已经在它的虚拟盘中存储的存储块。继续到块453,选定的二级虚拟机现在设置为用于目标服务器上的软件映像的新主虚拟机(通过使它在映射表中的记录的相应标志被断言)。部署管理器然后指导部署代理在新的主虚拟机中配置自举模块,以使流驱动器与源服务器的远程访问服务器交互,并且用于在块554启动它的远程访问服务器。部署管理器然后在块455指导部署代理启动新主虚拟机的远程访问服务器。而且,如果在块456任何其它二级虚拟机(如在部署映射中所指示的)使它们的流驱动器与新主虚拟机的远程访问服务器交互,那么部署管理器指导部署代理配置其它二级虚拟机的自举模块。
方法400然后继续到源服务器的泳道线中的块457,还可以从块450(当旧虚拟机不是目标服务器上用于软件映像的主虚拟机时)或从块451(当旧虚拟机是目标服务器上用于软件映像的主虚拟机,但是在目标服务器上没有用于同一软件映像的二级虚拟机可用时)直接到达该同一点。在任何情况下,部署管理器指导部署代理关闭或从目标服务器中去除旧虚拟机;同时,从部署映射中删除相应的记录。
方法400然后在同心的白色/黑色停止圆圈458处结束。
自然地,为了满足局部的及具体的要求,本领域技术人员可以对以上所描述的解决方案应用许多逻辑的和/或物理的修改和变型。更具体地,虽然本解决方案在某种程度上已经参考其一个或多个实施例进行了描述,但是应当理解,形式和细节上的各种省略、替换和改变以及其它实施例都是可能的。特别地,本发明的不同实施例甚至可以在没有前面描述中所阐述的具体细节(诸如数值)的情况下实施,以提供对本发明的更透彻的理解;相反地,可以忽略或简化众所周知的特征,以避免用不必要的细节来混淆本描述。而且,其明确的意图是,结合所公开的解决方案的任何实施例来描述的具体元件和/或方法步骤可以作为通用设计选择的事项并入任何其它实施例中。在任何情况下,序数词或其它限定词仅仅用作标签以区分具有相同名称的元件,但其本身并不意味着任何优先,居先或者顺序。而且,术语包括、包含、具有和含有和涉及(及其任何形式)应该旨在带有开放、非穷举性的意义(即,不限于所列出的项目),术语基于、取决于、根据、用于(及其任何形式)应该旨在作为非穷举性的关系(即,有可能还涉及其它变量),并且术语一/一个应该旨在作为一个或多个条目(除非另外明确规定)。
例如,本发明的实施例提供了用于在(任意类型的,参见下文)目标数据处理系统的(任意数量和任意类型的,参见下文)多个目标数据处理实体上部署来自(任意类型的,参见下文)源数据处理系统的(任意类型的–例如,只包括操作系统而没有任何应用程序的)软件映像的方法。软件映像包括可单独访问的(任意数量和任意尺寸的)多个存储块;存储块的预定义子集(任意数量及在任意位置)定义了自举模块(用于任何操作系统及任意类型–例如,在Linux中包括包含GRBU引导装载器的MBR、包含内核的/boot目录和initrd文件系统–Linux是Linus Torvalds的商标)。该方法包括以下步骤。自举模块(以任何方式)从源数据处理系统下载到目标数据处理实体的一个主目标数据处理实体上。该主目标数据处理实体从自举模块引导,由此加载包含在自举模块中的流驱动器。访问主数据处理实体上的软件映像的选定存储块的每个请求是通过流驱动器来服务的;响应访问选定存储块的请求中的第一请求,流驱动器从源数据处理系统中下载选定存储块并且把选定存储块存储到主目标数据处理实体中;否则流驱动器改为访问主目标数据处理实体中选定存储块。自举模块还提供给一组(一个或多个)二级目标数据处理实体中的每一个(以任何方式–例如,从源数据处理实体中下载、从另一个目标数据处理实体中拷贝、或在本地重新产生它)。每个二级目标数据处理实体是从自举模块引导的,由此加载流驱动器。访问二级数据处理实体上软件映像的另外选定存储块的每个请求都是由流驱动器服务的。响应访问另外选定存储块的请求中的第一请求,流驱动器从主目标数据处理实体中检索另外选定存储块并且把另外选定存储块存储到二级目标数据处理实体中;否则流驱动器改为访问在二级目标数据处理实体中的另外选定存储块。
但是,同一解决方案可以用等效的方法实现(通过利用与其更多的步骤或部分的相同功能类似的步骤、去掉非本质性的一些步骤、或增加还有的可选步骤);而且,步骤可以按不同顺序、同时地或以交错的方式(至少部分地)来执行。例如,可能把存储块从源数据处理系统下载到主目标数据处理实体上和/或通过二级目标数据处理实体在后台从主目标数据处理实体中检索存储块(例如,当相应的工作负载低时);而且,当软件映像的所有存储块已经存储在相应的目标数据处理实体中时,还可能禁用流驱动器。
在本发明的实施例中,目标数据处理实体是在目标数据处理系统上托管的目标虚拟机。
但是,虚拟机可以以任意其它的方式实现(例如,在直接运行在目标服务器硬件上的管理程序(hypervisor)的控制下);在任何情况下,并不排除同一方法对物理机(例如,远离源服务器的同一数据处理中心的计算机)的应用。
在本发明的实施例中,引导主目标数据处理实体的步骤包括启动在主数据处理实体上的软件映像中包括的访问服务器。服务访问另外选定存储块的每个请求的步骤包括响应访问另外选定存储块的第一请求而把由二级数据处理实体的流驱动器的检索另外选定存储块的请求提交到主数据处理实体的访问服务器,并且把另外选定存储块从主数据处理实体的访问服务器返回到二级数据处理实体的流驱动器。
但是,访问服务器可以是任何其它的类型(例如,基于AoE协议);在任何情况下,存储块可以由二级数据处理实体以任何方式(例如,通过专门的服务)从主目标数据处理实体中检索。
在本发明的实施例中,把自举模块下载到目标数据处理实体的一个主目标数据处理实体的步骤包括响应访问选定存储块的第一请求而配置用于从源数据处理系统下载每个选定存储块的流驱动器;给一组二级目标数据处理实体中的每一个提供自举模块的步骤包括响应访问另外选定存储块的第一请求而配置用于从主目标数据处理实体中检索每个另外选定存储块的流驱动器。
但是,自举模块可以按任何方式配置(例如,用相反或没有缺省行为的方式);在任何情况下,并不排除具有两个不同自举模块(用于主目标数据处理实体和用于二级目标数据处理实体)的可能性。
在本发明的实施例中,方法还包括以下步骤。为目标数据处理实体上的软件映像的第一部署提供目标数据处理实体中的第一个。该第一个目标数据处理实体设置为主目标数据处理实体。为目标数据处理系统上的软件映像的接下来的部署提供一组(一个或多个)接下来的目标数据处理实体。每个接下来的目标数据处理实体都设置为二级目标数据处理实体。
但是,主和二级目标数据处理实体可以按不同的方式(例如,根据其中存储的存储块的相应数量动态地)进行选定。
在本发明实施例中,方法还包括以下步骤。从目标数据处理系统中删除主目标数据处理实体的请求被接收。其中一个二级目标数据处理实体被选定。选定的二级目标数据处理实体设置为新的主目标数据处理实体。主目标数据处理实体从目标数据处理系统中删除。
但是,其中主目标数据处理实体不能被动态改变的基本实现也是预期的。
在本发明的实施例中,选择一个二级目标数据处理实体的步骤包括选择二级目标数据处理实体中最老的一个。
但是,二级目标数据处理实体的选择可以基于任何其它附加的或作为替代的标准(例如,在其中存储的存储块的数量)。
在本发明的实施例中,服务访问选定存储块的每个请求的步骤包括保存已经在主目标数据处理实体中被更新的每个选定存储块的指示;从主目标数据处理实体检索另外选定存储块的步骤包括验证另外选定存储块是否已经在主虚拟机中被更新,并且当另外选定存储块已经在主虚拟机中被更新时把另外选定存储块从源数据处理系统下载到主数据处理实体上,否则从主目标数据处理实体中读取另外选定存储块。
但是,关于更新的存储块的信息可以以任何其它方式提供(例如,用更新的存储块的单独的列表);在任何情况下,并不排除其中软件映像在目标数据处理实体中不能被更新的基本实现。
在本发明的实施例中,服务访问另外选定存储块的每个请求的步骤包括保存在二级目标数据处理实体中已经被更新的每个另外选定存储块的指示。
但是,该信息可以只在主目标数据处理实体上采集(例如,当主目标数据处理实体不能被动态改变时)。
在本发明的实施例中,服务访问选定存储块的每个请求的步骤包括保存已经在主目标数据处理实体中被更新的每个选定存储块的原始版本。从主目标数据处理实体中检索另外选定存储块的步骤包括验证另外选定存储块是否在主虚拟机中已经被更新,并且当另外选定存储块没有在主目标数据处理实体中被更新时返回另外选定存储块,否则的话返回其原始的版本。
但是,块存储库可以具有任何结构(例如,存储已经被下载的软件映像的整个部分的拷贝),并且它还可以用于创建任何新的二级目标数据处理实体。
在本发明的实施例中,服务访问另外选定存储块的每个请求的步骤包括保存在二级目标数据处理实体中已经被更新的每个另外选定存储块的原始版本。
但是,这个操作可以只在主目标数据处理实体上执行(例如,当主目标数据处理实体不能被动态改变时)。
本发明的实施例提供了计算机程序,其包括当该计算机程序在系统上执行时,用于使数据处理系统(例如,目标服务器、源服务器或整个部署基础设施中的每个)执行所公开方法的步骤的代码装置。
但是,程序可以简单地包括每个软件映像,或者它可以实现为独立的模块、实现为用于部署管理器的插件、或者甚至直接在部署管理器自身中。在任何情况下,如果程序以不同的方式构成,或如果提供了附加的模块或功能,那么类似的考虑也适用;同样,存储器结构可以是其它类型的,或者可以用等效的实体代替(无须包括物理存储介质)。程序可以采用任何适于由任何数据处理系统使用或与其连接(例如,在虚拟机内)的形式,由此把数据处理系统配置成执行所期望的操作;特别地,程序可以是以外部的或驻留软件、固件、或微代码的形式(或者在目标代码中或者在源代码中––例如,要被编译或要被解释的)。而且,可能在任何计算机可用的介质上提供程序(并且特别地,作为非易失性介质上的制造品);介质可以是适于包含、存储、通信、传播、或传输程序的任何元件。例如,介质可以是电子的、磁的、光学的、电磁的、红外的、或半导体类型;这种介质的例子是(其中程序可被预加载的)硬盘、可移动盘、带子、卡、线、光纤、无线连接、网络、广播波,等等。在任何情况下,根据本发明实施例的解决方案即使在利用硬件结构(例如,集成在半导体材料的芯片中)或利用适于被编程或以其它方式被配置的软件和硬件的组合的情况下,也适宜于实现。
本发明的实施例提供了数据处理系统,其包括用于执行同一方法的步骤的装置(例如,目标服务器、源服务器或整个部署基础设施中的每个)。
但是,如果数据处理系统具有不同的结构或包括等效的组件,或者它具有其它可操作的特性,那么类似的考虑也适用。在任何情况下,其每个组件可以分成多个元件,或者两个或更多的组件可以合并在一起成为单个元件;而且,每个组件可以被复制以支持相应操作的并行执行。还应该指出,(除非另外规定)不同组件之间的任何交互通常不需要是连续的,并且它可以直接或间接通过一个或多个中介。更具体而言,同一方法还可以在基于不同体系结构(例如,本地、广域、全球、蜂窝或卫星网络)、利用任何类型(有线和/或无线)的连接、或者甚至独立类型的数据处理系统上执行。在任何情况下,数据处理系统可以具有另一种结构或可以包括类似的元件(诸如临时存储程序或其部分的高速缓存存储器);而且,可能利用基于物理机或虚拟机的任何代码执行实体(诸如PDA、移动电话等),或利用多个实体的组合(诸如多级体系结构、网格计算基础设施等)来代替数据处理系统。

Claims (13)

1.一种用于在目标数据处理系统的多个目标数据处理实体上部署来自源数据处理系统的软件映像的方法(400),所述软件映像包括多个能够单独访问的存储块,并且存储块的预定义子集定义自举模块,其中所述方法包括步骤:
把自举模块从源数据处理系统下载(406)到目标数据处理实体的一个主目标数据处理实体上,
从自举模块引导(407-409)主目标数据处理实体,由此加载包含在自举模块中的流驱动器,
通过流驱动器服务(410-422)访问主数据处理实体上的软件映像的选定存储块的每个请求,响应访问选定存储块的请求中的第一请求,流驱动器从源数据处理系统中下载(413-414)选定存储块并且把选定存储块存储(415-416)到主目标数据处理实体中,否则访问(417)主目标数据处理实体中的选定存储块,
给一组二级目标数据处理实体中的每一个提供(423-427)自举模块,
从自举模块引导(428-429)每个二级目标数据处理实体,由此加载流驱动器,及
通过流驱动器服务(430-448)访问二级数据处理实体上的软件映像的另外选定存储块的每个请求,响应访问另外选定存储块的请求中的第一请求,流驱动器从主目标数据处理实体中检索(433-440)另外选定存储块并且把另外选定存储块存储(441-442)到二级目标数据处理实体中,否则访问(443)二级目标数据处理实体中的另外选定存储块。
2.如权利要求1所述的方法(400),其中目标数据处理实体是在目标数据处理系统上托管的目标虚拟机。
3.如权利要求1或2所述的方法(400),其中引导(407-409)主目标数据处理实体的步骤包括:
启动(409)包含在主数据处理实体上的软件映像中的访问服务器,
服务(430-448)访问另外选定存储块的每个请求的步骤包括:
响应访问另外选定存储块的第一请求,通过二级数据处理实体的流驱动器把检索另外选定存储块的请求提交(433)给主数据处理实体的访问服务器,及
把另外选定存储块从主数据处理实体的访问服务器返回(434-440)给二级数据处理实体的流驱动器。
4.如权利要求3所述的方法(300),
其中把自举模块下载(406)到目标数据处理实体的主目标数据处理实体上的步骤包括:
响应访问选定存储块的第一请求,配置(406)用于从源数据处理系统下载每个选定存储块的流驱动器,
并且其中给一组二级目标数据处理实体中的每一个提供(428-429)自举模块的步骤包括:
响应访问另外选定存储块的第一请求,配置(427)用于从主目标数据处理实体中检索每个另外选定存储块的流驱动器。
5.如权利要求1至4中任何一项所述的方法(400),还包括步骤:
为目标数据处理系统上软件映像的第一部署提供(403)目标数据处理实体中的第一目标数据处理实体,
把第一目标数据处理实体设置(405)为主目标数据处理实体,
为目标数据处理系统上的软件映像的接下来的部署提供(403)一组接下来的目标数据处理实体,及
把每个接下来的目标数据处理实体设置(423)为二级目标数据处理实体。
6.如权利要求1至5中任何一项所述的方法(400),还包括步骤:
接收(449)从目标数据处理系统中删除主目标数据处理实体的请求,
选择(450-452)二级目标数据处理实体中的一个,
设置(453-456)选定的二级目标数据处理实体为新的主目标数据处理实体,及
从目标数据处理系统中删除(457)主目标数据处理实体。
7.如权利要求6所述的方法(400),其中选择(450-452)二级目标数据处理实体中的一个的步骤包括:
选择(452)二级目标数据处理实体中最老的一个。
8.如权利要求1至7中任何一项所述的方法(400),
其中服务(410-422)访问选定存储块的每个请求的步骤包括:
保存(422)在主目标数据处理实体中已经被更新的每个选定存储块的指示,
并且其中从主目标数据处理实体中检索(433-440)另外选定存储块的步骤包括:
验证(434)另外选定存储块在主虚拟机中是否已经被更新,及
当另外选定存储块在主虚拟机中已经被更新时,把另外选定存储块从源目标数据处理系统中下载(436-437)到主目标数据处理实体上,否则,从主目标数据处理实体中读取(439)另外选定存储块。
9.如权利要求8所述的方法(400),其中服务(430-448)访问另外选定存储块的每个请求的步骤包括:
保存(448)在二级目标数据处理实体中已经被更新的每个另外选定存储块的指示。
10.如权利要求1至7中任何一项所述的方法(400),
其中服务(410-422)访问选定存储块的每个请求的步骤包括:
保存(420)在主目标数据处理实体中已经被更新的每个选定存储块的原始版本,
并且其中从主目标数据处理实体中检索(433-440)另外选定存储块的步骤包括:
验证(434)另外选定存储块在主目标数据处理实体中是否已经被更新,及
当另外选定存储块在主目标数据处理实体中还没有被更新时,返回(438-439)另外选定存储块,否则,返回其原始版本。
11.如权利要求10所述的方法(400),其中服务(430-448)访问另外选定存储块的每个请求的步骤包括:
保存(446)在二级目标数据处理实体中已经被更新的每个另外选定存储块的原始版本。
12.一种包括代码装置的计算机程序(300),当计算机程序在数据处理系统上执行时,用于使数据处理系统(100)执行如权利要求1至11中任何一项所述的方法(400)的步骤。
13.一种包括装置(300)的数据处理系统(100),其中装置(300)配置成用于执行如权利要求1至11中任何一项所述的方法(400)的步骤。
CN201280061514.7A 2011-12-13 2012-12-04 利用流技术在多个目标上部署软件映像的方法及系统 Active CN104011677B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11193151 2011-12-13
EP11193151.5 2011-12-13
PCT/IB2012/056948 WO2013088302A1 (en) 2011-12-13 2012-12-04 Deployment of a software image on multiple targets with streaming technique

Publications (2)

Publication Number Publication Date
CN104011677A true CN104011677A (zh) 2014-08-27
CN104011677B CN104011677B (zh) 2017-02-01

Family

ID=48573143

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280061514.7A Active CN104011677B (zh) 2011-12-13 2012-12-04 利用流技术在多个目标上部署软件映像的方法及系统

Country Status (6)

Country Link
US (2) US8930685B2 (zh)
JP (1) JP2015501995A (zh)
CN (1) CN104011677B (zh)
DE (1) DE112012004893B4 (zh)
GB (1) GB2512006B (zh)
WO (1) WO2013088302A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012057942A1 (en) * 2010-10-27 2012-05-03 High Cloud Security, Inc. System and method for secure storage of virtual machines
US9092596B2 (en) * 2012-05-11 2015-07-28 Onyx Protected Systems, Llc Computer system for preventing the disabling of content blocking software functionality therein, and method therefor
EP2854028A4 (en) * 2013-07-31 2015-06-24 Huawei Tech Co Ltd METHOD, DEVICE AND SYSTEM FOR MANAGING AN EXTENSION MODULE THEREFOR
CN106462457A (zh) * 2014-02-07 2017-02-22 瑞典爱立信有限公司 虚拟化应用集群
US10628193B2 (en) 2014-02-07 2020-04-21 Telefonaktiebolaget Lm Ericsson (Publ) Technique for operating a system controller of a virtualized application cluster
WO2016003415A1 (en) * 2014-06-30 2016-01-07 Hewlett-Packard Development Company, L.P. Securely sending a complete initialization package
US11119745B2 (en) 2014-11-10 2021-09-14 Amazon Technologies, Inc. Automated deployment of applications
US10459709B1 (en) 2014-11-10 2019-10-29 Amazon Technologies, Inc. Automated deployment of applications
US9547564B1 (en) 2014-11-10 2017-01-17 Amazon Technologies, Inc. Automated deployment of applications
US10228958B1 (en) * 2014-12-05 2019-03-12 Quest Software Inc. Systems and methods for archiving time-series data during high-demand intervals
US10114702B2 (en) * 2016-01-06 2018-10-30 International Business Machines Corporation Method and system to discover and manage distributed applications in virtualization environments
US10467019B2 (en) 2017-11-22 2019-11-05 Hewlett Packard Enterprise Development Lp Serving images to server groups
DE102018116572A1 (de) * 2018-07-09 2020-01-09 Infineon Technologies Ag Schutz gegen seitenkanalangriffe
CN113094679A (zh) * 2021-04-01 2021-07-09 深圳鸿祥源科技有限公司 一种基于5g网络的遥感试验观测处理设备
CN115099291B (zh) * 2022-08-29 2022-11-11 同方德诚(山东)科技股份公司 一种建筑节能监测方法
CN115186014B (zh) * 2022-09-13 2022-12-02 江苏巨信众汇数字科技有限公司 用于教育实训的数据处理方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1410228B1 (en) * 2001-06-22 2016-03-23 Wonderware Corporation Remotely monitoring / diagnosing distributed components of a supervisory process control and manufacturing information application from a central location
WO2003001377A2 (en) * 2001-06-22 2003-01-03 Wonderware Corporation Installing supervisory process control and manufacturing software from a remote location and maintaining configuration data links in a run-time environment
US7281247B2 (en) 2003-06-24 2007-10-09 Microsoft Corporation Software image creation in a distributed build environment
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
US7788713B2 (en) 2004-06-23 2010-08-31 Intel Corporation Method, apparatus and system for virtualized peer-to-peer proxy services
US7702789B2 (en) 2005-11-03 2010-04-20 International Business Machines Corporation Apparatus, system, and method for reassigning a client
US20080086540A1 (en) * 2006-10-06 2008-04-10 James Scott Method and system for executing a normally online application in an offline mode
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
US8782637B2 (en) * 2007-11-03 2014-07-15 ATM Shafiqul Khalid Mini-cloud system for enabling user subscription to cloud service in residential environment
US7953833B2 (en) 2008-01-31 2011-05-31 Wanova Technologies Ltd. Desktop delivery for a distributed enterprise
US8434093B2 (en) 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
US8856294B2 (en) 2009-06-01 2014-10-07 Oracle International Corporation System and method for converting a Java application into a virtual server image for cloud deployment
CN102110009B (zh) 2009-12-28 2014-06-11 中国移动通信集团公司 一种在虚拟化平台中部署应用的方法及虚拟平台管理器
US20110213687A1 (en) 2010-02-26 2011-09-01 James Michael Ferris Systems and methods for or a usage manager for cross-cloud appliances
US9130912B2 (en) 2010-03-05 2015-09-08 International Business Machines Corporation System and method for assisting virtual machine instantiation and migration
US8996667B2 (en) 2010-04-27 2015-03-31 International Business Machines Corporation Deploying an operating system
US9612814B2 (en) * 2012-02-02 2017-04-04 Sungard Availability Services, Lp Network topology-aware recovery automation

Also Published As

Publication number Publication date
DE112012004893T5 (de) 2014-09-11
JP2015501995A (ja) 2015-01-19
US20130151835A1 (en) 2013-06-13
US20130151834A1 (en) 2013-06-13
DE112012004893B4 (de) 2021-05-12
GB2512006B (en) 2015-07-22
US8930685B2 (en) 2015-01-06
GB201412336D0 (en) 2014-08-27
WO2013088302A1 (en) 2013-06-20
GB2512006A (en) 2014-09-17
US9104431B2 (en) 2015-08-11
CN104011677B (zh) 2017-02-01

Similar Documents

Publication Publication Date Title
CN104011677A (zh) 利用流技术在多个目标上部署软件映像
CN102591675B (zh) 使用共享存储块管理多软件镜像的方法和系统
CN102567042A (zh) 利用引导块重定位来管理多个软件镜像的方法和系统
CN101211289B (zh) 恢复操作管理系统和方法
CN103221921B (zh) 利用流技术的软件映像的直接迁移
CN102193817B (zh) 简化物理和虚拟部署的管理
US8191063B2 (en) Method for migrating a plurality of virtual machines by associating files and state information with a single logical container
ES2632512T3 (es) Conversión de máquinas a máquinas virtuales
JP5911504B2 (ja) ストリーミング技術に基づくソフトウェア・イメージのアップグレード
US8543797B1 (en) Managed desktop system
US20210256148A1 (en) Sharing of data among containers running on virtualized operating systems
US20120137062A1 (en) Leveraging coalesced memory
CN102387197A (zh) 从服务器到主机的流虚拟机技术
CN103902347A (zh) 虚拟机系统的部署方法与系统
CN103988177A (zh) 基于维护寄存器的离线虚拟机的维护
US20110088029A1 (en) Server image capacity optimization
US20190213035A1 (en) Controlling usage of virtual disks before their attachment to virtual machines
CN106796493A (zh) 用于存储设备区的标记
US10175886B1 (en) Systems and methods for handling missing storage image layers while provisioning containers in computer clusters
CN115336237A (zh) 远程存储的文件的预测性供应
US20200371694A1 (en) System and Method for Persistent Memory Rotation Based on Remaining Write Endurance
CN102968324B (zh) 计算机系统开机文件的整理方法和装置
US20230185580A1 (en) Single node deployment of container platform
US9075635B1 (en) Systems and methods for merging virtual layers
CN102707987A (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