(57)【要約】【課題】ファイル・サーバ内の逐次化データを再初期設定する装置、システム、および方法を提供すること。【解決手段】この装置には、障害認識モジュール、廃棄モジュール、および逐次化モジュールが含まれる。障害認識モジュールは、ファイル・サーバでのファイル・システム逐次化障害を認識する。逐次化障害の認識時に、廃棄モジュールは、ファイル・サーバ・アドレス空間などの第１メモリ・アドレス空間内に置かれた既存の逐次化データを廃棄する。ある種の実施形態で、ファイル・サーバ・アドレス空間全体を、オペレーティング・システムによって破棄することができる。次に、逐次化モジュールが、既存の接続／位置データから新しい逐次化データを生成する。接続／位置データは、クライアント・アドレス空間など、逐次化再初期設定プロセス中に維持される第２アドレス空間に置かれる。この形で逐次化データを含み、再ビルドすることは、有益に、システム障害を防ぎ、ダウンタイムを減らし、後続の逐次化デッドロックの可能性を減らす。【選択図】図６
2008511884.tif 000002
【特許請求の範囲】
【請求項１】
ファイル・サーバを再初期設定する装置であって、ファイル・サーバ上のファイル・システム逐次化障害を認識するように構成された障害認識モジュールと、前記逐次化障害に応答してファイル・サーバ・アドレス空間内に置かれたオープン接続を記述する既存の逐次化データを廃棄するように構成された廃棄モジュールと、オープン接続の位置を記述する、クライアント・アドレス空間内に置かれた既存の接続／位置データからオープン接続の新しい逐次化データを生成するように構成された逐次化モジュールとを含む装置。
【請求項２】
前記廃棄モジュールが、さらに、前記ファイル・サーバ・アドレス空間を破棄するためにオペレーティング・システム機能を呼び出すように構成される、請求項１に記載の装置。
【請求項３】
前記逐次化モジュールが、さらに、新しいファイル・サーバ・アドレス空間を作成するためにオペレーティング・システム機能を呼び出すように構成される、請求項１または２に記載の装置。
【請求項４】
前記逐次化モジュールが、さらに、前記新しいファイル・サーバ・アドレス空間に前記新しい逐次化データを保管するように構成される、請求項１ないし３のいずれかに記載の装置。
【請求項５】
前記逐次化モジュールが、さらに、複数のアドレス空間を探索し、前記クライアント・アドレス空間内の前記既存の接続／位置情報を見つけるように構成される、請求項１ないし４のいずれかに記載の装置。
【請求項６】
ファイル・サーバを再初期設定する方法であって、ファイル・サーバ上のファイル・システム逐次化障害を認識することと、前記逐次化障害に応答してファイル・サーバ・アドレス空間内に置かれたオープン接続を記述する既存の逐次化データを廃棄することと、オープン接続の位置を記述する、クライアント・アドレス空間内に置かれた既存の接続／位置データからオープン接続を記述する新しい逐次化データを生成することとを含む方法。
【請求項７】
前記ファイル・サーバ・アドレス空間を破棄するためにオペレーティング・システム機能を呼び出すことをさらに含む、請求項６に記載の方法。
【請求項８】
新しいファイル・サーバ・アドレス空間を作成するためにオペレーティング・システム機能を呼び出すことをさらに含む、請求項６または７に記載の方法。
【請求項９】
前記新しいファイル・サーバ・アドレス空間に前記新しい逐次化データを保管することと、前記クライアント・アドレス空間内の前記既存の接続／位置情報を見つけるために複数のアドレス空間を探索することとをさらに含む、請求項６ないし８のいずれかに記載の方法。
【請求項１０】
コンピュータ・システムにロードされ、そこで実行される時に、前記コンピュータ・システムに請求項６ないし９のいずれかに記載の方法の全ステップを実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、ファイル・サーバに関し、具体的には、逐次化障害に応答してファイル・サーバ内の逐次化データを再初期設定することに関する。
【背景技術】
【０００２】  複数のデータ・アクセス要求の逐次化（ｓｅｒｉａｌｉｚａｔｉｏｎ）は、複数プロセッサ・ファイル・システム・サーバの間で共用されるデータ・ストレージ・デバイスについて極端に複雑になる可能性がある。データ・アクセス要求の逐次化は、どのアプリケーションがどのストレージ・デバイスまたはその諸部分に接続されるかと、各アプリケーションについてどの種類のアクセスが提供されるかとの定義を伴う。例えば、一部のアプリケーションは、ある種の書込動作について排他的なアクセス権限を与えられるが、他のアプリケーションは、排他的アクセスを受け取ることができない。また、一部のアプリケーションが、共用データ・ストレージ・デバイス（ｓｈａｒｅｄｄａｔａ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅｓ）に対するある種の読取動作について共用アクセス権限を受け取る場合がある。どのアプリケーションがどの時にどのタイプのアクセスを許可されるかを定義することによって、ファイル・システム・サーバは、そうでなければ発生するはずの多数のデータ動作エラーを防ぐことができる。【０００３】  しかし、逐次化技法は、完全ではなく、逐次化実施態様が障害を発生する場合がある。逐次化障害は、要求されたデータ・ファイルまたはディレクトリへの読取アクセスまたは書込アクセスが、要求するアプリケーションから使用可能にされない時に発生する可能性がある。例えば、逐次化障害は、２つのアプリケーションが、他方のアプリケーションに排他的に割り当てられたデータへのデータ・アクセス権限を要求している時に発生し得る。【０００４】  図１に、逐次化衝突が発生し得るアプリケーション環境１０の一例を示す。具体的に言うと、図示のアプリケーション環境１０には、第１アプリケーション１２と第２アプリケーション１４とが含まれる。第１アプリケーション１２は、第１のデータ・ファイル１８への排他的権限を有する（実線の矢印１６によって示されるように）。同様に、第２アプリケーション１４は、第２のデータ・ファイル２２への排他的権限を有する（実線の矢印２０によって示されるように）。【０００５】  図１には、第１アプリケーション１２が、第２のデータ・ファイル２２へのアクセス権限を要求することも示されている（破線２４によって示されるように）。同様に、第２アプリケーション１４は、第１のデータ・ファイル１６へのアクセス権限を要求することができる（破線２６によって示されるように）。この場合に、逐次化「デッドロック」障害（″ｄｅａｄｌｏｃｋ″ｆａｉｌｕｒｅ）が発生するのは、第１アプリケーション１２および第２アプリケーション１４のどちらもが、要求されたアクセス権限が与えられるまで進行できないが、要求されたデータ・ファイル１８または２２が要求元でない第１アプリケーション１２または第２アプリケーション１４によって既に使用されているので、要求されたアクセス権限を与えることができない時である。このタイプの逐次化障害が発生する時に、第１アプリケーション１２または第２アプリケーション１４が、追加のアクセス権限を要求しながら既存のアクセス権限を保持し続けるので、ファイル・システム・サーバ（図示せず）は、応答しなくなり、これによって使用不能になる可能性がある。【０００６】  内部逐次化障害自体は、データ・ファイル１８および２２に保管されたデータの保全性ならびに実行中の第１アプリケーション１２および第２アプリケーション１４の実行時状態に障害を生じさせないが、そのような逐次化障害は、ファイル・システム・サーバに対する劇的な影響を有する可能性がある。例えば、ファイル・システムからプログラムをロードする能力が基本的なオペレーティング・システムに必要である時など、ファイル・システムが、オペレーティング・システムの中枢である場合に、深刻な逐次化障害が発生する場合がある。さらに、逐次化障害は、オペレーティング・システム障害をもたらす可能性があり、このオペレーティング・システム障害は、対応するファイル・システムに直接には関連しない処理を含む、すべての実行中のアプリケーション処理の障害を引き起こす可能性がある。さらに、逐次化障害は、ビジネス・クリティカル・アプリケーションに影響するファイル・システム・サーバ・ダウンタイムに起因する過度のコストにつながる場合がある。【０００７】  ファイル・システム逐次化障害に関して、従来の焦点は、すべての逐次化問題の基礎になる原因を訂正することにある。しかし、この解決策は、可能な逐次化問題および原因の個数が圧倒的である、現在のマルチタスキング環境、マルチプロセッシング環境、およびクラスタリング環境の複雑さを考慮すれば、実用的には実現不能である。
【発明の開示】
【発明が解決しようとする課題】
【０００８】  前述の議論から、従来のテクノロジの不利益を克服する形でファイル・システム逐次化障害を自動的に処理する装置、システム、および方法の必要が存在することは明白である。有益なことに、そのような装置、システム、および方法は、実行中のアプリケーション（ｉｎ−ｆｌｉｇｈｔ  ａｐｐｌｉｃａｔｉｏｎｓ）がファイル・システムに論理的に接続されたままでありながらファイル・システム逐次化情報を再初期設定する（ｒｅｉｎｉｔｉａｌｉｚｅｄ）ことを可能にするはずである。さらに、そのような装置、システム、および方法は、システム障害および関連するコストを防止することによって、従来のシステムおよび方法より有利になるはずである。
【課題を解決するための手段】
【０００９】  本発明は、第１の態様で、ファイル・サーバを再初期設定する装置であって、ファイル・サーバ上のファイル・システム逐次化障害を認識するように構成された障害認識モジュールと、逐次化障害に応答してファイル・サーバ・アドレス空間内に置かれた既存の逐次化データを廃棄するように構成された廃棄モジュールと、クライアント・アドレス空間内に置かれた既存の接続／位置データから作業コピー逐次化データを生成するように構成された逐次化モジュールとを含む装置を提供する。【００１０】  このファイル・サーバ・アドレス空間は、ファイル・サーバ・アドレス空間であることが好ましい。【００１１】  このクライアント・アドレス空間は、クライアント・アドレス空間であることが好ましい。【００１２】  既存の接続／位置データは、逐次化モジュールによる新しい逐次化データの生成全体を通じて保存されることが好ましい。【００１３】  この装置は、さらに、再初期設定を見越して現行データ・アクセス・プロセスを静止させるように構成された静止モジュールを含むことが好ましい。【００１４】  廃棄モジュールは、さらに、ファイル・サーバ・アドレス空間を破棄するためにオペレーティング・システム機能を呼び出す（ｉｎｖｏｋｅ）ように構成されることが好ましい。【００１５】  逐次化モジュールは、さらに、新しいファイル・サーバ・アドレス空間を作成するためにオペレーティング・システム機能を呼び出すように構成されることが好ましい。【００１６】  逐次化モジュールは、さらに、新しいファイル・サーバ・アドレス空間に新しい逐次化データを保管するように構成されることが好ましい。【００１７】  逐次化モジュールは、さらに、複数のアドレス空間を探索し、クライアント・アドレス空間内の既存の接続／位置情報を見つけるように構成されることが好ましい。【００１８】  接続／位置データは、アプリケーションと共用ストレージ・リソースとの間のオープン接続を定義することが好ましい。【００１９】  接続／位置データは、さらに、アプリケーションが共用ストレージ・リソースに最も最近にアクセスした共用ストレージ・リソース内の現行位置を定義することが好ましい。【００２０】  共用ストレージ・リソースは、ファイル、ディレクトリ、サブディレクトリ、およびディレクトリ・エントリから選択されたリソースを含むことが好ましい。【００２１】  逐次化データは、アプリケーションと共用ストレージ・リソースとの間の接続タイプを定義することが好ましい。【００２２】  接続タイプは、アプリケーションと共用ストレージ・リソースとの間のオープン接続の排他性を定義することが好ましい。【００２３】  ファイル・サーバを再初期設定する装置は、クライアント・アドレス空間内に接続／位置データを保管するように構成されたフロント・エンド・モジュールであって、接続／位置データが、アプリケーションと共用ストレージ・リソースとの間のオープン接続を記述する、フロント・エンド・モジュールと、オープン接続の逐次化データを管理するように構成されたバック・エンド・モジュールであって、逐次化データが、オープン接続の排他性を記述する、バック・エンド・モジュールと、ファイル・システム逐次化障害に応答して接続／位置データから新しい逐次化データを生成するように構成された逐次化モジュールとを含むことができる。【００２４】  フロント・エンド・モジュールは、さらに、クライアント・アドレス空間内で動作するように構成されることが好ましい。【００２５】  バック・エンド・モジュールは、さらに、ファイル・サーバ・アドレス空間内で動作するように構成されることが好ましい。【００２６】  逐次化モジュールは、さらに、新しいファイル・サーバ・アドレス空間内に新しい逐次化データを保管するように構成されることが好ましい。【００２７】  逐次化モジュールは、さらに、新しい逐次化データの生成中に接続／位置情報を変更しないように構成されることが好ましい。【００２８】  この装置は、さらに、逐次化モジュールによる新しい逐次化情報の生成の前に、複数の進行中のデータ・アクセス・プロセスの完了の時間の持続時間を待つように構成された静止モジュールを含むことができる。【００２９】  共用ストレージ・リソースは、ファイル、ディレクトリ、サブディレクトリ、およびディレクトリ・エントリから選択されたリソースを含むことが好ましい。【００３０】  ファイル・サーバを再初期設定するシステムを提供することができ、このシステムは、データを保管するように構成された複数の共用ストレージ・デバイスと、ファイル・サーバ・クラスタ内の複数のファイル・サーバであって、複数のファイル・サーバのそれぞれが共用ストレージ・デバイス上のデータにアクセスするように構成された、複数のファイル・サーバと、複数のファイル・サーバのうちの第１ファイル・サーバでのファイル・システム逐次化障害に応答して第１ファイル・サーバを再初期設定するように構成された逐次化再初期設定装置とを含む。【００３１】  そのようなシステムは、さらに、第１ファイル・サーバの再初期設定を見越して、第１ファイル・サーバが残りの複数のファイル・サーバに通知することを可能にするように構成された通知モジュールを含むことができる。【００３２】  通知モジュールは、さらに、第１ファイル・サーバの再初期設定の最終化の後に、第１ファイル・サーバが残りの複数のファイル・サーバに通知することを可能にするように構成されることが好ましい。【００３３】  ファイル・サーバを再初期設定する動作を実行するためにデジタル処理装置によって実行可能な機械可読命令のプログラムを有形に実施する信号担持媒体であって、命令が、ファイル・サーバ上のファイル・システム逐次化障害を認識する動作と、逐次化障害に応答してファイル・サーバ・アドレス空間内に置かれた既存の逐次化データを廃棄する動作と、クライアント・アドレス空間内に置かれた既存の接続／位置データから新しい逐次化データを生成する動作とを含む、信号担持媒体を提供することができる。【００３４】  命令は、さらに、逐次化モジュールによる新しい逐次化データの生成全体を通じて既存の接続／位置データを保存する動作を含むことが好ましい。【００３５】  命令は、さらに、再初期設定を見越して現行データ・アクセス・プロセスを静止させる動作を含むことが好ましい。【００３６】  命令は、さらに、ファイル・サーバ・アドレス空間を破棄するため���オペレーティング・システム機能を呼び出す動作を含むことが好ましい。【００３７】  命令は、さらに、新しいファイル・サーバ・アドレス空間を作成するためにオペレーティング・システム機能を呼び出す動作を含むことが好ましい。【００３８】  命令は、さらに、新しいファイル・サーバ・アドレス空間に新しい逐次化データを保管する動作を含むことが好ましい。【００３９】  命令は、さらに、複数のアドレス空間を探索する動作と、クライアント・アドレス空間内の既存の接続／位置情報を見つける動作とを含むことが好ましい。【００４０】  ファイル・サーバを再初期設定する動作を実行するためにデジタル処理装置によって実行可能な機械可読命令のプログラムを有形に実施する、この信号担持媒体は、クライアント・アドレス空間内に接続／位置データを保管する動作であって、接続／位置データが、アプリケーションと共用ストレージ・リソースとの間のオープン接続を記述する、動作と、オープン接続の逐次化データを管理する動作であって、逐次化データが、オープン接続の排他性を記述する、動作と、ファイル・システム逐次化障害に応答して接続／位置データから新しい逐次化データを生成する動作とを含む命令を有することができる。【００４１】  命令は、さらに、クライアント・アドレス空間内でフロント・エンド・モジュールを実行する動作を含むことが好ましい。【００４２】  命令は、さらに、ファイル・サーバ・アドレス空間内でバック・エンド・モジュールを実行する動作を含むことが好ましい。【００４３】  命令は、さらに、新しいファイル・サーバ・アドレス空間内に新しい逐次化データを保管する動作を含むことが好ましい。【００４４】  命令は、さらに、新しい逐次化データの生成中に接続／位置情報を変更しない動作を含むことが好ましい。【００４５】  命令は、さらに、逐次化モジュールによる新しい逐次化情報の生成の前に、複数の進行中のデータ・アクセス・プロセスの完了の時間の持続時間を待つ動作を含むことが好ましい。【００４６】  共用ストレージ・リソースは、ファイル、ディレクトリ、サブディレクトリ、およびディレクトリ・エントリから選択されたリソースを含むことが好ましい。【００４７】  第２の態様で、本発明は、ファイル・サーバを再初期設定する方法であって、ファイル・サーバ上のファイル・システム逐次化障害を認識することと、逐次化障害に応答してファイル・サーバ・アドレス空間内に置かれた既存の逐次化データを廃棄することと、クライアント・アドレス空間内に置かれた既存の接続／位置データから新しい逐次化データを生成することとを含む方法を提供する。【００４８】  この方法は、ファイル・サーバでのファイル・システム逐次化障害を認識することと、再初期設定を見越して現行データ・アクセス・プロセスを静止させることと、ファイル・サーバ・アドレス空間を破棄するためにオペレーティング・システム機能を呼び出すことによって、逐次化障害に応答してファイル・サーバ・アドレス空間内に置かれた既存の逐次化データを廃棄することと、新しいファイル・サーバ・アドレス空間を作成するためにオペレーティング・システム機能を呼び出すことと、複数のアドレス空間を探索し、クライアン���・アドレス空間内の既存の接続／位置情報を見つけることと、クライアント・アドレス空間内に置かれた既存の接続／位置データから新しい逐次化データを生成することと、新しい逐次化データを新しいファイル・サーバ・アドレス空間に保管することとを含む方法とすることができる。【００４９】  ファイル・サーバを再初期設定する装置を提供することができ、この装置は、ファイル・サーバでのファイル・システム逐次化障害を認識する手段と、逐次化障害に応答してファイル・サーバ・アドレス空間内に置かれた既存の逐次化データを廃棄する手段と、クライアント・アドレス空間内に置かれた既存の接続／位置データから新しい逐次化データを生成する手段とを含む。【００５０】  第３の態様で、本発明は、コンピュータ・システムにロードされ、そこで実行される時に、第２の態様による方法の全ステップを前記コンピュータ・システムに実行させるコンピュータ・プログラムを提供する。【００５１】  本発明は、当技術分野の現在の状態に答えて、具体的には、現在使用可能なファイル・システム逐次化システムによってまだ十分に解決されてはいない当技術分野の問題および必要に答えて開発された。したがって、本発明は、当技術分野における上で述べた短所の多くまたはすべてを克服する、ファイル・サーバを再初期設定する装置、システム、および方法を提供するために開発された。【００５２】  ファイル・サーバを再初期設定する装置は、ファイル・システム・サーバの逐次化データを再初期設定するのに必要なステップを機能的に実行するように構成された複数のモジュールを含む論理ユニットを与えられる。説明される実施形態のこれらのモジュールには、フロント・エンド・モジュールとバック・エンド・モジュールとが含まれる。一実施形態で、フロント・エンド・モジュールは、クライアント・アドレス空間に常駐し、バック・エンド・モジュールは、ファイル・サーバ・アドレス空間に常駐する。【００５３】  ある種の実施形態で、フロント・エンド・モジュールには、接続モジュールおよび延期装置を含めることができる。接続モジュールは、アプリケーションに関連するオープン・ファイル接続または他のリソース接続を記述する接続／位置情報（接続／位置データとも称する）を管理する。延期装置は、一実施形態で、ファイル・サーバ逐次化の再初期設定の前およびその間に、データ・アクセス要求を延期する。【００５４】  ある種の実施形態で、バック・エンド・モジュールには、逐次化モジュール、静止モジュール、廃棄モジュール、および障害認識モジュールを含めることができる。逐次化モジュールは、クライアント・アドレス空間に対応する、所与のアプリケーションの逐次化データを管理する。逐次化モジュールは、再初期設定動作の一部として、既存の接続／位置データから新しい逐次化データも生成する。【００５５】  障害認識モジュールは、逐次化障害を認識する。廃棄モジュールは、既存の逐次化データを廃棄する。例えば、廃棄モジュールは、既存の逐次化データが置かれているアドレス空間をオペレーティング・システムが破棄することを要求することができる。一実施形態で、既存の逐次化データは、ファイル・サーバ・アドレス空間に置かれ��。もう１つの実施形態では、バック・エンド・モジュール全体を、オペレーティング・システムによって破棄されるファイル・サーバ・アドレス空間に置くこともできる。延期モジュールは、既存のファイル・サーバ・アドレス空間が廃棄された後の新しいファイル・サーバ・アドレス空間の作成を容易にすることができる。静止モジュールは、再初期設定プロセスの前およびその間に、ファイル・サーバを静止させる。一実施形態で、静止期間は、上で説明した延期装置を用いて調整される。【００５６】  バック・エンド・モジュールには、完了装置およびクラスタ装置も含めることができる。完了装置は、アプリケーションに関連するタスクの進行を追跡する。一実施形態では、完了装置を静止モジュールと共に使用して、静止期間中に接続／位置データを安定化することができる。接続／位置データは、クライアント・アドレス空間に常駐することができ、このクライアント・アドレス空間は、ファイル・システム逐次化再初期設定中に、保存され、廃棄されない。クラスタ装置は、あるファイル・サーバ上の逐次化データが再初期設定される時に、必要な権限およびクラスタ内の複数のファイル・サーバの間での折衝通信を管理する。【００５７】  本発明のシステムは、ファイル・システム・サーバの逐次化データを再初期設定するためにも提示される。このシステムは、１つまたは複数の共用データ・ストレージ・デバイスへの共用アクセスを有する複数のファイル・サーバを含む処理クラスタ内で実施することができる。具体的に言うと、このシステムの一実施形態は、複数のファイル・サーバと、共用ストレージ・デバイスと、逐次化再初期設定装置とを含む。このシステムは、複数のファイル・サーバの間でのグローバル逐次化を容易にする結合ファシリティも含むことができる。【００５８】  このシステムは、さらに、通知モジュールを含む。一実施形態で、通知モジュールは、ローカル・ファイル・サーバが再初期設定されると期待される時に、処理クラスタ内の１つまたは複数のリモート・ファイル・サーバに通知するように構成される。同様に、通知モジュールは、ローカル・ファイル・サーバが再初期設定された後に、リモート・ファイル・サーバに通知する。【００５９】  本発明の方法は、ファイル・サーバの再初期設定についても提示される。開示される実施形態の方法は、実質的に、説明される装置およびシステムの動作に関して上で提示した機能を実行するのに必要なステップを含む。一実施形態で、この方法は、ファイル・サーバでのファイル・システム逐次化障害を認識することと、既存の逐次化データを廃棄することと、既存の接続／位置データから新しい逐次化データを生成することとを含む。上で述べたように、既存の接続／位置データは、例えば、再初期設定プロセス全体を通じてクライアント・アドレス空間内で安定化され、維持される。【００６０】  この方法は、ファイル・サーバを静止させることと、ファイル・サーバ・アドレス空間を破棄するためにオペレーティング・システム機能を呼び出すことと、新しいファイル・サーバ・アドレス空間を作成するためにオペレーティング・システム機能を呼び出すこととも含むことができる。さらに、この方法は、既存の接���／位置データをメモリから探索することと、クライアント・アドレス空間内に置かれた既存の接続／位置データから新しい逐次化データを生成することと、新しい逐次化データを新しいファイル・サーバ・アドレス空間に保管することとも含むことができる。【００６１】  信号担持媒体も提示される。この信号担持媒体は、本発明の方法、装置、およびシステムに関して上で説明した機能の一部またはすべてを実行するソフトウェア命令を保管するように構成される。【００６２】  本明細書全体を通じて、特徴、利益、または類似する言葉への言及は、本発明を用いて実現できる特徴および利益のすべてが本発明の単一の実施形態に含まれなければならないこと、またはこれに含まれることを暗示しない。そうではなく、特徴および利益に言及する言葉は、ある実施形態に関連して説明される特定の特徴、利益、または特性が、本発明の少なくとも１つの実施形態に含まれることを意味すると理解される。したがって、特徴および利益ならびに類似する言葉の議論は、本明細書全体を通じて、同一の実施形態を指す場合があるが、必ずしもそうであるとは限らない。【００６３】  さらに、本発明の説明される特徴、利益、および特性は、１つまたは複数の実施形態で、任意の適当な形で組み合わせることができる。当業者は、特定の実施形態の特定の特徴および利益のうちの１つまたは複数なしで本発明を実践できることを認めるであろう。他の場合に、追加の特徴および利益を、本発明のすべての実施形態には存在しない場合がある、ある種の実施形態で認めることができる。【００６４】  本発明のこれらの特徴および利益は、次の説明および添付の特許請求の範囲からより十分に明白になり、あるいは、後で示す本発明の実践によって習得することができる。【００６５】  本発明の利益をたやすく理解するために、上で短く説明した本発明のより具体的な説明を、添付図面に示された特定の実施形態を参照することによって行う。これらの図面が、本発明の通常の実施形態を示すのみであり、したがって、本発明の範囲を限定するものとは考えられないことを理解して、本発明を、添付図面の使用を介してさらに具体的かつ詳細に記述し、説明する。
【発明を実施するための最良の形態】
【００６６】  本明細書で説明する機能ユニットの多くは、その実施態様依存性をより具体的に強調するために、モジュールとして符号を付けられている。例えば、モジュールは、カスタムＶＬＩＳ回路またはゲート・アレイ、論理チップなどの既製半導体、トランジスタ、あるいは他のディスクリート構成要素を含むハードウェア回路として実施することができる。モジュールは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイス、または類似物などのプログラマブル・ハードウェア・デバイスで実施することもできる。【００６７】  モジュールは、さまざまなタイプのプロセッサによる実行用のソフトウェアで実施することもできる。例えば、実行可能コード（ｅｘｅｃｕｔａｂｌｅ  ｃｏｄｅ）の識別されるモジュールに、例えばオブジェクト、プロシージャ、または関数として編成することができる、コンピュータ命令の１つまたは複数の物理ブロックまたは論理ブロックを含めることができる。それでも、識別されるモジュールの実行可能ファイルは、物理的に一緒に配置される必要があるのではなく、論理的に一緒につながれた時にモジュールを含み、そのモジュールの述べられた目的を達成する、異なる位置に保管された異なる命令を含むことができる。【００６８】  実際に、実行可能コードのモジュールは、単一の命令または複数の命令とすることができ、複数の異なるコード・セグメントにまたがって、異なるプログラムの間で、および複数のメモリ・デバイスにまたがって分散させることすらできる。同様に、動作データは、本明細書ではモジュール内で識別され、図示される場合があり、任意の適当な形で実施し、任意の適当なタイプのデータ構造内に編成することができる。動作データは、単一のデータ・セットとして集めることができ、あるいは、異なるストレージ・デバイスにまたがることを含めて異なる位置にまたがって分散させることができ、少なくとも部分的に、単にシステムまたはネットワーク上の電子信号として存在することができる。【００６９】  本明細書全体を通じて、「一実施形態」、「実施形態」、または類似する言葉への言及は、その実施形態に関連して説明される特定の特徴、構造、または特性が、本発明の少なくとも１つの実施形態に含まれることを意味する。したがって、句「一実施形態で」、「実施形態で」、または類似する言葉の出現は、本明細書全体を通じて、同一の実施形態を指す場合があるが、必ずしもそうであるとは限らない。【００７０】  さらに、本発明の説明される特徴、構造、または特性は、１つまたは複数の実施形態で任意の適当な形で組み合わせることができる。次の説明では、本発明の完全な理解を提供するために、プログラミング、ソフトウェア・モジュール、ユーザ選択、ネットワーク・トランザクション、データベース・クエリ、データベース構造、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップなど、多数の具体的な詳細を示す。しかし、当業者は、この具体的な詳細のうちの１つまたは複数なしで、または他の方法、構成要素、材料などを用いて本発明を実践できることを認めるであろう。他の場合には、本発明の諸態様を不明瞭にすることを避けるために、周知の構造、材料、または動作は、詳細には図示せず、説明しない。【００７１】  図２に、本発明のある種の実施形態を使用できる処理クラスタ１００の一実施形態を示す。図示の処理クラスタ１００には、複数のファイル・サーバ１０２と、１つまたは複数の共用ストレージ・デバイス１０４と、結合ファシリティ１０６とが含まれる。各ファイル・サーバ１０２は、処理クラスタ１００上のリソースを管理するように構成される。例えば、複数のファイル・サーバ１０２は、処理クラスタ１００上で実行されるアプリケーションまたは他のソフトウェア・プログラムのそれぞれに関する処理リソース、メモリ・リソース、およびデータ・ストレージ・リソースの割振りを管理する。本明細書で使用される場合に、「アプリケーション」への言及には、そうでないと示されない限り、アプリケーション・ソフトウェアならびにオペレーティング・システムなどのシステム・ソフトウェアを含めることができる。【００７２】  共用ストレージ・デバイス１０４には、複数のファイル・サーバ１０２からの命令に従ってデータを保管するように構成された電子ストレージ・デバイスが含まれる。一実施形態では、共用ストレージ・デバイス１０４に、複数のハード・ディスク・ドライブが含まれる。代替案では、共用ストレージ・デバイス１０４に、１つまたは複数の光学ドライブ、テープ・ドライブ、または他のデータ・ストレージ・ドライブ、あるいはこれらの組合せを含めることができる。共用ストレージ・デバイス１０４に保管されたデータは、ファイル・サーバ１０２によって読み取るか、他の形でアクセスすることができる。一実施形態で、共用ストレージ・デバイス１０４上のデータは、ディレクトリ、サブディレクトリ、ファイル、および他のディレクトリ・エントリを含むファイル・システム内に保管することができる。ディレクトリ、サブディレクトリ、ファイル、他のディレクトリ・エントリ、および類似するデータ構造のそれぞれは、処理クラスタ１００内の共用ストレージ・リソースである。【００７３】  ファイル・サーバ１０２のうちの１つのアプリケーションが、共用ストレージ・デバイス１０４のうちの１つのデータにアクセスするたびに、ファイル・サーバ１０２は、そのデータ・アクセスを、同一のファイル・サーバ１０２上および処理クラスタ１００内の他のファイル・サーバ１０２上で稼動する他のクライアント・アプリケーションと調整する。この調整は、ファイル・サーバ１０２が共用ストレージ・デバイス１０４上のデータへの逐次（ｓｅｒｉａｌ）アクセスまたは連続的（ｃｏｎｓｅｃｕｔｉｖｅ）アクセスを可能にするので、逐次化と称する。逐次化は、各アプリケーションが、データの特定のセットへの共用アクセスまたは排他的アクセスのいずれかを有することを可能にし、その結果、他のアプリケーションが、データのターゲット・セットに干渉せず、他の形で妨害しないようになる。【００７４】  逐次化は、処理クラスタ１００内および共用ストレージ・デバイス１０４内の粒度のさまざまなレベルで実施することができる。例えば、逐次化を、ディレクトリ・レベルまたはサブディレクトリ・レベルで行うことができる。さらに、逐次化���、ファイル・レベル、レコード・レベル、またはパケット・レベルで行うことができる。逐次化粒度は、処理クラスタ１００と、ファイル・サーバ１０２と、共用ストレージ・デバイス１０４と、処理クラスタ１００内で使用される他のハードウェアとのタイプに依存する。粒度は、アプリケーションまたはオペレーティング・システムによって要求されるデータ・アクセス動作のタイプにも依存し得る。【００７５】  結合ファシリティ１０６は、一実施形態で、処理クラスタ１００内のすべてのファイル・サーバ１０２の間で逐次化を容易にするために設けられる。具体的に言うと、結合ファシリティ１０６は、逐次化情報を保管し、多数のファイル・サーバ１０２の間でのメッセージング動作を援助する。しかし、処理クラスタ１００の代替実施形態は、結合ファシリティ１０６の援助なしでグローバル逐次化を実行することができる。【００７６】  図３に、逐次化プログラムおよび逐次化データならびに関連情報を保管するのに使用できるメモリ２００の一実施形態を示す。図示のメモリ２００は、複数のアドレス空間２０２に分割される。各アドレス空間２０２は、所与のアプリケーションに割り振られた正しいメモリ・アドレスの組を含み、そのアプリケーションに割り振られた、物理的または仮想のいずれかのメモリ２００の量を表す。図示のメモリ２００には、具体的には、クライアント・アドレス空間２０２ａ、ファイル・サーバ・アドレス空間２０２ｂ、および追加のアドレス空間２０２ｎが含まれる。メモリ２００には、一般アドレス可能メモリ（ｃｏｍｍｏｎｌｙ  ａｄｄｒｅｓｓａｂｌｅ  ｍｅｍｏｒｙ）２０４も含まれる。【００７７】  クライアント・アドレス空間２０２ａは、所与のファイル・サーバ１０２とインターフェースするアプリケーションごとに作成することができる。例えば、メモリ２００に、ファイル・サーバ１０２とインターフェースする４つのクライアントのそれぞれについて１つの、４つのクライアント・アドレス空間２０２ａを含めることができる。クライアント・アドレス空間２０２ａは、アプリケーション・プログラムと直接にインターフェースする責任を負うので、「フロント・エンド」と呼ばれる場合もある。一般に、クライアント・アドレス空間２０２ａは、アプリケーション・ソフトウェアまたはシステム・ソフトウェアなど、要求元のソフトウェア・プログラムに関するデータ・アクセス動作を容易にする。【００７８】  図示のクライアント・アドレス空間２０２ａは、全般的にはフロント・エンド・データ２１０を含み、具体的には接続／位置（ｃｏｎｎｅｃｔｉｏｎ／ｐｏｓｉｔｉｏｎ）データ２１２を含む。各クライアント・アドレス空間２０２ａは、関連するクライアントに関係する、接続／位置データ２１２を含む対応するフロント・エンド・データ２１０を含むことができる。接続／位置データは、対応するアプリケーションによってアクセスされる、共用ストレージ・デバイス１０４上のデータを記述する。接続／位置データ２１２の例は、図４を参照して詳細に説明する。【００７９】  この説明全体を通じて、単数形での「ａ」または「ｔｈｅ」クライアント・アドレス空間２０２ａへの言及は、１つまたは複数のクライアント・アドレ��空間２０２ａへの言及と理解され、各クライアント・アドレス空間２０２ａは、独立のクライアントに対応する。同様に、フロント・エンド・データ２１０または接続／位置データ２１２あるいはその両方への言及は、所与のファイル・サーバ１０２とインターフェースする１つまたは複数のクライアントに関するそのようなデータに言及すると理解される。【００８０】  ファイル・サーバ・アドレス空間２０２ｂは、一実施形態で、ファイル・サーバ１０２内の逐次化と、共用ストレージ・デバイス１０４へのデータ・アクセスとの責任を負う。ファイル・サーバ・アドレス空間２０２ｂは、ファイル・サーバ１０２と共用ストレージ・デバイス１０４との間のインターフェースを管理するので、「バック・エンド」と呼ばれる場合もある。具体的に言うと、ファイル・サーバ・アドレス空間２０２ｂは、関連するクライアント・アドレス空間２０２ａに対応するアプリケーションのデータ・アクセス要求を逐次化する。これらのデータ・アクセス要求は、同一のファイル・サーバ１０２および処理クラスタ１００内の他のファイル・サーバ１０２によってサービスされる他のアプリケーションからの他のデータ・アクセス要求と共に逐次化される。【００８１】  図示のファイル・サーバ・アドレス空間２０２ｂには、全般的にはバック・エンド・データ２２０が含まれ、具体的には逐次化データ２２２が含まれる。もう１つの実施形態では、バック・エンド・データ２２０に、完了権限（ｃｏｍｐｌｅｔｉｏｎ  ｒｉｇｈｔｓ）２２４も含めることができ、この完了権限２２４は、データ・アクセス要求の処理情況、またはクライアント・アドレス空間２０２ａに保管された接続／位置データ２１２の安定性、あるいはその両方を示すことができる。【００８２】  追加のアドレス空間２０２ｎは、クライアント・アドレス空間２０２ａおよびファイル・サーバ・アドレス空間２０２ｂに保管されるものに似たプログラムおよびデータに使用することができる。追加のアドレス空間２０２ｎには、当技術分野で現在既知のように、マスタ・アドレス空間などを含めることもできる。【００８３】  一般アドレス可能メモリ２０４は、メモリ２００のうちで、１つまたは複数のアドレス空間２０２によって一般にアクセス可能なプログラムおよびデータを保管するのに使用できる部分である。例えば、一般アドレス可能メモリ２０４は、ファイル名などのデータ、または、クライアント・アドレス空間２０２ａ内の接続／位置データ２１２とファイル・サーバ・アドレス空間２０２ｂ内の逐次化データ２２２の両方によって一般に参照されるメタデータを保管するのに使用することができる。【００８４】  図４に、図３に関して説明した接続／位置データ２１２に実質的に似た接続／位置データ３００の一実施形態を示す。接続／位置データ３００には、特定のアプリケーションに対応するデータ・アクセス要求に関連する接続情報および位置情報を記述するために識別子または他のデータを保管するようにそれぞれが構成された複数のフィールドが含まれる。接続／位置データ３００を、本明細書では、接続／位置情報または接続／位置レコードと称する場合もある。【００８５】  図示の接続／位置データ３００には、アプリケーション識別子フィールド３０２、ディレクトリ識別子フィールド３０４、ファイル識別子フィールド３０６、および位置識別子フィールド３０８が含まれる。もう１つの実施形態で、接続／位置データ３００に、より小数またはより多数のデータ・フィールドもしくはメタデータ・フィールドまたはその両方を含めることができる。一実施形態で、アプリケーション識別子フィールド３０２には、クライアント・アドレス空間２０２ａがそれのために存在するアプリケーションを識別するアプリケーション識別子が保管される。【００８６】  ディレクトリ識別子フィールド３０４には、アプリケーション識別子によって識別されるアプリケーションに関連する動作に使用されつつある共用ストレージ・デバイス１０４上のディレクトリを識別するディレクトリ識別子が保管される。同様に、ファイル識別子フィールド３０６には、同一のアプリケーションに関連するデータ・アクセス動作に使用されつつあるファイルを識別するファイル識別子が保管される。ある種の実施形態で、ファイル識別子は、ファイルがディレクトリのメンバであるという点でディレクトリ識別子に関連することができる。この関係を考慮すれば、ファイル識別子をメンバ識別子と呼ぶこともできる。ディレクトリ識別子およびファイル識別子を、一般に、リソース識別子と称する場合がある。本発明の代替実施形態では、他のリソース識別子フィールドおよびリソース識別子が、接続／位置データ３００内に存在することができる。【００８７】  位置識別子フィールド３０８には、一実施形態で、ファイルまたはストレージ・リソースが現在または最も最近にアクセスされた位置を識別する位置識別子が保管される。一実施形態では、位置識別子に、アクセスされているファイルの先頭からのバイト数によって現行読取位置または現行書込位置を示すバイト・オフセットを含めることができる。【００８８】  図５に、上で図３に関して説明した逐次化データ２２２に実質的に似た逐次化データ３２０の一実施形態を示す。逐次化データ３２０には、特定のタスクに対応するデータ・アクセス要求に関連する逐次化情報を記述するために識別子または他のデータを保管するようにそれぞれが構成された複数のフィールドが含まれる。タスクは、特定のアプリケーションに関連する１つのデータ・アクセス動作である。アプリケーションは、１つまたは複数のタスクを生成することができる。逐次化データ３２０を、本明細書では逐次化情報または逐次化レコードと呼ぶ場合もある。【００８９】  図示の逐次化データ３２０には、タスク識別子フィールド３２２、リソース識別子フィールド３２４、および排他性識別子フィールド３２６が含まれる。もう１つの実施形態で、逐次化データ３２０に、より小数またはより多数のデータ・フィールドもしくはメタデータ・フィールドまたはその両方を含めることができる。一実施形態で、タスク識別子フィールド３２２には、ファイル・サーバ・アドレス空間２０２ｂ内で実行されるタスクを識別するタスク識別子が保管される。【００９０】  一実施形態で、リソース識別子フィールド３２４には、タスク識別子によって識別されるタスクに関連する入力リソースまたは出力リソースのいずれかを識別��るリソース識別子が保管される。一実施形態で、リソース識別子は、そこからデータをタスク動作に入力できる、共用ストレージ・デバイス１０４などの入力リソースを識別することができる。例えば、タスク動作は、共用ストレージ・デバイス１０４からデータを読み取ることができる。もう１つの実施形態では、リソース識別子は、タスク動作に従ってそこにデータを送ることができる、バッファなどの出力リソースを識別することができる。【００９１】  排他性識別子フィールド３２６には、識別されたタスクについて識別子リソースに提供されるリソース排他性のタイプを識別する排他性識別子が保管される。例えば、タスクは、共用ストレージ・デバイス１０４から読み取られるターゲット・データ・セットへの共用読取アクセスまたは排他的読取アクセスのいずれかを有することができる。すべてではないが多くの場合に、排他性識別子は、データ読取（入力）動作について共用アクセスを提供する。もう１つの例で、タスクは、そこにデータを書き込めるターゲット・バッファへの排他的書込アクセスを有することができる。すべてではないが多くの場合に、排他性識別子は、データ書込（出力）動作について排他的アクセスを提供する。【００９２】  図６に、本発明のさまざまな実施形態と共に使用できる逐次化再初期設定装置４００の一実施形態を示す。図示の逐次化再初期設定装置４００には、フロント・エンド・モジュール４０２とバック・エンド・モジュール４０４とが含まれる。一実施形態で、フロント・エンド・モジュール４０２およびバック・エンド・モジュール４０４は、それぞれクライアント・アドレス空間２０２ａおよびファイル・サーバ・アドレス空間２０２ｂに常駐するソフトウェア・プログラムである。【００９３】  逐次化再初期設定装置４００は、逐次化エラーまたは逐次化障害に応答してファイル・サーバ１０２の逐次化データ２２２を再初期設定するように構成される。上で説明したように、逐次化障害は、１つまたは複数のアプリケーションが、動作の完了に必要な保管されたデータに正しくアクセスできない場合に発生し得る。例えば、図１を参照すると、ファイル・サーバ１０２は、第２アプリケーション１４がデータ・ファイル１８へのアクセス権限を有することを許可する前に、同一のデータ・ファイル１８への排他的アクセス権限を有する第１アプリケーション１２が動作を終えるのを待っている場合がある。【００９４】  １つのファイル・サーバ１０２内または処理クラスタ１００内の複数のファイル・サーバ１０２の間の逐次化データ２２２に障害が発生した時に、そのファイル・サーバ１０２または処理クラスタ１００が使用不能になる場合がある。例えば、ファイル・サーバ１０２は、２つのアプリケーションすなわち第１アプリケーション１２および第２アプリケーション１４が、互いのために排他的に予約されているデータへのアクセスを試みる時に、応答しなくなるか「デッドロックされる」可能性がある。ファイル・サーバ１０２の逐次化データ２２２を再初期設定することによって、逐次化再初期設定装置４００は、既存の逐次化データ２２２を廃棄し、接続／位置データ２１２から新しい逐次化情報を再構成し、これによってすべての逐次化障害を訂正する。【００９５】  図６を参照すると、フロント・エンド・モジュール４０２には、一実施形態で、接続モジュール４１０および延期装置４１２が含まれる。接続モジュール４１０は、あるアプリケーションに関連する各タスクの接続／位置データ２１２を監視し、記録するように構成される。延期装置４１２は、一実施形態で、ファイル・サーバ１０２の逐次化データ２２２が再初期設定されつつある間に、データ・アクセス要求を延期するように構成される。一実施形態で、延期装置４１２は、逐次化再初期設定の前の静止期間中ならびに逐次化再初期設定中にデータ・アクセス要求を延期する（ｓｕｓｐｅｎｄ）。【００９６】  バック・エンド・モジュール４０４には、図示のように、逐次化モジュール４２０、静止（ｑｕｉｅｓｃｅ）モジュール４２２、廃棄（ｄｉｓｃａｒｄ）モジュール４２４、障害認識モジュール４２６、完了装置４２８、およびクラスタ装置４３０が含まれる。逐次化モジュール４２０は、一実施形態で、ファイル・サーバ１０２の逐次化データ２２２を管理するように構成される。さらに、逐次化モジュール４２０は、ファイル・サーバ１０２の逐次化再初期設定と共に、接続／位置データ２１２から逐次化データ２２２を再ビルドする（ｒｅｂｕｉｌｄ）ことができる。【００９７】  静止モジュール４２２は、一実施形態で、ファイル・サーバ１０２の逐次化データ２２２の再初期設定の前の静止期間を定義し、実施するように構成される。ある種の実施形態で、静止期間を２〜３秒とすることができる。代替案では、静止期間を、２〜３秒より長くまたはこれより短くすることができる。静止期間中に、バック・エンド・モジュール４０４は、フロント・エンド・モジュール４０２からの新しいデータ・アクセス要求を否認することができる。さらに、静止期間を使用して、進行中のタスクが逐次化再初期設定の前に完了できるようにすることができる。さらに、クライアント・アドレス空間２０２ａに保管された接続／位置データ２１２の保全性を維持するために、静止期間中に進行中のタスクを延期するか、他の形であとまわしにすることができる。【００９８】  廃棄モジュール４２４は、一実施形態で、ファイル・サーバ１０２の逐次化再初期設定と共に、既存の逐次化データ２２２を廃棄するように構成される。ある種の実施形態で、例えば、廃棄モジュール４２４は、オペレーティング・システムがファイル・サーバ・アドレス空間２０２ｂまたはバック・エンドに保管された情報、プログラム、およびデータのすべてを単純に破棄することを要求することができる。言い換えると、オペレーティング・システムを呼び出して、既存の逐次化データ２２２および完了権限２２４を含むバック・エンド・データ２２０を削除することができる。さらに、オペレーティング・システムは、逐次化モジュール４２０、静止モジュール４２２、廃棄モジュール４２４、障害認識モジュール４２６、完了装置４２８、およびクラスタ装置４３０を含むバック・エンド・モジュール４０４を完全に廃棄することができる。これらのバック・エンド・モジュール、バック・エンド装置、およびバック・エンド・データのそれぞれは、逐次化再初期設定中に再ビルドすることができ���。【００９９】  障害認識モジュール４２６は、一実施形態で、ファイル・サーバ１０２内の逐次化障害を認識するように構成される。もう１つの実施形態で、障害認識モジュール４２６は、例えば結合ファシリティ１０６と共に、グローバル逐次化障害を認識することができる。代替実施形態では、人間のオペレータが、ファイル・サーバ１０２が応答しない情況を認識し、再初期設定プロセスを開始するコマンドをシステム・コンソール・キーボード（図示せず）で明示的に発光することができる。この場合に、オペレータは、そのような判定を行うのを助ける診断エイドを使用することができる。【０１００】  完了装置４２８は、一実施形態で、タスクの完了進行を追跡するように構成される。一実施形態で、完了装置４２８は、バック・エンド・データ２２０内の完了権限２２４を作成し、使用して、タスクの進行を追跡することができる。クラスタ装置４３０は、一実施形態で、複数のファイル・サーバ１０２のうちの１つの逐次化再初期設定中に処理クラスタ１００の通信および動作を管理するように構成される。【０１０１】  次の概略流れ図は、全般的に、論理流れ図として示される。したがって、示される順序および符号を付けられたステップは、本発明の一実施形態を示す。機能、論理、または効果において、示される方法の１つまたは複数のステップあるいはその一部と同等である他のステップおよび方法を考えることができる。さらに、使用されるフォーマットおよび記号体系は、この方法の論理ステップを説明するために提供され、この方法の範囲を限定しないと理解される。さまざまな矢印タイプおよび線タイプが、流れ図で使用される場合があるが、これらは、対応する方法の範囲を限定しないと理解される。実際に、一部の矢印または他のコネクタは、この方法の論理フローだけを示すのに使用される場合がある。例えば、矢印は、示される方法の列挙されたステップの間の指定されない持続時間の待機期間または監視期間を示す場合がある。さらに、特定の方法が行われる順序は、示される対応するステップの順序に厳密に従っても従わなくてもよい。【０１０２】  図７に、上で説明した逐次化再初期設定装置４００と共に実行できる再初期設定方法５００の一実施形態を示す。図示の再初期設定方法５００は、障害認識モジュール４２６が、ファイル・サーバ１０２内の逐次化障害を認識する５０２時に開始される。本明細書では詳細には説明しないが、障害認識モジュール４２６は、いくつかの実施形態で、異なるタイプの逐次化障害の間で区別することができる。検出５０２された逐次化障害のタイプに応じて、逐次化再初期設定装置４００は、逐次化再初期設定を開始しないと判定することができる。しかし、説明する実施形態では、逐次化再初期設定装置４００は、逐次化再初期設定を開始する。【０１０３】  逐次化障害を認識５０２した後に、ローカルの逐次化再初期設定装置４００は、ローカルのファイル・サーバ１０２が逐次化障害を訂正するために再初期設定されることを、処理クラスタ１００内のリモートのファイル・サーバ１０２のそれぞれに通知する５０４。一実施形態で、バック・エンド・モジュール４０４は、予想される逐次化再初期設定についてリモートのファイル・サーバ１０２に通知５０４するように構成された通知モジュール（図示せず）を含むことができる。もう１つの実施形態で、通知モジュールを、障害認識モジュール４２６内、クラスタ装置４３０内、または逐次化再初期設定装置４００内の別のモジュールもしくは装置内に含めることができる。ある種の実施形態で、通知モジュールは、リモートのファイル・サーバ１０２に正しく通知５０４するために、結合ファシリティ１０６と通信することができる。【０１０４】  すべてのリモートのファイル・サーバ１０２に通知５０４したならば、静止モジュール４２２が、後続の再初期設定動作の前の静止期間を開始する５０６。上で図６に関して説明したように、新しいタスクまたは進行中のタスクあるいはその両方を、静止期間中に否認しまたは延期することができる。静止期間の１つの利益は、接続／位置データ２１２を再初期設定の前に安定化することが可能になることである。そうでなければ、接続／位置データ２１２が、逐次化再初期設定が行われる時に安定していない場合に、新しい逐次化データ２２２が不正になる場合がある。静止期間中に完了されないまたは安定化されないタスクを、ある種の実施形態で、終了することができる。【０１０５】  接続／位置データ２１２が安定し、静止期間が終わったならば、廃棄モジュール４２４は、既存の逐次化データ２２２を廃棄する５０８。一実施形態で、廃棄モジュール４２４は、既存の逐次化データ２２２だけを廃棄５０８し、それ以外は廃棄しないものとすることができる。もう１つの実施形態で、廃棄モジュール４２４は、完了権限２２４、バック・エンド・モジュール４０４のすべてまたは一部、ならびに逐次化データ２２２を廃棄することができる。上で説明したように、廃棄モジュール４２４は、ファイル・サーバ・アドレス空間２０２ｂを完全に廃棄５０８するためにオペレーティング・システム機能を呼び出すことができる。【０１０６】  バック・エンド・モジュール４０４が、逐次化データと共に廃棄される場合に、フロント・エンド・モジュール４０２は、その後、逐次化モジュール４２０を含めてバック・エンド・モジュール４０４を再ビルドすることができる。次に、逐次化モジュール４２０は、逐次化再初期設定中にフロント・エンド・データ２１０内で安定したままになる接続／位置データ２１２から逐次化データ２２２を再ビルドする５１０。新しい逐次化データ２２２は、データ・アクセス要求のランダムな到着からではなく、安定した接続／位置データ２１２から再ビルドされるので、逐次化衝突がないと期待される。この形で、新しい逐次化データ２２２は、堅牢であり、後続の逐次化障害につながらないと期待される。逐次化データ２２２の再ビルド５１０を、下で図８に関してより詳細に説明する。【０１０７】  逐次化データ２２２が再ビルド５１０されたので、ファイル・サーバ１０２は、逐次化再初期設定が完了したことを、処理クラスタ１００内のリモートのファイル・サーバ１０２に通知する５１２。一実施形態で、上で説明した通知モジュールが、この通知動作を実行することができる。ファイル・サーバ１０２は、新しい逐次化データ２２２を使用してデータ・アクセス要求の処理を再開して、共用���トレージ・デバイス１０４への逐次化されたアクセスを管理することができる。図示の再初期設定方法５００は、その後、終了する。【０１０８】  図８に、図７に示した再初期設定方法５００の逐次化再ビルド動作５１０の例として与えられる再ビルド方法６００の一実施形態を示す。図示の再ビルド方法６００は、新しいファイル・サーバ・アドレス空間２０２ｂがメモリ２００内で作成される６０２時に開始される。これは、もちろん、以前のファイル・サーバ・アドレス空間２０２ｂが上で説明されたように破棄されたことを前提とする。次に、新たに作成されたファイル・サーバ・アドレス空間２０２ｂにバック・エンド・モジュール４０４を再ロードする６０４。言い換えると、逐次化モジュール４２０、静止モジュール４２２、廃棄モジュール４２４などを、新しいファイル・サーバ・アドレス空間２０２ｂに保管することができる。【０１０９】  次に、逐次化モジュール４２０を呼び出して、一実施形態で、新しい逐次化データ２２２を生成する。これを行うために、逐次化モジュール４２０は、接続／位置データ２１２を含むクライアント・アドレス空間２０２ａをメモリ２００から探索することができる。具体的に言うと、逐次化モジュール４２０は、各アドレス空間２０２を見つけ６０６、特定のアドレス空間２０２が接続／位置データ２１２を含むかどうかを判定する６０８。【０１１０】  逐次化モジュール４２０が、再初期設定方法５００に関して説明した廃棄動作５０８中に手付かずのままにされるクライアント・アドレス空間２０２ａを識別したならば、逐次化モジュール４２０は、逐次化データ２２２の再ビルドを開始することができる。具体的に言うと、逐次化モジュール４２０は、アプリケーション識別子フィールド３０２、ディレクトリ識別子フィールド３０４、およびファイル識別子フィールド３０６（ならびに、適用可能な場合に他の類似する識別子フィールド）に置かれた接続データを識別する６１０。逐次化モジュール４２０は、位置識別子フィールド３０８に置かれた位置データも識別する６１２。【０１１１】  次に、逐次化モジュール４２０は、識別された接続／位置データ２１２を使用して、新しいファイル・サーバ・アドレス空間２０２ｂ内に新しい逐次化データ２２２を作成する６１４。逐次化モジュール４２０は、処理すべき接続／位置データ２１２がもうないと判定する６１６まで、クライアント・アドレス空間２０２ａからの接続／位置データ２１２の読取と、ファイル・サーバ・アドレス空間２０２ｂへの新しい逐次化データ２２２の書込とを継続する。一実施形態で、逐次化モジュール４２０は、クライアント・アドレス空間２０２ａのすべてを探索したことを判定する６１６。図示の再ビルド方法６００は、その後、終了する。【０１１２】  ある種の実施形態で、ファイル・サーバ１０２を静止させ５０６、既存の逐次化データ２２２を廃棄し５０８、新しい逐次化データ２２２を再ビルドする５１０のに必要な総時間は、数十秒になる可能性がある。有利なことに、この形での逐次化データ２２２の再初期設定は、ファイル・サーバ１０２を電源遮断することを必要としない。さらに、図示の再初期設定方法５００は、有益に、実行中のアプリケーション処理に大きくは割り込まないが、データ・アクセス要求は、おそらく、２〜３秒以上延期される可能性がある。【０１１３】  本発明は、その本質的特性から逸脱せずに他の特定の形で実施することができる。説明された実施形態は、すべての態様において、制限的ではなく例示的としてのみ考えられなければならない。したがって、本発明の範囲は、前述の説明によるのではなく、添付の特許請求の範囲によって示される。添付の特許請求の範囲の同等性の意味および範囲に含まれるすべての変更が、この範囲に含まれなければならない。
【図面の簡単な説明】
【０１１４】
【図１】本発明によるアプリケーション環境の一実施形態を示す概略ブロック図である。
【図２】本発明によるストレージ・システム・クラスタの一実施形態を示す概略ブロック図である。
【図３】本発明による電子メモリ・デバイスの一実施形態を示す概略ブロック図である。
【図４】本発明による接続／位置データの一実施形態を示す概略ブロック図である。
【図５】本発明による逐次化データの一実施形態を示す概略ブロック図である。
【図６】本発明による逐次化再初期設定装置の一実施形態を示す概略ブロック図である。
【図７】本発明による再初期設定方法の一実施形態を示す概略流れ図である。
【図８】本発明による再ビルド方法の一実施形態を示す概略流れ図である。
【図１】
2008511884.tif 000003
【図２】
2008511884.tif 000004
【図３】
2008511884.tif 000005
【図４】
2008511884.tif 000006
【図５】
2008511884.tif 000007
【図６】
2008511884.tif 000008
【図７】
2008511884.tif 000009
【図８】
2008511884.tif 000010
【国際調査報告】
2008511884.tif 000011
2008511884.tif 000012