CN102473105B - 用于提高***故障恢复性能的主要与辅助虚拟化软件映像之间的分组镜像 - Google Patents
用于提高***故障恢复性能的主要与辅助虚拟化软件映像之间的分组镜像 Download PDFInfo
- Publication number
- CN102473105B CN102473105B CN201080029848.7A CN201080029848A CN102473105B CN 102473105 B CN102473105 B CN 102473105B CN 201080029848 A CN201080029848 A CN 201080029848A CN 102473105 B CN102473105 B CN 102473105B
- Authority
- CN
- China
- Prior art keywords
- equipment
- stand
- active devices
- copied
- data traffic
- 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
Classifications
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2028—Failover techniques eliminating a faulty processor or activating a spare
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2038—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2048—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage
-
- 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/815—Virtual
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Retry When Errors Occur (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
当主要服务器发生故障时导致在故障恢复期间在备用服务器处出现分组丢失。目前总是存在进入主要***的分组流量中的在故障恢复间隔期间被丢失某些量。问题在于,当该信息丢失时,备用服务器具有上次提交的状态,因此该备用服务器将具有这样的老旧状态信息,其代表仅对于上次提交时的***状态而言是准确的***状态。一种解决方案是一种方法,在该方法中,要被递送给运行在主要虚拟机上的主要软件应用(例如虚拟化软件应用)的所有进入数据分组被持续监视,并被网络复制设备拷贝以用于同时递送给运行在备用***上的软件应用的备份映像。
Description
技术领域
一个示例性方面涉及提高***故障恢复性能。更具体地,一个示例性方面涉及在(一个或多个)高可用性(HA)软件环境中的提高的***故障恢复性能。
背景技术
使用当前技术水平的虚拟机(VM)平台和技术进行的软件应用复制是向软件应用用户提供高可用性保证的非常强大且灵活的方式。应用供应商可以利用VM技术通过创建软件应用的同时但彼此独立运行的多个映像(image)(或拷贝)来向其解决方案提供可靠性。这些映像可以运行在同一实体设备上,例如通用应用服务器,或者运行在多个分离开的VM容器内,或者它们可以跨越分离开的VM容器中的多个实体计算机而被开发。存在多种VM复制方案,但是一般地,VM解决方案具有为用户递送软件服务的主要软件映像,并且具有位于备用服务器处的在发生故障的情况中可接任主要软件映像的辅助或第三备份映像。备份映像一般在离散时间间隔处被同步,以更新备份服务器的数据结构和数据库,从而跟踪自数据同步更新上次发生时起所发生的改变。该同步被称为“提交”(commit),并且这些解决方案极大地提高了软件应用供应商保证其用户将接收到对软件应用服务的可靠访问的能力。
在高可用性环境中,主要(主动)和辅助(被动)***一起工作来确保在紧凑锁步(lock step)(例如tandem(公司名)和stratus(公司名)容错***)或宽松锁步中(例如不太昂贵的集群)的状态的同步性。只要***的某个层级存在状态改变,主要***就将概括状态(summary state)发送给辅助***,辅助***使用该概括状态将其状态调节为与主要***同步。当主要***在能够发送自上次检查点起累积的任何信息之前发生故障时,该信息通常基于其被接收到的日期而被辅助***本地地重放,并且辅助***试图在接任作为主要***之前同步其自身。
发明内容
然而,在软件应用的VM复制中存在一个需要解决方案的重要问题。该问题是在主要***发生故障时引起的在故障恢复期间在备用服务器处的分组丢失。目前总是存在进入主要***的大量分组流量中的在故障恢复间隔期间丢失的某些量。在现有解决方案中,故障恢复期间的这种分组丢失是不可避免的。问题在于,当该信息丢失时,备用服务器具有上次提交的状态,因此该备用服务器将具有这样的老旧状态信息,其代表仅对于上次提交时的***状态而言是准确的***状态。
克服该问题的尝试的一个现有示例是链路弹回(link bouncing)。Remus(http://people.cs.ubc.ca/~brendan/papers/remus-nsdi08.pdf)试图通过将传出分组缓冲在主动缓冲器中来解决该问题。然而,Remus实现方式遭受了巨大的性能损失,因此其在大多数产品软件环境中不可用。在Remus中,性能损失的主因是正在丢失的网络分组的传输被延迟直到下一检查点/提交为止。
从先前的事实来看,用于通过数据进行故障恢复的基础实践是使用检查点间隔,在检查点间隔期间,使得数据在备份服务器上是当前数据。然而如上面所讨论的,这些可用解决方案或者在故障恢复期间丢失数据,或者最好也只不过是它们在故障恢复期间缓冲传入数据,但它们会遭受极大的性能损失。
根据一个示例性实施例,一种***或机制被构建来实现如下方法:要被递送给运行在主要虚拟机(VM)中的主要软件应用或***(例如虚拟化软件应用)的所有进入数据网络分组被持续监视,并被网络复制设备或驱动器(NRD,Network Replication Device or driver)分支或拷贝,以用于同时递送给运行在备用***或VM上的软件应用的备份映像。为了实现使应用中断运行时间减少或变为零的目的,该数据实时地或接近实时地被NRD拷贝并递送给备用应用映像。NRD的第二示例性益处是其能够使因故障恢复事件期间的分组丢失引起的应用性能下降减少或变为零的能力。一个示例性实施例假设应用了本技术的VM平台/***包括当前的“现有技术水平的”检查点提交和故障检测机制。
在准备好(一个或多个)检查点提交和故障检测***后,网络复制NRD技术的基本逻辑可被实现为网络复制驱动器,该网络复制驱动器完全由共同驻留(co-resident)在容纳软件应用映像和VM的一个或多个服务器上运行的软件和/或硬件来实现。替代地,或许在另一示例性实现方式中,NRD可被实现为(一个或多个)单独的“线路插件”(bump-in-the-wire)嵌入式计算设备,该嵌入式计算设备实体上独立于容纳软件应用VM映像的一个或多个服务器被提供并部署。在容纳主要和辅助软件应用的虚拟化映像的主要和辅助实体服务器的超集(superset)情况中,一个示例性实施例还可以包括主要(主动)和辅助(备用)NRD。
NRD可以在主动和/或备用服务器或装备中或者在网络中的某个其它位置处运行。根据一个示例性实施例,主动NRD将拷贝到达VM的分组,将目的地地址变为备用目的地,并且将分组转发给备用服务器设备。在此示例性实施例中,备用目的地可以是备用DOM0(第零域,DomainZero)位置,其中,该***在管理程序环境中被实现。然而,一般地,该位置可以是***内的任何位置。备用NRD如下这样来缓冲分组:
-在检查点提交时,备用NRD将清除直到提交为止的缓冲器网络分组。
-在故障检测时,备用NRD将缓冲器分组递送给用于虚拟机的新被激活的备用设备。
示例性实施例使用一组分离开的线路插件缓冲设备,其中操作在概念上是相同的。但在实现时,分组在到达运行了主要VM的主要服务器之前被主要“插件(bump)”设备截取。它们然后被分支到第二线路插件设备以在故障恢复的情况中进行缓冲以用于备份/备用软件映像。
利用线路实现方式中的插件,当主要设备发生故障时,即使是严重的硬件故障,插件设备也可以确保去往主要设备的进入流量不丢失。在发生故障时,辅助映像然后可被启动并且开始处理流量,该辅助映像具有如下能力:由于去往主要映像的进入数据完全没有丢失,因此能完全复原(recover)主要映像的状态。另外,由于插件设备不限于仅在离散的、检查点提交间隔处形成数据镜像,因此不会牺牲性能。作为此情形的一部分,辅助插件设备和主要插件设备在故障恢复时可以交换角色,从主要插件设备交换为辅助插件设备,反之亦然。在发生故障之后像主要插件设备那样动作的辅助插件设备可以开始将数据镜像到先前作为主要插件设备并且现在起辅助插件设备的作用的插件设备。
同时,发生故障的主要服务器可被替换并被重启,同时这两个插件设备可继续未经中断的操作。一旦主要服务器被替换/重启,***现在就可以进行恢复“反向置换(swapback)”,其中,主动“备份”服务器将状态、流量和所有权会话操作提交回已被替换/重启的“主要”服务器。再次地,这将能够再次平衡利用两个实体上分离的插件设备,而不会丢失任何状态或可用性。
与在前解决方案相比,本方法的一个示例性优点在于,即使面对着严重的主要硬件或软件映像故障,其也能够使多映像虚拟化软件应用向软件应用用户提供连续的未被中断的服务。
另一示例性方面涉及将去往虚拟化软件映像的进入流量的处理与该虚拟化软件应用的主要操作分离开。另外,其它感兴趣方面可在如下想法中找到:在实体上将该流量处理分离到执行该协作缓冲操作的独立部署的线路插件设备。
另一示例性实施例涉及VM环境中的网络复制,具体地涉及VM复制。将网络信息、应用数据以及一般地任何类型的数据(***数据等)中的一个或多个存储在缓冲器中的VM复制正在成为提供虚拟化***中的高访问性的一种主导方式。然而,VM复制存在一个大问题,并且尚没有完美的解决方案。示例性问题是故障恢复期间的分组丢失。由于在故障恢复期间存在VM中断运行时间并且备用设备通常在每个检查点间隔处被同步,因此故障恢复期间的分组丢失是不可避免的。
因此,一个示例性实施例是在(一个或多个)备用服务器处实时地缓冲网络分组。这至少提供了***性能的大幅增长。然而该假设是在***被提供有由其它装置进行的检查点提交和故障检测的情况下来预测的。
根据示例性实施例,用于网络复制的基本逻辑可被实现为网络复制驱动器。NRD可以在主动服务器和备用服务器中的一个或多个中运行,并且可以可选地位于通信或计算网络的某个其它位置。主动NRD将拷贝进入VM的分组,将目的地地址变为备用地址,并且将分组发送给备用设备或服务器。备用NRD将缓冲这些分组并且进行如下操作:
-在检查点提交时,备用NRD清除直到检查点为止所缓冲的网络分组。
-在故障检测时,备用NRD将所缓冲分组递送给新被激活的虚拟机。
另一方面涉及一种技术,其中,不是缓冲传出分组,而是传入网络分组被拷贝到备用机器、服务器、设备或虚拟机。传入分组中的一些在故障恢复期间不可避免地未抵达主动机器,因为该设备在那时可能不存在。然而,分组被保存在备用机器的缓冲器中。在备用机器接任之后,所保存的网络分组可被重放给新激活的机器或虚拟机,以使得因网络分组丢失引起的状态丢失最小化。
更具体地,虚拟机状态丢失以如下方式发生。假设仅存在通过检查点进行的虚拟机存储器复制。在时间T时,假设主动设备处于第N个检查点的中间。备用设备具有上一检查点(第N-1个)的状态。在当前的第N个检查点期间,主动VM从确认该分组的客户端接收到称为“丢失分组”的一个分组,然后在提交当前检查点之前不知何故停止运转。然后,备用设备将从上一检查点N-1的状态起继续。因此,新被激活的VM现在丢失了称为“丢失分组”的分组。根据示例性实施例,备用设备可以通过重放或读取丢失分组来恢复丢失分组,以重建故障之前的状态。
在高可用性环境中,主要(主动)和辅助(被动)***一起工作来确保紧凑锁步(例如tandem和stratus容错***)或宽松锁步中(例如不太昂贵的集群)的状态的同步性。只要***的某个层级存在状态改变,主要***就将概括状态发送给辅助***,辅助***使用该概括状态将其状态调节为与主要***同步。当主要***在能够发送自上次检查点起累积的任何信息之前发生故障时,该信息基于其被接收的日期而被辅助***本地地重放,并且辅助***试图在接任主要***之前将其自身与外部同步。本技术的示例性方面将这后一种的非检查点式(uncheckpointed)数据立即复制到辅助设备,而非保持该数据并且以后从主要设备发送该数据,这导致如下两个缺点:
一个缺点是其占据了发送队列,第二个缺点是当检查点从主要设备被发送时导致了额外的阻塞,在Remus类型的高可用性的情况中,其导致在高主动性时间期间来自主动主要设备的存储器资源耗尽。
因此,花费用于将网络数据报较早地分支到辅助设备上去的初始开销被避免以上列举的缺点的益处抵消。当然,当来自主要设备的状态-检查点消息到达时,这些所缓冲数据报在辅助设备在其自身中提交了该状态之后被辅助设备丢掉。
取决于特定配置,这里描述的技术可以提供多个优点。将从这里包含的公开中清楚这些以及其它优点。
短语“至少一个”、“一个或多个”以及“和/或”是在运用时既连接又分离的开放式表达。例如,如下表达“A、B和C中的至少一个”、“A、B或C中的至少一个”、“A、B和C中的一个或多个”、“A、B或C中的一个或多个”以及“A、B和/或C”中的每一种的意思是A单独的、B单独的、C单独的、A和B一起、A和C一起、B和C一起或者A、B和C一起。
术语“一”或“一个”实体指代一个或多个该实体。这样,术语“一”(或“一个”)、“一个或多个”和“至少一个”在这里可以互换使用。还要注意,术语“包含”、“包括”和“具有”可以互换使用。
如这里使用的术语“自动的”及其变体是指:当任何处理或操作被执行时,在没有实质性人为输入(material human input)的情况下完成该处理或操作。然而,如果输入是在处理或操作的执行之前被接收的,则即使处理或操作的执行使用了实质性的或非实质性的人为输入,处理或操作也可以是自动的。如果人为输入对处理或操作将如何被执行产生了影响,则认为该输入是实质性的。同意处理或操作的执行的人为输入不被认为是“实质性的”。
如这里使用的术语“计算机可读介质”是指参与向处理器提供指令供执行的任何有形存储和/或传输介质。这种介质可以采取许多形式,包括但不限于非易失性介质、易失性介质以及传输介质。非易失性介质例如包括NVRAM或者磁盘或光盘。易失性介质包括动态存储器,例如主存储器。计算机可读介质的常见形式例如包括软盘、柔性磁盘、硬盘、磁带或任何其它磁介质,磁光介质、CD-ROM、任何其它光介质,打孔卡、纸带、任何其它具有孔图案的物理介质,RAM、PROM和EPROM,FLASH-EPROM,类似存储卡的固态介质,任何其它存储器芯片或存储器盒,如下面将描述的载波,或者计算机可以读取的任何其它介质。电子邮件的数字文件附件或其它自容式信息文档或文档组被认为是等效于有形存储介质的分布式介质。当计算机可读介质被配置为数据库时,将明白,该数据库可以是任何类型的数据库,例如关系数据库、层次化数据库、面向对象的数据库等等。
虽然电路交换或分组交换类型的通信可被用于本***,然而这里公开的概念和技术也适用于其它协议。
因此,认为本发明包括其中存储了本技术的软件实现方式的有形存储介质或分布式介质以及现有技术认可的等同物和后继介质。
这里使用的术语“确定”、“计算”和“运算”及其变体可互换使用,并且包括任何类型的方法、处理、数学操作或技术。
这里使用的术语“模块”是指能够执行与该元件相关联的功能的任何公知的或以后开发出的硬件、软件、固件、人工智能、模糊逻辑或硬件与软件的组合。此外,虽然根据示例性实施例描述了本发明,然而,应当理解,可以单独地要求保护本发明的各个方面。
前面是本技术的简化概述以提供对本技术各个方面的了解。该概述既不是对本技术及其各个实施例的广泛性综述也不是全面性综述。既不旨在标识出本技术的重要的或关键性元素也不旨在记述本技术的范围,而是以简化的形式将本技术的所选概念呈现作为对下面将呈现的更详细描述的介绍。如将会理解的,通过单独或组合地利用上面阐述的或下面将详细描述的一个或多个特征,还可以作出本技术的其它实施例。
附图说明
将参考附图详细描述示例性实施例,在附图中:
图1图示出了示例性故障恢复***;
图2-图4图示出了示例性时序图;以及
图5图示出了故障恢复***的示例性操作方法。
具体实施方式
下面将结合***故障恢复环境描述本技术的示例性实施例。虽然很适合用于VM,但是示例性方面不限于用于任何特定类型的设备或***元件配置,并且本领域技术人员将认识到,所公开的技术可以在希望提供***故障恢复的任何环境中使用。
还将结合软件、模块以及相关联的硬件和(一个或多个)网络来描述示例性***和方法。为了避免不必要地模糊本公开,下面的描述省略了可能以框图形式示出的、公知的或者以其他方式概括的公知结构、组件和设备。
为了说明的目的,阐述了多个细节以提供对本技术的透彻理解。然而,应当理解,本技术可以以这里阐述的具体细节以外的多种方式来实施。
可以使用多种变更和修改。可以提供或要求保护本技术的一些特征而不需要提供或要求保护其它特征。
已结合***故障恢复改进来描述了示例性***和方法。然而,为了不必要地模糊本公开,本说明书省略了多个已知结构和设备。这种省略不应被解释为对权利要求的范围的限制。阐述了具体细节以提供对本技术的理解。然而,应当理解,本技术可以以这里阐述的具体细节以外的多种方式来实践。
此外,虽然这里图示出的示例性实施例示出了***的各个组件共处一地(collocated);然而***的某些组件可以远程地位于分布式网络(例如LAN、有线网络和/或因特网)中的远处,或者专用***内。因此,应当理解,***的组件可被组合为一个或多个设备,例如网关,或者共处于分布式网络的特定节点上,该分布式网络例如是模拟和/或数字通信网络、分组交换网络、电路交换网络或线缆网络。
图1概述了示例性计算环境1。计算环境1包括由一个或多个网络10和链路5相连的主动设备100和备用设备200。主动设备100和备用设备200的每个包括经由一个或多个网络10和链路5相连的提交模块(110、210)、设备状态模块(120、220)、(一个或多个)处理器(130、230)、存储器(140、240)、服务器(150、250)、(一个或多个)数据库(160、260)、可选缓冲器(170、270)以及NRD模块(180、280)。可选缓冲器175也可以位于计算环境1中的任何地方,其中当前是主动的设备通常经由网络10和链路5从一个或多个客户端2接收数据分组。
在操作中,主要***被激活(主动设备/***)。根据第一示例性实施例,主动设备是设备100,备用设备是设备200。在与提交模块110的协作下,在预定时间处,提交模块110执行提交从而保存主动设备100的状态。(参见图2-图4)当完成该提交时,在处理器130和可选缓冲器170或175的协作下,来自客户端2的所有进入数据分组都被拷贝到备用设备200。这些分组可以被存储在缓冲器本身或者例如数据库260中的一个或多个中。更具体地,NRD模块180监视来自客户端2的所有传入数据分组,所有的这些传入数据分组持续地被NRD模块180监视并且被分支或镜像以用于同时递送到备用设备,该备用设备维护在主动设备100中运行的(一个或多个)软件应用的备份映像。这些数据分组可被NRD模块180实时地分支并递送到备用设备200,其一个示例性目的是实现使这两个设备之间的应用中断运行时间减少或为零。
如所讨论的,NRD模块180可以以例如共同驻留在容纳有软件应用和VM映像的(一个或多个)服务器或设备上运行的软件或硬件实现。在另一示例性实施例中,NRD模块可被实现为单独的“线路插件”嵌入式计算设备,该嵌入式计算设备实体上独立于经由映像来容纳软件应用的一个或多个服务器被提供并部署。
在发生故障的情况中,备用设备200在处理器230和设备状态模块220的协作下,重放被拷贝的分组以从上次提交重建(restore)到当前状态。然后,处理能够从故障恢复点起继续,而不会丢失数据分组。此时,备用设备200现在是“主动设备”并且充当主要***直到发生故障的主动设备100被复原并恢复在线为止。一旦发生故障的主动设备100被替换/修复/重启,***就可以可选地进行恢复“反向置换”,其中,主动的备用设备200将状态、流量和所有权拥有操作提交回被替换/修复/重启的主动设备100。再次地,这可以在不丢失状态或数据分组的情况下进行。
图2概述了示例性时序图,该时序图强调了上次提交被做出的点和时间、被复制缓冲的分组被存储的时段、以及备用设备利用被缓冲数据从发生故障点开始继续操作的时间点。图3和图4概述了关于在主动设备发生故障之后各个动作如何发生直到发生故障的设备重新被激活为止的示例性时间轴。总体上,图3和图4强调在主动设备100发生了故障的情况中例如当备用设备200正充当“主要或主动”设备时进行的处理。用于从备用设备200到主动设备100的恢复反向置换的处理在操作上与主动设备100是“主动或主要”设备或***时相同。
如所讨论的,缓冲器(170、175、270)可位于计算环境1内的任何点处。另外,假若缓冲器能够在主动设备发生故障的情况中将被复制缓冲的分组转发给(一个或多个)备用设备或***,则可以根据需要提供多个缓冲器。取决于计算***1的特定环境,缓冲器还可以与存储器140、240以及数据库160、260中的一个或多个协作。
图5概述了用于在软件应用环境中提供高可用性的示例性方法。具体地,控制开始于步骤S100并且继续到步骤S110。在步骤S110,主要***被激活。接下来,在步骤S120,由主要***执行提交以为备用***保存状态。然后,在步骤S130,到主要***的所有进入流量被拷贝到一个或多个缓冲器或备用***。控制随后继续到步骤S140。
在步骤S140,判断是否发生了故障。如果已发生了故障,则控制跳至步骤S142。否则,控制继续到步骤S150。
在步骤S150,判断是否到达下一提交状态。如果已到达,则控制跳回步骤S120,否则控制继续到步骤S130。
在步骤S142,为备用***拷贝的分组被从上次提交重放到当前状态。然后,在步骤S144,备用***能够从故障恢复点起开始处理而不会丢失任何数据分组。然后,在步骤S146,备用***充当主要***,并且控制继续到步骤S148,在步骤S148中,控制序列结束。
从前面的描述将理解,出于计算效率的原因,***的组件可以被布置在分布式组件网络内的任何位置,而不会影响***的操作。例如,各个组件可以位于诸如PBX之类的交换机和媒体服务器、网关、线缆供应商、企业***、客户端-服务器环境、包含一个或多个服务器的分发者网络,位于一个或多个通信设备中、一个或多个用户的驻地(premises)处或它们的某种组合。类似地,***的一个或多个功能部件可以被分布在(一个或多个)通讯设备和相关联的计算设备之间。
此外,应当理解,诸如链路5之类的用于将元件相连的各种链路可以是有线或无线链路,或者它们的任意组合,或者能够向相连元件提供数据和/或从相连元件传输数据的任何其它已知或以后开发出的(一个或多个元件)。这些有线或无线链路还可以是安全链路并且能够传输加密的信息。用作链路的传输介质例如可以是用于电信号的任何适当的载波,包括同轴电缆、铜线和光纤,并且可以采取声波或光波的形式,例如在无线电波和红外数据通信期间生成的那些波。
此外,虽然已经关于具体的事件序列讨论并图示说明了流程图,然而应当明白,可以在对本发明的操作没有实质性影响的情况下对该序列进行改变、添加和省略。
在又一实施例中,本技术的***和方法可以结合专用计算机、经编程微处理器或微控制器以及(一个或多个)***集成电路元件、ASIC或其它集成电路、数字信号处理器、硬连线电子电路或逻辑电路(例如分立元件电路)、可编程逻辑器件或门阵列(例如PLD、PLA、FPGA、PAL)、专用计算机、任何类似装置等来实现。一般地,能够实现这里说明的方法的任何(一个或多个)设备或装置可被用来实现本技术的各个方面。
可用于本***的示例性硬件包括计算机、手持设备以及本领域已知的其它硬件。这些设备的一些包括处理器(例如,单个或多个微处理器)、存储器、非易失性存储装置、输入设备和输出设备。此外,包括但不限于分布式处理或组件/对象分布式处理、并行处理或虚拟机处理的替代软件实现方式还可以被构建来实现这里描述的方法。
在又一实施例中,可以结合利用对象的软件或面向对象的软件开发环境来容易地实现所公开的方法,这些软件和开发环境提供了在各种计算机或工作站平台上使用的可移植源代码。可替换地,可以用使用标准逻辑电路或VLSI设计的硬件来部分地或全部地实现所公开的***。是用硬件还是软件来实现根据本技术的***取决于***的速度和/或效率要求、具体的功能,以及所利用的具体软件或硬件***或微处理器或微计算机***。
在又一实施例中,可以用被存储在存储介质中,并且在与控制器和存储器协同操作的经编程通用计算机、专用计算机、微处理器等上运行的软件来部分地实现所公开的方法。在这些情况中,本技术的***和方法可以被实现为被嵌入在个人计算机上的程序(例如小应用程序(applet)、JAVA或CGI脚本)、驻留在服务器或计算机工作站上资源、被嵌入在专用测量***或***组件等中的例程等等。还可以通过将***和/或方法实体地结合到软件和/或硬件***中来实现本***。
虽然本发明参考特定的标准和协议描述了在实施例中实现的组件和功能,然而,本发明不局限于这些标准和协议。这里未提到的其它类似标准和协议是存在的并且认为被包括在本发明中。此外,这里提到的标准和协议以及这里未提到的标准和协议定期地被更快更有效的具有基本上相同功能的等同物所替代。这些具有相同功能的取代标准和协议被认为是包括在本发明中的等同物。
在各个实施例、配置和方面中,本公开包括基本上如这里示出和描述的组件、方法、处理、***和/或装置,包括其各种实施例、子组合以及子集。本领域技术人员在理解了本公开之后将明白如何作出和使用本技术。在各个实施例、配置和方面中,本技术包括:在缺少这里未示出和/或描述的项目时或者在其各种实施例、配置或方面中(包括在缺少诸如在先前的设备或处理中为了提高性能、获得改善并/或减小实现成本所使用的项目时),提供设备和处理。
前面的讨论是为了说明和描述的目的而呈现的。前面的讨论不旨在将本公开限制到这里公开的一种或多种形式。在前面的详细描述中,例如,为了简化本公开,在一个或多个实施例、配置或方面中将本技术的各个特征成组在一起。在除上面讨论的那些以外的本技术的替代实施例、配置或方面中,可以将本技术的实施例、配置或方面的特征相组合。这种公开的方法不应被解释为反映了如下意图:要求保护的技术需要比在每个权利要求中明确记述的特征多的特征。而是,如下面的权利要求所反映的,创造性方面在于比前面所公开的单个实施例、配置或方面的所有特征少。因此,下面的权利要求由此被结合到该详细描述中,其中,每个权利要求独立地作为单独的优选实施例。
此外,尽管本技术的描述包括了对一个或多个实施例、配置或方面以及某些变更和修改的描述,然而,例如在理解了本公开之后可能落在本领域技术人员的技术和知识内的其它变更、组合和修改也在本公开的范围内。希望获得包括了在所允许程度内的替代实施例、配置或方面的权利,其包括针对所要求保护的那些的替代、互换和/或等同的结构、功能、范围或步骤,而无论这里是否公开了这些替代、互换和/或等同的结构、功能、范围或步骤,并且不意图向公众贡献任何可专利的主题。
Claims (9)
1.一种用于保存状态并减少数据丢失的方法,包括:
当检测到主动设备中的提交时,在所有进入数据流量在所述主动设备处被接收之前持续地将所述所有进入数据流量拷贝到与备用设备相关联的一个或多个缓冲器直到下一提交或发生故障为止,其中被拷贝的进入数据流量具有变为所述备用设备的目的地地址的目的地地址;
检测故障;以及
重放被拷贝的数据流量以便将所述备用设备重建到发生故障设备的当前状态。
2.如权利要求1所述的方法,还包括:在所述备用设备处从故障恢复点起开始处理。
3.如权利要求1所述的方法,还包括:在所述下一提交时删除所有被拷贝的进入数据流量。
4.如权利要求1所述的方法,还包括:执行从所述备用设备到所述主动设备的反向置换。
5.如权利要求1所述的方法,其中,所述主动设备是一个或多个虚拟机、服务器和计算机中的一个或多个;
所述备用设备是一个或多个虚拟机、服务器和计算机中的一个或多个;
网络复制设备执行所述拷贝;和/或
所述网络复制设备位于所述主动设备的上游。
6.一种保存状态并减少数据丢失的***,包括:
网络复制模块,当检测到由主动设备中的提交模块进行的提交时,在所有进入数据流量在所述主动设备处被接收之前所述网络复制模块持续地将所述所有进入数据流量拷贝到与备用设备相关联的一个或多个缓冲器直到下一提交或发生故障为止,其中被拷贝的进入数据流量具有变为所述备用设备的目的地地址的目的地地址;
设备状态模块,检测故障;以及
第二设备状态模块,重放被拷贝的数据流量以便将所述备用设备重建到发生故障设备的当前状态。
7.如权利要求6所述的***,其中,所述备用设备处的处理从故障恢复点开始;
所有被拷贝进入数据流量在所述下一提交时被删除;
当所述故障被校正时,所述备用设备被置换回所述主动设备;
所述主动设备是一个或多个虚拟机、服务器和计算机中的一个或多个;和/或
所述备用设备是一个或多个虚拟机、服务器和计算机中的一个或多个。
8.如权利要求7所述的***,其中,所述网络复制设备执行到所述一个或多个缓冲器的拷贝,所述一个或多个缓冲器与所述主动设备、所述备用设备中的一个或多个位于相同的位置,或者位于网络节点上。
9.如权利要求8所述的***,其中,所述网络复制设备位于所述主动设备的上游;
所述网络复制设备位于所述备用设备的上游;和/或
要被递送给运行在所述主动设备上的主要虚拟机中的主要软件应用的所有进入数据流量被持续监视,并且被所述网络复制模块拷贝以用于同时递送给运行在备用***或虚拟机上的软件应用的备份映像,
其中所述备用设备在故障恢复点处进行处理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/651,554 | 2010-01-04 | ||
US12/651,554 US8145945B2 (en) | 2010-01-04 | 2010-01-04 | Packet mirroring between primary and secondary virtualized software images for improved system failover performance |
PCT/US2010/060100 WO2011081888A1 (en) | 2010-01-04 | 2010-12-13 | Packet mirroring between primary and secondary virtualized software images for improved system failover performance |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102473105A CN102473105A (zh) | 2012-05-23 |
CN102473105B true CN102473105B (zh) | 2014-12-10 |
Family
ID=44225415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080029848.7A Active CN102473105B (zh) | 2010-01-04 | 2010-12-13 | 用于提高***故障恢复性能的主要与辅助虚拟化软件映像之间的分组镜像 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8145945B2 (zh) |
KR (1) | KR101280754B1 (zh) |
CN (1) | CN102473105B (zh) |
DE (1) | DE112010003372T5 (zh) |
GB (1) | GB2483042B (zh) |
WO (1) | WO2011081888A1 (zh) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8301700B1 (en) | 2010-08-06 | 2012-10-30 | Open Invention Network Llc | System and method for event-driven live migration of multi-process applications |
US8584145B1 (en) | 2010-08-06 | 2013-11-12 | Open Invention Network, Llc | System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications |
US9043640B1 (en) * | 2005-08-26 | 2015-05-26 | Open Invention Network, LLP | System and method for event-driven live migration of multi-process applications |
US9141481B1 (en) | 2010-08-06 | 2015-09-22 | Open Invention Network, Llc | System and method for reliable non-blocking messaging for multi-process application replication |
US8281184B1 (en) * | 2010-08-06 | 2012-10-02 | Open Invention Network Llc | System and method for reliable non-blocking messaging for multi-process application replication |
US8589953B1 (en) | 2010-08-06 | 2013-11-19 | Open Invention Network, Llc | System and method for transparent consistent application-replication of multi-process multi-threaded applications |
US8621275B1 (en) | 2010-08-06 | 2013-12-31 | Open Invention Network, Llc | System and method for event-driven live migration of multi-process applications |
JP5352299B2 (ja) * | 2009-03-19 | 2013-11-27 | 株式会社日立製作所 | 高信頼性計算機システムおよびその構成方法 |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US9135127B1 (en) | 2010-08-06 | 2015-09-15 | Open Invention Network, Llc | System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications |
US8521703B2 (en) * | 2010-11-05 | 2013-08-27 | International Business Machines Corporation | Multiple node/virtual input/output (I/O) server (VIOS) failure recovery in clustered partition mobility |
US8924560B2 (en) * | 2010-11-29 | 2014-12-30 | At&T Intellectual Property I, L.P. | Optimized game server relocation environment |
TWI537828B (zh) * | 2010-12-21 | 2016-06-11 | 萬國商業機器公司 | 虛擬機管理的方法及其電腦系統之裝置和電腦程式 |
US8832489B2 (en) * | 2011-04-26 | 2014-09-09 | Dell Products, Lp | System and method for providing failover between controllers in a storage array |
US10585766B2 (en) | 2011-06-06 | 2020-03-10 | Microsoft Technology Licensing, Llc | Automatic configuration of a recovery service |
US8938638B2 (en) * | 2011-06-06 | 2015-01-20 | Microsoft Corporation | Recovery service location for a service |
US8639984B2 (en) * | 2011-08-09 | 2014-01-28 | International Business Machines Corporation | Checkpoint debugging using mirrored virtual machines |
US9256463B2 (en) | 2012-06-29 | 2016-02-09 | International Business Machines Corporation | Method and apparatus to replicate stateful virtual machines between clouds |
US9122873B2 (en) | 2012-09-14 | 2015-09-01 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9069782B2 (en) | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
KR101471879B1 (ko) | 2012-10-31 | 2014-12-11 | 삼성에스디에스 주식회사 | 하이퍼바이저 기반 서버 이중화 시스템, 그 방법 및 서버 이중화 컴퓨터 프로그램이 기록된 기록매체 |
US9032157B2 (en) * | 2012-12-11 | 2015-05-12 | International Business Machines Corporation | Virtual machine failover |
US9251002B2 (en) * | 2013-01-15 | 2016-02-02 | Stratus Technologies Bermuda Ltd. | System and method for writing checkpointing data |
US9262090B2 (en) * | 2013-02-26 | 2016-02-16 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Asynchronous data mirroring in memory controller |
US9678673B2 (en) | 2013-03-28 | 2017-06-13 | Hewlett Packard Enterprise Development Lp | Coordinating replication of data stored in a non-volatile memory-based system |
CN103354503A (zh) * | 2013-05-23 | 2013-10-16 | 浙江闪龙科技有限公司 | 一种可自动检测及替换故障节点的云存储***及其方法 |
KR101511841B1 (ko) * | 2013-05-30 | 2015-04-13 | 삼성에스디에스 주식회사 | 가상 머신 기반의 무중단 시스템 및 상기 시스템에서의 패킷 중재 방법 |
CN103457775B (zh) * | 2013-09-05 | 2016-09-14 | 中国科学院软件研究所 | 一种基于角色的高可用虚拟机池化管理*** |
US9588844B2 (en) | 2013-12-30 | 2017-03-07 | Stratus Technologies Bermuda Ltd. | Checkpointing systems and methods using data forwarding |
EP3090344B1 (en) | 2013-12-30 | 2018-07-18 | Stratus Technologies Bermuda Ltd. | Dynamic checkpointing systems and methods |
US9760442B2 (en) | 2013-12-30 | 2017-09-12 | Stratus Technologies Bermuda Ltd. | Method of delaying checkpoints by inspecting network packets |
US10339010B1 (en) * | 2014-04-05 | 2019-07-02 | Bruce Talley | Systems and methods for synchronization of backup copies |
US10970179B1 (en) * | 2014-09-30 | 2021-04-06 | Acronis International Gmbh | Automated disaster recovery and data redundancy management systems and methods |
CN104461775A (zh) * | 2014-11-26 | 2015-03-25 | 英业达科技有限公司 | 异地备援***及备份方法 |
CN105490847B (zh) * | 2015-12-08 | 2019-03-29 | 天津市初志科技有限公司 | 一种私有云存储***中节点故障实时检测及处理方法 |
US10521315B2 (en) * | 2016-02-23 | 2019-12-31 | Vmware, Inc. | High availability handling network segmentation in a cluster |
WO2017209955A1 (en) | 2016-05-31 | 2017-12-07 | Brocade Communications Systems, Inc. | High availability for virtual machines |
US20180341494A1 (en) * | 2017-05-26 | 2018-11-29 | Intel Corporation | Accelerating network security monitoring |
EP3609108B1 (en) * | 2018-08-09 | 2021-04-28 | Tata Consultancy Services Limited | Method and system for message based communication and failure recovery for fpga middleware framework |
CN111309515B (zh) * | 2018-12-11 | 2023-11-28 | 华为技术有限公司 | 一种容灾控制方法、装置及*** |
US11962647B2 (en) * | 2019-06-05 | 2024-04-16 | Vmware, Inc. | Data migration using dynamic synchronization |
US20210397473A1 (en) * | 2020-06-18 | 2021-12-23 | Sonicwall Inc. | Method of creating high availability for single point network gateway using containers |
CN112532525B (zh) * | 2020-11-25 | 2022-11-25 | 北京金山云网络技术有限公司 | 设备恢复服务的处理方法、装置和*** |
CN113221937A (zh) * | 2021-02-24 | 2021-08-06 | 山东万博科技股份有限公司 | 基于人工智能判断的应急处理***及方法 |
US12040934B1 (en) * | 2021-12-17 | 2024-07-16 | Juniper Networks, Inc. | Conversational assistant for obtaining network information |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7373543B1 (en) * | 2000-07-31 | 2008-05-13 | Cisco Technology, Inc. | Method and apparatus for uninterrupted packet transfer using replication over disjoint paths |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4590554A (en) * | 1982-11-23 | 1986-05-20 | Parallel Computers Systems, Inc. | Backup fault tolerant computer system |
US6070251A (en) * | 1997-06-26 | 2000-05-30 | Sun Microsystems, Inc. | Method and apparatus for high availability and caching data storage devices |
US6594229B1 (en) * | 1999-12-14 | 2003-07-15 | Samsung Electronics Co., Ltd. | Data synchronization system for redundant packet routing architecture and method of operation |
GB0112781D0 (en) | 2001-05-25 | 2001-07-18 | Global Continuity Plc | Method for rapid recovery from a network file server failure |
US6745209B2 (en) | 2001-08-15 | 2004-06-01 | Iti, Inc. | Synchronization of plural databases in a database replication system |
JP3932994B2 (ja) * | 2002-06-25 | 2007-06-20 | 株式会社日立製作所 | サーバ引継システムおよびその方法 |
US7065673B2 (en) * | 2002-10-29 | 2006-06-20 | Brocade Communication Systems, Inc. | Staged startup after failover or reboot |
US7194652B2 (en) * | 2002-10-29 | 2007-03-20 | Brocade Communications Systems, Inc. | High availability synchronization architecture |
US7047379B2 (en) * | 2003-07-11 | 2006-05-16 | International Business Machines Corporation | Autonomic link optimization through elimination of unnecessary transfers |
US7797571B2 (en) * | 2003-07-15 | 2010-09-14 | International Business Machines Corporation | System, method and circuit for mirroring data |
US7739403B1 (en) * | 2003-10-03 | 2010-06-15 | Juniper Networks, Inc. | Synchronizing state information between control units |
US7500134B2 (en) * | 2005-12-27 | 2009-03-03 | Emc Corporation | Virtual array failover |
US20070174484A1 (en) * | 2006-01-23 | 2007-07-26 | Stratus Technologies Bermuda Ltd. | Apparatus and method for high performance checkpointing and rollback of network operations |
US20080077686A1 (en) | 2006-09-26 | 2008-03-27 | Dinesh Kumar Subhraveti | System and Method for Replication of Network State for Transparent Recovery of Network Connections |
US8135838B2 (en) | 2008-04-08 | 2012-03-13 | Geminare Incorporated | System and method for providing data and application continuity in a computer system |
US8301593B2 (en) | 2008-06-12 | 2012-10-30 | Gravic, Inc. | Mixed mode synchronous and asynchronous replication system |
-
2010
- 2010-01-04 US US12/651,554 patent/US8145945B2/en active Active
- 2010-12-13 DE DE112010003372T patent/DE112010003372T5/de active Pending
- 2010-12-13 GB GB1122355.9A patent/GB2483042B/en active Active
- 2010-12-13 WO PCT/US2010/060100 patent/WO2011081888A1/en active Application Filing
- 2010-12-13 KR KR1020117031644A patent/KR101280754B1/ko active IP Right Grant
- 2010-12-13 CN CN201080029848.7A patent/CN102473105B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7373543B1 (en) * | 2000-07-31 | 2008-05-13 | Cisco Technology, Inc. | Method and apparatus for uninterrupted packet transfer using replication over disjoint paths |
Also Published As
Publication number | Publication date |
---|---|
CN102473105A (zh) | 2012-05-23 |
GB2483042B (en) | 2018-06-27 |
GB2483042A (en) | 2012-02-22 |
WO2011081888A1 (en) | 2011-07-07 |
KR101280754B1 (ko) | 2013-07-05 |
DE112010003372T5 (de) | 2012-09-06 |
KR20120016298A (ko) | 2012-02-23 |
GB201122355D0 (en) | 2012-02-01 |
US20110167298A1 (en) | 2011-07-07 |
US8145945B2 (en) | 2012-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102473105B (zh) | 用于提高***故障恢复性能的主要与辅助虚拟化软件映像之间的分组镜像 | |
US9563655B2 (en) | Zero and near-zero data loss database backup and recovery | |
US7793060B2 (en) | System method and circuit for differential mirroring of data | |
US7487383B2 (en) | Data transfer and recovery process | |
US8990613B2 (en) | Data transfer and recovery | |
US9256605B1 (en) | Reading and writing to an unexposed device | |
Rajagopalan et al. | SecondSite: disaster tolerance as a service | |
US10019324B2 (en) | Data transfer and recovery | |
US10565071B2 (en) | Smart data replication recoverer | |
US7694177B2 (en) | Method and system for resynchronizing data between a primary and mirror data storage system | |
US20160085837A1 (en) | Snapshot and replication of a multi-stream application on multiple hosts at near-sync frequency | |
CN103077242A (zh) | 一种实现数据库服务器双机热备的方法 | |
US10534796B1 (en) | Maintaining an active-active cloud across different types of cloud storage services | |
CN103761166A (zh) | 一种虚拟化环境下针对网络服务的双机热备份容灾***及其方法 | |
CN101741536A (zh) | 数据级容灾方法、***和生产中心节点 | |
CN106339278A (zh) | 一种网络文件***的数据备份及恢复方法 | |
US7797571B2 (en) | System, method and circuit for mirroring data | |
CN103136070A (zh) | 一种数据容灾处理的方法和装置 | |
Walters et al. | A scalable asynchronous replication-based strategy for fault tolerant MPI applications | |
Bottomley | Clusters and high availability | |
Colesa et al. | Strategies to transparently make a centralized service highly-available | |
GB2514568A (en) | System to control backup migration and recovery of data and method of protection | |
GB2510589A (en) | Determining whether to replicate a complete data set, which has already been partly replicated |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |