CN103562878A - 在镜像虚拟机系统中的存储器检查点设置 - Google Patents
在镜像虚拟机系统中的存储器检查点设置 Download PDFInfo
- Publication number
- CN103562878A CN103562878A CN201280025030.7A CN201280025030A CN103562878A CN 103562878 A CN103562878 A CN 103562878A CN 201280025030 A CN201280025030 A CN 201280025030A CN 103562878 A CN103562878 A CN 103562878A
- Authority
- CN
- China
- Prior art keywords
- checkpointing
- checkpoint
- state
- memory
- storer
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 52
- 238000000034 method Methods 0.000 claims abstract description 40
- 230000001066 destructive effect Effects 0.000 claims abstract description 10
- 230000015654 memory Effects 0.000 claims description 78
- 238000013507 mapping Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008878 coupling Effects 0.000 claims description 4
- 238000010168 coupling process Methods 0.000 claims description 4
- 238000005859 coupling reaction Methods 0.000 claims description 4
- 230000001052 transient effect Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 2
- 230000014759 maintenance of location Effects 0.000 claims description 2
- 230000004069 differentiation Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 9
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000013011 mating Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 102000004137 Lysophosphatidic Acid Receptors Human genes 0.000 description 1
- 108090000642 Lysophosphatidic Acid Receptors Proteins 0.000 description 1
- 102000004357 Transferases Human genes 0.000 description 1
- 108090000992 Transferases Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- 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/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- 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
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- 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
-
- 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
-
- 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/82—Solving problems relating to consistency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Library & Information Science (AREA)
- Retry When Errors Occur (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了用于镜像虚拟机系统中的存储器检查点设置的方法和系统。该方法包括:存储控制器从虚拟机接收对存储器的修改操作,通过向存储器的检查点设置区域存储所述修改操作数据并保留所存储的先前数据状态,以非破坏性方式执行所述修改操作。该方法也包括:接收检查点通知,并从所述检查点设置区域提交修改操作数据,并释放所存储的先前数据状态。如果接收到故障转移通知,则存储控制器将物理存储器恢复为匹配检查点状态。
Description
技术领域
本发明涉及在镜像虚拟机中的基于检查点的高获得性解决方案的领域。具体地说,本发明涉及在镜像虚拟机检查点设置中的存储写入。
背景技术
虚拟机镜像是运行虚拟机(VM)使得如果出现硬件故障,它可以从存在于第二物理机器上的镜像或同一物理机器的逻辑分区继续执行的方式。在主要虚拟机和辅助虚拟机之间交换虚拟机状态。这是通过下述方式来完成的:通过捕获第一虚拟机的状态并且将其传送到第二虚拟机来对主要虚拟机进行检查点设置。目标是减少计算机系统中的硬件故障引起的停机时间。
这些基于检查点的系统被建立在现有的虚拟机管理程序的顶部,并且通过下述方式来扩展管理程序的功能:捕获对主要虚拟机的存储器状态的修改,并且以很频繁的间隔(例如,每25ms)将其传送到辅助计算系统。
核心思想是,如果主计算系统故障,则辅助计算系统具有几乎在准备好立即执行的精确的相同状态中的虚拟机。当启动该辅助虚拟机时,它开始接收和发送网络分组,并且当它在主计算系统上运行时就像虚拟机那样执行盘I/O。来自外部世界的效果是行为的最少(毫秒)的不连续;类似于如果到虚拟机的网络连接已经被简短地断开和重新连接。
因为虚拟机未保持完全步调一致,而是仅在这些频率检查点上同步,所以必须特殊地处理主要虚拟机向盘的写入。这是因为,为了保证正确性,辅助虚拟机必须不仅从主要虚拟机的状态的有效检查点恢复,而且盘存储器也必须在精确地相同状态中。实际上,辅助虚拟机是以一定数量的毫秒“恢复”到最后检查点的主要虚拟机。
基于检查点的高可获得性是下述技术:通过该技术,在主机上运行的虚拟机(主要主机)规则地(例如,每25ms)向另一个主机(“辅助主机”)上镜像其处理器和存储器状态。主要主机和辅助主机可以是同一物理机器的逻辑部分。
用于镜像处理的基本方法包含下面的步骤:
■跟踪对虚拟机的存储器的改变;
■周期地停止虚拟机;
■通过网络向辅助主机发送这些改变;
■等待辅助主机确认存储器和CPU状态更新的接收;并且
■恢复虚拟机。
这保证了如果主机经受突然的硬件故障,则辅助主机能够没有服务损失地恢复工作负荷。该处理被称为“故障转移(failover)”。
在一种很单纯的实现方式中,网络和盘I/O必须使得执行检查点。这是因为主要主机可以不释放网络分组或修改在盘上的块,仅仅发生故障,并且使得辅助主机从最后的检查点恢复,并且再一次重发分组,或者再一次读取现在的错误块。分组发送必须仅发生一次,并且盘状态必须在获取检查点时与其匹配。
关于盘I/O,“写入时的检查点”的单纯实现方式刚好在向盘控制器发出I/O操作之前在主要主机上执行检查点。对于“写入时的检查点”的一种基本优化是将多个写入组合在一起,并且在一个行程(one go)中对数个写入设置检查点。传统上,虚拟机跟踪待决的这些I/O操作,直到检查点已经完成,并且已经向盘子系统(disk subsystem)发出I/O操作并且在盘子系统上完成该I/O操作。待决I/O操作的此了解作为检查点状态的一部分连同虚拟机的CPU和存储器状态被交换。可以在图1中看到一个示例。
参见图1,提供了现有技术中公知的写入时的检查点的图示100,其中,随着时间写入的进展被示出为在图示100中垂直向下地进展。主要虚拟机110向盘块120进行写入。通过对角斜线阴影来示出改变的块。
在该图示100中,通过主要虚拟机110来修改块130的序列的第一块131,随后是第二块132。对第一和第二块131、132的修改被存储(141、142),并且在下一个检查点150处被写入(143)到盘块120。盘块120发送确认(144)以确认该写入。
在检查点150后,修改另一个第三块133,随后是第四块134。对于第三和第四块133、134的修改被存储(145、146),并且在下一个检查点151处被写入(147)到盘块120。盘块120发送确认(148)以确认该写入。
该方法的问题是添加到写入操作的额外延迟。写入操作直到在下一个检查点后才成功完成,并且因此,在其中每25ms获取检查点的系统中,这将向每一个写入添加平均12.5ms。
如果主要主机在这个确认的检查点和未来的检查点之间发生故障,则可能难以确定是否待决的I/O操作完成。如此一来,重新发出所有待决的I/O操作,强制盘子系统反应正确的状态。
对于上面的内容的直接优化是忽略不修改盘上状态的任何I/O操作(即,仅读取操作)。可以直接地允许这些,而不执行检查点,因为它们不修改任何状态。
所述方法的两个关键缺陷如下:
1.必须截断和延迟虚拟机的存储器I/O操作,直到与辅助机器交换了下一个检查点。这增加了I/O操作的延迟。
2.在除了该最单纯的实现方式之外的任何实现方式中,必须将不修改存储器的操作(诸如仅读取)与确实修改存储器的那些操作区别。这去除了来自那些操作的延迟开销,但代价是必须在执行时检查并且明白每个I/O操作的语义。
因此,在本领域中需要解决上述问题。
发明内容
根据本发明的第一方面,提供了一种用于镜像虚拟机系统中的存储器检查点设置的方法,包括存储控制器:从虚拟机接收对于存储器的修改操作;通过向存储器的检查点设置区域存储所述修改操作数据并且保留所存储的先前数据状态来以非破坏性方式执行所述修改操作;接收检查点通知;并且,从所述检查点设置区域提交(commit)修改操作数据,并且释放所存储的先前数据状态。
根据本发明的第二方面,提供了一种用于镜像虚拟机系统中的存储器检查点设置的系统,包括:处理器;存储控制器,包括:由客户机可寻址的逻辑驱动器向物理存储器的映射部件;非破坏性修改操作部件,用于以非破坏性方式来执行接收的存储修改操作,包括:暂时存储部件,用于向存储器的检查点设置区域存储所述修改操作数据,并且保留所存储的先前数据状态;检查点设置接收部件,用于从检查点的虚拟机接收通知;以及,提交部件,用于从所述检查点设置区域提交修改操作数据,并且释放所存储的先前数据状态。
根据本发明的第三方面,提供了一种在计算机可读介质上存储并且能够被安装到数字计算机的内部存储器内的计算机程序,包括软件代码部分,用于当所述程序在计算机上运行时执行本发明的第一方面的方法。
附图说明
在说明书的结尾部分中特别指出并且清楚地要求保护被看作本发明的主题。当使用附图阅读时,通过参考下面的详细描述,可以关于组织和操作方法以及其目的、特征和优点来最好地理解本发明,附图中:
图1是在现有技术中已知的写入时检查点的处理的示意图;
图2A和图2B是根据本发明的系统的实施例的框图;
图3是其中可以实现本发明的计算机系统的框图;
图4是根据本发明的方法的流程图;并且
图5是根据本发明的检查点设置的处理的示意图。
具体实施方式
可以明白,为了说明的简化和清楚,不必根据比例来绘制附图中所示的元件。例如,为了清楚,可以将一些元件的尺寸相对于其他元件夸大。而且,当认为适当时,可以在附图中重复附图标号,以指示对应的或类似的特征。
在下面的详细描述中,给出了多个具体细节以便彻底明白本发明。然而,本领域内的技术人员可以明白,可以在没有这些具体细节的情况下实施本发明。在其他情况下,未详细描述公知的方法、过程和部件,以便不混淆本发明。
描述了方法、系统和计算机程序产品,其中,取代截断用于在虚拟机处的检查点设置的I/O操作,将它们传送到底层的存储控制器。这些操作看起来正常地完成;然而,通过存储控制器以非破坏性方式执行修改盘上状态(on-disk)的操作,保留原始块(例如,通过写入时复制(COW)或写入时重新定向(ROW)机制)。
当检查点出现时,向存储控制器通知这一点,并且向存储控制器提供相关联的检查点标识符。可以然后由存储控制器提交修改操作,并且不再保留原始块。在检查点后,虚拟机的执行恢复,并且I/O操作继续向前进行(flow)。这保证在任何给定的时间点,存储控制器可以将盘上的状态恢复到与识别的检查点匹配的状态。
该机制允许客户机体验高性能I/O,并且没有由写入时的检查点方法引入的额外延迟地完成I/O操作。
如果出现故障转移,则指令存储控制器在执行恢复之前将存储器恢复到所识别的检查点阶段。
“逻辑驱动器”被提供为由存储控制器通过给定的LUN(逻辑单元)提供的存储器。标准逻辑驱动器包含构成由客户机可寻址的存储器的一组块。
在所述系统中,存储控制器为在由客户机可寻址的那些存储块之上和之外的另外的存储器作好准备。该另外的存储器用于允许保留修改的块,直到检查点完成。在下面的文本中,该另外的存储器被称为“检查点区域”,包含“检查点设置块”。
在所述系统中,客户机不直接改写(overwrite)修改的块。保留原始块,直到下一个检查点。
向客户机提供用于将逻辑驱动器的给定时间点视图与标识符“检查点ID”相关联的机制。在每个检查点间隔处,客户机(或代表客户机的代理,诸如管理程序)将当前的盘状态与新的检查点ID相关联。所述方法和系统支持多个并行的检查点。
如果出现故障转移,则指令存储控制器将盘状态恢复到与给定的检查点ID匹配的状态。
在一个实施例中,作为另外的在物理盘上的存储器(on-physical-disk)提供了检查点设置区域。在这个实施例中,使用“写入时的复制”或“写入时的重新定向”来保留原始块,直到下一个检查点。
在另一个实施例中,作为诸如存储控制器的写入高速缓存器的非易失性存储器来提供检查点设置区域。在利用非易失性存储器来存储检查点设置数据的实施例中,元数据/目录结构可以包含检查点设置ID的另一个值。作为示例,而不是通过LBA(逻辑块地址)来索引的高速缓存,它可以通过LBA和CheckpointID来加索引。当提交检查点时,具有那个CheckpointID的块然后被“降级(destage)”,并且被写出到物理盘。
该实施例不被限制为管理在逐块基础上的写入。非易失性存储器方法例如可能例如通过扇区(它在存储控制器中经常是512字节)在更细的粒度上如此进行。
参见图2A和图2B,框图示出所述系统200的示例实施例。
系统200包括用于提供镜像的高可获得性系统的主要虚拟机210和辅助虚拟机220。主要和辅助虚拟机210、220在独立的物理机器201、202上运行。在一个实施例中,主要和辅助虚拟机210、220可以是LPAR(逻辑分区(虚拟计算平台))。每个主要和辅助虚拟机210、220可以具有管理程序,该管理程序包括网络分组和存储写入的输入/输出管理。
虚拟机210、220或诸如管理程序的代理可以包括检查点设置机构211、221。在所述系统200中,虚拟机210、220的检查点设置机构211、221将逻辑驱动器的给定时间点视图与用于识别检查点的标识符相关联。在每个检查点间隔,检查点设置机构211、221将当前盘状态与新的检查点ID相关联。
主要和辅助虚拟机210、220可以向存储系统230发送操作。虚拟I/O服务器可以具有主机总线适配器,用于与存储系统230进行通信。在一个实施例中,可以提供下述机构,该机构用于在虚拟机210、220之间共享硬件,使得当利用单根(single root)IO虚拟化来使用单个存储系统适配器时,每个虚拟机210、220认为它在直接地向其本身的存储系统适配器通话。
提供了存储系统230。在一个实施例中,存储系统230可以是存储区域网(SAN),诸如光纤通道SAN。存储系统230包括存储控制器231,存储控制器231管理存储系统230的集中存储。通过给定的逻辑单元(LUN)提供了作为逻辑驱动器呈现的存储装置232-234。逻辑驱动器包含构成可由客户机访问的存储器的一组块。
存储控制器231也包括检查点设置系统240。检查点设置系统240可以包括映射部件241,用于将逻辑驱动器地址映射到物理存储装置232-234。检查点设置系统240可以包括非破坏性修改操作部件242,非破坏性修改操作部件242包括暂时存储部件243,用于向存储器236的检查点设置区域存储修改操作数据,并且保留存储的先前数据,直到提交了检查点。
检查点设置机构211、221跟踪每个虚拟机的检查点设置ID。从主要虚拟机210向辅助虚拟机220提供这个ID,作为向辅助虚拟机发送的检查点状态的一部分。它也被发送到存储控制器231的检查点设置系统240。
存储控制器231也包括检查点设置接收部件244,用于从具有检查点标识符的检查点的虚拟机接收通知。可以“在带中”接收这样的通知,即,当存储器读取/写入它们时,它们通过相同的通信信道到达。替代地,也可以实现检查点请求的带外通信。
存储控制器231也包括提交部件246,用于提交来自检查点设置区域的修改操作数据,并且释放存储的先前数据状态。存储控制器231也包括故障转移部件245,用于从故障转移的虚拟机接收通知,并且将物理存储器恢复为匹配所识别的检查点状态。
在所述系统中,另外的存储器被提供为存储器236的检查点设置区域。检查点设置区域236是在写入操作数据被检查点确认之前存储它的位置。这可以采取各种不同的形式。
在图2A中所示的一个实施例中,检查点设置区域236是在诸如物理驱动器的存储装置处的另外的块的区域。在该情况下,当提交检查点时,检查点设置区域变为提交的数据,并且先前的数据区域变为新的检查点设置区域。与图5相关地更详细地描述了这个实施例。
在图2B中所示的另一个实施例中,可以将检查点设置区域236提供为例如在存储控制器231的写入高速缓存器中的非易失性存储器。当提交检查点时,从写入高速缓存器向存储装置232-234写入数据。
在利用非易失性存储器来保留检查点设置数据的图2B的实施例中,元数据/目录结构可以包含检查点设置ID的另一个值。作为示例,而不是通过LBA(逻辑块地址)来索引的高速缓存,它可以通过LBA和CheckpointID(检查点ID)来加索引。当提交检查点时,具有那个CheckpointID的块然后被“降级”,并且被写出到物理盘232-234。
在图2B的实施例中,存储控制器231的检查点设置系统240可以包括用于LBA、检查点ID跟踪的跟踪部件250。
即使使用以写入高速缓存形式的非易失性存储器检查点设置区域,存储控制器231也可以继续使用写入高速缓存。
可以基于来自主机的I/O吞吐量,在多个逻辑驱动器上共享并且根据需要动态地分配检查点设置区域236。存在可能取决于系统是实现非易失性存储器检查点设置还是物理盘上的COW/ROW检查点设置的实现方式的多个选项。
选项可以包括:
●要求主机使能每个LUN的检查点设置,并且作为其一部分,允
许它协商/请求分配多少存储量(以及也许包括如何分配)。
●不要求上面的内容,并且仅根据需要分配另外的存储量。
●不要求协商,但是具有在所有的检查点设置LUN上共享的、内部的预先分配的一组检查点设置存储器。
参见图3,用于实现本发明的各方面的一种示例性系统包括适合于存储和/或执行程序代码的数据处理系统300,其包括至少一个处理器301,该至少一个处理器301通过总线系统303直接或间接耦合到存储器元件。这些存储器元件可以包括在程序代码的实际执行期间使用的本地存储器、海量存储器和提供至少一些程序代码的暂时存储以便减少在执行期间必须从海量存储器获取代码的次数的高速缓存器。
这些存储器元件可以包括只读存储器(ROM)304和随机存取存储器(RAM)305形式的系统存储器302。基本输入/输出系统(BIOS)306可以被存储在ROM304中。系统软件307可以被存储在包括操作系统软件308的RAM305中。软件应用310也可以被存储在RAM305中。
系统300也可以包括:主存储部件311,诸如磁硬盘驱动器;以及辅助存储部件312,诸如磁盘驱动器和光盘驱动器。驱动器和它们的相关联的计算机可读介质提供用于系统300的计算机可执行指令、数据结构、程序模块和其他数据的非易失性存储。软件应用可以被存储在主要和辅助存储部件311、312以及系统存储器302上。
计算系统300可以使用经由网络适配器316到一个或多个远程计算机的逻辑连接来在联网环境中运行。
输入/输出装置313可以被直接或通过中间I/O控制器耦合到系统。用户可以通过诸如键盘、指示装置或其他输入装置(例如,麦克风、操纵杆、游戏垫、碟形卫星天线或扫描仪等)的输入装置向系统300内输入命令和信息。输出装置可以包括扬声器、打印机等。显示装置314也经由诸如视频适配器315的接口连接到系统总线303。
参见图4,流程图400示出在存储控制器处执行的所述方法的一个示例实施例。
向客户机,即主要和辅助虚拟机提供(401)可寻址的存储器的逻辑驱动器。从虚拟机接收(402)接收修改操作(例如,写入操作或修改盘上状态的其他形式的操作)。在保留原始数据的同时,修改操作数据被存储(403)到存储器的检查点设置区域。
确定(404)是否存在由虚拟机通知的检查点。如果存在,则从虚拟机接收(405)检查点标识符。检查点设置区域数据被提交(406),并且不再保留先前的数据。可以根据检查点设置区域存储器的形式来以不同的方式执行这一操作。
例如,在具有非易失性检查点设置区域的实施例中,可以使用“CheckpointID”来跟踪块/扇区用于哪个检查点。当提交检查点时,可以将那个CheckpointID字段设置为特殊的“无效”值,用于指示它不再是检查点的一部分,并且已经被提交。
该方法然后通过循环继续,以在步骤402接收另外的修改操作。
如果没有检查点,则确定(407)是否存在另一个通知操作。如果存在,则该方法循环,以重复步骤402和403。如果不存在,则确定(408)是否存在故障转移。如果不存在,则该方法结束(409)。
如果存在故障转移,则从辅助虚拟机接收(410)命令,以恢复到用于给定的检查点标识符的存储状态。存储控制器将盘状态恢复(411)到匹配给定的检查点标识符的状态。然后从辅助虚拟机接收(412)另外的操作。
该方法支持建立多个同时检查点。通常,可以建立新的检查点,然后,在短时间后删除最老的检查点。存储控制器可以接收用于确定哪些检查点存在于给定时间处的查询。
参见图5,示意流程图500示出所述方法的示例操作,并且时间轴560向页面下前进。提供了主要虚拟机510和辅助虚拟机520。逻辑驱动器530向虚拟机510、520提供可寻址存储器。物理驱动器540包括物理存储区域,该物理存储区域包括另外的检查点设置区域(以粗体轮廓示出)。
在这个示例实施例中,存储控制器向主要虚拟机510提供小的四块逻辑驱动器。在该场景之后,在物理驱动器540上,存储控制器已经提供了另外两块存储器来作为存储器的检查点设置区域。注意,在这个简化示例中,假定虚拟机总是在块大小的数据块中写入,并且如此一来,使用在写入时重新定向方法;即,向存储器的写入总是去往可获得的检查点设置块。
在第一块511上执行写入操作“A”501。将逻辑驱动器530的视图更新以示出写入操作531,但是不修改底层的物理块541,由此保留现有的数据。相反,向检查点设置块551写入数据。如果存储控制器的写入高速缓存器被用作检查点设置区域,则它可以接续使用写入高速缓存。这个示例忽略了写入高速缓存器的存在,但是所述方法不排除其使用。
执行另一个写入操作“B”502,此时修改第二块512,再一次在逻辑驱动器532上示出第二块512。再一次,将原始块542原封不动地留在物理驱动器上,并且取而代之向检查点设置块552写入新的数据。
检查点(ID#1)570出现。在这一点,不能再恢复到在这个时间点之前的盘上状态。将检查点ID(ID#1)与虚拟机状态和待决I/O操作的列表一起从主要虚拟机510传送到辅助虚拟机520。
现在将先前被保留的物理块541、542标注为可获得,并且变为用于随后写入的检查点设置块。
执行写入操作“C”503,此时,修改在逻辑驱动器上的第三块513。再一次,示出逻辑驱动块533,但是保留底层的物理块543,并且相反写入第一可获得检查点设置块553。
执行向同一第三块513的另一个写入操作“D”。重写逻辑驱动块533。在这个情况下,在仍然保持物理块543的同时,重写相同的检查点设置块553。
故障转移580出现。主要虚拟机510不再运行,并且辅助虚拟机520状态匹配盘上状态的更旧的版本。
辅助虚拟机520向存储控制器发出命令505,以将逻辑驱动器恢复到与检查点#1570相关联的状态。块的逻辑物理映射在检查点#1570后被恢复以匹配该状态。
在检查点#1570后随后被修改的块553被有效地丢弃,并且它们再一次变为可用的检查点设置块。
辅助虚拟机520执行从第三逻辑块533的读取(506)。这返回来自第三物理块543的数据,而不是由主要虚拟机510写入的数据,该由主要虚拟机510写入的数据在故障转移之前被写入检查点设置块553。
所述方法和系统将I/O操作的状态委托给存储控制器,并且在检查点出现前以非破坏性方式来执行修改操作。在故障转移出现的情况下,可以向存储控制器提供检查点标识符。
所述的方法和系统允许客户机体验高性能I/O,并且没有由写入时的检查点方法引入的另外延迟地完成I/O操作。
本发明可以采用整体硬件实施例、整体软件实施例或包含硬件和软件元素的实施例的形式。在优选实施例中,以软件来实现本发明,该软件包括但是不限于固件、驻留软件、微码等。
本发明可以采用从计算机可用或计算机可读介质可访问的计算机程序产品的形式,计算机可用或计算机可读介质用于提供程序代码,以由计算机或任何指令执行系统使用或与其相关联地使用。为了本说明书的目的,计算机可用或计算机可读介质可以是可以包含、存储、传达、传播或传送程序以由指令执行系统、设备或装置使用或与其相关地使用的任何设备。
介质可以是电子、磁、光学、电磁、红外线或半导体的系统(或设备或装置)或者传播介质。计算机可读介质的示例包括半导体或固态存储器、磁带、可装卸计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括光盘只读存储器(CD-ROM)、光盘读取/写入(CD-R/W)和DVD。
可以在不偏离本发明的范围的情况下对于上面的内容进行改善和修改。
Claims (18)
1.一种用于镜像虚拟机系统中的存储器检查点设置的方法,该系统包括存储控制器,所述存储控制器被配置为:
从虚拟机接收(402)对存储器的修改操作;
通过向存储器的检查点设置区域存储所述修改操作数据并保留所存储的先前数据状态,以非破坏性方式执行(403)所述修改操作;
接收(404)检查点通知;并且,
从所述检查点设置区域提交(406)修改操作数据,并释放所存储的先前数据状态。
2.根据权利要求1所述的方法,包括:
支持多个检查点,其中检查点通知包括用于与其他检查点区分的检查点标识符。
3.根据权利要求1或2所述的方法,包括:
在所述存储控制器处接收用于确定哪些检查点存在于给定时间处的查询。
4.根据权利要求1至3的任何一项所述的方法,其中提交修改操作包括:
提交检查点设置区域存储器的状态;并且
释放所存储的先前数据状态,以变为新的检查点设置区域存储器。
5.根据权利要求1至3的任何一项所述的方法,其中提交修改操作包括:
从所述检查点设置区域向所存储的先前数据状态的物理存储位置写入所述修改操作数据。
6.根据先前的权利要求的任何一项所述的方法,包括:
提供(401)由客户机能够寻址的存储器的逻辑驱动器;
在所述逻辑驱动器上存储所述修改操作;并且
在所述检查点设置区域中保持所述逻辑驱动器向物理存储器的映射。
7.根据前述权利要求的任何一项所述的方法,包括:
接收(408)故障转移通知;并且
将所述物理存储器恢复(411)为匹配检查点状态;
8.根据前述权利要求的任何一项所述的方法,包括:
接收(408)具有检查点标识符的故障转移通知;
将所述物理存储器恢复(411)为匹配所识别的检查点状态;
在所述识别的检查点之后,恢复所述逻辑驱动器向所述物理存储器状态的所述映射;并且
在所述检查点设置区域中丢弃所存储的操作。
9.根据前述权利要求的任何一项所述的方法,其中,检查点标识符将所述标识符与逻辑驱动器的时间点视图相关联。
10.根据前述权利要求的任何一项所述的方法,其中,以非破坏性方式执行所述修改操作包括下述的组中的一个:执行写入时复制的操作,并执行写入时重新定向的操作。
11.一种用于镜像虚拟机系统中的存储器检查点设置的系统,包括:
处理器;
存储控制器(231),包括:
由客户机可寻址的逻辑驱动器向物理存储器的映射部件(241);
非破坏性修改操作部件(242),用于以非破坏性方式来执行接收的存储修改操作,其包括:暂时存储部件(243),用于向存储器(236)的检查点设置区域存储所述修改操作数据,并保留所存储的先前数据状态;
检查点设置接收部件(244),用于从检查点的虚拟机接收通知;和
提交部件(246),用于从所述检查点设置区域提交修改操作数据,并释放所存储的先前数据状态。
12.根据权利要求11所述的系统,其中,所述存储器(236)的所述检查点设置区域是除由所述客户机可访问的所述盘上存储器外的另一个盘上存储器,并且其中,所述提交部件(246)用于提交所述检查点设置区域存储器的状态。
13.根据权利要求12所述的系统,其中,所述提交部件(246)可操作用于释放所存储的先前数据状态,以变为新的检查点设置区域存储器。
14.根据权利要求11至13的任何一项所述的系统,其中,存储器(236)的所述检查点设置区域是与所述客户机能够访问的所述物理存储器分离的存储器,并且其中,所述提交部件用于:从所述检查点设置区域向所存储的先前数据状态的所述物理存储器位置写入所述修改操作数据。
15.根据权利要求14所述的系统,其中,所述独立的存储器是非易失性存储器。
16.根据权利要求11至15的任何一项所述的系统,包括:
故障转移部件(245),用于接收故障转移通知,并且恢复所述物理存储器以匹配检查点状态。
17.根据权利要求16所述的系统,其中,所述故障转移部件(245)包括用于下述部分的功能:
接收具有检查点标识符的故障转移通知;
将所述物理存储器恢复为匹配所识别的检查点状态;
在所述识别的检查点之后,恢复所述逻辑驱动器向所述物理存储器状态的所述映射;并且
在所述检查点设置区域中丢弃所存储的操作。
18.一种在计算机可读介质上存储并且能够被安装到数字计算机的内部存储器内的计算机程序,包括软件代码部分,用于当所述程序在计算机上运行时,执行根据权利要求1至10的任何一项的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP11167108 | 2011-05-23 | ||
EP11167108.7 | 2011-05-23 | ||
PCT/IB2012/052167 WO2012160463A1 (en) | 2011-05-23 | 2012-05-01 | Storage checkpointing in a mirrored virtual machine system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103562878A true CN103562878A (zh) | 2014-02-05 |
CN103562878B CN103562878B (zh) | 2017-08-25 |
Family
ID=47216674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280025030.7A Active CN103562878B (zh) | 2011-05-23 | 2012-05-01 | 在镜像虚拟机系统中的存储器检查点设置 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9959174B2 (zh) |
CN (1) | CN103562878B (zh) |
DE (1) | DE112012001660T5 (zh) |
GB (1) | GB2506044B (zh) |
WO (1) | WO2012160463A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015144014A1 (zh) * | 2014-03-24 | 2015-10-01 | 三和智控(北京)系统集成有限公司 | 通过计划队列实现控制逻辑的动态延时调用的方法及装置 |
CN107003890A (zh) * | 2014-12-17 | 2017-08-01 | 微软技术许可有限责任公司 | 高效地提供虚拟机参考点 |
CN107278297A (zh) * | 2015-03-27 | 2017-10-20 | 英特尔公司 | 用于在持续存储器系统中的应用验证的技术 |
CN109933468A (zh) * | 2017-12-19 | 2019-06-25 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US8639984B2 (en) * | 2011-08-09 | 2014-01-28 | International Business Machines Corporation | Checkpoint debugging using mirrored virtual machines |
US9063721B2 (en) | 2012-09-14 | 2015-06-23 | 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 |
US10359937B2 (en) * | 2013-12-20 | 2019-07-23 | Sandisk Technologies Llc | System and method of implementing a table storage support scheme |
US20150205688A1 (en) * | 2013-12-30 | 2015-07-23 | Stratus Technologies Bermuda Ltd. | Method for Migrating Memory and Checkpoints in a Fault Tolerant System |
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 |
GB2533342A (en) * | 2014-12-17 | 2016-06-22 | Ibm | Checkpointing module and method for storing checkpoints |
US9547555B2 (en) | 2015-01-12 | 2017-01-17 | Microsoft Technology Licensing, Llc | Change tracking using redundancy in logical time |
CN107515723B (zh) * | 2016-06-16 | 2020-04-24 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统中的存储器的方法和系统 |
US11416277B2 (en) * | 2019-11-22 | 2022-08-16 | Nutanix, Inc. | Situation-aware virtual machine migration |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6795966B1 (en) * | 1998-05-15 | 2004-09-21 | Vmware, Inc. | Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction |
US20090007111A1 (en) * | 2007-06-27 | 2009-01-01 | Vmware, Inc. | Logging and replaying input/output events for a virtual machine |
US7529897B1 (en) * | 2003-12-31 | 2009-05-05 | Vmware, Inc. | Generating and using checkpoints in a virtual computer system |
CN102057355A (zh) * | 2008-06-13 | 2011-05-11 | 微软公司 | 同步虚拟机和应用程序生存周期 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1280726C (zh) * | 2002-10-18 | 2006-10-18 | 上海贝尔有限公司 | 一种用于嵌入式系统软件开发的虚拟机装置 |
US20080189432A1 (en) * | 2007-02-02 | 2008-08-07 | International Business Machines Corporation | Method and system for vm migration in an infiniband network |
US8201169B2 (en) * | 2009-06-15 | 2012-06-12 | Vmware, Inc. | Virtual machine fault tolerance |
US8627143B2 (en) | 2010-07-12 | 2014-01-07 | Hewlett-Packard Development Company, L.P. | Dynamically modeling and selecting a checkpoint scheme based upon an application workload |
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) |
US8782632B1 (en) | 2012-06-18 | 2014-07-15 | Tellabs Operations, Inc. | Methods and apparatus for performing in-service software upgrade for a network device using system virtualization |
-
2012
- 2012-05-01 DE DE112012001660.2T patent/DE112012001660T5/de active Pending
- 2012-05-01 CN CN201280025030.7A patent/CN103562878B/zh active Active
- 2012-05-01 US US13/980,908 patent/US9959174B2/en active Active
- 2012-05-01 GB GB1321951.4A patent/GB2506044B/en active Active
- 2012-05-01 WO PCT/IB2012/052167 patent/WO2012160463A1/en active Application Filing
-
2013
- 2013-09-25 US US14/036,771 patent/US9983935B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6795966B1 (en) * | 1998-05-15 | 2004-09-21 | Vmware, Inc. | Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction |
US7529897B1 (en) * | 2003-12-31 | 2009-05-05 | Vmware, Inc. | Generating and using checkpoints in a virtual computer system |
US20090007111A1 (en) * | 2007-06-27 | 2009-01-01 | Vmware, Inc. | Logging and replaying input/output events for a virtual machine |
CN102057355A (zh) * | 2008-06-13 | 2011-05-11 | 微软公司 | 同步虚拟机和应用程序生存周期 |
Non-Patent Citations (2)
Title |
---|
BRENDAN CULLY等: "Remus:High Availability via Asynchronous Virtual Machine Replication", 《PROCEEDINGS OF THE 5TH USENIX SYMPOSIUM ON NETWORKED SYSTEMS DESIGN AND IMPLEMENTATION》 * |
Remus:High Availability via Asynchronous Virtual Machine Replication;Brendan Cully等;《Proceedings of the 5th USENIX Symposium on Networked Systems Design and implementation》;20081230;第161-174页 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015144014A1 (zh) * | 2014-03-24 | 2015-10-01 | 三和智控(北京)系统集成有限公司 | 通过计划队列实现控制逻辑的动态延时调用的方法及装置 |
CN107003890A (zh) * | 2014-12-17 | 2017-08-01 | 微软技术许可有限责任公司 | 高效地提供虚拟机参考点 |
CN107003890B (zh) * | 2014-12-17 | 2021-03-16 | 微软技术许可有限责任公司 | 高效地提供虚拟机参考点 |
CN107278297A (zh) * | 2015-03-27 | 2017-10-20 | 英特尔公司 | 用于在持续存储器系统中的应用验证的技术 |
CN107278297B (zh) * | 2015-03-27 | 2022-03-22 | 英特尔公司 | 用于软件测试的计算设备、方法以及介质 |
CN109933468A (zh) * | 2017-12-19 | 2019-06-25 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN109933468B (zh) * | 2017-12-19 | 2023-01-03 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
GB201321951D0 (en) | 2014-01-29 |
DE112012001660T5 (de) | 2014-01-16 |
US9959174B2 (en) | 2018-05-01 |
US9983935B2 (en) | 2018-05-29 |
US20140025913A1 (en) | 2014-01-23 |
WO2012160463A1 (en) | 2012-11-29 |
US20130311992A1 (en) | 2013-11-21 |
GB2506044A (en) | 2014-03-19 |
CN103562878B (zh) | 2017-08-25 |
GB2506044B (en) | 2020-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103562878A (zh) | 在镜像虚拟机系统中的存储器检查点设置 | |
CN114341792B (zh) | 存储集群之间的数据分区切换 | |
US11768820B2 (en) | Elimination of log file synchronization delay at transaction commit time | |
EP3179359B1 (en) | Data sending method, data receiving method, and storage device | |
US8689047B2 (en) | Virtual disk replication using log files | |
US8285679B2 (en) | Creating a buffer point-in-time copy relationship for a point-in-time copy function executed to create a point-in-time copy relationship | |
CN102306115B (zh) | 异步远程复制方法、系统及设备 | |
CN105339939A (zh) | 对在线热备份数据库的复制 | |
US10983874B2 (en) | Processing a recover state input/output request | |
US20120254114A1 (en) | Method and system for replicating data | |
JP6136629B2 (ja) | ストレージ制御装置,ストレージシステム,および制御プログラム | |
US20170083419A1 (en) | Data management method, node, and system for database cluster | |
JP7189965B2 (ja) | ホスト認識更新書き込みの方法、システム、およびコンピュータ・プログラム | |
US10664193B2 (en) | Storage system for improved efficiency of parity generation and minimized processor load | |
JP2007323657A (ja) | 過渡状態情報を格納するための方法、システムおよびコンピュータ・プログラム | |
US9015385B2 (en) | Data storage device and method of controlling data storage device | |
CN105556479A (zh) | 用于分区和高速缓存恢复的方法、系统和计算机可读介质 | |
US20240012585A1 (en) | Drive-assisted raid system | |
US8972634B2 (en) | Storage system and data transfer method | |
US20130031320A1 (en) | Control device, control method and storage apparatus | |
WO2017026070A1 (ja) | ストレージシステム及びストレージ管理方法 | |
US11468091B2 (en) | Maintaining consistency of asynchronous replication | |
US9779002B2 (en) | Storage control device and storage system | |
US8938426B2 (en) | System, method and computer readable medium for effieicnt snapshot-based mirroring operations | |
US20100161691A1 (en) | Method for providing a portable software computing environment for a low-speed portable storage device, and portable storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |