JP3704573B2 - クラスタシステム - Google Patents
クラスタシステム Download PDFInfo
- Publication number
- JP3704573B2 JP3704573B2 JP2001071680A JP2001071680A JP3704573B2 JP 3704573 B2 JP3704573 B2 JP 3704573B2 JP 2001071680 A JP2001071680 A JP 2001071680A JP 2001071680 A JP2001071680 A JP 2001071680A JP 3704573 B2 JP3704573 B2 JP 3704573B2
- Authority
- JP
- Japan
- Prior art keywords
- cluster
- shared memory
- cluster shared
- shared
- lock
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0637—Permissions
Description
【発明の属する技術分野】
本発明は、記憶装置と計算機を専用の高速ネットワークで接続したSAN(Storage Area Network(ストレージエリア・ネットワーク))環境における並列処理プログラミングが容易なクラスタシステムに関するものである。
【0002】
【従来の技術】
近年、データのストレージ装置としての磁気ディスク装置と電子計算機(以下、サーバーコンピュータまたは単にサーバーと呼ぶ)とをFiber Channel(ファイバ・チャネル)等の専用の高速ネットワークで接続したSANが注目を浴びている。
【0003】
このSANには以下のような利点がある。(1)複数のサーバーがストレージ装置を共有することができる。(2)ストレージ装置のアクセス負荷をLAN(Local Area Network)から分離させることができる。(3)ファイバ・チャネル等によりストレージ装置へのアクセスを高速にすることができる。このうち(1)はSANの一般的な利点であるが、ここにクラスタ共有ファイルシステムの技術を用いると、単に複数のサーバーがストレージ装置を共有できるだけでなく、ファイルを共有アクセスすることが可能になる。
【0004】
米国Sistina Software Incが開発しているGFS(Global File System)は、このようなクラスタ共有ファイルシステムの一例である。クラスタ共有ファイルシステムでは、複数のサーバーコンピュータによるストレージ装置に記憶されたファイルへの共有アクセスを可能にしている。
【0005】
複数のサーバーコンピュータによるファイルへの共有アクセスというと、一般的にはNFS(Network File System)が連想されるが、
NFSでは複数のサーバーコンピュータで同一ファイルを更新した場合のデータの一貫性を保証していない。これに対しクラスタ共有ファイルシステムではデータの一貫性を保証している。
【0006】
クラスタ共有ファイルシステムは、複数のサーバーコンピュータによるファイルの共有アクセス(READ/WRITE)機能の他に、データの一貫性を保証するために複数のサーバーコンピュータに跨るロック機構であるクラスタ共有ファイルシステム用ロック機構を持っている。このクラスタ共有ファイルシステム用ロック機構により、複数のサーバーコンピュータから構成されるクラスタシステム(Cluster System)上で並列アプリケーションプログラムが実行可能となる。
【0007】
例えば、クラスタ共有ファイルシステムとクラスタ共有ファイルシステム用ロック機構とを実装した複数のサーバーコンピュータがSANを介して1つの磁気ディスク装置に接続されているクラスタシステムについて考察する。このクラスタシステムは、主メモリを共有していない疎結合のクラスタシステムである。各サーバーコンピュータ上で実行されているプロセスは、クラスタ共有ファイルシステムを用いることにより、磁気ディスク装置に記憶されているファイルに共有アクセスすることができる。しかも、プロセスは、クラスタ共有ファイルシステム用ロック機構を用いて排他制御処理をすることにより、磁気ディスク装置に記憶されているファイルのデータの一貫性を保証することができる。
【0008】
これに対して、ファイルシステムと共有メモリシステムとロック機構とが実装され、複数のプロセッサを持ち、例えば1つの磁気ディスク装置が接続されているSMP型(Symmetrical Multiprocessor)並列計算機について考察する。このSMP型並列計算機上で実行されている複数のプロセスは、それぞれファイルシステムを介して磁気ディスク装置に記憶されたファイルに共有アクセスしたり、共有メモリシステムを介して共有メモリ(主メモリ)にアクセスすることができる。また、複数のプロセスは、ロック機構を介して磁気ディスク装置に記憶されたファイルや共有メモリに記憶されたデータに対する共有アクセスにおける排他制御処理をすることにより、データの一貫性を保持することができる。
【0009】
このように従来の疎結合のクラスタシステムとSMP型並列計算機とを比較すると、両者ともに磁気ディスク装置に記憶されたファイルに対する共有アクセスおよびこれらに対するデータの一貫性の保持は可能である。しかし、クラスタシステムでは、複数のサーバーコンピュータから共有メモリへの共有アクセスをすることができない。
【0010】
【発明が解決しようとする課題】
クラスタ共有ファイルシステムを持つクラスタシステムでは、ファイルへの共有アクセスはできるが、メモリへの共有アクセスはできない。このため、クラスタ共有ファイルシステムを持つクラスタシステムでは、SMP型並列計算機と比べると、その実行するアプリケーションプログラムを並列プログラムにて記述するのが困難であるという課題がある。具体的には、複数のサーバーコンピュータ上で実行されているプロセスでファイル(又はデータ)を共有して互いにデータの一貫性を確保しながらデータの同期をとってデータ処理するプログラミングを記述する場合には、プロセスが共有して処理するファイル(又はデータ)をメモリ上に配置して処理することが必要であるが、これをすることができない。もし、プロセスがファイル(又はデータ)を同期をとりながらデータの一貫性を確保して共有処理することが必要な場合には、クラスタ共有ファイルシステムを利用して、その共有対象のファイル(又はデータ)を磁気ディスク装置上に配置して処理することが必要である。この場合には、プロセスが、ファイル(又はデータ)に対する処理を入出力装置を対象とするI/O処理のコマンドを使用してプログラミングされている必要がある。このようにファイル装置(磁気ディスク装置)に記憶されているファイル(又はデータ)のデータ処理する場合は、メモリ上に配置されたファイル(又はデータ)を処理する場合に比べて、プログラムの記述が複雑になる。これは、メモリ上に配置されたデータに対する処理であれば、load命令やstore命令を使用して簡単なプログラム記述で処理が記述できる。
【0011】
しかし、これに対して磁気ディスク装置上に配置されたファイルやデータを処理する場合には、I/O処理をするための複雑なコマンドを使用したプログラムを記述する必要があり、並列プログラムにて記述するのが困難である。また、メモリ上に配置されたデータに対するデータ処理に比べて、磁気ディスク装置などのファイル装置(I/O装置)上に配置されたデータを処理する場合には、その処理時間が多くかかり、処理速度が落ちるという問題もある。
【0012】
以上説明したように、クラスタ共有ファイルシステムを実装した複数のサーバーコンピュータが疎結合されたクラスタシステムでは、磁気ディスク装置などのファイル装置上に記憶されたファイルへの共有アクセスは可能であるが、主メモリへの共有アクセスは可能でないため、SMP型並列計算機と比べると、並列プログラムにて記述するのが困難であるという課題がある。
【0013】
本発明は、クラスタ共有ファイルシステムを実装した複数のサーバーコンピュータが疎結合されたクラスタシステムにおいて、並列プログラムの記述が容易なクラスタシステムを提供することを目的とする。
【0014】
【課題を解決するための手段】
本発明は、複数の電子計算機と、共有ディスク装置と、前記複数の電子計算機上で動作するプロセスから前記共有ディスク装置に記録されたファイルに対して共有アクセスするためにロック機能によりデータの一貫性を保持するための排他制御をするクラスタ共有ファイルシステムとを持ったクラスタシステムであって、前記クラスタ共有ファイルシステムが管理するファイルを前記プロセスのアドレス空間内にマッピングして共有メモリを設定するためのクラスタ共有メモリ設定手段と、前記クラスタ共有ファイルシステムのロック機能を前記共有メモリにアロケーションして前記共有メモリ上でデータの一貫性を保持するための排他制御を可能とするクラスタ共有メモリ用ロックアロケーション手段とを備えたことを特徴とする。
【0015】
本発明によれば、クラスタ共有ファイルシステムを実装した複数のサーバーコンピュョータが疎結合されたクラスタシステムにおいて、並列プログラムの記述を容易にすることができる。
【0016】
【発明の実施の形態】
本発明のポイントは、クラスタシステムにおいて、アプリケーションプログラムを実行することで生成されるプロセスが共有ディスク装置に記録されたファイルを、クラスタ共有ファイルシステムを用いてプロセスが主メモリ上に配置されているアドレス空間内に仮想的に設けたクラスタ共有メモリ(分散共有メモリ)領域上にマッピングすることで、ファイルへのアクセスを主メモリへのアクセスとして処理することである。
【0017】
以下、図面を用いて、本発明の一実施形態を詳細に説明する。図1は、本発明のクラスタシステムを示す図である。図1において、クラスタシステム10は、ファイバ・チャネルで構成されているストレージエリア・ネットワーク(SAN)15にサーバーコンピュータ11、サーバーコンピュータ12、サーバーコンピュータ13、サーバーコンピュータ14と磁気ディスク装置で構成される共有ディスク装置16が接続されて構成されている。
【0018】
各サーバーコンピュータ11〜14は、図2に示すように構成されている。図2では、サーバーコンピュータ11〜14の代表として、サーバーコンピュータ11の構成を説明する。図2において、サーバーコンピュータ11には、主メモリ111、クラスタ共有メモリ用ロック/クラスタ共有ファイルシステム用ロック変換テーブル113、クラスタ共有メモリ用ロック操作手段114、クラスタ共有メモリ用ページ操作手段115、クラスタ共有ファイルシステム用ロック機構116、クラスタ共有ファイルシステム117、クラスタ共有メモリ/クラスタ共有ファイル変換テーブル118、更新ページリスト119、クラスタ共有メモリマップ手段120、クラスタ共有メモリアンマップ手段121、クラスタ共有メモリ用ロックアロケーション手段122、クラスタ共有メモリ用ロック解放手段123が設けられて構成されている。サーバーコンピュータ11では、あるアプリケーションプログラムが実行されることで生成されるプロセス112が主メモリ111上のアドレス空間内に配置されて図示しないプロセッサにより実行されて動作している。
【0019】
図3は、プロセス112の詳細を示す図である。図3において参照符号Aは、プロセス112のアドレス空間内におけるアドレスを示す。プロセス112には、アドレスAを先頭として複数のページP0、P1、P2、P3、P4、P5が設けられてる。このプロセス112内に仮想的にクラスタ共有メモリが設けられる。
【0020】
クラスタ共有メモリ用ロック/クラスタ共有ファイルシステム用ロック変換テーブル113は、図4に示すようにクラスタ共有メモリ用ロックID欄113aとクラスタ共有ファイルシステム用ロックID欄113bとから構成されている。このクラスタ共有メモリ用ロック/クラスタ共有ファイルシステム用ロック変換テーブル113にクラスタ共有メモリ用ロックIDとクラスタ共有ファイルシステム用ロックIDとを登録することにより、両者の対応を関係づける。
【0021】
クラスタ共有メモリ用ロック操作手段114は、クラスタ共有メモリ内に設けられる各ページに記憶されたデータの一貫性を確保するための排他制御をするためにロックを設定(ロックする)し、また設定したロックを解除(アンロック)するための操作手段である。クラスタ共有メモリ用ページ操作手段115は、クラスタ共有メモリに設けられ各ページに対するデータの記憶、各ページに記憶されたデータの読み出しを行う操作手段である。
【0022】
クラスタ共有ファイルシステム117は、共有ディスク装置16に記録されたファイルをサーバコンピュータ11、サーバコンピュータ12、サーバコンピュータ13、サーバコンピュータ14とで共有するためのファイルシステムである。クラスタ共有ファイルシステム用ロック機構116は、共有ディスク装置16に記録されたファイルをサーバコンピュータ11、サーバコンピュータ12、サーバコンピュータ13、サーバコンピュータ14とで共有する際に、データの一貫性を確保するための排他制御をするためにロックを設定(ロックする)し、また設定したロックを解除(アンロック)するための操作を行う機構である。
【0023】
クラスタ共有メモリ/クラスタ共有ファイル変換テーブル118は、図5に示すように、アドレス欄118a、サイズ欄118b、ファイル名欄118c、ファイル記述子118d、オフセット欄118eとから構成されている。このクラスタ共有メモリ/クラスタ共有ファイル変換テーブル118は、共有ディスク装置16に記録されたファイルをクラスタ共有メモリに対応付け(マッピング)するために設けられている。クラスタ共有メモリマップ手段120は、プロセス112のアドレス空間内にクラスタ共有メモリを仮想的に設けるための手段である。
【0024】
クラスタ共有メモリアンマップ手段121は、プロセス112のアドレス空間内に仮想的に設けられたクラスタ共有メモリを解放するための手段である。
クラスタ共有メモリ用ロックアロケーション手段122は、クラスタ共有メモリ用ロックと一対一に対応するクラスタ共有ファイルシステム用ロックとをアロケーションするための手段である。クラスタ共有メモリ用ロック解放手段123は、クラスタ共有メモリ用ロックアロケーション手段122により、アロケーションされたクラスタ共有メモリ用ロックとクラスタ共有ファイルシステム用ロックとを解放するための手段である。
【0025】
図6は、更新ページリスト119の詳細を示す図である。この更新ページリスト119は、共有メモリの中のデータが更新されたページのページ番号を記録するためのリストである。
【0026】
以下、図7を用いてサーバーコンピュータ11で実行されているプロセス112が共有ディスク装置16に記録されているファイルに対してアクセスする場合の動作を詳細に説明する。
【0027】
図7は、クラスタ共有メモリを用いたクラスタ共有ファイルへのアクセス動作の処理手順を示すフローチャート図である。まず、プロセス112が共有ディスク装置16に記録されている共有ファイルに対してアクセスしようとする場合には、プロセス112のアドレス空間内に仮想的に共有メモリを設け、この共有メモリ上にアクセス対象の共有ファイルをマッピングする(ステップS70)。具体的には、プロセス112がクラスタ共有メモリマップ手段120にクラスタ共有メモリマップ操作を指示する。このプロセス112からの指示に基づいてクラスタ共有メモリマップ手段120は、プロセス120が配置された主メモリ111上のアドレス空間内に共有メモリをマッピングする。
【0028】
このクラスタ共有メモリマップ手段120による共有メモリのマッピング操作手順を図8に示すフローチャートを用いて説明する。まず、ステップS80で、プロセス112のアドレス空間内にクラスタ共有メモリのための領域をアロケーションし、その領域内の全てのページをアクセス不許可に設定する。アロケーションは、プロセス112にC言語の関数malloc()を記述することで実施できる。
【0029】
次に、ステップS81で、アクセス対象の共有ファイルのプロセス112から指定されたオフセット位置から指定されたサイズ分のデータをステップS80でアロケーションした領域にマッピングしたことをクラスタ共有メモリ/クラスタ共有ファイル変換テーブル118に登録する。この登録の結果として、図5に示すようにプロセス112のアドレスAからサイズLの範囲にファイル名が「DDDD」で、ファイル記述子が「7」で、オフセット「0」を登録する。ここまでの処理で、プロセス112が共有ファイルへのアクセスを共有メモリへのアクセスとして処理するための環境を整えたことになる。
【0030】
続いてステップS71において、プロセス112が共有ファイルへのアクセスを共有メモリへのアクセスとして処理するのに必要な排他制御処理をするためにロックを取得する。そこでロック取得の前準備として、プロセス112は、クラスタ共有メモリ用ロックとクラスタ共有ファイル用ロックとを対応づけるために、クラスタ共有メモリ用ロックアロケーション手段122にクラスタ共有メモリ用ロックアロケーション操作を指示する。
【0031】
図10にクラスタ共有メモリ用ロックアロケーション手段122によるクラスタ共有メモリ用ロックアロケーション操作手順のフローチャートを示す。ステップS100において、クラスタ共有メモリ用ロックと一対一に対応するクラスタ共有ファイルシステム用ロックをアロケーションするために、図4に示すクラスタ共有メモリ用ロック/クラスタ共有ファイルシステム用ロック変換テーブル113にクラスタ共有メモリ用ロックのID番号とクラスタ共有ファイルシステム用ロックのID番号とを対応づけて登録する。
【0032】
次にプロセス112は、ロックを取得するために、クラスタ共有メモリ用ロック操作手段114にロックの取得を指示する。このロック取得の指示を受けたクラスタ共有メモリ用ロック操作手段114のロック操作の処理手順を図12に示したフローチャートを用いて説明する。
【0033】
まずステップS120において、クラスタ共有メモリ上の全てのページをアクセス不許可に設定する。次にステップS121において、図4に示したクラスタ共有メモリ用ロック/クラスタファイルシステム用ロック変換テーブル113を用いて、ロック操作されるクラスタ共有メモリ用ロックをクラスタ共有ファイルシステム用ロックに変換する。続いて、ステップS122において、クラスタ共有メモリ用ロック操作手段114は、クラスタ共有ファイルシステム用ロック機構116に指示して、変換したクラスタファイルシステム用ロックをロック操作してロックを取得する。
【0034】
ステップS71でロック取得が成功した場合には、ステップS72に進む。
もし、ロック取得が失敗した場合には、換言すると既に他のプロセスが同様な処理により、実体としての共有ファイルのロックを取得している場合には、ロックが取得できないので、ロックが解放されて、取得できるまで処理を待機しステップS71の処理を再び続ける
【0035】
続いてステップS72において、プロセス112は、クラスタ共有メモリ用ページ操作手段115に指示して、共有メモリへのREADアクセス(共有メモリに対するload命令の実行)又はWRITEアクセス(共有メモリに対するstore命令の実行)を実行させる。このクラスタ共有メモリ用ページ操作手段115が共有メモリへアクセスを実行すると、この共有メモリの全てのページはアクセス不許可に設定されているため、ページフォールトが発生する。クラスタ共有メモリ用ページ操作手段115がREADアクセスした場合には、READページフォールトが発生する。また、クラスタ共有メモリ用ページ操作手段115がWRITEアクセスした場合には、WRITEページフォールトが発生する。
【0036】
READページフォールトが発生した場合のクラスタ共有メモリ用ページ操作手段115の処理手順を図14に示す。WRITEページフォールトが発生した場合のクラスタ共有メモリ用ページ操作手段115処理手順を図15に示す。
【0037】
図14を参照して、READページフォールトが発生した場合のクラスタ共有メモリ用ページ操作手段115の処理手順を説明する。まず、ステップS140で、ページフォールトが発生した共有メモリ内のページのデータをクラスタ共有ファイルシステム117によりクラスタ共有ファイル(共有ディスク装置16)の対応する部分から当該共有メモリ内のページに読み込む。この時、ページのデータをクラスタ共有ファイルのどの部分から読み込むかは、クラスタ共有メモリ/クラスタ共有ファイル変換テーブル118に登録されたデータに基づいて求める。続いて、ステップS141で、ページフォールトが発生したページをREAD可能に設定する。
【0038】
次に図15を参照して、WRITEページフォールトが発生が発生した場合のクラスタ共有メモリ用ページ操作手段115処理手順を説明する。まず、ステップS150において、ページフォールトが発生したページがREAD可能に設定されているかどうかを調べる。READ可能な場合には、ステップS152へ進む。READ可能でない場合には、ステップS151に進む。
【0039】
ステップS151では、ページフォールトが発生した共有メモリ内のページのデータをクラスタ共有ファイルシステム117によりクラスタ共有ファイル(共有ディスク装置16)の対応する部分から当該共有メモリ内のページに読み込む。この時、ページのデータをクラスタ共有ファイルのどの部分から読み込むかは、クラスタ共有メモリ/クラスタ共有ファイル変換テーブル118に登録されたデータに基づいて求める。
【0040】
続いて、ステップS152で、ページフォールトが発生した共有メモリ内のページをREAD/WRITE可能に設定する。最後に、ステップS153で、ページフォールトが発生した共有メモリ内のページの番号を図6に示す更新ページリスト119に登録する。クラスタ共有メモリ用ページ操作手段115は、このようにページフォールト処理をした後、実際にクラスタ共有メモリへアクセスする。
【0041】
このようにステップS72で共有メモリへのアクセスをした後、続くステップS73において、プロセス112は、クラスタ共有メモリ用ロックを解放するためにクラスタ共有メモリ用ロック操作手段114に指示して、クラスタ共有メモリロックのアンロック操作を実行させる。
【0042】
ここで図13を参照して、クラスタ共有メモリ用ロック操作手段114によるクラスタ共有メモリロックのアンロック操作手順を説明する。図13は、クラスタ共有メモリ用ロック操作手段114によるクラスタ共有メモリロックのアンロック操作の操作手順を示すフローチャート図である。
【0043】
まず、ステップS130において、図6に示した更新ページリスト119に登録されている全ての更新ページのデータをクラスタ共有ファイルシステム117により共有ディスク装置16に記録されているクラスタ共有ファイルの該当部分に書き込む。この時、更新ページをクラスタ共有ファイルのどの部分に書き込むかは、クラスタ共有メモリ/クラスタ共有ファイル変換テーブル118を用いて求める。 続いて、ステップS131において、更新ページリスト119をクリアする。
【0044】
以上で図7に示したクラスタ共有メモリを用いたクラスタ共有ファイルへのアクセス動作の処理手順の説明を終了する。ここで、プロセス112は、これまでの説明でアクセスした共有ファイルをまだアクセスする場合には、図4に示したクラスタ共有メモリ用ロック/クラスタ共有ファイル用ロック変換テーブル113のエントリーを削除せずに残しておく。このエントリーを残しておけば、次にロックを取得する場合には、クラスタ共有メモリ用ロック操作手段114がクラスタ共有ファイルシステム用ロック機構116にファイルのロック取得を依頼するだけでロック取得ができる。
【0045】
もし、プロセス112がこれまでの説明でアクセスした共有ファイルを
以後アクセスすることがない場合には、プロセス112は、クラスタ共有メモリ用ロック解放手段123に指示してクラスタ共有メモリ用ロックを解放させる。図11は、クラスタ共有メモリ用ロック解放手段123によるクラスタ共有メモリ用ロックを解放させる処理手順を示すフローチャート図である。図11において、ステップS110で、プロセス112が指定したクラスタ共有メモリ用ロックに関するエントリを図4に示すクラスタ共有メモリ用ロック/クラスタ共有ファイルシステム用ロック変換テーブル113から抹消する。
これにより、クラスタ共有メモリ用ロックが解放される。
【0046】
最後にプロセス112が共有メモリへのアクセスとして処理すべき全ての共有ファイルへのアクセスが終了した場合には、プロセス112がクラスタ共有メモリアンマップ手段121に指示してプロセスのアドレス空間内に仮想的に設定した共有メモリのマッピングを解除させる。すなわち、クラスタ共有メモリをアンマップさせる。
【0047】
図9は、クラスタ共有メモリアンマップ手段121がクラスタ共有メモリをアンマップする処理手順を示すフローチャート図である。図9において、まず、ステップS90において、プロセス112のアドレス空間内にアロケーションしたクラスタ共有メモリのための領域を解放する。続いて、ステップS91において、アンマップする領域に関するエントリを図5に示すクラスタ共有メモリ/クラスタ共有ファイル変換テーブル118から抹消する。
【0048】
次に図16を用いて本発明において、2つのサーバーコンピュータが共有ディスク装置に記録されている同じファイルに対するアクセスをする場合の動作を説明する。図16は、サーバーコンピュータAとサーバーコンピュータBと共有ディスク装置Cとから構成されるクラスタシステムの動作を説明するためのシステム構成を示す図である。
【0049】
図16において、サーバーコンピュータAとサーバーコンピュータBとは、それぞれ共有ディスク装置Cに接続されている。サーバーコンピュータAでは、プロセスAが動作している。また、サーバーコンピュータBでは、プロセスBが動作している。これらのプロセスAとプロセスBは、それぞれ図示を省略したクラスタ共有ファイルシステムで管理されている共有ディスク装置Cに記録されたクラスタ共有ファイルDを先に説明したように自身のアドレス空間内にマッピングしているものとする。クラスタ共有ファイルDの中にはデータ領域Xが存在する。
【0050】
このように設定された状況の下に、プロセスAが(1)〜(3)の処理を実行し、次にプロセスBが(4)〜(6)の処理を実行し、更にプロセスA(7)〜(9)の処理を実行するとする。まずプロセスAは(1)でクラスタ共有メモリ用ロックを取得する。これによりクラスタ共有ファイルDがクラスタ共有メモリとしてマップされた領域のページは全てアクセス不許可になる。次に(2)でクラスタ共有メモリ上のデータ領域Xに数値「1」を加えようとする。するとWRITEページフォールトが発生する。クラスタ共有メモリ操作手段は、この領域がREAD不可能なので、このデータ領域を含むページの内容をクラスタ共有ファイルDから読みこむ。
【0051】
そして、そのページをREAD/WRITE可能に設定し、ページフォールト処理を終了する。ページフォールトから戻った後、プロセスAはデータ領域Xの値に1を加える。そして(3)でクラスタ共有メモリ用ロックを解放する。
これにより、クラスタ共有メモリ用ロック操作手段は、更新ページであるデータ領域Xを含むページの内容をクラスタ共有ファイルDに書き戻す。データ領域Xの初期値が「0」だったとすると、この時点でデータ領域Xの値は「1」となる。
【0052】
次にプロセスBは(4)でクラスタ共有メモリ用ロックを取得する。
これによりクラスタ共有ファイルD4がクラスタ共有メモリとしてマップされた領域のページは全てアクセス不許可になる。次に(5)でクラスタ共有メモリ上のデータ領域Xに数値「1」を加えようとする。するとWRITEページフォールトが発生する。クラスタ共有メモリ操作手段は、この領域がREADが不可能なので、このデータ領域を含むページの内容をクラスタ共有ファイルDから読みこむ。そして、そのページをREAD/WRITE可能に設定し、ページフォールト処理を終了する。ページフォールトから戻った後、プロセスBはデータ領域Xの値に数値「1」を加える。そして(6)でクラスタ共有メモリ用ロックを解放する。これにより、クラスタ共有メモリ用ロック操作手段は、更新ページであるデータ領域Xを含むページの内容をクラスタ共有ファイルDに書き戻す。この時点でデータ領域Xの値は「2」になる。
【0053】
最後にプロセスAは(7)でクラスタ共有メモリ用ロックを取得する。これによりクラスタ共有ファイルDがクラスタ共有メモリとしてマップされた領域のページは全てアクセス不許可になる。次に(8)でクラスタ共有メモリ上のデータ領域Xに1を加えようとする。するとWRITEページフォールトが発生する。クラスタ共有メモリ操作手段は、この領域がREAD/WRITE不可能なので、このデータ領域を含むページの内容をクラスタ共有ファイルDから読みこむ。そして、そのページをすREAD/WRITE可能に設定し、ページフォールト処理を終了する。ページフォールトから戻った後、プロセスAはデータ領域Xの値に数値「1」を加える。そして(9)でクラスタ共有メモリ用ロックを解放する。これにより、クラスタ共有メモリ用ロック操作手段は、更新ページであるデータ領域Xを含むページの内容をクラスタ共有ファイルDに書き戻す。この時点でデータ領域Xの値は3になる。
【0054】
【発明の効果】
本発明を適用することにより、クラスタ共有ファイルシステムを持つクラスタシステムで、ファイルへの共有アクセスと共に、メモリへの共有アクセスも可能になる。
更に本発明では、クラスタ共有ファイルシステムを用いることで、クラスタ共有メモリを安価に実現することができる。また、クラスタ共有ファイルをクラスタ共有メモリとしてマッピングするので、更新データに永続性が持たれる。更に、本発明では、クラスタ共有メモリを、クラスタ共有ファイルシステムを用いて実現するため、クラスタ共有ファイルを分散共有メモリとしてマッピングし、メモリとしてのアクセス(load命令/store命令)とファイルとしてのアクセス(readシステムコール/writeシステムコール)を並列に実行することができるようになる。
【図面の簡単な説明】
【図1】本発明のクラスタシステム10を示す図である。
【図2】サーバーコンピュータ11の構成を示す図である。
【図3】プロセス112の詳細を示した図でする。
【図4】クラスタ共有メモリ用ロック/クラスタ共有ファイルシステム用ロック変換テーブル113の詳細を示した図である。
【図5】クラスタ共有メモリ/クラスタ共有ファイル変換テーブル118の詳細を示した図である。
【図6】更新ページリスト119の詳細を示した図である。
【図7】クラスタ共有メモリを用いたクラスタ共有ファイルへのアクセス動作の処理手順を示すフローチャート図である。
【図8】クラスタ共有メモリマップ手段120による共有メモリのマッピング操作手順を示すフローチャート図である。
【図9】クラスタ共有メモリアンマップ手段121がクラスタ共有メモリをアンマップする処理手順を示すフローチャート図である。
【図10】クラスタ共有メモリ用ロックアロケーション手段122によるクラスタ共有メモリ用ロックアロケーション操作手順を示すフローチャート図である。
【図11】クラスタ共有メモリ用ロック解放手段123によるクラスタ共有メモリ用ロックを解放させる処理手順を示すフローチャート図である。
【図12】クラスタ共有メモリ用ロック操作手段114のロック操作の処理手順を示すフローチャート図である。
【図13】クラスタ共有メモリ用ロック操作手段114によるクラスタ共有メモリロックのアンロック操作の操作手順を示すフローチャート図である。
【図14】READページフォールトが発生が発生した場合のクラスタ共有メモリ用ページ操作手段115の処理手順を示すフローチャート図である。
【図15】WRITEページフォールトが発生が発生した場合のクラスタ共有メモリ用ページ操作手段115の処理手順を示すフローチャート図である。
【図16】2つのサーバーコンピュータが共有ディスク装置に記録されている同じファイルに対するアクセスをする場合の動作を説明するためのシステム構成を示す図である。
【符号の説明】
11‥‥サーバーコンピュータ
12‥‥サーバーコンピュータ
13‥‥サーバーコンピュータ
14‥‥サーバーコンピュータ
15‥‥SAN
16‥‥共有ディスク装置
Claims (3)
- 複数の電子計算機と、共有ディスク装置と、前記複数の電子計算機上で動作するプロセスから前記共有ディスク装置に記録されたファイルに対して共有アクセスするためにロック機能によりデータの一貫性を保持するための排他制御をするクラスタ共有ファイルシステムとを持ったクラスタシステムであって、
前記電子計算機は、
前記クラスタ共有ファイルシステムが管理するファイルを前記プロセスのアドレス空間内にマッピングして共有メモリを設定するためのクラスタ共有メモリ設定手段と、
前記クラスタ共有ファイルシステムのロック機能を前記共有メモリにアロケーションして前記共有メモリ上でデータの一貫性を保持するための排他制御を可能とするクラスタ共有メモリ用ロックアロケーション手段と、
前記設定された共有メモリ内の全てのページに対するアクセスを禁止にするアクセス禁止設定手段と、
前記アクセス禁止が設定されたページをアクセスしたときにREADページフォールトが発生した場合、そのページに前記マッピングされたデータを前記共有ディスク装置に記録されたファイルから読み出して書き込むデータ書き込み手段と、
前記データが書き込まれたページを読み出し可能に設定する設定手段とを具備することを特徴とするクラスタシステム。 - 複数の電子計算機と、共有ディスク装置と、前記複数の電子計算機上で動作するプロセスから前記共有ディスク装置に記録されたファイルに対して共有アクセスするためにロック機能によりデータの一貫性を保持するための排他制御をするクラスタ共有ファイルシステムとを持ったクラスタシステムであって、
前記電子計算機は、
前記クラスタ共有ファイルシステムが管理するファイルを前記プロセスのアドレス空間内にマッピングして共有メモリを設定するためのクラスタ共有メモリ設定手段と、
前記クラスタ共有ファイルシステムのロック機能を前記共有メモリにアロケーションして前記共有メモリ上でデータの一貫性を保持するための排他制御を可能とするクラスタ共有メモリ用ロックアロケーション手段と、
前記設定された共有メモリ内の全てのページに対するアクセスを禁止にするアクセス禁止設定手段と、
前記アクセス禁止が設定されたページをアクセスしたときにWRITEページフォールトが発生した場合、そのページに前記マッピングされたデータを前記共有ディスク装置に記録されたファイルから読み出して書き込むデータ書き込み手段と、
前記データが書き込まれたページを読み出し/書き込み可能に設定する設定手段とを具備することを特徴とするクラスタシステム。 - 前記クラスタ共有メモリをロック操作した場合、前記クラスタ共有ファイルシステムが管理するファイルを前記プロセスのアドレス空間にマッピングしたクラスタ共有メモリ領域のページをアクセス不許可に設定してロックを取得する手段と、
前記取得したロックをアンロック操作した場合、前記クラスタ共有メモリ領域の更新されたページのデータを前記クラスタ共有ファイルシステムが管理するファイルに書き戻す手段を具備したことを特徴とする請求項2記載のクラスタシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001071680A JP3704573B2 (ja) | 2001-03-14 | 2001-03-14 | クラスタシステム |
US09/944,097 US6961828B2 (en) | 2001-03-14 | 2001-09-04 | Cluster system, memory access control method, and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001071680A JP3704573B2 (ja) | 2001-03-14 | 2001-03-14 | クラスタシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002268933A JP2002268933A (ja) | 2002-09-20 |
JP3704573B2 true JP3704573B2 (ja) | 2005-10-12 |
Family
ID=18929369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001071680A Expired - Fee Related JP3704573B2 (ja) | 2001-03-14 | 2001-03-14 | クラスタシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6961828B2 (ja) |
JP (1) | JP3704573B2 (ja) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4721379B2 (ja) * | 2001-09-26 | 2011-07-13 | 株式会社日立製作所 | ストレージシステム、ディスク制御クラスタおよびディスク制御クラスタの増設方法 |
US20030101160A1 (en) * | 2001-11-26 | 2003-05-29 | International Business Machines Corporation | Method for safely accessing shared storage |
JP4146653B2 (ja) * | 2002-02-28 | 2008-09-10 | 株式会社日立製作所 | 記憶装置 |
JP3852693B2 (ja) * | 2002-03-19 | 2006-12-06 | ソニー株式会社 | 情報処理装置および方法、記録媒体、並びにプログラム |
CA2377649C (en) * | 2002-03-20 | 2009-02-03 | Ibm Canada Limited-Ibm Canada Limitee | Dynamic cluster database architecture |
US7523169B1 (en) * | 2003-02-28 | 2009-04-21 | Verizon Data Services Llc | Method and system for mapping network data for network database access |
GB0308923D0 (en) | 2003-04-17 | 2003-05-28 | Ibm | Low-overhead storage cluster configuration locking |
US20050125556A1 (en) * | 2003-12-08 | 2005-06-09 | International Business Machines Corporation | Data movement management system and method for a storage area network file system employing the data management application programming interface |
CN100337218C (zh) * | 2005-02-23 | 2007-09-12 | 北京邦诺存储科技有限公司 | 网络存储系统中的数据管理方法及其构建的网络存储系统 |
US7823153B1 (en) | 2005-09-30 | 2010-10-26 | Symantec Corporation | System and method for detecting and logging in-line synchronization primitives in application program code |
US7930684B2 (en) * | 2005-10-12 | 2011-04-19 | Symantec Operating Corporation | System and method for logging and replaying asynchronous events |
US8117600B1 (en) | 2005-12-29 | 2012-02-14 | Symantec Operating Corporation | System and method for detecting in-line synchronization primitives in binary applications |
US8140618B2 (en) * | 2006-05-04 | 2012-03-20 | Citrix Online Llc | Methods and systems for bandwidth adaptive N-to-N communication in a distributed system |
JP5028115B2 (ja) * | 2006-09-07 | 2012-09-19 | キヤノン株式会社 | 記録装置、その制御方法及びプログラム |
US20090037617A1 (en) * | 2007-07-30 | 2009-02-05 | Riley Dwight D | Middle management of input/output in server systems |
CN101594309B (zh) * | 2009-06-30 | 2011-06-08 | 华为技术有限公司 | 集群系统中内存资源的管理方法、设备及网络系统 |
US8364922B2 (en) * | 2009-12-21 | 2013-01-29 | International Business Machines Corporation | Aggregate symmetric multiprocessor system |
US10061701B2 (en) * | 2010-04-26 | 2018-08-28 | International Business Machines Corporation | Sharing of class data among virtual machine applications running on guests in virtualized environment using memory management facility |
JP2012208543A (ja) * | 2011-03-29 | 2012-10-25 | Sony Corp | 制御装置、記憶装置、読出制御方法 |
ES2837801T3 (es) * | 2012-08-07 | 2021-07-01 | Nokia Technologies Oy | Control de acceso para memoria inalámbrica |
US9431077B2 (en) * | 2013-03-13 | 2016-08-30 | Qualcomm Incorporated | Dual host embedded shared device controller |
US20140280347A1 (en) * | 2013-03-14 | 2014-09-18 | Konica Minolta Laboratory U.S.A., Inc. | Managing Digital Files with Shared Locks |
US20140289739A1 (en) * | 2013-03-20 | 2014-09-25 | Hewlett-Packard Development Company, L.P. | Allocating and sharing a data object among program instances |
US9990423B2 (en) | 2014-09-30 | 2018-06-05 | Splunk Inc. | Hybrid cluster-based data intake and query |
US10235460B2 (en) * | 2014-09-30 | 2019-03-19 | Splunk Inc. | Sharing configuration information for searches in data intake and query systems |
US9922099B2 (en) | 2014-09-30 | 2018-03-20 | Splunk Inc. | Event limited field picker |
US9430401B2 (en) * | 2015-01-16 | 2016-08-30 | International Business Machines Corporation | Implementing paging optimization to avoid populate on page fault during an IO read |
CN105630420A (zh) * | 2015-12-28 | 2016-06-01 | 阿坝师范学院 | 一种网络计算机存储系统及其存储方法 |
US10496607B2 (en) * | 2016-04-01 | 2019-12-03 | Tuxera Inc. | Systems and methods for enabling modifications of multiple data objects within a file system volume |
US10489323B2 (en) | 2016-12-20 | 2019-11-26 | Arm Limited | Data processing system for a home node to authorize a master to bypass the home node to directly send data to a slave |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5860146A (en) * | 1996-06-25 | 1999-01-12 | Sun Microsystems, Inc. | Auxiliary translation lookaside buffer for assisting in accessing data in remote address spaces |
US6148377A (en) * | 1996-11-22 | 2000-11-14 | Mangosoft Corporation | Shared memory computer networks |
US6151688A (en) * | 1997-02-21 | 2000-11-21 | Novell, Inc. | Resource management in a clustered computer system |
US6647468B1 (en) * | 1999-02-26 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Method and system for optimizing translation buffer recovery after a miss operation within a multi-processor environment |
JP2000305832A (ja) | 1999-04-23 | 2000-11-02 | Nec Software Kyushu Ltd | 複数ホストから構成されるクラスタシステムにおけるメモリの共有装置と方法 |
US6757802B2 (en) * | 2001-04-03 | 2004-06-29 | P-Cube Ltd. | Method for memory heap and buddy system management for service aware networks |
-
2001
- 2001-03-14 JP JP2001071680A patent/JP3704573B2/ja not_active Expired - Fee Related
- 2001-09-04 US US09/944,097 patent/US6961828B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US6961828B2 (en) | 2005-11-01 |
JP2002268933A (ja) | 2002-09-20 |
US20020133675A1 (en) | 2002-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3704573B2 (ja) | クラスタシステム | |
US7457880B1 (en) | System using a single host to receive and redirect all file access commands for shared data storage device from other hosts on a network | |
US7765189B2 (en) | Data migration apparatus, method, and program for data stored in a distributed manner | |
US20060136779A1 (en) | Object-based storage device with low process load and control method thereof | |
JP4771378B2 (ja) | ファイル・システム逐次化再初期設定の装置、システム、および方法 | |
US7647471B2 (en) | Method and system for collective file access using an mmap (memory-mapped file) | |
US9063887B2 (en) | Restoring distributed shared memory data consistency within a recovery process from a cluster node failure | |
EP0323013A2 (en) | Method of operating a multiprocessor system employing a shared virtual memory | |
US10387275B2 (en) | Resume host access based on transaction logs | |
KR20060044631A (ko) | 지속성 메모리 액세스 시스템, 지속성 메모리의 직접액세스 방법 및 지속성 메모리 시스템을 액세스하는 시스템 | |
JP2010102738A (ja) | ハードウェアベースのファイルシステムのための装置および方法 | |
CN109445685B (zh) | 一种用户态文件系统处理方法 | |
JP2005276158A (ja) | ストレージシステム、計算機システムまたは記憶領域の属性設定方法 | |
JP5338435B2 (ja) | 情報処理プログラム、情報処理装置および情報処理方法 | |
US8335903B2 (en) | Method and system for processing access to disk block | |
JPH04230550A (ja) | 情報処理ネツトワーク及び情報処理方法 | |
US10387384B1 (en) | Method and system for semantic metadata compression in a two-tier storage system using copy-on-write | |
US5577212A (en) | Method for reporting file write status in a shared file system | |
US10055139B1 (en) | Optimized layout in a two tier storage | |
US20170039110A1 (en) | Computer | |
US10628391B1 (en) | Method and system for reducing metadata overhead in a two-tier storage architecture | |
JP2024513734A (ja) | 入出力デバイスによってアクセス可能なメモリのページの移行 | |
JP2002312210A (ja) | ディスクアレイへのファイルシステムアクセスを提供する方法 | |
US6834281B1 (en) | Method and apparatus to support multi-node direct access to file system data | |
JP2924786B2 (ja) | 疎結合多重計算機システムにおける共有ファイルの排他制御システム、排他制御方法、および排他制御プログラムを記憶する媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041001 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041130 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050428 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20050511 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20050511 |
|
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: 20050628 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050704 |
|
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: 20090805 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100805 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |