JP2005234919A - クラスタメモリファイルシステム - Google Patents

クラスタメモリファイルシステム Download PDF

Info

Publication number
JP2005234919A
JP2005234919A JP2004043832A JP2004043832A JP2005234919A JP 2005234919 A JP2005234919 A JP 2005234919A JP 2004043832 A JP2004043832 A JP 2004043832A JP 2004043832 A JP2004043832 A JP 2004043832A JP 2005234919 A JP2005234919 A JP 2005234919A
Authority
JP
Japan
Prior art keywords
node
memory
memory storage
file
cluster
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
JP2004043832A
Other languages
English (en)
Other versions
JP4300133B2 (ja
Inventor
Takahito Muraki
隆仁 村木
Tsuneo Iida
恒雄 飯田
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.)
Hitachi Software Engineering Co Ltd
Hitachi Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Hitachi Ltd
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 Hitachi Software Engineering Co Ltd, Hitachi Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2004043832A priority Critical patent/JP4300133B2/ja
Publication of JP2005234919A publication Critical patent/JP2005234919A/ja
Application granted granted Critical
Publication of JP4300133B2 publication Critical patent/JP4300133B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】
クラスタシステムで共有可能な高速で大容量のメモリファイルシステムを提供し、特に大容量の入出力データを扱うアプリケーションプログラムのスループットを向上し、さらに高可用性メモリファイルシステムを提供することでメモリファイルシステムの適用分野を拡大することを目的とする。
【解決手段】
クラスタシステムの複数ノードの主記憶から各々メモリ領域を確保し、それらを連結して一つのグローバルなメモリストレージを構成することで大容量メモリファイルシステムを実現する。また、複数ノードのメモリ領域を利用してミラーリングすることにより、ノード障害やノード間通信の経路障害が発生した場合にアプリケーションを中断することなく続行可能な高可用性を実現する。
【選択図】 図1

Description

本発明は、クラスタシステムで共有可能なメモリファイルシステムに関する。
従来、クラスタシステムにおけるファイル共有技術として、例えば、下記特許文献1及び特許文献2に記載のものが知られている。
下記特許文献1に記載のものは、SAN(Storage Area Network(ストレージエリアネットワーク))環境におけるファイル共有技術に関するものである。 これは、磁気ディスク装置をSANで物理的に複数のコンピュータに接続してファイルを共有し、分散共有メモリをベースにそれぞれのプロセスの空間内にファイルをマッピングしてファイルへのアクセスを主記憶へのアクセスとして処理するようにしたものである。
下記特許文献2に記載のものは、クラスタシステム内のあるノードに物理的に接続されたディスクを仮想化する仮想ディスクシステムによって共有する技術に関するものである。
これは、物理的な一つの記憶装置に対して物理的に接続されていないノードからの要求に対して一貫性を保証したアクセス手段を提供するものである。
下記特許文献3に記載のものは、不揮発性メモリを用いたメモリファイルシステムに関するものである。不揮発性メモリ上にメモリファイルシステムを構築することでメモリファイルシステムの信頼性を向上させるものである。
特開2002−268933号公報 特表2002−514813号公報 特開平7−201190号公報
上記特許文献1に記載の技術は、メモリアクセスと同様にファイルアクセスを実現するために分散共有メモリにファイルをマップする技術で、ファイルをプロセスの空間にマップするためアクセスは高速であるが、使用できるファイルのサイズがプロセス空間に制限される。アプリケーションプログラム本来の処理を行うために必要な仮想メモリ空間と、入出力を高速化するためにファイルをマップする仮想メモリ空間をひとつのプロセス空間に共存させることになるため、メモリを多く必要とするアプリケーションプログラムでは必然的にマップできるファイルのサイズが制限されるため両者はトレードオフとなる。また、ファイルをプロセスの空間にマップしなくとも、メモリファイルシステムをアプリケーションプログラムの実行ノード上に配置すれば、物理メモリの不足によるスラッシングが発生しやすくなりパフォーマンス低下の要因ともなり得る。入出力データ量の増加に伴ってメモリファイルシステムと磁気ディスクの性能差は顕著に現れ、その効果を発揮するが、実際には大容量のデータはメモリファイルシステムに置けない、という問題がある。
上記特許文献2の技術は、物理的な装置を仮想化する点で、磁気ディスクではなくあるノード上のメモリ領域を仮想装置として同様にトランスペアレントなアクセスを実現することはできるが、この場合も前述の特許文献1の技術と同様に1つのノードの物理メモリ容量の制限を受けるものである。
また、メモリファイルシステムは高性能である反面、ひとたび障害が発生すればデータを消失するためきわめて信頼性が低いという重大な欠点がある。信頼性が低いためにメモリファイルシステムは積極的には利用されていない。磁気ディスクを使用した共有可能なクラスタファイルシステムは、特許文献2に記載の技術に見られるように高可用性を実現した例があるが、メモリファイルシステムに関して高可用性を実現した例は見当たらない。
上記特許文献3に記載の技術は不揮発性メモリとバッテリによってデータ消失を防ぐ方式によってメモリファイルシステムの欠点をカバーするものであるが、専用のハードウェアを必要とし、また複数コンピュータでの共有手段がないため、クラスタシステムで共有可能なファイルシステムが構築できない。
本発明は、複数ノードの主記憶を利用することで、従来はメモリ上に必要な容量が確保できないために、磁気ディスク上にファイルを作成するしかなかった大容量のファイルが作成可能なクラスタメモリファイルシステムを得ることを目的とする。
本発明は、クラスタシステムにおけるアプリケーション実行ノードとメモリファイルシステムを構築するノードとをそれぞれ分離可能とすることで、アプリケーションに対して実行ノードの自由度を与え、実行ノードにおけるメモリのトレードオフを解消する、クラスタメモリファイルシステムを得ることを目的とする。
本発明は、アプリケーションが書き込んだデータを、複数ノードにミラーリングすることで、ひとつのノードで障害が発生してもデータを消失することなくアプリケーションを続行可能とする高可用性を備えたクラスタメモリファイルシステムを得ることを目的とする。
本発明は、クラスタシステム内に分散して配置されたクラスタメモリファイルシステムをデータベースと管理デーモンによって一元管理することで、クラスタシステム内の任意のノードで実行されるアプリケーションに対してはメモリファイルシステムが存在するノードを抽象化すること、異なるノード間でファイルを共有する場合のアクセスの整合性を維持すること、さらにシステム管理者に対しては運用管理の容易性を提供することを目的とする。
本発明は、ファイルオープン時に管理デーモンから該ファイルの管理情報とマップテーブルを受け取り、アプリケーション実行ノードにキャッシュすることで同一ノードからの同一ファイルオープン処理を高速化し、入出力要求時に管理デーモンに問い合わせをすることなく直接物理的に存在するノードに入出力要求を転送し高速化することを目的とする。
発明は、グローバルメモリストレージにクラスタシステム内の任意のノードからアクセス可能とする一方で、実際のシステム運用において利用目的ごとに特定のノード群を割り当てる運用があり、このような場合にはアクセスを許可するノード群を限定する手段を提供することを目的とする。
上記目的を達成するため、本発明は、複数ノードの主記憶を利用してひとつの連続する仮想的なメモリストレージを定義して構成する手段と、メモリストレージ上にファイルシステムを構築する手段と、メモリストレージおよびメモリファイルシステムに関する定義情報およびファイル管理情報を外部記憶装置上のデータベースに格納することで障害やクラスタシステムの再起動等によって定義情報を消失することなく再構成する手段と、管理デーモンによるデータベースの一元管理により物理構成を抽象化する手段と、アプリケーションからの入出力要求に対してアプリケーションが指定するファイルオフセットを物理的なノード位置とノード内アドレスに変換して入出力経路を自動的に選択する手段と、複数ノードのメモリ領域を用いてミラーリングすることで高可用化する手段とを備える。
クラスタシステムの中で特に科学技術計算分野に最適化したハイパフォーマンスコンピューティングクラスタにおいては、アプリケーションプログラムを実行する演算ノードと入出力を主に処理するI/Oノードとを分離する運用が多く見られる。演算ノードではアプリケーションプログラムが最大限メモリを使用して演算を行い、演算結果をI/Oノードに転送して磁気ディスクに書き出す。I/Oノードでは入出力を主に処理するため、演算ノードに比べてメモリやCPUの負荷が低い。本発明はこのリソース消費傾向に着目し、I/Oノード群のメモリを利用してメモリファイルシステムを構築することで、アプリケーションプログラムでの最大限のメモリ使用と同時に、大容量のメモリファイルシステムによってI/O時間を短縮してスループットの向上が図られる。近年のノード間ネットワークの性能向上は著しく、レイテンシが数マイクロ秒のものが主流となりつつあり、ノード間転送を行っても物理的に接続された磁気ディスクに対して本発明のメモリファイルシステムは性能優位性がある。
本発明によれば、クラスタシステムにおけるクラスタ共有ファイルシステムで、アプリケーションプログラムが使用するメモリ量に影響を与えずに、ノードの物理メモリ容量を越える大容量のメモリファイルシステムを得ることができる。更に本発明では、メモリファイルシステムの信頼性を向上させることで、従来は信頼性の理由により適用できなかった用途にも、メモリファイルシステムの適用分野を拡大することができる。
以下、本発明を実施する場合の一形態を図面を参照して具体的に説明する。
図1は、本発明の実施例のグローバルメモリストレージとクラスタメモリファイルシステムの構成を示すブロック図である。システムを構成する複数のノードは、アプリケーションプログラムを実行するAPノード12D、12EとAPノードに比べて負荷が軽くAPノードに使用されていないメモリを提供するI/Oノード12A〜Cとに分かれている。
グローバルメモリストレージ構成ノード群の各ノードの主記憶上に確保されたメモリ領域をGMS(Global Memory System)領域と呼び、図1の実施例においては、ノード12Aの主記憶に確保されたGMS領域13A、ノード12Bの主記憶に確保されたGMS領域13B、およびノード12Cの主記憶に確保されたGMS領域13Cを連結して一つの連続するグローバルメモリストレージ(GMS)11を構成している。
アプリケーションプログラム実行ノード12Dでは、アプリケーションプログラム14Dの入出力要求を受けるクラスタメモリファイルシステム17Dとクライアントドライバであってクラスタメモリファイルシステム17Dからの入出力要求を受けるGMSドライバクライアント15Dが動作する。同様に、アプリケーションプログラム実行ノード12Eでは、アプリケーションプログラム14Eの入出力要求を受けるクラスタメモリファイルシステム17Eとクラスタメモリファイルシステム17Eからの入出力要求を受けるGMSドライバクライアント15Eが動作する。
グローバルメモリストレージ11を構成する、I/Oノードであるノード12A、ノード12B、およびノード12Cでは、それぞれサーバドライバであるGMSドライバサーバ16A、16Bおよび16Cが動作し、GMSドライバクライアントからの入出力要求を受けて各ノードのGMS領域へのアクセスを行う。
管理デーモン18は、アプリケーションプログラム実行ノードやグローバルメモリストレージ11を構成するノードとは異なるノード12Fで動作させることができる。デーモンは、ユーザプログラムの一種であり、通常はシステム立ち上げ時にシステムによって起動され、システム稼動中は動作し続け、システムに関連したサービスを提供する。管理デーモン18は、クラスタ内に定義されているすべてのグローバルメモリストレージと各グローバルメモリストレージ上に作成されているクラスタメモリファイルシステムのすべてのファイル情報を、データベース19を用いて管理する。
図1の実線の矢印は、グローバルメモリストレージへのアクセスの流れを示している。 アプリケーションプログラム14Dが入出力要求を発行すると、これをクラスタメモリファイルシステム17Dが受けてファイル内のオフセットをグローバルメモリストレージ11内のオフセットに変換してGMSドライバクライアント15Dに入出力要求を発行する。 GMSドライバクライアント15Dは、仮想メモリストレージであるグローバルメモリストレージ内のオフセットを物理的なノード位置とノード内アドレスに変換する。
アクセス要求がGMS領域13Aの範囲ならばGMSドライバサーバ16Aに、GMS領域13Bの範囲ならばGMSドライバサーバ16Bに、GMS領域13Cの範囲ならばGMSドライバサーバ16Cにそれぞれ入出力要求を転送する。
クラスタメモリファイルシステム17Dからの入出力要求範囲がGMS領域境界をまたぐ場合、例えばGMS領域13AとGMS領域13Bをまたぐ場合には、GMSドライバクライアント15Dは、入出力要求を分割してGMSドライバサーバ16AとGMSドライバサーバ16Bにそれぞれ入出力要求を転送する。アプリケーションプログラム14Eからの入出力要求についても、クラスタメモリファイルシステム17E、GMSドライバクライアント15Eを経由して同様の方法で入出力を処理する。
また、図1の点線の矢印は、データベース19の管理情報へのアクセスの流れを示すもので、管理情報の取得や更新を行う場合には、クラスタメモリファイルシステム17Dが管理デーモン18と通信し、管理デーモン18はデータベース19にアクセスして管理情報の取得や更新を行う。グローバルメモリストレージ内のオフセットから物理的なノード位置とオフセットに変換するストレージマップテーブルは、クラスタメモリファイルシステム17DがGMSドライバクライアント15Dに登録する。管理情報および管理情報へのアクセスについては、後述する図2から図13までの説明で詳細を示す。
図1に示した実施の形態は、本発明の典型的な実施例であり、必ずしもこのように多数のノードを必須とするものではなく、最小構成ではGMSドライバクライアント、GMSドライバサーバ、クラスタメモリファイルシステム、管理デーモンをすべてひとつのノードで動作させることもでき、また最大構成では構成ノード数に論理的な上限を設けるものでもない。あくまでも物理的なノード位置を抽象化することを特徴とするものである。
図2から図6にデータベース19の構造の一実施例を示し、以下に説明する。
図2は、データベース19の構成要素であるGMS定義データベース21を示した図である。GMS定義構成データベース21はグローバルメモリストレージの構成に関する情報を格納したもので、グローバルメモリストレージ名22、グローバルメモリストレージの状態を表すステータス23、当該グローバルメモリストレージの構成ノード群24、当該グローバルメモリストレージ容量25、ミラー属性26、閉塞パス27からなる。
グローバルメモリストレージ名22はクラスタシステム内に複数のグローバルメモリストレージが存在する場合にそれぞれを一意に特定するために用いる。ステータス23はグローバルメモリストレージがどのような状態にあるかを示すもので、”定義状態”、”使用可能状態”、”閉塞状態”、”部分閉塞状態”などの状態を示す。”定義状態”はデータベースに定義のみが存在している状態、”使用可能状態”はグローバルメモリストレージが生成されて使用可能な状態、”閉塞状態”はグローバルメモリストレージ構成ノード群の一部でノード障害またはノード間通信経路障害が検出されてノード又は通信路であるデバイスは使用不可の状態、”部分閉塞状態”はミラー属性26が有効なグローバルメモリストレージ構成ノード群の一部でノード障害またはノード間通信経路障害が検出されて一部経路が閉塞されている状態で別の経路でアクセス可能な状態であり、この場合は閉塞された経路情報を閉塞パス27に格納する。
構成ノード群24は当該グローバルメモリストレージを構成するノード群の情報を格納するもので、例えばグローバルメモリストレージ11においてはノード12A、ノード12B、ノード12Cである。グローバルメモリストレージ容量25は、構成ノード群で示される各ノードの主記憶上に確保されるGMS領域13A、GMS領域13B、GMS領域13Cの合計サイズを示す。また、ミラー属性26は、グローバルメモリストレージのミラーの有無とミラーを構成する相手サーバの識別子を有する。
図3はデータベース19の構成要素で、GMSクライアント定義データベース31を示した図である。GMSクライアント定義データベース31は、グローバルメモリストレージ名32、クライアントノード群33からなり、グローバルメモリストレージとそれにアクセスを許可されたノード群を対応付ける。
グローバルメモリストレージ名32は図2のグローバルメモリストレージ名22と対応するもので、クライアントノード群33で記述されるノード群から当該グローバルメモリストレージにアクセス可能であることを示す。例えば、グローバルメモリストレージ11においてアプリケーション実行ノード12Dおよびノード12E、他には当該グローバルメモリストレージ構成ノード群からのアクセスを許可する場合には、ノード12A、ノード12B、ノード12Cを含めて定義する。本実施例の場合、ノード12Fからのアクセス要求は拒絶される。
図4はデータベース19の構成要素であって、グローバルメモリストレージ上のクラスタメモリファイルシステムのファイル定義データベース41を示した図である。
ファイル定義データベース41は、クラスタメモリファイルシステムが、ファイル作成時にファイル定義情報を格納するデータベースで、ファイル名42、グローバルメモリストレージ名43、所有者ユーザID44、所有者グループID45、ファイルアクセス権限46、ファイルサイズ47、ファイル終端オフセット48、増分単位49、オープンモード4A、オープンカウンタ4Bからなる。
ファイル名42は、クラスタメモリファイルシステム内でファイルを一意に特定するための名称である。グローバルメモリストレージ名43は、当該ファイルがどのグローバルメモリストレージ上に存在するかを示すものである。所有者ユーザID44は、当該ファイルを作成したユーザのユーザIDである。所有者グループID45は、当該ファイルを作成した所有者が属するユーザグループのIDである。
ファイルアクセス権限46は、当該ファイルへのアクセス権限を示すもので、所有者自身、所有者グループメンバ、その他ユーザ別にそれぞれread権限、write権限の有無を設定する。クラスタメモリファイルシステムには実行形式ファイルを格納して実行することはできないため実行権限の有無の設定はない。
ファイルサイズ47は、当該ファイルの予約サイズを格納しており、当該ファイル割り当て時に要求サイズをグローバルメモリストレージから予約割り当てする。ファイル終端オフセット48は、実際にデータが書かれている終端位置をファイルの先頭からのオフセットで示す。増分単位49は、ファイル予約量を使い切って新たにファイルの増分割り当てが必要になった場合の1回あたりの増分割り当て量を示す。増分割り当てが行われた場合には増分単位49をファイルサイズ47に加算する。オープンモード4Aはファイルがreadモードでオープンされているかwriteモードでオープンされているかを示す。オープンカウンタ4Bはオープンごとに1ずつ加算し、クローズするごとに1ずつ減算する。当該ファイルを複数プロセスが共有している場合には使用しているプロセス数に等しい。ファイルの削除要求があった場合にはオープンカウンタ4Bが1以上の場合にはオープンカウンタがゼロになるまでファイルの削除を保留する。ファイル定義データベース41は、ファイル作成時にエントリを追加作成し、ファイル削除時にエントリを削除する。
図5はデータベース19の構成要素であって、グローバルメモリストレージを構成するノードごとのスペースに関する情報を格納したGMSスペース管理データベース51を示した図である。当該データベースエントリは、グローバルメモリストレージが構成処理されて使用可能な状態になった場合に作成されるもので、具体的にはステータス23が”定義状態”から”使用可能状態”になるときに当該データベースエントリが作成される。GMSスペース管理データベース51は、グローバルメモリストレージ名52、開始オフセット53、サイズ54、ノード識別子55、ノード内開始アドレス56からなる。
グローバルメモリストレージ名52は、グローバルメモリストレージを一意に特定するもので、以降の項目は当該グローバルメモリストレージを構成する個々のノードごとの情報を格納する。開始オフセット53は、物理的に異なるノードに分散している個々のメモリ領域のグローバルメモリストレージ内での境界であり、グローバルメモリストレージの先頭からのオフセットで示す。サイズ54は、物理的に同一ノードに領域が存在する範囲を示す。ノード識別子55は、開始オフセット53で始まるサイズ54の連続する領域が物理的に存在するノード位置を示す。ノード内開始アドレス56は、ノード識別子55上での実際のアドレスを示す。
図6はデータベース19の構成要素であって、CMFS(Cluster Memory File System)スペース管理データベース61を示した図である。当該データベースは、クラスタメモリファイルシステムがグローバルメモリストレージ上にファイルを作成した場合に作成するもので、グローバルメモリストレージ上の使用領域を管理するものである。CMFSスペース管理データベース61は、ファイル名62、エクステント番号63、ファイル内開始オフセット64、エクステントサイズ65、グローバルメモリストレージ内開始オフセット66からなる。
ファイル名62は、クラスタメモリファイルシステム内でファイルを一意に特定する名称である。エクステント番号63は、グローバルメモリストレージ上で連続するひとつの割り当て単位をエクステントと呼び、ファイル内オフセットの小さい方から昇順に割り当てる「0」から始まるシーケンス番号である。グローバルメモリストレージがノードをまたがる場合には、クラスタメモリファイルシステムはその物理的な境界によってもエクステント分割してスペース管理を行う。ファイル内開始オフセット64は、エクステント番号63のファイルの先頭からのオフセットを示す。エクステントサイズ65は、エクステント番号63のサイズを示す。グローバルメモリストレージ内オフセット66は、エクステント番号63のエクステントが存在するグローバルメモリストレージの先頭からのオフセットを示す。
図7にファイル空間とグローバルメモリストレージ空間の対応例を示す。ノード12A、ノード12B、ノード12Cに各10GB、合計30GBのグローバルメモリストレージ上にファイルAを15GB割り当て、次にファイルBを10GB割り当て、その次にファイルAを5GB拡張した場合のファイルエクステントとグローバルメモリストレージ上の配置例を示している。
図7の(a)の矢印は、グローバルメモリストレージがノードをまたがる物理的な境界のオフセットを示している。(a)の矢印が指す位置は、GMSスペース管理データベース51の開始オフセット53に格納されるグローバルメモリストレージ内オフセットである。 (b)の矢印は、ファイルのエクステント境界を指している。ファイルエクステントは、ファイルスペースの割り当て単位の先頭と(a)で示したグローバルメモリストレージの物理境界で分割して管理する。(b)の矢印が指す位置は、CMFSスペース管理データベース61のファイル内開始オフセット64に格納されるファイル内のオフセットである。(c)の矢印は、(b)のファイルのエクステント境界に対応するグローバルメモリストレージ内のオフセットを示している。(c)の矢印が指す位置は、CMFSスペース管理データベース61のグローバルメモリストレージ内開始オフセット66に格納されるグローバルメモリストレージ内オフセットである。
次に、グローバルメモリストレージの定義処理シーケンスについて図8に示す。グローバルメモリストレージの定義処理はクラスタシステム内の任意のノードで実行することができる。定義処理は定義パラメータの入力を受けると(ステップ81)、管理デーモンに定義パラメータとともに定義要求メッセージを送信する(ステップ82)。管理デーモンは定義要求メッセージを受信すると(ステップ83)、受信した定義要求メッセージや定義パラメータに基づいて管理デーモン内の定義処理を開始し(ステップ84)、GMS定義データベース21のグローバルメモリストレージ名22に重複がないことをチェックする(ステップ85)。重複がなければ新たな定義をGMS定義データベース21に追加して(ステップ86)、定義処理に正常終了のメッセージを返し、重複が検出された場合には定義エラーのメッセージを返して定義処理を終了する。
次に、グローバルメモリストレージの作成処理シーケンスについて図9に示す。グローバルメモリストレージの作成処理はクラスタシステム内の任意のノードで実行することができる。作成処理には定義済みのグローバルメモリストレージ名を入力し(ステップ901)、管理デーモンに作成要求メッセージを送信する(ステップ902)。管理デーモンのメッセージ受信処理は作成要求メッセージを受信すると(ステップ903)、管理デーモンの作成処理ルーチンを開始する(ステップ904)。作成処理ルーチンは、GMS定義データベース21を読み出して(ステップ905)、作成要求のあったグローバルメモリストレージのステータス23が”定義状態”であるかどうかをチェックし(ステップ906)、”定義状態”ならば作成処理を続行するが、定義が存在しない場合やステータス23が”定義状態”以外の場合には作成処理はエラー終了する。
後続の作成処理では、構成ノード群の各ノード上で領域確保処理を実行するため、リモートプロシジャコールで各ノードにGMS領域の確保を実行する(ステップ907、908)。確保した領域アドレスは管理デーモンに返信する(ステップ909)。管理デーモンは、構成ノード群のすべてのノードで領域確保に成功したことを確認すると(ステップ910)、各ノードの領域の開始アドレスとともにGMSスペース管理データベース31にGMSスペース管理情報を格納し(ステップ911)、GMS定義データベース21のステータス23を”使用可能状態”に変更する(ステップ912)。以上の処理シーケンスによってグローバルメモリストレージが使用可能状態となる。
ここで、クラスタシステムを再起動した場合の処理について述べる。クラスタシステムを再起動した場合、グローバルメモリストレージは再作成する必要があるが、個々のグローバルメモリストレージ作成処理を再起動ごとに実行するのは運用上システム管理者の負担となる。その際、必要に応じて、クラスタシステムの再起動の前に、グローバルメモリストレージ内のデータを各ノードの外部記憶装置に保存し、再起動後にグローバルメモリストレージ内にデータを復元する。
そこで、本発明ではシステム管理者の負担を軽減するために管理デーモン再起動時に自動的にGMS定義データベース21を読み出して作成処理ルーチンを実行する。 これによりシステム管理者の介在なく、一度定義したグローバルメモリストレージはクラスタシステム再起動後に自動的に使用可能状態となる。
以上がグローバルメモリストレージの定義から作成までの処理に関する説明である。
次に、クラスタメモリファイルシステムのファイルオープン処理、ファイル入出力処理、ファイルクローズ処理の基本的な処理シーケンスについて説明する。
まず、図10を用いてクラスタメモリファイルシステムのファイルオープン処理のシーケンスについて説明する。
アプリケーションプログラムがクラスタメモリファイルシステムのファイルにアクセスする場合には、まず、ファイルのオープン要求を発行する。クラスタメモリファイルシステムはオープン要求が新規作成か既存ファイルのオープンかを判断し(ステップ1001)、新規作成であればまずファイル作成処理を実行(ステップ1002)してからオープン処理を行うというシーケンスで処理する。
ファイル作成処理の詳細は図11に示す。ファイル作成処理は管理デーモンにファイル作成要求メッセージを送信する(ステップ1101)。管理デーモンはファイル作成要求メッセージを受信すると(ステップ1102)、当該グローバルメモリストレージのGMSスペース管理データベース51を読み込み(ステップ1103)、当該クラスタメモリファイルシステムのCMFSスペース管理データベース61を読み込む(ステップ1104)。GMSスペース管理データベース51とCMFSスペース管理データベース61から当該クラスタメモリファイルシステム内の空きスペースを検索し(ステップ1105)、要求量を満たす空きスペースがなければ割り当てエラーで作成処理を中断し(ステップ1106)、空きスペースがあれば新たに割り当てたファイルのファイル定義情報をファイル定義データベース41に追加し(ステップ1107)、スペース情報をCMFSスペース管理データベース61に追加する(ステップ1108)ことでファイルの作成処理を完了する。
ここで説明をオープン処理に戻す。オープン処理は管理デーモンにオープン要求メッセージを送信し(ステップ1003)、管理デーモンのメッセージ受信処理はオープン要求メッセージを受信すると(ステップ1004)、ファイルオープン処理ルーチンを開始する(ステップ1005)。
まず、クライアント定義データベース31を読み込み(ステップ1006)、要求元ノードがクライアントノード群33のノードか否かの判定を行い、クライアントノード群でないノードの場合にはオープン要求を拒否する(ステップ1007)。次に、ファイル定義データベース41から当該ファイルの定義情報を読み込み(ステップ1008)、オープン要求を発行したアプリケーションのユーザが当該ファイルに対するアクセス権限を保有するかをファイルアクセス権限45によって判定を行い、アクセス権限がなければオープン要求を拒否する(ステップ1009)。
次に、オープン処理ルーチンはクラスタシステム内のアプリケーション間でのファイルアクセスの整合性を保つためにファイル排他制御を実行する。ファイル排他制御はwriteモードオープン要求の場合はクラスタシステム内の単一プロセスのみにアクセスを許可し、readモードオープン要求の場合はreadモード要求のプロセス間でファイルの共有アクセスを許可する。まず、writeモードオープン要求の場合は(ステップ1010)、当該ファイルのデータベース41のオープンカウンタ4Bが1以上か(他プロセスがオープン中か)否かを判定し、他にオープン中のプロセスが存在すればオープン要求を拒否する(ステップ1011)。
readモードオープン要求の場合は当該ファイルのデータベース41のオープンモード4Aがwriteモードなら(他にwriteモードでオープン中のプロセスが存在すれば)オープンを拒否し、readモードオープンのプロセスだけが存在する場合には共有アクセスを許可する(ステップ1012)。
オープンが許可されたら、ファイル定義データベース41のオープンカウンタ4Bを+1してオープンモード4Aに指定されたオープンモードを格納する(ステップ1013)。さらに、CMFSスペース管理データベース61から当該ファイルのスペース管理情報を読み込んで(ステップ1014)、ファイルマップテーブルを作成し(ステップ1015)、グローバルメモリストレージのスペース管理データベースから当該グローバルメモリストレージのスペース情報を読み込んで(ステップ1016)、ストレージマップテーブルを作成する(ステップ1017)。オープン要求元のクラスタメモリファイルシステムにファイルマップテーブルとストレージマップテーブルを送信して管理デーモンのオープン処理ルーチンを完了する。ファイルマップテーブルは、クラスタメモリファイルシステムがファイルオフセットをグローバルメモリストレージのオフセットに変換するために使用し、ストレージマップテーブルは、GMSドライバクライアントがグローバルメモリストレージのオフセットを物理的なノード位置とノード内アドレスに変換するために使用するものである。
クラスタメモリファイルシステムは、管理デーモンからのオープン処理結果を判定し(ステップ1018)、ファイルのオープンが成功していればストレージマップテーブルをGMSドライバクライアントに登録する(ステップ1019)。クラスタメモリファイルシステムが自ノードのメモリにファイルマップテーブルをキャッシュする(ステップ1020)。 最後に、アプリケーションが以降の入出力処理でファイル識別に使用するファイル記述子をアプリケーションに返す(ステップ1021)。
次に、クラスタメモリファイルシステムの入出力処理のシーケンスについて図12を用いて説明する。クラスタメモリファイルシステムは、アプリケーションから入出力要求を受けると、オープ処理で管理デーモンから受け取ったファイルマップテーブルを用いてファイル内の入出力データのオフセットをグローバルメモリオフセット内のオフセットに変換する(ステップ1201)。グローバルメモリストレージ内の位置が決定したら入出力要求ブロックを作成して(ステップ1202)、GMSドライバクライアントに入出力要求を発行する(ステップ1203)。
GMSドライバクライアントはストレージマップテーブルを用いて入出力要求ブロックに指定されたグローバルメモリストレージ内のオフセットを物理的なノード位置とノード内アドレスに変換する(ステップ1204)。これにより入出力経路を決定し該当ノードのGMSドライバサーバに入出力要求を転送する(ステップ1205)。GMSドライバサーバは自ノードの指定アドレスに対して入出力を実行する(ステップ1206)。
図13にファイルクローズ処理のシーケンスを示す。
アプリケーションからファイルのクローズ要求を受けると、クラスタメモリファイルシステムは管理デーモンにクローズ要求メッセージを送信する(ステップ1301)。管理デーモンはクローズ要求メッセージを受信すると(ステップ1302)、クローズ処理ルーチンを開始し(ステップ1303)、ファイル定義データベース41の当該ファイルのオープンカウンタ4Bを−1して更新し(ステップ1304)、ファイル記述子を開放してクローズ処理を完了する。
次に、ノード障害発生時にデータを消失することなくアプリケーションのアクセスを続行可能とする高可用化の方法について図14を用いて説明する。
管理デーモン1402はノード1401で動作しており、ノード監視ルーチンが定期的にノード間ネットワーク経由でパケットを送信しながらグローバルメモリストレージ構成ノード群の稼動状況を監視する。
本実施例ではグローバルメモリストレージ(GMS)1407の構成ノード群はノード1408とノード1411で、GMS定義データベース21のミラー属性26が有効になっている。グローバルメモリストレージのミラー属性を有効にすると、構成ノード群の各GMS領域をひとつのボリュームとみなしてミラーリングを行う。
図14の実施例においてはノード1408が正系でGMS領域1410がマスタボリューム、ノード1411が副系でGMS領域1413がミラーボリュームである。 障害が発生していない通常の状態では、アプリケーションプログラム1404がグローバルメモリストレージ1407のファイルに対してwriteすると、クラスタメモリファイルシステム1405からGMSドライバクライアント1406にwrite要求を発行する。
GMSドライバクライアント1406は、ストレージマップテーブルを参照してグローバルメモリストレージ内オフセットを、GMS領域1410およびGMS領域1413のアドレスに変換して、ミラー属性26に基づいてGMSドライバサーバ1409とGMSドライバサーバ1412の双方に対して同一データのwrite要求を発行する。また、アプリケーションプログラム1404がグローバルメモリストレージ1407のファイルに対してreadするとクラスタメモリファイルシステム1405からGMSドライバクライアント1406にread要求を発行する。
GMSドライバクライアント1406は正系であるノード1408のGMSドライバサーバ1409に対してのみread要求を発行する。ここでGMSドライバクライアント1406がreadまたはwrite処理中に、GMSドライバサーバ1409から一定時間の応答なしを検出したとすると、ノード1408またはノード1408との通信経路で障害が発生したものと判断して正系の経路を閉塞し、以降のwrite要求は副系のGMSドライバサーバ1412に対してのみ発行し、read要求先もGMSドライバサーバ1412に経路切り替えを行う。このような部分閉塞の発生は上位のクラスタメモリファイルシステム1405やアプリケーションプログラム1404に通知することなく行われ、アプリケーションプログラム1404は障害によって中断することなく処理を続行することができる。
また、管理デーモン1402のノード監視によってもノード1408の障害が検出されて、管理デーモン1402はデータベース1414にアクセスし、当該グローバルメモリストレージのGMS定義データベース21のステータス23を部分閉塞し、閉塞パス27にGMSドライバサーバ1409への経路が閉塞された情報を記録する。これ以降にグローバルメモリストレージ1407上のファイルに対するオープン要求が発行された場合には、管理デーモンはGMS領域1413へのストレージマップテーブルのみをオープン要求元のクラスタメモリファイルシステムに送信する。
本発明の一実施例におけるクラスタメモリファイルシステムの概略構成を示すブロック図である。 グローバルメモリストレージ定義データベースを説明するためのブロック図である。 クライアント定義データベースを説明するためのブロック図である。 ファイル定義データベースを説明するためのブロック図である。 グローバルメモリストレージのスペース管理データベースを説明するためのブロック図である。 クラスタメモリファイルシステムのスペース管理データベースを説明するためのブロック図である。 ファイル空間とグローバルメモリストレージ空間の対応例を説明するためのブロック図である。 グローバルメモリストレージの定義処理手順を示すフローチャートである。 グローバルメモリストレージの作成処理手順を示すフローチャートである。 クラスタメモリファイルシステムのオープン処理手順を示すフローチャートである。 クラスタメモリファイルシステムのファイル作成手順を示すフローチャートである。 クラスタメモリファイルシステムの入出力手順を示すフローチャートである。 クラスタメモリファイルシステムのクローズ処理手順を示すフローチャートである。 グローバルメモリストレージのミラーリングを説明するためのブロック図である。
符号の説明
11…グローバルメモリストレージ(GMS)、
12A,12B,12C,12D,12E,12F … ノード、
13A,13B,13C … GMS領域、
14D,14E … アプリケーションプログラム、
15D,15E … GMSドライバクライアント、
16A,16B,16C … GMSドライバサーバ、
17D,17E … クラスタメモリファイルシステム(CMFS)、
18 … 管理デーモン、
19 … データベース、
21 … グローバルメモリストレージ定義データベース、
22 … グローバルメモリストレージ名、
23 … ステータス、
24 … 構成ノード群、
25 … グローバルメモリストレージ容量、
26 … ミラー属性、
27 … 閉塞パス、
31 … クライアント定義データベース、
32 … グローバルメモリストレージ名、
33 … クライアントノード群
41 … ファイル定義データベース、
42 … ファイル名、
43 … グローバルメモリストレージ名、
44 … 所有者ユーザID、
45 … 所有者グループID、
46 … ファイルアクセス権限、
47 … ファイルサイズ、
48 … ファイル終端オフセット、
49 … 増分単位、
4A … オープンモード、
4B … オープンカウンタ、
51 … GMSスペース管理データベース、
52 … グローバルメモリストレージ名、
53 … 開始オフセット、
54 … サイズ、
55 … ノード識別子、
56 … ノード内開始アドレス、
61 … CMFSスペース管理データベース、
62 … ファイル名
63 … エクステント番号、
64 … ファイル内開始オフセット、
65 … エクステントサイズ、
66 … グローバルメモリストレージ内開始オフセット

Claims (11)

  1. 少なくとも一つのプロセッサおよび主記憶とそれらを制御するオペレーティングシステムが動作するコンピュータをノードとし、複数のノードを高速ネットワークで接続した疎結合型のクラスタメモリファイルシステムは、
    少なくとも一つのノードの主記憶からそれぞれ独立してメモリ割り当てる手段と、
    複数ノードにまたがるメモリ領域を連結して連続した一つのストレージとして使用可能とするグローバルメモリストレージと、
    アプリケーションプログラムに対してファイルシステムインタフェースを介して、グローバルメモリストレージ上にクラスタシステム内の任意のノードからアクセスする手段を有することを特徴とするクラスタメモリファイルシステム。
  2. 請求項1記載のグローバルメモリストレージは、アプリケーション実行ノードで入出力要求を受け付けるクライアントドライバと、物理的にメモリ領域を保有するノードで実際のメモリ領域に対して入出力データを処理するサーバドライバによってアクセス手段を有し、
    クライアントドライバは、アクセス要求のあったグローバルメモリストレージ内のオフセットを物理的なノード位置とノード内のアドレスに変換し、該当ノードのサーバドライバに入出力要求を発行することで、上位のアプリケーションに対して物理的なメモリ位置を仮想化する下位のグローバルメモリストレージドライバを有することを特徴とするクラスタメモリファイルシステム。
  3. 請求項2記載のグローバルメモリストレージを二つ以上のノードにまたがる主記憶から構成し、個々のノードのメモリ領域をボリュームと見なしてノード間でミラーボリュームを構成し、前記グローバルメモリストレージに対してデータを書き込む場合にクライアントドライバによって前記グローバルメモリストレージを構成する他ノードのメモリ領域に同じデータのコピーを書き込み、前記グローバルメモリストレージを構成するノード及びノード間通信経路の少なくとも一方で障害が発生した場合には、データのコピーを保持するノードに通信経路を切り替えることを特徴とするクラスタメモリファイルシステム。
  4. 請求項1記載のクラスタメモリファイルシステムにおいて、前記グローバルメモリストレージが少なくともひとつのノード群、各ノードの主記憶から確保するメモリ量、グローバルメモリストレージの属性を含む項目を定義する手段を有し、グローバルメモリストレージを構成するノード、各ノード上に確保された前記グローバルメモリストレージ用メモリ領域アドレス、メモリ領域サイズを含むグローバルメモリストレージの属性情報、およびグローバルメモリストレージ上のクラスタメモリファイルシステムに作成されたファイルのメモリアドレス、ファイルのアクセス権限を含むファイル属性情報を格納するデータベースを外部記憶装置に有することを特徴とするクラスタメモリファイルシステム。
  5. 請求項4記載のクラスタメモリファイルシステムは、前記データベースを用いて、クラスタシステム内に分散して存在するグローバルメモリストレージおよびクラスタメモリファイルシステム上のファイルを一元管理し、アクセスの整合性を維持し、システム運用管理を支援するための、クラスタシステム内の任意の1つのノードで実行する管理デーモンを有することを特徴とするメモリファイルシステム。
  6. 請求項5記載のクラスタメモリファイルシステムは、クラスタメモリファイルシステム上のファイルをアプリケーションがオープンしたときに、前記管理デーモンにオープン要求を発行し、オープン要求を受けた管理デーモンは前記データベースからオープン要求を受けたファイルおよびそのファイルが存在するグローバルメモリストレージの管理情報を読み出し、アプリケーション実行ノードに管理情報を送信し、クラスタメモリファイルシステムはグローバルメモリストレージの管理情報をクライアントドライバに登録し、ファイルへの入出力要求時には前記管理情報に基づいて、クライアントドライバが直接ファイルが存在するノードに入出力要求を発行することを特徴とするクラスタメモリファイルシステム。
  7. 請求項1のクラスタメモリファイルシステムは、さらに、グローバルメモリストレージへのアクセスを許可するクライアントノード群を定義する手段を有し、定義されたノードにのみ前記グローバルメモリストレージへのアクセスを許可することを特徴とするクラスタメモリファイルシステム。
  8. 少なくとも一つのプロセッサおよび主記憶とそれらを制御するオペレーティングシステムが動作するコンピュータをノードとし、複数のノードを高速ネットワークで接続した疎結合型のクラスタシステムにおいて、
    少なくとも一つのノードの主記憶からそれぞれ独立してメモリ割り当て、
    複数ノードにまたがるメモリ領域を連結して連続した一つのストレージとして使用可能とするグローバルメモリストレージを構成し、
    アプリケーションプログラムに対してファイルシステムインタフェースを介して、グローバルメモリストレージ上にクラスタシステム内の任意のノードからアクセスすることを特徴とするメモリ構成方法。
  9. 前記グローバルメモリストレージへのアクセスの際に、アクセス要求のあったグローバルメモリストレージ内のオフセットを物理的なノード位置とノード内のアドレスに変換し、該当ノードのサーバドライバに入出力要求を発行することを特徴とする請求項8記載のメモリ構成方法。
  10. 前記グローバルメモリストレージを二つ以上のノードにまたがる主記憶から構成し、個々のノードのメモリ領域をボリュームと見なしてノード間でミラーボリュームを構成し、前記グローバルメモリストレージに対してデータを書き込む場合にクライアントドライバによって前記グローバルメモリストレージを構成する他ノードのメモリ領域に同じデータのコピーを書き込み、前記グローバルメモリストレージを構成するノード及びノード間通信経路の少なくとも一方で障害が発生した場合には、データのコピーを保持するノードに通信経路を切り替えることを特徴とする請求項9記載のメモリ構成方法。
  11. アプリケーションを実行するための少なくとも1つの第1のノードと、データの入出力を行なうための少なくとも1つの第2のノードとからなる計算機システムにおいて、
    前記第2のノードのメモリを連結してグローバルメモリストレージを構成し、
    前記グローバルメモリストレージへの前記第1のノードからアクセス要求を、前記第2のノードを特定し、前記特定された第2のノードのメモリ内のアドレスに変換し、
    前記変換された情報に基づいて前記グローバルメモリストレージにアクセスすることを特徴とするメモリ構成方法。
JP2004043832A 2004-02-20 2004-02-20 クラスタメモリファイルシステム Expired - Fee Related JP4300133B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004043832A JP4300133B2 (ja) 2004-02-20 2004-02-20 クラスタメモリファイルシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004043832A JP4300133B2 (ja) 2004-02-20 2004-02-20 クラスタメモリファイルシステム

Publications (2)

Publication Number Publication Date
JP2005234919A true JP2005234919A (ja) 2005-09-02
JP4300133B2 JP4300133B2 (ja) 2009-07-22

Family

ID=35017814

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004043832A Expired - Fee Related JP4300133B2 (ja) 2004-02-20 2004-02-20 クラスタメモリファイルシステム

Country Status (1)

Country Link
JP (1) JP4300133B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100766561B1 (ko) 2006-04-27 2007-10-11 텔코웨어 주식회사 분산 네트워크 환경에서의 이중화 메모리 파일시스템 구현방법 및 시스템
JP2009054100A (ja) * 2007-08-29 2009-03-12 Toshiba Corp 情報処理装置、および情報処理装置の制御方法
EP2621143A1 (en) 2012-01-27 2013-07-31 Fujitsu Limited Information processing apparatus, distributed processing system, and distributed processing method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100766561B1 (ko) 2006-04-27 2007-10-11 텔코웨어 주식회사 분산 네트워크 환경에서의 이중화 메모리 파일시스템 구현방법 및 시스템
JP2009054100A (ja) * 2007-08-29 2009-03-12 Toshiba Corp 情報処理装置、および情報処理装置の制御方法
EP2621143A1 (en) 2012-01-27 2013-07-31 Fujitsu Limited Information processing apparatus, distributed processing system, and distributed processing method
US9483523B2 (en) 2012-01-27 2016-11-01 Fujitsu Limited Information processing apparatus, distributed processing system, and distributed processing method

Also Published As

Publication number Publication date
JP4300133B2 (ja) 2009-07-22

Similar Documents

Publication Publication Date Title
US11675746B2 (en) Virtualized server systems and methods including domain joining techniques
US9971823B2 (en) Dynamic replica failure detection and healing
JP5514903B2 (ja) ファイルレベル階層ストレージ管理システム、方法、及び装置
US10838829B2 (en) Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium
JP5007350B2 (ja) ハードウェアベースのファイルシステムのための装置および方法
US11936731B2 (en) Traffic priority based creation of a storage volume within a cluster of storage nodes
US7627699B1 (en) System and method for managing I/O access policies in a storage environment employing asymmetric distributed block virtualization
WO2014007249A1 (ja) I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法
WO2021057956A1 (zh) 镜像文件管理方法、装置及系统、计算机设备、存储介质
WO2018054079A1 (zh) 一种存储文件的方法、第一虚拟机及名称节点
WO2019148841A1 (zh) 一种分布式存储系统、数据处理方法和存储节点
JP4748950B2 (ja) 記憶領域管理方法及びシステム
JP4285058B2 (ja) ネットワーク管理プログラム、管理計算機及び管理方法
JP5504165B2 (ja) データファイルオブジェクトへのアクセス方法、クライアント装置、プログラム、およびシステム
CN107832097B (zh) 数据加载方法及装置
JP2011232840A (ja) アクセス制御情報管理方法、計算機システム及びプログラム
JP2015114913A (ja) ストレージ装置、ストレージシステム及びデータ管理プログラム
CN106293994A (zh) 网络文件系统中的虚拟机克隆方法和网络文件系统
JP4300133B2 (ja) クラスタメモリファイルシステム
KR20120063946A (ko) 대용량 통합 메모리를 위한 메모리 장치 및 이의 메타데이터 관리 방법
JPH07244642A (ja) 並列処理計算機
US6834281B1 (en) Method and apparatus to support multi-node direct access to file system data
US8850132B1 (en) Method and system for providing a shared data resource coordinator within a storage virtualizing data processing system
US20230026179A1 (en) Identity-based Access to Volume Objects
US20230359383A1 (en) Fault tolerant reservation state distribution for multi-partition logical volumes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060306

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090316

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: 20090414

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: 20090420

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120424

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120424

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130424

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130424

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140424

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees