CN107077366A - 用于主与辅虚拟机之间的检查点/传递的技术 - Google Patents
用于主与辅虚拟机之间的检查点/传递的技术 Download PDFInfo
- Publication number
- CN107077366A CN107077366A CN201480081838.6A CN201480081838A CN107077366A CN 107077366 A CN107077366 A CN 107077366A CN 201480081838 A CN201480081838 A CN 201480081838A CN 107077366 A CN107077366 A CN 107077366A
- Authority
- CN
- China
- Prior art keywords
- checkpoint
- svm
- pvm
- output
- similitude
- 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
Links
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1461—Backup scheduling policy
-
- 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/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/45595—Network integration; Enabling network access in virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Abstract
示例可包括基于输出分组相似性来确定用于主和辅虚拟机的检查点/传递策略。输出分组相似性可基于时间间隔的比较,经由所述时间间隔内容对于从主和辅虚拟机所输出的分组匹配。检查点/传递模式然后可至少部分基于所确定检查点/传递策略来被选择。
Description
技术领域
本文所描述的示例一般涉及复制运行具有输出分组(其路由到网络)的一个或多个应用的虚拟机(VM)。
背景技术
与客户端计算装置所耦合的网络服务器越来越多地布置成支持或托管(一个或多个)虚拟机(VM),其使多个操作系统和/或应用能够被单个计算平台所支持。另外,在对托管VM的服务器期望高可用性时,主VM(PVM)和辅VM(SVM)各可托管在独立服务器或节点上(例如数据中心内),并且可复制其状态。状态的这个复制可为“不间断服务”提供应用不可知(agnostic)的软件实现硬件容错解决方案。该容错解决方案可在托管PVM的服务器遭受硬件故障时允许SVM接管(故障转移)。
锁步是一种容错解决方案,其可复制每指令的VM状态。例如,PVM和SVM对确定性指令并行地运行,但是对非确定性指令锁步。但是,锁步在应对多处理器(MP)实现(其中各存储器存取可能是非确定性的)时可遭受极大开销。
检查点是另一种容错解决方案,其在周期时期(epoch)将PVM状态复制到SVM。对于检查点,为了保证成功故障转移,所有输出分组可需要被缓冲直到已经完成成功检查点。始终缓冲直到VM环境中的成功检查点可导致因输出分组缓冲的额外网络等待时间以及因频繁检查点(有时称作被动(passive)检查点或周期检查点)的额外开销。
粗粒度锁步(COLO)是又一种容错解决方案,其使PVM和SVM均馈送有来自客户端的相同请求/数据(输入)网络分组。支持COLO的逻辑可以能够监测PVM和SVM的输出响应,并且将SVM的状态看作是PVM状态的有效复制(只要SVM所生成的网络响应(输出)与PVM所生成的网络响应匹配)。如果给定网络响应不匹配,则抑制对客户端的网络响应的传输,直到PVM状态同步(强制新检查点)到SVM状态。因此,COLO可确保容错系统经由到SVM的故障转移是高度可用的。这个高可用性可存在,即使非确定性可表示SVM的内部状态与PVM的内部状态不同,SVM同样有效并且从外部观察者观点来看对实现COLO的容错系统保持一致。因此,通过避免处理锁步中的MP非确定性的复杂度并且降低被动检查点中的检查点频率/开销,COLO可具有优于纯锁步或检查点容错解决方案的优点。COLO可称作主动检查点或按需检查点。
COLO容错解决方案可利用例如与传输控制协议(TCP)栈关联的那些协议的协议。TCP栈可布置成具有每连接的状态,并且可以能够从分组丢失和/或分组重排序进行恢复。COLO可包括使用每TCP连接响应分组比较。如果从PVM所输出的每个TCP连接的响应分组匹配从SVM所输出的每个TCP连接的响应分组,则每TCP连接响应分组比较可将SVM状态看作是有效复制。这个匹配与跨TCP连接的可能分组排序无关。
附图说明
图1示出示例第一系统。
图2示出示例第二系统。
图3示出示例第一数据库。
图4示出示例第一过程。
图5示出示例第三系统。
图6示出示例方案。
图7示出示例第二数据库。
图8示出示例第二过程。
图9示出第一设备的示例框图。
图10示出第一逻辑流程的示例。
图11示出第一存储介质的示例。
图12示出第二设备的示例框图。
图13示出第二逻辑流程的示例。
图14示出第二存储介质的示例。
图15示出第三设备的示例框图。
图16示出第三逻辑流程的示例。
图17示出第三存储介质的示例。
图18示出示例计算平台。
具体实施方式
如本公开中所预期的,COLO可具有优于纯锁步或检查点容错解决方案的优点。COLO可经由使用托管PVM和SVM的服务器极大地改进高度可用容错系统的性能。但是,COLO的性能取决于每个TCP连接的输出相似性。例如,PVM和SVM可生成的每TCP连接的相同输出分组的数量或者PVM和SVM可生成的时长匹配所有TCP连接的输出分组。
而且,单个PVM可按照各种TCP/因特网协议(IP)栈实现来保持众多TCP连接或开启(open)。此外,TCP/IP栈实现可以不是确定性的。正是针对这些难题本文所描述的示例是需要的。
按照一些第一示例,用于PVM与SVM之间的检查点/传递(CP/D)的技术可包括接收指示第一服务器所托管的PVM与第二服务器所托管的SVM之间的输出分组相似性的信息。对于这些示例,输出分组相似性可包括独立时间间隔,经由所述独立时间间隔内容对来自PVM和SVM的输出分组匹配。第一示例还可包括基于该信息来确定用于输出的分组的CP/D策略,并且向COLO管理器发送CP/D策略。COLO管理器然后可至少部分基于CP/D策略来选择CP/D模式。
在一些第二示例中,用于PVM与SVM之间的CP/D的技术可包括将来自第一服务器所托管的PVM的输出分组内容与来自第二服务器所托管的SVM的输出分组内容进行比较。第二示例还可包括确定一个或多个时间间隔,输出分组内容经由所述一个或多个时间间隔匹配,并且基于一个或多个时间间隔来更新指示PVM与SVM之间的输出分组相似性的信息。第二示例还可包括向COLO检查点仲裁器(CCA)发送更新的信息。CCA响应接收更新的信息而可确定用于来自PVM和SVM的输出的分组的CP/D策略。所确定CP/D策略则可从CCA来接收,以及CP/D模式可至少部分基于CP/D策略来选择。
图1示出示例第一系统。在一些示例中,如图1中所示的,第一示例系统包括系统100。系统100包括数据中心105,其具有经由内部网络130与辅节点/服务器120耦合的主节点/服务器110。而且,如图1中所示的,主节点110或辅节点120可经由网络(NW)通信信道142与外部网络140耦合。
按照一些示例,主节点/服务器110和辅节点/服务器120可布置为容错系统的部分。对于这些示例,主节点/服务器110可布置成托管大量PVM 112-1至112-n,其中“n”表示大于1的任何正整数。另外,辅节点/服务器120可布置成托管大量对应SVM 122-1至122-n。
在一些示例中,PVM 112-1和SVM 122-1可以能够独立运行(一个或多个)相同应用101,而PVM 112-n和SVM 122-n可以能够独立运行(一个或多个)相同应用102。对于这些示例,运行(一个或多个)应用101的PVM 112-1/SVM 122-1以及运行(一个或多个)应用102的PVM 112-n/SVM 122-n各可利用一个或多个TCP连接将输出的分组路由到外部网络,例如网络140。
按照一些示例,主节点/服务器110和辅节点/服务器120各可保持相应心跳115和125,以传递总体服务器(例如物理硬件)的健康状态。例如,心跳115可转播(relay)主节点/服务器110的健康状态信息,以使辅节点120能够确定主节点/服务器110是否出故障或者变成无响应并且因而要求SVM 122-1或SVM 122-n进行故障转移,以及成为PVM,以服务于或处理来自耦合到网络140(未示出)的客户端的请求。类似地,心跳125可转播辅节点/服务器120的健康状态信息,以使主节点/服务器110能够确定辅节点/服务器120是否出故障或者变成无响应并且因而要求另一个SVM配置用于提供PVM 112-1或PVM 112-n的容错。
按照一些示例,PVM 112-1和SVM 122-1可在相同内部网络域中进行操作,以用于处理从经由网络140耦合到数据中心105的客户端所接收的请求。对于这些示例,请求可在主节点/服务器110经过外部网络接口118通过网络通信信道142来接收。请求则可同时路由到PVM 112-1和SVM 122-1。
在一些示例中,在主节点110的COLO管理器114以及在辅节点120的COLO管理器124可监测来自PVM 112-1和SVM 122-1的输出/响应。对于这些示例,输出分组内容可由COLO管理器114或COLO管理器124来比较,以确定一个或多个时间间隔,输出分组内容经由一个或多个时间间隔匹配。如以下更详细描述的,这些时间间隔可用来更新指示PVM 112-1与SVM122-1之间的输出分组相似性的信息。指示输出分组相似性的更新的信息可作为统计信息(统计(stats))发送到COLO检查点仲裁器(CCA)113-1。而且,如以下更详细描述的,CCA(例如CCA 113-1)可基于从COLO管理器(例如COLO管理器114)所接收的更新的信息来确定用于来自PVM 112-1和SVM 122-1的输出的分组的CP/D策略。CCA 113-1然后可向COLO管理器114发送所确定CP/D策略。COLO管理器114然后可至少部分基于CP/D策略来选择CP/D模式。COLO管理器114然后可通知COLO管理器124关于CP/D模式改变,使得COLO管理器124可使用相同CP/D模式来控制或管理来自SVM 122-1的输出分组。
按照一些示例,所选择的CP/D模式可包括但不限于按需检查点/即时(instant)传递(“即时”)模式或者周期检查点/缓冲(buffered)传递(“缓冲”)模式。对于即时模式,来自VM的输出的分组可立即路由到外部(Ex.)网络(NW)接口118,而来自SVM的输出分组直接被丢弃(只要输出的分组的内容在PVM 112-1与SVM 122-1之间匹配)。对于这些示例,如果没有匹配,则实现检查点动作(例如VM检查点(CP)111-1和121-1),以使SVM 122-1变成与PVM112-1同步。在这个检查点动作期间,随后的输出的分组的传递可延迟(例如,暂时存储在存储装置116和126和/或存储在系统存储器(未示出))直到检查点动作完成。如以下更详细描述的,可使用即时模式,其中较高输出分组相似性等级通过所确定时间间隔(例如具有大于40毫秒(ms))的平均值的时间间隔)指示,输出分组内容在失配引起检查点动作之前经由所述所确定时间间隔匹配。
在一些示例中,对于缓冲模式,由VM所生成的输出的分组可被缓冲并且被延迟经过外部网络接口118路由到网络140。对于这些示例,输出的分组可延迟值到周期检查点动作完成。与缓冲模式关联的周期检查点动作可基于固定时间间隔,或者可基于动态时间间隔(例如通过CCA 113-1至少部分基于从COLO管理器114所接收的统计来确定)。
按照一些示例,COLO管理器114和124可监测大量PVM/SVM组合的输出分组内容。COLO管理器114然后可向相应CCA(其可至少部分基于从COLO管理器114所接收的信息(例如输出分组相似性)来设置相应CP/D策略)发送信息。那些相应CP/D策略然后可由COLO管理器114用来选择相应CP/D模式。
在一些示例中,如以下更详细描述的,数据中心105(未示出)的至少一部分的COLO池管理器(CPM)可基于哪个CP/D模式被选择而将PVM/SVM组织成VM池。又如以下更详细描述的,即时池可包括托管或运行从即时模式获益更多的应用的那些PVM/SVM。同时,缓冲池可包括运行从缓冲模式获益更多的应用的那些PVM/SVM。CPM可保持数据库,以监测这两个池中包含的PVM/SVM,并且可评估在给定PVM/SVM所运行的一个或多个应用是否可在VM之间迁移,以改进输出分组相似性。另外,CPM管理器可与通过数据中心105所定位的其他CPM管理器(未示出)协调以用于VM之间的应用的可能迁移。
图1描绘一种类型的混合虚拟机管理器(VMM)模型,其中特权客户操作系统可用来运行本机装置驱动程序并且管理其他客户。在其他示例中,VMM模型(例如管理程序模型)(其中VMM本身像OS一样表现,并且运行本机驱动程序)或者基于主机的模型(其中VMM是主机OS的模块)的类型可在与数据中心105相似的数据中心来实现。示例并不是排他地局限于混合VMM模式、管理程序VMM模型或基于主机OS的VMM模型。PVM与SVM之间的CP/D的示例可同样适用于两种类型的VMM模型。
图2示出示例第二系统。如图2中所示的,第二系统包括系统200。如图2中所示的系统200描绘COLO管理器214与CCA 213之间的用于使输出的分组被传递给外部网络的示例交互。按照一些示例,COLO管理器214和CCA 213可促进涉及如以上对于图1所提到的一个或多个PVM/SVM组合的使用的VM复制方案的实现。
在一些示例中,如图2中所示的,PVM输出分组(pkt)内容和SVM输出分组内容可由COLO管理器214来接收。这些输出分组内容可由一个或多个VM来输出,每个VM由数据中心的独立节点或服务器来托管。对于这些示例,COLO管理器214的逻辑和/或特征可以能够基于一个或多个时间间隔或时长来确定输出分组相似性,经由所述一个或多个时间间隔或时长来自PVM的输出分组内容匹配来自SVM的输出分组内容。可采集统计信息(统计),以指示输出分组相似性和/或指示与输出分组相似性关联的趋势。统计可包括但不限于一个或多个时间间隔或者与一个或多个时间间隔关联的时刻。如图2中所示的,在一些示例中,统计可传送给CCA 213。统计可在周期基础上、事件触发基础上(例如输出分组阈值)和/或连续基础上(例如,在各时间间隔确定之后)传送。
按照一些示例,CCA 213的逻辑和/或特征可至少部分基于从COLO管理器214所接收的统计来确定用于来自PVM和SVM的输出的分组的CP/D策略。CP/D策略可发送到COLO管理器214,并且可为COLO管理器214在即时模式或缓冲模式之间进行选择来指示或提供标准。在COLO管理器214的逻辑和/或特征还可以能够告知或通知通过SVM所定位的COLO管理器关于选择哪一种CP/D模式。
在一些示例中,CP/D策略可基于通过从COLO管理器214所接收的统计所指示的输出分组相似性等级。例如,较高输出分组相似性等级可指示检查点动作之间的较长时间时长(例如由于不匹配的输出分组内容)。基于这些较长时间时长,CCA 213可设置策略,其定义多个连续检查点动作之间的间隔阈值(如果时间间隔之一或平均值高于间隔阈值则其将输出分组相似性表征为较高输出分组相似性等级)。
按照一些示例,除了设置间隔阈值之外,连续检查点动作的数量也可基于与通过从COLO管理器214所接收的统计所指示的输出分组相似性关联的特性。例如,在给定日的不同时间上的时间间隔长度的大波动可具有较大数量的连续检查点,而小波动可具有较少数量的连续检查点(如果波动引起高于和低于间隔阈值波动的时间间隔)。
在一些示例中,从COLO管理器214所接收的统计中包含的独立时间间隔可指示阈值数量的独立检查点动作的高输出分组相似性等级。独立检查点动作的阈值数量(例如10)可按照PVM或SVM的给定工作负荷的管理偏好来确定。对于这些示例,由CCA 213所指示的CP/D策略可向COLO管理器214指示基于指示阈值数量的独立检查点动作的较高输出分组相似性等级的独立时间间隔来选择即时模式。例如,如果管理偏好是针对时刻(其中给定工作负荷高)期间的高吞吐量和低网络等待时间,则可更期望即时模式。因此,与针对高容错的另一个管理偏好相比,具有较高输出分组相似性等级的独立检查点动作的阈值数量可设置为更低(甚至当给定工作负荷高时)。对于高容错,具有即时模式的选择所需的较高输出分组相似性等级的独立检查点动作的阈值数量会较高。较高阈值数量可引起缓冲模式被COLO管理器214更经常地选择。
按照一些示例,输出的分组的连续检查点动作之间的平均时间间隔可与CCA 213所建立的间隔阈值进行比较,以将输出分组相似性表征为高或低。对于这些示例,由CCA213所指示的CP/D策略可向COLO管理器214指示基于多个连续检查点动作之间的平均时间间隔大于间隔阈值(例如40 ms)来选择即时模式。如果多个连续检查点动作之间的平均时间间隔等于或低于间隔阈值,则CP/D策略还可向COLO管理器214指示选择缓冲模式。
在一些示例中,CP/D策略可向COLO管理器214指示选择即时模式(只要多个连续检查点动作之间的至少一个时间间隔大于间隔阈值)。否则,COLO管理器214可选择周期CP/D模式。
图3示出示例第一数据库。如图3中所示的,示例第一数据库包括数据库300。在一些示例中,数据库300可包括从COLO管理器(例如COLO管理器114或214)所接收的信息,其指示PVM与SVm之间的输出分组相似性。数据库300可由CCA(例如CCA 113或213)来保持,并且还可包括保持历史输出分组相似性的历史统计信息的信息。CCA可包括使用信息和历史输出分组相似性信息来设置或确定CP/D策略的逻辑和/或特征。
按照一些示例,如图3中所示的,数据库300可包括历史统计信息,以包括由COLO管理器对COLO管理器所进行的单独或独立检查点动作所观测的一个或多个时间间隔。例如,如图3中所示的,数据库300包括相应检查点#1、2、3至m的1秒(s)、2 s、25 ms和40 ms的时间间隔,其中“m”是大于3的任何正整数。示例并不局限于图3中针对数据库300所示的信息。更多或更少信息可包含在CCA所保持的数据库中供用来确定或设置CP/D策略。而且,虽然图3中未示出,但是多个时间间隔可与单个检查点动作关联。
在一些示例中,较短时间间隔可指示PVM和SVM的较低输出分组相似性,并且较长时间间隔可指示较高输出分组相似性。
按照一些示例,CCA可计算或确定最近N秒/分钟/小时/检查点中的平均时间间隔,其中“N”是任何正整数。CCA则可基于最近N秒/分钟/小时/检查点中的平均时间间隔确定适当的CP/D策略。
图4示出示例第一示例过程。在一些示例中,如图4中所示的,第一示例过程包括过程400。过程400可用于确定选择CP/D模式的CP/D策略。对于这些示例,如图1或图2中所示的系统100或系统200的元件(例如CCA 113-1/213和COLO管理器(mgr)114/214)可与过程400相关。而且,如图3中所示的数据库300也可与过程400相关。但是,示例过程400并不局限于使用图1-3中所示的系统100、系统200或数据库300的元件的实现。
开始于过程4.1(指示输出分组相似性的信息),在CCA 113-1的逻辑和/或特征可从COLO管理器114接收指示服务器110所托管的PVM 112-1与服务器120所托管的SVM 122-1之间的输出分组相似性的信息。在一些示例中,输出分组相似性可包括独立时间间隔,经由所述独立时间间隔内容在进行检查点动作之前对来自PVM 112-1和SVM 122-1的输出分组匹配。
移动到过程4.2(确定策略),在CCA 113-1的逻辑和/或特征可基于从COLO管理器114所接收的信息来确定用于输出的分组的CP/D策略。
移动到过程4.3(发送策略),在CCA 113-1的逻辑和/或特征然后可向COLO管理器114发送CP/D策略。
移动到过程4.4(选择CP/D模式),在COLO管理器114的逻辑和/或特征可至少部分基于CP/D策略来选择CP/D模式。按照一些示例,CP/D模式可包括即时模式或缓冲模式。
移动到过程4.5(指示输出分组相似性的更新的信息),在COLO管理器114的逻辑和/或特征可向CCA 113-1发送更新的信息。更新的信息可指示服务器110所托管的PVM112-1与服务器120所托管的SVM 122-1之间的输出分组相似性。在一些示例中,更新的信息可在周期基础上、在连续基础上或者基于触发事件来发送。
移动到过程4.6(保持数据库),在CCA 113-1的逻辑和/或特征可保持数据库,其包括信息和更新的信息。按照一些示例,数据库可包括与数据库300相似的信息。
移动到过程4.7(确定是否改变策略),在CCA 113-1的逻辑和/或特征可基于更新的信息和/或基于历史统计信息来确定是否更新CP/D策略。
移动到过程4.8(发送更新的策略),在CCA 113-1的逻辑和/或特征可基于更新的信息和/或历史统计信息来确定改变CP/D策略,并且然后向COLO管理器214发送更新的CP/D策略。
移动到过程4.9(保持或改变CP/D模式),在COLO管理器114的逻辑和/或特征然后可基于从CCA 113-1所接收的更新的CP/D模式来确定是否改变先前选择的CP/D模式。在COLO管理器114发送指示输出分组相似性的附加更新的信息之后,过程400可返回到过程4.5。
图5示出示例第三系统。在一些示例中,如图5中所示的,第三系统包括系统500。如图5中所示的系统500包括客户操作系统(OS)510的代理512和CCA 520-1至520-m,其可布置成分别向COLO池管理器(CPM)530发送或从COLO池管理器(CPM)530接收信息。CPM 530可在独立节点上运行或者包括给定COLO管理器/CCA的节点之一中运行。通过在即时池560或者缓冲池570中包含PVM/SVM组合的VM,CPM 530可管理数据中心所包含的VM的至少一部分。按照一些示例,CPM 530可包括基于可应用COLO管理器为PVM和SVM将哪一种CP/D模式选择为传递到来自CCA 520-1至520-m之中的CCA而将PVM和SVM添加到即时池560或缓冲池570其中之一的逻辑和/或特征。CPM 530还可包括评估是否将PVM和SVM所运行的一个或多个应用迁移到另一个PVM/SVM的逻辑和/或特征。CPM 530的逻辑和/或特征基于该评估然后可使负荷平衡器540或者应用管理器540实现一个或多个应用的迁移。
在一些示例中,CCA 520-1至520-m可与相应COLO管理器交换统计和策略信息,以用于如以上相对图1-4所描述设置CP/D策略和/或选择CP/D模式。CCA 520-1至520-m可向CPM 530转播从相应COLO管理器所采集的统计信息的至少部分以及所选择的CP/D模式。按照一些示例,CPM 530可包括将这个信息添加到池数据库532的逻辑和/或特征。
在一些示例中,池数据库532还可包括与数据中心(例如数据中心105)中包含的VM的输出分组相似性有关的附加信息。附加信息可从位于客户OS 510的代理512来接收。附加信息可包括数据中心中的每个VM或者客户OS 510所支持的VM的至少一部分的应用到(一个或多个)TCP连接映射。代理512可响应所观测的应用/(一个或多个)TCP连接映射的变化、响应周期时间间隔或者响应触发事件(例如系统重置、新供应的VM、应用迁移等)而向CPM 530发送这个附加信息。
按照一些示例,CPM 530可包括保持池数据库532以包括指示在VM 501上执行或运行的应用A1至A3、在VM 502上执行或运行的应用A4、A5或者在VM 507上执行或运行的应用A6至A8的输出分组相似性的信息的逻辑和/或特征。CPM 530的逻辑和/或特征还可以能够包括利用从代理512所接收的应用和TCP连接的映射信息的信息。
按照一些示例,即时池560可包括来自运行具有输出(其主要可具有较高输出分组相似性等级)的应用的PVM/SVM的VM。例如,应用A1、A2和A3可具有带有高输出分组相似性等级(例如,用于匹配输出内容的时间间隔大于40 ms)的输出。较高输出分组相似性等级可通过如图5中所示的包括A1、A2和A3的框中的不加阴影来指示。较高输出分组相似性等级可使关联COLO管理器为VM 501选择即时模式,因此CPM 530可将VM 501添加到即时池560。
在一些示例中,缓冲池570可包括来自运行具有输出(其主要可具有较低输出分组相似性等级(例如用于匹配输出内容的时间间隔为40 ms或以下))的应用的PVM/SVM的VM。例如,应用A4和A5可具有带有较低输出分组相似性等级的输出。较低输出分组相似性等级可通过包括A4和A5的框中加阴影来指示。而且,虽然VM 505包括没有阴影的应用A6和A7,但是应用A8具有阴影。应用A8的输出的输出分组相似性可以如此低,以致VM 505的总输出分组相似性等级使关联COLO管理器为VM 505选择缓冲模式。由于为VM 505选择缓冲模式,所以CPM 530可将VM 505添加到缓冲池570。
图6示出示例方案600。在一些示例中,如图6中所示的并且以上针对图5所提到的,VM 501、502、503、505和507可由CPM 530基于可应用COLO管理器选择哪一个CP/D模式来添加到池。如先前所提到并且如图6中所示的,池可包括即时池560和缓冲池570。
按照一些示例,CPM 530可包括评估是否将应用从一个VM迁移到另一个VM的逻辑和/或特征。例如,逻辑和/或特征可评估应用A8是否应当迁移到另一个VM以允许VM 505从缓冲池570移动到即时池560。如上所提到的,应用A6和A7可具有带有高输出分组相似性的输出。在一些示例中,如果其余应用的输出的总体输出分组相似性达到阈值等级(例如大于40 ms的一个或多个时间间隔),则CPM 530的逻辑和/或特征可引起应用A8的迁移。
如图6中所示的,方案600示出A8从在缓冲池570-a的VM 505迁移到在缓冲池570-b的VM 502。这个迁移例如可使CPM 530在应用A8的迁移之后将VM 505包含在即时库560-b中。迁移例如可通过负荷平衡器540或应用迁移器550来协调。
图7示出示例第二数据库。如图7中所示的,示例第二数据库包括数据库700。在一些示例中,数据库700可包括由CPM(例如CPM 530)用来评估是否将应用从用作第一PVM或者第二SVM的第一VM迁移到用作第二PVM或者第二SVM的第二VM的信息。例如,如果第一VM在如果迁移将对在第一VM的其余(一个或多个)应用输出引起足够高的输出分组相似性等级(其可从即时模式获益更多)时能够从缓冲池移动到即时池,则应用的迁移可发生。较高输出分组相似性等级后迁移(post-migration)可足够高(例如平均匹配时间间隔>40 ms)以使COLO管理器为第一VM选择即时模式。
在一些示例中,如图7中所示的,数据库700可包括VM 505的CCA信息710和代理信息720。如以上相对图5所提到的,VM 505可托管或运行应用A6、A7和A8。CCA信息710可包括如能够设置监测来自VM 505的输出的COLO管理器所使用的CP/D策略的CCA向CPM(例如CPM530)所报告的,与VM 505相关的统计信息。代理信息720可包括应用A6至A8的应用/(一个或多个)TCP连接映射信息,其指示如在客户OS的代理(例如以上相对图5所提到的代理512)所观测的这些应用映射到哪一个(哪些)TCP连接/端口。
在一些示例中,如图7中所示的,CCA信息710可指示某个TCP连接可与布置为PVM或SVM的VM 505的相对短时间间隔关联。例如,CCA信息710指示TCP连接1分别与TCP连接5和102的50 ms和45 ms的较长时间间隔相比具有25 ms和40 ms的时间间隔。而且,代理信息720指示应用A8映射到至少TCP连接1,A6映射到至少TCP连接5,以及A7映射到至少TCP连接102。因此,输出到TCP连接1的应用A8因与分别输出到TCP连接5和102的应用A6和A7相比的相对较短时间间隔而具有较低输出分组相似性。
按照一些示例,CPM可评估迁移A8是否可升高平均时间间隔以潜在地使VM 105的COLO管理器为VM 505选择即时模式。例如,如果迁移应用A8之后的平均时间间隔大于40 ms阈值等级,则CPM可使A8被迁移到另一个VM(例如VM 502)。基于图7中所示的时间间隔,A8的迁移会将A6和A7的输出的平均时间间隔升高到高于40 ms阈值等级。在A8的迁移之后,CPM然后可从缓冲池570中去除VM 505,并且将VM 505添加到即时池560。
示例并不局限于包括如图7中所示的CCA信息710和代理信息720的数据库700。更多或更少信息可包含在CPM所保持的数据库中,供用来评估是否在VM之间迁移应用。
按照一些示例,数据库700还可跟踪历史信息,其可使CPM基于给定一天期间的工作负荷趋势将VM移入或移出池。例如,图7中所示的全部三个VM在低时间周期期间具有足够长的时间时长,以可能地证明在这些低时间周期期间到即时池的移动。
图8示出示例第二示例过程。在一些示例中,如图8中所示的,第二示例过程包括过程800。过程800可用于对池添加或去除VM,和/或使应用在VM之间迁移,以实现池之间的VM的移动。对于这些示例,如图5中所示的系统500的元件(例如代理512、CCA 520或CPM 530)可与过程800相关。图6中的方案600或者如图7中所示的数据库700也可与过程800相关。但是,示例过程800并不局限于使用图5-7中所示的系统500、方案600或数据库700的元件的实现。
开始于过程8.1(信息),CCA 520和代理512的逻辑和/或特征可向CPM 530发送信息。来自CCA 520的信息可指示由CCA 520或COLO管理器使用的当前CP/D策略或模式。来自CCA 520的信息还可包括与数据库700的CCA信息710相似的信息,其可包括指示由CCA 520和COLO管理器所监测/控制的PVM/SVM的VM的输出分组相似性的统计信息。来自代理512的信息可与数据库700的代理信息720相似,其可包括应用/(一个或多个)TCP连接映射信息。
移动到过程8.2(添加到缓冲池),CPM 530的逻辑和/或特征可基于如从CCA 520所接收的信息中包含的PVM和SVM的COLO管理器所使用的CP/D模式的指示来确定PVM/SVM的VM应当添加到缓冲池。
移动到过程8.3(评估迁移),CPM 530的逻辑和/或特征可评估PVM或SVM的VM所托管或运行的一个或多个应用是否应当迁移到另一个PVM/SVM的另一个VM,以允许VM在迁移之后具有通过借助于PVM和SVM所运行的其余应用所生成的输出的分组的较高输出分组相似性。按照一些示例,高于阈值时间间隔的平均时间间隔(例如平均时间间隔>40 ms)可需要在确定应当引起迁移之前被达到。
在一些示例中,如果没有迁移,则过程800可移动到过程8.1。
移动到过程8.4((一个或多个)应用的迁移),CPM 530的逻辑和/或特征可决定将一个或多个应用迁移到其他PVM/SVM的其他VM,并且因而引起一个或多个应用到其他PVM/SVM的迁移。
移动到过程8.5(从缓冲池中去除),CPM 530的逻辑和/或特征这时可从缓冲池中去除PVM或SVM的VM。
移动到过程8.6(添加到即时池),CPM 530的逻辑和/或特征这时可将PVM或SVM的VM添加到即时池。
移动到过程8.7(通知),CPM 530的逻辑和/或特征可向CCA 520发送通知,以使CCA520修改CP/D策略。CCA 520在没有通知的情况下也可修改CP/D策略,因为输出分组相似性因应用的迁移而充分改变,以证明CP/D策略的修改。
移动到过程8.8(CP/D策略),CCA 520的逻辑和/或特征可向COLO管理器发送修改的CP/D策略。
移动到过程8.9(改变CP/D模式),COLO管理器的逻辑和/或特征可响应接收所改变的CP/D策略而改变CP/D模式。过程800然后可返回到过程8.1。
图9示出第一设备的示例框图。如图9中所示的,第一设备包括设备900。虽然图9中所示的设备900具有按照某种拓扑的有限数量元件,但是可意识到,设备900可如对给定实现所期望的包括按照备选拓扑的更多或更少元件。
设备900可由保持在节点或服务器计算装置(例如包含在数据中心中)的处理器电路920来支持。处理器电路920可布置成运行一个或多个软件或固件实现模块或组件922-a。值得注意,如本文所使用的“a”和“b”和“c”及类似指示符意在是表示任何正整数的变量。因此,例如,如果实现设置a=4的值,则组件922-a的软件固件的完整集合可包括组件922-1、922-2、92-3或922-4。所呈现的示例并不局限于这个上下文中,并且通篇使用的不同变量可表示相同或不同的整数值。而且,这些“组件”可以是计算机可读媒体中存储的软件/固件,并且虽然组件在图9中示为分立框,但是这并不是将这些组件局限于不同计算机可读媒体组件中的存储装置(例如独立存储器等)。
按照一些示例,处理器电路920可包括处理器或处理器电路。处理器电路920可以是在服务器(例如主节点/服务器110、辅节点/服务器120)的主机处理器电路的部分,其可包括处理核心或元件。包括一个或多个处理核心的处理器电路能够是各种市场上可买到的处理器的任一个,非限制性地包括:AMD® Athlon®、Duron®和Opteron®处理器;ARM®应用、嵌入式和安全处理器;IBM®和Motorola® DragonBall®和PowerPC®处理器;IBM和Sony®Cell处理器;Intel®Atom®、Celeron®、Core (2) Duo®、Core i3、Core i5、Corei7、Itanium®、Pentium®、Xeon®、Xeon Phi®和XScale®处理器;以及类似处理器。按照一些示例,处理器电路920还可包括专用集成电路(ASIC),以及至少一些组件922-a可实现为ASIC的硬件元件。
按照一些示例,设备900可处在与外部网络所耦合的服务器。服务器可布置成托管能够独立运行一个或多个应用的PVM或SVM。
在一些示例中,设备900可包括接收组件922-1。接收组件922-1可由处理器电路920来运行,以接收指示第一服务器所托管的PVM与第二服务器所托管的SVM之间的输出分组相似性的信息。输出分组相似性可包括独立时间间隔,经由所述独立时间间隔内容对来自PVM和SVM的输出分组匹配。对于这些示例,信息可包含在信息905中。
按照一些示例,设备900还可包括策略组件922-2。策略组件922-2可由处理器电路920来运行,以基于该信息来确定用于输出的分组的CP/D策略。对于这些示例,策略组件922-2可将策略标准保持在策略924-a(例如,数据结构,诸如查找表(LUT))中。策略标准例如可包括可触发CP/D模式的选择的多个连续检查点动作之间的间隔阈值。
在一些示例中,设备900还可包括数据库组件922-3。数据库组件922-3可由处理器电路920来运行,以便保持经由信息905所接收的信息以及经由更新的信息915所接收的更新的信息。对于这些示例,数据库组件922-3可保持信息以及具有历史信息925-b的更新的信息(例如在数据库中)。历史信息925-b可包括PVM与SVM之间的输出分组相似性的历史统计信息。策略组件922-2可以使用历史信息925-b,并且可至少部分基于历史信息925-b来确定检查点/传递策略。
按照一些示例,设备900还可包括发送组件922-4。发送组件922-4可由处理器电路920来运行,以发送CP/D策略到COLO管理器以便COLO管理器至少部分基于CP/D策略来选择CP/D模式。CP/D策略可包含在策略910中。
设备900的各种组件和实现设备900的装置可通过各种类型的通信媒体在通信上相互耦合,以协调操作。协调可涉及单向或双向信息交换。例如,组件可采取通过通信媒体所传递的信号形式来传递信息。信息能够实现为分配给各种信号线的信号。在这类分配中,各消息是信号。但是,其他实施例备选地可采用数据消息。这类数据消息可跨各种连接来发送。示例连接包括并行接口、串行接口和总线接口。
本文所包含的是表示用于执行所公开架构的新颖方面的示例方法论的逻辑流程集合。虽然为了说明的简洁的目的,本文所示的一个或多个方法论示为和描述为一系列动作,但是本领域的技术人员将会理解和意识到,方法论并不受动作的顺序所限制。一些动作可根据其按照不同顺序和/或与本文所示和所描述的其他动作同时发生。例如,本领域的技术人员将理解和意识到,方法论备选地可表示为例如状态图中的一系列相关状态或事件。此外,对于新颖实现并非可要求方法论中所示的全部动作。
逻辑流程可通过软件、固件和/或硬件来实现。在软件和固件实施例中,逻辑流程可通过至少一个非暂时计算机可读介质或机器可读介质(例如光、磁或者半导体存储装置)上存储的计算机可执行指令来实现。实施例并不局限于这个上下文。
图10示出第一逻辑流程的示例。如图10中所示的,第一逻辑流程包括逻辑流程1000。逻辑流程1000可表示由本文所描述的一个或多个逻辑、特征或装置(例如设备900)所运行的操作的部分或全部。更具体来说,逻辑流程1000可由至少接收组件922-1、策略组件922-2或发送组件922-4来实现。
按照一些示例,在框1002逻辑流程1000可在处理器电路接收指示第一服务器所托管的PVM与第二服务器所托管的SVM之间的输出分组相似性的信息。输出分组相似性包括独立时间间隔,经由所述独立时间间隔内容对来自PVM和SVM的输出分组匹配。对于这些示例,接收组件922-1可接收信息。
在一些示例中,在框1004逻辑流程1000可基于该信息来确定用于输出的分组的CP/D策略。对于这些示例,策略组件922-2可确定CP/D策略。
按照一些示例,在框1006逻辑流程1000可发送CP/D策略到COLO管理器以便COLO管理器至少部分基于CP/D策略来选择CP/D模式。对于这些示例,发送组件922-4可向COLO管理器发送CP/D策略。
图11示出第一存储介质的示例。如图11中所示的,第一存储介质包括存储介质1100。存储介质1100可包括制造产品。在一些示例中,存储介质1100可包括任何非暂时计算机可读介质或机器可读介质,例如光、磁或半导体存储装置。存储介质1100可存储各种类型的计算机可执行指令,例如实现逻辑流程1000的指令。计算机可读或机器可读存储介质的示例可包括能够存储电子数据的任何有形媒体,包括易失性存储器或非易失性存储器、可去除或不可去除存储器、可擦或不可擦存储器、可写或可重写存储器等。计算机可执行指令的示例可包括任何适当类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、可视(visual)代码等。示例并不局限于这个上下文。
图12示出示例第二设备的框图。如图12中所示的,示例第二设备包括设备1200。虽然图12中所示的设备1200具有按照某种拓扑的有限数量元件,但是意识到,设备1200可如对给定实现所期望的包括按照备选拓扑的更多或更少元件。
设备1200可由保持在节点或服务器(例如包含在数据中心)的处理器电路1220来支持。处理器电路1220布置成运行一个或多个软件组件1222-a。值得注意,如本文所使用的“a”和“b”和“c”及类似指示符意在是表示任何正整数的变量。因此,例如,如果实现设置a=6的值,则软件组件1222-a的完整集合可包括组件1222-1、1222-2、1222-3、1222-4、1222-5或1222-6。示例并不局限于这个上下文。
在一些示例中,如图12中所示的,设备1200包括处理器电路1220。处理器电路1220可一般布置成运行一个或多个软件组件1222-a。处理电路1220能够是各种市场上可买到的处理器的任一个,包括但不限于以上针对设备900所提到的处理器。而且,按照一些示例,处理器电路1220也可以是ASIC,以及至少一些组件1222-a可实现为ASIC的硬件元件。
按照一些示例,设备1200可处在经由多个TCP连接与外部网络所耦合的服务器。服务器可布置成托管能够独立运行一个或多个应用的PVM或SVM。
在一些示例中,设备1200可包括比较组件1222-1。比较组件1222-1可由处理器电路1220来运行,以将来自第一服务器所托管的PVM的输出分组内容与来自SVM的输出分组内容进行比较。输出分组内容可通过输出分组内容1205来接收。
按照一些示例,设备1200还可包括间隔组件1222-2。间隔组件1222-2可由处理器电路1220来运行以确定一个或多个时间间隔,输出分组内容经由所述一个或多个时间间隔匹配。
在一些示例中,设备1200还可包括相似性组件1222-3。相似性组件1222-3可由处理器电路1220来运行,以基于一个或多个时间间隔来更新指示PVM与SVM之间的输出分组相似性的信息。对于这些示例,相似性组件1222-3可至少暂时保持具有输出分组相似性1224-a的这个更新的信息(例如在LUT中)。
按照一些示例,设备1200还可包括发送组件1222-4。发送组件1222-4可由处理器电路1220来运行,以发送更新的信息到CCA以便CCA确定用于PVM和SVM所运行的一个或多个应用所生成的输出的分组的CP/D策略。对于这些示例,更新的信息可包含在信息1208中。
在一些示例中,设备1200还可包括接收组件1222-5。接收组件1222-5可由处理器电路1220来运行,以从CCA接收所确定CP/D策略。对于这些示例,策略可包含在策略1210中。
按照一些示例,设备1200还可包括选择组件1222-6。选择组件1222-6可由处理器电路1220来运行,以至少部分基于CP/D策略来选择CP/D模式。对于这些示例,选择组件1222-3可选择即时或缓冲模式。即时模式1230指示即时模式选择。缓冲模式1240指示缓冲模式选择。
设备1100的各种组件和实现设备1100的装置可通过各种类型的通信媒体在通信上相互耦合,以协调操作。协调可涉及单向或双向信息交换。例如,组件可采取通过通信媒体所传递的信号形式来传递信息。信息能够实现为分配给各种信号线的信号。在这类分配中,各消息是信号。但是,其他实施例备选地可采用数据消息。这类数据消息可跨各种连接来发送。示例连接包括并行接口、串行接口和总线接口。
图13示出第二逻辑流程的示例。如图11中所示的,第二逻辑流程包括逻辑流程1300。逻辑流程1300可表示由本文所描述的一个或多个逻辑、特征或装置(例如设备1200)所运行的操作的部分或全部。更具体来说,逻辑流程1300可由至少比较组件1222-1、间隔组件1222-2、相似性组件1222-3、发送组件1222-4、接收组件1222-5或选择组件1222-6来实现。
按照一些示例,在框1302逻辑流程1300可在处理器电路将来自第一服务器所托管的PVM的输出分组内容与来自第二服务器所托管的SVM的输出分组内容进行比较。对于这些示例,比较组件可比较输出分组内容。
在一些示例中,在框1304逻辑流程1300可确定一个或多个时间间隔,输出分组内容经由所述一个或多个时间间隔匹配。对于这些示例,间隔组件1222-2可确定一个或多个时间间隔。
按照一些示例,在框1306逻辑流程1300可基于一个或多个时间间隔来更新指示PVM与SVM之间的输出分组相似性的信息。对于这些示例,相似性组件1222-3可更新信息。
在一些示例中,在框1308逻辑流程1300可发送更新的信息到CCA以便CCA确定用于来自PVM和SVM的输出的分组的CP/D策略。对于这些示例,发送组件1212-4可发送更新的信息。
按照一些示例,在框1310逻辑流程1300可从CCA接收所确定CP/D策略。对于这些示例,发送组件可接收CP/D策略。
在一些示例中,在框1312逻辑流程1300可至少部分基于CP/D策略来选择CP/D模式。对于这些示例,选择组件1222-6可选择模式。
图14示出第二存储介质的示例。如图14中所示的,第二存储介质包括存储介质1400。存储介质1400可包括制造产品。在一些示例中,存储介质1400可包括任何非暂时计算机可读介质或机器可读介质,例如光、磁或半导体存储装置。存储介质1400可存储各种类型的计算机可执行指令,例如实现逻辑流程1300的指令。计算机可读或机器可读存储介质的示例可包括能够存储电子数据的任何有形媒体,包括易失性存储器或非易失性存储器、可去除或不可去除存储器、可擦或不可擦存储器、可写或可重写存储器等。计算机可执行指令的示例可包括任何适当类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、可视代码等。示例并不局限于这个上下文。
图15示出示例第三设备的框图。如图15中所示的,示例第三设备包括设备1500。虽然图15中所示的设备1500具有按照某种拓扑的有限数量元件,但是可意识到,设备1500可如对给定实现所期望的包括按照备选拓扑的更多或更少元件。
设备1500可由保持在节点或服务器(例如包含在数据中心)的处理器电路1520来支持。处理器电路1520布置成运行一个或多个软件组件1522-a。值得注意,如本文所使用的“a”和“b”和“c”及类似指示符意在是表示任何正整数的变量。因此,例如,如果实现设置a=6的值,则软件组件1522-a的完整集合可包括组件1522-1、1522-2、1522-3、1522-4、1522-5或1522-6。示例并不局限于这个上下文。
在一些示例中,如图15中所示的,设备1500包括处理器电路1520。处理器电路1520可一般布置成运行一个或多个软件组件1522-a。处理电路1520能够是各种市场可买到的处理器的任一个,包括但不限于以上针对设备900所提到的处理器。而且,按照一些示例,处理器电路1520也可以是ASIC,以及至少一些组件1522-a可实现为ASIC的硬件元件。
按照一些示例,设备1500可位于在计算平台(其布置成支持数据中心(例如数据中心105)的至少一部分中包含的服务器的管理和/或控制)或者具有所述计算平台。
在一些示例中,设备1500可包括接收组件1522-1。接收组件可由处理器电路1520来运行,以接收指示由第一服务器所托管的PVM和第二服务器所托管的SVM独立运行的一个或多个应用的输出分组相似性的信息。对于这些示例,输出分组相似性可包括独立时间间隔,在所述独立时间间隔期间内容对于由PVM和SVM独立运行的一个或多个应用独立生成的输出分组匹配。信息可包含在信息1508中。信息1508可从CCA来接收或者可从数据结构来接收,经由所述数据结构PVM和SVM可放置了专用输出分组相似性信息。
按照一些示例,设备1500还可包括池组件1522-2。池组件1522-2可由处理器电路1520来运行,以基于在第一服务器和第二服务器的COLO管理器用来将输出分组从PVM或SVM路由到外部网络的CP/D模式来将PVM和SVM添加到即时池或缓冲池其中之一。对于这些示例,即时池可包括一个或多个第一PVM/SVM,其布置成使来自一个或多个第一PVM/SVM的输出的分组立即路由到外部网络(只要输出的分组的内容在第一PVM/SVM之间匹配)。缓冲池可包括一个或多个第二PVM/SVM,其布置成使来自一个或多个第二PVM/SVM的输出的分组被延迟路由到外部网络。输出的分组可延迟值到周期检查点动作由相应第二PVM/SVM完成。
在一些示例中,设备1500还可包括数据库组件1522-3。数据库组件可由处理器电路来运行,以保持池数据库,其包括指示PVM和SVM独立运行的一个或多个应用的每个的输出分组相似性的信息。对于这些示例,数据库组件1522-3可将池数据库保持在池数据库1524-a中,例如诸如LUT等的数据结构中。
按照一些示例,设备1500还可包括评估组件1522-4。评估组件1522-4可由处理器电路1520来运行,以使用池数据库1524-a中的信息来确定是否将PVM和SVM所运行的第一应用迁移到另一个PVM和SVM,以使PVM和SVM具有由通过PVM和SVM独立运行的一个或多个其余应用所生成的输出的分组的输出分组相似性,其包括高于间隔阈值的平均时间间隔。对于这些示例,间隔阈值可通过阈值信息1525-b来保持(例如在LUT中)。在一些示例中,如果平均时间间隔高于间隔阈值,则评估组件1522-4可使第一应用被迁移到其他PVM和SVM。迁移可经由应用(App.)迁移1515中包含的信息通过负荷平衡器或应用迁移器来协调。
在一些示例中,池组件1522-2可在第一应用的迁移之后从缓冲池中去除PVM和SVM,并且将PVM和SVM添加到即时池。数据库组件1522-3然后可更新池数据库1524-a,以反应PVM和SVM的池中的这个变化。
按照一些示例,设备1500还可包括通知组件1522-2。通知组件1522-2可由处理器电路1520来运行,以向CCA发送通知以修改CP/D策略,来使独立COLO管理器改变用来路由来自PVM或SVM的输出分组的CP/D模式。对于这些示例,通知可包含在通知1530中。
设备1500的各种组件和实现设备1500的装置可通过各种类型的通信媒体在通信上相互耦合,以协调操作。协调可涉及单向或双向信息交换。例如,组件可采取通过通信媒体所传递的信号形式来传递信息。信息能够实现为分配给各种信号线的信号。在这类分配中,各消息是信号。但是,其他实施例备选地可采用数据消息。这类数据消息可跨各种连接来发送。示例连接包括并行接口、串行接口和总线接口。
图16示出第三逻辑流程的示例。如图16中所示的,第三逻辑流程包括逻辑流程1600。逻辑流程1600可表示由本文所描述的一个或多个逻辑、特征或装置(例如设备900)所运行的操作的部分或全部。更具体来说,逻辑流程1600可由至少接收组件1522-1或池组件1522-2来实现。
按照一些示例,在框1602逻辑流程1600可在处理器电路接收指示由第一服务器所托管的PVM和第二服务器所托管的SVM独立运行的一个或多个应用的输出分组相似性的信息,输出分组相似性包括独立时间间隔,在所述独立时间间隔期间内容对于由PVM和SVM独立运行的一个或多个应用独立生成的输出分组匹配。对于这些示例,接收组件1522-1可接收信息。
在一些示例中,在框1604逻辑流程1600可基于在第一服务器或第二服务器的COLO管理器用来将输出分组从PVM或SVM路由到外部网络的CP/D模式将PVM和SVM添加到即时池或缓冲池其中之一,即时池包括一个或多个第一PVM/SVM,其布置成使来自一个或多个第一PVM/SVM的输出的分组立即路由到外部网络(只要输出的分组的内容在第一PVM/SVM之间匹配),缓冲池包括一个或多个第二PVM/SVM,其布置成使来自一个或多个第二PVM/SVM的输出的分组被延迟路由到外部网络,输出的分组延迟值到周期检查点动作由相应第二PVM/SVM完成。
图17示出第二存储介质的示例。如图17中所示的,第一存储介质包括存储介质1700。存储介质1700可包括制造产品。在一些示例中,存储介质1700可包括任何非暂时计算机可读介质或机器可读介质,例如光、磁或半导体存储装置。存储介质1700可存储各种类型的计算机可执行指令,例如实现逻辑流程1600的指令。计算机可读或机器可读存储介质的示例可包括能够存储电子数据的任何有形媒体,包括易失性存储器或非易失性存储器、可去除或不可去除存储器、可擦或不可擦存储器、可写或可重写存储器等。计算机可执行指令的示例可包括任何适当类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、可视代码等。示例并不局限于这个上下文。
图18示出示例计算平台1800。在一些示例中,如图18中所示的,计算平台1800可包括处理组件1840、其他平台组件1850或通信接口1860。按照一些示例,计算平台1800可在能够经过外部网络接口(其可包括大量TCP连接)耦合到外部网络的节点或服务器计算装置中实现。
按照一些示例,处理组件1840可运行用于设备900/1200/1500和/或存储介质1100/1400/1700的处理操作或逻辑。处理组件1840可包括各种硬件元件、软件元件或者两者的组合。硬件元件的示例可包括装置、逻辑装置、组件、处理器、微处理器、电路、处理器电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可包括软件组件、程序、应用、计算机程序、应用程序、装置驱动程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或者它们的任何组合。确定示例是否使用硬件元件和/或软件元件来实现可按照任何数量的因素而改变,例如期望的计算速率、功率级、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及如对给定示例所期望的其他设计和性能限制。
在一些示例中,其他平台组件1850可包括通用计算元件,例如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外设、接口、振荡器、定时装置、视频卡、音频卡、多媒体输入/输出(I/O)组件(例如数字显示器)、电源等。存储器单元的示例非限制性地可包括采取下列形式的各种类型的计算机可读和机器可读存储媒体:一个或多个更高速存储器单元,例如只读存储器(ROM)、随机存储存储器(RAM)、动态RAM(DRAM)、双数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、闪速存储器;聚合物存储器,例如铁电聚合物存储器、奥氏存储器、相变或铁电存储器、硅氧化氮化氧化硅(SONOS)存储器;磁或光卡;装置阵列,例如独立磁盘冗余阵列(RAID)驱动器;固态存储器装置(例如USB存储器);固态驱动器(SSD);以及适合用于存储信息的任何其他类型的存储媒体。
在一些示例中,通信接口1860可包括支持通信接口的逻辑和/或特征。对于这些示例,通信接口1860可包括一个或多个通信接口,其按照各种通信协议或标准进行操作,以通过直接或网络通信链路进行通信。直接通信可经由使用一个或多个工业标准(包括后代和变体),例如与PCIe规范关联的那些中描述的通信协议或标准进行。网络通信可经由使用通信协议或标准,例如IEEE所颁布的一个或多个以太网标准中描述的通信协议或标准进行。例如,一个这种以太网标准可包括IEEE 802.3。网络通信还可按照一个或多个OpenFlow规范,例如OpenFlow硬件抽象API规范进行。
如上所提到的,计算平台1800可在服务器或客户端计算装置中实现。相应地,本文所描述的计算平台1800的功能和/或特定配置如对服务器或客户端计算装置适当期望的可在计算平台1800的各种实施例中包含或省略。
计算平台1800的组件和特征可使用分立电路、专用集成电路(ASIC)、逻辑门和/或单芯片架构的任何组合来实现。此外,计算平台1800的特征可在适当适合的情况下使用微控制器、可编程逻辑阵列和/或微处理器或者上述的任何组合来实现。要注意,硬件、固件和/或软件元件可在本文中共同或单独称作“逻辑”或“电路”。
应当意识到,图18的框图中所示的示范计算平台1800可表示许多潜在实现的一个功能描述性示例。相应地,附图中所描绘的块功能的分割、省略或包含没有推断用于实现这些功能的硬件组件、电路、软件和/或元件在实施例中会必需被分割、省略或包含。
至少一个示例的一个或多个方面可通过至少一种机器可读介质上存储的、表示处理器内的各种逻辑的代表指令来实现,其在由机器、计算装置或系统读取时使机器、计算装置或系统制作执行本文所描述的技术的逻辑。称作“IP核心”的这类表示可存储在有形机器可读介质上,并且供应给各种顾客或制造设施,以加载到实际制作逻辑或处理器的制造机器中。
各种示例可使用硬件元件、软件元件或者两者的组合来实现。在一些示例中,硬件元件的示例可包括装置、组件、处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑装置(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。在一些示例中,软件元件可包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或者它们的任何组合。确定示例是否使用硬件元件和/或软件元件来实现可按照任何数量的因素而改变,例如期望计算速率、功率级、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及如对给定实现所期望的其它设计和性能限制。
一些示例可包括制造产品或者至少一个计算机可读介质。计算机可读介质可包括非暂时存储介质或存储逻辑。在一些示例中,非暂时存储介质可包括能够存储电子数据的一种或多种类型的计算机可读存储媒体,包括易失性存储器或非易失性存储器、可去除或不可去除存储器、可擦或不可擦存储器、可写或可重写存储器等。在一些示例中,逻辑可包括各种软件元件,例如软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、API、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或者它们的任何组合。
按照一些示例,计算机可读介质可包括存储或保持指令的非暂时存储介质,指令在由机器、计算装置或系统运行时使机器、计算装置或系统按照所描述示例执行方法和/或操作。指令可包括任何适当类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等等。指令可按照预定义计算机语言、方式或语法来实现,用于指令机器、计算装置或系统执行某个功能。指令可使用使用任何适当高级、低级、面向对象、可视、编译和/或解释编程语言来实现。
一些示例可使用表达“在一个示例中”或“示例”连同其派生来描述。这些术语表示结合该示例所描述的特定特征、结构或特性包含在至少一个示例中。词语“在一个示例中”在说明书的各种位置的出现不一定全部表示同一示例。
一些示例可使用表达“耦合”和“连接”及其派生来描述。这些术语不一定意在作为彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可指示两个或更多元件相互直接物理或电接触。但是,术语“耦合”还可表示两个或更多元件不是相互直接接触,但仍然相互协作或交互。
以下示例涉及本文所公开技术的附加示例。
示例1。示例设备可包括处理器电路。示例设备还可包括接收组件,供处理器电路运行,以接收指示第一服务器所托管的PVM与第二服务器所托管的SVM之间的输出分组相似性的信息。输出分组相似性可包括独立时间间隔,在所述独立时间间隔期间内容对来自PVM和SVM的输出分组匹配。示例设备还可包括策略组件,供处理器电路运行以基于该信息来确定用于输出的分组的CP/D策略。示例设备还可包括发送组件,供处理器电路运行以发送CP/D策略到COLO管理器以便COLO管理器至少部分基于CP/D策略来选择CP/D模式。
示例2。示例1的设备,CP/D策略可指示COLO管理器是否要选择即时模式或缓冲模式其中之一。
示例3。示例2的设备,即时模式可包括只要输出的分组的内容在PVM与SVM之间匹配则输出的分组立即被路由到外部网络,如果没有匹配,则实现检查点动作,并且随后输出的分组的传递延迟直到检查点动作完成。
示例4。示例2的设备,缓冲模式可包括输出的分组要被缓冲并且被延迟路由到外部网络,输出的分组延迟直到周期检查点动作完成。
示例5。示例4的设备,周期检查点动作可基于先前周期检查点动作与周期检查点动作的实现之间的固定时间间隔。
示例6。示例2的设备,独立时间间隔可包括各与通过PVM和SVM的多个检查点动作的至少一个检查点动作关联的独立时间间隔。对于这些示例,较长独立时间间隔可指示相对于较短时间间隔(其可指示较低输出分组相似性等级)的较高输出分组相似性等级。
示例7。示例6的设备,独立时间间隔可指示多个检查点动作的大多数的较高输出分组相似性等级。对于这些示例,CP/D策略可向COLO管理器指示基于指示独立检查点动作的大多数的较高输出分组相似性等级的独立时间间隔来选择即时模式。
示例8。示例6的设备,独立时间间隔指示阈值数量的多个检查点动作的较高输出分组相似性等级。对于这些示例,阈值数量可按照PVM或SVM的给定工作负荷的管理偏好来确定,COLO管理器基于指示阈值数量的独立检查点动作的较高输出分组相似性等级的独立时间间隔来选择即时模式。
示例9。示例6的设备,较长独立时间间隔可包括大于40 ms的时间间隔。较短独立时间间隔可包括40 ms或以下的时间间隔。
示例10。示例2的设备,CP/D策略可向COLO管理器指示基于输出的分组的多个连续检查点动作之间的平均时间间隔大于间隔阈值来选择即时模式,否则COLO管理器要选择周期CP/D策略。
示例11。示例2的设备,CP/D策略可向COLO管理器指示只要输出的分组的多个连续检查点动作之间的至少一个时间间隔大于间隔阈值则选择即时模式,否则COLO管理器要选择周期CP/D模式。
示例12。示例11的设备还可包括接收组件,以接收指示PVM与SVM之间的更新的输出分组相似性的更新的信息。策略组件可基于更新的信息来确定是否更新CP/D策略。发送组件可基于通过策略组件的更新的CP/D策略向COLO管理器发送更新的CP/D策略。更新的CP/D可使COLO管理器从即时模式改变成缓冲模式。
示例13。示例12的设备还可包括数据库组件,供处理器电路运行以将信息和更新的信息保持在数据库(其还包括PVM与SVM之间的输出分组相似性的历史统计信息)中。策略组件可基于更新的信息和历史统计信息来确定是否更新CP/D策略。
示例14。示例1的设备还可包括数字显示器,其耦合到电路以呈现用户界面视图。
示例15。示例方法可包括在处理器电路接收指示第一服务器所托管的PVM与第二服务器所托管的SVM之间的输出分组相似性的信息。输出分组相似性包括独立时间间隔,在所述的独立时间间隔期间内容对来自PVM和SVM的输出分组匹配。该方法还可包括基于该信息来确定用于输出的分组的CP/D策略。该方法还可包括发送CP/D策略到COLO管理器以便COLO管理器至少部分基于CP/D策略来选择CP/D模式。
示例16。示例15的方法,CP/D策略可指示COLO管理器是否要选择即时模式或缓冲模式其中之一。
示例17。示例15的方法,即时模式可包括只要输出的分组的内容在PVM与SVM之间匹配则输出的分组要立即被路由到外部网络,如果没有匹配,则实现检查点动作,并且随后输出的分组的传递延迟直到检查点动作完成。
示例18。示例16的方法,缓冲模式可包括输出的分组要被缓冲并且被延迟路由到外部网络,输出的分组延迟直到周期检查点动作完成。
示例19。示例18的方法,周期检查点动作可基于先前周期检查点动作与周期检查点动作的实现之间的固定时间间隔。
示例20。示例16的方法,独立时间间隔可各与通过PVM和SVM的多个检查点动作的至少一个检查点动作关联。对于这些示例,较长独立时间间隔可指示相对于较短时间间隔(其可指示较低输出分组相似性等级)的较高输出分组相似性等级。
示例21。示例20的方法,独立时间间隔指示多个检查点动作的大多数的较高输出分组相似性等级。对于这些示例,CP/D策略可向COLO管理器指示基于指示独立检查点动作的大多数的较高输出分组相似性等级的独立时间间隔来选择即时模式。
示例22。示例20的方法,独立时间间隔可指示阈值数量的多个检查点动作的较高输出分组相似性等级。对于这些示例,阈值数量可按照PVM或SVM的给定工作负荷的管理偏好来确定,COLO管理器基于指示阈值数量的独立检查点动作的较高输出分组相似性等级的独立时间间隔来选择即时模式。
示例23。示例20的方法,较长独立时间间隔可包括大于40 ms的时间间隔,较短独立时间间隔可包括40 ms或以下的时间间隔。
示例24。示例16的方法,CP/D策略可向COLO管理器指示基于输出的分组的多个连续检查点动作之间的平均时间间隔大于间隔阈值来选择即时模式,否则COLO管理器要选择周期CP/D策略。
示例25。示例16的方法,CP/D策略可向COLO管理器指示只要输出的分组的多个连续检查点动作之间的至少一个时间间隔大于间隔阈值则选择即时模式,否则COLO管理器要选择周期CP/D模式。
示例26。示例16的方法还可包括接收指示PVM与SVM之间的更新的输出分组相似性的更新的信息。该方法还可包括基于更新的信息来确定是否更新CP/D策略。该方法还可包括基于更新的CP/D策略向COLO管理器发送更新的CP/D策略,其使COLO管理器从即时模式改变成缓冲模式。
示例27。示例26的方法还可包括将信息和更新的信息保持在数据库(其还包括PVM与SVM之间的输出分组相似性的历史统计信息)中。该方法还可包括基于更新的信息和历史统计信息来确定是否更新CP/D策略。
示例28。至少一种机器可读介质的示例可包括多个指令,所述指令响应由在计算平台的系统所运行而使该系统执行如示例15至28中的任一项所述的方法。
示例29。示例设备包括用于执行如示例15至28中的任一项所述的方法的部件。
示例30。至少一种机器可读介质的示例可包括多个指令,所述指令响应由计算平台上实现的系统所运行而使该系统接收指示第一服务器所托管的PVM与第二服务器所托管的SVM之间的输出分组相似性的信息。输出分组相似性可包括独立时间间隔,在所述独立时间间隔期间内容对来自PVM和SVM的输出分组匹配。指令还可使系统基于该信息来确定用于一个或多个应用所生成的输出的分组的CP/D策略。指令还可使系统发送CP/D策略到COLO管理器以便COLO管理器至少部分基于CP/D策略来选择CP/D模式。
示例31。示例30的至少一种机器可读介质,CP/D策略可指示COLO管理器是否要选择即时模式或缓冲模式其中之一。
示例32。示例31的至少一种机器可读介质,即时模式可包括只要输出的分组的内容在PVM与SVM之间匹配则输出的分组立即被路由到外部网络,如果没有匹配,则实现检查点动作,并且随后输出的分组的传递延迟直到检查点动作完成。
示例33。示例31的至少一种机器可读介质,缓冲模式可包括输出的分组要被缓冲并且被延迟路由到外部网络,输出的分组延迟直到周期检查点动作完成。
示例34。示例33的至少一种机器可读介质,周期检查点动作可基于先前周期检查点动作与周期检查点动作的实现之间的固定时间间隔。
示例35。示例31的至少一种机器可读介质,独立时间间隔可包括与通过PVM和SVM的独立检查点动作关联的独立时间间隔。对于这些示例,较长时间间隔可指示相对于较短时间间隔(其可指示较低输出分组相似性等级)的较高输出分组相似性等级。
示例36。示例35的至少一种机器可读介质,独立时间间隔指示多个检查点动作的大多数的较高输出分组相似性等级。对于这些示例,CP/D策略向COLO管理器指示基于指示独立检查点动作的大多数的较高输出分组相似性等级的独立时间间隔来选择即时模式。
示例37。示例35的至少一种机器可读介质,独立时间间隔指示阈值数量的多个检查点动作的较高输出分组相似性等级。对于这些示例,阈值数量按照PVM或SVM的给定工作负荷的管理偏好来确定。COLO管理器可基于指示阈值数量的独立检查点动作的较高输出分组相似性等级的独立时间间隔来选择即时模式。
示例38。示例35的至少一种机器可读介质,较长独立时间间隔可包括大于40 ms的时间间隔。较短时间间隔可包括40 ms或以下的时间间隔。
示例39。示例31的至少一种机器可读介质,CP/D策略可向COLO管理器指示基于输出的分组的多个连续检查点动作之间的平均时间间隔大于间隔阈值来选择即时模式,否则COLO管理器要选择周期CP/D策略。
示例40。示例31的至少一种机器可读介质,CP/D策略可向COLO管理器指示只要输出的分组的多个连续检查点动作之间的至少一个时间间隔大于间隔阈值则选择即时模式,否则COLO管理器要选择周期CP/D模式。
示例41。示例31的至少一种机器可读介质,指令还可使系统接收指示PVM与SVM之间的更新的输出分组相似性的更新的信息。指令还使系统基于更新的信息来确定是否更新CP/D策略。指令还使系统基于更新的CP/D策略向COLO管理器发送更新的CP/D策略,其使COLO管理器从即时模式改变成缓冲模式。
示例42。示例31的至少一种机器可读介质,指令还可使系统将信息和更新的信息保持在数据库(其还包括PVM与SVM之间的输出分组相似性的历史统计信息)中。指令还可使系统基于更新的信息和历史统计信息来确定是否更新CP/D策略。
示例43。示例设备可包括处理器电路。该设备还可包括比较组件,供处理器电路运行以将来自第一服务器所托管的主虚拟机(PVM)的输出分组内容与来自第二服务器所托管的辅虚拟机(SVM)的输出分组内容进行比较。该设备还可包括间隔组件,供处理器电路运行,以确定一个或多个时间间隔,输出分组内容经由一个或多个时间间隔匹配。该设备还可包括相似性组件,供处理器电路运行,以基于一个或多个时间间隔来更新指示PVM与SVM之间的输出分组相似性的信息。该设备还可包括发送组件,供处理器电路运行,以发送更新的信息到CCA以便CCA确定用于来自PVM和SVM的输出的分组的CP/D策略。
示例44。示例43的设备还可包括接收组件,供处理器电路运行,以从CCA接收所确定CP/D策略。该设备还可包括选择组件,供处理器电路运行,以至少部分基于CP/D策略来选择CP/D模式。
示例45。示例44的设备,CP/D模式可以是即时模式或缓冲模式其中之一。
示例46。示例45的设备,即时模式可包括只要输出的分组的内容在在PVM所运行与在SVM所运行的应用之间匹配则输出的分组立即被路由到外部网络,如果没有匹配,则实现检查点动作,并且随后输出的分组的传递延迟直到检查点动作完成。
示例47。示例46的设备,缓冲模式可包括输出的分组要被缓冲并且被延迟路由到外部网络。对于这些示例,输出的分组可延迟直到周期检查点动作完成。
示例48。示例45的设备,周期检查点动作可基于先前周期检查点动作与周期检查点动作的实现之间的固定时间间隔。
示例49。示例45的设备,一个或多个时间间隔可包括与通过PVM和SVM的多个检查点动作的至少一个检查点动作关联的一个或多个独立时间间隔。对于这些示例,较长时间间隔可指示相对于较短时间间隔(其可指示较低输出分组相似性等级)的较高输出分组相似性等级。
示例50。示例49的设备,一个或多个时间间隔指示多个检查点动作的大多数的较高输出分组相似性等级。对于这些示例,CP/D策略可从CCA来接收,以指示基于较高输出分组相似性等级的即时模式的选择。
示例51。示例49的设备,较长时间间隔可包括大于40 ms的时间间隔。较短时间间隔可包括40 ms或以下的时间间隔。
示例52。示例43的设备还可包括数字显示器,其耦合到处理器电路以呈现用户界面视图。
示例53。示例方法可包括在处理器电路将来自第一服务器所托管的主虚拟机(PVM)的输出分组内容与来自第二服务器所托管的辅虚拟机(SVM)的输出分组内容进行比较。该方法还包括确定一个或多个时间间隔,输出分组内容经由一个或多个时间间隔匹配。该方法还可包括基于一个或多个时间间隔来更新指示PVM与SVM之间的输出分组相似性的信息。该方法还可包括发送更新的信息到CCA以便CCA确定用于来自PVM和SVM的输出的分组的CP/D策略。
示例54。示例53的方法还可包括从CCA接收所确定CP/D策略。该方法还可包括至少部分基于CP/D策略来选择CP/D模式。
示例55。示例54的方法,CP/D模式可以是即时模式或缓冲模式其中之一。
示例56。示例55的方法,即时模式可包括只要输出的分组的内容在在PVM所运行与在SVM所运行的应用之间匹配则输出的分组立即被路由到外部网络,如果没有匹配,则实现检查点动作,并且随后输出的分组的传递延迟直到检查点动作完成。
示例57。示例55的方法,缓冲模式可包括输出的分组要被缓冲并且被延迟路由到外部网络。对于这些示例,输出的分组可延迟直到周期检查点动作完成。
示例58。示例55的方法,周期检查点动作可基于先前周期检查点动作与周期检查点动作的实现之间的固定时间间隔。
示例59。示例55的方法,一个或多个时间间隔可包括与通过PVM和SVM的多个检查点动作的至少一个检查点动作关联的一个或多个独立时间间隔。对于这些示例,较长时间间隔可指示相对于较短时间间隔(其可指示较低输出分组相似性等级)的较高输出分组相似性等级。
示例60。示例59的方法,一个或多个时间间隔可指示多个检查点动作的大多数的较高输出分组相似性等级。对于这些示例,CP/D策略可从CCA来接收,以指示基于较高输出分组相似性等级的即时模式的选择。
示例61。示例59的方法,较长时间间隔包括大于40 ms的时间间隔,较短时间间隔包括40 ms或以下的时间间隔。
示例62。至少一种机器可读介质的示例可包括多个指令,其响应由在计算平台的系统所运行而可使该系统执行如示例53至62中的任一项所述的方法。
示例63。示例设备可包括用于执行如示例53至62中的任一项所述的方法的部件。
示例64。至少一种机器可读介质的示例可包括多个指令,其响应由计算平台上实现的系统所运行而可使该系统将来自第一服务器所托管的主虚拟机(PVM)的输出分组内容与来自第二服务器所托管的辅虚拟机(SVM)的输出分组内容进行比较。输出分组可路由到相同传输控制协议(TCP)连接。指令还可使系统确定一个或多个时间时长,输出分组内容经由一个或多个时间时长匹配。指令还可使系统基于一个或多个时间间隔来更新指示PVM与SVM之间的输出分组相似性的信息。指令还可使系统发送更新的信息到仲裁器以便仲裁器确定用于来自PVM和SVM的输出的分组的CP/D策略。
示例65。示例64的至少一种机器可读介质,仲裁器可包括CCA。
示例66。示例64的至少一种机器可读介质,指令还可使系统从仲裁器接收所确定CP/D策略。指令还可使系统至少部分基于CP/D策略来选择CP/D模式。
示例67。示例65的至少一种机器可读介质,CP/D模式可以是即时模式或缓冲模式其中之一。
示例68。示例67的至少一种机器可读介质,即时模式可包括只要输出的分组的内容在在PVM所运行与在SVM所运行的应用之间匹配则输出的分组要立即被路由到外部网络,如果没有匹配,则实现检查点动作,并且随后输出的分组的传递延迟直到检查点动作完成。
示例69。示例68的至少一种机器可读介质,缓冲模式可包括输出的分组要被缓冲并且被延迟路由到外部网络。对于这些示例,输出的分组可延迟直到周期检查点动作完成。
示例70。示例67的至少一种机器可读介质,周期检查点动作基于先前周期检查点动作与周期检查点动作的实现之间的固定时间间隔。
示例71。示例67的至少一种机器可读介质,一个或多个时间间隔可包括与PVM和SVM的多个检查点动作的至少一个检查点动作关联的一个或多个独立时间间隔。对于这些示例,较长时间间隔可指示相对于较短时间间隔(其可指示较低输出分组相似性等级)的较高输出分组相似性等级。
示例72。示例71的至少一种机器可读介质,一个或多个时间间隔指示多个检查点动作的大多数的较高输出分组相似性等级。对于这些示例,CP/D策略可从CCA来接收,以指示基于较高输出分组相似性等级的即时模式的选择。
示例73。示例71的至少一种机器可读介质,较长时间间隔可包括大于40 ms的时间间隔。较短时间间隔可包括40 ms或以下的时间间隔。
示例74。示例设备可包括处理器电路。设备还可包括接收组件,供处理器电路运行,以接收指示由第一服务器所托管的PVM和第二服务器所托管的SVM独立运行的一个或多个应用的输出分组相似性的信息。输出分组相似性可包括独立时间间隔,在所述独立时间间隔期间内容对于由PVM和SVM独立运行的一个或多个应用独立生成的输出分组匹配。该设备还可包括池组件,供处理器电路运行,以基于在第一服务器或第二服务器的COLO管理器用来将输出分组从PVM或SVM路由到外部网络的CP/D模式将PVM和SVM添加到即时池或缓冲池其中之一。即时池可包括一个或多个第一PVM/SVM,其布置成使来自一个或多个第一PVM/SVM的输出的分组立即路由到外部网络(只要输出的分组的内容在第一PVM/SVM之间匹配)。缓冲池可包括一个或多个第二PVM/SVM,其布置成使来自一个或多个第二PVM/SVM的输出的分组被延迟路由到外部网络,输出的分组延迟直到周期检查点动作由相应第二PVM/SVM完成。
示例75。示例74的设备还可包括:池组件,用于将PVM和SVM添加到缓冲池;以及数据库组件,供处理器电路运行,以保持池数据库,其包括指示由PVM和SVM独立运行的一个或多个应用的每个的输出分组相似性的信息。该设备还可包括迁移组件,供处理器电路运行,以使用池数据库中的信息来确定是否将PVM和SVM所运行的第一应用迁移到另一个PVM和SVM,以使PVM和SVM具有由PVM和SVM独立运行的一个或多个其余应用所生成的输出的分组的输出分组相似性,其包括高于间隔阈值的平均时间间隔。如果平均时间间隔高于间隔阈值,则迁移组件可使第一应用被迁移到其他PVM/SVM。池组件可在第一应用的迁移之后从缓冲池中去除PVM和SVM,并且将PVM和SVM添加到即时池。该设备还可包括通知组件,供处理器电路运行,以向CCA发送通知以修改CP/D策略,来使COLO管理器改变用来将输出分组从PVM或SVM路由到外部网络的CP/D模式。
示例76。示例75的设备,CP/D模式从缓冲模式改变成即时模式。
示例77。示例75的设备,间隔阈值可以为40毫秒。
示例78。示例方法可包括在处理器电路接收指示由第一服务器所托管的PVM和第二服务器所托管的SVM独立运行的一个或多个应用的输出分组相似性的信息。输出分组相似性可包括独立时间间隔,在所述独立时间间隔期间内容对于由PVM和SVM独立运行的一个或多个应用独立生成的输出分组匹配。该方法还可包括基于在第一服务器或第二服务器的COLO管理器用来将输出分组从PVM或SVM路由到外部网络的CP/D模式将PVM和SVM添加到即时池或缓冲池其中之一。即时池可包括一个或多个第一PVM/SVM,其布置成使来自一个或多个第一PVM/SVM的输出的分组立即路由到外部网络(只要输出的分组的内容在第一PVM/SVM之间匹配)。缓冲池可包括一个或多个第二PVM/SVM,其布置成使来自一个或多个第二PVM/SVM的输出的分组被延迟路由到外部网络。输出的分组可延迟直到周期检查点动作由相应第二PVM/SVM完成。
示例79。示例78的方法还可包括将PVM和SVM添加到缓冲池。该方法还可包括保持池数据库(其包括指示PVM和SVM独立运行的一个或多个应用的每个的输出分组相似性的信息)。该方法还可包括基于池数据库中的信息来评估是否将PVM和SVM所运行的第一应用迁移到另一个PVM和SVM,以使PVM和SVM具有由PVM和SVM独立运行的一个或多个其余应用所生成的输出的分组的输出分组相似性,其包括高于间隔阈值的平均时间间隔。如果平均时间间隔高于间隔阈值,则该方法还可包括使第一应用被迁移到其他PVM和SVM。该方法还可包括在第一应用的迁移之后从缓冲池中去除PVM和SVM,并且将PVM和SVM添加到即时池。该方法还可包括通知CCA修改CP/D策略,以使独立COLO管理器改变用来将输出分组从PVM或SVM路由到外部网络的CP/D模式。
示例80。示例79的方法,CP/D模式从缓冲模式改变成即时模式。
示例81。示例75的方法,间隔阈值包括40毫秒。
示例82。至少一种机器可读介质的示例可包括多个指令,所述多个指令响应由在计算平台的系统所运行而可使该系统执行如示例78至81中的任一项所述的方法。
示例83。示例设备可包括用于执行如示例78至81中的任一项所述的方法的部件。
示例84。至少一种机器可读介质的示例可包括多个指令,所述指令响应由计算平台上实现的系统所运行而可使该系统接收指示由第一服务器所托管的PVM和第二服务器所托管的SVM独立运行的一个或多个应用的输出分组相似性的信息。输出分组相似性可包括独立时间间隔,在所述独立时间间隔期间内容对于由PVM和SVM独立运行的一个或多个应用独立生成的输出分组匹配。指令还可使系统基于在第一服务器和第二服务器的COLO管理器用来将输出分组从PVM或SVM路由到外部网络的CP/D模式将PVM和SVM添加到即时池或缓冲池其中之一。即时池可包括一个或多个第一PVM/SVM,其布置成使来自一个或多个第一PVM/SVM的输出的分组立即路由到外部网络(只要输出的分组的内容在第一PVM/SVM之间匹配)。缓冲池可包括一个或多个第二PVM/SVM,其布置成使来自一个或多个第二PVM/SVM的输出的分组被延迟路由到外部网络。输出的分组可延迟直到周期检查点动作由相应第二PVM/SVM完成。
示例85。示例84的至少一种机器可读介质,可包括进一步使系统将PVM和SVM添加到缓冲池的指令。指令还可使系统保持池数据库(其包括指示PVM和SVM独立运行的一个或多个应用的每个的输出分组相似性的信息)。指令还可使系统基于池数据库中的信息来评估是否将PVM和SVM所运行的第一应用迁移到另一个PVM和SVM,以使PVM和SVM具有由PVM和SVM独立运行的一个或多个其余应用所生成的输出的分组的输出分组相似性,其包括高于间隔阈值的平均时间间隔。如果平均时间间隔高于间隔阈值,则指令还可使系统使第一应用被迁移到其他PVM和SVM。指令还可使系统在第一应用的迁移之后从缓冲池中去除PVM和SVM,并且将PVM和SVM添加到即时池。指令还可使系统通知CCA修改CP/D策略,以使独立COLO管理器改变用来将输出分组从PVM或SVM路由到外部网络的CP/D模式。
示例86。示例85的至少一种机器可读介质,CP/D模式从缓冲模式改变成即时模式。
示例87。示例85的至少一种机器可读介质,间隔阈值可以为40毫秒。
强调的是,公开的摘要被提供以遵守37 C.F.R.章节1.72(b)(其要求将允许读者快速确定技术公开的性质的摘要)。要理解的是,它并不是要用于解释或限制权利要求的范围或含意。另外,在以上具体实施方式中能够看到,各种特征群集到单个示例中(用于简化本公开的目的)。公开的这种方法不是要被解释为反映了要求保护的示例要求超过各权利要求中明确描述的更多特征的意图。而是,如以下权利要求书所反映,发明主题在于少于单个公开的示例的全部特征。因此,以下权利要求在此结合到具体实施方式中,其中各权利要求本身作为独立示例。在所附权利要求中,术语“包括”和“其中(in which)”分别用作相应术语“包含”和“其中(wherein)”的普通英语等效体。此外,术语“第一”、“第二”、“第三”等只用作标号,而不是意在对其对象施加数字要求。
虽然已经通过对结构特征和/或方法论动作特定的语言描述了主题,但是要理解,所附权利要求中定义的主题并不一定局限于以上所描述的特定特征或动作。以上所描述的特定特征和动作而是作为实现权利要求的示例形式来公开。
Claims (25)
1.一种设备,包括:
处理器电路;
接收组件,供所述处理器电路运行以接收指示第一服务器所托管的主虚拟机(PVM)与第二服务器所托管的辅虚拟机(SVM)之间的输出分组相似性的信息,所述输出分组相似性包括独立时间间隔,在所述独立时间间隔期间内容对于来自所述PVM和所述SVM的输出分组匹配;
策略组件,供所述处理器电路运行以基于所述信息来确定输出的分组的检查点/传递策略;以及
发送组件,供所述处理器电路运行以发送所述检查点/传递策略到粗粒度锁步(COLO)管理器以便所述COLO管理器至少部分基于所述检查点/传递策略来选择检查点/传递模式。
2.如权利要求1所述的设备,包括所述检查点/传递策略,以指示所述COLO管理器是否要选择按需检查点/即时传递模式或周期检查点/缓冲传递模式其中之一。
3.如权利要求2所述的设备,所述按需检查点/即时传递模式包括只要所述输出的分组的内容在所述PVM与所述SVM之间匹配则所述输出的分组要立即被路由到外部网络,如果没有匹配,则实现检查点动作,并且随后输出的分组的传递延迟直到所述检查点动作完成。
4.如权利要求2所述的设备,所述周期检查点/缓冲传递模式包括所述输出的分组要被缓冲并且被延迟路由到外部网络,所述输出的分组延迟直到周期检查点动作完成。
5.如权利要求4所述的设备,所述周期检查点动作基于先前周期检查点动作与所述周期检查点动作的实现之间的固定时间间隔。
6.如权利要求2所述的设备,所述独立时间间隔包括各与所述PVM和所述SVM的多个检查点动作的至少一个检查点动作关联的所述独立时间间隔,较长独立时间间隔指示相对于较短时间间隔的较高输出分组相似性等级,所述较短时间间隔指示较低输出分组相似性等级。
7.如权利要求6所述的设备,所述独立时间间隔指示所述多个检查点动作的大多数的所述较高输出分组相似性等级,所述检查点/传递策略向所述COLO管理器指示基于指示所述独立检查点动作的所述大多数的所述较高输出分组相似性等级的所述独立时间间隔来选择按需检查点/即时传递模式。
8.如权利要求6所述的设备,所述独立时间间隔指示阈值数量的所述多个检查点动作的所述较高输出分组相似性等级,所述阈值数量按照所述PVM或所述SVM的给定工作负荷的管理偏好来确定,所述COLO管理器基于指示所述阈值数量的独立检查点动作的所述较高输出分组相似性等级的所述独立时间间隔来选择按需检查点/即时传递模式。
9.如权利要求6所述的设备,较长独立时间间隔包括大于40毫秒(ms)的时间间隔,较短独立时间间隔包括40 ms或以下的时间间隔。
10.如权利要求2所述的设备,所述检查点/传递策略向所述COLO管理器指示基于输出的分组的多个连续检查点动作之间的平均时间间隔大于间隔阈值来选择所述按需检查点/即时传递模式,否则所述COLO管理器要选择所述周期检查点/传递策略。
11.如权利要求2所述的设备,所述检查点/传递策略向所述COLO管理器指示只要输出的分组的多个连续检查点动作之间的至少一个时间间隔大于间隔阈值则选择所述按需检查点/即时传递模式,否则所述COLO管理器要选择所述周期检查点/传递模式。
12.如权利要求11所述的设备,包括:
所述接收组件,用于接收指示所述PVM与所述SVM之间的更新的输出分组相似性的更新的信息;
所述策略组件,用于基于所述更新的信息来确定是否更新所述检查点/传递策略;以及
所述发送组件,用于基于通过所述策略组件的更新的检查点/传递策略向所述COLO管理器发送更新的检查点/传递策略,所述更新的检查点/传递使所述COLO管理器从按需检查点/即时传递改变成周期检查点/缓冲传递模式。
13.如权利要求12所述的设备,包括:
数据库组件,供所述处理器电路运行以将所述信息和所述更新的信息保持在数据库中,所述数据库还包括所述PVM与所述SVM之间的输出分组相似性的历史统计信息;以及
所述策略组件,用于基于所述更新的信息和所述历史统计信息来确定是否更新所述检查点/传递策略。
14.如权利要求1所述的设备,包括数字显示器,所述数字显示器耦合到所述电路以呈现用户界面视图。
15.至少一种机器可读介质,包括多个指令,所述指令响应由计算平台上实现的系统所运行而使所述系统执行下列操作:
接收指示第一服务器所托管的主虚拟机(PVM)与第二服务器所托管的辅虚拟机(SVM)之间的输出分组相似性的信息,所述输出分组相似性包括独立时间间隔,在所述独立时间间隔期间内容对于来自所述PVM和所述SVM的输出分组匹配;
基于所述信息来确定用于输出的分组的检查点/传递策略;以及
发送所述检查点/传递策略到粗粒度锁步(COLO)管理器以便所述COLO管理器至少部分基于所述检查点/传递策略来选择检查点/传递模式。
16.如权利要求15所述的至少一种机器可读介质,包括所述检查点/传递策略,以指示所述COLO管理器是否要选择按需检查点/即时传递模式或周期检查点/缓冲传递模式其中之一。
17.如权利要求16所述的至少一种机器可读介质,所述检查点/传递策略向所述COLO管理器指示基于输出的分组的多个连续检查点动作之间的平均时间间隔大于间隔阈值来选择所述按需检查点/即时传递模式,否则所述COLO管理器要选择所述周期检查点/传递策略。
18.如权利要求16所述的至少一种机器可读介质,所述检查点/传递策略向所述COLO管理器指示只要输出的分组的多个连续检查点动作之间的至少一个时间间隔大于间隔阈值则选择所述按需检查点/即时传递模式,否则所述COLO管理器要选择所述周期检查点/传递模式。
19.如权利要求16所述的至少一种机器可读介质,包括进一步使所述系统执行下列操作的所述指令:
接收指示所述PVM与所述SVM之间的更新的输出分组相似性的更新的信息;
基于所述更新的信息来确定是否更新所述检查点/传递策略;以及
基于更新的检查点/传递策略向所述COLO管理器发送更新的检查点/传递策略,其使所述COLO管理器从按需检查点/即时传递改变到周期检查点/缓冲传递模式。
20.一种方法,包括:
在处理器电路将来自第一服务器所托管的主虚拟机(PVM)的输出分组内容与来自第二服务器所托管的辅虚拟机(SVM)的输出分组内容进行比较;
确定一个或多个时间间隔,所述输出分组内容经由所述一个或多个时间间隔匹配;
基于所述一个或多个时间间隔来更新指示所述PVM与所述SVM之间的输出分组相似性的信息;以及
发送所述更新的信息到粗粒度锁步(COLO)检查点仲裁器(CCA)以便所述CCA确定用于来自所述PVM和所述SVM的输出的分组的检查点/传递策略。
21.如权利要求20所述的方法,包括:
从所述CCA接收所述所确定检查点/传递策略;以及
至少部分基于所述检查点/传递策略来选择检查点/传递模式,所述检查点/传递模式包括按需检查点/即时传递模式或周期检查点/缓冲传递模式其中之一。
22.如权利要求21所述的方法,所述一个或多个时间间隔包括与通过所述PVM和所述SVM的多个检查点动作的至少一个检查点动作关联的一个或多个独立时间间隔,较长时间间隔指示相对于较短时间间隔的较高输出分组相似性等级,所述较短时间间隔指示较低输出分组相似性等级。
23.至少一种机器可读介质,包括多个指令,所述指令响应由计算平台上实现的系统所运行而使所述系统执行下列操作:
接收指示由第一服务器所托管的主虚拟机(PVM)与第二服务器所托管的辅虚拟机(SVM)独立运行的一个或多个应用的输出分组相似性的信息,所述输出分组相似性包括独立时间间隔,在所述独立时间间隔期间内容对于由所述PVM和所述SVM独立运行的所述一个或多个应用独立生成的输出分组匹配;以及
基于在所述第一服务器和所述第二服务器的粗粒度锁步(COLO)管理器用来将输出分组从所述PVM或所述SVM路由到外部网络的检查点/传递模式将所述PVM和所述SVM添加到即时池或缓冲池其中之一,所述即时池包括一个或多个第一PVM/SVM,其布置成只要输出的分组的内容在所述第一PVM/SVM之间匹配则使来自所述一个或多个第一PVM/SVM的输出的分组立即路由到所述外部网络,所述缓冲池包括一个或多个第二PVM/SVM,其布置成使来自一个或多个第二PVM/SVM的输出的分组被延迟路由到所述外部网络,所述输出的分组延迟直到周期检查点动作由相应第二PVM/SVM完成。
24.如权利要求23所述的至少一种机器可读介质,包括进一步使所述系统执行下列操作的所述指令:
将所述PVM和所述SVM添加到所述缓冲池;
保持池数据库,其包括指示所述PVM和所述SVM独立运行的所述一个或多个应用的每个的所述输出分组相似性的信息;
基于所述池数据库中的所述信息来评估是否将所述PVM和所述SVM所运行的第一应用迁移到另一个PVM和SVM,以使所述PVM和所述SVM具有由所述PVM和所述SVM独立运行的一个或多个其余应用所生成的输出的分组的输出分组相似性,其包括高于间隔阈值的平均时间间隔;
如果所述平均时间间隔高于所述间隔阈值,则使所述第一应用被迁移到所述其他PVM和SVM;
在所述第一应用的所述迁移之后从所述缓冲池中去除所述PVM和所述SVM,并且将所述PVM和所述SVM添加到所述即时池;以及
通知COLO检查点仲裁器(CCA)修改检查点/传递策略,以使所述独立COLO管理器改变用来将输出分组从所述PVM或所述SVM路由到所述外部网络的所述检查点/传递模式。
25.如权利要求24所述的至少一种机器可读介质,包括从周期检查点/缓冲传递模式改变到按需检查点/即时传递模式的所述检查点/传递模式。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/088132 WO2016054770A1 (en) | 2014-10-08 | 2014-10-08 | Techniques for checkpointing/delivery between primary and secondary virtual machines |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107077366A true CN107077366A (zh) | 2017-08-18 |
CN107077366B CN107077366B (zh) | 2021-12-03 |
Family
ID=55652459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480081838.6A Active CN107077366B (zh) | 2014-10-08 | 2014-10-08 | 用于主与辅虚拟机之间的检查点/传递的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10620979B2 (zh) |
EP (1) | EP3204852A4 (zh) |
CN (1) | CN107077366B (zh) |
WO (1) | WO2016054770A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112380069A (zh) * | 2020-12-04 | 2021-02-19 | 海光信息技术股份有限公司 | 一种虚拟机容错系统及其容错方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9729632B2 (en) | 2014-10-17 | 2017-08-08 | International Business Machines Corporation | Managing migration of an application from a source to a target |
CN104618155B (zh) * | 2015-01-23 | 2018-06-05 | 华为技术有限公司 | 一种虚拟机容错的方法、装置及系统 |
CN106170948B (zh) * | 2015-07-30 | 2019-11-29 | 华为技术有限公司 | 一种用于双活数据中心的仲裁方法、装置及系统 |
US11349702B2 (en) * | 2016-07-21 | 2022-05-31 | Nec Corporation | Communication apparatus, system, rollback method, and non-transitory medium |
US11641395B2 (en) * | 2019-07-31 | 2023-05-02 | Stratus Technologies Ireland Ltd. | Fault tolerant systems and methods incorporating a minimum checkpoint interval |
US11429466B2 (en) * | 2019-07-31 | 2022-08-30 | Stratus Technologies Ireland Ltd. | Operating system-based systems and method of achieving fault tolerance |
US11836512B2 (en) * | 2020-05-19 | 2023-12-05 | EMC IP Holding Company LLC | Virtual machine replication strategy based on predicted application failures |
US11797400B2 (en) * | 2020-05-19 | 2023-10-24 | EMC IP Holding Company LLC | Cost-optimized true zero recovery time objective for multiple applications based on interdependent applications |
US11899957B2 (en) | 2020-05-19 | 2024-02-13 | EMC IP Holding Company LLC | Cost-optimized true zero recovery time objective for multiple applications |
US11934283B2 (en) | 2020-05-19 | 2024-03-19 | EMC IP Holding Company LLC | Cost-optimized true zero recovery time objective for multiple applications using failure domains |
US11288143B2 (en) * | 2020-08-26 | 2022-03-29 | Stratus Technologies Ireland Ltd. | Real-time fault-tolerant checkpointing |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100318991A1 (en) * | 2009-06-15 | 2010-12-16 | Vmware, Inc. | Virtual Machine Fault Tolerance |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3974538B2 (ja) * | 2003-02-20 | 2007-09-12 | 株式会社日立製作所 | 情報処理システム |
US8346933B2 (en) * | 2006-11-24 | 2013-01-01 | Nec Corporation | Virtual machine location system, virtual machine location method, program, virtual machine manager, and server |
US20080201455A1 (en) * | 2007-02-15 | 2008-08-21 | Husain Syed M Amir | Moving Execution of a Virtual Machine Across Different Virtualization Platforms |
JP5288185B2 (ja) * | 2009-01-07 | 2013-09-11 | 日本電気株式会社 | ネットワークインタフェース、計算機システム、それらの動作方法、及びプログラム |
US8417885B2 (en) | 2010-02-24 | 2013-04-09 | Avaya Inc. | Method and apparatus for high availability (HA) protection of a running virtual machine (VM) |
US8171338B2 (en) * | 2010-05-18 | 2012-05-01 | Vmware, Inc. | Method and system for enabling checkpointing fault tolerance across remote virtual machines |
US8413145B2 (en) * | 2010-09-30 | 2013-04-02 | Avaya Inc. | Method and apparatus for efficient memory replication for high availability (HA) protection of a virtual machine (VM) |
TWI537828B (zh) * | 2010-12-21 | 2016-06-11 | 萬國商業機器公司 | 虛擬機管理的方法及其電腦系統之裝置和電腦程式 |
US8863092B2 (en) * | 2011-02-10 | 2014-10-14 | Microsoft Corporation | Mechanism for compatibility and preserving framework refactoring |
US8769533B2 (en) * | 2011-07-18 | 2014-07-01 | International Business Machines Corporation | Check-point based high availability: network packet buffering in hardware |
US8533715B2 (en) * | 2011-08-09 | 2013-09-10 | International Business Machines Corporation | Virtual machine management |
US8639984B2 (en) | 2011-08-09 | 2014-01-28 | International Business Machines Corporation | Checkpoint debugging using mirrored virtual machines |
US8806266B1 (en) * | 2011-09-28 | 2014-08-12 | Juniper Networks, Inc. | High availability using full memory replication between virtual machine instances on a network device |
US9727388B2 (en) * | 2011-12-29 | 2017-08-08 | Intel Corporation | Migrating threads between asymmetric cores in a multiple core processor |
US9730038B2 (en) * | 2013-02-28 | 2017-08-08 | Facebook, Inc. | Techniques to manage platform migrations |
US20140372717A1 (en) * | 2013-06-18 | 2014-12-18 | Microsoft Corporation | Fast and Secure Virtual Machine Memory Checkpointing |
JP6518672B2 (ja) * | 2013-12-30 | 2019-05-22 | ストラタス・テクノロジーズ・バミューダ・リミテッド | 動的チェックポインティングシステムおよび方法 |
US9588844B2 (en) * | 2013-12-30 | 2017-03-07 | Stratus Technologies Bermuda Ltd. | Checkpointing systems and methods using data forwarding |
WO2015102874A2 (en) * | 2013-12-30 | 2015-07-09 | Stratus Technologies Bermuda Ltd. | Method of delaying checkpoints by inspecting network packets |
WO2015188346A1 (en) * | 2014-06-12 | 2015-12-17 | Empire Technology Development Llc | Virtual machine migration based on communication from nodes |
US9495259B2 (en) * | 2014-06-27 | 2016-11-15 | Vmware, Inc. | Orchestrating high availability failover for virtual machines stored on distributed object-based storage |
US9513946B2 (en) * | 2014-06-27 | 2016-12-06 | Vmware, Inc. | Maintaining high availability during network partitions for virtual machines stored on distributed object-based storage |
US9336040B2 (en) * | 2014-09-15 | 2016-05-10 | Intel Corporation | Techniques for remapping sessions for a multi-threaded application |
US10437993B2 (en) * | 2014-10-03 | 2019-10-08 | The Trustees Of The University Of Pennsylvania | Methods, systems, and computer readable media for detecting covert timing channels |
US9430272B2 (en) * | 2014-12-17 | 2016-08-30 | Microsoft Technology Licensing, Llc | Efficiently providing virtual machine reference points |
-
2014
- 2014-10-08 EP EP14903675.8A patent/EP3204852A4/en not_active Withdrawn
- 2014-10-08 CN CN201480081838.6A patent/CN107077366B/zh active Active
- 2014-10-08 US US15/516,381 patent/US10620979B2/en active Active
- 2014-10-08 WO PCT/CN2014/088132 patent/WO2016054770A1/en active Application Filing
-
2020
- 2020-02-26 US US16/802,110 patent/US10929157B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100318991A1 (en) * | 2009-06-15 | 2010-12-16 | Vmware, Inc. | Virtual Machine Fault Tolerance |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112380069A (zh) * | 2020-12-04 | 2021-02-19 | 海光信息技术股份有限公司 | 一种虚拟机容错系统及其容错方法 |
CN112380069B (zh) * | 2020-12-04 | 2022-05-17 | 海光信息技术股份有限公司 | 一种虚拟机容错系统及其容错方法 |
Also Published As
Publication number | Publication date |
---|---|
US10620979B2 (en) | 2020-04-14 |
EP3204852A4 (en) | 2018-06-13 |
CN107077366B (zh) | 2021-12-03 |
US20170300347A1 (en) | 2017-10-19 |
EP3204852A1 (en) | 2017-08-16 |
US20200192687A1 (en) | 2020-06-18 |
WO2016054770A1 (en) | 2016-04-14 |
US10929157B2 (en) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107077366A (zh) | 用于主与辅虚拟机之间的检查点/传递的技术 | |
US10552803B2 (en) | Systems and methods for determining a potential failure or other status of a robotic device | |
CN105471961B (zh) | 用于重映射多线程应用的会话的方法和设备 | |
CN103201724B (zh) | 在高可用性虚拟机环境中提供高可用性应用程序 | |
CN107660289A (zh) | 自动网络控制 | |
Răileanu et al. | A cloud-based manufacturing control system with data integration from multiple autonomous agents | |
CN107179957A (zh) | 物理机故障分类处理方法、装置和虚拟机恢复方法、系统 | |
US10691528B1 (en) | Automatic repair of computing devices in a data center | |
CN108694086A (zh) | 用于使用与执行虚拟化应用关联的指纹的服务保障的技术 | |
US20180276019A1 (en) | Ensuring operational integrity and performance of deployed converged infrastructure information handling systems | |
CN107038089A (zh) | 支持编排的服务的高可用性的方法与系统 | |
CN108205424A (zh) | 基于磁盘的数据迁移方法、装置及电子设备 | |
CN109040277A (zh) | 一种服务器的远程监控方法及装置 | |
CN108123851A (zh) | 分布式系统中主从节点同步链路的存活检测方法及装置 | |
CN102857371A (zh) | 一种面向集群系统的动态配置管理方法 | |
CN110417586A (zh) | 服务监控方法、服务节点、服务器及计算机可读存储介质 | |
CN108347339A (zh) | 一种业务恢复方法及装置 | |
CN108614450A (zh) | 一种物联网下的机械系统及其方法 | |
CN109445975A (zh) | 异常处理方法、逻辑装置及成员设备 | |
CN103186435B (zh) | 系统错误处理方法与使用该方法的服务器系统 | |
CN109800133A (zh) | 一种统一监控告警的方法、一站式监控告警平台及系统 | |
CN111209333B (zh) | 数据更新方法、装置、终端及存储介质 | |
CN108111343A (zh) | 基于云平台实现终端监控的方法、设备及计算机存储介质 | |
CN105874453B (zh) | 为多承租者数据库提供一致的承租者体验 | |
US9864669B1 (en) | Managing data center resources |
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 |