CN112673603B - 用于迁移实时有状态容器的系统和方法 - Google Patents
用于迁移实时有状态容器的系统和方法 Download PDFInfo
- Publication number
- CN112673603B CN112673603B CN201980059040.4A CN201980059040A CN112673603B CN 112673603 B CN112673603 B CN 112673603B CN 201980059040 A CN201980059040 A CN 201980059040A CN 112673603 B CN112673603 B CN 112673603B
- Authority
- CN
- China
- Prior art keywords
- application
- destination node
- node
- network
- source 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/482—Application
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
公开了用于在网络中的节点之间迁移应用容器的系统、方法和计算机可读介质。可以由源节点接收对应用容器的兴趣,并且作为响应,源节点可以通过网络将应用容器的副本传递到目的地节点。然后源节点可以关闭应用容器,并将任何剩余的容器状态和接收到的请求发送到目的地节点。然后,目的地节点可以更新网络的路由平面,以向经迁移的应用提供服务请求的递送。
Description
相关申请的交叉引用
本申请要求于2018年9月13日提交的题为“用于迁移实时有状态容器的系统和方法(SYSTEM AND METHOD FOR MIGRATING A LIVE STATEFUL CONTAINER)”的美国非临时专利申请16/130,824号的权益和优先权,其内容在此明确地通过引用整体并入。
技术领域
本技术涉及网络环境中的容器和应用的管理。
背景技术
随着计算能力的任务被转移到网络中的节点,软件应用越来越多地被托管(host)在诸如服务器、基站、以及可由应用的用户远程访问的其他设备之类的设备上。特别是,服务于移动用户的被托管应用通常必须在用户在网络中的接入点之间移动时保持对请求进行服务。在许多情况下,时延(latency)和对响应有贡献的其他因素极为重要,因此被托管应用需要在整个网络上迁移,以便为用户维持足够的响应级别。然而,应用在迁移时必须通常继续对请求进行服务以避免时延增加和服务中断。在信息中心网络和其他架构中,总体很难在迁移过程期间保持持久且不间断的服务。
附图说明
为了描述可以获得本公开的上述和其他优点和特征的方式,将参考在附图中示出的其特定实施例来对以上简要描述的原理进行更具体的描述。理解这些附图仅描绘了本公开的示例性实施例,因此不应被认为是对其范围的限制,通过使用附图以附加的具体性和细节来描述和解释本文的原理,在附图中:
图1A示出了根据主题技术的各种实施例的示例操作环境;
图1B示出了根据主题技术的各种实施例的示例操作环境;
图2示出了根据主题技术的各种实施例的示例网络环境和后端;
图3描绘了根据主题技术的各种实施例的用于在网络上迁移容器的示例方法;
图4描绘了根据主题技术的各种实施例的用于更新网络的路由平面的示例方法;
图5示出了根据主题技术的各种实施例的示例网络设备;并且
图6示出了根据主题技术的各种实施例的示例计算设备。
具体实施方式
下面详细讨论本公开的各种实施例。虽然讨论了具体的实现,但是应该理解,这样做仅是出于说明的目的。相关领域的技术人员将认识到,在不脱离本公开的精神和范围的情况下,可以使用其他组件和配置。因此,以下描述和附图是说明性的,并且不被解释为限制性的。描述了许多具体细节以提供对本公开的透彻理解。但是,在某些情况下,为了避免使描述不清楚,没有描述众所周知或常规的细节。在本公开中对一个实施例或实施例的引用可以是对相同实施例或任何实施例的引用;并且,这些引用是指实施例中的至少一个。
对“一个实施例”或“实施例”的引用是指结合该实施例描述的特定特征、结构或特性包括在本公开的至少一个实施例中。说明书中各个地方出现的短语“在一个实施例中”不一定全部指的是同一实施例,也不是与其他实施例互斥的单独的或替代的实施例。此外,描述了可以由一些实施例而不是其他实施例展现的各种特征。
在本公开的上下文内以及在使用每个术语的特定上下文中,本说明书中使用的术语通常具有其在本领域中的普通含义。可将替代语言和同义词用于本文所讨论的术语中的任何一个或多个,并且对于是否在此阐述或讨论了术语不应有特殊意义。在一些情况下,提供某些术语的同义词。一个或多个同义词的列举不排除使用其他同义词。在本说明书中任何地方使用示例(包括在此讨论的任何术语的示例)仅是说明性的,而无意于进一步限制本公开或任何示例术语的范围和含义。同样,本公开不限于本说明书中给出的各种实施例。
在不意图限制本公开的范围的情况下,下面给出根据本公开的实施例的仪器、装置、方法及其相关结果的示例。注意,为了方便读者,可以在示例中使用标题或副标题,这绝不应限制本公开的范围。除非另有定义,否则本文所使用的技术和科学术语具有本公开所属领域的普通技术人员通常所理解的含义。在发生冲突的情况下,以本文件及其定义为准。
本公开的附加特征和优点将在下面的描述中阐述,并且部分地将从该描述中显而易见,或者可以通过实践本文所公开的原理来获悉。本公开的特征和优点可以通过在所附权利要求中特别指出的仪器和组合来实现和获得。根据以下描述和所附权利要求,本公开的这些和其他特征将变得更加显而易见,或者可以通过实践本文阐述的原理来获悉。
概述
有状态应用(stateful application)的迁移可能产生在迁移期间难以维持对应用的服务请求的困难,并且也可能难以无缝执行。例如,在移动边缘计算(MEC)中,诸如“物联网”(IOT)设备之类的设备可能在服务于该IOT设备的多个节点之间转换,同时仍将请求发送至这些节点提供的应用(例如,容器化应用等)。由于网络中的每个节点实际上不能同时托管每个单个应用,因此应用可以在节点之间迁移,以便连续地对请求进行服务。特别地,在移动IOT设备关注时延的情况下或者在应用需要在节点之间频繁转换等的情况下,可能期望在节点之间进行无缝且有状态的迁移。
所公开的技术解决了本领域中对在没有分组丢失的情况下进行实时应用容器的有状态迁移的需求。本文公开了用于在对传入请求流进行服务的同时在网络上的节点之间迁移应用容器的系统、方法和计算机可读介质。可以由网络上的源节点从目的地节点接收对应用容器的兴趣。可以从源节点将应用容器的副本发送到目的地节点。然后可以关闭(shut down)源节点处的应用容器,并且可以将源节点处的剩余容器状态发送到目的地节点。然后,目的地节点可以更新网络的路由平面,以将应用容器的网络业务路由到目的地节点。
示例实施例的描述
在一个示例中,可以在不丢失分组的情况下在信息中心网络(ICN)上实时迁移容器、虚拟机(VM)等。考虑包括配备有计算基础设施的基站的网络。例如,5G网络可以包括多个基站,用于向MEC设备(例如但不限于汽车或汽车内部的设备)提供互联网或其他网络连接。此外,随着汽车在基站之间移动,可以在第二基站处提供在第一基站处提供的应用,或者可以将汽车与应用之间的通信路由到第一基站(例如,从汽车进入其范围的第二基站或任何其他基站)。
然而,在应用具有例如时延或可伸缩性考虑的情况下,通过第二基站将汽车之间的通信路由到第一基站会导致收敛时间过长。特别地,在ICN包括全局路由协议的情况下,用于路由的传输的收敛时间可能与例如低时延应用等不兼容。结果,应用可以替代地在基站之间迁移,以便保持与汽车的低时延连接。
在一个示例中,可以在基站之间并且在ICN上(例如,在ICN内并且在基站之间的临时网络节点上)迁移应用。目的地节点(例如,第二基站)可以向源节点(例如,第一基站)发送请求应用容器的“兴趣分组”。例如,当汽车在基站的覆盖区域之间穿越时,第二基站可以从汽车接收针对第一基站上运行的应用产生的数据的请求。该请求(例如,针对不同的节点处的应用提供的数据)可以使第二基站发送从第一基站向第二基站迁移相应应用(换句话说,应用容器以及任何关联的状态)的迁移请求。
在ICN的上下文中,兴趣分组包括对一些指定数据的请求。兴趣分组可以在整个ICN中跨节点转发,直到指定数据的生产者接收到兴趣分组为止。ICN中的每个节点可以通过使用内部存储的转发信息库(FIB)来确定将兴趣分组转发到的下一节点(例如,面(face))。FIB可以存储与前缀或名称相关联的面的列表,以用于取回数据。FIB可用于通过将兴趣分组匹配到(例如,利用包括在兴趣分组中的名称或指定数据源)最长前缀或最紧密匹配的名称,来识别兴趣分组要转发到的合适的面。面可以包括接口(例如网络接口等)、下一跳L2以太网地址、下一跳IP地址(例如,用于IP上的ICN)、本地应用、或ICN内的任何其他可能的下一跳。
响应于接收到兴趣分组,生产者可以生成指定数据,并将其作为“数据分组”发送回整个ICN,该“数据分组”可以基于未决兴趣表(PIT)中的条目在ICN中的节点之间转发,这些条目是当原始兴趣分组穿越通过ICN时生成的。PIT上的每个条目包括请求面(例如,从其转发了兴趣分组的面),因此可以将数据分组与适当的PIT条目进行匹配,然后转发到存储在该条目中的每个面。每个接收面可以重复该过程(例如,匹配适当的PIT条目并相应地进行转发),直到将数据分组转发到从其生成了相应兴趣分组的节点为止。ICN的节点的聚集的FIB和PIT通常被简单地称为转发平面等。
回到上面的汽车的示例,第一基站或源节点可以通过ICN接收请求应用容器的兴趣分组。作为响应,源节点可以将应用容器的副本作为数据分组在ICN上传输,并返回给发出请求的目的地节点。换句话说,ICN可以将应用视为可传输数据对象。此外,所述可传输数据对象可以使用与针对应用的兴趣(例如,应用兴趣)所使用的名称前缀(至少一部分地)共享的可路由名称前缀。例如,应用兴趣可以具有以下形式:~/prefix/for/app/some/content。相比之下,容器兴趣可以采用以下形式:~/prefix/for/app/migration。每个兴趣都包含前缀:~/prefix/for/app。结果,由转发的应用兴趣导致的路由平面的构建也可以用于解决容器兴趣。
在一些示例中,应用容器的副本可以是清单(manifest)的形式。作为示例而非限制,清单可以包括配置文件和多个“层”或应用图像(例如,存储器快照),它们可以一个叠在另一个上面,直到构建了形成为整体的(cohesive)和可操作的容器化应用为止。与应用容器的副本前往目的地节点并行地,源节点处的应用容器可以继续服务于从ICN作为兴趣分组接收的请求。
一旦请求应用容器的最终兴趣分组被接收到,源节点就可以关闭应用容器。例如,在使用包括层的清单来发送应用容器的情况下,由于顺序的兴趣分组各自请求一个或多个层,可以迭代地请求每层。然后可以将任何剩余状态作为数据分组发送到目的地节点。在一些示例中,应用可以响应于处理请求等或作为其一部分来更新内部状态等。由于应用在迁移期间继续对请求进行服务,因此在应用容器副本发送时的应用状态可能与源节点准备关闭应用时的应用状态不同。为了确保无缝服务而没有任何数据丢失,可以将状态变化作为例如附加清单层等传输到目的地节点。
在一些示例中,可以定义两个通道用于穿越ICN。第一通道可以定义应用容器从源节点到目的地节点的迁移路径。该第一通道可以用于应用容器本身中的兴趣分组、或容器兴趣,因此可以链接目的地节点或管理器(hypervisor)以及源节点或管理器。此外,两个通道可以由如以上讨论的从共享前缀命名方案产生的共享转发平面隐式定义。实际上,可以维持两个通道,而无需管理转发平面等的任何附加状态。
第一通道可以促进应用容器的图像在通道端点之间的传输。在一个示例中,可以使用基于清单的ICN交换。应用容器的基本图像(例如,包括存储在盘上的二进制和配置文件)和当前图像(例如,随机存取存储器(RAM)的状态等)可以迭代地作为数据分组发送到目的地节点。
相比之下,第二通道可以定义来自MEC设备(例如以上讨论的示例中的汽车)的通过ICN的请求路径。第二通道可以将兴趣分组从MEC设备传送到源节点上的应用,以便在整个迁移过程中继续提供服务。换句话说,应用兴趣可以经由第二通道穿越ICN。
在一个示例中,一旦源节点已经发送了包括应用容器的图像的剩余组分的最后数据分组,源节点就可以终止原始容器。此外,然后,由源节点接收的作为应用兴趣分组的任何请求可以存储在缓冲器(例如,源缓冲器节点)中,以稍后传输到经迁移的应用(例如,在目的地节点处的完成的应用)。
一旦目的地节点接收到容器图像的剩余组分,它就可以启动容器,以便经迁移的应用对请求进行服务等。此外,目的地节点可以更新ICN的转发平面,以确保应用兴趣分组提供到它。在一些示例中,目的地节点发送“Map-Me”协议等,这些协议可用于使用适当的面和/或前缀来更新转发平面。
在一个示例中,可以响应于从目的地节点接收到转发平面更新,将存储在源节点处的缓冲的应用兴趣分组发送到目的地节点。实际上,更新的接收可以通知源节点适当的面,通过该面将应用兴趣分组转发到经迁移的应用。
在一些示例中,目的地节点可以缓冲在应用处于迁移中(mid-migration)时接收到的应用兴趣(例如,通过包括目的地节点缓冲器)。在这种情况下,和/或在请求的顺序是应用执行的因素的情况下(例如,在每个请求依赖于应用的内部状态并且每个请求还更改了应用的内部状态等的情况下),目的地节点处的缓冲器可以接收来自源节点的缓冲器,并将缓冲器合并为适当的顺序。
此外,可以更新请求(例如,应用兴趣)的返回路径,以便确保合适的递送,例如,请求是通过第一节点发送的,但是应该通过第二节点接收,例如在汽车在基站覆盖范围之间转换时发送请求的情况下等。在一些网络配置(例如ICN)中,不包含源地址的请求的增加的难度可能使此成为特别有挑战的场景。在一个示例中,可以使用两分法(bifurcatedapproach)来适当地更新请求的返回路径。
源节点可以将其针对经迁移应用的PIT条目的副本发送到目的地节点。在一些示例中,这可以在缓冲的兴趣分组之前发送,并且因此可以附加地向目的地节点提供指示以停止处理任何其他方式接收到的应用兴趣分组,直到接收到来自源节点的缓冲的应用兴趣分组。然后,可以将接收到的PIT条目合并到目的地节点的PIT中,并且可以使用虚拟环回面将响应存储到目的地节点的内容存储装置中,或发送到发出请求的MEC设备(例如,汽车)等。
此外,源节点可以针对源节点PIT上的任何未满足的条目将标记的应用兴趣发送到目的地节点。标记的应用兴趣可以包含附加内容,包括针对路径上的路由器(例如,转发兴趣分组的路由器)的更新指令。
在每个路由器处,如果针对标记的应用兴趣分组不存在PIT条目,则可以像处理其他任何兴趣一样(例如,作为未标记的应用兴趣)来处理标记的应用兴趣。换句话说,可以为标记的应用兴趣添加新的PIT条目,然后路由器根据FIB将标记的应用兴趣转发到新的面。
如果针对标记的应用兴趣分组存在PIT条目,则可以检查FIB,以便确定可以采取两个行动过程中的哪一个。如果匹配的PIT条目包括与更新的FIB条目相同的面,则可以删除PIT条目,并可以转发标记的应用兴趣(根据FIB)。这样,可以将过时的条目从每个路由器PIT中删除,因为它们与转发到目的地节点的相应应用兴趣分组匹配。
替代地,在存在PIT条目并且经更新的FIB条目指示不同的面的情况下,仅根据FIB转发标记的应用兴趣,并且路由器PIT保持不变。实际上,该“不匹配”指示不相关的应用兴趣分组(例如,当前在目的地节点等处的缓冲器中),因此它已经处于正确的状态。
用于确定经更新路径的上述策略可以通过使用由ICN更新从目的地节点生成的转发路径(例如,经由Map-Me等),来提供确定性性能和减少的网络开销。实际上,不探索不成功的路径,因此不会不必要地浪费网络计算时间和带宽使用。在MEC设备的上下文中,这可具有增加的益处,因为迁移可能在拓扑上较远的节点之间发生,因此节点之间可能存在许多不成功的路径。在一些示例中,可以通过例如将包括所有相关后缀、名称和/或类似物的一个兴趣分组发送到目的地节点,来将所有缓冲的应用兴趣分组聚合为单个兴趣分组。
图1A-1B均描绘了操作环境100,在该操作环境100中可以在网络节点之间转移或迁移被托管应用。例如,当访问被托管应用的用户在物理节点之间移动时,发生迁移。在一些示例中,当用户在网络切片之间转换服务时,可能发生迁移。当在网络切片等之间转换时,用户与托管被访问的应用的节点之间的路径可能虚拟地变大(例如,由于网络图上的通过要求(traversal requirement)等)或者物理地变大(例如,由于节点、或服务器在物理上相距较远)。在这种情况下,将被托管应用迁移到更接近的虚拟节点或物理节点可提供减少的时延和/或增加的响应度,以及本领域普通技术人员显而易见的其他益处。
操作环境100包括网络102,该网络102可以是移动无线网络或其他通信网络。网络102可以由一个或多个运营商或服务提供商提供,并且包括用于执行网络功能等的服务器108A-B。例如,服务于特定消费者或消费者群的网络切片可以在网络102中跨服务器108A-B分布。服务器108A-B可以托管一个或多个网络功能,例如但不限于,认证和移动性管理功能、会话管理功能、策略管理功能、以及其他对于本领域普通技术人员来说是显而易见的功能。此外,在一些示例中,服务器108A-B可以附加地提供诸如文件存储之类的其他服务。
服务器108A-B可以网络102上互通信以及与各种基站104A-C互通信。在一些示例中,网络102可以是信息中心网络(ICN)(并且因此服务器108A-B以及基站104A-C可以是信息中心网络(ICN))。网络102的组件作为ICN,服务器108A-B可以虚拟地或通过专用硬件来提供网络102的组件。此外,在一些示例中,基站104A-C可以拥有足够的计算来托管“应用”110A-B或软件应用。虽然应用110A-B是同一应用,但应理解,应用100A是迁移前的、或部署在源节点上的应用,而应用110B是迁移后的、或部署在目的地节点上的同一应用。
应用110A-B可以是任何被托管应用。与本地应用相比,被托管应用在诸如基站104A之类的远程提供商上运行,并且可以由用户通过移动设备、web终端、膝上型计算机、以及对于本领域普通技术人员而言是显而易见的此类设备进行访问。虽然图1A-B将基站104A-B描绘为对应用110A-B进行托管,但是一些示例可以包括对应用110A-B进行托管的服务器108A-B或基站104C。通常,具有足够的计算和网络链接的任何节点都可以对软件应用进行托管或服务。
作为示例而非限制,应用110A可以向汽车106提供导航支持。此处,汽车106沿着道路112行进,作为结果,在基站104A-C之间依次通过。对于时延敏感的应用,可能的情况是,软件应用在对于相应用户的最接近接收传输节点处保持存在。例如,当汽车106从与基站104A的阈值接近度退出并进入与基站104B的阈值接近度时,应用110A-B可以在基站104A-B之间迁移。
迁移可以由例如基站104A-C在其间接收和处理来自汽车106的信号的开关触发。例如,当汽车106保持与基站104A主要接触时,来自汽车106的请求来自应用110A-B的服务的信号可以立即由接收基站104A进行服务。但是,一旦汽车106转换到由基站104B控制的服务区域(例如,由于主要接触而是基站104B),则针对应用110A-B的服务请求最初可以被路由到基站104A上托管的应用110A,因此基站104B可以从汽车106接收前往基站104A上的应用110A的服务请求。在一些示例中,这可以触发应用110A-B向基站104B的迁移,从而因为距(对迁移的应用110B进行托管的)基站104B的传输和路由距离更短,所以来自汽车106的服务请求可以得到更敏捷的响应。
在一些示例中,在节点之间的迁移期间,软件应用的变量或状态可能继续改变。此处,当应用110A-B提供导航协助时,应用110A-B维护的状态可包括(例如但不限于)汽车106沿道路112移动时的位置信息、所选路线、实时交通信息、建议路线、以及本领域普通技术人员显而易见的其他此类信息。此外,当向应用110B的迁移发生并且请求服务器从应用110A转换到应用110B时,应用110A可以继续为来自汽车106的请求提供服务。
图2描绘了用于将应用110A-B从基站104A移动到基站104C的迁移环境200。应该理解,可以执行相同的过程以将应用110A-B移动到基站104B、或者实际上与网络102连接的任何其他有能力的节点(例如,服务器108A-B等)。在一些示例中,迁移可以由网络事件触发(例如,汽车106从基站104A服务的区域行进到基站104C服务的区域、达到阈值数量的路由跳数等)。在一些示例中,迁移可以由来自用户、系统或网络管理员、或本领域普通技术人员显而易见的其他网络参与者的请求来触发。
在一些示例中,为了在迁移具有最新状态的应用110A-B时提供无缝服务(例如,在整个迁移过程中继续对请求进行服务),可以经由两个通道208、210进行应用的迁移。迁移通道210服务于容器兴趣,并提供应用110A-B的转移;同时,服务通道208服务于应用兴趣,并在应用110B进行部署并准备接管服务时使得应用100A能够继续对请求进行服务。
在触发应用110A-B的迁移后,基站104C可以向基站104A发送针对应用容器图像202的服务请求。在一些示例中,在网络102是ICN的情况下,服务请求可以指定所寻求的应用或应用实例化。在ICN架构中,网络102然后可以将服务请求传送到能够满足该请求的端点(例如,托管应用110A的基站104A)。
在接收到针对应用容器图像202的服务请求后,基站104A可以产生应用容器图像202并将其通过迁移通道210发送给基站104C。在一些示例中,应用容器图像202包括配置文件204和多个容器图像层206。配置文件204可以包括各种变量定义和设定,例如但不限于,端口设定、存储器设定、用户设定等。容器图像层206可以包括基础层,在该基础层上放置多个其他层以便生成完整的应用容器图像。在一些示例中,基础层可以提供核心操作系统或内核,并且每个顺序分层堆放的容器图像层206提供文件、组件和可执行的二进制映射,这些映射按顺序重叠以便为稍后“安装的”图像提供依赖关系等。在一些示例中,容器图像层206的每层可以通过迁移通道210被顺序地发送到基站104C,以便产生应用110B。
同时,应用110A可以继续对由基站104C接收并通过服务通道208经由网络102发送给基站104A的请求进行服务。在一些示例中,对于迁移的一部分或全部,应用110A可以停止对请求进行服务并且基站104A可以替代地维持请求的缓冲器,这些缓冲器稍后被传输到基站104C并且要由应用110B进行服务。一旦容器图像层206被基站104C完全接收,就可以完全实例化应用110B,并且可以关闭应用110A并将其从基站104A移除。此外,可以通过服务通道208或迁移通道210将基站104A所持有的针对应用110A-B的任何所缓冲服务请求发送到基站104C处的应用110B。
在一些示例中,可以标记最终缓冲的传输,以便在ICN上更新未决兴趣表(PIT)条目。此外,在一些示例中,应用110B可以在被启动时在整个ICN中更新转发信息库(FIB)条目。在基站104A处对FIB更新的接收可以向基站104A发信号通知将标记的经缓冲传输发送到基站104C,以由应用110B进行处理,并在沿着去往基站104C的路径的节点处更新PIT条目(以下关于图4进一步讨论)。一旦应用110B已经接收到缓冲的传输,就可以由应用110B按照这些传输被接收的顺序来处理缓冲的传输。在一些示例中,例如,在服务请求处理的顺序对于请求本身的处理重要或必要的情况下,应用110B在等待来自应用110A的请求缓冲器时可以缓冲接收到的请求。
应用容器(例如但不限于应用110A-B)可以如图3所示并根据方法300进行迁移。方法300可以在例如网络102等上执行。在一些示例中,方法300可以由例如在基站104A-C之间行进的汽车106触发,基站104A-C可以被表示为网络图或其他拓扑抽象等内的节点。
例如,在汽车106行驶离开基站104A的传输范围并进入基站104B的传输范围的情况下,基站104B(目的地节点)可从汽车106接收到对应用(例如应用110A)的兴趣或服务请求,该兴趣或服务请求的形式为对导航应用等的服务请求。结果,源节点然后可以从目的地节点接收应用容器兴趣(操作302)。换句话说,目的地节点可以从源节点请求应用本身(例如,与对服务请求进行路由等形成对比)。
在接收到应用容器兴趣后,源节点可以缓冲另外的应用兴趣以稍后处理(操作304)。实际上,缓冲器可以是专门的未决兴趣表(PIT)或PIT的一部分。在一些示例中,通过例如服务通道210接收的任何兴趣都可以被缓冲,以供应用被成功迁移之后的稍后处理。
然后,源节点可以使用容器清单通过网络(例如,网络102)将容器图像的副本发送到目的地节点(操作306)。在一些示例中,容器清单可包括配置文件和多个图像层(如上所述)。在一些示例中,可以例如通过以下方式迭代地完成发送容器图像,首先发送用于在目的地节点处创建空容器的配置文件。然后,可以将基础层发送并部署到空容器,之后发送顺序文件图像层并将其迭代地覆盖在目的地节点处的容器内,以便生成容器图像的完整副本。
在一些示例中,每个容器文件图像层的每次成功部署可以使目的地节点发送容器兴趣(例如,通过迁移通道210)。结果,一旦源节点接收到最后的容器兴趣,就可以关闭源节点处的应用容器(操作308)。在一些示例中,各种“状态”可以与源节点处的应用容器相关联,例如但不限于,辅助容器、配置文件、用户变量等。可以将任何剩余状态从源节点发送到目的地节点(操作310)。
目的地节点可以接收剩余状态并且在例如网络102上更新路由平面信息作为响应(操作312)。在一些示例中,剩余状态可以包括例如应用容器的最新RAM图像(例如,映射到进程的当前状态)等。此外,在一些示例中,目的地节点可以通过诸如Map-Me等协议、或使用图或网络探索和重写规则的其他算法、以及对于本领域普通技术人员将显而易见的此类项,来更新路由平面。特别地,在ICN等中,目的地节点可以更新ICN内的路由器的转发信息库(FIB),使得与例如应用110A-B相关联的兴趣被正确地路由到迁移的应用。
在一些示例中,一旦FIB已经如以上所讨论的被更新,则还可以更新网络(例如,ICN)内的路由器的未决兴趣表(PIT)。图4描绘了方法400,方法400用于执行这样的更新,该更新使得最初与例如应用110A相关联的任何未决兴趣可以将该关联改变为与应用110B(例如,迁移的应用)。
用于源节点的未决兴趣表可以迁移到目的地节点(操作402)。在一些示例中,源节点可以在例如从目的地节点接收到FIB更新后发起迁移(例如,作为操作312的一部分)。在一些示例中,用于源节点的PIT可以在例如通过迁移通道210而迁移。
然后,源节点可以使用更新的路由器FIB将针对未满足的PIT条目的应用兴趣发送到目的地节点(操作404)。在一些示例中,应用兴趣可以被标记,使得接收路由器将在接收到应用兴趣后执行比较和/或更新过程。此外,在一些示例中,可以在网络上发送包括所有未满足的未决应用兴趣的单个分组,以在后续操作中更高效地更新路由器PIT。
接收到应用兴趣的路由器可以删除与存储在更新的FIB条目中针对相同目的地指向相同的面(例如,网络节点或接口、路由器、基站等)的PIT条目(操作406)。然而,在接收应用兴趣的路由器包含与更新的FIB条目指向不同的面的PIT条目时,可以保留该PIT条目,并根据FIB条目转发应用兴趣。换句话说,更新的FIB指向引导特定于例如应用110B(例如,迁移的应用110A-B)的兴趣的特定面,因此,旨在用于应用110A(例如,“迁移前”的应用110A-B)的PIT条目现在应重定向到针对迁移的应用的特定面。
接收应用兴趣的路由器还可以添加路由器PIT不存在的与所发送的应用兴趣有关的PIT条目(操作408)。实际上,这会将路由器PIT更新为网络的当前状态。在一些示例中,在由于迁移而导致网络路径改变的情况下,一些路由器(以及因此关联的PIT)可能不再沿着该网络路径,并且现在可能将其他一些路由器新添加到网络路径中,以提供到迁移的应用的有效路由。一旦网络的PIT条目已更新,整个网络就可以在PIT和FIB中准确反映到迁移的应用的正确路径。
尽管图5所示的系统是本公开的一个特定的网络设备,但它绝不是可以在其上实现本文概念的唯一网络设备架构。例如,可以使用具有处置通信以及路由计算等的单个处理器的架构。此外,其他类型的面和介质也可以与网络设备500一起使用。
不管网络设备的配置如何,它都可以采用一个或多个存储器或存储器模块(包括存储器506),该存储器或存储器模块被配置为存储用于通用网络操作的程序指令以及用于本文描述的漫游、路由优化和路由功能的机制。例如,程序指令可以控制操作系统和/或一个或多个应用的操作。一个或多个存储器还可以被配置为存储诸如移动性绑定、注册和关联表之类的表。存储器506还可保持各种软件容器以及虚拟化的执行环境和数据。
网络设备500还可以包括专用集成电路(ASIC),该ASIC可以被配置为执行路由、交换和/或其他操作。ASIC可以通过连接510与网络设备500中的其他组件通信,以交换数据和信号并协调网络设备500进行的各种类型的操作,例如路由、交换和/或数据存储操作。
图6示出了计算系统架构600,其包括使用诸如总线之类的连接605彼此电通信的组件。系统600包括处理单元(CPU或处理器)610和系统连接605,该系统连接605将包括诸如只读存储器(ROM)620和随机存取存储器(RAM)625之类的系统存储器615的各种系统组件耦合至处理器610。系统600可以包括与处理器610直接连接、紧密接近或集成为其一部分的高速存储器的缓存。系统600可以将数据从存储器615和/或存储设备630复制到缓存612以供处理器610快速访问。以这种方式,缓存可以提供性能提升,从而避免了处理器610在等待数据时的延迟。这些模块和其他模块可以控制处理器610或被配置为控制处理器610执行各种动作。其他系统存储器615也可供使用。存储器615可以包括具有不同性能特性的多种不同类型的存储器。处理器610可以包括任何通用处理器和硬件或软件服务(例如存储在存储设备630中的服务1 632、服务2 634和服务3 636),该硬件或软件服务被配置为控制处理器610,并且处理610可以包括专用处理器,在该专用处理器中软件指令被并入实际的处理器设计。处理器610可以是完全自包含的计算系统,其包含多个核心或处理器、总线、存储器控制器、缓存等。多核处理器可以是对称的或非对称的。
为了使用户能够与计算设备600进行交互,输入设备645可以表示任何数量的输入机制,例如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等等。输出设备635也可以是本领域技术人员已知的许多输出机制中的一种或多种输出机制。在一些情况下,多模态系统可以使用户能够提供多种类型的输入以与计算设备600通信。通信接口640通常可以支配和管理用户输入和系统输出。对于在任何特定硬件布置上的操作没有限制,因此在开发了改进的硬件或固件布置时,本文的基本功能可以很容易地替换为改进的硬件或固件布置。
存储设备630是非易失性存储器,并且可以是硬盘或可以存储可由计算机访问的数据的其他类型的计算机可读介质,例如磁带、闪存卡、固态存储设备、数字通用盘、盒式磁带、随机存取存储器(RAM)625、只读存储器(ROM)620、以及前述项的混合。
存储设备630可以包括用于控制处理器610的服务632、634、636。可以设想其他硬件或软件模块。存储设备630可以连接到系统连接605。在一方面中,执行特定功能的硬件模块可以包括存储在计算机可读介质中的软件组件,该软件组件与必要的硬件组件(例如,处理器610、连接605、输出设备635等)相关联地以执行该功能。
为了解释清楚起见,在一些情况下,本技术可以被表示为包括各个功能块,这些功能块包括含设备、设备组件、以软件或硬件和软件的组合体现的方法中的步骤或例程的功能块。
在一些示例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身之类的介质。
可以使用存储或以其他方式从计算机可读介质可用的计算机可执行指令来实现根据上述示例的方法。这样的指令可以包括例如引起或以其他方式配置通用计算机、专用计算机或专用处理设备以执行特定功能或功能组的指令和数据。可以通过网络访问所使用的计算机资源的一部分。计算机可执行指令可以是例如二进制、中间格式指令,例如汇编语言、固件或源代码。可用于存储指令、所用信息、和/或在根据所述示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、配备有非易失性存储器的USB设备、网络存储设备、等等。
实现根据这些公开的方法的设备可以包括硬件、固件和/或软件,并且可以采用多种外形中的任何一种。这样的外形的典型示例包括膝上型计算机、智能电话、小型外形的个人计算机、个人数字助理、机架安装设备、独立设备等等。本文描述的功能也可以体现在外围设备或附加卡中。作为进一步的示例,这样的功能还可以在单个设备中执行的不同芯片或不同过程之间的电路板上实现。
指令、用于传达这样的指令的介质、用于执行这些指令的计算资源、以及用于支持这样的计算资源的其他结构是用于提供这些公开中所描述的功能的手段。
本文提供了许多示例以增强对本公开的理解。本公开的一组特定陈述包括:
陈述1:公开了一种方法,包括:由源节点通过信息中心网络接收针对应用容器的兴趣分组,所述兴趣分组包括将应用迁移到目的地节点的请求,并且所述信息中心网络包括所述源节点与所述目的地节点之间的一个或多个临时网络节点;通过所述临时网络节点向所述目的地节点发送所述应用容器的副本;在所述源节点处关闭所述应用容器;通过所述临时网络节点向所述目的地节点发送剩余容器状态,所述剩余容器状态包括:在发送所述应用容器的副本期间发生的针对所述应用的运行时的改变;以及由所述目的地节点更新网络的路由平面,以将针对所述应用容器的网络业务路由到所述目的地节点。
陈述2:公开了根据陈述1所述的方法,还包括:在所述源节点处生成源节点缓冲器,以接收并保持指向所述应用并且是在所述源节点处接收到的请求;以及通过所述临时网络节点从所述源节点向所述目的地节点发送所述源节点缓冲器。
陈述3:公开了根据陈述2所述的方法,还包括:在所述目的地节点处生成目的地节点缓冲器,以接收并保持指向所述应用并且是在所述应用迁移时在所述目的地节点处接收到的请求。
陈述4:公开了根据陈述3所述的方法,还包括:在所述目的地节点处将所述源节点缓冲器合并到所述目的地节点缓冲器中。
陈述5:公开了根据陈述4所述的方法,其中,合并的源节点缓冲器和目的地节点缓冲器的应用请求是根据接收时间来排序的。
陈述6:公开了根据前述陈述1至5中的任一项所述的方法,其中,更新所述网络的路由平面包括:从所述源节点向所述目的地节点发送针对所述应用容器的一个或多个表条目;在所述目的地节点处,将针对所述应用容器的所述一个或多个表条目合并到所述目的地节点处的表中;从所述源节点向路由器发送所述一个或多个表条目的一部分的标记副本;以及在所述路由器处执行以下操作中的至少一项:删除与所述标记副本匹配的路由器条目、更新路由器条目以引用所述目的地节点、或添加包括所述标记副本的新路由器条目。
陈述7:公开了根据前述陈述1至6中的任一项所述的方法,其中,针对所述应用容器的兴趣分组与针对与所述应用容器相对应的应用所提供的服务的一个或多个兴趣分组共享路由平面和命名约定。
陈述8:公开了一种系统,包括:硬件处理器;以及存储器,所述存储器包括当被所述硬件处理器执行时使所述处理器执行以下操作的指令:由源节点通过信息中心网络接收针对应用容器的兴趣分组,所述兴趣分组包括将应用迁移到目的地节点的请求,并且所述信息中心网络包括所述源节点与所述目的地节点之间的一个或多个临时网络节点;通过所述临时网络节点向所述目的地节点发送所述应用容器的副本;在所述源节点处关闭所述应用容器;通过所述临时网络节点向所述目的地节点发送剩余容器状态,所述剩余容器状态包括:在发送所述应用容器的副本期间发生的针对所述应用的运行时的改变;以及由所述目的地节点更新网络的路由平面,以将针对所述应用容器的网络业务路由到所述目的地节点。
陈述9:公开了根据陈述8所述的系统,所述存储器还包括当被所述硬件处理器执行时使所述处理器执行以下操作的指令:在所述源节点处生成源节点缓冲器,以接收并保持指向所述应用并且是在所述源节点处接收到的请求;以及通过所述临时网络节点从所述源节点向所述目的地节点发送所述源节点缓冲器。
陈述10:公开了根据陈述9所述的系统,所述存储器还包括当被所述硬件处理器执行时使所述处理器执行以下操作的指令:在所述目的地节点处生成目的地节点缓冲器,以接收并保持指向所述应用并且是在所述应用迁移时在所述目的地节点处接收到的请求。
陈述11:公开了根据陈述10所述的系统,所述存储器还包括当被所述硬件处理器执行时使所述处理器执行以下操作的指令:在所述目的地节点处将所述源节点缓冲器合并到所述目的地节点缓冲器中。
陈述12:公开了根据陈述11所述的系统,其中,合并的源节点缓冲器和目的地节点缓冲器的应用请求是根据接收时间来排序的。
陈述13:公开了根据之前陈述8至12中的任一项所述的系统,其中,更新所述网络的路由平面包括:从所述源节点向所述目的地节点发送针对所述应用容器的一个或多个表条目;在所述目的地节点处,将针对所述应用容器的所述一个或多个表条目合并到所述目的地节点处的表中;从所述源节点向路由器发送所述一个或多个表条目的一部分的标记副本;以及在所述路由器处执行以下操作中的一项:删除与所述标记副本匹配的路由器条目、更新路由器条目以引用所述目的地节点、或添加包括所述标记副本的新路由器条目。
陈述14:公开了根据之前陈述8至13中的任一项所述的系统,其中,针对所述应用容器的兴趣分组与针对与所述应用容器相对应的应用所提供的服务的一个或多个兴趣分组共享路由平面和命名约定。
陈述15:公开了一种非暂时性计算机可读介质,该非暂时性计算机可读介质包括当被网络设备执行时使所述网络设备执行以下操作的指令:由源节点通过信息中心网络接收针对应用容器的兴趣分组,所述兴趣分组包括将应用迁移到目的地节点的请求,并且所述信息中心网络包括所述源节点与所述目的地节点之间的一个或多个临时网络节点;通过所述临时网络节点向所述目的地节点发送所述应用容器的副本;在所述源节点处关闭所述应用容器;通过所述临时网络节点向所述目的地节点发送剩余容器状态,所述剩余容器状态包括:在发送所述应用容器的副本期间发生的针对所述应用的运行时的改变;以及由所述目的地节点更新网络的路由平面,以将针对所述应用容器的网络业务路由到所述目的地节点。
陈述16:公开了根据陈述15所述的非暂时性计算机可读介质,还包括当被网络设备执行时使所述网络设备执行以下操作的指令:在所述源节点处生成源节点缓冲器,以接收并保持指向所述应用并且是在所述源节点处接收到的请求;以及通过所述临时网络节点从所述源节点向所述目的地节点发送所述源节点缓冲器。
陈述17:公开了根据陈述16所述的非暂时性计算机可读介质,还包括当被网络设备执行时使所述网络设备执行以下操作的指令:在所述目的地节点处生成目的地节点缓冲器,以接收并保持指向所述应用并且是在所述应用迁移时在所述目的地节点处接收到的请求。
陈述18:公开了根据陈述17所述的非暂时性计算机可读介质,还包括当被网络设备执行时使所述网络设备执行以下操作的指令:在所述目的地节点处将所述源节点缓冲器合并到所述目的地节点缓冲器中,所述合并的缓冲器是根据接收时间来排序的。
陈述19:公开了根据之前陈述15至18中的任一项所述的非暂时性计算机可读介质,其中,针对所述应用容器的兴趣分组与针对与所述应用容器相对应的应用所提供的服务的一个或多个兴趣分组共享路由平面和命名约定。
陈述20:公开了根据之前陈述15至19中的任一项所述的非暂时性计算机可读介质,其中,更新所述网络的路由平面包括:从所述源节点向所述目的地节点发送针对所述应用容器的一个或多个表条目;在所述目的地节点处,将针对所述应用容器的所述一个或多个表条目合并到所述目的地节点处的表中;从所述源节点向路由器发送所述一个或多个表条目的一部分的标记副本;以及在所述路由器处执行以下操作中的一项:删除与所述标记副本匹配的路由器条目、更新路由器条目以引用所述目的地节点、或添加包括所述标记副本的新路由器条目。
尽管使用各种示例和其他信息来解释所附权利要求的范围内的各个方面,但是不应基于这样的示例中的特定特征或布置来暗示对权利要求的限制,因为本领域的普通技术人员将能够使用这些示例来导出各种各样的实现方式。此外,虽然可能已经用特定于结构特征和/或方法步骤的示例的语言描述了一些主题,但是应理解,所附权利要求中限定的主题不一定限于这些描述的特征或动作。例如,这样的功能性可以不同地分布在除本文所标识的那些组件之外的组件中或在除本文所标识的那些组件之外的组件中执行。而是,将描述的特征和步骤公开为在所附权利要求的范围内的系统的组件和方法的示例。
记载“集合中的至少一个”的权利要求语言表示该集合中的一个成员或该集合中的多个成员满足权利要求。例如,记载“A和B中的至少一个”的权利要求语言是指A、B、或A和B。
Claims (20)
1.一种方法,包括:
由源节点通过信息中心网络接收针对应用容器的兴趣分组,所述兴趣分组包括将应用迁移到目的地节点的请求,并且所述信息中心网络包括所述源节点与所述目的地节点之间的一个或多个临时网络节点;
通过所述临时网络节点向所述目的地节点发送所述应用容器的副本,同时在所述源节点处所述应用容器继续服务于所述兴趣分组;
在所述源节点处关闭所述应用容器;
通过所述临时网络节点向所述目的地节点发送剩余容器状态,所述剩余容器状态包括:在发送所述应用容器的副本期间发生的针对所述应用的运行时的改变;以及
由所述目的地节点更新所述网络的路由平面,以将针对所述应用容器的网络业务路由到所述目的地节点。
2.根据权利要求1所述的方法,还包括:
在所述源节点处生成源节点缓冲器,以接收并保持指向所述应用并且是在所述源节点处接收到的请求;以及
通过所述临时网络节点从所述源节点向所述目的地节点发送所述源节点缓冲器。
3.根据权利要求2所述的方法,还包括:
在所述目的地节点处生成目的地节点缓冲器,以接收并保持指向所述应用并且是在所述应用迁移时在所述目的地节点处接收到的请求。
4.根据权利要求3所述的方法,还包括:
在所述目的地节点处将所述源节点缓冲器合并到所述目的地节点缓冲器中。
5.根据权利要求4所述的方法,其中,合并的源节点缓冲器和目的地节点缓冲器的应用请求是根据接收时间来排序的。
6.根据前述权利要求中任一项所述的方法,其中,更新所述网络的路由平面包括:
从所述源节点向所述目的地节点发送针对所述应用容器的一个或多个表条目;
在所述目的地节点处,将针对所述应用容器的所述一个或多个表条目合并到所述目的地节点处的表中;
从所述源节点向路由器发送所述一个或多个表条目的一部分的标记副本;以及
在所述路由器处执行以下操作中的至少一项:删除与所述标记副本匹配的路由器条目、更新路由器条目以引用所述目的地节点、或添加包括所述标记副本的新路由器条目。
7.根据前述权利要求中任一项所述的方法,其中,针对所述应用容器的兴趣分组与针对与所述应用容器相对应的应用所提供的服务的一个或多个兴趣分组共享路由平面和命名约定。
8.一种系统,包括:
硬件处理器;以及
存储器,所述存储器包括当被所述硬件处理器执行时使所述处理器执行以下操作的指令:
由源节点通过信息中心网络接收针对应用容器的兴趣分组,所述兴趣分组包括将应用迁移到目的地节点的请求,并且所述信息中心网络包括所述源节点与所述目的地节点之间的一个或多个临时网络节点;
通过所述临时网络节点向所述目的地节点发送所述应用容器的副本,同时在所述源节点处所述应用容器继续服务于所述兴趣分组;
在所述源节点处关闭所述应用容器;
通过所述临时网络节点向所述目的地节点发送剩余容器状态,所述剩余容器状态包括:在发送所述应用容器的副本期间发生的针对所述应用的运行时的改变;以及
由所述目的地节点更新所述网络的路由平面,以将针对所述应用容器的网络业务路由到所述目的地节点。
9.根据权利要求8所述的系统,所述存储器还包括当被所述硬件处理器执行时使所述处理器执行以下操作的指令:
在所述源节点处生成源节点缓冲器,以接收并保持指向所述应用并且是在所述源节点处接收到的请求;以及
通过所述临时网络节点从所述源节点向所述目的地节点发送所述源节点缓冲器。
10.根据权利要求9所述的系统,所述存储器还包括当被所述硬件处理器执行时使所述处理器执行以下操作的指令:
在所述目的地节点处生成目的地节点缓冲器,以接收并保持指向所述应用并且是在所述应用迁移时在所述目的地节点处接收到的请求。
11.根据权利要求10所述的系统,所述存储器还包括当被所述硬件处理器执行时使所述处理器执行以下操作的指令:
在所述目的地节点处将所述源节点缓冲器合并到所述目的地节点缓冲器中。
12.根据权利要求11所述的系统,其中,合并的源节点缓冲器和目的地节点缓冲器的应用请求是根据接收时间来排序的。
13.根据权利要求8至12中的任一项所述的系统,其中,更新所述网络的路由平面包括:
从所述源节点向所述目的地节点发送针对所述应用容器的一个或多个表条目;
在所述目的地节点处,将针对所述应用容器的所述一个或多个表条目合并到所述目的地节点处的表中;
从所述源节点向路由器发送所述一个或多个表条目的一部分的标记副本;以及
在所述路由器处执行以下操作中的一项:删除与所述标记副本匹配的路由器条目、更新路由器条目以引用所述目的地节点、或添加包括所述标记副本的新路由器条目。
14.根据权利要求8至12中的任一项所述的系统,其中,针对所述应用容器的兴趣分组与针对与所述应用容器相对应的应用所提供的服务的一个或多个兴趣分组共享路由平面和命名约定。
15.一种非暂时性计算机可读介质,包括当被网络设备执行时使所述网络设备执行以下操作的指令:
由源节点通过信息中心网络接收针对应用容器的兴趣分组,所述兴趣分组包括将应用迁移到目的地节点的请求,并且所述信息中心网络包括所述源节点与所述目的地节点之间的一个或多个临时网络节点;
通过所述临时网络节点向所述目的地节点发送所述应用容器的副本,同时在所述源节点处所述应用容器继续服务于所述兴趣分组;
在所述源节点处关闭所述应用容器;
通过所述临时网络节点向所述目的地节点发送剩余容器状态,所述剩余容器状态包括:在发送所述应用容器的副本期间发生的针对所述应用的运行时的改变;以及
由所述目的地节点更新所述网络的路由平面,以将针对所述应用容器的网络业务路由到所述目的地节点。
16.根据权利要求15所述的非暂时性计算机可读介质,还包括当被网络设备执行时使所述网络设备执行以下操作的指令:
在所述源节点处生成源节点缓冲器,以接收并保持指向所述应用并且是在所述源节点处接收到的请求;以及
通过所述临时网络节点从所述源节点向所述目的地节点发送所述源节点缓冲器。
17.根据权利要求16所述的非暂时性计算机可读介质,还包括当被网络设备执行时使所述网络设备执行以下操作的指令:
在所述目的地节点处生成目的地节点缓冲器,以接收并保持指向所述应用并且是在所述应用迁移时在所述目的地节点处接收到的请求。
18.根据权利要求17所述的非暂时性计算机可读介质,还包括当被网络设备执行时使所述网络设备执行以下操作的指令:
在所述目的地节点处将所述源节点缓冲器合并到所述目的地节点缓冲器中,所述合并的缓冲器是根据接收时间来排序的。
19.根据权利要求15至18中的任一项所述的非暂时性计算机可读介质,其中,针对所述应用容器的兴趣分组与针对与所述应用容器相对应的应用所提供的服务的一个或多个兴趣分组共享路由平面和命名约定。
20.根据权利要求15至19中的任一项所述的非暂时性计算机可读介质,其中,更新所述网络的路由平面包括:
从所述源节点向所述目的地节点发送针对所述应用容器的一个或多个表条目;
在所述目的地节点处,将针对所述应用容器的所述一个或多个表条目合并到所述目的地节点处的表中;
从所述源节点向路由器发送所述一个或多个表条目的一部分的标记副本;以及
在所述路由器处执行以下操作中的一项:删除与所述标记副本匹配的路由器条目、更新路由器条目以引用所述目的地节点、或添加包括所述标记副本的新路由器条目。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/130,824 | 2018-09-13 | ||
US16/130,824 US10901781B2 (en) | 2018-09-13 | 2018-09-13 | System and method for migrating a live stateful container |
PCT/US2019/050031 WO2020055694A1 (en) | 2018-09-13 | 2019-09-06 | System and method for migrating a live stateful container |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112673603A CN112673603A (zh) | 2021-04-16 |
CN112673603B true CN112673603B (zh) | 2023-03-24 |
Family
ID=68000126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980059040.4A Active CN112673603B (zh) | 2018-09-13 | 2019-09-06 | 用于迁移实时有状态容器的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10901781B2 (zh) |
EP (1) | EP3850810B1 (zh) |
JP (1) | JP7335327B2 (zh) |
CN (1) | CN112673603B (zh) |
CA (1) | CA3112714A1 (zh) |
WO (1) | WO2020055694A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10938946B2 (en) * | 2019-01-14 | 2021-03-02 | Amdocs Development Limited | Handshake of application execution between edge nodes |
US10924401B2 (en) * | 2019-05-15 | 2021-02-16 | International Business Machines Corporation | Live application and kernel migration using routing table entries |
US10917328B2 (en) * | 2019-06-27 | 2021-02-09 | Intel Corporation | Routing updates in ICN based networks |
US11847012B2 (en) * | 2019-06-28 | 2023-12-19 | Intel Corporation | Method and apparatus to provide an improved fail-safe system for critical and non-critical workloads of a computer-assisted or autonomous driving vehicle |
US11240109B2 (en) * | 2019-10-31 | 2022-02-01 | Dell Products, L.P. | Systems and methods for workspace continuity and remediation |
US11184433B2 (en) * | 2020-03-31 | 2021-11-23 | Microsoft Technology Licensing, Llc | Container mobility based on border gateway protocol prefixes |
JP7053740B2 (ja) * | 2020-08-20 | 2022-04-12 | ソフトバンク株式会社 | 移動体、通信システム、通信制御方法及びプログラム |
JP7371609B2 (ja) * | 2020-11-17 | 2023-10-31 | トヨタ自動車株式会社 | 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理システム |
US11928498B2 (en) * | 2021-03-23 | 2024-03-12 | Dell Products, L.P. | Workspace migration system and method of using the same |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398770A (zh) * | 2007-09-30 | 2009-04-01 | 赛门铁克公司 | 迁移一个或多个虚拟机的系统和方法 |
WO2016205977A1 (en) * | 2015-06-26 | 2016-12-29 | Intel Corporation | Techniques to run one or more containers on virtual machine |
WO2018048628A1 (en) * | 2016-09-09 | 2018-03-15 | Veritas Technologies Llc | Systems and methods for performing live migrations of software containers |
Family Cites Families (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2304497A (en) | 1995-08-19 | 1997-03-19 | Northern Telecom Ltd | Cellular communications system with provision of services to visiting mobiles |
US6446092B1 (en) | 1996-11-01 | 2002-09-03 | Peerdirect Company | Independent distributed database system |
US6101585A (en) | 1997-11-04 | 2000-08-08 | Adaptec, Inc. | Mechanism for incremental backup of on-line files |
US6795966B1 (en) | 1998-05-15 | 2004-09-21 | Vmware, Inc. | Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction |
US6917963B1 (en) | 1999-10-05 | 2005-07-12 | Veritas Operating Corporation | Snapshot image for the application state of unshareable and shareable data |
US7412492B1 (en) | 2001-09-12 | 2008-08-12 | Vmware, Inc. | Proportional share resource allocation with reduction of unproductive resource consumption |
US7093086B1 (en) | 2002-03-28 | 2006-08-15 | Veritas Operating Corporation | Disaster recovery and backup using virtual machines |
US7577722B1 (en) | 2002-04-05 | 2009-08-18 | Vmware, Inc. | Provisioning of computer systems using virtual machines |
WO2005043279A2 (en) | 2003-10-31 | 2005-05-12 | Disksites Research And Development Ltd. | Device, system and method for storage and access of computer files |
JP3977803B2 (ja) | 2003-12-17 | 2007-09-19 | 株式会社日立製作所 | バックアップシステム及び方法並びにプログラム |
US7257811B2 (en) | 2004-05-11 | 2007-08-14 | International Business Machines Corporation | System, method and program to migrate a virtual machine |
US7383405B2 (en) | 2004-06-30 | 2008-06-03 | Microsoft Corporation | Systems and methods for voluntary migration of a virtual machine between hosts with common storage connectivity |
US7634430B2 (en) | 2004-12-06 | 2009-12-15 | Hewlett-Packard Development Company, L.P. | System and method for allocating resources in a distributed computational system using proportional share auctions |
US8364638B2 (en) | 2005-09-15 | 2013-01-29 | Ca, Inc. | Automated filer technique for use in virtualized appliances and applications |
JP4668763B2 (ja) | 2005-10-20 | 2011-04-13 | 株式会社日立製作所 | ストレージ装置のリストア方法及びストレージ装置 |
US7627611B2 (en) | 2006-08-17 | 2009-12-01 | Osisoft, Inc. | Conflict resolution in database replication through autonomous node qualified folding |
EP1962192A1 (en) | 2007-02-21 | 2008-08-27 | Deutsche Telekom AG | Method and system for the transparent migration of virtual machine storage |
US8015383B2 (en) | 2007-06-27 | 2011-09-06 | International Business Machines Corporation | System, method and program to manage virtual memory allocated by a virtual machine control program |
US8239646B2 (en) | 2007-07-31 | 2012-08-07 | Vmware, Inc. | Online virtual machine disk migration |
US8364639B1 (en) | 2007-10-11 | 2013-01-29 | Parallels IP Holdings GmbH | Method and system for creation, analysis and navigation of virtual snapshots |
CN101919172B (zh) | 2008-01-30 | 2014-03-26 | 上海贝尔股份有限公司 | 长期统计csi辅助mu-mimo调度方法、基站和用户设备 |
JP2009217404A (ja) | 2008-03-07 | 2009-09-24 | Hitachi Ltd | ストレージシステム |
US8037280B2 (en) | 2008-06-11 | 2011-10-11 | Vmware, Inc. | System and method for improving memory locality of virtual machines |
US8577845B2 (en) | 2008-06-13 | 2013-11-05 | Symantec Operating Corporation | Remote, granular restore from full virtual machine backup |
US20100082922A1 (en) | 2008-09-30 | 2010-04-01 | Vmware, Inc. | Virtual machine migration using local storage |
US8200771B2 (en) | 2008-10-10 | 2012-06-12 | International Business Machines Corporation | Workload migration using on demand remote paging |
US8169856B2 (en) | 2008-10-24 | 2012-05-01 | Oracle International Corporation | Time synchronization in cluster systems |
US8782233B2 (en) | 2008-11-26 | 2014-07-15 | Red Hat, Inc. | Embedding a cloud-based resource request in a specification language wrapper |
US20100217866A1 (en) | 2009-02-24 | 2010-08-26 | Thyagarajan Nandagopal | Load Balancing in a Multiple Server System Hosting an Array of Services |
US8538919B1 (en) | 2009-05-16 | 2013-09-17 | Eric H. Nielsen | System, method, and computer program for real time remote recovery of virtual computing machines |
US8438216B2 (en) | 2009-05-20 | 2013-05-07 | Kaseya International Limited | Remote management of virtual machines hosted in a private network |
US9104407B2 (en) | 2009-05-28 | 2015-08-11 | Red Hat, Inc. | Flexible cloud management with power management support |
US9052825B2 (en) | 2010-08-30 | 2015-06-09 | Vmware, Inc. | System software interfaces for space-optimized block devices |
US8849941B2 (en) | 2010-09-30 | 2014-09-30 | Microsoft Corporation | Virtual desktop configuration and operation techniques |
JP5594049B2 (ja) | 2010-10-18 | 2014-09-24 | 富士通株式会社 | 仮想計算機移動方法、コンピュータ及びプログラム |
US9552215B2 (en) | 2011-03-08 | 2017-01-24 | Rackspace Us, Inc. | Method and system for transferring a virtual machine |
US8554951B2 (en) | 2011-03-08 | 2013-10-08 | Rackspace Us, Inc. | Synchronization and ordering of multiple accessess in a distributed system |
US8490091B2 (en) | 2011-03-28 | 2013-07-16 | International Business Machines Corporation | Virtual machine placement to improve memory utilization |
US20130086298A1 (en) | 2011-10-04 | 2013-04-04 | International Business Machines Corporation | Live Logical Partition Migration with Stateful Offload Connections Using Context Extraction and Insertion |
US20130083690A1 (en) | 2011-10-04 | 2013-04-04 | International Business Machines Corporation | Network Adapter Hardware State Migration Discovery in a Stateful Environment |
US20130238785A1 (en) | 2012-03-06 | 2013-09-12 | Rackspace Us, Inc. | System and Method for Metadata Discovery and Metadata-Aware Scheduling |
US9027024B2 (en) | 2012-05-09 | 2015-05-05 | Rackspace Us, Inc. | Market-based virtual machine allocation |
US9251103B2 (en) * | 2012-08-08 | 2016-02-02 | Vmware, Inc. | Memory-access-resource management |
US9477506B2 (en) | 2013-02-12 | 2016-10-25 | Futurewei Technologies, Inc. | Dynamic virtual machines migration over information centric networks |
US10299171B2 (en) * | 2013-12-03 | 2019-05-21 | Telefonaktiebolaget Lm Ericsson (Publ) | First service network node, a second service network node and methods relating to handling of a service session |
KR102191971B1 (ko) * | 2014-10-10 | 2020-12-16 | 삼성전자주식회사 | 모바일 사용자 경험 개선을 위한 가상 머신 마이그레이션 방법 및 이를 위한 장치 |
EP3213559B1 (en) * | 2014-12-19 | 2019-07-31 | Nec Corporation | Method for operating a centralized radio access network |
TW201624277A (zh) | 2014-12-31 | 2016-07-01 | 萬國商業機器公司 | 協助虛擬機器即時遷移的方法 |
US10218602B2 (en) * | 2015-04-15 | 2019-02-26 | Cisco Technology, Inc. | Establishing deterministic multicast paths in a network |
US10970110B1 (en) * | 2015-06-25 | 2021-04-06 | Amazon Technologies, Inc. | Managed orchestration of virtual machine instance migration |
US9996377B2 (en) * | 2015-06-30 | 2018-06-12 | International Business Machines Corporation | Virtual machine migration via a mobile device |
US20170034055A1 (en) | 2015-07-28 | 2017-02-02 | Futurewei Technologies, Inc. | Handling Consumer Mobility in Information-Centric Networks |
US10178019B2 (en) * | 2015-07-30 | 2019-01-08 | Cisco Technology, Inc. | Low-overhead anchorless managing of producer mobility in information-centric networking |
US10565008B2 (en) * | 2016-07-28 | 2020-02-18 | International Business Machines Corporation | Reducing service downtime during service migration |
US10135948B2 (en) | 2016-10-31 | 2018-11-20 | Cisco Technology, Inc. | System and method for process migration in a content centric network |
JP6882662B2 (ja) | 2016-11-29 | 2021-06-02 | 富士通株式会社 | マイグレーションプログラム、情報処理装置およびマイグレーション方法 |
US10261874B2 (en) * | 2016-12-01 | 2019-04-16 | International Business Machines Corporation | Enabling a cloud controller to communicate with power systems |
US10157076B2 (en) * | 2016-12-27 | 2018-12-18 | Nanning Fugui Precision Industrial Co., Ltd. | Virtual machine migration device and method |
JP2019049818A (ja) * | 2017-09-08 | 2019-03-28 | 富士通株式会社 | 情報処理装置、情報処理システム、情報処理システムの制御方法及びライブマイグレーション制御プログラム |
US10198299B1 (en) * | 2017-10-30 | 2019-02-05 | Vmware, Inc. | Enabling live migration of virtual machines with passthrough PCI devices |
US11153271B2 (en) * | 2018-02-16 | 2021-10-19 | Apple Inc. | Managing bearers in a radio access network |
-
2018
- 2018-09-13 US US16/130,824 patent/US10901781B2/en active Active
-
2019
- 2019-09-06 CN CN201980059040.4A patent/CN112673603B/zh active Active
- 2019-09-06 EP EP19773286.0A patent/EP3850810B1/en active Active
- 2019-09-06 WO PCT/US2019/050031 patent/WO2020055694A1/en unknown
- 2019-09-06 JP JP2021512221A patent/JP7335327B2/ja active Active
- 2019-09-06 CA CA3112714A patent/CA3112714A1/en active Pending
-
2021
- 2021-01-25 US US17/157,646 patent/US11650844B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398770A (zh) * | 2007-09-30 | 2009-04-01 | 赛门铁克公司 | 迁移一个或多个虚拟机的系统和方法 |
WO2016205977A1 (en) * | 2015-06-26 | 2016-12-29 | Intel Corporation | Techniques to run one or more containers on virtual machine |
WO2018048628A1 (en) * | 2016-09-09 | 2018-03-15 | Veritas Technologies Llc | Systems and methods for performing live migrations of software containers |
Also Published As
Publication number | Publication date |
---|---|
JP2021536627A (ja) | 2021-12-27 |
CA3112714A1 (en) | 2020-03-19 |
CN112673603A (zh) | 2021-04-16 |
US20210149715A1 (en) | 2021-05-20 |
EP3850810A1 (en) | 2021-07-21 |
US20200089526A1 (en) | 2020-03-19 |
EP3850810B1 (en) | 2024-06-26 |
WO2020055694A1 (en) | 2020-03-19 |
JP7335327B2 (ja) | 2023-08-29 |
US10901781B2 (en) | 2021-01-26 |
US11650844B2 (en) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112673603B (zh) | 用于迁移实时有状态容器的系统和方法 | |
US10791065B2 (en) | Systems and methods for providing container attributes as part of OAM techniques | |
US11252063B2 (en) | System and method for obtaining micro-service telemetry data | |
CN111108722B (zh) | 使用实时网络业务的复制容器性能和策略验证的系统和方法 | |
US10949235B2 (en) | Network semantics integrated into central processing unit (CPU) chipset | |
US20140280949A1 (en) | Load balancing for a virtual networking system | |
CN108737271B (zh) | 一种报文路由方法、装置及系统 | |
US11323919B1 (en) | Edge computing for mobile devices that migrate in an access network | |
US10873639B2 (en) | Cooperative caching for fast and scalable policy sharing in cloud environments | |
US20210092191A1 (en) | Session management in a forwarding plane | |
US10230795B2 (en) | Data replication for a virtual networking system | |
US11146464B2 (en) | Systems and methods for enabling inter-agent multicast domain name system client roaming in wide area network | |
CN115398872B (zh) | 管理程序和虚拟机之间的动态蜂窝连接 | |
US9426246B2 (en) | Method and apparatus for providing caching service in network infrastructure | |
US20240323129A1 (en) | Flow parser and per flow data center utilization in a cloud-based secure access service environment | |
US11146490B2 (en) | Distributed load balancer health management using data center network manager | |
WO2023018507A1 (en) | Orchestration of overlay paths for wide area network virtualization | |
US10915516B2 (en) | Efficient trickle updates in large databases using persistent memory | |
US11138035B1 (en) | Messaging between device groups using a logical group address in an access network | |
KR20220076826A (ko) | Ndn 기반의 인-네트워크 처리 방법 및 시스템 | |
US12132734B2 (en) | Access control and routing optimization at a cloud headend in a cloud-based secure access service environment | |
US20230269252A1 (en) | Access control and routing optimization at a cloud headend in a cloud-based secure access service environment | |
US20230269228A1 (en) | Pre-emptive flow dropping in a cloud-based secure access service | |
CN117837135A (zh) | 虚拟化网络中的共享缓存 | |
KR20190030854A (ko) | 계층 분산 해시 테이블을 이용한 단말 이동성 지원 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |