本发明专利技术公开了容错系统和用于执行容错的方法,所述容错系统包括:在主机上形成的主虚拟机,主管理程序在该主机中运行,该主虚拟机适用于将基于来自主管理程序的外部中断的虚拟中断输入至主客户OS;以及在次机上形成的次虚拟机,次管理程序在该次机中运行,该次虚拟机适用于基于与主虚拟机所发送的虚拟中断有关的时间信息来将虚拟中断输入至次客户OS。主虚拟机适用于从次虚拟机搜集操作性能信息,并且配置主虚拟机的操作性能和次虚拟机的操作性能,使得主虚拟机的操作性能变得与次虚拟机的操作性能相同。
【技术实现步骤摘要】
本专利技术涉及使用虚拟机的容错系统以及使用虚拟机来执行容错的方法。
技术介绍
容错系统是这样一种系统,即使在系统配置的一部分中出现缺陷的情况下,容错系统也能够继续操作,而不会使整个系统崩溃,并且容错系统尤其适用于要求具有高度有效性和不间断系统有效性的系统。例如,即使在发生硬件故障的情况下,采用了容错系统的服务器计算机也可以输出正确的数据,而不会有对来自外部装置的客户应用程序进行的网络访问作出响应的通信错误。如JP-A-2009-80695所公开的,已知一种在运行于两台彼此通信的计算机上的虚拟机中实现容错系统的技术。使用虚拟机的容错系统将这两台虚拟机的执行状态同步,以进行相同的操作。当在其中一台计算机中出现故障时,在另一台计算机中操作的虚拟机接管处理,由此连续而不中断地提供系统的服务。在使用虚拟机的容错系统中,将一台虚拟机作为主虚拟机,而将另一台虚拟机设为次虚拟机。将主虚拟机构造为领先于次虚拟机执行同一操作并接管对关于外部装置进行输入/输出的控制。通常,当执行相同程序的两台计算机以完全相同的定时从外部装置接收输入时,这两台计算机会进行相同的操作,并且输出相同的数据。因此,当在使用虚拟机的容错系统中基于外部输入发生中断时,该容错系统令主虚拟机将中断发生的时刻作为同步信息发送至次虚拟机。然后,以一定延迟运行的次虚拟机在与同步信息所通知的时刻相同的时刻产生虚拟中断,由此主虚拟机和次虚拟机以彼此同步的方式执行相同的操作。图6是示出了传统的使用虚拟机的容错系统的配置的框图。如图6所示,容错系统60包括了在网络上彼此连接的主机600和次机700。在主机600中,主管理程序620在作为物理计算机环境的主硬件610上运行,并且主机600中配置了主虚拟机630。在主虚拟机630中运行主客户OS (操作系统)640,并且在主客户0S640上执行应用程序650。主硬件610配备有诸如CPU(中央处理单元)、内存、网络接口卡(NIC)、和存储器之类的多种装置。主虚拟机630分配有主硬件610的一部分硬件资源,并且在虚拟计算机环境中接管与外部装置相关的输入/输出的控制。主虚拟机630由主管理程序620管理。同样,在次机700中,次管理程序720在作为物理计算机环境的次硬件710上运行,并且次机700中配置了次虚拟机730。在次虚拟机730中运行次客户0S740,并且在次客户0S740上执行应用程序750。次硬件710配备有诸如CPU、内存、网络接口卡(NIC)、和存储器之类的多种装置。次虚拟机730分配有次硬件710的一部分硬件资源,并且在虚拟计算机环境中与主虚拟机630同步地操作。次虚拟机730由次管理程序720管理。在传统的容错系统60中,在以下过程中主虚拟机630与次虚拟机730的执行状态彼此同步。一旦接收到来自主硬件610的外部中断,主管理程序620则将该外部中断输入至主虚拟机630。然后,主虚拟机630将虚拟中断输入至主客户0S640。现在,将要描述将虚拟中断从主虚拟机630输入至主客户0S640。当在主客户0S640的处理期间出现诸如外部中断、特权指令、或异常之类的虚拟机上下文切换事件时,主客户0S640的处理被挂起,客户OS上下文被切换至虚拟机上下文,处理转移至主虚拟机630。若主虚拟机630根据在其定时时刻的各种事件而需要在主客户0S640上输入虚拟中断,则主虚拟机630配置虚拟中断。当配置了虚拟中断时,主虚拟机630终止处理,当处理返回至在生成事件时刻被挂起的主客户0S640时,虚拟中断被输入至主客户0S640。当主虚拟机630将虚拟中断输入至主客户0S640时,主虚拟机630将同步信息发送至次虚拟机730。同步信息包括对虚拟中断的识别信息、以及用于输入虚拟中断的同步定时信息。同步定时信息是关于在与虚拟中断被输入至主客户0S640相同的时刻将虚拟中断输入至次客户0S740的信息,并且包括指示了执行挂起位置和CPU特有的执行指令的数量的信息。作为执行挂起位置,可以使用表示当输入虚拟中断时所执行的指令地址的程序计数器的值。执行指令的数量可以由CPU中提供的性能计数器的CPU执行指令数量计数器来测量。在测量执行指令数量的情况下,当主虚拟机630将虚拟中断输入至主客户0S640时,将CPU执行指令数量计数器清零,并且在重新开始执行主客户0S640前使CPU执行指令数量计数器启动。因此,计算出了自先前的虚拟中断输入以后由主客户0S640执行的指令的数量。当仅有执行挂起位置被用作同步定时信息时,在表示执行挂起位置的指令包括在循环处理中或者包括在条件分支目的地中的情况下无法指定虚拟中断输入的时刻,这是因为每次当进行到循环或条件分支进程都会执行该指令。同样,当仅有执行指令的数量被用作同步定时信息时,由于诸如流水线处理之类的高速化技术,使得次客户0S740不能以所指定的执行指令的数量来挂起,并且不可避免地在超出执行指令的数量后被挂起。由此,虚拟中断不能在与主客户0S640相同的时刻被输入到次客户0S740。在该情形下,将执行挂起位置和执行指令的数量结合在一起作为同步定时信息,并且每次在次客户0S740中对执行挂起位置所表示的指令进行处理时确认执行指令的数量。因此,在与将虚拟中断输入到主客户0S640中相同的时刻来将次客户0S740挂起。因此,当在挂起了主客户0S640的执行之后主虚拟机630将虚拟中断输入至主客户0S640时,主虚拟机630获取挂起主客户0S640的执行时刻的程序计数器的值、以及CPU执行指令数量计数器的值,以生成同步定时信息。然后,主虚拟机630将有关虚拟中断的识别信息和同步定时信息发送至次虚拟机730作为同步信息。接收到了同步信息的次虚拟机730根据同步定时信息来挂起次客户0S740的执行。将参照图7的流程图来描述该情形下次虚拟机730的操作。将暂停(break)指令嵌入同步定时信息的执行挂起位置所指定的程序位置中(S401),并且重新启动次客户0S740(S402)。然后,当次客户0S740停止(S403中为是)时,确认CPU执行指令数量计数器,并且若计数器值匹配执行指令的指定数量(S404中为是),则次客户0S740在停止位置处挂起(S405)。若计数器值不匹配执行指令的指定数量(S404中为否),则次客户0S740重新启动(S402)并重复确认执行指令的数量。当次虚拟机730挂起次客户0S740时,次虚拟机730根据同步信息的虚拟中断识别信息来配置虚拟中断(S406),并且重新启动次客户0S740 (S407)。因此,在与主客户0S640相同的时刻将虚拟中断输入至次客户0S740,并且主虚拟机630和次虚拟机730的执行状态彼此同步。当在主机600和次机700的任何一个中发生硬件故障时,打乱了执行状态的同步。当执行状态的同步被打乱时,主虚拟机630和次虚拟机730之间的输出数据的值变得不同。在该情况下,容错系统60对比次虚拟机730的输出来检查主虚拟机630的输出,若输出数据的值彼此不同,则确定发生硬件故障。为了进行该故障确定处理,次虚拟机730装配有输出数据检查单元731,其搜集主虚拟机630的输出数据,并对比次虚拟机730的输出数据来检查所搜集的输出数据。在容错系统60中,主本文档来自技高网...
【技术保护点】
一种容错系统,包括:在主机上形成的主虚拟机,主管理程序在所述主机中运行,所述主虚拟机适用于将基于来自所述主管理程序的外部中断的虚拟中断输入至主客户OS;以及在次机上形成的次虚拟机,次管理程序在所述次机中运行,所述次虚拟机适用于基于与所述主虚拟机所发送的虚拟中断有关的定时信息来将虚拟中断发送至次客户OS,其中所述主虚拟机适用于从所述次虚拟机搜集操作性能信息,并且配置所述主虚拟机的操作性能和所述次虚拟机的操作性能,使得所述主虚拟机的操作性能变得与所述次虚拟机的操作性能相同。
【技术特征摘要】
2012.09.18 JP 2012-2046081.一种各错系统,包括: 在主机上形成的主虚拟机,主管理程序在所述主机中运行,所述主虚拟机适用于将基于来自所述主管理程序的外部中断的虚拟中断输入至主客户OS ;以及 在次机上形成的次虚拟机,次管理程序在所述次机中运行,所述次虚拟机适用于基于与所述主虚拟机所发送的虚拟中断有关的定时信息来将虚拟中断发送至次客户OS, 其中所述主虚拟机适用于从所述次虚拟机搜集操作性能信息,并且配置所述主虚拟机的操作性能和所述次虚拟机的操作性能,使得所述主虚拟机的操作性能变得与所述次虚拟机的操作性能相同。2.如权利要求1所述的容错系统, 其中所述主虚拟机适用于将所述次虚拟机的所配置的操作性能通知给所述次虚拟机,以及 其中所述次虚拟机适用于根据所通知的操作性能执行操作。3.如权利要求1或2所述的容错系统, 其中所述操作性能包括操作频率,并且 其中所述主虚拟机适用于搜集所述主虚拟机可用的操作频率和所述次虚拟机可用的操作频率,并且适用于配置所述主虚拟机的操作频率和所述次虚拟机的操作频率。4.如权利要求1或2所述的容错系统, 其中如果所述主虚拟机所使用的装置的操作规范与所述次虚拟机所使用的装置的操作规范彼此不同,则所述主虚拟机适用于仿真处理,使得所述主虚拟机所使用的装置的处理变得与所述次虚拟机所使用的装置的处理相同。5.如权利要求4所述的容错系统, 其中如果各所述装置的操作规范中的差异在于是否存在给定功能,则所述主虚拟机适用于使所述给定功能无效并仿真处理,使得所述主虚拟机所使用的装置的处理变得与所述次虚拟机所使用的装置的处理相同,并且 其中如果各所述装置的操作规范中的差异在于性能或容量,则所述主虚拟机适用于允许将在所述主客户OS以外的外部环境中执行的操作上的处理不同。6.如权利要求1或2所述的容错系统, 其中如果所述主虚拟机所使用的装置的操作规范与所述次虚拟机所使用的装置的操作规范彼此不同,则所述次虚拟机适用于仿真处理,使得所述次虚拟机所使用的装置的处理变得与所述主虚拟机所使用的装置的处理相同。7.如权利要求6所述的容错系统, 其中如果各所述装置的操作规范中的差异在于是否存在给定功能,则所述次虚拟机适用于使所述给定功能无效并仿真处理,使得所述次虚拟机所使用的装置的处理变得与所述主虚拟机所使用的装置的处理相同,并且 其中...
【专利技术属性】
技术研发人员:吉田善贵,植原正太,大野毅,
申请(专利权)人:横河电机株式会社,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。