首页 / 专利库 / 软件 / 软件 / 利用流技术的软件映像的直接迁移

利用流技术的软件映像的直接迁移

阅读:995发布:2023-02-24

专利汇可以提供利用流技术的软件映像的直接迁移专利检索,专利查询,专利分析的服务。并且提出一种用于将安装在源 数据处理 实体上的 软件 映像迁移到目标数据处理实体的方案。相应的迁移方法(A310-A310;A410-A410;A510-A510;A610-A610)包括:从提供独立预备 操作系统 的预备引导程序引导(A306;A406;A506;A606)目标数据处理实体;在目标数据处理实体上将软件映像安装(A307;A407;A507;A607)为远程大容量 存储器 ;将软件映像的主引导程序复制(A308;A408;A508;A608)到目标数据处理实体的本地 大容量存储 器上,主引导程序包括适于将软件映像迁移到目标数据处理实体的流功能;从本地大容量存储器上的主引导程序重新引导(A309;A409;A509;A609)目标数据处理实体,由此加载流功能;以及由流功能服务(A310;A410;A510;A610)每个 访问 目标数据处理实体上的存储器 块 的 请求 ,流功能响应于在本地大容量存储器中缺少该存储器块,从软件映像下载(718-730)该存储器块并将该存储器块存储到本地大容量存储器中,否则,从本地大容量存储器中检索(733)该存储器块。,下面是利用流技术的软件映像的直接迁移专利的具体信息内容。

1.一种用于将安装在源数据处理实体上的软件映像迁移到目标数据处理实体的迁移方法(A310-A310;A410-A410;A510-A510;A610-A610),该迁移方法包括以下的步骤:
从提供独立预备操作系统的预备引导程序引导(A306;A406;A506;A606)目标数据处理实体;
在目标数据处理实体上将所述安装在源数据处理实体上的软件映像的源盘安装(A307;A407;A507;A607)为远程大容量存储器
将所述安装在源数据处理实体上的软件映像的主引导程序复制(A308;A408;A508;
A608)到目标数据处理实体的本地大容量存储器上,所述目标数据处理实体的本地大容量存储器上的主引导程序包括适于将所述安装在源数据处理实体上的软件映像迁移到目标数据处理实体的流功能;
从所述目标数据处理实体的本地大容量存储器上的主引导程序重新引导(A309;A409;
A509;A609)目标数据处理实体,由此加载流功能;以及
由流功能服务(A310;A410;A510;A610)每个访问目标数据处理实体上的存储器请求,所述流功能响应于在所述目标数据处理实体的本地大容量存储器中缺少该存储器块,从所述安装在源数据处理实体上的软件映像下载(718-730)该存储器块并将该存储器块存储到所述目标数据处理实体的本地大容量存储器中,否则,从所述目标数据处理实体的本地大容量存储器中检索(733)该存储器块。
2.根据权利要求1所述的迁移方法(A310-A310;A410-A410;A510-A510;A610-A610),其中,对于在更新模式下访问存储器块的每个请求,该方法还包括以下的步骤:
更新(748)所述目标数据处理实体的本地大容量存储器中的存储器块。
3.根据权利要求1或2所述的迁移方法(A310-A310;A410-A410;A510-A510;A610-A610),还包括以下的步骤:
响应于在所述目标数据处理实体的本地大容量存储器中存储了与软件映像的尺寸相对应的一定数量的存储器块,禁用(742-745、769-772)用于从所述目标数据处理实体的本地大容量存储器直接检索每个存储器块的流功能。
4.根据权利要求1或2所述的迁移方法(A310-A310;A410-A410;A510-A510;A610-A610),还包括以下的步骤:
监视(751)目标数据处理实体和/或源数据处理实体的工作负载;和
响应于工作负载低于阈值,从所述安装在源数据处理实体上的软件映像下载(754-
766)未存储在所述目标数据处理实体的本地大容量存储器中的一组选择的存储器块,并将选择的存储器块存储到所述目标数据处理实体的本地大容量存储器中。
5.根据权利要求1或2所述的迁移方法(A310-A310;A510-A510),其中,目标数据处理实体是目标物理计算机,从预备引导程序引导(A306;A506)目标数据处理实体的步骤包括:
从网络引导程序引导(A306;A506)目标物理计算机。
6.根据权利要求1或2所述的迁移方法(A410-A410;A610-A610),其中,目标数据处理实体是在目标管理程序上运行的目标虚拟机,从预备引导程序引导(A406;A606)目标数据处理实体的步骤包括:
从目标虚拟机外部的引导虚拟盘引导(A406;A606)目标虚拟机。
7.根据权利要求6所述的迁移方法(A410-A410;A610-A610),其中,从引导虚拟盘引导(A406;A606)目标虚拟机的步骤包括:
由目标管理程序下载(A406;A606)引导虚拟盘。
8.根据权利要求7所述的迁移方法(A410-A410;A610-A610),其中,从引导虚拟盘引导(A406;A606)目标虚拟机的步骤包括:
将目标虚拟机的引导扇区改变(A406;A606)为指向引导虚拟盘。
9.根据权利要求1-2、7-8中任一项所述的迁移方法(A310-A310;A510-A510),其中,源数据处理实体是源物理计算机,迁移方法还包括以下的步骤:
在不安装软件映像的情况下从提供另一独立预备操作系统的另一预备引导程序引导(A303;A503)源物理计算机;和
所述源数据处理实体准备(A304;A504)处于一致状态的软件映像以用于由目标数据处理实体对其远程访问。
10.根据权利要求9所述的迁移方法(A310-A310;A510-A510),其中,从另一预备引导程序引导(A303;A503)源物理计算机的步骤包括:
从另一网络引导程序引导(A303;A503)源物理计算机。
11.根据权利要求1-2、7-8中任一项所述的迁移方法(A410-A410;A610-A610),其中,源数据处理实体是在源管理程序上运行的源虚拟机,迁移方法还包括以下的步骤:
所述源数据处理实体准备(A404;A604)处于一致状态的软件映像以用于由目标数据处理实体对其远程访问,该软件映像是在源虚拟机处于关闭状态的情况下被准备的。
12.一种用于将安装在源数据处理实体上的软件映像迁移到目标数据处理实体的迁移系统(100),包括用于执行根据权利要求1-11中任一项所述的方法(A310-A310;A410-A410;
A510-A510;A610-A610)的步骤的装置(300;400;500;600)。

