利于计算机环境的错误处理的方法与系统的制作方法

文档序号:6400630阅读:173来源:国知局
专利名称:利于计算机环境的错误处理的方法与系统的制作方法
技术领域
本发明一般地涉及计算环境中的处理,尤其涉及管理环境的错误。
背景技术
在各种类型的计算环境下可能出现许多类型的错误。例如,在向磁盘传播数据的环境下,错误会出现在传播中。例如,在具有比如连接到一个或多个服务器的一个或多个客户机的文件系统环境中,客户机的数据最初在客户机本身缓冲,然后最终刷新到一个或多个存储装置,比如一个或多个磁盘。如果出现故障,比如硬件故障或服务器崩溃,就会有永远无法将数据写到磁盘的可能。而且,如果其数据将被写入磁盘的应用程序在将数据存储于磁盘之前已经退出,就会有该应用程序并不知道数据丢失的可能。
虽然有精心安排的措施确保将数据提交到磁盘,仍然会出现导致数据丢失的情况。因此,需要一种用以处理计算环境的这些错误的能力。举例来说,需要一种可响应于错误而自动冻结(freeze)计算实体的至少一部分功能的能力。

发明内容
通过提供一种利于计算环境的错误处理的方法,克服现有技术的缺陷,并提供附加优点。该方法比如包括由计算环境的实体至少获得响应于计算环境另一实体的事件的错误的指示,其中该另一实体远离该实体;和响应于该获得而自动冻结该实体的一部分功能。
在本发明另一方面,提供一种管理计算环境的处理的方法。该方法比如包括通过计算环境的实体检测该实体的处理受到影响的状态;和响应于该检测,自动冻结该实体的一个或多个分布式输入/输出(I/O)操作,其中允许该实体的一个或多个其他操作继续。
也描述了对应于上述概括的方法的系统和计算机程序产品,并且对其提出权利要求。
通过本发明的技术实现了附加特征和优点。这里详细描述了本发明的其他实施例和方面,并将它们考虑为本发明的一部分。


在说明书所附的权利要求中具体指出被认为是本发明的主题,并且在本说明书后面的权利要求书中对其明确提出权利要求。根据结合附图的如下详细描述,可以理解本发明的上述和其他目的、特征和优点,在附图中图1a描述了引入和使用本发明的一个或多个方面的计算环境的
具体实施例方式
概述根据本发明的一个方面,响应于关键状态,比如潜在的数据丢失,自动冻结计算环境的一部分功能。在一个特定实例中,该计算环境包括客户/服务器文件系统,并且冻结的部分功能包括客户机在该文件系统中的一个或多个文件系统操作。该客户机(或计算环境的其他实体)的功能的冻结包括改变该客户机(或其他实体)的一个或多个线程的行为。
在本发明另一方面,提供用于解冻该冻结功能的能力。解冻和冻结发生无需文件系统的卸载(unmount)或重装(remount)(或重启将要冻结和解冻的实体)。
详细说明参照图1a,描述引入和使用本发明一个或多个方面的计算环境的实施例。计算环境100比如包括经由连接106连接到另一计算单元104的计算单元102。计算单元比如包括,个人计算机、膝上型计算机、工作站、大型计算机、小型计算机或任何其他类型的计算单元。计算单元102可以和计算单元104类型相同或不同。连接单元的连接是有线连接或任何其他类型的网络连接,比如局域网(LAN)、广域网(WAN)、令牌环、以太网连接、互联网连接等。
在一个实例中,每个计算单元执行操作系统108,比如纽约Armonk的国际商用机器公司提供的z/OS操作系统;UNIX操作系统,比如AIX;Linux;Windows;或其他操作系统等。计算单元的操作系统可以彼此相同或不同。而且,在其他实例中,一个或多个计算单元可以不包括操作系统。
在一个实施例中,计算单元102包括客户机应用程序(即客户机)110,其连接到计算单元104上的服务器应用程序(即服务器)112。客户机10比如在将应用程序连接的TCP/IP链路上通过网络文件系统协议(NFS)与服务器112通信。而且,一个或多个用户应用程序114可以在至少一个计算单元上执行。
在一个特定实施例中,该环境包括一文件系统(图1b),比如分布式文件系统,在该系统中,利用存储区域网络116以利于一个或多个客户机110和一个或多个服务器112通过高速链路存取一个或多个存储装置118。存储区域网络的使用允许提供高性能的分布式文件系统,该系统允许客户机直接从存储装置获得数据,而不是通过代表它们进行读写的远端服务器来存取数据。
在分布式文件系统中,在客户机计算单元上运行的应用程序访问文件系统命名空间(namespace),该应用程序比如包括用户应用程序、客户机应用程序等,该命名空间比如分布于一个或多个计算单元上。该命名空间包括应用程序可访问的一个或多个文件系统对象。在一个实例中,将该命名空间组织为树形结构,并且包括各种类型的对象,比如文件,包括客户机可存取的数据;目录,用以组织其他对象;符号链接,它们是树中对象名查找所重定向到的点。
与文件系统对象相关联的是比如用以控制对文件系统对象的访问的锁(lock)。有各种类型的锁,包括但不限于会话锁,用以在文件系统的不同客户机之间协调对文件系统对象的访问;以及数据锁,用以协调客户机常驻高速缓存中对文件系统内容的缓存。
锁的有效性部分取决于特定客户机和服务器之间是否具有有效的租约(lease)。该租约是客户机和服务器之间的合同(contract),在该合同中,服务器保证在租约所指定的特定时间段内,客户机的高速缓存中的数据是正确的。该租约在到期之前可续展。然而,如果不续展租约(比如因为断线、服务器崩溃或其他原因),那么在租约期结束时,租约期间所获得的锁被无效。客户机在没有有效的锁时,就无法对高速缓存的数据进行操作。因此,为了继续对文件系统对象进行一个或多个操作(比如读、写、查找等),客户机向服务器重新标识其自身以输入新的租约,并且试图再次请求(reassert)该无效锁。
为了利于计算环境中的处理,各种控制线程(即线程)被用于特定功能。例如,在文件系统环境的一个实例中,使用一个或多个发送线程发送消息比如到一个或多个服务器;使用一个或多个接收线程从比如一个或多个服务器接收消息;使用一个或多个租约续展线程在客户机和服务器之间续展租约;以及使用一个或多个锁再请求线程转发与再请求无效锁相关的消息。
通过缓冲数据并将数据写到存储装置(比如磁盘)的能力,也利于许多计算环境中的处理。例如,将位于计算环境实体(比如文件系统的客户机)本地的缓冲器中的数据写到一个或多个存储装置中,使得数据能够被提交给这些装置。在该数据传播期间,诸如在远离缓冲实体的实体(比如文件系统的服务器,或在磁盘上)上出现的硬件故障等会造成数据丢失。为了将数据丢失最小化,采取措施以管理故障和/或错误。参照图2,描述与该管理相关联的逻辑的实施例。
图2描述了本发明一方面的管理能力的概况的实例。在一个实例中,该逻辑由计算环境的实体,比如文件系统的客户机执行。例如,该实体执行该逻辑,其中获得错误指示(比如检测错误;检测造成错误的状态;接收错误指示;具有错误指示等),或影响该实体的处理的其他状态的指示。
参照图2,在步骤200,计算环境的实体(比如客户机)获得一错误的指示。在一个实例中,有一潜在数据丢失的指示,这被认为是一关键错误。然而,可根据需要将其他错误定义为关键错误。这里将导致实体功能被冻结的错误认为是关键错误。而且,这里将导致功能冻结的任何状态都定义为错误。
在一个实例中,错误指示的获得包括拒绝将脏(dirty)数据从实体的高速缓存写到磁盘的能力。例如当磁盘丢失时,或者又如当拒绝该实体利用锁或其他机制将作废数据从高速缓存写到磁盘时,可提供该拒绝。下面参照文件系统环境,更详细地描述后一实例。
在一个实例中,文件系统的客户机向远离客户机的文件系统服务器请求锁,比如数据锁。该锁具有与之相关的特定版本号,并且客户机使用该数据锁更新文件。由于将现在需要写到磁盘的数据写到高速缓存中,该文件是脏的。客户机和服务器之间的连接断开。而且,与该锁相关的租约到期,因此该客户机需要从服务器获得允许,以在将数据写到高速缓存之前续展该锁。当连接恢复时,客户机经由握手协议与服务器通信,在该协议中,客户机向服务器介绍自己。而且,客户机请求返回数据锁。如果服务器因为某些原因,比如不能提供相同版本的锁,或者其他原因而拒绝该数据锁,客户机接收到锁再请求拒绝,该拒绝禁止客户机从高速缓存传播数据到磁盘。因此,丢弃高速缓存的数据,这是关键错误。客户机获得该错误的指示(比如确定其丢失数据;收到锁再请求拒绝;和/或具有其他指示)。
在步骤202,响应于获得错误指示,冻结该实体的一部分功能。在该实体是文件系统客户机的一个实施例中,冻结一个或多个文件系统操作(比如要求服务器通信,或与远端存储系统通信的操作)。然而,在步骤204,该实体的其他功能和/或该环境的其他实体,比如其他客户机应用程序、服务器应用程序和/或用户应用程序并不被冻结,并且继续处理。该实体功能的冻结向系统管理员或其他人提醒现在能够处理的非期望状态。
在步骤206,在处理该状态之后或在其他期望时刻,解冻该实体的冻结部分,所述处理包括修复错误、绕过错误、忽略错误或任何其他处理技术。这允许客户机或其他冻结实体恢复以前的处理。在步骤208,无需重启该实体,或者在文件系统的情况下,无需卸载或重装该文件系统,即可进行解冻以及冻结。
参照图3-5,描述与冻结和解冻实体的至少一部分功能相关联的进一步细节。参照一文件系统描述这些细节,该文件系统具有至少一个客户机,该客户机连接到却又远离一文件系统的至少一个服务器。然而,本发明一个或多个方面同样适用于其他计算环境和这些环境的其他实体。举例来说,图3描述与冻结客户机的一个或多个文件系统操作相关联的逻辑的实施例;图4描述响应于该冻结而发生的动作的实例;以及图5描述与解冻该冻结的操作相关联的逻辑的实施例。
在一个实例中,在错误处理例程的上下文中,描述文件系统客户机的一部分功能的冻结。在该例中,不同地处理各种类型的错误。由用户(比如系统管理员)在开始时确定错误的类型,并由此确定如何管理文件系统。例如,该用户可以为特定错误指定单纯的错误记录例程,记录和冻结例程,或记录和停止(halt)例程,下面将分别描述它们。
参照图3,客户机响应于错误而激活错误处理程序例程。因此,在查询步骤300,确定该错误是否为关键错误。如果不是,在步骤302,在记录级别记录该错误,该记录级别是由用户在开始时指示出的。也就是说,对于不同的错误,会实施不同的行为。例如,错误越严重,消息会发送到越多的地方。举例来说,除记录之外,系统管理员和/或所有用户都会收到错误通知。
如果该错误是关键错误,在查询步骤304,进一步确定对该错误是否指示冻结或停止。如果没有冻结或停止的指示,在步骤306,对于关键错误,在适当的记录级别记录该错误。然而,如果该错误是关键错误,并且指示出冻结或停止,在步骤308,就设置一冻结指示符。在一个实例中,该冻结指示符是位于客户机内的一标志,如图1b中的标号120所示。在一个特定实例中,该冻结指示符位于客户机的客户状态管理器(CSM)部件中,该部件与操作平台无关。CSM比如负责与服务器进行通信,并负责执行本发明一个或多个方面的逻辑。CSM连接到客户机的可安装文件系统(IFS)部件,该部件与操作平台无关。该冻结指示符可由客户机的各种线程访问。
回到图3,在步骤310,在设置该冻结指示符之后,在适当的记录级别(比如关键级别)进行记录。然后,在查询步骤312,确定是否指示出停止。如果是,在步骤314,激活系统停止。举例来说,将该停止作为给定操作系统的功能而提供。例如,对于AIX,经由应急(Panic)例程的调用来激活停止。如果未指示出停止,则错误处理程序例程的处理完成。
如上所述,在某些错误场合中,设置一冻结指示符。响应于设置该冻结指示符,冻结该文件系统的至少一部分功能。在一个实例中,冻结的文件系统操作涉及客户机的服务器通信或其他远端通信,其中,在该客户机中指示有错误。但并不冻结该客户机的其他功能,包括其他文件系统操作;也不冻结该文件系统的其他客户机、服务器和其他方面。该冻结会影响或改变客户机文件系统的行为。例如,如下所述,会影响客户机文件系统的一个或多个线程的行为。
参照图4,在步骤400,锁定一个或多个线程。例如,接收器、发送器和锁再请求线程通过循环来锁定,比如一秒的休眠循环,该循环等待该冻结指示符的重置。换而言之,拖延这些线程,以等待指示符的重置,其中周期性地检查该重置。
除上述之外,在步骤402,租约续展线程停止发送租约续展消息。在该例中,租约续展线程继续它的正常功能,除停止发送租约续展消息到服务器之外。因此,对正在进行的特定功能进行检查,如果正发送租约续展消息,就将其禁止。
而且,在步骤404,任何租约有效性检查失败。当租约失败时,这会影响与该租约相关联的各种锁,比如数据锁和会话锁。因此,当租约有效性检查失败时,任何数据锁和/或会话锁有效性检查也会失败。该文件系统表现得就好像所有的锁已被无效。这会有防止初始化新的磁盘I/O。而且,客户机停止任何恢复数据和/会话锁的尝试。这会造成锁到期并被标记为无效。这导致与设置该冻结指示符相关联的处理。
在文件系统冻结的期间,管理员会利用可用的各种工具来解决数据丢失问题。处理数据丢失的方式是特定于文件系统、特定管理员和/或特定客户机的,并且无关于本发明的一个或多个方面。然而,在一个实例中,在处理(比如修复、忽略、绕过等)错误之后,解冻所冻结的功能。这是由具有冻结的文件系统操作的客户机进行的,并且无需卸载和/或重装文件系统。
参照图5,描述与解冻相关联的逻辑的实施例。文件系统的解冻包括在步骤500清除冻结指示符。当清除或重置该指示符时,允许线程恢复正常操作。例如,解锁发送、接收和锁再请求线程;允许续展线程发送租约续展消息;并且租约有效性检查可再次成功。
优点以上详细描述的能力允许响应于获得至少一错误指示而冻结实体的一部分功能。在一个实例中,获取该错误指示的实体对与该错误指示相关联的数据非常熟悉。该实体能够停止进一步的I/O活动或分布式性质的活动,这有利地增加了保存至少某些可能丢失的数据的机会。
有利地,该能力允许对该实体的各部分进行选择性的冻结,同时允许该实体的其他部分、其他实体(比如客户机和服务器)、或计算环境的其他方面继续正常的处理。
可选实施例虽然这里已详细描述和说明了优选实施例,对于本领域技术人员显而易见的是,不背离本发明的精神,可进行各种改型、附加、替换等,并且考虑将它们并入由所附权利要求定义的发明范围内。
例如,虽然在上述一个实施例中一个客户机连接到一个服务器,但是在其他实施例中,一个或多个客户机可连接到一个或多个服务器,或其任何组合。该一个或多个客户机可以在一个或多个计算单元上。相似地,该一个或多个服务器可以在一个或多个计算单元上。而且,一个或多个客户机和一个或多个服务器可以在一个计算单元上。而且,在另一实施例中,在计算单元上可能没有用户应用程序执行。
除上述之外,虽然这里描述了各种线程,然而在不背离本发明一个或多个方面的精神的情况下,可实现更多、更少或不同的线程。而且,响应于设置该冻结指示符,可采取更多、更少或不同的动作。
此外,虽然已提供计算环境的实例,但仅为实例而已。可使用其他环境。例如,虽然这里参照分布式文件系统描述实例,但仅为实例而已。本发明一个或多个方面适用于其他环境。
例如,在另一实施例中,该文件系统可以是本地文件系统,在该系统中,比如由于磁盘崩溃,无法将缓冲的数据写到磁盘。该操作系统不再存取该磁盘,因此冻结操作系统的文件系统功能。
在另一实施例中,计算环境不必包括文件系统。
这里描述的流程图仅为实例。在不背离本发明的精神的情况下,对所述这些示意图或步骤(或操作)可以有许多变形。例如,这些步骤可按不同的顺序进行,或者增加、删除或修改这些步骤。将所有这些变形考虑作为本发明的一部分。
本发明可以包括在一种产品(比如一个或多个计算机程序产品)中,该产品比如具有计算机可用的介质。在该介质中比如具有计算机可读的程序代码装置或逻辑(比如指令、代码、命令等),以提供和实施本发明的能力。该产品可以作为计算机系统的一部分,或者单独出售。
此外,提供至少一种机器可读的程序存储装置,该装置具有至少一个可由该机器执行的指令程序,以实现本发明的能力。
权利要求
1.一种利于计算环境的错误处理的方法,所述方法包括由该计算环境的实体至少获得响应于该计算环境另一实体的事件的错误的指示,所述另一实体远离该实体;以及响应于该获得,自动冻结该实体的一部分功能。
2.如权利要求1所述的方法,其中该实体包括客户机,该另一实体包括服务器。
3.如权利要求2所述的方法,其中该客户机包括该计算环境的文件系统的客户机,并且该服务器包括该文件系统的服务器。
4.如权利要求3所述的方法,其中自动冻结步骤包括设置冻结指示符,其中该冻结指示符位于该客户机内。
5.如权利要求4所述的方法,其中自动冻结步骤包括响应于设置该冻结指示符而改变该客户机的一个或多个线程的行为。
6.如权利要求4所述的方法,其中自动冻结步骤包括响应于设置冻结指示符而使一个或多个有效性测查失败。
7.如权利要求1所述的方法,其中该实体的一部分功能仍然工作。
8.如权利要求1所述的方法,其中该计算环境的一个或多个其他实体保持不被冻结。
9.如权利要求1所述的方法,其中自动冻结步骤包括改变该实体的一个或多个线程的行为。
10.如权利要求9所述的方法,其中改变行为步骤包括锁定该一个或多个线程中的至少一个线程。
11.如权利要求9所述的方法,其中改变行为步骤包括禁止该一个或多个线程中的至少一个线程发送一个或多个消息。
12.如权利要求1所述的方法,其中自动冻结步骤包括使一个或多个有效性检查失败。
13.如权利要求1所述的方法,还包括解冻被冻结的该部分功能。
14.如权利要求13所述的方法,其中解冻步骤包括重置冻结指示符。
15.一种管理计算环境的处理的方法,所述方法包括通过该环境的实体检测其中该实体的处理受到影响的状态;响应于该检测而自动冻结该实体的一个或多个分布式输入/输出(I/O)操作,其中允许该实体的一个或多个其他操作继续进行。
16.如权利要求15所述的方法,其中该实体包括该计算环境的文件系统的客户机。
17.如权利要求16所述的方法,其中该一个或多个分布式I/O操作包括该客户机的一个或多个文件系统操作。
18.如权利要求17所述的方法,还包括解冻被冻结的该一个或多个文件系统操作。
19.如权利要求18所述的方法,其中在没有重装该文件系统的情况下进行所述解冻。
20.如权利要求16所述的方法,其中该文件系统的一个或多个其他客户机,或该文件系统的一个或多个服务器的至少之一不被冻结。
21.如权利要求16所述的方法,其中自动冻结步骤包括改变该实体的一个或多个线程的行为。
22.如权利要求16所述的方法,其中该状态包括响应于该文件系统的服务器的事件的错误,所述服务器远离该客户机。
23.一种利于计算环境的错误处理的系统,所述系统包括该计算环境的实体,用以获得至少错误指示,该错误响应于计算环境的另一实体的事件,所述另一实体远离该实体;以及用于响应于该获得而自动冻结该实体的一部分功能的装置。
24.如权利要求23所述的系统,其中该实体的一部分功能仍然工作。
25.如权利要求23所述的系统,其中用于自动冻结的装置包括用于改变该实体的一个或多个线程的行为的装置。
26.如权利要求23所述的系统,还包括用于解冻所冻结的该部分功能的装置。
27.一种管理计算环境的处理的系统,所述系统包括该计算环境的实体,用以检测其中该实体的处理受到影响的状态,并且响应于该检测,自动冻结该实体的一个或多个分布式输入/输出(I/O)操作,其中允许该实体的一个或多个其他操作继续进行。
28.如权利要求27所述的系统,其中该实体是该计算环境的文件系统的客户机,该状态包括响应于该文件系统的服务器的事件的错误,所述服务器远离该客户机。
29.一种产品,包括至少一个计算机可用介质,该介质具有计算机可读程序代码逻辑,以利于计算环境的错误处理。该计算机可读程序代码逻辑包括获得逻辑,用以通过该计算环境的实体至少获得响应于计算环境另一实体的事件的错误的指示,所述另一实体远离该实体;以及冻结逻辑,用以响应于该至少错误指示而自动冻结该实体的一部分功能。
30.如权利要求29所述的产品,其中该实体的一部分功能仍然起工作。
31.如权利要求29所述的产品,其中该冻结逻辑包括行为逻辑,用以改变该实体的一个或多个线程的行为。
32.如权利要求29所述的产品,其中该计算机可读程序代码逻辑还包括解冻逻辑,用以解冻所冻结的该部分功能。
33.一种产品,包括至少一个计算机可读介质,该介质具有计算机可读程序代码逻辑,用以管理计算环境的处理,该计算机可读程序代码逻辑包括检测逻辑,用以通过该计算环境的实体检测其中该实体的处理受到影响的状态;以及冻结逻辑,用以自动冻结该实体的一个或多个分布式输入/输出(I/O)操作,其中允许该实体的一个或多个其他操作继续进行。
34.如权利要求33所述的产品,其中该实体是该计算环境的文件系统的客户机,并且该状态包括响应于该文件系统的服务器的事件的错误,所述服务器远离该客户机。
全文摘要
利于计算环境的错误处理,包括具有文件系统的环境。响应于该计算环境的实体,比如文件系统的客户机,获得至少错误指示,自动冻结该实体的一部分功能。该获得比如响应于该计算环境的另一实体的事件,该另一实体比如是该文件系统的服务器。最后,解冻所冻结的功能,从而允许该功能继续。
文档编号G06F11/00GK1542618SQ200410038689
公开日2004年11月3日 申请日期2004年4月27日 优先权日2003年4月29日
发明者托马斯·K·克拉克, 克莱格·F·埃维哈特, 文卡特斯瓦拉奥·朱朱里, 鲁塞尔·H·维特, F 埃维哈特, H 维特, 托马斯 K 克拉克, 斯瓦拉奥 朱朱里 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1