JP2008511884A - ファイル・システム逐次化再初期設定の装置、システム、および方法 - Google Patents

ファイル・システム逐次化再初期設定の装置、システム、および方法 Download PDF

Info

Publication number
JP2008511884A
JP2008511884A JP2007528809A JP2007528809A JP2008511884A JP 2008511884 A JP2008511884 A JP 2008511884A JP 2007528809 A JP2007528809 A JP 2007528809A JP 2007528809 A JP2007528809 A JP 2007528809A JP 2008511884 A JP2008511884 A JP 2008511884A
Authority
JP
Japan
Prior art keywords
serialization
data
file server
address space
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007528809A
Other languages
English (en)
Other versions
JP2008511884A5 (ja
JP4771378B2 (ja
Inventor
ダーリン、ジェラード、マクリーン
エドワーズ、ウィリアム、スチュアート
エンリク ラトレ、エルマー
マホーン、トーマス、アレキサンダー
メリシュー、ジュニア、ライル、リロイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2008511884A publication Critical patent/JP2008511884A/ja
Publication of JP2008511884A5 publication Critical patent/JP2008511884A5/ja
Application granted granted Critical
Publication of JP4771378B2 publication Critical patent/JP4771378B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ファイル・サーバ内の逐次化データを再初期設定する装置、システム、および方法を提供すること。
【解決手段】
この装置には、障害認識モジュール、廃棄モジュール、および逐次化モジュールが含まれる。障害認識モジュールは、ファイル・サーバでのファイル・システム逐次化障害を認識する。逐次化障害の認識時に、廃棄モジュールは、ファイル・サーバ・アドレス空間などの第1メモリ・アドレス空間内に置かれた既存の逐次化データを廃棄する。ある種の実施形態で、ファイル・サーバ・アドレス空間全体を、オペレーティング・システムによって破棄することができる。次に、逐次化モジュールが、既存の接続/位置データから新しい逐次化データを生成する。接続/位置データは、クライアント・アドレス空間など、逐次化再初期設定プロセス中に維持される第2アドレス空間に置かれる。この形で逐次化データを含み、再ビルドすることは、有益に、システム障害を防ぎ、ダウンタイムを減らし、後続の逐次化デッドロックの可能性を減らす。
【選択図】図6

Description

本発明は、ファイル・サーバに関し、具体的には、逐次化障害に応答してファイル・サーバ内の逐次化データを再初期設定することに関する。
複数のデータ・アクセス要求の逐次化(serialization)は、複数プロセッサ・ファイル・システム・サーバの間で共用されるデータ・ストレージ・デバイスについて極端に複雑になる可能性がある。データ・アクセス要求の逐次化は、どのアプリケーションがどのストレージ・デバイスまたはその諸部分に接続されるかと、各アプリケーションについてどの種類のアクセスが提供されるかとの定義を伴う。例えば、一部のアプリケーションは、ある種の書込動作について排他的なアクセス権限を与えられるが、他のアプリケーションは、排他的アクセスを受け取ることができない。また、一部のアプリケーションが、共用データ・ストレージ・デバイス(shareddata storage devices)に対するある種の読取動作について共用アクセス権限を受け取る場合がある。どのアプリケーションがどの時にどのタイプのアクセスを許可されるかを定義することによって、ファイル・システム・サーバは、そうでなければ発生するはずの多数のデータ動作エラーを防ぐことができる。
しかし、逐次化技法は、完全ではなく、逐次化実施態様が障害を発生する場合がある。逐次化障害は、要求されたデータ・ファイルまたはディレクトリへの読取アクセスまたは書込アクセスが、要求するアプリケーションから使用可能にされない時に発生する可能性がある。例えば、逐次化障害は、2つのアプリケーションが、他方のアプリケーションに排他的に割り当てられたデータへのデータ・アクセス権限を要求している時に発生し得る。
図1に、逐次化衝突が発生し得るアプリケーション環境10の一例を示す。具体的に言うと、図示のアプリケーション環境10には、第1アプリケーション12と第2アプリケーション14とが含まれる。第1アプリケーション12は、第1のデータ・ファイル18への排他的権限を有する(実線の矢印16によって示されるように)。同様に、第2アプリケーション14は、第2のデータ・ファイル22への排他的権限を有する(実線の矢印20によって示されるように)。
図1には、第1アプリケーション12が、第2のデータ・ファイル22へのアクセス権限を要求することも示されている(破線24によって示されるように)。同様に、第2アプリケーション14は、第1のデータ・ファイル16へのアクセス権限を要求することができる(破線26によって示されるように)。この場合に、逐次化「デッドロック」障害(″deadlock″failure)が発生するのは、第1アプリケーション12および第2アプリケーション14のどちらもが、要求されたアクセス権限が与えられるまで進行できないが、要求されたデータ・ファイル18または22が要求元でない第1アプリケーション12または第2アプリケーション14によって既に使用されているので、要求されたアクセス権限を与えることができない時である。このタイプの逐次化障害が発生する時に、第1アプリケーション12または第2アプリケーション14が、追加のアクセス権限を要求しながら既存のアクセス権限を保持し続けるので、ファイル・システム・サーバ(図示せず)は、応答しなくなり、これによって使用不能になる可能性がある。
内部逐次化障害自体は、データ・ファイル18および22に保管されたデータの保全性ならびに実行中の第1アプリケーション12および第2アプリケーション14の実行時状態に障害を生じさせないが、そのような逐次化障害は、ファイル・システム・サーバに対する劇的な影響を有する可能性がある。例えば、ファイル・システムからプログラムをロードする能力が基本的なオペレーティング・システムに必要である時など、ファイル・システムが、オペレーティング・システムの中枢である場合に、深刻な逐次化障害が発生する場合がある。さらに、逐次化障害は、オペレーティング・システム障害をもたらす可能性があり、このオペレーティング・システム障害は、対応するファイル・システムに直接には関連しない処理を含む、すべての実行中のアプリケーション処理の障害を引き起こす可能性がある。さらに、逐次化障害は、ビジネス・クリティカル・アプリケーションに影響するファイル・システム・サーバ・ダウンタイムに起因する過度のコストにつながる場合がある。
ファイル・システム逐次化障害に関して、従来の焦点は、すべての逐次化問題の基礎になる原因を訂正することにある。しかし、この解決策は、可能な逐次化問題および原因の個数が圧倒的である、現在のマルチタスキング環境、マルチプロセッシング環境、およびクラスタリング環境の複雑さを考慮すれば、実用的には実現不能である。
前述の議論から、従来のテクノロジの不利益を克服する形でファイル・システム逐次化障害を自動的に処理する装置、システム、および方法の必要が存在することは明白である。有益なことに、そのような装置、システム、および方法は、実行中のアプリケーション(in−flight applications)がファイル・システムに論理的に接続されたままでありながらファイル・システム逐次化情報を再初期設定する(reinitialized)ことを可能にするはずである。さらに、そのような装置、システム、および方法は、システム障害および関連するコストを防止することによって、従来のシステムおよび方法より有利になるはずである。
本発明は、第1の態様で、ファイル・サーバを再初期設定する装置であって、ファイル・サーバ上のファイル・システム逐次化障害を認識するように構成された障害認識モジュールと、逐次化障害に応答してファイル・サーバ・アドレス空間内に置かれた既存の逐次化データを廃棄するように構成された廃棄モジュールと、クライアント・アドレス空間内に置かれた既存の接続/位置データから作業コピー逐次化データを生成するように構成された逐次化モジュールとを含む装置を提供する。
このファイル・サーバ・アドレス空間は、ファイル・サーバ・アドレス空間であることが好ましい。
このクライアント・アドレス空間は、クライアント・アドレス空間であることが好ましい。
既存の接続/位置データは、逐次化モジュールによる新しい逐次化データの生成全体を通じて保存されることが好ましい。
この装置は、さらに、再初期設定を見越して現行データ・アクセス・プロセスを静止させるように構成された静止モジュールを含むことが好ましい。
廃棄モジュールは、さらに、ファイル・サーバ・アドレス空間を破棄するためにオペレーティング・システム機能を呼び出す(invoke)ように構成されることが好ましい。
逐次化モジュールは、さらに、新しいファイル・サーバ・アドレス空間を作成するためにオペレーティング・システム機能を呼び出すように構成されることが好ましい。
逐次化モジュールは、さらに、新しいファイル・サーバ・アドレス空間に新しい逐次化データを保管するように構成されることが好ましい。
逐次化モジュールは、さらに、複数のアドレス空間を探索し、クライアント・アドレス空間内の既存の接続/位置情報を見つけるように構成されることが好ましい。
接続/位置データは、アプリケーションと共用ストレージ・リソースとの間のオープン接続を定義することが好ましい。
接続/位置データは、さらに、アプリケーションが共用ストレージ・リソースに最も最近にアクセスした共用ストレージ・リソース内の現行位置を定義することが好ましい。
共用ストレージ・リソースは、ファイル、ディレクトリ、サブディレクトリ、およびディレクトリ・エントリから選択されたリソースを含むことが好ましい。
逐次化データは、アプリケーションと共用ストレージ・リソースとの間の接続タイプを定義することが好ましい。
接続タイプは、アプリケーションと共用ストレージ・リソースとの間のオープン接続の排他性を定義することが好ましい。
ファイル・サーバを再初期設定する装置は、クライアント・アドレス空間内に接続/位置データを保管するように構成されたフロント・エンド・モジュールであって、接続/位置データが、アプリケーションと共用ストレージ・リソースとの間のオープン接続を記述する、フロント・エンド・モジュールと、オープン接続の逐次化データを管理するように構成されたバック・エンド・モジュールであって、逐次化データが、オープン接続の排他性を記述する、バック・エンド・モジュールと、ファイル・システム逐次化障害に応答して接続/位置データから新しい逐次化データを生成するように構成された逐次化モジュールとを含むことができる。
フロント・エンド・モジュールは、さらに、クライアント・アドレス空間内で動作するように構成されることが好ましい。
バック・エンド・モジュールは、さらに、ファイル・サーバ・アドレス空間内で動作するように構成されることが好ましい。
逐次化モジュールは、さらに、新しいファイル・サーバ・アドレス空間内に新しい逐次化データを保管するように構成されることが好ましい。
逐次化モジュールは、さらに、新しい逐次化データの生成中に接続/位置情報を変更しないように構成されることが好ましい。
この装置は、さらに、逐次化モジュールによる新しい逐次化情報の生成の前に、複数の進行中のデータ・アクセス・プロセスの完了の時間の持続時間を待つように構成された静止モジュールを含むことができる。
共用ストレージ・リソースは、ファイル、ディレクトリ、サブディレクトリ、およびディレクトリ・エントリから選択されたリソースを含むことが好ましい。
ファイル・サーバを再初期設定するシステムを提供することができ、このシステムは、データを保管するように構成された複数の共用ストレージ・デバイスと、ファイル・サーバ・クラスタ内の複数のファイル・サーバであって、複数のファイル・サーバのそれぞれが共用ストレージ・デバイス上のデータにアクセスするように構成された、複数のファイル・サーバと、複数のファイル・サーバのうちの第1ファイル・サーバでのファイル・システム逐次化障害に応答して第1ファイル・サーバを再初期設定するように構成された逐次化再初期設定装置とを含む。
そのようなシステムは、さらに、第1ファイル・サーバの再初期設定を見越して、第1ファイル・サーバが残りの複数のファイル・サーバに通知することを可能にするように構成された通知モジュールを含むことができる。
通知モジュールは、さらに、第1ファイル・サーバの再初期設定の最終化の後に、第1ファイル・サーバが残りの複数のファイル・サーバに通知することを可能にするように構成されることが好ましい。
ファイル・サーバを再初期設定する動作を実行するためにデジタル処理装置によって実行可能な機械可読命令のプログラムを有形に実施する信号担持媒体であって、命令が、ファイル・サーバ上のファイル・システム逐次化障害を認識する動作と、逐次化障害に応答してファイル・サーバ・アドレス空間内に置かれた既存の逐次化データを廃棄する動作と、クライアント・アドレス空間内に置かれた既存の接続/位置データから新しい逐次化データを生成する動作とを含む、信号担持媒体を提供することができる。
命令は、さらに、逐次化モジュールによる新しい逐次化データの生成全体を通じて既存の接続/位置データを保存する動作を含むことが好ましい。
命令は、さらに、再初期設定を見越して現行データ・アクセス・プロセスを静止させる動作を含むことが好ましい。
命令は、さらに、ファイル・サーバ・アドレス空間を破棄するためにオペレーティング・システム機能を呼び出す動作を含むことが好ましい。
命令は、さらに、新しいファイル・サーバ・アドレス空間を作成するためにオペレーティング・システム機能を呼び出す動作を含むことが好ましい。
命令は、さらに、新しいファイル・サーバ・アドレス空間に新しい逐次化データを保管する動作を含むことが好ましい。
命令は、さらに、複数のアドレス空間を探索する動作と、クライアント・アドレス空間内の既存の接続/位置情報を見つける動作とを含むことが好ましい。
ファイル・サーバを再初期設定する動作を実行するためにデジタル処理装置によって実行可能な機械可読命令のプログラムを有形に実施する、この信号担持媒体は、クライアント・アドレス空間内に接続/位置データを保管する動作であって、接続/位置データが、アプリケーションと共用ストレージ・リソースとの間のオープン接続を記述する、動作と、オープン接続の逐次化データを管理する動作であって、逐次化データが、オープン接続の排他性を記述する、動作と、ファイル・システム逐次化障害に応答して接続/位置データから新しい逐次化データを生成する動作とを含む命令を有することができる。
命令は、さらに、クライアント・アドレス空間内でフロント・エンド・モジュールを実行する動作を含むことが好ましい。
命令は、さらに、ファイル・サーバ・アドレス空間内でバック・エンド・モジュールを実行する動作を含むことが好ましい。
命令は、さらに、新しいファイル・サーバ・アドレス空間内に新しい逐次化データを保管する動作を含むことが好ましい。
命令は、さらに、新しい逐次化データの生成中に接続/位置情報を変更しない動作を含むことが好ましい。
命令は、さらに、逐次化モジュールによる新しい逐次化情報の生成の前に、複数の進行中のデータ・アクセス・プロセスの完了の時間の持続時間を待つ動作を含むことが好ましい。
共用ストレージ・リソースは、ファイル、ディレクトリ、サブディレクトリ、およびディレクトリ・エントリから選択されたリソースを含むことが好ましい。
第2の態様で、本発明は、ファイル・サーバを再初期設定する方法であって、ファイル・サーバ上のファイル・システム逐次化障害を認識することと、逐次化障害に応答してファイル・サーバ・アドレス空間内に置かれた既存の逐次化データを廃棄することと、クライアント・アドレス空間内に置かれた既存の接続/位置データから新しい逐次化データを生成することとを含む方法を提供する。
この方法は、ファイル・サーバでのファイル・システム逐次化障害を認識することと、再初期設定を見越して現行データ・アクセス・プロセスを静止させることと、ファイル・サーバ・アドレス空間を破棄するためにオペレーティング・システム機能を呼び出すことによって、逐次化障害に応答してファイル・サーバ・アドレス空間内に置かれた既存の逐次化データを廃棄することと、新しいファイル・サーバ・アドレス空間を作成するためにオペレーティング・システム機能を呼び出すことと、複数のアドレス空間を探索し、クライアント・アドレス空間内の既存の接続/位置情報を見つけることと、クライアント・アドレス空間内に置かれた既存の接続/位置データから新しい逐次化データを生成することと、新しい逐次化データを新しいファイル・サーバ・アドレス空間に保管することとを含む方法とすることができる。
ファイル・サーバを再初期設定する装置を提供することができ、この装置は、ファイル・サーバでのファイル・システム逐次化障害を認識する手段と、逐次化障害に応答してファイル・サーバ・アドレス空間内に置かれた既存の逐次化データを廃棄する手段と、クライアント・アドレス空間内に置かれた既存の接続/位置データから新しい逐次化データを生成する手段とを含む。
第3の態様で、本発明は、コンピュータ・システムにロードされ、そこで実行される時に、第2の態様による方法の全ステップを前記コンピュータ・システムに実行させるコンピュータ・プログラムを提供する。
本発明は、当技術分野の現在の状態に答えて、具体的には、現在使用可能なファイル・システム逐次化システムによってまだ十分に解決されてはいない当技術分野の問題および必要に答えて開発された。したがって、本発明は、当技術分野における上で述べた短所の多くまたはすべてを克服する、ファイル・サーバを再初期設定する装置、システム、および方法を提供するために開発された。
ファイル・サーバを再初期設定する装置は、ファイル・システム・サーバの逐次化データを再初期設定するのに必要なステップを機能的に実行するように構成された複数のモジュールを含む論理ユニットを与えられる。説明される実施形態のこれらのモジュールには、フロント・エンド・モジュールとバック・エンド・モジュールとが含まれる。一実施形態で、フロント・エンド・モジュールは、クライアント・アドレス空間に常駐し、バック・エンド・モジュールは、ファイル・サーバ・アドレス空間に常駐する。
ある種の実施形態で、フロント・エンド・モジュールには、接続モジュールおよび延期装置を含めることができる。接続モジュールは、アプリケーションに関連するオープン・ファイル接続または他のリソース接続を記述する接続/位置情報(接続/位置データとも称する)を管理する。延期装置は、一実施形態で、ファイル・サーバ逐次化の再初期設定の前およびその間に、データ・アクセス要求を延期する。
ある種の実施形態で、バック・エンド・モジュールには、逐次化モジュール、静止モジュール、廃棄モジュール、および障害認識モジュールを含めることができる。逐次化モジュールは、クライアント・アドレス空間に対応する、所与のアプリケーションの逐次化データを管理する。逐次化モジュールは、再初期設定動作の一部として、既存の接続/位置データから新しい逐次化データも生成する。
障害認識モジュールは、逐次化障害を認識する。廃棄モジュールは、既存の逐次化データを廃棄する。例えば、廃棄モジュールは、既存の逐次化データが置かれているアドレス空間をオペレーティング・システムが破棄することを要求することができる。一実施形態で、既存の逐次化データは、ファイル・サーバ・アドレス空間に置かれる。もう1つの実施形態では、バック・エンド・モジュール全体を、オペレーティング・システムによって破棄されるファイル・サーバ・アドレス空間に置くこともできる。延期モジュールは、既存のファイル・サーバ・アドレス空間が廃棄された後の新しいファイル・サーバ・アドレス空間の作成を容易にすることができる。静止モジュールは、再初期設定プロセスの前およびその間に、ファイル・サーバを静止させる。一実施形態で、静止期間は、上で説明した延期装置を用いて調整される。
バック・エンド・モジュールには、完了装置およびクラスタ装置も含めることができる。完了装置は、アプリケーションに関連するタスクの進行を追跡する。一実施形態では、完了装置を静止モジュールと共に使用して、静止期間中に接続/位置データを安定化することができる。接続/位置データは、クライアント・アドレス空間に常駐することができ、このクライアント・アドレス空間は、ファイル・システム逐次化再初期設定中に、保存され、廃棄されない。クラスタ装置は、あるファイル・サーバ上の逐次化データが再初期設定される時に、必要な権限およびクラスタ内の複数のファイル・サーバの間での折衝通信を管理する。
本発明のシステムは、ファイル・システム・サーバの逐次化データを再初期設定するためにも提示される。このシステムは、1つまたは複数の共用データ・ストレージ・デバイスへの共用アクセスを有する複数のファイル・サーバを含む処理クラスタ内で実施することができる。具体的に言うと、このシステムの一実施形態は、複数のファイル・サーバと、共用ストレージ・デバイスと、逐次化再初期設定装置とを含む。このシステムは、複数のファイル・サーバの間でのグローバル逐次化を容易にする結合ファシリティも含むことができる。
このシステムは、さらに、通知モジュールを含む。一実施形態で、通知モジュールは、ローカル・ファイル・サーバが再初期設定されると期待される時に、処理クラスタ内の1つまたは複数のリモート・ファイル・サーバに通知するように構成される。同様に、通知モジュールは、ローカル・ファイル・サーバが再初期設定された後に、リモート・ファイル・サーバに通知する。
本発明の方法は、ファイル・サーバの再初期設定についても提示される。開示される実施形態の方法は、実質的に、説明される装置およびシステムの動作に関して上で提示した機能を実行するのに必要なステップを含む。一実施形態で、この方法は、ファイル・サーバでのファイル・システム逐次化障害を認識することと、既存の逐次化データを廃棄することと、既存の接続/位置データから新しい逐次化データを生成することとを含む。上で述べたように、既存の接続/位置データは、例えば、再初期設定プロセス全体を通じてクライアント・アドレス空間内で安定化され、維持される。
この方法は、ファイル・サーバを静止させることと、ファイル・サーバ・アドレス空間を破棄するためにオペレーティング・システム機能を呼び出すことと、新しいファイル・サーバ・アドレス空間を作成するためにオペレーティング・システム機能を呼び出すこととも含むことができる。さらに、この方法は、既存の接続/位置データをメモリから探索することと、クライアント・アドレス空間内に置かれた既存の接続/位置データから新しい逐次化データを生成することと、新しい逐次化データを新しいファイル・サーバ・アドレス空間に保管することとも含むことができる。
信号担持媒体も提示される。この信号担持媒体は、本発明の方法、装置、およびシステムに関して上で説明した機能の一部またはすべてを実行するソフトウェア命令を保管するように構成される。
本明細書全体を通じて、特徴、利益、または類似する言葉への言及は、本発明を用いて実現できる特徴および利益のすべてが本発明の単一の実施形態に含まれなければならないこと、またはこれに含まれることを暗示しない。そうではなく、特徴および利益に言及する言葉は、ある実施形態に関連して説明される特定の特徴、利益、または特性が、本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、特徴および利益ならびに類似する言葉の議論は、本明細書全体を通じて、同一の実施形態を指す場合があるが、必ずしもそうであるとは限らない。
さらに、本発明の説明される特徴、利益、および特性は、1つまたは複数の実施形態で、任意の適当な形で組み合わせることができる。当業者は、特定の実施形態の特定の特徴および利益のうちの1つまたは複数なしで本発明を実践できることを認めるであろう。他の場合に、追加の特徴および利益を、本発明のすべての実施形態には存在しない場合がある、ある種の実施形態で認めることができる。
本発明のこれらの特徴および利益は、次の説明および添付の特許請求の範囲からより十分に明白になり、あるいは、後で示す本発明の実践によって習得することができる。
本発明の利益をたやすく理解するために、上で短く説明した本発明のより具体的な説明を、添付図面に示された特定の実施形態を参照することによって行う。これらの図面が、本発明の通常の実施形態を示すのみであり、したがって、本発明の範囲を限定するものとは考えられないことを理解して、本発明を、添付図面の使用を介してさらに具体的かつ詳細に記述し、説明する。
本明細書で説明する機能ユニットの多くは、その実施態様依存性をより具体的に強調するために、モジュールとして符号を付けられている。例えば、モジュールは、カスタムVLIS回路またはゲート・アレイ、論理チップなどの既製半導体、トランジスタ、あるいは他のディスクリート構成要素を含むハードウェア回路として実施することができる。モジュールは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイス、または類似物などのプログラマブル・ハードウェア・デバイスで実施することもできる。
モジュールは、さまざまなタイプのプロセッサによる実行用のソフトウェアで実施することもできる。例えば、実行可能コード(executable code)の識別されるモジュールに、例えばオブジェクト、プロシージャ、または関数として編成することができる、コンピュータ命令の1つまたは複数の物理ブロックまたは論理ブロックを含めることができる。それでも、識別されるモジュールの実行可能ファイルは、物理的に一緒に配置される必要があるのではなく、論理的に一緒につながれた時にモジュールを含み、そのモジュールの述べられた目的を達成する、異なる位置に保管された異なる命令を含むことができる。
実際に、実行可能コードのモジュールは、単一の命令または複数の命令とすることができ、複数の異なるコード・セグメントにまたがって、異なるプログラムの間で、および複数のメモリ・デバイスにまたがって分散させることすらできる。同様に、動作データは、本明細書ではモジュール内で識別され、図示される場合があり、任意の適当な形で実施し、任意の適当なタイプのデータ構造内に編成することができる。動作データは、単一のデータ・セットとして集めることができ、あるいは、異なるストレージ・デバイスにまたがることを含めて異なる位置にまたがって分散させることができ、少なくとも部分的に、単にシステムまたはネットワーク上の電子信号として存在することができる。
本明細書全体を通じて、「一実施形態」、「実施形態」、または類似する言葉への言及は、その実施形態に関連して説明される特定の特徴、構造、または特性が、本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、句「一実施形態で」、「実施形態で」、または類似する言葉の出現は、本明細書全体を通じて、同一の実施形態を指す場合があるが、必ずしもそうであるとは限らない。
さらに、本発明の説明される特徴、構造、または特性は、1つまたは複数の実施形態で任意の適当な形で組み合わせることができる。次の説明では、本発明の完全な理解を提供するために、プログラミング、ソフトウェア・モジュール、ユーザ選択、ネットワーク・トランザクション、データベース・クエリ、データベース構造、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップなど、多数の具体的な詳細を示す。しかし、当業者は、この具体的な詳細のうちの1つまたは複数なしで、または他の方法、構成要素、材料などを用いて本発明を実践できることを認めるであろう。他の場合には、本発明の諸態様を不明瞭にすることを避けるために、周知の構造、材料、または動作は、詳細には図示せず、説明しない。
図2に、本発明のある種の実施形態を使用できる処理クラスタ100の一実施形態を示す。図示の処理クラスタ100には、複数のファイル・サーバ102と、1つまたは複数の共用ストレージ・デバイス104と、結合ファシリティ106とが含まれる。各ファイル・サーバ102は、処理クラスタ100上のリソースを管理するように構成される。例えば、複数のファイル・サーバ102は、処理クラスタ100上で実行されるアプリケーションまたは他のソフトウェア・プログラムのそれぞれに関する処理リソース、メモリ・リソース、およびデータ・ストレージ・リソースの割振りを管理する。本明細書で使用される場合に、「アプリケーション」への言及には、そうでないと示されない限り、アプリケーション・ソフトウェアならびにオペレーティング・システムなどのシステム・ソフトウェアを含めることができる。
共用ストレージ・デバイス104には、複数のファイル・サーバ102からの命令に従ってデータを保管するように構成された電子ストレージ・デバイスが含まれる。一実施形態では、共用ストレージ・デバイス104に、複数のハード・ディスク・ドライブが含まれる。代替案では、共用ストレージ・デバイス104に、1つまたは複数の光学ドライブ、テープ・ドライブ、または他のデータ・ストレージ・ドライブ、あるいはこれらの組合せを含めることができる。共用ストレージ・デバイス104に保管されたデータは、ファイル・サーバ102によって読み取るか、他の形でアクセスすることができる。一実施形態で、共用ストレージ・デバイス104上のデータは、ディレクトリ、サブディレクトリ、ファイル、および他のディレクトリ・エントリを含むファイル・システム内に保管することができる。ディレクトリ、サブディレクトリ、ファイル、他のディレクトリ・エントリ、および類似するデータ構造のそれぞれは、処理クラスタ100内の共用ストレージ・リソースである。
ファイル・サーバ102のうちの1つのアプリケーションが、共用ストレージ・デバイス104のうちの1つのデータにアクセスするたびに、ファイル・サーバ102は、そのデータ・アクセスを、同一のファイル・サーバ102上および処理クラスタ100内の他のファイル・サーバ102上で稼動する他のクライアント・アプリケーションと調整する。この調整は、ファイル・サーバ102が共用ストレージ・デバイス104上のデータへの逐次(serial)アクセスまたは連続的(consecutive)アクセスを可能にするので、逐次化と称する。逐次化は、各アプリケーションが、データの特定のセットへの共用アクセスまたは排他的アクセスのいずれかを有することを可能にし、その結果、他のアプリケーションが、データのターゲット・セットに干渉せず、他の形で妨害しないようになる。
逐次化は、処理クラスタ100内および共用ストレージ・デバイス104内の粒度のさまざまなレベルで実施することができる。例えば、逐次化を、ディレクトリ・レベルまたはサブディレクトリ・レベルで行うことができる。さらに、逐次化を、ファイル・レベル、レコード・レベル、またはパケット・レベルで行うことができる。逐次化粒度は、処理クラスタ100と、ファイル・サーバ102と、共用ストレージ・デバイス104と、処理クラスタ100内で使用される他のハードウェアとのタイプに依存する。粒度は、アプリケーションまたはオペレーティング・システムによって要求されるデータ・アクセス動作のタイプにも依存し得る。
結合ファシリティ106は、一実施形態で、処理クラスタ100内のすべてのファイル・サーバ102の間で逐次化を容易にするために設けられる。具体的に言うと、結合ファシリティ106は、逐次化情報を保管し、多数のファイル・サーバ102の間でのメッセージング動作を援助する。しかし、処理クラスタ100の代替実施形態は、結合ファシリティ106の援助なしでグローバル逐次化を実行することができる。
図3に、逐次化プログラムおよび逐次化データならびに関連情報を保管するのに使用できるメモリ200の一実施形態を示す。図示のメモリ200は、複数のアドレス空間202に分割される。各アドレス空間202は、所与のアプリケーションに割り振られた正しいメモリ・アドレスの組を含み、そのアプリケーションに割り振られた、物理的または仮想のいずれかのメモリ200の量を表す。図示のメモリ200には、具体的には、クライアント・アドレス空間202a、ファイル・サーバ・アドレス空間202b、および追加のアドレス空間202nが含まれる。メモリ200には、一般アドレス可能メモリ(commonly addressable memory)204も含まれる。
クライアント・アドレス空間202aは、所与のファイル・サーバ102とインターフェースするアプリケーションごとに作成することができる。例えば、メモリ200に、ファイル・サーバ102とインターフェースする4つのクライアントのそれぞれについて1つの、4つのクライアント・アドレス空間202aを含めることができる。クライアント・アドレス空間202aは、アプリケーション・プログラムと直接にインターフェースする責任を負うので、「フロント・エンド」と呼ばれる場合もある。一般に、クライアント・アドレス空間202aは、アプリケーション・ソフトウェアまたはシステム・ソフトウェアなど、要求元のソフトウェア・プログラムに関するデータ・アクセス動作を容易にする。
図示のクライアント・アドレス空間202aは、全般的にはフロント・エンド・データ210を含み、具体的には接続/位置(connection/position)データ212を含む。各クライアント・アドレス空間202aは、関連するクライアントに関係する、接続/位置データ212を含む対応するフロント・エンド・データ210を含むことができる。接続/位置データは、対応するアプリケーションによってアクセスされる、共用ストレージ・デバイス104上のデータを記述する。接続/位置データ212の例は、図4を参照して詳細に説明する。
この説明全体を通じて、単数形での「a」または「the」クライアント・アドレス空間202aへの言及は、1つまたは複数のクライアント・アドレス空間202aへの言及と理解され、各クライアント・アドレス空間202aは、独立のクライアントに対応する。同様に、フロント・エンド・データ210または接続/位置データ212あるいはその両方への言及は、所与のファイル・サーバ102とインターフェースする1つまたは複数のクライアントに関するそのようなデータに言及すると理解される。
ファイル・サーバ・アドレス空間202bは、一実施形態で、ファイル・サーバ102内の逐次化と、共用ストレージ・デバイス104へのデータ・アクセスとの責任を負う。ファイル・サーバ・アドレス空間202bは、ファイル・サーバ102と共用ストレージ・デバイス104との間のインターフェースを管理するので、「バック・エンド」と呼ばれる場合もある。具体的に言うと、ファイル・サーバ・アドレス空間202bは、関連するクライアント・アドレス空間202aに対応するアプリケーションのデータ・アクセス要求を逐次化する。これらのデータ・アクセス要求は、同一のファイル・サーバ102および処理クラスタ100内の他のファイル・サーバ102によってサービスされる他のアプリケーションからの他のデータ・アクセス要求と共に逐次化される。
図示のファイル・サーバ・アドレス空間202bには、全般的にはバック・エンド・データ220が含まれ、具体的には逐次化データ222が含まれる。もう1つの実施形態では、バック・エンド・データ220に、完了権限(completion rights)224も含めることができ、この完了権限224は、データ・アクセス要求の処理情況、またはクライアント・アドレス空間202aに保管された接続/位置データ212の安定性、あるいはその両方を示すことができる。
追加のアドレス空間202nは、クライアント・アドレス空間202aおよびファイル・サーバ・アドレス空間202bに保管されるものに似たプログラムおよびデータに使用することができる。追加のアドレス空間202nには、当技術分野で現在既知のように、マスタ・アドレス空間などを含めることもできる。
一般アドレス可能メモリ204は、メモリ200のうちで、1つまたは複数のアドレス空間202によって一般にアクセス可能なプログラムおよびデータを保管するのに使用できる部分である。例えば、一般アドレス可能メモリ204は、ファイル名などのデータ、または、クライアント・アドレス空間202a内の接続/位置データ212とファイル・サーバ・アドレス空間202b内の逐次化データ222の両方によって一般に参照されるメタデータを保管するのに使用することができる。
図4に、図3に関して説明した接続/位置データ212に実質的に似た接続/位置データ300の一実施形態を示す。接続/位置データ300には、特定のアプリケーションに対応するデータ・アクセス要求に関連する接続情報および位置情報を記述するために識別子または他のデータを保管するようにそれぞれが構成された複数のフィールドが含まれる。接続/位置データ300を、本明細書では、接続/位置情報または接続/位置レコードと称する場合もある。
図示の接続/位置データ300には、アプリケーション識別子フィールド302、ディレクトリ識別子フィールド304、ファイル識別子フィールド306、および位置識別子フィールド308が含まれる。もう1つの実施形態で、接続/位置データ300に、より小数またはより多数のデータ・フィールドもしくはメタデータ・フィールドまたはその両方を含めることができる。一実施形態で、アプリケーション識別子フィールド302には、クライアント・アドレス空間202aがそれのために存在するアプリケーションを識別するアプリケーション識別子が保管される。
ディレクトリ識別子フィールド304には、アプリケーション識別子によって識別されるアプリケーションに関連する動作に使用されつつある共用ストレージ・デバイス104上のディレクトリを識別するディレクトリ識別子が保管される。同様に、ファイル識別子フィールド306には、同一のアプリケーションに関連するデータ・アクセス動作に使用されつつあるファイルを識別するファイル識別子が保管される。ある種の実施形態で、ファイル識別子は、ファイルがディレクトリのメンバであるという点でディレクトリ識別子に関連することができる。この関係を考慮すれば、ファイル識別子をメンバ識別子と呼ぶこともできる。ディレクトリ識別子およびファイル識別子を、一般に、リソース識別子と称する場合がある。本発明の代替実施形態では、他のリソース識別子フィールドおよびリソース識別子が、接続/位置データ300内に存在することができる。
位置識別子フィールド308には、一実施形態で、ファイルまたはストレージ・リソースが現在または最も最近にアクセスされた位置を識別する位置識別子が保管される。一実施形態では、位置識別子に、アクセスされているファイルの先頭からのバイト数によって現行読取位置または現行書込位置を示すバイト・オフセットを含めることができる。
図5に、上で図3に関して説明した逐次化データ222に実質的に似た逐次化データ320の一実施形態を示す。逐次化データ320には、特定のタスクに対応するデータ・アクセス要求に関連する逐次化情報を記述するために識別子または他のデータを保管するようにそれぞれが構成された複数のフィールドが含まれる。タスクは、特定のアプリケーションに関連する1つのデータ・アクセス動作である。アプリケーションは、1つまたは複数のタスクを生成することができる。逐次化データ320を、本明細書では逐次化情報または逐次化レコードと呼ぶ場合もある。
図示の逐次化データ320には、タスク識別子フィールド322、リソース識別子フィールド324、および排他性識別子フィールド326が含まれる。もう1つの実施形態で、逐次化データ320に、より小数またはより多数のデータ・フィールドもしくはメタデータ・フィールドまたはその両方を含めることができる。一実施形態で、タスク識別子フィールド322には、ファイル・サーバ・アドレス空間202b内で実行されるタスクを識別するタスク識別子が保管される。
一実施形態で、リソース識別子フィールド324には、タスク識別子によって識別されるタスクに関連する入力リソースまたは出力リソースのいずれかを識別するリソース識別子が保管される。一実施形態で、リソース識別子は、そこからデータをタスク動作に入力できる、共用ストレージ・デバイス104などの入力リソースを識別することができる。例えば、タスク動作は、共用ストレージ・デバイス104からデータを読み取ることができる。もう1つの実施形態では、リソース識別子は、タスク動作に従ってそこにデータを送ることができる、バッファなどの出力リソースを識別することができる。
排他性識別子フィールド326には、識別されたタスクについて識別子リソースに提供されるリソース排他性のタイプを識別する排他性識別子が保管される。例えば、タスクは、共用ストレージ・デバイス104から読み取られるターゲット・データ・セットへの共用読取アクセスまたは排他的読取アクセスのいずれかを有することができる。すべてではないが多くの場合に、排他性識別子は、データ読取(入力)動作について共用アクセスを提供する。もう1つの例で、タスクは、そこにデータを書き込めるターゲット・バッファへの排他的書込アクセスを有することができる。すべてではないが多くの場合に、排他性識別子は、データ書込(出力)動作について排他的アクセスを提供する。
図6に、本発明のさまざまな実施形態と共に使用できる逐次化再初期設定装置400の一実施形態を示す。図示の逐次化再初期設定装置400には、フロント・エンド・モジュール402とバック・エンド・モジュール404とが含まれる。一実施形態で、フロント・エンド・モジュール402およびバック・エンド・モジュール404は、それぞれクライアント・アドレス空間202aおよびファイル・サーバ・アドレス空間202bに常駐するソフトウェア・プログラムである。
逐次化再初期設定装置400は、逐次化エラーまたは逐次化障害に応答してファイル・サーバ102の逐次化データ222を再初期設定するように構成される。上で説明したように、逐次化障害は、1つまたは複数のアプリケーションが、動作の完了に必要な保管されたデータに正しくアクセスできない場合に発生し得る。例えば、図1を参照すると、ファイル・サーバ102は、第2アプリケーション14がデータ・ファイル18へのアクセス権限を有することを許可する前に、同一のデータ・ファイル18への排他的アクセス権限を有する第1アプリケーション12が動作を終えるのを待っている場合がある。
1つのファイル・サーバ102内または処理クラスタ100内の複数のファイル・サーバ102の間の逐次化データ222に障害が発生した時に、そのファイル・サーバ102または処理クラスタ100が使用不能になる場合がある。例えば、ファイル・サーバ102は、2つのアプリケーションすなわち第1アプリケーション12および第2アプリケーション14が、互いのために排他的に予約されているデータへのアクセスを試みる時に、応答しなくなるか「デッドロックされる」可能性がある。ファイル・サーバ102の逐次化データ222を再初期設定することによって、逐次化再初期設定装置400は、既存の逐次化データ222を廃棄し、接続/位置データ212から新しい逐次化情報を再構成し、これによってすべての逐次化障害を訂正する。
図6を参照すると、フロント・エンド・モジュール402には、一実施形態で、接続モジュール410および延期装置412が含まれる。接続モジュール410は、あるアプリケーションに関連する各タスクの接続/位置データ212を監視し、記録するように構成される。延期装置412は、一実施形態で、ファイル・サーバ102の逐次化データ222が再初期設定されつつある間に、データ・アクセス要求を延期するように構成される。一実施形態で、延期装置412は、逐次化再初期設定の前の静止期間中ならびに逐次化再初期設定中にデータ・アクセス要求を延期する(suspend)。
バック・エンド・モジュール404には、図示のように、逐次化モジュール420、静止(quiesce)モジュール422、廃棄(discard)モジュール424、障害認識モジュール426、完了装置428、およびクラスタ装置430が含まれる。逐次化モジュール420は、一実施形態で、ファイル・サーバ102の逐次化データ222を管理するように構成される。さらに、逐次化モジュール420は、ファイル・サーバ102の逐次化再初期設定と共に、接続/位置データ212から逐次化データ222を再ビルドする(rebuild)ことができる。
静止モジュール422は、一実施形態で、ファイル・サーバ102の逐次化データ222の再初期設定の前の静止期間を定義し、実施するように構成される。ある種の実施形態で、静止期間を2〜3秒とすることができる。代替案では、静止期間を、2〜3秒より長くまたはこれより短くすることができる。静止期間中に、バック・エンド・モジュール404は、フロント・エンド・モジュール402からの新しいデータ・アクセス要求を否認することができる。さらに、静止期間を使用して、進行中のタスクが逐次化再初期設定の前に完了できるようにすることができる。さらに、クライアント・アドレス空間202aに保管された接続/位置データ212の保全性を維持するために、静止期間中に進行中のタスクを延期するか、他の形であとまわしにすることができる。
廃棄モジュール424は、一実施形態で、ファイル・サーバ102の逐次化再初期設定と共に、既存の逐次化データ222を廃棄するように構成される。ある種の実施形態で、例えば、廃棄モジュール424は、オペレーティング・システムがファイル・サーバ・アドレス空間202bまたはバック・エンドに保管された情報、プログラム、およびデータのすべてを単純に破棄することを要求することができる。言い換えると、オペレーティング・システムを呼び出して、既存の逐次化データ222および完了権限224を含むバック・エンド・データ220を削除することができる。さらに、オペレーティング・システムは、逐次化モジュール420、静止モジュール422、廃棄モジュール424、障害認識モジュール426、完了装置428、およびクラスタ装置430を含むバック・エンド・モジュール404を完全に廃棄することができる。これらのバック・エンド・モジュール、バック・エンド装置、およびバック・エンド・データのそれぞれは、逐次化再初期設定中に再ビルドすることができる。
障害認識モジュール426は、一実施形態で、ファイル・サーバ102内の逐次化障害を認識するように構成される。もう1つの実施形態で、障害認識モジュール426は、例えば結合ファシリティ106と共に、グローバル逐次化障害を認識することができる。代替実施形態では、人間のオペレータが、ファイル・サーバ102が応答しない情況を認識し、再初期設定プロセスを開始するコマンドをシステム・コンソール・キーボード(図示せず)で明示的に発光することができる。この場合に、オペレータは、そのような判定を行うのを助ける診断エイドを使用することができる。
完了装置428は、一実施形態で、タスクの完了進行を追跡するように構成される。一実施形態で、完了装置428は、バック・エンド・データ220内の完了権限224を作成し、使用して、タスクの進行を追跡することができる。クラスタ装置430は、一実施形態で、複数のファイル・サーバ102のうちの1つの逐次化再初期設定中に処理クラスタ100の通信および動作を管理するように構成される。
次の概略流れ図は、全般的に、論理流れ図として示される。したがって、示される順序および符号を付けられたステップは、本発明の一実施形態を示す。機能、論理、または効果において、示される方法の1つまたは複数のステップあるいはその一部と同等である他のステップおよび方法を考えることができる。さらに、使用されるフォーマットおよび記号体系は、この方法の論理ステップを説明するために提供され、この方法の範囲を限定しないと理解される。さまざまな矢印タイプおよび線タイプが、流れ図で使用される場合があるが、これらは、対応する方法の範囲を限定しないと理解される。実際に、一部の矢印または他のコネクタは、この方法の論理フローだけを示すのに使用される場合がある。例えば、矢印は、示される方法の列挙されたステップの間の指定されない持続時間の待機期間または監視期間を示す場合がある。さらに、特定の方法が行われる順序は、示される対応するステップの順序に厳密に従っても従わなくてもよい。
図7に、上で説明した逐次化再初期設定装置400と共に実行できる再初期設定方法500の一実施形態を示す。図示の再初期設定方法500は、障害認識モジュール426が、ファイル・サーバ102内の逐次化障害を認識する502時に開始される。本明細書では詳細には説明しないが、障害認識モジュール426は、いくつかの実施形態で、異なるタイプの逐次化障害の間で区別することができる。検出502された逐次化障害のタイプに応じて、逐次化再初期設定装置400は、逐次化再初期設定を開始しないと判定することができる。しかし、説明する実施形態では、逐次化再初期設定装置400は、逐次化再初期設定を開始する。
逐次化障害を認識502した後に、ローカルの逐次化再初期設定装置400は、ローカルのファイル・サーバ102が逐次化障害を訂正するために再初期設定されることを、処理クラスタ100内のリモートのファイル・サーバ102のそれぞれに通知する504。一実施形態で、バック・エンド・モジュール404は、予想される逐次化再初期設定についてリモートのファイル・サーバ102に通知504するように構成された通知モジュール(図示せず)を含むことができる。もう1つの実施形態で、通知モジュールを、障害認識モジュール426内、クラスタ装置430内、または逐次化再初期設定装置400内の別のモジュールもしくは装置内に含めることができる。ある種の実施形態で、通知モジュールは、リモートのファイル・サーバ102に正しく通知504するために、結合ファシリティ106と通信することができる。
すべてのリモートのファイル・サーバ102に通知504したならば、静止モジュール422が、後続の再初期設定動作の前の静止期間を開始する506。上で図6に関して説明したように、新しいタスクまたは進行中のタスクあるいはその両方を、静止期間中に否認しまたは延期することができる。静止期間の1つの利益は、接続/位置データ212を再初期設定の前に安定化することが可能になることである。そうでなければ、接続/位置データ212が、逐次化再初期設定が行われる時に安定していない場合に、新しい逐次化データ222が不正になる場合がある。静止期間中に完了されないまたは安定化されないタスクを、ある種の実施形態で、終了することができる。
接続/位置データ212が安定し、静止期間が終わったならば、廃棄モジュール424は、既存の逐次化データ222を廃棄する508。一実施形態で、廃棄モジュール424は、既存の逐次化データ222だけを廃棄508し、それ以外は廃棄しないものとすることができる。もう1つの実施形態で、廃棄モジュール424は、完了権限224、バック・エンド・モジュール404のすべてまたは一部、ならびに逐次化データ222を廃棄することができる。上で説明したように、廃棄モジュール424は、ファイル・サーバ・アドレス空間202bを完全に廃棄508するためにオペレーティング・システム機能を呼び出すことができる。
バック・エンド・モジュール404が、逐次化データと共に廃棄される場合に、フロント・エンド・モジュール402は、その後、逐次化モジュール420を含めてバック・エンド・モジュール404を再ビルドすることができる。次に、逐次化モジュール420は、逐次化再初期設定中にフロント・エンド・データ210内で安定したままになる接続/位置データ212から逐次化データ222を再ビルドする510。新しい逐次化データ222は、データ・アクセス要求のランダムな到着からではなく、安定した接続/位置データ212から再ビルドされるので、逐次化衝突がないと期待される。この形で、新しい逐次化データ222は、堅牢であり、後続の逐次化障害につながらないと期待される。逐次化データ222の再ビルド510を、下で図8に関してより詳細に説明する。
逐次化データ222が再ビルド510されたので、ファイル・サーバ102は、逐次化再初期設定が完了したことを、処理クラスタ100内のリモートのファイル・サーバ102に通知する512。一実施形態で、上で説明した通知モジュールが、この通知動作を実行することができる。ファイル・サーバ102は、新しい逐次化データ222を使用してデータ・アクセス要求の処理を再開して、共用ストレージ・デバイス104への逐次化されたアクセスを管理することができる。図示の再初期設定方法500は、その後、終了する。
図8に、図7に示した再初期設定方法500の逐次化再ビルド動作510の例として与えられる再ビルド方法600の一実施形態を示す。図示の再ビルド方法600は、新しいファイル・サーバ・アドレス空間202bがメモリ200内で作成される602時に開始される。これは、もちろん、以前のファイル・サーバ・アドレス空間202bが上で説明されたように破棄されたことを前提とする。次に、新たに作成されたファイル・サーバ・アドレス空間202bにバック・エンド・モジュール404を再ロードする604。言い換えると、逐次化モジュール420、静止モジュール422、廃棄モジュール424などを、新しいファイル・サーバ・アドレス空間202bに保管することができる。
次に、逐次化モジュール420を呼び出して、一実施形態で、新しい逐次化データ222を生成する。これを行うために、逐次化モジュール420は、接続/位置データ212を含むクライアント・アドレス空間202aをメモリ200から探索することができる。具体的に言うと、逐次化モジュール420は、各アドレス空間202を見つけ606、特定のアドレス空間202が接続/位置データ212を含むかどうかを判定する608。
逐次化モジュール420が、再初期設定方法500に関して説明した廃棄動作508中に手付かずのままにされるクライアント・アドレス空間202aを識別したならば、逐次化モジュール420は、逐次化データ222の再ビルドを開始することができる。具体的に言うと、逐次化モジュール420は、アプリケーション識別子フィールド302、ディレクトリ識別子フィールド304、およびファイル識別子フィールド306(ならびに、適用可能な場合に他の類似する識別子フィールド)に置かれた接続データを識別する610。逐次化モジュール420は、位置識別子フィールド308に置かれた位置データも識別する612。
次に、逐次化モジュール420は、識別された接続/位置データ212を使用して、新しいファイル・サーバ・アドレス空間202b内に新しい逐次化データ222を作成する614。逐次化モジュール420は、処理すべき接続/位置データ212がもうないと判定する616まで、クライアント・アドレス空間202aからの接続/位置データ212の読取と、ファイル・サーバ・アドレス空間202bへの新しい逐次化データ222の書込とを継続する。一実施形態で、逐次化モジュール420は、クライアント・アドレス空間202aのすべてを探索したことを判定する616。図示の再ビルド方法600は、その後、終了する。
ある種の実施形態で、ファイル・サーバ102を静止させ506、既存の逐次化データ222を廃棄し508、新しい逐次化データ222を再ビルドする510のに必要な総時間は、数十秒になる可能性がある。有利なことに、この形での逐次化データ222の再初期設定は、ファイル・サーバ102を電源遮断することを必要としない。さらに、図示の再初期設定方法500は、有益に、実行中のアプリケーション処理に大きくは割り込まないが、データ・アクセス要求は、おそらく、2〜3秒以上延期される可能性がある。
本発明は、その本質的特性から逸脱せずに他の特定の形で実施することができる。説明された実施形態は、すべての態様において、制限的ではなく例示的としてのみ考えられなければならない。したがって、本発明の範囲は、前述の説明によるのではなく、添付の特許請求の範囲によって示される。添付の特許請求の範囲の同等性の意味および範囲に含まれるすべての変更が、この範囲に含まれなければならない。
本発明によるアプリケーション環境の一実施形態を示す概略ブロック図である。 本発明によるストレージ・システム・クラスタの一実施形態を示す概略ブロック図である。 本発明による電子メモリ・デバイスの一実施形態を示す概略ブロック図である。 本発明による接続/位置データの一実施形態を示す概略ブロック図である。 本発明による逐次化データの一実施形態を示す概略ブロック図である。 本発明による逐次化再初期設定装置の一実施形態を示す概略ブロック図である。 本発明による再初期設定方法の一実施形態を示す概略流れ図である。 本発明による再ビルド方法の一実施形態を示す概略流れ図である。

Claims (10)

  1. ファイル・サーバを再初期設定する装置であって、ファイル・サーバ上のファイル・システム逐次化障害を認識するように構成された障害認識モジュールと、前記逐次化障害に応答してファイル・サーバ・アドレス空間内に置かれたオープン接続を記述する既存の逐次化データを廃棄するように構成された廃棄モジュールと、オープン接続の位置を記述する、クライアント・アドレス空間内に置かれた既存の接続/位置データからオープン接続の新しい逐次化データを生成するように構成された逐次化モジュールとを含む装置。
  2. 前記廃棄モジュールが、さらに、前記ファイル・サーバ・アドレス空間を破棄するためにオペレーティング・システム機能を呼び出すように構成される、請求項1に記載の装置。
  3. 前記逐次化モジュールが、さらに、新しいファイル・サーバ・アドレス空間を作成するためにオペレーティング・システム機能を呼び出すように構成される、請求項1または2に記載の装置。
  4. 前記逐次化モジュールが、さらに、前記新しいファイル・サーバ・アドレス空間に前記新しい逐次化データを保管するように構成される、請求項1ないし3のいずれかに記載の装置。
  5. 前記逐次化モジュールが、さらに、複数のアドレス空間を探索し、前記クライアント・アドレス空間内の前記既存の接続/位置情報を見つけるように構成される、請求項1ないし4のいずれかに記載の装置。
  6. ファイル・サーバを再初期設定する方法であって、ファイル・サーバ上のファイル・システム逐次化障害を認識することと、前記逐次化障害に応答してファイル・サーバ・アドレス空間内に置かれたオープン接続を記述する既存の逐次化データを廃棄することと、オープン接続の位置を記述する、クライアント・アドレス空間内に置かれた既存の接続/位置データからオープン接続を記述する新しい逐次化データを生成することとを含む方法。
  7. 前記ファイル・サーバ・アドレス空間を破棄するためにオペレーティング・システム機能を呼び出すことをさらに含む、請求項6に記載の方法。
  8. 新しいファイル・サーバ・アドレス空間を作成するためにオペレーティング・システム機能を呼び出すことをさらに含む、請求項6または7に記載の方法。
  9. 前記新しいファイル・サーバ・アドレス空間に前記新しい逐次化データを保管することと、前記クライアント・アドレス空間内の前記既存の接続/位置情報を見つけるために複数のアドレス空間を探索することとをさらに含む、請求項6ないし8のいずれかに記載の方法。
  10. コンピュータ・システムにロードされ、そこで実行される時に、前記コンピュータ・システムに請求項6ないし9のいずれかに記載の方法の全ステップを実行させるコンピュータ・プログラム。
JP2007528809A 2004-09-01 2005-07-21 ファイル・システム逐次化再初期設定の装置、システム、および方法 Active JP4771378B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/932,200 2004-09-01
US10/932,200 US7627578B2 (en) 2004-09-01 2004-09-01 Apparatus, system, and method for file system serialization reinitialization
PCT/EP2005/053541 WO2006024581A1 (en) 2004-09-01 2005-07-21 Apparatus, system, and method for file system serialization reinitialization

Publications (3)

Publication Number Publication Date
JP2008511884A true JP2008511884A (ja) 2008-04-17
JP2008511884A5 JP2008511884A5 (ja) 2008-07-17
JP4771378B2 JP4771378B2 (ja) 2011-09-14

Family

ID=34979297

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007528809A Active JP4771378B2 (ja) 2004-09-01 2005-07-21 ファイル・システム逐次化再初期設定の装置、システム、および方法

Country Status (9)

Country Link
US (1) US7627578B2 (ja)
EP (1) EP1787223B1 (ja)
JP (1) JP4771378B2 (ja)
KR (1) KR100974156B1 (ja)
CN (1) CN100485676C (ja)
AT (1) ATE382904T1 (ja)
DE (1) DE602005004166T2 (ja)
MX (1) MX2007002204A (ja)
WO (1) WO2006024581A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156507B2 (en) * 2006-12-08 2012-04-10 Microsoft Corporation User mode file system serialization and reliability
US20100332549A1 (en) * 2009-06-26 2010-12-30 Microsoft Corporation Recipes for rebuilding files
US8359497B2 (en) 2010-06-18 2013-01-22 International Business Machines Corporation Determining the cause of serialization failures
US10542049B2 (en) 2014-05-09 2020-01-21 Nutanix, Inc. Mechanism for providing external access to a secured networked virtualization environment
US10540164B2 (en) 2016-02-12 2020-01-21 Nutanix, Inc. Virtualized file server upgrade
US11218418B2 (en) 2016-05-20 2022-01-04 Nutanix, Inc. Scalable leadership election in a multi-processing computing environment
US10824455B2 (en) 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US10728090B2 (en) 2016-12-02 2020-07-28 Nutanix, Inc. Configuring network segmentation for a virtualization environment
US11562034B2 (en) 2016-12-02 2023-01-24 Nutanix, Inc. Transparent referrals for distributed file servers
US11568073B2 (en) 2016-12-02 2023-01-31 Nutanix, Inc. Handling permissions for virtualized file servers
US11294777B2 (en) 2016-12-05 2022-04-05 Nutanix, Inc. Disaster recovery for distributed file servers, including metadata fixers
US11281484B2 (en) 2016-12-06 2022-03-22 Nutanix, Inc. Virtualized server systems and methods including scaling of file system virtual machines
US11288239B2 (en) 2016-12-06 2022-03-29 Nutanix, Inc. Cloning virtualized file servers
CN109460304B (zh) * 2017-09-06 2022-06-03 阿里巴巴集团控股有限公司 一种跨应用的通知展示、通知内容封装方法和装置
US11086826B2 (en) 2018-04-30 2021-08-10 Nutanix, Inc. Virtualized server systems and methods including domain joining techniques
US11194680B2 (en) 2018-07-20 2021-12-07 Nutanix, Inc. Two node clusters recovery on a failure
US11770447B2 (en) 2018-10-31 2023-09-26 Nutanix, Inc. Managing high-availability file servers
US11599551B2 (en) 2020-03-30 2023-03-07 Oracle International Corporation Deserialization of stream objects using multiple deserialization algorithms
US11477258B2 (en) * 2020-03-30 2022-10-18 Oracle International Corporation Serialization of objects using multiple serialization algorithms
US11768809B2 (en) 2020-05-08 2023-09-26 Nutanix, Inc. Managing incremental snapshots for fast leader node bring-up
US11256480B1 (en) 2021-02-09 2022-02-22 Oracle International Corporation Deserialization of stream objects using constant-foldable method handles
US11288045B1 (en) 2021-02-09 2022-03-29 Oracle International Corporation Object creation from structured data using indirect constructor invocation

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095421A (en) * 1989-08-17 1992-03-10 International Business Machines Corporation Transaction processing facility within an operating system environment
CA2025120A1 (en) * 1989-09-28 1991-03-29 John W. White Portable and dynamic distributed application architecture
US5185871A (en) 1989-12-26 1993-02-09 International Business Machines Corporation Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
JPH0433139A (ja) * 1990-05-30 1992-02-04 Fujitsu Ltd ファィルアクセス方式
DE4216871C2 (de) * 1991-05-21 2001-09-06 Digital Equipment Corp Ausführungsordnen zum Sicherstellen der Serialisierbarkeit verteilter Transaktionen
DE69422743T2 (de) * 1993-03-30 2000-06-08 Fujitsu Ltd Endlosschleife-Erkennungsgerät
JPH0778093A (ja) * 1993-09-08 1995-03-20 Hitachi Ltd デッドロックリトライ方式
US6920467B1 (en) * 1993-11-26 2005-07-19 Canon Kabushiki Kaisha Avoiding unwanted side-effects in the updating of transient data
US5490270A (en) * 1994-06-16 1996-02-06 International Business Machines Corporation Simultaneous updates to the modification time attribute of a shared file in a cluster having a server and client nodes
US5630047A (en) * 1995-09-12 1997-05-13 Lucent Technologies Inc. Method for software error recovery using consistent global checkpoints
US5774717A (en) * 1995-12-15 1998-06-30 International Business Machines Corporation Method and article of manufacture for resynchronizing client/server file systems and resolving file system conflicts
US6101497A (en) * 1996-05-31 2000-08-08 Emc Corporation Method and apparatus for independent and simultaneous access to a common data set
US5950218A (en) 1996-11-04 1999-09-07 Storage Technology Corporation Method and system for storage and retrieval of data on a tape medium
US6192389B1 (en) * 1997-03-28 2001-02-20 International Business Machines Corporation Method and apparatus for transferring file descriptors in a multiprocess, multithreaded client/server system
US5960436A (en) 1997-08-29 1999-09-28 International Business Machines Corp. Transaction compaction for replay of transactions from client to server
SE512880C2 (sv) * 1998-07-03 2000-05-29 Ericsson Telefon Ab L M Ett cacheservernät
AU2322900A (en) * 1999-01-29 2000-08-18 Degitaldesign, ltd. Data transmission method, computer-readable medium, and data transmission apparatus
JP3763992B2 (ja) 1999-03-30 2006-04-05 富士通株式会社 データ処理装置及び記録媒体
US6351744B1 (en) 1999-05-28 2002-02-26 Unisys Corporation Multi-processor system for database management
US6751617B1 (en) * 1999-07-12 2004-06-15 Xymphonic Systems As Method, system, and data structures for implementing nested databases
US6658415B1 (en) 2000-04-28 2003-12-02 International Business Machines Corporation Monitoring and managing user access to content via a universally accessible database
AU2001284723A1 (en) 2000-08-03 2002-02-18 Morphics Technology, Inc. Dynamically reconfigurable universal transmitter system
WO2002023798A1 (en) 2000-09-14 2002-03-21 Probix, Inc. System for protecting objects distributed over a network
US6665814B2 (en) 2000-11-29 2003-12-16 International Business Machines Corporation Method and apparatus for providing serialization support for a computer system
AU2002228973A1 (en) 2000-12-18 2002-07-01 Trevalon, Inc. An improved network server
CA2329559A1 (en) 2000-12-22 2002-06-22 Ibm Canada Limited-Ibm Canada Limitee Method and apparatus for generating serialization code for representing a model in different type systems
US6928488B1 (en) 2001-06-27 2005-08-09 Microsoft Corporation Architecture and method for serialization and deserialization of objects
US7240114B2 (en) * 2001-09-25 2007-07-03 Hewlett-Packard Development Company, L.P. Namespace management in a distributed file system
JP4207520B2 (ja) * 2001-10-02 2009-01-14 株式会社日立製作所 排他制御装置及び排他制御方法
US20030120680A1 (en) 2001-11-16 2003-06-26 Rakesh Agrawal Method for directly providing content and services via a computer network
US6959310B2 (en) * 2002-02-15 2005-10-25 International Business Machines Corporation Generating data set of the first file system by determining a set of changes between data stored in first snapshot of the first file system, and data stored in second snapshot of the first file system
US6886064B2 (en) 2002-03-28 2005-04-26 International Business Machines Corporation Computer system serialization control method involving unlocking global lock of one partition, after completion of machine check analysis regardless of state of other partition locks
US7526519B2 (en) * 2002-05-01 2009-04-28 Bea Systems, Inc. High availability application view deployment
US7216258B2 (en) 2002-05-17 2007-05-08 Xiotech Corporation Method and apparatus for recovering from a non-fatal fault during background operations
US6988099B2 (en) * 2002-06-27 2006-01-17 Bea Systems, Inc. Systems and methods for maintaining transactional persistence
US6957221B1 (en) 2002-09-05 2005-10-18 Unisys Corporation Method for capturing a physically consistent mirrored snapshot of an online database from a remote database backup system
US7089253B2 (en) * 2002-09-13 2006-08-08 Netezza Corporation Computer method and system for concurrency control using dynamic serialization ordering
EP1573464A4 (en) 2002-11-08 2006-09-20 Dun & Bradstreet Inc SYSTEM AND METHOD FOR CREATING ELECTRONIC BUSINESS INFORMATION REPORTS AND RELATED PRODUCTS
US7080145B2 (en) 2003-02-28 2006-07-18 Bea Systems, Inc. Method for performing resource pool maintenance by maintaining resources in several deques
US20050010615A1 (en) 2003-04-11 2005-01-13 Sun Microsystems, Inc. Multi-node computer system implementing memory-correctable speculative proxy transactions
JP2005005909A (ja) * 2003-06-10 2005-01-06 Sony Ericsson Mobilecommunications Japan Inc 競合管理プログラム,競合管理プログラムが記憶された記憶媒体,競合管理方法及び電子機器
US7010657B2 (en) 2003-07-21 2006-03-07 Motorola, Inc. Avoiding deadlock between storage assignments by devices in a network
US7269607B2 (en) 2003-09-29 2007-09-11 International Business Machines Coproartion Method and information technology infrastructure for establishing a log point for automatic recovery of federated databases to a prior point in time
US20050091231A1 (en) 2003-10-24 2005-04-28 Shankar Pal System and method for storing and retrieving XML data encapsulated as an object in a database store
US20050289559A1 (en) * 2004-06-08 2005-12-29 Daniel Illowsky Method and system for vertical layering between levels in a processing unit facilitating direct event-structures and event-queues level-to-level communication without translation

Also Published As

Publication number Publication date
JP4771378B2 (ja) 2011-09-14
KR20070049155A (ko) 2007-05-10
CN100485676C (zh) 2009-05-06
KR100974156B1 (ko) 2010-08-04
DE602005004166D1 (de) 2008-02-14
MX2007002204A (es) 2007-04-20
WO2006024581A1 (en) 2006-03-09
ATE382904T1 (de) 2008-01-15
EP1787223B1 (en) 2008-01-02
EP1787223A1 (en) 2007-05-23
CN1989500A (zh) 2007-06-27
DE602005004166T2 (de) 2009-01-02
US20060047685A1 (en) 2006-03-02
US7627578B2 (en) 2009-12-01

Similar Documents

Publication Publication Date Title
JP4771378B2 (ja) ファイル・システム逐次化再初期設定の装置、システム、および方法
US6192514B1 (en) Multicomputer system
US7814065B2 (en) Affinity-based recovery/failover in a cluster environment
US7584222B1 (en) Methods and apparatus facilitating access to shared storage among multiple computers
US8635193B2 (en) Cluster-wide read-copy update system and method
CA2583650C (en) Oplogging for online recovery in direct connection client server systems
US7111291B2 (en) Data management application programming interface session management for a parallel file system
US5222217A (en) System and method for implementing operating system message queues with recoverable shared virtual storage
US6631478B1 (en) Technique for implementing high performance stable storage hierarchy in a computer network
US6424988B2 (en) Multicomputer system
US20050071811A1 (en) Achieving autonomic behavior in an operating system via a hot-swapping mechanism
JPH0540682A (ja) アトミシテイを有する記憶装置の高可用性耐故障再配置
US20060053260A1 (en) Computing system with memory mirroring and snapshot reliability
Zhang et al. Partial failure resilient memory management system for (cxl-based) distributed shared memory
US7711721B2 (en) Apparatus, system, and method for suspending a request during file server serialization reinitialization
US7716305B2 (en) Apparatus, system, and method for preserving cluster level serialization during file server serialization reinitialization
US7490088B2 (en) Apparatus, system, and method for preserving connection/position data integrity during file server serialization reinitialization
KR100380996B1 (ko) 자바 가상머신에서의 분산 객체간 일관성 유지 및 메모리분산 공유 시스템 및 그 방법
Weiler et al. Speed Log: A Generic Log Service Supporting Efficient Node-Crash Recovery
Taylor Transactions for Amadeus

Legal Events

Date Code Title Description
A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20080122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080527

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080527

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110215

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20110301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110511

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110607

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20110607

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110615

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140701

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4771378

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150