(57)【要約】【課題】複数のホストコンピュータ間での高速な共有ファイルの受け渡し、及びアクセスしている間は他のホストコンピュータがアクセスしないように排他制御するファイル共有システムを提供する。【解決手段】ストレージ装置内にレジスタを設け、ホストコンピュータによりアクセス開始時、及び終了時にレジスタにアクセスさせることで、アクセスの開始及び終了を検知して、割込信号を生成し、他のホストコンピュータに送信する。【選択図】図２
2009176284.tif 000002
【特許請求の範囲】
【請求項１】
複数の共有ファイルを記憶するための記憶手段と、
外部装置と前記記憶手段との間の共有ファイルに関する情報を示す信号の送受信を行う複数の送受信手段と、
前記複数の送受信手段にそれぞれ接続され、前記記憶手段に記憶された共有ファイルへの接続開始時、及び、接続した共有ファイルを用いた処理の完了時に、処理対象とする前記共有ファイルを示す割込要求信号を外部へ出力する複数の端末装置と、
前記送受信手段を介して前記記憶手段に記憶された共有ファイルの接続開始を示す割込要求信号を受け付けた場合に、前記割込要求信号により示される共有ファイルへの接続を禁止する割込信号を生成して他の送受信手段を介して送信すると共に、前記送受信手段を介して前記記憶手段に記憶された共有ファイルの接続終了を示す割込要求信号を受け付けた場合に、前記割込要求信号により示される共有ファイルへの接続を許可する割込信号を生成して他の送受信手段を介して送信する割込生成手段と、
を含むファイル共有システム。
【請求項２】
前記割込生成手段に設けられ、前記割込要求信号を格納するためのレジスタをさらに備え、
前記割込生成手段は、前記レジスタの予め定められたアドレスに情報が書き込まれた場合に前記割込要求信号として受け付け、
前記端末装置は、前記割込生成手段により、割り当てられたアドレスに情報を書き込むことで前記割込要求信号を外部へ出力する、
ことを特徴とする請求項１に記載のファイル共有システム。
【請求項３】
前記割込生成手段は、前記送受信手段を介して入力される複数の割込要求信号を、入力された順番で整列して保持する割込要求信号整列手段をさらに有することを特徴とする、
請求項２に記載のファイル共有システム。
【請求項４】
端末装置と外部記憶装置との間の接続方式として、前記端末装置から前記外部記憶装置に前記符号の送受信を送る際に前記送受信手段がエンドポイントとなる接続方式を用いた、
請求項１〜請求項３のいずれか１項に記載のファイル共有システム。
【請求項５】
前記割込生成手段は、前記他の送受信手段のうちの予め設定された前記送受信手段を介して割込信号を出力する、
ことを特徴とする請求項１〜請求項４のいずれか１項に記載のファイル共有システム。
【請求項６】
前記端末装置が前記記憶手段へアクセスしている一部又は全部の期間、この端末装置から前記割込生成手段へ、前記アクセス動作中であることを示すハートビート信号を送信するハートビート信号送信手段をさらに有し、
前記割込生成手段は、前記ハートビート信号の入力状態を監視して、当該ハートビート信号に異常があった場合に、前記ハートビート信号の送信元である端末装置の前記記憶手段への接続を中止することを特徴とする請求項１〜請求項５の何れか１項記載のファイル共有システム。
【請求項７】
前記ハートビート信号が周期信号であり、このハートビート信号による監視が、当該周期単位でのハートビート信号の受信の有無を確認するものであり、前記記憶手段に記憶された共有ファイルへの接続開始時から、接続した共有ファイルを用いた処理の完了時までの期間は相対的に短い周期とし、それ以外の期間においては相対的に長い周期とする請求項６記載のファイル共有システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル共有システムに関する。
【背景技術】
【０００２】
従来、複数の端末装置間でファイルを共有するファイル共有システムとしては、共有ファイルを外部記憶装置（ストレージ装置）に格納し、複数のホストコンピュータをストレージ装置に接続するものがある。
【０００３】
ストレージ装置と複数のホストコンピュータとの接続形態としては、主として、ＤＡＳ（Ｄｉｒｅｃｔ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、及びＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）の３種類があげられる。
【０００４】
ＮＡＳでは、ストレージ装置と複数のホストコンピュータとがネットワークを介して接続され、ストレージ装置としてファイルサーバが用いられる場合がある。この場合、ネットワークに接続されたホストコンピュータとファイルサーバ間では、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）、ＣＩＦＳ（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）等の専用プロトコルによる使用により、ファイル単位のデータ転送が行われるため、ファイルを共有するのに適している。
【０００５】
また、ＤＡＳではホストコンピュータとストレージ装置とをＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）で接続し、ＳＡＮではファイバーチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）等のインタフェースで接続する。ＤＡＳ、ＳＡＮでは、データの転送がデータブロック単位で行われる。
【０００６】
このようにして、ストレージ装置を用いてファイルを共有する場合、複数のホストコンピュータが１つのファイルに同時にアクセスすると、正常にアクセス処理を実行できない場合がある。
【０００７】
従来、共有ファイルの排他制御に関する技術として、例えば特許文献１には、接続形態としてＮＡＳを適用し、共有ファイルの排他制御を行うことが提案されている（例えば、特許文献１参照）。特許文献１では、ファイルの排他状態等を管理するテーブルをストレージ装置に設け、ストレージ装置側がファイルの占有解除を検知すると割込を発生してホストコンピュータに通知している。
【０００８】
また、ファイル管理テーブルを各ホストコンピュータに設け、共有ファイルのロック／アンロックをホストコンピュータ間のメッセージ通信で実現する方法もある（例えば、特許文献２参照）。
【特許文献１】特開平９−８１４３５号公報
【特許文献２】特開平１１−３１２１１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、外部記憶装置と端末装置との接続形態に関わらず、アクセスの排他制御をファイル単位で行うことができるファイル共有システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、請求項１の発明は、複数の共有ファイルを記憶するための記憶手段と、外部装置と前記記憶手段との間の共有ファイルに関する情報を示す信号の送受信を行う複数の送受信手段と、前記複数の送受信手段にそれぞれ接続され、前記記憶手段に記憶された共有ファイルへの接続開始時、及び、接続した共有ファイルを用いた処理の完了時に、処理対象とする前記共有ファイルを示す割込要求信号を外部へ出力する複数の端末装置と、前記送受信手段を介して前記記憶手段に記憶された共有ファイルの接続開始を示す割込要求信号を受け付けた場合に、前記割込要求信号により示される共有ファイルへの接続を禁止する割込信号を生成して他の送受信手段を介して送信すると共に、前記送受信手段を介して前記記憶手段に記憶された共有ファイルの接続終了を示す割込要求信号を受け付けた場合に、前記割込要求信号により示される共有ファイルへの接続を許可する割込信号を生成して他の送受信手段を介して送信する割込生成手段と、を含んで構成されたファイル共有システムである。
【００１１】
請求項２の発明は、前記割込生成手段に設けられ、前記割込要求信号を格納するためのレジスタをさらに備え、前記割込生成手段は、前記レジスタの予め定められたアドレスに情報が書き込まれた場合に前記割込要求信号として受け付け、前記端末装置は、前記割込生成手段により、割り当てられたアドレスに情報を書き込むことで前記割込要求信号を外部へ出力する、ことを特徴とする。
【００１２】
請求項３の発明は、前記割込生成手段は、前記送受信手段を介して入力される複数の割込要求信号を、入力された順番で整列して保持する割込要求信号整列手段をさらに有することを特徴とする。
【００１３】
請求項４の発明は、端末装置と外部記憶装置との間の接続方式として、前記端末装置から前記外部記憶装置に前記符号の送受信を送る際に前記送受信手段がエンドポイントとなる接続方式を用いた、ことを特徴とする。
【００１４】
請求項５の発明は、前記割込生成手段は、前記他の送受信手段のうちの予め設定された前記送受信手段を介して割込信号を出力する、ことを特徴とする。
【００１５】
請求項６の発明は、前記端末装置が前記記憶手段へアクセスしている一部又は全部の期間、この端末装置から前記割込生成手段へ、前記アクセス動作中であることを示すハートビート信号を送信するハートビート信号送信手段をさらに有し、前記割込生成手段は、前記ハートビート信号の入力状態を監視して、当該ハートビート信号に異常があった場合に、前記ハートビート信号の送信元である端末装置の前記記憶手段への接続を中止する、ことを特徴とする。
【００１６】
請求項７の発明は、前記ハートビート信号が周期信号であり、このハートビート信号による監視が、当該周期単位でのハートビート信号の受信の有無を確認するものであり、前記記憶手段に記憶された共有ファイルへの接続開始時から、接続した共有ファイルを用いた処理の完了時までの期間は相対的に短い周期とし、それ以外の期間においては相対的に長い周期である、ことを特徴とする。
【発明の効果】
【００１７】
請求項１記載の発明によれば、外部記憶装置と端末装置との接続形態に関わらず、アクセスの排他制御をファイル単位で行うことができる。
【００１８】
請求項２記載の発明によれば、専用プロセッサや管理テーブル等を設けることなくアクセスの排他制御をファイル単位で行うことができる。
【００１９】
請求項３記載の発明によれば、割込要求信号を逐次的に処理できる。
【００２０】
請求項４記載の発明によれば、他の接続方式を用いる場合と比較して、高速にアクセスの排他制御をファイル単位で行うことができる。
【００２１】
請求項５記載の発明によれば、予め設定した端末装置に割込信号を出力することができる。
【００２２】
請求項６記載の発明によれば、接続しているホストコンピュータが異常であると認識したら、アクセスの排他制御を解除することができる。
【００２３】
請求項７記載の発明によれば、共有ファイルへのアクセス期間中に発生したホストコンピュータの異常を、それ以外の期間に比べてより迅速に検知し、アクセスの排他制御を解除することができる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照して、本発明に係る実施の形態について説明する。
（第１の実施の形態）
図１には、本実施の形態に係るファイル共有システム１０全体を表すブロック図が示されている。
【００２５】
図１に示されているように、ファイル共有システム１０は、複数のホストコンピュータ１２とストレージ装置１６とを含んで構成されている。なお、図１には、ストレージ装置１６に２台のホストコンピュータ１２ａ、及びホストコンピュータ１２ｂを接続する場合について示す。以下、各ホストコンピュータ１２ａ、１２ｂを区別しないで説明する場合は、符号の末尾のアルファベットを省略する。
【００２６】
各ホストコンピュータ１２は、各種プログラムやパラメータ等が記憶されたＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２６、各種プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；中央演算処理装置）２４、ＣＰＵ２４による各種プログラムの実行時におけるワークエリア等として用いられるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２８とを含んで構成されている。これらＣＰＵ２４、ＲＯＭ２６、及びＲＡＭ２８は、バス３０に接続されている。
【００２７】
また、ホストコンピュータ１２は、ＣＰＵ２４による各種プログラムの実行に伴い生成される各種データやファイル等が記憶されるＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）２２、キーボード、マウス等の入力デバイス１８、ＨＤＤ２２、ＲＯＭ２６、ＲＡＭ２８等に記憶されたデータやファイルに基づいて画像等を表示するためのディスプレイ２０、及び外部装置とのデータの入出力を制御する入出力ポート３２も設けられており、これらＨＤＤ２２、入出力デバイス１８、ディスプレイ２０、入出力ポート３２もバス３０に接続されている。
【００２８】
また、ストレージ装置１６には、外部装置とのデータの入出力を制御する複数の入出力ポート（Ｉ／Ｏポート）４０、共有ファイル等を記憶するメモリ４８、ホストコンピュータ１２によるＩ／Ｏポート４０を介したメモリ４８へのアクセスを管理する制御回路４６とを含んで構成されており、それぞれバス４２に接続されている。
【００２９】
メモリ４８には、ホストコンピュータ１２がアクセスする共有ファイル６０（同図では図示省略、図２参照。）と、共有ファイルの格納先を示すテーブル５８（例えば、以下の表１参照）とが格納されている。
【００３０】
【表１】
2009176284.tif 000003
表１に示すテーブルにおいて、「ファイル名」は共有ファイル６０のファイル名であり、「ブロック」は、各ファイルを構成するデータが記憶されているデータブロックである。例えば、表１では、「Ａｐｐｌｅ」というファイル名のファイルは、「ａ」、「ｂ」、「ｅ」、「ｇ」のデータブロックに記憶されていることを示している。なお、表のフォーマットはメモリ４８のファイルシステムによって異なる。
【００３１】
また、ストレージ装置１６は、上記の表１のように「ファイル名」とファイルを構成するデータの「データブロック名」とが各々対応付けられたテーブルを、メモリ４８の中に保持することにより、ホストコンピュータ１２から共有ファイル６０へのアクセスが可能となる。
【００３２】
また、ストレージ装置１６のＩ／Ｏポート４０ａには、ホストコンピュータ１２ａのＩ／Ｏポート３２ａが、ストレージ装置１６のＩ／Ｏポート４０ｂには、ホストコンピュータ１２ｂのＩ／Ｏポート３２ｂが、それぞれ接続されている。
【００３３】
なお、図１では、２台のホストコンピュータを接続する形態について示したが、本発明は、小規模な構成においての共有ファイルの受け渡しを実現する場合に適しており、例えば、１台のストレージ装置１６にホストコンピュータ１２が４台〜８台程度接続されている形態に適用してもよい。この場合、ストレージ装置１６のＩ／Ｏポート４０の数は、接続するホストコンピュータの数だけ設ける。
【００３４】
ホストコンピュータ１２は、Ｉ／Ｏポート３２を介して、ストレージ装置１６のＩ／Ｏポート４０に転送データ信号５０を送信することにより、ストレージ装置１６のメモリ４８へのアクセスを行う。ストレージ装置１６のＩ／Ｏポート４０は、受信した転送データ信号５０をストレージ装置内のメモリ４８に送る。これによって、転送データ信号５０を送信したホストコンピュータ１２によるメモリ４８へのアクセスが開始される。
【００３５】
ホストコンピュータ１２は、メモリ４８へのアクセスにより、アクセスを行う共有ファイルの格納、読み出し、及び書き込みを行う。
【００３６】
ホストコンピュータ１２により共有ファイル６０がメモリ４８に格納される場合には、転送データ信号５０として共有ファイルを示すデータがＩ／Ｏポート３２、Ｉ／Ｏポート４０を介してメモリ４８に転送される。
【００３７】
また、ホストコンピュータ１２により共有ファイル６０の読み出しが行われる場合には、転送データ信号５０として、ファイル名を示す情報がＩ／Ｏポート３２、Ｉ／Ｏポート４０を介してメモリ４８に転送される。これにより、メモリ４８に対応する共有ファイル６０を示すデータがＩ／Ｏポート４０、Ｉ／Ｏポート３２を介してホストコンピュータ１２に転送される。
【００３８】
ホストコンピュータ１２が共有ファイル６０の書き込みを行う場合は、転送データ信号５０として、書き込みデータがＩ／Ｏポート３２、Ｉ／Ｏポート４０を介してメモリ４８に転送される。
【００３９】
また、ホストコンピュータ１２では、共有ファイル６０へのアクセス開始時及びアクセス完了時に、割込要求信号５２がストレージ装置１６に出力される。
【００４０】
ここで、ストレージ装置１６では、上記転送データ信号５０を用いたメモリ４８へのアクセスを、各ホストコンピュータ１２に共有ファイル単位で排他的に実行させるべく割込生成部４７が設けられている。なお、当該割込生成部４７は、制御回路４６により実行される機能の一部を示す。
【００４１】
割込生成部４７は、レジスタ部４９を含んで構成されている。ストレージ装置１６のＩ／Ｏポート４０では、ホストコンピュータ１２から割込要求信号５２が入力された場合、割込生成部４７のレジスタ部４９の予め設定された領域への割込要求信号５２の格納が実行される。割込生成部４７では、レジスタ部４９の予め設定された領域に情報が格納された場合に、割込信号５４が生成される。割込生成部４７では、割込要求信号５２のレジスタ４９への格納を実行したＩ／Ｏポート４０以外のＩ／Ｏポート４０への生成した割込信号５４の出力が実行される。
【００４２】
なお、レジスタ４９の割込要求信号５２を格納する領域を示すアドレスは、予めホストコンピュータ１２のＩ／Ｏポートアドレス空間にマッピングされており、ホストコンピュータ１２では、マッピングされたレジスタアドレスに対して割込要求信号５２が出力される。
【００４３】
例えば、ホストコンピュータ１２ａから共有ファイル６０へアクセスを開始する場合について説明する。ホストコンピュータ１２ａは、Ｉ／Ｏポート３２ａを介して予めマッピングされたアドレスに割込要求信号５２ａを送信する。割込生成部４７は、Ｉ／Ｏポート４０ａを介してレジスタ４９の予め設定された領域に割込要求信号５２ａが格納されると、ホストコンピュータ１２ｂのＩ／Ｏポート３２ｂと接続されているＩ／Ｏポート４０ｂに割込信号５４ｂを出力する。
【００４４】
これにより、ホストコンピュータ１２ｂは、ストレージ装置１６からの割込信号５４ｂを受信することで、ホストコンピュータ１２ａが共有ファイル６０へアクセスを開始したことを検知する。
【００４５】
以下に第１の実施の形態の作用を説明する。
【００４６】
第１の実施の形態に係るファイル共有システム１０では、ユーザによるホストコンピュータ１２の入力デバイス１８を介した入力操作により、ストレージ装置１６のメモリ４８に格納された共有ファイル６０へのアクセスが指示されると、ホストコンピュータ１２によるストレージ装置１６へのアクセスを実行する。
【００４７】
図３には、ホストコンピュータ１２がストレージ装置１６のメモリ４８にある共有ファイル６０にアクセスする際にＣＰＵ２４により実行されるファイルアクセス処理の流れが示されている。以下、同図を参照して、本実施の形態に係るファイルアクセス処理について説明する。なお、ファイルアクセス処理プログラムは、ＲＯＭ２６に予め格納されている。
【００４８】
まず、ステップ１００では、割込生成部４７のレジスタ４９に割込要求信号５２を書き込むために、予めＩ／Ｏポート３２のアドレス空間にマッピングされたレジスタアドレスに割込要求信号５２を送信する。ここで、ステップ１００では、割込要求信号５２として、ユーザにより指定された共有ファイル６０へのアクセス開始を示す情報（以下では、「ロック用割込要求信号」という。）を送信する。
【００４９】
次にステップ１０２で、ユーザにより指定された共有ファイル６０をオープンする。具体的には、ホストコンピュータ１２はメモリ４８にアクセスして、選択された共有ファイル６０を示すデータを読み出し、読み出したデータに基づき共有ファイル６０をディスプレイ２０に表示する。
【００５０】
次のステップ１０４では、オープンしている共有ファイル６０に対してクローズ指示があったか否かを判断する。このステップ１０４でクローズ指示があったと判断された場合には、ステップ１０４が肯定判定となり、ステップ１０５に移行して、共有ファイル６０のディスプレイ２０への表示を終了することにより、ファイルをクローズし、その後にステップ１０６に移行する。なお、ステップ１０５におけるクローズ処理として、表示内容が変更されている場合には、適宜共有ファイル６０に変更内容を反映させる共有ファイル６０の更新処理を実行してもよい。
【００５１】
ステップ１０６では、割込生成部４７のレジスタ４９に割込要求信号５２を書き込むために、予めＩ／Ｏポート３２のアドレス空間にマッピングされたレジスタアドレスに割込要求信号５２を送信し、その後にファイルアクセス処理を終了する。ここで、ステップ１０６では、割込要求信号５２として、ユーザにより指定された共有ファイル６０へのアクセス終了を示す情報（以下では、「アンロック用割込要求信号」という。）を送信する。
【００５２】
一方、ステップ１０４で、アクセスしている共有ファイル６０へのクローズ指示が入力されていないと判断された場合には、ステップ１０４が否定判定となり、ステップ１０８へ進み、書き込み指示がなされたか否かを判断する。ステップ１０８で共有ファイル６０への書き込み指示があったと判断された場合には、ステップ１０８が肯定判定となり、ステップ１１０へ進み共有ファイルへの書き込みを行う。ステップ１１０における書き込みが終了したら、再度ステップ１０４へ戻る。
【００５３】
また、ステップ１０８で否定判定となった場合は、書き込み指示が入力されていないと判断し、ステップ１０４に戻る。
【００５４】
次に図４では、割込要求信号５２（図３のステップ１００、ステップ１０６参照）を受信した場合に制御回路４６により実行される割込生成処理の流れが示されている。
【００５５】
ステップ１１４では、レジスタ４９にアクセスされた内容を読み出し、ステップ１１６では、読み出したレジスタ４９の内容が、ロック用割込要求信号か否かを判断する。当該ステップ１１６が肯定判定となった場合は、レジスタ４９がロック用割込要求信号５２を受信したと判断し、ステップ１１８へ進み、共有ファイル６０へアクセスしていない全てのホストコンピュータ１２に対して、共有ファイル用の割込信号（共有ファイルロック用割込信号）５４を送信し、その後に割込生成処理を終了する。
【００５６】
また、ステップ１１６で否定判定となった場合は、アンロック用割込要求信号を受信したと判断し、ステップ１２０へ進み、アンロック用の割込要求信号（共有ファイルアンロック用割込信号）５２を送信し、その後に割込生成処理を終了する。
【００５７】
次に図５には、割込信号５４（図４のステップ１１８、ステップ１２０参照）をストレージ装置１６から受け付けた場合のホストコンピュータ１２の処理の流れを示すアクセス禁止処理が示されている。
【００５８】
ステップ１２２では、受信した割込信号５４を共有ファイル６０のロック用割込信号として受付け、その後にステップ１２４で、割込信号５４を受信したか否かを判断する。
【００５９】
当該ステップ１２４が否定判定となった場合は、ステップ１３０に移行し、ユーザによる入力デバイス１８を介した共有ファイル６０へのアクセス要求があったか否かを判断する。当該ステップ１３０で否定判定となった場合は、再度ステップ１２４へ戻る。
【００６０】
一方、ステップ１３０が肯定判定となった場合は、ステップ１３２に移行して、アクセス要求された共有ファイル６０がロックされている共有ファイル６０に対してのアクセス要求であったか否かを判断する。当該ステップ１３２で肯定判定となった場合も同様に、ステップ１２４へ戻る。
【００６１】
ステップ１３２が否定判定となった場合は、ロックされている共有ファイル６０とは異なる共有ファイル６０へのアクセス要求であると判断し、ステップ１３４で当該アクセス要求された共有ファイル６０へのアクセスが許可される。
【００６２】
即ち、ステップ１２２で一旦ロック用割込信号を受け付けてから、ステップ１２４で割込信号５４を受信するまでの間は、ステップ１３０〜ステップ１３４までの処理を行う。
【００６３】
これにより、例えば、図２に示すテーブル５８において、共有ファイル「Ａｐｐｌｅ」についてのファイルアクセスが実行されている最中であっても、共有ファイル「Ｏｒａｎｇｅ」や「Ｂａｎａｎａ」等のファイルアクセスされていない他の共有ファイル６０に対しては、他のホストコンピュータ１２による共有ファイル「Ａｐｐｌｅ」へのアクセスの影響を受けずにファイルアクセスを行うことを可能にしている。
【００６４】
一方、ステップ１２４で肯定判定となった場合は、アンロック用割込信号を受信したと判断し、ステップ１２５へ進む。
【００６５】
ステップ１２５では、受信した割込信号５４がアンロック用割込信号であるか否かを判断する。当該ステップ１２５が否定判定となった場合には、ステップ１２２に戻る。
【００６６】
ステップ１２５で肯定判定となった場合は、ステップ１２６へ進み、ロックされていた共有ファイル６０（ステップ１２２参照）に対してのファイルアクセス要求がされたか否かを判断する。
【００６７】
ステップ１２６で肯定判定となった場合は、ステップ１２８へ進み、ロックされていた共有ファイル６０に対してのファイルアクセスがアンロック用割込信号を受信したことにより（ステップ１２５参照）、ロックが解除され、ファイルアクセスが可能となったので、アクセス処理を許可し、その後ステップ１２９に進む。
【００６８】
一方、ステップ１２６で否定判定となった場合は、ステップ１２８を経ずにステップ１２９へ進む。
【００６９】
ステップ１２９で、ロックが解除された共有ファイル６０以外の共有ファイル６０でアンロック用割込信号の受信待ちである（ロックされている）共有ファイル６０があるか否かを判断する。
【００７０】
当該ステップ１２９が肯定判定となれば、アクセス禁止処理は終了する。
【００７１】
ステップ１２９で否定判定となれば、ステップ１２２に戻り、当該ロックされている共有ファイル６０に対しての処理が行われる。
（第２の実施の形態）
第２の実施の形態では、ホストコンピュータ６４とストレージ装置６８の間をＰＣＩ  Ｅｘｐｒｅｓｓインタフェースにより接続する形態について説明する。
【００７２】
なお、第２の実施の形態において、上記第１の実施の形態と同様の構成については、同一符号を付してその説明を省略する。
【００７３】
図６には、第２の実施の形態に係るファイル共有システム６２での、ホストコンピュータ１２ａ、ホストコンピュータ１２ｂ、及びストレージ装置６８との間でのメモリ４８に記憶された共有ファイル６０のデータの流れが示されている。
【００７４】
図６に示されているように、第２の実施の形態では、ホストコンピュータ６４ａ、６４ｂとストレージ装置６８内のＩ／Ｏポート７０との通信にＰＣＩ  Ｅｘｐｒｅｓｓを使用する点が第１の実施の形態のファイル共有システム１０と異なっている。
【００７５】
これにより、ホストコンピュータ６４ａとストレージ装置６８間の通信をＰＣＩ  Ｅｘｐｒｅｓｓ規格信号とすることができる。また、ＰＣＩ  Ｅｘｐｒｅｓｓのエンドポイントは、ストレージ装置６８内にあるＩ／Ｏポート７０の中に設けられ、レジスタアドレスはＰＣＩ  Ｅｘｐｒｅｓｓのアドレス空間にマッピングされる。
（第３の実施の形態）
第１、及び第２の実施の形態では、制御回路４６は割込要求信号５２ａ、５２ｂを個別に入力する構成であるが、第３の実施例では、制御回路４６内に割込要求信号整列部７６を備えたファイル共有システムについて、図７に基づいて説明する。
【００７６】
なお、第３の実施の形態においても、図１及び図２と対応する場合には、同一符号を付して説明を省略する。
【００７７】
図７に示されているように、割込要求信号整列部７６は、Ｉ／Ｏポート４０とレジスタ４９とに接続されている。割込要求信号整列部７６は、例えば先入先出し（ＦＩＦＯ；Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）形式等を採用し、データを入力順に整列させて格納する。
【００７８】
複数の割込要求信号５２が割込要求信号整列部７６に入力すると、１つずつ整列した割込要求信号５２となってレジスタ４９に到達する。この割込要求信号整列部７６を設けることによって、割込要求信号整列部７６は、逐次的にレジスタ４９に割込要求信号５２を書き込む。
【００７９】
複数の割込要求信号５２が割込要求信号整列部７６に入力すると、１つずつ整列した割込要求信号となってレジスタ４９に到達する。この割込要求信号整列部７６を設けることによって、割込生成部４７では、逐次的にレジスタ４９に割込要求信号５２を書き込む。
【００８０】
Ｉ／Ｏポート４０を介して入力された割込要求信号５２は、割込要求信号整列部７６に一時的に保持され、入力された順番にレジスタ４９に格納される。
【００８１】
これにより、割込生成部４７では、ホストコンピュータ１２から送信された割込要求信号５２を順次処理する。
【００８２】
なお、第１の実施の形態〜第３の実施の形態では、レジスタに割込要求信号５２が入力されると、他の全てのホストコンピュータに割込信号５４が出力される構成となっているが、予め割込信号５４を出力するホストコンピュータを限定する設定を行うことで、指定したホストコンピュータにのみ割込信号５４を出力することも可能である。
【００８３】
また、第１の実施の形態〜第３の実施の形態では、共有ファイルがオープンされると、ほかのホストコンピュータがオープンされているファイルへアクセスできないように、レジスタによってロック用の割込信号が出力されるが、割込要求信号５２を、読出要求信号、書込要求信号、及び読み書き割込要求信号との３種類の割込要求信号を設けることで、割込要求信号の種類が読み出し要求信号の場合であれば、ロック用の割込信号を出力させない構成とすることも可能である。共有ファイル６０への読み出し専用の要求信号であれば、他のホストコンピュータからのアクセスがあっても排他制御することなく、競合させてもよい場合があるためである。
【００８４】
また、ホストコンピュータ１２側では、ロック中であっても、読み出し専用アクセスだけを許可するようにしてもよい。
【００８５】
また、第１の実施の形態〜第３の実施の形態では、レジスタに書き込みを行ってから、共有ファイル６０をファイルオープン（ステップ１００、及び１０２参照）する処理、またはファイルクローズを行ってから、共有ファイル６０をファイルクローズ（ステップ１０５、及び１０６）する処理を実行しているが、例えばＣ言語のファイル入出力関数ライブラリとして、ファイルオープン機能、及びファイルクローズ機能に、ファイルロック、及びファイルアンロック通知のためのレジスタアクセス機能を各々含む関数を用意することもできる。
【００８６】
これにより、用意された関数をアプリケーションプログラムが呼び出して実行する。
【００８７】
すなわち、この場合、関数ライブラリを変更するだけでファイルアクセス機能を実行させるので、プログラム自体を変更する必要はない。
(第４の実施の形態)
第４の実施の形態では、ホストコンピュータ１２とストレージ装置９１の間でハートビート信号８２を送受信する形態について説明する。以下では、ホストコンピュータ１２を用いて説明するが、図６に示すホストコンピュータ６４であってもよい。
【００８８】
なお、第４の実施の形態において、上記第１〜第３の実施の形態と同様の構成については、同一符号を付してその説明を省略する。
【００８９】
図８には、第４の実施の形態に係るファイル共有システム９０での、ホストコンピュータ１２ａ、ホストコンピュータ１２ｂ、及びストレージ装置９１との間でのメモリ４８に記憶された共有ファイル６０のデータの流れが示されている。
【００９０】
図８に示されているように、第４の実施の形態では、ストレージ装置９１がホストコンピュータ１２から送信されるハートビート信号８２（図９参照）を受信する。ストレージ装置９１内にあるハートビート解析部８０が、予め定めた周期でホストコンピュータ１２からハートビート信号を受信し続けているか否かを解析する点が第１〜第３の実施の形態とは異なっている。
【００９１】
ここで、ハートビート信号８２とは、共有ファイル６０へアクセスするホストコンピュータ１２とストレージ装置９１との接続が有効であることを示すために、予め定めた周期でホストコンピュータ１２からストレージ装置９１へ送信し続ける信号のことである。ストレージ装置９１は、接続しているホストコンピュータ１２からハートビート信号８２を一定の周期で受信し続けていない場合（例えば、一定の周期毎に受信しない場合）は、当該ホストコンピュータ１２に障害（異常）が発生したと認識する。ストレージ装置９１は、障害が発生したと認識した場合は、当該ホストコンピュータ１２との接続を切断する。この切断は、該当するホストコンピュータ１２の独占排他の解除を意味する。
【００９２】
図９には、第４の実施の形態に係る連絡信号８４が示されている。この連絡信号８４は、第１〜第３の実施の形態に係る割込要求信号５２にハートビート信号８２を組み合わせた信号となっている。また、ハートビート信号８２は、例えば一定間隔で送信するパルス信号等を使用することができる。
【００９３】
図９に示されたハートビート信号８２は、ホストコンピュータ１２がストレージ装置９１内のメモリ４８にある共有ファイル６０へのアクセス開始時に送信する割込要求信号５２からアクセス完了時に送信する割込要求信号５２の間の期間中（以下、この期間を「ファイルアクセス期間」という。）に、ストレージ装置９１に対して出力される信号である。このため、ストレージ装置９１は、ファイルアクセス期間中は所定時間毎にホストコンピュータ１２からハートビート信号８２を受信し続けるようになっている。
【００９４】
ファイルアクセス期間は、共有ファイル６０に接続しているホストコンピュータ１２が共有ファイル６０を独占している状態である。この期間中にストレージ装置９１は、ホストコンピュータ１２からハートビート信号８２を一定の周期で受信することにより、ホストコンピュータ１２に障害が発生していないかを確認するようになっている。
【００９５】
以下に、第４の実施の形態の作用を説明する。
【００９６】
図１０には、ホストコンピュータ１２がストレージ装置９１内の共有ファイル６０にアクセスする際に、ＣＰＵ２４により実行されるファイルアクセス処理の流れが示されている。なお、図３と同様のステップについては、同一のステップ番号を付し、一部その説明を省略する。
【００９７】
ステップ１００で、指定された共有ファイル６０へのアクセス開始を示す割込要求信号５２を送信し、レジスタ部４９への書込みが行われたら、ステップ２００へ移行する。
【００９８】
ステップ２００では、ハートビート信号８２をストレージ装置９１内のハートビート解析部８０へ送信を開始する。
【００９９】
ステップ２００でハートビート信号８２が送信開始されたら、ステップ１０２へと移行し、ファイルをオープンする。ステップ１０２からステップ１０５までの処理を終え、ファイルがクローズされたら、ステップ２０２へ移行する。
【０１００】
ステップ２０２でハートビート信号８２の送信を終了したら、ステップ１０６へ移行し、共有ファイル６０へのアクセス完了を示す割込要求信号５２を送信し、レジスタ部４９への書込みを行う。
【０１０１】
次に、図１１には、ストレージ装置９１内の制御回路４６により実行されるレジスタ読出制御（ハートビート信号監視）ルーチンが示されている。
【０１０２】
ステップ２１０では、レジスタ部４９にホストコンピュータ１２からの信号がレジスタ部４９へ登録されたか否かを判定し、肯定判定の場合は、ステップ２１２へ移行する一方、否定判定の場合には、ステップ２１６へ移行する。
【０１０３】
ステップ２１２では、ステップ２１０で登録された信号の種類を判断する。ロック用割込要求信号であればステップ２１４へ移行し、共有ファイル６０へアクセスしていない他のホストコンピュータ１２へ共有ファイルロック用割込要求信号を送信してステップ２１６へ移行する。
【０１０４】
一方、アンロック用割込要求信号であれば、ステップ２２４へ移行し、共有ファイル６０へアクセスしていない他のホストコンピュータ１２へ共有ファイルアンロック用割込要求信号を送信してステップ２１６へ移行する。
【０１０５】
ステップ２１６では、共有ファイル６０へアクセスしているホストコンピュータ１２があるか否かを判断する。肯定判定であればステップ２１８へ移行する一方、否定判定であれば、処理を終了する。
【０１０６】
ステップ２１８では、共有ファイル６０へアクセスしているホストコンピュータ１２から送信されるハートビート信号８２を監視し、ステップ２２０へ移行する。
【０１０７】
ステップ２２０では、監視しているハートビート信号８２が一定の周期で受信できていないか否か、すなわち障害が発生しているか否かを判定する。
【０１０８】
否定判定、すなわち障害が発生していない場合には、処理を終了する一方、肯定判定、すなわち障害が発生している場合には、ステップ２２２へ移行する。
【０１０９】
ステップ２２２では、共有ファイル６０へアクセスしているホストコンピュータ１２に障害（異常）が発生しているので通信を強制的に切断し、ステップ２２４へ移行し、それ以後の処理を行う。
（第５の実施の形態）
第５の実施の形態では、ホストコンピュータ１２とストレージ装置９１の間で、メモリ４８への接続中にハートビート信号８２を送受信する形態について説明する。
【０１１０】
なお、第５の実施の形態においても、第４の実施の形態に係るファイル共有システム９０（図８参照）を適用して説明する。
【０１１１】
図１２には、第５の実施の形態に係る連絡信号８６が示されている。
【０１１２】
図１２に示されたハートビート信号８２は、ホストコンピュータ１２が共有ファイル６０へ接続又は共有ファイル６０への接続を切断するための通信プロトコルを実行している期間（以下、この期間を「ストレージアクセス期間」という）からハートビート信号８２を送信し続けるようになっている。
【０１１３】
ストレージアクセス期間にホストコンピュータ１２からハートビート信号８２が正常に送信されていない場合は、ホストコンピュータ１２が正常に動作していない状態と判断し、ストレージ装置９１は、共有ファイル６０へのアクセス開始を示す割込要求信号５２を受信したとしても、その後の処理を行わない。
【０１１４】
また、例えば図１３に示すように、ストレージアクセス期間のハートビート信号８２Ａは相対的に低頻度で送信し、ファイルアクセス期間中のハートビート信号８２Ｂは相対的に高頻度で送信するようにしてもよい。
【０１１５】
ファイルアクセス期間中のハートビート信号８２Ｂを相対的に高頻度にすることにより、実際に共有ファイル６０をオープンしている間のホストコンピュータ１２の障害発生を迅速に発見することが実現される。
【０１１６】
以下に、第５の実施の形態の作用を説明する。
【０１１７】
図１４には、ホストコンピュータ１２がストレージ装置９１内の共有ファイル６０にアクセスする際に、ＣＰＵ２４により実行されるファイルアクセス処理の流れが示されている。以下、図１４を参照して、本実施の形態に係るファイルアクセス処理について説明する。なお、図３、及び図１０と同様のステップについては、同一のステップ番号を付して、その説明を一部省略する。
【０１１８】
図１４では、最初にステップ２０６で、ストレージアクセス期間からハートビート信号８２をストレージ装置９１内のハートビート解析部８０へ一定の周期で送信する。ハートビート信号８２Ａを一定の周期で送信することで、ホストコンピュータ１２が正常に動作していることを確認させる。
【０１１９】
次に、ステップ１００へ移行し、ステップ１００からステップ１０６までの処理が終了し、レジスタ部４９の書込みが終り、ファイルアクセス期間が終了したら、ステップ２０８へ移行する。ステップ２０８では、ハートビート信号８２の送信を終了する。
【０１２０】
次に、図１５には、ストレージ装置９１内の制御回路４６により実行されるレジスタ読出制御（ハートビート信号監視）ルーチンが示されている。なお、図１１と同様の処理については、同一番号を付し、その説明を省略する。
【０１２１】
ステップ２３０では、共有ファイル６０がすでにロックされているか否かを判定し、肯定判定であれば、ステップ２１０へ移行する一方、否定判定であれば、ステップ２３２へ移行する。
【０１２２】
ステップ２３２では、共有ファイル６０へアクセスしているホストコンピュータ１２から送信されるハートビート信号８２を監視し、ステップ２３４へ移行する。
【０１２３】
ステップ２３４では、監視しているハートビート信号８２が一定の周期で受信できていないか否か、すなわち障害が発生しているか否かを判定する。肯定判定、すなわち障害が発生している場合には、ステップ２３６へ移行し、共有ファイル６０とアクセスしているホストコンピュータ１２との通信を強制的に切断し、処理を終了する。
【０１２４】
一方、否定判定、すなわち障害が発生していない場合には、ステップ２１０へ移行し、以後図１１と同様の処理を行う。
（第６の実施の形態）
上記第４〜第５の実施の形態においては、割込要求信号５２とハートビート信号８２とを組み合わせた連絡信号８６、８８を使用して、ホストコンピュータ１２とストレージ装置９１との間のハートビート信号８２について説明したが、図１６〜図１８に示すように、割込要求信号５２とハートビート信号８２とを別の信号線で送受信する形態であってもよい。
【０１２５】
この場合は、図１６の割込要求信号５２とハートビート信号８２を組み合わせた信号が図９の連絡信号８４に対応する。
【０１２６】
同様に、図１７の割込要求信号５２とハートビート信号８２を組み合わせた信号が図１２の連絡信号８６に対応し、図１８の割込要求信号５２とハートビート信号８２Ａ、８２Ｂを組み合わせた信号が図１３の連絡信号８８に対応する。
【０１２７】
なお、上記第４〜第６の実施の形態では、ホストコンピュータ１２からストレージ装置９１へハートビート信号８２を送信する形態について説明したが、これに限らず、例えば、ハートビート信号８２を受信するだけのコンピュータに、ホストコンピュータ１２及びストレージ装置９１のハートビート信号８２を送信し、ハートビート信号８２を受信した前記コンピュータでアービトレーションを行うようにしてもよい。
【図面の簡単な説明】
【０１２８】
【図１】実施の形態に係るファイル共有システムの構成を示す概略図である。
【図２】実施の形態に係るファイル共有システムの構成を機能的に示す概略図である。
【図３】ホストコンピュータが共有ファイルにアクセスする場合の処理を示すフローチャートである。
【図４】ホストコンピュータから共有ファイルへのアクセスを受け付ける場合のストレージ装置の処理を示すフローチャートである。
【図５】ストレージ装置から排他制御を受けたホストコンピュータが共有ファイルへアクセスする場合の処理を示すフローチャートである。
【図６】第２の実施の形態に係るファイル共有システムの構成を示す概略図である。
【図７】第３の実施の形態に係るファイル共有システムの構成を示す概略図である。
【図８】第４の実施の形態に係るファイル共有システムの構成を示す概略図である。
【図９】第４の実施の形態に係るホストコンピュータからストレージ装置へ送信する信号線の概略図である。
【図１０】第４の実施の形態に係るホストコンピュータが共有ファイルにアクセスする場合の処理を示すフローチャートである。
【図１１】第４の実施の形態に係るホストコンピュータから共有ファイルへのアクセスを受け付ける場合のストレージ装置の処理を示すフローチャートである。
【図１２】第５の実施の形態に係るホストコンピュータからストレージ装置へ送信する信号線の概略図である。
【図１３】第５の実施の形態に係るホストコンピュータからストレージ装置へ送信する信号線の概略図である。
【図１４】第５の実施の形態に係るホストコンピュータが共有ファイルにアクセスする場合の処理を示すフローチャートである。
【図１５】第５の実施の形態に係るホストコンピュータから共有ファイルへのアクセスを受け付ける場合のストレージ装置の処理を示すフローチャートである。
【図１６】第６の実施の形態に係るホストコンピュータからストレージ装置へ送信する信号線の概略図である。
【図１７】第６の実施の形態に係るホストコンピュータからストレージ装置へ送信する信号線の概略図である。
【図１８】第６の実施の形態に係るホストコンピュータからストレージ装置へ送信する信号線の概略図である。
【符号の説明】
【０１２９】
１０  ファイル共有システム
１２ａ、１２ｂ  ホストコンピュータ
１６  ストレージ装置
１８  入力デバイス
２０  ディスプレイ
２２  ＨＤＤ
２４  ＣＰＵ
２６  ＲＯＭ
２８  ＲＡＭ
３０  バス
３２  入出力ポート
４０  入出力ポート
４２  バス
４６  制御回路
４８  メモリ
４９  レジスタ
５０ａ、ｂ  転送データ信号
５２ａ、ｂ  割込要求信号
５４ａ、ｂ  割込信号
５８  テーブル
６０  共有ファイル
７６  割込要求信号整列部
８０  ハートビート解析部
８２  ハートビート信号
【図１】
2009176284.tif 000004
【図２】
2009176284.tif 000005
【図３】
2009176284.tif 000006
【図４】
2009176284.tif 000007
【図５】
2009176284.tif 000008
【図６】
2009176284.tif 000009
【図７】
2009176284.tif 000010
【図８】
2009176284.tif 000011
【図９】
2009176284.tif 000012
【図１０】
2009176284.tif 000013
【図１１】
2009176284.tif 000014
【図１２】
2009176284.tif 000015
【図１３】
2009176284.tif 000016
【図１４】
2009176284.tif 000017
【図１５】
2009176284.tif 000018
【図１６】
2009176284.tif 000019
【図１７】
2009176284.tif 000020
【図１８】
2009176284.tif 000021