(57)【要約】【課題】ファイル・システムを備えるコンピューティング環境のエラー処理を容易にする方法を提供すること。【解決手段】ファイル・システムのクライアントなどコンピューティング環境のエンティティが少なくとも１つのエラー通知を取得したのに応答して、そのエンティティの一部の機能を自動的にフリーズさせる。エラー通知の取得は、例えば、ファイル・システムのサーバなどコンピューティング環境の別のエンティティのイベントに応答する。最終的に、フリーズされた機能は解凍されて処理を続行できるようになる。【選択図】図３
2004326804.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング環境のエラー処理を容易にする方法であって、
前記コンピューティング環境のエンティティが、前記エンティティから離れた位置にある、前記コンピューティング環境の別のエンティティのイベントに応答するエラーの少なくとも１つの通知を取得するステップと、
前記取得に応答して、前記エンティティの一部の機能を自動的にフリーズするステップとを含む方法。
【請求項２】
前記エンティティが、クライアントを備え、前記別のエンティティが、サーバを備える、請求項１に記載の方法。
【請求項３】
前記クライアントが、前記コンピューティング環境のファイル・システムのクライアントを備え、前記サーバが、前記ファイル・システムのサーバを備える、請求項２に記載の方法。
【請求項４】
前記自動的にフリーズするステップが、フリーズ標識をセットするステップを含み、前記フリーズ標識が、前記クライアント内に配置される、請求項３に記載の方法。
【請求項５】
前記自動的にフリーズするステップが、前記フリーズ標識のセットに応答して、前記クライアントの１つまたは複数のスレッドの動作を変更するステップを含む、請求項４に記載の方法。
【請求項６】
前記自動的にフリーズするステップが、前記フリーズ標識のセットに応答して、１つまたは複数の有効性チェックに失敗するステップを含む、請求項４に記載の方法。
【請求項７】
前記エンティティの一部の機能は機能し続ける、請求項１に記載の方法。
【請求項８】
前記コンピューティング環境の１つまたは複数の他のエンティティはフリーズされない、請求項１に記載の方法。
【請求項９】
前記自動的にフリーズするステップが、前記エンティティの１つまたは複数のスレッドの動作を変更するステップを含む、請求項１に記載の方法。
【請求項１０】
前記動作を変更するステップが、前記１つまたは複数のスレッドのうち少なくとも１つのスレッドをロックするステップを含む、請求項９に記載の方法。
【請求項１１】
前記動作を変更するステップが、前記１つまたは複数のスレッドのうち少なくとも１つのスレッドが１つまたは複数のメッセージを送信することを禁止するステップを含む、請求項９に記載の方法。
【請求項１２】
前記自動的にフリーズするステップが、１つまたは複数の有効性チェックに失敗するステップを含む、請求項１に記載の方法。
【請求項１３】
フリーズされた前記一部の機能を解凍するステップをさらに含む、請求項１に記載の方法。
【請求項１４】
前記解凍するステップが、フリーズ標識をリセットするステップを含む、請求項１３に記載の方法。
【請求項１５】
コンピューティング環境の処理を管理する方法であって、
前記コンピューティング環境のエンティティが、前記エンティティの処理が影響を受ける状況を検出するステップと、
前記検出に応答して、前記エンティティの１つまたは複数の分散入出力（Ｉ／Ｏ）操作を自動的にフリーズするステップであって、前記エンティティの１つまたは複数の他の操作は続行を許可されるステップとを含む方法。
【請求項１６】
前記エンティティが、前記コンピューティング環境のファイル・システムのクライアントを備える、請求項１５に記載の方法。
【請求項１７】
前記１つまたは複数の分散Ｉ／Ｏ操作が、前記クライアントの１つまたは複数のファイル・システム操作を含む、請求項１５に記載の方法。
【請求項１８】
フリーズされた前記１つまたは複数のファイル・システム操作を解凍するステップをさらに含む、請求項１７に記載の方法。
【請求項１９】
前記解凍が、前記ファイル・システムの再マウントを必要とせずに実行される、請求項１８に記載の方法。
【請求項２０】
前記ファイル・システムの１つまたは複数の他のクライアントのうち少なくとも１つ、または前記ファイル・システムの１つまたは複数のサーバはフリーズされない、請求項１５に記載の方法。
【請求項２１】
前記自動的にフリーズするステップが、前記クライアントの１つまたは複数のスレッドの動作を変更するステップを含む、請求項１５に記載の方法。
【請求項２２】
前記状況が、前記クライアントから離れた位置にある、前記ファイル・システムのサーバのイベントに応答するエラーを含む、請求項１５に記載の方法。
【請求項２３】
コンピューティング環境のエラー処理を容易にするシステムであって、
前記コンピューティング環境のエンティティが、前記エンティティから離れた位置にある、前記コンピューティング環境の別のエンティティのイベントに応答するエラーの少なくとも１つの通知を取得する手段と、
前記取得に応答して、前記エンティティの一部の機能を自動的にフリーズする手段とを含むシステム。
【請求項２４】
前記エンティティの一部の機能は機能し続ける、請求項２３に記載のシステム。
【請求項２５】
前記自動的にフリーズする手段が、前記エンティティの１つまたは複数のスレッドの動作を変更する手段を含む、請求項２３に記載のシステム。
【請求項２６】
フリーズされた前記一部の機能を解凍する手段をさらに含む、請求項２３に記載のシステム。
【請求項２７】
コンピューティング環境の処理を管理するシステムであって、
前記コンピューティング環境のエンティティであって、前記エンティティの処理が影響を受ける状況を検出し、前記検出に応答して、前記エンティティの１つまたは複数の分散入出力（Ｉ／Ｏ）操作を自動的にフリーズし、前記エンティティの１つまたは複数の他の操作には続行を許可するエンティティを含むシステム。
【請求項２８】
前記エンティティが、前記コンピューティング環境のファイル・システムのクライアントであり、前記状況が、前記クライアントから離れた位置にある、前記ファイル・システムのサーバのイベントに応答するエラーを含む、請求項２７に記載のシステム。
【請求項２９】
コンピューティング環境のエラー処理を容易するコンピュータ可読のプログラム・コード・ロジックを有する少なくとも１つのコンピュータ使用可能な媒体を含む装置であって、前記コンピュータ可読のプログラム・コード・ロジックが、
前記コンピューティング環境のエンティティが、前記エンティティから離れた位置にある、前記コンピューティング環境の別のエンティティのイベントに応答するエラーの少なくとも１つの通知を取得する取得ロジックと、
前記エラーの前記少なくとも１つの通知に応答して、前記エンティティの一部の機能を自動的にフリーズするフリーズ・ロジックとを含む装置。
【請求項３０】
前記エンティティの一部の機能は機能し続ける、請求項２９に記載の装置。
【請求項３１】
前記フリーズ・ロジックが、前記エンティティの１つまたは複数のスレッドの動作を変更する動作ロジックを含む、請求項２９に記載の装置。
【請求項３２】
前記コンピュータ可読のプログラム・コード・ロジックが、フリーズされた前記一部の機能を解凍する解凍ロジックをさらに含む、請求項２９に記載の装置。
【請求項３３】
コンピューティング環境の処理を管理するコンピュータ可読のプログラム・コード・ロジックを有する少なくとも１つのコンピュータ使用可能な媒体を含む装置であって、前記コンピュータ可読のプログラム・コード・ロジックが、
前記コンピューティング環境のエンティティが、前記エンティティの処理が影響を受ける状況を検出する検出ロジックと、
前記エンティティの１つまたは複数の分散入出力（Ｉ／Ｏ）操作を自動的にフリーズし、前記エンティティの１つまたは複数の他の操作には続行を許可するフリーズ・ロジックとを含む装置。
【請求項３４】
前記エンティティが、前記コンピューティング環境のファイル・システムのクライアントであり、前記状況が、前記クライアントから離れた位置にある、前記ファイル・システムのサーバのイベントに応答するエラーを含む、請求項３３に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピューティング環境内での処理に関し、詳細には、コンピューティング環境のエラーの管理に関する。
【背景技術】
【０００２】
様々なタイプのコンピューティング環境で発生し得る、数多くのタイプのエラーがある。例えば、データをディスクに伝送するコンピューティング環境では、伝送中にエラーが発生し得る。例を挙げると、例えば、１つまたは複数のサーバに結合された１つまたは複数のクライアントを有するファイル・システム環境では、クライアントのデータはそのクライアント上にまずバッファされ、その後、最終的には、１つまたは複数のディスクなど１つまたは複数の記憶装置にフラッシュされる。ハードウェア故障やサーバ・クラッシュなどの障害が起ると、データがディスクに書き込まれない可能性が出てくる。さらに、データがあるアプリケーションのためにディスクに書き込まれる場合に、データがディスクに保存される前にそのアプリケーションが終了（exit）したとすると、アプリケーションがデータ消失を認識しない可能性が出てくる。
【特許文献１】米国特許第５３１７７３９号
【特許文献２】米国特許第５４１８９１６号
【特許文献３】米国特許第５６３４０９６号
【特許文献４】特開平７−１６８７２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
データをディスクに確定する（commit）ことを保証する精緻な手段はあるが、それでもデータ消失の原因となる状況が発生する。したがって、コンピューティング環境のそうしたエラーに対処できる能力が必要とされている。一例として、エラーに応答して、コンピューティング・エンティティの少なくとも一部の機能を自動的にフリーズ（凍結）させることができる能力が必要とされている。
【課題を解決するための手段】
【０００４】
コンピューティング環境のエラー処理を容易にする方法を提供することによって、従来技術の短所が克服され、付加的な利点が提供される。この方法は、例えば、コンピューティング環境内のエンティティが、前記エンティティから離れて存在する、コンピューティング環境内の別のエンティティのイベントに応答するエラーの少なくとも１つの通知（indication）を取得するステップと、その取得に応答して、前記エンティティの機能の一部を自動的にフリーズするステップを含む。
【０００５】
本発明の別の態様では、コンピューティング環境の処理を管理する方法が提供される。この方法は、例えば、コンピューティング環境のエンティティが、そのエンティティの処理に影響を与える状況を検出するステップと、その検出に応答して、前記エンティティの１つまたは複数の分散入出力（Ｉ／Ｏ）操作を自動的にフリーズさせ、前記エンティティの１つまたは複数の他の操作に対しては続行を許可するステップを含む。
【０００６】
上述で要約した方法に対応するシステムおよびコンピュータ・プログラム記録媒体についても本明細書で説明し、特許の請求を行う。
【０００７】
追加の特徴および利点は、本発明の技法を通して理解されよう。本発明の他の実施形態および側面が本明細書で詳細に説明されている。
【０００８】
本発明の内容が具体的に開示され、特許請求の範囲で明確に特許請求される。本発明の上記およびその他の目的、特徴、および利点は、以下の詳細な説明を添付の図面と併せ読むことによって明らかとなるであろう。
【発明を実施するための最良の形態】
【０００９】
本発明の一態様によれば、潜在的なデータ消失など、クリティカルな状況に応答して、コンピューティング環境の一部の機能が自動的にフリーズされる。具体的な一例では、コンピューティング環境は、クライアント−サーバ・ファイル・システムを含み、フリーズされる一部の機能は、ファイル・システム中のクライアントの１つまたは複数のファイル・システム操作を含む。クライアント（またはコンピューティング環境の他のエンティティ）の機能のフリーズは、クライアント（または他のエンティティ）の１つまたは複数のスレッドの動作（behavior）変更を含む。
【００１０】
本発明の別の態様では、フリーズされた機能を解凍（thaw）するための機能が提供される。フリーズ同様解凍も、ファイル・システムのアンマウント（unmount）または再マウント（またはフリーズおよび解凍されるエンティティのリスタート）を必要とせずに行われる。
【００１１】
本発明の１つまたは複数の態様を組み込み使用するコンピューティング環境の一実施形態を、図１を参照しながら説明する。コンピューティング環境１００は、例えば、接続（connection）１０６を介して別のコンピューティング・ユニット（computing unit）１０４に結合されたコンピューティング・ユニット１０２を含む。コンピューティング・ユニットには、例えば、パーソナル・コンピュータ、ラップトップ、ワークステーション、メインフレーム、ミニ・コンピュータ、またはその他のタイプのコンピューティング・ユニットが含まれる。コンピューティング・ユニット１０２は、コンピューティング・ユニット１０４と同じタイプのユニットでも、同じタイプのユニットでなくてもよい。ユニットを結合する接続は配線接続、またはローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、トークン・リング、イーサネット（Ｒ）接続、インターネット接続などのような任意のタイプのネットワーク接続である。
【００１２】
一例では、各コンピューティング・ユニットは、オペレーティング・システム１０８、例えば、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションが提供するｚ／ＯＳオペレーティング・システム、ＡＩＸ（Advanced Interactive Executive）、ＬｉｎｕｘなどのＵＮＩＸ（Ｒ）オペレーティング・システム、Ｗｉｎｄｏｗｓ（Ｒ）、またはその他のオペレーティング・システムなどを実行する。あるコンピューティング・ユニットのオペレーティング・システムは、別のコンピューティング・ユニットのものと同じでも同じでなくてもよい。さらに別の例では、１つまたは複数のコンピューティング・ユニットは、オペレーティング・システムを含まなくてもよい。
【００１３】
一実施形態では、コンピューティング・ユニット１０２は、コンピューティング・ユニット１０４上のサーバ・アプリケーション（別名、サーバ）１１２に結合された、クライアント・アプリケーション（別名、クライアント）１１０を含む。クライアント１１０は、両アプリケーションを結合するＴＣＰ／ＩＰリンクを介し、例えば、ネットワーク・ファイル・システム（ＮＦＳ）プロトコルを用いて、サーバ１１２と通信を行う。さらに、少なくとも１つのコンピューティング・ユニット上で、１つまたは複数のユーザ・アプリケーション１１４を実行することができる。
【００１４】
具体的な一実施形態では、コンピューティング環境は、分散ファイル・システムなどのファイル・システム（図２）を含み、ファイル・システム内では、ストレージ・エリア・ネットワーク１１６を利用して、１つまたは複数のクライアント１１０および１つまたは複数のサーバ１１２が、１つまたは複数の記憶装置（storage device）１１８に高速リンクを介して容易にアクセスできるようにする。ストレージ・エリア・ネットワークを利用することで、高性能の分散ファイル・システムの提供が可能になり、クライアントは、クライアントに代って読み書きを実行するリモート・サーバを介してデータにアクセスするのではなく、記憶装置からデータを直接取得できるようになる。しかし、クライアントのアクセスは、１つまたは複数のサーバによって調整される。
【００１５】
分散ファイル・システムでは、例えば、ユーザ・アプリケーション、クライアント・アプリケーションなどを含む、クライアント・コンピューティング・ユニット上で実行するアプリケーションは、例えば、１つまたは複数のコンピューティング・ユニットに分散する、ファイル・システムのネーム・スペース（name space）にアクセスする。ネーム・スペースは、アプリケーションがアクセス可能な１つまたは複数のファイル・システム・オブジェクトを含む。一例では、ネーム・スペースは、ツリー構造として編成（organize）され、様々なタイプのオブジェクト、例えば、クライアントにアクセス可能なデータを含むファイル、他のオブジェクトを編成するのに使用されるディレクトリ、オブジェクトのネーム検索（lookup）がリダイレクト（宛先変更）されるツリー内のポイントであるシンボリック・リンクなどを含む。
【００１６】
ファイル・システム・オブジェクトには、例えば、ファイル・システム・オブジェクトへのアクセスを制御するのに使用されるロックが関連づけられる。様々なタイプのロックがあり、その中には、ファイル・システムの異なるクライアント間でファイル・システム・オブジェクトへのアクセスを調整するのに使用されるセッション・ロックや、クライアント常駐キャッシュ内のファイル・システムの内容のキャッシング（caching）を調整するのに使用されるデータ・ロックが含まれるが、これらに限定されるものではない。
【００１７】
ロックの有効性は、部分的には、ある特定のクライアントとサーバの間に有効なリース（lease）が存在するかどうかに依存する。リースとは、クライアントとサーバの間の契約であり、その中で、サーバは、リースで指定された特定の期間はクライアント・キャッシュ内のデータが正確であることを保証する。リース期限が切れる前に、リースを更新することができる。しかし、リースが更新されない場合（例えば、切断、サーバ・クラッシュ、またはその他の理由のため）、リース期間が終了すると、リース期間中に取得していたロックが無効にされる。クライアントは、有効なロックを有していない場合、キャッシュ・データを操作することができない。したがって、ファイル・システム・オブジェクトに対して１つまたは複数の操作（例えば、読み取り、書き込み、探索など）を続行するため、クライアントは、サーバと新たにリース契約を結び直し、無効ロックの再有効化（reassert）を試みる。
【００１８】
コンピューティング環境の処理を容易にするため、様々な制御スレッド（すなわち、スレッド）が特定の機能のために使用される。例えば、ファイル・システム環境の一例では、１つまたは複数の送信側スレッドを使用して、メッセージを、例えば、１つまたは複数のサーバに送信し、１つまたは複数の受信側スレッドを使用して、メッセージを、例えば、１つまたは複数のサーバから受信し、クライアントとサーバの間のリースを更新する際には、１つまたは複数のリース更新スレッドを使用し、無効にされたロックの再有効化に関連するメッセージを転送する際には、１つまたは複数のロック再有効化スレッドを使用する。
【００１９】
多くのコンピューティング環境内での処理は、データを一度バッファし、その後、そのデータをディスクなどの記憶装置に書き込む機能によっても容易にすることができる。例えば、コンピューティング環境のエンティティ（例えば、ファイル・システムのクライアント）にとってローカルなバッファ内に配置されたデータは、そのデータを１つまたは複数の記憶装置に対して確定（commit）することができるように、それらの装置に書き出される。このデータ伝送の間、バッファリング・エンティティにとってリモートなエンティティ（例えば、ファイル・システムのサーバ、またはディスク）でのハードウェア故障などの障害は、データが消失する原因となり得る。データ消失の可能性を最小化するため、障害および／またはエラーを管理するためのアクションがとられる。こうした管理に関連するロジックの一実施形態を、図３を参照しながら説明する。
【００２０】
図３には、本発明の一態様である管理機能の概要の一例が示されている。一例では、このロジックは、ファイル・システムのクライアントなど、コンピューティング環境のエンティティによって実行される。例えば、このロジックは、エラー通知（例えば、エラーの検出、エラーの原因となる状況の検出、エラー通知の受信、エラー通知の所有など）またはエンティティの処理に影響を与える他の状況の通知を取得するエンティティによって実行される。
【００２１】
図３を参照すると、エラー通知は、コンピューティング環境のエンティティ（例えば、クライアント）によって取得される（ステップ２００）。一例として、データ消失の潜在的可能性が通知され、これはクリティカル・エラーと見なされる。しかし、必要に応じて、その他のエラーをクリティカル・エラーとして定義することもできる。本明細書では、結果としてエンティティの機能をフリーズさせるエラーをクリティカル・エラーと見なす。さらに、本明細書では、結果として機能をフリーズさせる何らかの状況をエラーと呼ぶ。
【００２２】
一例では、取得されるエラー通知にはダーティー（遅延書き出し）データ（dirtydata）をエンティティのキャッシュからディスクに書き出すことの機能拒否が含まれる。この拒否は、例えば、ディスクが失われた場合や、別の例としては、ダーティー・データをキャッシュからディスクに書き出すために用いられるロックまたは他の機構（mechanism）を、エンティティに対して拒否する場合に提供することができる。この後者の例について、ファイル・システム環境を参照しながら、以下でより詳細に説明する。
【００２３】
一例では、ファイル・システムのクライアントは、そのクライアントにとってリモートなファイル・システムのサーバに、データ・ロックなどのロックを要求する。ロックは、それに関連づけられた特定のバージョン番号をもち、クライアントは、そのデータ・ロックを使用してファイルを更新する。データは一度キャッシュに書き込まれ、次にキャッシュをディスクに書き出さなければならないので、ファイルは書き出し遅延状態（dirty）にある。このとき、クライアントとサーバの間の接続が切断される。さらに、ロックに関連するリースが期限切れになる。したがって、クライアントは、データをキャッシュに書き込む前に、ロックを延長する許可をサーバから取得しなければならない。接続が回復したとき、クライアントは、ハンドシェイク・プロトコルを用いてサーバと通信を行い、クライアント自らを再度サーバに紹介する（introduce）。さらに、クライアントは、データ・ロックを再要求する。サーバがロックに同じバージョンを与えられないなど１つまたは複数の理由で、またはその他の何らかの理由で、サーバがそのデータ・ロックを拒否した場合、クライアントは、ロック再有効化拒否（クライアントがデータをキャッシュからディスクに伝送することを禁止する）を受信する。したがって、キャッシュされたデータは破棄され、これはクリティカル・エラーとなる。クライアントはこのエラーの通知（例えば、消失データの所有の確定、ロック再有効化拒否の受信、および／またはその他の通知の所有）を取得する。
【００２４】
エラー通知の取得に応答して、エンティティの一部の機能がフリーズされる（ステップ２０２）。エンティティがファイル・システムのクライアントである一実施形態では、フリーズされるのは、１つまたは複数のファイル・システム操作（例えば、サーバとの通信またはリモート・ストレージ・システムとの通信を必要とする操作）である。しかし、エンティティの他の機能および／または環境内のその他のエンティティ（例えば、他のクライアント・アプリケーション、サーバ・アプリケーションおよび／またはユーザ・アプリケーション）はフリーズされずに処理を続行する（ステップ２０４）。エンティティ機能のフリーズは、システム管理者またはその他に警報を出し、望ましくない状況が処理できるようになったことを知らせる。
【００２５】
エラーの回復、エラーの迂回、エラーの無視、またはその他の対処技法を含む、状況の処理の後で、または別の所望の時点で、エンティティのフリーズ部分が解凍される（ステップ２０６）。これによって、クライアントまたは他のフリーズされたエンティティは、従来どおり、処理を再開することができる。フリーズ同様解凍も、エンティティのリスタートを必要とせずに実行され、あるいはファイル・システムの場合は、ファイル・システムのアンマウントまたは再マウントを必要とせずに実行される（ステップ２０８）。
【００２６】
エンティティの少なくとも一部の機能のフリーズまたは解凍について、図４〜図６を参照しながらより詳細に説明する。これらの詳細な説明は、ファイル・システムの少なくとも１つのサーバに結合された、ただしサーバから遠隔位置にある少なくとも１つのクライアントを有するファイル・システムに関して行われる。しかし、本発明の１つまたは複数の態様は、他のコンピューティング環境およびそれらの環境の他のエンティティにも同様に適用される。一例として、図４に、クライアントの１つまたは複数のファイル・システム操作のフリーズに関連するロジックの一実施形態を示し、図５に、フリーズに応答して生じるアクションの例を示し、図６に、フリーズされた操作の解凍に関連するロジックの一実施形態を示す。
【００２７】
一例では、ファイル・システムのクライアントの一部の機能のフリーズは、エラー処理ルーチンとの関連において説明される。この例では、様々なタイプのエラーが異なった方法で処理される。あるタイプのエラーをどのように管理するか、したがって、ファイル・システムをどのように管理するかについての決定は、起動時にユーザ（例えば、システム管理者）が行う。例えば、ある特定のエラーについて、ユーザは、ログのみ、ログおよびフリーズ、またはログおよび停止の中からエラー・ルーチンを指定することができる。これらの各ルーチンについて以下で説明する。
【００２８】
図４を参照すると、エラーに応答して、エラー・ハンドラ・ルーチンがクライアントによって起動される。その結果、エラーがクリティカル・エラーであるかどうか判定が行われる（照会３００）。クリティカルでない場合、起動時にユーザが指示したログ・レベルで、エラー・ログが取得される（ステップ３０２）。すなわち、異なるエラー毎に、異なる動作（bebavior）を実施することができる。例えば、エラーがより深刻であるほど、より多くの場所にメッセージを送信することができる。例として、システム管理者および／またはすべてのユーザが、ログに加えて、エラー通知を受信することもできる。
【００２９】
エラーがクリティカル・エラーである場合、そのエラーに対してフリーズが指示されているか、それとも停止が指示されているか判定が行われる（照会３０４）。フリーズまたは停止のどちらも指示されていない場合、クリティカル・エラー用の適切なログ・レベルで、エラー・ログが取得される（ステップ３０６）。しかし、エラーがクリティカル・エラーで、フリーズまたは停止が指示されている場合は、フリーズ標識（freeze indicator）がセットされる（ステップ３０８）。一例では、このフリーズ標識は、図２の参照番号１２０で示すように、クライアント内に配置されるフラグである。具体的な一例では、フリーズ標識は、プラットフォームに依存しない、クライアントのクライアント状態マネージャ（ＣＳＭ；clientstate manager）コンポーネント内に配置される。ＣＳＭは、例えば、サーバとの通信を容易にし、本発明の１つまたは複数の態様のロジックを実行する役割を担う。ＣＳＭは、プラットフォームに依存しない、クライアントのインストール可能ファイル・システム（ＩＦＳ；installablefile system）コンポーネントに結合される。フリーズ標識は、クライアントの様々なスレッドからアクセス可能である。
【００３０】
図４に戻ると、フリーズ標識をセットした後、適切なログ・レベル（例えば、クリティカル・レベル）で、ログ取得（logging）が実行される（ステップ３１０）。その後、停止が指示されているか判定が行われる（照会３１２）。停止が指示されている場合、システム停止が呼び出される（ステップ３１４）。一例として、停止は所定のオペレーティング・システムの機能として提供される。例えば、ＡＩＸであれば、パニック・ルーチンのコールによって停止が呼び出される。停止が指示されていない場合、エラー・ハンドラ・ルーチンの処理は完了する。
【００３１】
上述したように、ある種のエラー処理手順では、フリーズ標識がセットされる。フリーズ標識のセットに応答して、ファイル・システムの少なくとも一部の機能がフリーズされる。一例では、フリーズされるのは、エラーが示されたサーバ通信またはクライアントの他のリモート通信に関連するファイル・システム操作である。他のファイル・システム操作を含むクライアントの他の機能、他のクライアント、サーバ、およびファイル・システムの他の側面はフリーズされない。フリーズは、クライアントのファイル・システムの動作に影響を与え、あるいはこれを変更する。例えば、以下に説明するように、クライアントのファイル・システムの１つまたは複数のスレッドの動作が影響を受ける。
【００３２】
図５を参照すると、１つまたは複数のスレッドがロックされる（ステップ４００）。例えば、受信側スレッド、送信側スレッド、およびロック再有効化スレッドは、フリーズ標識のリセットを待機しながら、例えば、１秒スリープ・ループをループし続けることによってロックされる。すなわち、それらのスレッドは、フリーズ標識のリセットを待機している間、機能を停止させる。フリーズ標識のリセットは周期的にチェックされる。
【００３３】
上述の事柄に加えて、リース更新スレッドは、リース更新メッセージの送信を中止する（ステップ４０２）。この例では、リース更新スレッドは、サーバにリース更新メッセージを送信すること以外の通常の機能は引き続き実行する。したがって、実行しようとする特定の機能がチェックされ、それがリース更新メッセージの送信である場合、その実行が禁止される。
【００３４】
さらに、リース有効性チェックが失敗する（ステップ４０４）。リースが有効でない場合、これは、データ・ロックやセッション・ロックなど、そのリースに関連する様々なロックに影響を与える。したがって、リース有効性チェックが失敗すると、データ・ロック有効性チェックおよび／またはセッション・ロック有効性チェックが失敗する。ファイル・システムは、すべてのロックが無効化されたかのように振舞う。これは、ディスクＩ／Ｏの新たな起動を防止する効果をもつ。さらに、クライアントは、データ・ロックおよび／またはセッション・ロックを回復するよう試みることを中止する。これによって、ロックは期限切れとなり、無効標識が付けられる。これで、フリーズ標識のセットに関連する処理は終了する。
【００３５】
ファイル・システムがフリーズされている間、管理者は、データ消失問題に対処するために利用できる様々なツールを活用することができる。データ消失に対処する仕方は、特定のファイル・システム、特定の管理者および／または特定のクライアントに固有のものであり、本発明の１つまたは複数の態様とは関係がない。しかし、一例では、エラーが処理された後（例えば、回復、無視、迂回など）、フリーズ機能は解凍される。これは、ファイル・システム操作をフリーズされたクライアントによって実行され、ファイル・システムのアンマウントおよび／または再マウントを必要とせずに実行される。
【００３６】
解凍（フリーズ解除）に関連するロジックの一実施形態を、図６を参照しながら説明する。ファイル・システムの解凍には、フリーズ標識のクリア（消去）が含まれる（ステップ５００）。フリーズ標識がクリアまたはリセットされたとき、スレッドは通常処理の再開を許可される。例えば、以前と同じように、送信側スレッド、受信側スレッド、およびロック再有効化スレッドはロック解除され、更新スレッドはリース更新メッセージの送信を許可され、リース有効性チェックは成功するようになる。
【００３７】
少なくとも１つのエラー通知の取得に応答して、エンティティの一部の機能をフリーズさせることのできる機能について、上記で詳細に説明した。一例では、エラー通知を取得するエンティティは、エラー通知に関連するデータがどれであるかよく分っている。エンティティは、さらなるＩ／Ｏアクティビティまたは分散環境に関連するアクティビティを停止させることができ、これによって、有利なことに、消失の可能性のあるデータのうち少なくともいくつかを失わないようにする機会が増える。
【００３８】
有利なことに、この機能は、エンティティのある部分のみの選択的フリーズを可能とし、エンティティの他の部分、他のエンティティ（例えば、クライアントやサーバ）、またはコンピューティング環境の他の態様には、通常の処理を実行し続けることを許可する。
【００３９】
本明細書では、好ましい実施形態を示し、それについて詳細に説明してきたが、本発明の主旨から逸脱することなく、様々な修正、追加、置換などを施し得ること、したがって、それらは添付の特許請求の範囲で定める本発明の範囲に含まれると見なされることが、当業者には明らかであろう。
【００４０】
例えば、上記の一実施形態では、１つのクライアントを１つのサーバに結合するが、他の実施形態では、１つまたは複数のクライアントを１つまたは複数のサーバに結合することができ、またはそれらの組合せとすることもできる。１つまたは複数のクライアントを、１つまたは複数のコンピューティング・ユニット上に置くことができる。同様に、１つまたは複数のサーバを、１つまたは複数のコンピューティング・ユニット上に置くことができる。さらに、１つまたは複数のクライアントおよび１つまたは複数のサーバを、１つのコンピューティング・ユニット上に置くことができる。さらに、別の実施形態では、コンピューティング・ユニット上で動作するユーザ・アプリケーションは存在しなくてもよい。
【００４１】
上記の事柄に加えて、本明細書では、様々なスレッドについて説明したが、本発明の１つまたは複数の態様の主旨から逸脱することなく、より多い、より少ない、または異なるスレッドに影響を及ぼすことができる。さらに、フリーズ標識のセットに応答して、より多い、より少ない、または異なるアクションをとることができる。
【００４２】
さらに、いくつかのコンピューティング環境の例を提供したが、これらは例にすぎない。他の環境を使用することもできる。例えば、本明細書では、分散ファイル・システムに関する例を説明したが、これは一例にすぎない。本発明の１つまたは複数の態様は、他の環境にも適用することができる。
【００４３】
例えば、さらに別の実施形態では、ファイル・システムは、ローカル・ファイル・システムとすることができ、この場合、例えば、ディスク・クラッシュが発生すると、バッファ・データをディスクに書き込むことができなくなる。オペレーティング・システムはもはやディスクにアクセスできず、したがって、オペレーティング・システムのファイル・システム機能はフリーズされる。
【００４４】
さらに他の実施形態では、コンピューティング環境は、ファイル・システムを含む必要はない。
【００４５】
本明細書に示すフローチャートは単なる例にすぎない。これらのフローチャート、またはその中に記載のステップ（または操作）には、本発明の主旨から逸脱しない、多くの変形が存在し得る。例えば、ステップを異なる順番で実行することができ、またはステップを追加、削除、または変更することができる。これらの変形はすべて、特許請求される発明の一部と見なされる。
【００４６】
本発明は、例えば、コンピュータが使用できる媒体（例えば、１つまたは複数のコンピュータ・プログラム記録媒体）を収めた装置に含めることができる。これらの媒体はその中に、例えば、本発明の機能を提供し、その実行を容易にするコンピュータ可読プログラム・コード手段またはロジック（例えば、命令、コード、コマンドなど）を有する。装置は、コンピュータ・システムの一部に含めることもでき、またはコンピュータ・システムとは別にすることもできる。
【００４７】
さらに、本発明の機能を実行するためのマシン実行可能命令から成る少なくとも１つのプログラムを含む、マシンによって可読な少なくとも１つのプログラム記憶装置を提供することができる。
【００４８】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００４９】
（１）コンピューティング環境のエラー処理を容易にする方法であって、
前記コンピューティング環境のエンティティが、前記エンティティから離れた位置にある、前記コンピューティング環境の別のエンティティのイベントに応答するエラーの少なくとも１つの通知を取得するステップと、
前記取得に応答して、前記エンティティの一部の機能を自動的にフリーズするステップとを含む方法。
（２）前記エンティティが、クライアントを備え、前記別のエンティティが、サーバを備える、上記（１）に記載の方法。
（３）前記クライアントが、前記コンピューティング環境のファイル・システムのクライアントを備え、前記サーバが、前記ファイル・システムのサーバを備える、上記（２）に記載の方法。
（４）前記自動的にフリーズするステップが、フリーズ標識をセットするステップを含み、前記フリーズ標識が、前記クライアント内に配置される、上記（３）に記載の方法。
（５）前記自動的にフリーズするステップが、前記フリーズ標識のセットに応答して、前記クライアントの１つまたは複数のスレッドの動作を変更するステップを含む、上記（４）に記載の方法。
（６）前記自動的にフリーズするステップが、前記フリーズ標識のセットに応答して、１つまたは複数の有効性チェックに失敗するステップを含む、上記（４）に記載の方法。
（７）前記エンティティの一部の機能は機能し続ける、上記（１）に記載の方法。
（８）前記コンピューティング環境の１つまたは複数の他のエンティティはフリーズされない、上記（１）に記載の方法。
（９）前記自動的にフリーズするステップが、前記エンティティの１つまたは複数のスレッドの動作を変更するステップを含む、上記（１）に記載の方法。
（１０）前記動作を変更するステップが、前記１つまたは複数のスレッドのうち少なくとも１つのスレッドをロックするステップを含む、上記（９）に記載の方法。
（１１）前記動作を変更するステップが、前記１つまたは複数のスレッドのうち少なくとも１つのスレッドが１つまたは複数のメッセージを送信することを禁止するステップを含む、上記（９）に記載の方法。
（１２）前記自動的にフリーズするステップが、１つまたは複数の有効性チェックに失敗するステップを含む、上記（１）に記載の方法。
（１３）フリーズされた前記一部の機能を解凍するステップをさらに含む、上記（１）に記載の方法。
（１４）前記解凍するステップが、フリーズ標識をリセットするステップを含む、上記（１３）に記載の方法。
（１５）コンピューティング環境の処理を管理する方法であって、
前記コンピューティング環境のエンティティが、前記エンティティの処理が影響を受ける状況を検出するステップと、
前記検出に応答して、前記エンティティの１つまたは複数の分散入出力（Ｉ／Ｏ）操作を自動的にフリーズするステップであって、前記エンティティの１つまたは複数の他の操作は続行を許可されるステップとを含む方法。
（１６）前記エンティティが、前記コンピューティング環境のファイル・システムのクライアントを備える、上記（１５）に記載の方法。
（１７）前記１つまたは複数の分散Ｉ／Ｏ操作が、前記クライアントの１つまたは複数のファイル・システム操作を含む、上記（１５）に記載の方法。
（１８）フリーズされた前記１つまたは複数のファイル・システム操作を解凍するステップをさらに含む、上記（１７）に記載の方法。
（１９）前記解凍が、前記ファイル・システムの再マウントを必要とせずに実行される、上記（１８）に記載の方法。
（２０）前記ファイル・システムの１つまたは複数の他のクライアントのうち少なくとも１つ、または前記ファイル・システムの１つまたは複数のサーバはフリーズされない、上記（１５）に記載の方法。
（２１）前記自動的にフリーズするステップが、前記クライアントの１つまたは複数のスレッドの動作を変更するステップを含む、上記（１５）に記載の方法。
（２２）前記状況が、前記クライアントから離れた位置にある、前記ファイル・システムのサーバのイベントに応答するエラーを含む、上記（１５）に記載の方法。
（２３）コンピューティング環境のエラー処理を容易にするシステムであって、
前記コンピューティング環境のエンティティが、前記エンティティから離れた位置にある、前記コンピューティング環境の別のエンティティのイベントに応答するエラーの少なくとも１つの通知を取得する手段と、
前記取得に応答して、前記エンティティの一部の機能を自動的にフリーズする手段とを含むシステム。
（２４）前記エンティティの一部の機能は機能し続ける、上記（２３）に記載のシステム。
（２５）前記自動的にフリーズする手段が、前記エンティティの１つまたは複数のスレッドの動作を変更する手段を含む、上記（２３）に記載のシステム。
（２６）フリーズされた前記一部の機能を解凍する手段をさらに含む、上記（２３）に記載のシステム。
（２７）コンピューティング環境の処理を管理するシステムであって、
前記コンピューティング環境のエンティティであって、前記エンティティの処理が影響を受ける状況を検出し、前記検出に応答して、前記エンティティの１つまたは複数の分散入出力（Ｉ／Ｏ）操作を自動的にフリーズし、前記エンティティの１つまたは複数の他の操作には続行を許可するエンティティを含むシステム。
（２８）前記エンティティが、前記コンピューティング環境のファイル・システムのクライアントであり、前記状況が、前記クライアントから離れた位置にある、前記ファイル・システムのサーバのイベントに応答するエラーを含む、上記（２７）に記載のシステム。
（２９）コンピューティング環境のエラー処理を容易するコンピュータ可読のプログラム・コード・ロジックを有する少なくとも１つのコンピュータ使用可能な媒体を含む装置であって、前記コンピュータ可読のプログラム・コード・ロジックが、
前記コンピューティング環境のエンティティが、前記エンティティから離れた位置にある、前記コンピューティング環境の別のエンティティのイベントに応答するエラーの少なくとも１つの通知を取得する取得ロジックと、
前記エラーの前記少なくとも１つの通知に応答して、前記エンティティの一部の機能を自動的にフリーズするフリーズ・ロジックとを含む装置。
（３０）前記エンティティの一部の機能は機能し続ける、上記（２９）に記載の装置。
（３１）前記フリーズ・ロジックが、前記エンティティの１つまたは複数のスレッドの動作を変更する動作ロジックを含む、上記（２９）に記載の装置。
（３２）前記コンピュータ可読のプログラム・コード・ロジックが、フリーズされた前記一部の機能を解凍する解凍ロジックをさらに含む、上記（２９）に記載の装置。
（３３）コンピューティング環境の処理を管理するコンピュータ可読のプログラム・コード・ロジックを有する少なくとも１つのコンピュータ使用可能な媒体を含む装置であって、前記コンピュータ可読のプログラム・コード・ロジックが、
前記コンピューティング環境のエンティティが、前記エンティティの処理が影響を受ける状況を検出する検出ロジックと、
前記エンティティの１つまたは複数の分散入出力（Ｉ／Ｏ）操作を自動的にフリーズし、前記エンティティの１つまたは複数の他の操作には続行を許可するフリーズ・ロジックとを含む装置。
（３４）前記エンティティが、前記コンピューティング環境のファイル・システムのクライアントであり、前記状況が、前記クライアントから離れた位置にある、前記ファイル・システムのサーバのイベントに応答するエラーを含む、上記（３３）に記載の装置。
【図面の簡単な説明】
【００５０】
【図１】本発明の１つまたは複数の態様を組み込み使用するコンピューティング環境の一実施形態を示す図である。
【図２】本発明の１つまたは複数の態様を組み込み使用するファイル・システムの一実施形態を示す図である。
【図３】本発明の一態様であるエラー管理機能の概要の一実施形態を示す図である。
【図４】本発明の一態様によるクリティカル・エラー処理に関連するロジックの一実施形態を示す図である。
【図５】本発明の一態様によるフリーズ標識のセットに応答するロジックの一実施形態を示す図である。
【図６】本発明の一態様による解凍に関連するロジックの一実施形態を示す図である。
【符号の説明】
【００５１】
１００  コンピューティング環境
１０２、１０４  コンピューティング・ユニット
１０６  接続
１０８  オペレーティング・システム
１１０  クライアント・アプリケーション
１１２  サーバ・アプリケーション
１１４  ユーザ・アプリケーション
１１６  ストレージ・エリア・ネットワーク
１１８  記憶装置
１２０  フリーズ標識
【図１】
2004326804.tif 000003
【図２】
2004326804.tif 000004
【図３】
2004326804.tif 000005
【図４】
2004326804.tif 000006
【図５】
2004326804.tif 000007
【図６】
2004326804.tif 000008