用于保持数据完整性的设备制造技术

技术编号:7127975 阅读:247 留言:0更新日期:2012-04-11 18:40
提供了一种在软件组件的多个实例各自包括能够访问共享资源的多个进程的环境中保持数据完整性的设备。软件组件的每个实例是“活动的”实例(被允许更新数据)或“待命的”实例(不被允许更新数据)。在任何时间点,环境不包括多于一个活动实例,然而,可以存在多于一个待命实例。优选地,在活动实例完全故障(即,与当前活动实例的每个进程相关联的故障)的事件中,单个待命实例能够变为新的活动实例。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及用于保持数据完整性的设备
技术介绍
在“高度可用的”商业计算环境中,硬件和软件技术的组合被典型地组合以提供关键程序从硬件和软件故障的快速恢复,所述环境被设计用于消除单点故障。例如,典型的高度可用的环境通常包括多个共享诸如磁盘驱动器的资源的松散连接的计算机。关键程序能够在一组计算机中的任何一台上运行。而且,硬件资源(例如,磁盘驱动器)在计算机之间共享。导致关键程序的不可用性的硬件或软件故障能够通过将其移至另一台计算机由此恢复它的可用性而得到补救。典型的高度可用的环境在历史上是由被称为高度可用性(HA)软件的软件所管理的。典型地,HA软件通过监视组件并承担响应于故障而移动资源的责任,提供对硬件和软件组件的管理。这样的高度可用的环境的示例(100)在图IA中示出,并包括具有第一 HA软件 (117)和高度可用的软件组件(110)的第一实例的第一计算机(105),其中软件组件(110) 可操作用来访问共享资源,例如,包括数据的共享磁盘(120)。高度可用的环境(100)还包括具有可操作用来与第一 HA软件(117)通信的第二 HA软件(119)的第二计算机(115)。在示例中,第一计算机(105)的第一实例(110)访问共享磁盘(120)。第一 HA软件(117)具有共享磁盘(120)的“所有权”。在第一计算机(105)的故障的事件中,第二 HA软件(119)可操作用来检测故障 (例如,响应于第二 HA软件(119)不再能够与第一 HA软件(117)通信)。参考图1B,作为响应,第二 HA软件(119)可操作用来终止第一实例(110),将共享磁盘(120)的所有权移至其本身,并接着在第二计算机(11 上开启(start)软件组件 (125)的第二实例。第二计算机(11 接着可操作用来从第一计算机(105) “接管”责任, 并且在第二计算机(11 上运行的第二实例(12 能够访问共享磁盘(120)。图IA和IB的环境(100)提供了软件组件的有保证的单个激活——也即,软件组件的两个实例不可能在不同的计算机上同时开启。如果软件组件的两个实例要在不同的计算机上同时开启,则这可能引起诸如共享磁盘(120)上的数据的损坏的错误。虽然上述环境(100)为关键程序的高度可用性和关键程序的有保证的单个激活作了准备,但是特殊硬件(例如,必须被具体地配置以使其能够被多个计算机访问的共享磁盘(120))和软件(例如,HA软件)是需要的。凭借更多的现代技术,可以在不需要特殊的硬件和/或软件的情况下获得高度可用性和有保证的单个激活。这样的环境的代表(200)在图2中示出,其中环境(200)包括相同软件组件的两个实例。更具体地,环境(200)包括具有高度可用的软件组件O10)的第三实例的第三3计算机005),其中第三实例(210)可操作用来访问共享资源,例如,包括数据的共享磁盘 O20)。环境(200)还包括具有高度可用的软件组件(22 的第四实例的第四计算机(215), 其中第四实例(225)也可操作用来访问共享磁盘020)。在图IA和IB的示例中,软件组件不需要负起有保证的单个激活的责任,因为环境 (100)包括HA软件。因为图2的环境(200)不包括HA软件,所以软件组件需要能够确保共享磁盘上的数据不会通过来自两个计算机O05、215)的同时的未协调的访问而被损坏。如果软件组件的每个实例分别由单个进程组成,并且如果共享磁盘上的数据仅包含在少量文件中,则使用对共享磁盘上的数据文件的文件锁定以确保数据的完整性被保持是充分的。例如,排他的文件锁定能够用于确保一次只有软件组件的一个运行实例读取或写入数据文件。在更复杂的方法中,数据文件的区域的“范围锁定”可用于确保软件组件的多个实例不会通过未协调的访问而使数据文件损坏。当软件组件的复杂度增加时,需要进一步的改进。
技术实现思路
根据优选实施例的第一方面,提供了一种用于保持数据完整性的设备,用于在包括具有第一多个进程的第一软件实例、以及第二软件实例的环境中使用,其中所述第一软件实例和第二软件实例各自可操作用来访问共享数据,并且其中,与所述共享数据相关联的文件用于锁定,所述设备包括第一锁组件,用于响应于第一多个进程的第一父进程不持有(hold)第一分层(hierarchical)文件锁,代表第二实例获得所述第一分层文件锁;部件,用于响应于代表所述第二实例获得第一分层文件锁,激活第二锁组件,其中,所述第二锁组件可操作用来响应于第一多个进程均不持有作为第一分层文件锁的子锁(child)的第二分层文件锁,代表所述第二实例获得第二分层文件锁;以及部件,用于响应于由第一锁组件获得所述第一分层文件锁,并响应于由第二锁组件获得所述第二分层文件锁,防止第一实例访问共享数据并允许所述第二实例访问共享数据。根据优选实施例的第二方面,提供了一种保持数据完整性的方法,用于在包括具有第一多个进程的第一软件实例、以及第二软件实例的环境中使用,其中所述第一软件实例和第二软件实例各自可操作用来访问共享数据,并且其中,与所述共享数据相关联的文件用于锁定,所述方法包括响应于第一多个进程的第一父进程不持有第一分层文件锁,代表第二实例获得所述第一分层文件锁;响应于代表所述第二实例获得第一分层文件锁、以及第一多个进程均不持有作为第一分层文件锁的子锁的第二分层文件锁,代表所述第二实例获得第二分层文件锁;以及响应于获得所述第一分层文件锁和所述第二分层文件锁,防止第一实例访问共享数据并允许所述第二实例访问共享数据。根据优选实施例的第三方面,提供了一种计算机程序,包括程序代码组件,其被适配为当所述程序在计算机上运行时执行上述方法的所有步骤。附图说明现在将参考以下附图中图示的本专利技术的优选实施例,仅通过示例的方式来描述本专利技术图IA是现有技术的高度可用的第一环境的框图;图IB是在高度可用的第一环境中的计算机故障的事件中、图1的现有技术的高度可用的第一环境的框图;图2是现有技术的高度可用的第二环境的框图;图3是根据优选实施例的高度可用的第二环境的框图;图4是示出与图3的环境的父进程相关联的进程中涉及的操作步骤的流程图;图5是示出与图3的环境的子进程相关联的进程中涉及的操作步骤的流程图;图6A是与第一父进程相关联的组件的框图;图6B是与第二父进程相关联的组件的框图;图7A是与图6A的父进程的第一子进程相关联的组件的框图;以及图7B是与图6A的父进程的第二子进程相关联的组件的框图。具体实施例方式在软件组件的多个实例各自包括能够访问共享资源的数据的多个进程的环境中, 需要改进的方法。在这里的示例中,软件组件的多个实例能够在多台计算机上同时开启。每个实例可操作用来访问环境中的数据,并且每个实例包括一个或多个操作系统进程。软件组件的每个实例是“活动的(active),,实例(被允许更新数据)或“待命的 (standby),,实例(不被允许更新数据)。在任何时间点,环境不包括多于一个活动实例——然而,可以存在多于一个待命实例——这确保关键程序的单个激活。优选地,在活动实例的完全故障(即,与当前的活动实例的每个进程相关联的故障)的事件中,单个待命实例可变为新的活动实例。更优选地,活动实例的局部故障(即, 与当前的活动实例的进程的子集相关联本文档来自技高网
...

【技术保护点】
1.一种用于保持数据完整性的设备,用于在包括第二软件实例、以及具有第一多个进程的第一软件实例的环境中使用,其中所述第一软件实例和所述第二软件实例各自可操作用来访问共享数据,并且其中,与所述共享数据相关联的文件被用于锁定,所述设备包括:第一锁组件,用于响应于所述第一多个进程的第一父进程不持有第一分层文件锁,代表第二实例获得所述第一分层文件锁;部件,用于响应于代表所述第二实例获得所述第一分层文件锁,激活第二锁组件,其中,所述第二锁组件可操作用来响应于所述第一多个进程均不持有作为所述第一分层文件锁的子锁的第二分层文件锁,代表所述第二实例获得所述第二分层文件锁;以及部件,用于响应于由所述第一锁组件获得所述第一分层文件锁,并响应于由所述第二锁组件获得所述第二分层文件锁,防止第一实例访问所述共享数据并允许所述第二实例访问所述共享数据。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:AJ肖菲尔德
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1