说明书全文

利用流技术的软件映像的直接迁移

技术领域

[0001] 根据本发明的一个或更多个实施例的方案涉及数据处理领域。更特别地,本方案涉及软件映像的迁移。

背景技术

[0002] 软件映像的迁移是包括大量计算机的大型数据处理系统中的关键活动。一般而言,软件映像是包括驻留于计算机上的软件模的结构——要么是物理类型的要么通过虚拟机被仿真(例如,其操作系统、应用程序和/或数据)。
[0003] 迁移软件映像的过程(或者简称为迁移过程)可以是分段类型或者直接类型。在分段迁移过程中,主计算机的主软件映像被捕获并被存储于中心仓库中;服务器计算机然后控制主软件映像向任何希望的目标客户机的部署。相反,在向目标客户机直接传送一个或更多个源客户机的软件映像的直接迁移过程中,直接迁移过程更快且更简单(原因是,可以在不需要任何中心仓库的情况下直接从源客户机进行,从而具有在多个源客户机上分布相应的工作负载的可能性)。
[0004] 特别地,关于直接迁移过程,在现有技术中提出了不同的方法。
[0005] 特别地,在冷类型的迁移过程中,源客户机被停止以捕获其软件映像(以确保软件映像反映源客户机的一致状态(consistent state))。冷迁移过程可在具有同构平台或异构平台的源客户机与目标客户机之间工作;但是,由于源客户机和目标客户机都不可用于迁移全部软件映像所需要的全部的时间(为小时的量级),因此,冷迁移过程非常慢。相反,在热类型的迁移过程中,源客户机仅在捕获其一致状态所需要的时间内被暂停(而软件映像向目标客户机的实际传送对于可正常工作的源客户机是透明地进行的)。热迁移过程在源客户机上较快(原因是,它仅在捕获其状态所需要的时间内不可用,为分钟的量级);但是,热迁移过程仅适用于在同构平台上运行的虚拟机之间。类似地,在实时类型(live type)的迁移过程中,源客户机仅在将其状态封入共享文件中所需要的时间内被暂停。实时迁移过程在源客户机上非常快(因为其不可用性为秒的量级);但是,实时迁移过程也仅适用于在同构平台上运行的虚拟机之间。在任何情况下,在热迁移过程和实时迁移过程中,目标客户机都仅在向其传送了整个软件映像之后才可用(即,从开始迁移过程几个小时之后)。
[0006] 并且,US-B-7512833(在这里加入其整个公开作为参考)公开了将操作系统克隆到具有不同的硬件配置的计算机的方法。出于此目的,操作系统的主映像通过捕获事先已安装了该操作系统的主计算机的盘的内容来创建;然后,主映像的文件、驱动程序和注册设置被剥离至去除软件和硬件不兼容性的最小基本平,以使得主映像可在不同的计算机上引导。
[0007] US-A-2008/0301425(在这里加入其整个公开作为参考)公开了用于支持主机的远程引导的方法。出于此目的,主机的管理控制器包括将初始操作系统映像的核从远程访问目标加载到主机中的远程访问启动器;核然后使用其自身的远程访问启动器来加载来自远程访问目标的另一操作系统映像。这允许甚至在没有主板LAN(LOM)设备的情况下远程引导主机。
[0008] US-A-2006/0031547(在这里加入其整个公开作为参考)公开了用于操作系统和应用程序的集成的按需随时(on demand)传输的方法。出于该目的,操作系统从流服务器上的相应映像被流式传输到客户机——即,当需要时从网络下载其多个块(进一步的块被预取,而已接收的块被使用);从而可能添加本地高速缓存功能;应用程序类似地从多个单独的映像被流式传输。操作系统的管理是特定于计算机的,而应用程序的管理是特定于用户的——以避免对于每个用户构建组合的操作系统和应用程序映像的需要。
[0009] US-A-2010/0174894(在这里加入其整个公开作为参考)公开了用于配置无盘类型的目标计算机的操作系统的方法。出于该目的,施主计算机的配置映像被复制到虚拟盘上,然后根据目标计算机的硬件配置修改它——以允许它下一次从虚拟盘引导。

发明内容

[0010] 一般而言,根据本发明的一个或更多个实施例的方案基于利用流技术迁移软件映像的思想。
[0011] 特别地,在独立权利要求中阐述根据本发明的具体实施例的方案的一个或更多个方面,在从属权利要求中阐述同一方案的有利特征,这里逐字加入其文字作为参考(具有参照根据本发明的实施例的方案的具体方面提供的任何有利特征,经过适当的修改也适用其每个其它方面)。
[0012] 更具体地,根据本发明的实施例的方案的一个方面提供一种用于将安装在源数据处理实体(例如,源计算机或源虚拟机)上的软件映像迁移到目标数据处理实体(例如,目标计算机或目标虚拟机)的迁移方法。该迁移方法包括以下的步骤。从提供独立预备操作系统的预备引导程序(例如,从网络引导程序或临时引导虚拟盘)引导目标数据处理实体。然后在目标数据处理实体上安装软件映像作为远程大容量存储器(例如,通过作为远程访问启动器)。将软件映像的主引导程序复制到目标数据处理实体的本地大容量存储器上(例如,通过在复制访问模式(access-on-copy mode)中安装软件映像);主引导程序包括适于将软件映像迁移到目标数据处理实体的流功能。从本地大容量存储器上的主引导程序重新引导目标数据处理实体,由此加载流功能。然后由流功能服务每个访问目标数据处理实体上的存储器块的请求;流功能响应于在本地大容量存储器中缺少该存储器块,从软件映像下载该存储器块并将其存储到本地大容量存储器中;否则,流功能从本地大容量存储器中检索该存储器块。
[0013] 根据本发明的实施例的方案的另一方面提供一种计算机程序,该计算机程序包括用于当在数据处理系统上执行该计算机程序时使数据处理系统执行该迁移方法的步骤的代码装置;根据本发明的实施例的方案的又一方面提供一种包括体现计算机程序的非暂时计算机可读介质的计算机程序产品,该计算机程序包括可直接加载到数据处理系统的工作存储器中的代码装置,由此配置数据处理系统以执行所述迁移方法。
[0014] 根据本发明的实施例的方案的另一方面提供一种系统,包括用于执行所述迁移方法的步骤的装置。附图说明
[0015] 结合附图参照以下的纯粹作为非限制性表示给出的详细描述,可以最好地理解根据本发明的一个或更多个实施例的方案及其进一步的特征和优点(其中,为了简化,相应的要素由相同或类似的附图标记表示,并且,不重复它们的解释,并且,各实体的名称一般被用于表示其类型及其属性——诸如其值、内容和表示)。具体而言:
[0016] 图1表示根据本发明的实施例的方案适用于其中的数据处理系统的示意性框图
[0017] 图2A~2H表示根据本发明的实施例的迁移过程的概念表示;
[0018] 图3~6表示根据本发明的相应实施例的方案的不同的示例性实现;
[0019] 图7表示描述与根据本发明的实施例的方案的实现有关的活动的流程的活动图。

具体实施方式

[0020] 具体参照图1,示出根据本发明的实施例的方案适用于其中的数据处理系统(或者简称为系统)100的示意性框图。系统100具有分布式架构,该分布式结构基于网络105——例如,局域网(LAN)。多个计算机通过网络105相互连接。特别地,服务器计算机110控制直接类型的迁移过程,其中,软件映像在不同的客户机计算机115(为了简化,图中仅示出两个)之间被直接传送;每个软件映像是包括一个或更多个软件模块(例如,操作系统、应用程序和/或数据)的结构。在每个迁移过程中,源客户机(由(物理)计算机115或在其上面运行的虚拟机组成)提供已安装于其上的相应的软件映像;目标客户机(也由(物理)计算机115或在其上面运行的虚拟机组成)从源客户机下载并安装软件映像。在这一点上,应当指出,术语源客户机和目标客户机仅仅是标识动态色,这些动态角色可在不同的迁移过程中随时间改变(例如,迁移过程的源客户机可在下一迁移过程中用作目标客户机,或者,迁移过程的目标客户机在下一迁移过程中可用作源客户机);并且,任何数量的源客户机和/或目标客户机可同时是活动的(甚至单个源客户机同时服务多个目标客户机)。
[0021] 系统100的一般(服务器或客户机)计算机由并行连接到系统总线120的若干个单元形成(其结构根据系统中的计算机的实际功能被适当地缩放)。详细地说,一个或更多个微处理器(μP)125控制计算机的操作,RAM130被微处理器125直接用作工作存储器,并且,ROM135存储计算机的基本代码。若干个外设单元在局部总线140周围(通过各自的接口)群集。特别地,大容量存储器由一个或更多个硬盘145和用于读取光盘155(例如,DVD或CD)的驱动器150组成。并且,计算机包括输入单元160(例如,键盘鼠标)和输出单元165(例如,监视器和打印机)。适配器170被用于连接计算机与网络105。桥接单元175将系统总线120与局部总线140接口。每个微处理器125和桥接单元175可操作作为请求访问系统总线120以发送信息的主代理。仲裁器180以互斥方式管理对访问系统总线120的准许。
[0022] 在图2A~2H中示出根据本发明的实施例的迁移过程的概念表示。
[0023] 从图2A开始,迁移过程是从源客户机215s到目标客户机215t。出于这种目的,源客户机215s的源盘245s被准备好,以便以一致状态提供其软件映像,供目标客户机215t对其远程访问(例如,通过在安全模式中引导相应的物理计算机,或者,通过关闭相应的虚拟机)。然后,从提供独立的预备(preliminary)操作系统(或最小操作系统)(其仅提供其基本功能)的(外部)预备引导程序来引导目标客户机215t(例如,通过从网络引导程序引导相应的物理计算机或者通过从临时性引导虚拟盘来引导相应的虚拟机);以这种方式,目标客户机215t的引导在其任何条件下都总是可能的,即,即使当没有(起作用的)操作系统可用时。
[0024] 移动到图2B,源盘245s以远程方式被安装于目标客户机215t上;包含于源盘245s中的主引导程序250s然后被复制到目标客户机215t的目标盘245t上,以获得相应的主引导程序250t(例如,通过以访问复制模式(copy-on-access mode)安装源盘245s)。
[0025] 此时,如图2C所示,正常情况下从目标盘245t上的主引导程序250t重新引导目标客户机215t(以便提供可提供所有其功能的完整操作系统)。目标客户机215t的引导程序导致包含于主引导程序250s中的流驱动器255t的加载(这优先于其标准文件系统驱动器)。
[0026] 现在参照图2D,由此通过流驱动器255t来服务在其操作期间访问目标客户机215t上的存储器块的每个请求;存储器块可以包括必须被目标客户机215t访问的任何种类的信息(例如,与操作系统或应用程序有关的一个或更多个扇区、文件、库、目录、它们的组合或部分)。
[0027] 当在目标盘245t上缺少所请求的存储器块时,如图2E的情况那样,流驱动器255t从源映像245s下载存储器块并然后将其存储于目标盘245t中。
[0028] 相反,当所请求的存储器块已在目标盘245t中可用时,如图2F的情况那样,流驱动器255t直接从目标盘245t检索存储器块。
[0029] 移动到图2G,如果存储器块必须被写入到目标客户机215t上,那么仅对存储于目标盘245t中的存储器块施加更新——该存储器块在其中总是可用的,因为它应当在其写入之前已经被读取。因此,即使当迁移过程仍在进行中时,目标盘245s也可被正常地更新(因为它已完全被传送到目标客户机215t)。
[0030] 最后参照图2H,最终,源盘245s的所有存储器块都被存储于目标盘245t上。此时,迁移过程完成(由于整个源盘245s已从源客户机215s被传送到目标客户机215t,同时添加了可能的本地更新)。目标客户机215t的操作现在完全与源客户机215s无关(流功能255t可被禁用,以便直接从目标盘245t访问存储器块)。
[0031] 上述的方案提供非常快的直接迁移过程(直接从源客户机215s进行,不需要任何中心仓库,使得可能在多个源客户机上分布工作负载),原因是源客户机215s仅仅在准备源盘245s以供目标客户机215t远程访问所需的短时间内保持不可用。并且,在这种情况下,目标客户机215t也在短时间后就可用。事实上,就在主引导程序250s被复制到目标盘245s上之后(即使迁移过程仍在进行中),目标客户机215t现在可立即使用。从而,与源盘245s的其它存储器块在目标盘245t中的可用性无关(当它访问尚待从源盘245s下载的存储器块时,目标客户机215t的性能仅有轻微的劣化),目标客户机215t的操作是完全正常的;但是,一旦完成了源盘245s到目标盘245t上的传送,目标客户机215t就自主工作(完全不需要源客户机215s),如同已经执行了常规的迁移过程。
[0032] 在这一方面,应当注意,上述的流功能与在现有技术中已知的用于按需随时提供操作系统和/或应用程序映像的流技术无关。事实上,在已知的流技术中,操作系统和/或应用程序映像的块仅仅是为了它们被立即使用而被下载到目标客户机上。但是,这些块不被持久存储于目标客户机上(即,在它们被使用之后,以及,只要在目标客户机被关闭之后,它们就消失),使得目标客户机再也不能从服务器计算机断开。事实上,即使在块被预取时,它们也仅在它们的(可能的)下一次使用之前保持在目标客户机上;类似地,即使当实施了用于存储器块的本地高速缓存时,也只有很少的存储器块保持在本地高速缓存中以便它们的重新使用(无论如何,为了存储新的存储器块,最终会驱逐本地高速缓存中的最早使用的存储器块)。相反,在本发明的流功能中,源盘245s的所有存储器块总是存储到目标盘245t上(一旦已从源客户机215s下载了它们);事实上,在这种情况下,迁移过程旨在在目标客户机215t上创建源盘245s的完整拷贝以便于其独立操作。
[0033] 并且,在最小操作系统中的目标客户机215t的初始引导允许将源盘245s迁移到任何类型的目标客户机215t(假定该最小操作系统与源客户机215s之一兼容——即,它支持其文件系统);因此,即使在具有异构平台的源客户机与目标客户机(例如,在不同的管理程序(hypervisor)上运行的虚拟机(无论如何,基于相同的硬件架构――例如,x86))之间,现在也可能获得非常快的迁移过程。
[0034] 上述的迁移过程提供支持物理计算机和虚拟机(任意组合)二者的单一机制;特别地,其用于物理计算机的实现方式也立即适用于虚拟机(对于其进入市场时间具有有益的影响)。
[0035] 在图3~6中示出根据本发明的相应的实施例的方案的不同的示例性实现。对于此目的,每个图提供表示可用于实现相应迁移过程的主要软件部件的角色的协作图。特别地,附图描述了系统的静态结构(通过相应的部件)及其动态行为(通过一系列的交换的消息,每条消息代表相应的动作,由前面带符号“A”的渐进序号表示)。信息(程序和数据)一般存储于硬盘上,并在程序运行时(至少部分地)被加载到各计算机的工作存储器中。一开始,程序例如从DVD被安装到硬盘上。
[0036] 从图3开始,示出物理到物理(P2P)类型的迁移过程的示例性实现,其中,源客户机和目标客户机均是(物理)计算机。可用于实现该迁移过程的软件部件作为整体用附图标记300表示。
[0037] 特别地,服务器计算机110运行部署管理器305,例如,IBM公司的IBM Tivoli Provisioning Manager for OS Deployment(或TPM for OSD)的IBM Tivoli Provisioning Manager for Images(或TPMfI)(IBM和Tivoli是IBM公司的商标);部署管理器305被用于将操作系统和/或应用程序从服务器计算机110自动地远程部署到系统的客户机计算机上。出于该目的,部署管理器305管理软件映像310的仓库。浏览器312被操作者313使用,以与部署管理器305交互。
[0038] 通常,选择的软件映像310在部署管理器305的控制下被部署到源计算机315s上(动作“A310.部署”)。
[0039] 此时,在根据本发明的实施例的方案中,安装在源计算机315s上的操作系统和/或应用程序可直接迁移到目标计算机315t。出于该目的,操作者313(在部署管理器305上)选择用于迁移过程的源计算机315s和目标计算机315t(动作“A302.迁移”)。作为其响应,部署管理器305关闭(如果必要的话)并然后通过强制其在网络上引导而接通源计算机315s(例如,通过LAN唤醒(Wake on LAN,WoL)服务)(动作“A301.网络引导”)。出于该目的,源计算机315s运行网络引导加载器——例如,嵌入在其网络适配器中的预启动执行环境(PXE)。网络引导加载器利用动态地址服务——例如,基于动态主机配置协议(DHCP)——以获得源计算机315s的动态地址;特别地,网络引导加载器广播由服务器计算机110(用作DHCP服务器)服务的相应请求。网络引导加载器然后广播引导请求,该引导请求再次被服务器计算机110服务,返回网络引导程序的地址;网络引导加载器例如通过琐碎文件传输协议(TFTP)将网络引导程序下载到RAM盘(即,作为大容量存储器的工作存储器的一部分)中,并然后运行它。
网络引导程序——例如,Windows预安装环境(WinPE),Windows是Microsoft Corporation的商标——提供用于源计算机315s的最小操作系统325s(即,不安装任何盘);因此,源计算机315s在完全安全的模式下操作,在该模式下,不能向大容量存储器中的其状态施加变化。
最小操作系统325s包括用于允许(例如,基于因特网小型计算机系统接口(iSCSI)协议)远程访问数据的远程访问服务器330s和用于与部署管理器305交互的部署代理335s。此时,部署代理335s准备客户机计算机315s的软件映像的源盘345s以用于通过远程访问服务器
330s进行远程访问——在讨论的例子中,简单地将其定义为iSCSI目标;特别地,源映像
345s包括相应的引导程序350s。,部署代理335s现在可正常地关闭并然后接通源计算机
315s以允许其常规操作(动作“A304.准备”)。
[0040] 此时,部署代理335s通过向部署管理器305发送相应的消息触发针对目标计算机315t的传送动作(动作“A305.触发”)。作为其响应,通过强制目标计算机315t在网络上引导,部署管理器305关闭(如果必要的话)并然后接通目标计算机315t(动作“A306.网络引导”)。如上所述,目标计算机315t运行网络引导加载器(例如,PXE),该网络引导加载器利用动态地址服务(例如DHCP)以(从服务器计算机110)获得目标计算机315t的动态地址,并然后从服务器计算机110下载网络引导程序并运行它。网络引导程序(例如,WinPE)为目标计算机315t提供最小操作系统325t。最小操作系统325t包括用于与部署管理器305交互的部署代理335t。部署代理335t将源盘345s安装为远程盘(即,在讨论的例子中,通过用作iSCSI启动器),以便通过远程访问服务器330s远程访问它(动作“A307.安装”);源盘345s在复制访问模式(access-on-copy mode)中被安装,使得被目标计算机315t访问的源盘345s的任何存储器块被自动复制到其目标盘345t中。特别地,部署代理355t访问源盘345s的引导程序350s(包括相应的部署代理);引导程序350s还包括用于流式传送源盘345s的剩余部分的流驱动器。由于源盘345s已在复制访问模式中被安装,因此,这导致引导程序350s作为相应的引导程序350t被复制到目标盘345t(动作“A308.复制”)。
[0041] 此时,部署代理325t正常地关闭并然后接通目标计算机315t。因此,存储于目标计算机315t的固件中并且在其接通时被执行的引导加载器——例如,基本输入/输出系统(BIOS)——现在在目标盘345t中找到引导程序350t,使得它在本地从引导程序350t引导(动作“A309.本地引导”)。以这种方式,引导程序350t现在为目标计算机315t提供完整操作系统。特别地,该完整操作系统包括服务每个用于访问任何存储器块的请求的流驱动器,并且以流方式提供存储器块——如以下详细描述的那样(动作“A310.流”)。
[0042] 移动到图4,示出虚拟到虚拟(V2V)类型的迁移过程的示例性实现。可用于实现该迁移过程的软件部件作为整体由附图标记400表示。特别地,源计算机和目标计算机现在分别运行管理程序405s和管理程序405t(例如,由VMWare的VMWare ESX——VMWare是VMWare Inc.的商标);每个管理程序405s、405t实现虚拟化层,该虚拟化层模拟分别由给出物理计算机(由虚拟机唯一控制)的表现的抽象环境组成的虚拟机。在这种情况下,迁移过程是从在管理程序405s上运行的源虚拟机415s到在管理程序405t上运行的目标虚拟机415t。出于该目的,管理程序405s运行远程访问服务器430s(例如,基于iSCSI协议)和部署代理435s(用于与部署管理器305交互);类似地,管理程序405t运行部署代理435t(用于与部署管理器305交互)。
[0043] 如上所述,服务器计算机110运行部署管理器305(其管理软件映像310的仓库),其中操作者313使用的浏览器312与部署管理器305交互作用。通常,所选择的软件映像310在部署管理器305的控制下被部署到源虚拟机415上(动作“A401.部署”)。
[0044] 此时,在根据本发明的实施例的方案中,操作者313(在部署管理器305上)选择用于迁移过程的源虚拟机415s和目标虚拟机415t(动作“A402.迁移”)。作为其响应,部署管理器305指示部署代理435s关闭(如果必要的话)源虚拟机415s。部署代理435s准备源虚拟机415s的软件映像的源虚拟盘445s,以允许通过远程访问服务器430s对其远程访问(在讨论的例子中,通过简单地将其定义为iSCSI目标)。部署代理435s现在可接通源虚拟机415s,以允许其常规操作(动作“A404.准备”)。
[0045] 此时,部署代理435s通过向部署管理器305发送相应的消息触发针对目标虚拟机415t的传送动作(动作“A405.触发”)。作为其响应,部署管理器305指示部署代理435t下载网络引导盘(例如,以ISO格式),该网络引导盘被存储到引导虚拟盘437中。部署代理435t然后关闭(如果必要的话)目标虚拟机415t。此时,目标虚拟机415t的目标虚拟盘445s的引导扇区(例如,主引导记录(MBR))——即,通过引导加载器加载的其第一扇区(例如,BIOS)——被部署代理435t改变以指向引导虚拟盘437。部署代理435t然后接通目标虚拟机
415t;因此,将目标虚拟盘445t识别为可引导设备并加载其引导扇区的目标虚拟机415t的引导加载器现在重定向到引导虚拟盘437,由此导致目标虚拟机415t从它引导。这涉及运行存储于网络引导盘437上的引导程序(例如,WinPE),该引导程序提供用于目标虚拟机415t的最小操作系统425t;特别地,最小操作系统425t包括另一部署代理435tv,用于与部署管理器305交互(动作“A406.网络引导”)。部署代理435tv在复制访问模式中将源虚拟盘445s安装为远程盘(即,在讨论的例子中,通过用作iSCSI启动器),以便通过远程访问服务器
430s远程访问它(动作“A407.安装”)。部署代理455tv访问源虚拟盘445s的引导程序450s(包括相应的部署代理和流驱动器),以使得它作为相应的引导程序450t复制到目标虚拟盘
445t上——因此优先于引导扇区(动作“A408.复制”)。
[0046] 此时,部署代理435t可删除网络引导盘437。部署代理435t关闭并然后接通目标虚拟机415t。因此,其引导加载器现在在目标虚拟盘445中找到引导程序450t,使得目标虚拟机415t从它本地引导(动作“A409.本地引导”)。以这种方式,引导程序450t现在为目标虚拟机415t提供完整操作系统。特别地,该完整操作系统包括服务每个用于访问任何存储器块的请求的流驱动器,并且以流方式提供存储器块——如以下详细描述的那样(动作“A410.流”)。
[0047] 现在参照图5,示出物理到虚拟(P2V)类型的迁移过程的示例性实现。可用于实现该迁移过程的软件部件作为整体由附图标记500表示。在这种情况下,迁移过程是从源计算机315s到目标虚拟机415t(在管理程序405t上运行,该管理程序405t又运行部署代理435t)。
[0048] 如上所述,服务器计算机110运行部署管理器305(其管理软件映像310的仓库),其中操作者313使用的浏览器312与其交互。通常,选择的软件映像310在部署管理器305的控制下被部署到源计算机315上(动作“A501.部署”)。
[0049] 此时,在根据本发明的实施例的方案中,操作者313(在部署管理器305上)选择用于迁移过程的源计算机315s和目标虚拟机415t(动作“A502.迁移”)。作为其响应,部署管理器305关闭(如果必要的话)并然后通过强制其在网络上启动而接通源计算机315s(动作“A503.网络引导”),以提供包括远程访问服务器330s和部署代理335s的最小操作系统325s。部署代理335s准备源盘345s以允许通过远程访问服务器330s对其远程访问(即,在讨论的例子中,作为iSCSI目标)。部署代理335s现在可正常地关闭并然后接通源计算机315s以允许其常规操作(动作“A504.准备”)。
[0050] 此时,部署代理335s通过向部署管理器305发送相应的消息触发针对目标虚拟机415t的传送动作(动作“A505.触发”)。作为其响应,部署管理器305指示部署代理435t下载引导虚拟盘437。部署代理435t然后关闭(如必要的话)目标虚拟机415t,并且改变目标虚拟盘445t的引导扇区(例如,MBR)以指向网络引导盘437。部署代理435t然后接通目标虚拟机
415t,由此使得目标虚拟机115t从网络引导盘437引导——以便提供包括部署代理435tv的最小操作系统425t(动作“A506.网络引导”)。部署代理435tv在复制访问模式中将源虚拟盘
445s安装为远程盘(即,在讨论的例子中,通过用作iSCSI启动器),以便通过远程访问服务器430s远程访问它(动作“A507.安装”)。部署代理455tv访问源虚拟盘445s的引导程序450s(包括相应的部署代理和流驱动器),以使得它复制到目标虚拟盘445t上作为相应的引导程序450t(动作“A508.复制”)。
[0051] 此时,部署代理435t可删除网络引导盘437。部署代理435t关闭并然后接通目标虚拟机415t,以从目标虚拟盘445t本地引导它(动作“A509.本地引导”)。这样提供的目标虚拟机415t的完整操作系统包括服务每个用于访问任何存储器块的请求的流驱动器,并且,以流方式提供存储器块——如以下详细描述的那样(动作“A510.流”)。
[0052] 最后,在图6中,示出虚拟到物理(V2P)类型的迁移过程的示例性实现。可用于实现该迁移过程的软件部件作为整体由附图标记600表示。在这种情况下,迁移过程是从源虚拟机415s(在管理程序405s上运行,该管理程序405s又运行远程访问服务器430s和部署代理435s)到目标计算机315s。
[0053] 如上所述,服务器计算机110运行部署管理器305(其管理软件映像310的仓库),其中操作者313使用的浏览器312与其交互。通常,选择的软件映像310在部署管理器305的控制下被部署到源虚拟机315上(动作“A601.部署”)。
[0054] 此时,在根据本发明的实施例的方案中,操作者313(在部署管理器305上)选择用于迁移过程的源虚拟机415s和目标计算机315t(动作“A602.迁移”)。作为其响应,部署管理器305指示部署代理435s关闭(如果必要的话)源虚拟机415s。部署代理435s准备源虚拟盘440s以允许通过远程访问服务器430s对其远程访问(即,在讨论的例子中,通过将其定义为iSCSI目标)。部署代理435s现在可接通源虚拟机415s,以允许其常规操作(动作“A604.准备”)。
[0055] 此时,部署代理435s通过向部署管理器305发送相应的消息触发针对目标计算机315t的传送动作(动作“A605.触发”)。作为其响应,部署管理器305关闭目标计算机315t(如果必要的话)并然后通过强制目标计算机315t在网络上引导而接通目标计算机315t(动作“A606.网络引导”),以提供包括部署代理335t的最小操作系统325t。部署代理435s在复制访问模式中将源盘345s安装为远程盘(即,在讨论的例子中,通过用作iSCSI启动器),以通过远程访问服务器430s对其远程访问(动作“A607.安装”)。部署代理335t访问源盘345s的引导程序350s(包括相应的部署代理和流驱动器),以使其复制到目标盘345s作为相应的引导程序350t(动作“A608.复制”)。
[0056] 此时,部署代理335s正常地关闭并然后接通目标计算机315t,以从目标盘345t本地引导它(动作“A609.本地引导”)。这样提供的目标计算机315t的完整操作系统包括流驱动器,该流驱动器服务每个用于访问任何存储器块的请求,并且以流方式提供存储器块——如后面详细描述的那样(动作“A610.流”)。
[0057] 为了解释上述的流过程,现在参照图7,该图示出与根据本发明的实施例的方案的实现有关的活动流程的活动图;特别地,该活动图理由方法700来表示示例性流过程。
[0058] 方法700从目标客户机(即,目标计算机或目标虚拟机)的文件系统驱动器一栏中的黑色起点圆703开始,并然后一旦接收到访问(即,读取)存储器块的请求(例如,来自应用程序)就前进到块706。作为其响应,文件系统驱动器在块709将请求传递给流驱动器。
[0059] 移动到流驱动器这一栏,在块712进行验证,以确定所请求的存储器块是否在目标(物理或虚拟)盘上可用;出于该目的,流驱动器访问存储该信息的位置地图(例如,在为每个(例如512字节的)存储器块包括一个指示其可用性的位的位图中)。活动流程然后根据该验证的结果在块715处分支。如果存储器块在目标盘中不可用(即,其在位置地图中的位被解除断言(deassert)),那么流驱动器在块718中向远程访问驱动器(在讨论的例子中,用作iSCSI启动器)要求存储器块。转到块721,远程访问驱动器向源客户机(即,源计算机或源虚拟机)的远程访问服务器提交相应的下载请求——在讨论的例子中,提供源(物理或虚拟)盘作为iSCSI目标。作为其响应,远程访问服务器在块724将所要求的存储器块返回目标客户机的远程访问驱动器。远程访问驱动器然后在块727将这样下载的存储器块返回给流驱动器。现在参照块730,流驱动器将该存储器块存储到目标盘中,并相应地更新位置地图以指示其可用性(即,通过断言相应的位)。重新参照块715,如果存储器块在目标盘中已可用(即,它的位被断言),那么方法700前进到块733,其中,直接从目标盘检索存储器块。在任一情况下,活动的流程在块736处汇合(从块730或块733);在该阶段中,流驱动器将存储器块返回给文件系统驱动器。随之,文件系统驱动器在块739将存储器块返回给发出请求的应用程序。同时,在流驱动器这一栏中,在块742进行测试,以验证是否源盘中的所有存储器块(具有与其大小相对应的预定数量)都在目标盘中可用(即,位置地图中的相应的位被断言)。如果是,那么流驱动器在块745被禁用,使得用于读取每个存储器块的所有接下来的请求将如通常情况那样直接由文件系统驱动器服务;否则,不执行动作。返回文件系统驱动器这一栏,如果存储器块还被请求用于写入,那么该请求在块748由文件系统驱动器直接服务;特别地,文件系统驱动器现在将存储器块写入到目标盘上(这里,在其读取之后它总是可用的)。
[0060] 以完全异步的方式,流驱动器在块751中周期性地验证(例如,每10~100ms)目标客户机、源客户机和/或网络的工作负载;如果工作负载低于预定的阈值(表示相应的资源在此时被轻度利用——例如,由于不在目标客户机上和/或源客户机上执行动作,并且网络中的流量较低),那么活动的流程转到块754。在该阶段,流驱动器通过重复上面描述的相同操作来下载目标盘中仍不可用的存储器块(例如,其在位置地图中的位被解除断言的第一个存储器块)。简言之,相应的请求被提交给远程访问驱动器,该远程访问驱动器在块757将其传递给源客户机的远程访问服务器。源客户机的远程访问服务器在块760将请求的存储器块返回给目标客户机的远程访问驱动器,该远程访问驱动器又在块763将该存储器块返回给流驱动器。现在参照块766,流驱动器将该存储器块存储于目标盘中,并且相应地更新位置地图以指示其可用性。现在在块769中进行测试,以验证是否源盘的所有存储器块都已存储于目标盘中。如果是,那么流驱动器在块772被禁用,否则,不执行动作。在两种情况下,方法700都是然后在同心的黑/白停止圆751处结束(从块772或块769)。
[0061] 自然,为了满足本地和特定的要求,本领域技术人员可将许多的逻辑和/或物理修改和变更应用于上述的方案。具体而言,虽然参照其一个或更多个实施例在一定程度上具体描述了该方案,但应理解,各种形式和细节的省略、替代和变化以及其它的实施例是可能的(例如,关于过程参数)。特别地,甚至可在没有在前面的描述中为了提供更彻底的理解而阐述的具体细节(诸如数值示例)的情况下实践本发明的不同的实施例;反过来,为了不使不必要的细节混淆了描述,可能省略或者简化了公知的特征。并且,明确指出的是,关于公开的方案的任何实施例所描述的特定的要素和/或方法步骤可作为一般设计选择被加入任何其它的实施例中。
[0062] 例如,如果通过等同的方法实现相同的方案,那么类似的考虑适用(使用与更多步骤或其一部分具有相同功能的类似步骤,去除非必需的一些步骤,或者添加另外的任选步骤);并且,可以(至少部分地)以不同的次序、同时或者以交错的方式执行各个步骤。
[0063] 并且,要迁移的源盘可包含任何软件程序(例如,仅仅操作系统而没有任何应用程序)。在任何情况下,迁移过程与软件映像是如何部署(例如,手动)到源客户机上的完全无关;更一般地,也可通过部署管理器在没有任何服务器计算机的简化系统中实现迁移过程。类似地,能够以任何其它的方式将主引导程序从源盘复制到目标盘(当不在复制访问模式中安装源盘时,甚至通过专用的操作)。自然,要下载的源盘的存储器块可包含任何其它的信息,并且/或者可具有任何其它的尺寸;另外,还能够实现存储器块的预取(在其可能的使用之前,将它们下载和存储于目标盘上)。可以使用任何等同的结构以提供流功能并管理目标盘中的存储器块的可用性(例如,通过将位置地图分成区块,以允许在目标计算机的工作存储器中加载它们)。
[0064] 上述的方案仅是解释性的,并且,它们不应以限制性方式被解释;例如,迁移过程可以在运行在任何其它管理程序(甚至是相互不同的管理程序(例如,ESX和KVM))上的虚拟机之间进行。
[0065] 作为替代方案,也能够由流驱动器管理存储器块向目标盘上的写入。
[0066] 可以设想不同的条件来禁用流驱动器(例如,当目标盘的预定区域已被写入时);但是,没有什么会妨碍保持流驱动器总是活动的(例如,以便响应于位置地图中的相应位的重置,下载存储器块的最新版本)。
[0067] 可以按任何其它的频率或者仅在特定的时段中(例如,在夜晚)监视工作负载;如果仅针对源客户机、目标客户机、网络或者它们的任何组合监视工作负载,那么类似的考虑适用。并且,可以以任何其它的方式限定工作负载的阈值(例如,通过用不同的权重加权其贡献)。如果在工作负载低于阈值时同时下载两个或更多个存储器块,那么类似的考虑也适用。在任何情况下,该特征仅是任选的,并且可在简化的实现中被省略。
[0068] 可通过从任何等同的预备引导程序(例如,BartPE)引导目标计算机来提供用于目标计算机的最小操作系统。并且,也可通过不同的网络引导过程(例如,基于RIPL、gPXE和PXELinux等)或者甚至以另一方式(例如,通过从网络引导CD手动引导目标计算机),来实现希望的结果。
[0069] 类似的考虑适用于目标虚拟机的引导;在任何情况下,也能够将用于提供用于目标计算机的最小操作系统(即,通过网络来引导)的相同技术应用于目标虚拟机。
[0070] 在任何情况下,什么也不妨碍以另一不同方式提供引导虚拟盘(例如,通过从可移除存储设备加载它)。
[0071] 类似地,可通过从任何等同的预备引导程序(例如,BartPE)引导源计算机来提供用于源计算机的最小操作系统——源盘可由包含于其中的任何其它模块来准备。
[0072] 并且,也可通过不同的网络引导过程(例如,基于RIPL、gPXE和PXELinux等)或者甚至以另一方式(例如,通过从网络引导CD手动引导源计算机),来实现希望的结果。
[0073] 作为替代方案,可以由在源计算机的管理程序上运行的任何其它模块来准备源盘;在任何情况下,也能够将用于准备源计算机的源盘(即,基于其通过最小操作系统的引导)的相同技术应用于源虚拟机。
[0074] 如果以不同的方式构建程序(可被用于实现本发明的各实施例),或者,如果提供附加的模块或功能,那么类似的考虑适用;类似地,存储器结构可以为其它的类型,或者可被等同的实体(未必由物理存储介质构成)替代。程序可采取适于被任何数据处理系统使用或者与其结合使用(例如,在虚拟机内)的任何形式;特别地,程序可以是外部或者驻留软件、固件或者微代码(例如,要被编译或者解释的目标代码或者源代码)的形式。并且,能够作为在任何计算机可用介质上实现的制造物品提供程序;介质可以为适于包含、存储、通信、传播或传送程序的任何元件。例如,介质可以为电子、磁、光学、电磁、红外或半导体类型;这种介质的例子是固定盘(这里,程序可被预先加载)、可移动盘、磁带、卡、导线、光纤、无线连接、网络和广播波等。在任何情况下,根据本发明的实施例的方案适于甚至通过硬件结构(例如,集成于半导体材料的芯片中)或者另外配置的适当地在其上面编程的软件和硬件的组合被实现。
[0075] 作为替代方案,系统具有不同的结构,或者包含等同的部件,或者,它具有其它的操作特性。在任何情况下,其每个部件可被分成更多的元件,或者,两个或更多部件可被组合成单个元件;并且,各部件可被复制以支持并行地执行相应的操作。还应指出,不同的部件之间的任何交互一般不需要是连续的(除非特别规定),并且,它可以是直接的,或者通过一个或更多个中间阶段而是间接的。特别地,也可在基于不同架构(例如,广域、全球、蜂窝或卫星网络)并利用任何连接类型(有线和/或无线)的系统上实施迁移过程。在任何情况下,每个计算机可具有另一种结构或者可包含类似的元件(诸如临时存储程序或其部分的高速缓存存储器);并且,能够用任何代码执行实体(诸如PDA、移动电话等)或者用多个实体的组合替代计算机。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