(57)【特許請求の範囲】
【請求項１】
複数の計算機がネットワークで結合された分散システムにおけるそれぞれの計算機、或いは一部の計算機から、前記ネットワークを介することなく、直接制御できる共有ディスクを有し、前記計算機が前記共有ディスクを制御してファイルへのアクセスを行う分散システムにおける共有ファイルシステムであって、
前記結合された計算機に対し、共有ディスク上のデータをファイルとして見せるために、前記計算機の内の一つをファイル管理用計算機に設定すると共に、
前記ファイル管理用計算機は、共有ディスク上のデータをファイルとして見せるための共有ディスクの装置番号とディスク装置上のブロック番号を含むファイルに関する管理データを有するファイル管理を行うためのファイル管理情報を保持してファイル管理を行い、他の計算機からの要求に応じて、前記保持しているファイル管理情報の中から要求のあったファイルの管理情報を検索し、そのファイル管理情報をネットワークを介して要求元の計算機へ転送するファイル管理手段を備え、
前記他の計算機は、ファイル管理用計算機から受け取ったファイル管理情報を基に、前記ネットワークを介することなく前記共有ディスクを直接制御して、該当するファイルへのアクセスを行うファイルアクセス制御手段を備えていることを特徴とした分散システムにおける共有ファイルシステム。
【請求項２】
前記ファイル管理用計算機は、
他の計算機からファイル管理情報の要求を受けた場合、他の計算機同士を、ファイルのアクセスに関してファイル単位で排他制御するファイル単位排他制御手段を備えていることを特徴とした請求項１記載の分散システムにおける共有ファイルシステム。
【請求項３】
前記ファイル管理用計算機は、
他の計算機からファイル管理情報の要求を受けた場合、他の計算機同士を、ファイルのアクセスに関して共有ディスクの物理的な単位で排他制御する物理的単位排他制御手段を備えていることを特徴とした請求項１記載の分散システムにおける共有ファイルシステム。
【請求項４】
前記ファイル管理用計算機以外の他の計算機は、前記共有ディスクから読み出したファイルデータをメモリ上に保持するファイルデータ保持手段を備えると共に、
前記ファイル管理用計算機は、前記ファイル管理用計算機以外の計算機により共有ディスク上のファイルに対してデータの書き込みがあった場合に、共有ディスク上のファイルデータと、前記メモリ上のファイルデータとの一貫性を保証する制御を行うファイルデータ保証制御手段を備えていることを特徴とした請求項１記載の分散システムにおける共有ファイルシステム。
【請求項５】
複数の計算機がネットワークで結合された分散システムにおけるそれぞれの計算機、或いは一部の計算機から、前記ネットワークを介することなく、直接制御できる共有ディスクを有し、前記計算機が前記共有ディスクを制御してファイルへのアクセスを行う分散システムにおける計算機に、
共有ディスク上のデータをファイルとして見せるための共有ディスクの装置番号とディスク装置上のブロック番号を含むファイルに関する管理データを有するファイル管理を行うためのファイル管理情報を保持してファイル管理を行い、他の計算機からの要求に応じて、前記保持しているファイル管理情報の中から要求のあったファイルの管理情報を検索し、そのファイル管理情報をネットワークを介して要求元の計算機へ転送するファイル管理用計算機側の手順と、
ファイル管理用計算機から受け取ったファイル管理情報を基に、前記ネットワークを介することなく前記共有ディスクを直接制御して、該当するファイルへのアクセスを行う他の計算機側の手順と、
を実行させるためのプログラムを記録した計算機読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークで接続された複数の計算機を有し、前記計算機の内、一つ或いは複数の計算機から直接制御できる共有ディスクを持つ分散システムにおける共有ファイルシステムに関する。
【０００２】
近年、インターネットの普及や情報化により計算機同士が情報を共有することが求められてきている。この場合、複数の計算機から一つの情報が同時に見えるようにする必要がある。また、或る計算機による情報の改変は、他の計算機からも見える必要があり、情報の変更中には、他の計算機からの参照は避けなければならない。この為、排他制御を行うことが求められている。
【０００３】
【従来の技術】
以下、図に基づいて従来例を説明する。
§１：従来例１の説明・・・図１４、図１５参照
図１４は従来例１の説明図であり、図１５は従来例１の制御シーケンスである。従来、複数の計算機がネットワークで結合された分散システムにおいて、前記ネットワーク上における計算機同士の情報共有の為に、ファイルサーバーと呼ばれる計算機が使用されており、該ファイルサーバーが物理的なディスク（磁気ディスク装置）も一括して管理していた。従来使用されてきたＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ  ）の構成を図１４に示す。
【０００４】
この例では、ネットワーク３としてＬＡＮを使用し、このＬＡＮ上に１台のサーバー１と、複数のクライアント（クライアント端末）２−１〜２−３が接続されている。そして、サーバー１には複数の磁気ディスク装置（以下「単に「磁気ディスク」と記す）４−１〜４−３が接続され、この磁気ディスクをサーバー１が一括管理していた。更に、サーバー１と各クライアント２−１〜２−３には、それぞれキャッシュデータを格納するためのキャッシュメモリ５、６が設けてある。
【０００５】
前記サーバー１は、磁気ディスク４−１〜４−３を一括管理しており、磁気ディスク上のファイルに関する管理情報（ファイル管理情報）を保持し、そのファイル管理情報を使用してファイル管理を行う。従って、例えば、クライアント２−１が前記磁気ディスクのファイルをリードしたい場合、図１５に示したように、クライアント２−１からサーバー１に対して、ファイルへのリードアクセス要求を送る。
【０００６】
この要求を受けたサーバー１は、内部に保持しているファイル管理情報を参照し、リード要求のあったファイルに関するファイル管理情報を検索する。そして、検索したファイル管理情報を基に、磁気ディスクへアクセスして該当するファイルのデータを取り出し、一度キャッシュメモリ５にデータを格納した後、該キャッシュメモリ５のデータを、ＬＡＮを経由してクライアント２−１へ転送する。
【０００７】
クライアント２−１では、サーバー１からのデータを受け取ると、そのデータを一旦キャッシュメモリ５に格納して使用する。この場合はデータは全てＬＡＮを経由してやり取りしており、データ転送に時間がかかる。また、この場合、サーバー１とクライアント２−１の双方にキャッシュデータが作られる、という無駄がある。
【０００８】
§２：従来例２の説明・・・図１６参照
図１６は従来例２の説明図である。この例では、ネットワーク３としてＬＡＮを使用し、このＬＡＮ上に１台のサーバー１と、複数のクライアント２−１〜２−３が接続されている。そして、クライアント２−１〜２−３にはそれぞれ磁気ディスク（磁気ディスク装置）４−１〜４−３が接続されている。
【０００９】
すなわち、クライアント２−１には磁気ディスク４−１を接続し、クライアント２−２には磁気ディスク４−２を接続し、クライアント２−３には磁気ディスク４−３を接続している。また、各クライアント２−１〜２−３にはそれぞれキャッシュデータを格納するためのキャッシュメモリ６−１〜６−３が設けてある。そして、各クライアント２−１〜２−３は、それぞのクライアントが持つ磁気ディスクを共有している。
【００１０】
このようなシステムでは、磁気ディスク４−１を直接制御できるのはクライアント２−１のみであり、磁気ディスク４−２を直接制御できるのはクライアント２−２のみであり、磁気ディスク４−３を直接制御できるのはクライアント２−３のみである。
【００１１】
このように、各クライアントがそれぞれ自装置に接続された磁気ディスク４−１〜４−３を管理しているので、例えば、クライアント２−２がクライアント２−３に接続されている磁気ディスクへアクセスしたい場合は、クライアント２−２からクライアント２−３に対して、アクセス要求を送り、クライアント２−３が磁気ディスク４−３へアクセスしてデータを取り出し、一度キャッシュメモリ６−３にデータを格納した後、該キャッシュメモリ６−３のキャッシュデータを、ＬＡＮを経由してクライアント２−２へ転送する。
【００１２】
クライアント２−２では、クライアント２−３からのデータを受け取ると、そのデータをキャッシュメモリ６−２に格納し、使用する。この場合はデータは全てＬＡＮを経由してやり取りしており、データ転送に時間がかかる。また、この場合、クライアント２−２とクライアント２−３の双方にキャッシュデータが作られる、という無駄がある。
【００１３】
【発明が解決しようとする課題】
前記のような従来のものにおいては、次のような課題があった。
（１）  ：従来例１では、ネットワーク上のサーバー以外の計算機に磁気ディスクは繋がっていなかったので、磁気ディスク上のファイルを読むには、サーバー内のＣＰＵを使って読み出す必要があった。このため、しばしばサーバーの負荷が高くなり、他の計算機でファイルのデータが引き出せなくなる、という課題があった。また、同一データのキャッシュが、サーバーとクライアントの双方に作られる、という無駄があった。
【００１４】
（２）  ：従来例１では、単一のサーバーが全ての仕事をするために、サーバーが他の計算機に比べて高負荷に陥りやすく、結果として多くの計算機を扱うことが難しい、という課題があった。また、全てのデータがサーバー経由であるために、直接磁気ディスク上のファイルを読む場合に比べて、処理が遅い、という課題があった。
【００１５】
（３）  ：従来例２では、複数のクライアントが、それぞれ持つ磁気ディスク上のファイルデータを共有している。従って、データは全てＬＡＮを経由してやり取りしなければならず、データ転送に時間がかかる。また、ファイルへのアクセス要求を出した方のクライアント（前記の例ではクライアント２−３）と前記要求を受けた方のクライアント（前記の例ではクライアント２−２）の双方にキャッシュデータが作られる、という無駄がある。
【００１６】
（４）  ：前記従来例１、２では、ファイルのデータが全てネットワークを経由して転送される。一般に、ファイル管理情報に比べて、ファイルデータは極めて大きなデータである。従って、ファイルデータをネットワーク経由で転送すると転送時間が長くなる。このため、前記従来例のシステムでは、処理に時間がかかる、という課題があった。
【００１７】
本発明は、このような従来の課題を解決し、ファイル管理を行う計算機の負荷を少なくし、ファイルデータの転送がネットワークを経由しないようにして、処理の高速化を図ることを目的とする。
【００１８】
【課題を解決するための手段】
図１は本発明の原理説明図である。本発明は前記の目的を達成するため、次のように構成した。
(1) ：複数の計算機がネットワーク３で結合された分散システムにおけるそれぞれの計算機、或いは一部の計算機から、前記ネットワーク３を介することなく、直接制御できる共有ディスク８−１を有し、前記計算機が前記共有ディスク８−１を制御してファイルへのアクセスを行う分散システムにおける共有ファイルシステムであって、前記結合された計算機に対し、共有ディスク８−１上のデータをファイルとして見せるために、前記計算機の内の一つをファイル管理用計算機（例えば、サーバー１）に設定すると共に、前記ファイル管理用計算機は、共有ディスク上のデータをファイルとして見せるための共有ディスクの装置番号とディスク装置上のブロック番号を含むファイルに関する管理データを有するファイル管理を行うためのファイル管理情報を保持して（メモリ９に保持して）ファイル管理を行い、他の計算機（例えば、クライアント２−１、２−２、２−３）からの要求に応じて、前記保持しているファイル管理情報の中から要求のあったファイルの管理情報を検索し、そのファイル管理情報をネットワーク３を介して要求元の計算機へ転送するファイル管理手段（ＣＰＵの一部）を備え、前記他の計算機は、ファイル管理用計算機から受け取ったファイル管理情報を基に、前記ネットワークを介することなく前記共有ディスクを直接制御して、該当するファイルへのアクセスを行うファイルアクセス制御手段を備えている。
【００１９】
（２）  ：前記（１）  の分散システムにおける共有ファイルシステムにおいて、前記ファイル管理用計算機は、他の計算機からファイル管理情報の要求を受けた場合、他の計算機同士を、ファイルのアクセスに関してファイル単位で排他制御するファイル単位排他制御手段を備えている。
【００２０】
（３）  ：前記（１）  の分散システムにおける共有ファイルシステムにおいて、前記ファイル管理用計算機は、他の計算機からファイル管理情報の要求を受けた場合、他の計算機同士を、ファイルのアクセスに関して共有ディスクの物理的な単位で排他制御する物理的単位排他制御手段を備えている。
【００２１】
（４）  ：前記（１）  の分散システムにおける共有ファイルシステムにおいて、前記ファイル管理用計算機以外の他の計算機は、前記共有ディスクから読み出したファイルデータをメモリ（キャッシュメモリ６−１）上に保持するファイルデータ保持手段を備えると共に、前記ファイル管理用計算機は、前記ファイル管理用計算機以外の計算機により共有ディスク上のファイルに対してデータの書き込みがあった場合に、共有ディスク８−１上のファイルデータと、前記メモリ（キャッシュメモリ６−１）上のファイルデータとの一貫性を保証する制御を行うファイルデータ保証制御手段を備えている。
【００２２】
(5) ：複数の計算機がネットワークで結合された分散システムにおけるそれぞれの計算機、或いは一部の計算機から、前記ネットワークを介することなく、直接制御できる共有ディスクを有し、前記計算機が前記共有ディスクを制御してファイルへのアクセスを行う分散システムにおける計算機に、共有ディスク上のデータをファイルとして見せるための共有ディスクの装置番号とディスク装置上のブロック番号を含むファイルに関する管理データを有するファイル管理を行うためのファイル管理情報を保持してファイル管理を行い、他の計算機からの要求に応じて、前記保持しているファイル管理情報の中から要求のあったファイルの管理情報を検索し、そのファイル管理情報をネットワークを介して要求元の計算機へ転送するファイル管理用計算機側の手順と、ファイル管理用計算機から受け取ったファイル管理情報を基に、前記ネットワークを介することなく前記共有ディスクを直接制御して、該当するファイルへのアクセスを行う他の計算機側の手順と、を実行させるためのプログラムを記録した計算機読み取り可能な記録媒体。
【００２３】
（作用）
前記構成に基づく本発明の作用を、図１に基づいて説明する。
(a) ：前記(1) の作用
ファイル管理用計算機（サーバー１）のファイル管理手段は、共有ディスク上のデータをファイルとして見せるための共有ディスクの装置番号とディスク装置上のブロック番号を含むファイルに関する管理データを有するファイル管理を行うためのファイル管理情報をメモリ９に保持してファイル管理を行い、他の計算機（例えば、クライアント２−１、２−２、２−３）からの要求に応じて、前記保持しているファイル管理情報の中から要求のあったファイルの管理情報を検索し、そのファイル管理情報をネットワーク３を介して要求元の計算機へ転送する。
【００２４】
その後、他の計算機のファイルアクセス制御手段は、ファイル管理用計算機から受け取ったファイル管理情報を基に、ネットワーク３を介することなく前記共有ディスク８−１を直接制御して、該当するファイルへのアクセスを行う。
【００２５】
例えば、クライアント２−１が共有ディスク８−１からファイルをリードする場合、次のようにしてリードする。先ず、クライアント２−１は、ファイル管理情報を獲得するため、サーバー１に対して該当するファイルのファイル管理情報を要求する（▲１▼の経路）。
【００２６】
サーバー１は、メモリ９に対しファイル管理情報の検索を行い、クライアント２−１がそのファイルをリード（読み込み）中であることをメモリ９に記録する。そして、サーバー１は、メモリ９から検索したファイル管理情報のみを、ネットワーク３を経由して要求元のクライアント２−１へ転送する（▲２▼の経路）。
【００２７】
クライアント２−１は、サーバー１から転送されたファイル管理情報を受け取ると、そのファイル管理情報を用いて、他のクライアント２−２、２−３と共有されている共有ディスク８−１から該当するファイルをリードする（物理的に読む）。そして、共有ディスク８−１からリードしたファイルをキャッシュメモリ６−１に格納する（▲４▼の経路）。以降、クライアント２−１ではキャッシュメモリ６−１に格納したファイルデータを使用して、目的とした処理を行う。
【００２８】
このようにすれば、ファイル管理用計算機（サーバー１）はファイル管理のみを行えば良いから、従来例に比べてファイル管理用計算機の負荷が少なくなる。その結果、一つのファイル管理用計算機（サーバー１）当たり、管理出来る他の計算機（クライアント２−１〜２−３）の数を増やすことが可能になる。
【００２９】
また、ファイルデータはネットワーク３を経由することなく、共有ディスク８−１から直接他の計算機（例えば、クライアント２−１）へ転送されるので、ネットワーク３を経由する場合に比べてファイルデータの転送時間が極めて短くなり、処理の高速化を図ることができる。
【００３０】
（ｂ）  ：前記（２）  の作用
前記ファイル管理用計算機のファイル単位排他制御手段は、他の計算機からファイル管理情報の要求を受けた場合、他の計算機同士をファイルのアクセスに関してファイル単位で排他制御する。
【００３１】
このようにファイル管理用計算機は、ファイル毎に排他制御するので、他の計算機（クライアント）によるファイルのリード／ライトは、互いのデータを壊さないことが保証される。
【００３２】
（ｃ）  ：前記（３）  の作用
前記ファイル管理用計算機の物理的単位排他制御手段は、他の計算機からファイル管理情報の要求を受けた場合、他の計算機同士をファイルのアクセスに関して共有ディスク８−１の物理的な単位（ハードウェア単位）で排他制御する。
【００３３】
このようにファイル管理用計算機は、共有ディスク８−１の物理的な単位で排他制御するので、他の計算機（クライアント）によるファイルのリード／ライトは、互いのデータを壊さないことが保証される。また、ファイル管理用計算機は、ハードウェアを単位として排他制御しているので、他の計算機は、そのハードウェアを占有して使うことで、装置性能の向上を図ることができる。
【００３４】
（ｄ）  ：前記（４）  の作用
前記ファイル管理用計算機以外の他の計算機のファイルデータ保持手段は、共有ディスク８−１から読み出したファイルデータをメモリ（キャッシュメモリ６−１）上に保持する。
【００３５】
そして、ファイル管理用計算機のファイルデータ保証制御手段は、ファイル管理用計算機以外の計算機により共有ディスク８−１上のファイルに対してデータの書き込みがあった場合に、共有ディスク８−１上のファイルデータと、前記メモリ（キャッシュメモリ６−１）上のファイルデータとの一貫性を保証する制御を行う。
【００３６】
このようにすれば、前記他の計算機（クライアント）上のプロセスが読むファイルデータの最新性が保証される。
(e) ：前記(5) の作用
前記記録媒体のプログラムを読み出して実行することにより、ファイル管理用計算機側では、共有ディスク上のデータをファイルとして見せるための共有ディスクの装置番号とディスク装置上のブロック番号を含むファイルに関する管理データを有するファイル管理を行うためのファイル管理情報を保持してファイル管理を行い、他の計算機からの要求に応じて、前記保持しているファイル管理情報の中から要求のあったファイルの管理情報を検索し、そのファイル管理情報をネットワークを介して要求元の計算機へ転送する制御を行う。
【００３７】
また、他の計算機側では、ファイル管理用計算機から受け取ったファイル管理情報を基に、前記ネットワークを介することなく前記共有ディスクを直接制御して、該当するファイルへのアクセスを行う。
【００３８】
このようにすれば、ファイル管理用計算機（サーバー１）はファイル管理のみを行えば良いから、従来例に比べてファイル管理用計算機の負荷が少なくなる。その結果、一つのファイル管理用計算機（サーバー１）当たり、管理出来る他の計算機（クライアント２−１〜２−３）の数を増やすことが可能になる。
【００３９】
また、ファイルデータはネットワーク３を経由することなく、共有ディスク８−１から直接他の計算機（例えば、クライアント２−１）へ転送されるので、ネットワーク３を経由する場合に比べてファイルデータの転送時間が極めて短くなり、処理の高速化を図ることができる。
【００４０】
【発明の実施の形態】
以下、発明の実施の形態を図面に基づいて詳細に説明する。
§１：システムの説明・・・図２、図３参照
図２はシステム構成図であり、図３はファイル管理情報例である。この実施の形態で使用するシステム構成を図２に示す。このシステムは、複数の計算機がネットワーク（例えば、ＬＡＮ：ＬＡＮ：Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）３で結合された分散システムを構成している。この分散システムでは、それぞれの計算機から、或いは一部の計算機から直接制御できる共有ディスク８−１、８−２を有している。
【００４１】
前記複数の計算機に共有されている共有ディスク８−１、８−２は、それぞれ、磁気ディスク装置等（光磁気ディスク等でも使用可能）により構成されるが、この場合、１台の磁気ディスク装置、複数台の磁気ディスク装置、或いは、１台の磁気ディスク装置内の、複数のディスク（複数枚の磁気ディスク）、一つのディスク（１枚の磁気ディスク）、１つのディスクが幾つかの物理的な部分に分けられたもの（１つの磁気ディスク上の一部の記憶領域）等により構成されている。
【００４２】
前記ＬＡＮで結合されている計算機に対し、共有ディスク８−１、８−２上のデータをファイルとして見せる為に、前記結合された計算機の内の一台をサーバー１として使用し、該サーバー１のメモリ９にファィルを管理するためのファイル管理情報（或いは、ファイル管理データ）を格納する。また、前記サーバー１以外の計算機をクライアント端末（以下、「クライアント」と記す）２−１〜２−３として使用する。そして、この例では、クライアント２−１〜２−３が、それぞれ直接制御できる共有ディスク８−１、８−２を備えている。
【００４３】
すなわち、共有ディスク８−１、８−２は、クライアント２−１〜２−３の全てに接続されており、該クライアント２−１〜２−３のいずれからも、ネットワーク３を経由しないで、直接制御できるように構成されている。また、クライアント２−１〜２−３はそれぞれキャッシュメモリ６−１〜６−３を備えており、このキャッシュメモリ６−１〜６−３に共有ディスク８−１、８−２から読み出したデータをキャッシュデータとして格納するようになっている。このような分散システムにより、共有ファイルシステムを構成している。
【００４４】
前記サーバー１が管理するファイル管理情報の１例を図３に示す。このファイル管理情報例は、共有ディスク８−１、８−２のファイル（データ）を管理するための情報であり、例えば、「ファイル名、ファイル番号の表」と、「ファイルに関する管理データ」等から構成されている。
【００４５】
前記「ファイル名、ファイル番号の表」には、各ファイル毎に、そのファイル名（識別情報）やファイル番号があり、前記「ファイルに関する管理データ」には、現在アクセス中のクライアント名、日付（更新、生成、アクセス）、磁気ディスク装置番号（共有ディスク８−１、８−２を構成する磁気ディスク装置の番号）、ディスク装置上のブロック番号リスト、ファイルサイズ等である。前記のようなファイル管理情報は、サーバー１に設けたメモリ９に格納され、サーバーー１が管理する。
【００４６】
ところで、従来は、共有ディスクに対するファイルの読み書き（リード／ライト）や、ファイル管理などは、全てサーバー１に任せていたが、本発明では、ファイル管理のみをサーバー１に任せ、共有ディスクに対するファイルの読み書き（リード／ライト）は、実際にファイルの情報を必要とする計算機（クライアント）が共有ディスクを通じて行うようにしている。このことにより、サーバー１の役割は最小限のものとなる。
【００４７】
また、サーバー１はファイル管理情報を持ち、クライアントからの通知を受けて、クライアントが指定したファイル管理情報を検索する手段を有し、これをクライアントに転送する手段を持つ。クライアントは前記ファイル管理情報を用い、共有ディスクのファイルを読み書きする手段を有する。更に、サーバー１はクライアント同士をファイルのアクセスに関して排他制御する為に、クライアント同士を識別する手段とそれらの排他制御を行う手段を持つ。なお、前記各手段は、ＣＰＵがプログラムを実行することで実現する手段である。
【００４８】
§２：分散システムにおける共有ファイルシステムの動作説明・・・図４、図５参照
図４は共有ディスクからの読み出し制御シーケンスである。図５はクライアント間の排他制御シーケンスである。以下、図４、図５に基づいて分散システムにおける共有ファイルシステムの動作を説明する。
【００４９】
（１）  ：クライアントによる共有ディスクからのファイル読み出し処理の説明・・・図４参照
図２に示したシステムにおいて、クライアント２−１が共有ディスク８−１からファイルをリード（ｒｅａｄ）する場合、次のようにしてリードする。先ず、クライアント２−１は、ファイル管理情報を獲得（ｆｉｌｅ情報の獲得）するため、サーバー１に対して該当するファイルのファイル管理情報を要求する（図２の▲１▼の経路）。
【００５０】
サーバー１は、メモリ９に格納されているファイル管理情報の内から、要求のあったファイルに関するファイル管理情報を検索し、クライアント２−１がそのファイルをリード（読み込み）中であることをメモリ９に記録する。そして、サーバー１は、メモリ９から検索したファイル管理情報のみを、ネットワーク（ＬＡＮ）３を経由して、要求元のクライアント２−１へ転送する（図２の▲２▼の経路）。
【００５１】
クライアント２−１は、サーバー１から転送されたファイル管理情報を受け取ると、そのファイル管理情報を用いて、他のクライアント２−２、２−３と共有されている共有ディスク８−１から該当するファイルをリードする（物理的に読む）。そして、共有ディスク８−１からリードしたファイルをキャッシュメモリ６−１に格納する（図２の▲４▼の経路）。以降、クライアント２−１ではキャッシュメモリ６−１に格納したファイル（データ）を使用して、目的とした処理を行う。
【００５２】
（２）  ：クライアント間の排他制御例の説明・・・図５参照
図２に示したシステムにおいて、クライアント間の排他制御は次のようにして行う。例えば、前記（１）  で説明したように、クライアント２−１による共有ディスク８−１からのファイルのリードが行われたとする。この時、クライアント２−１のキャッシュメモリ６−１には前記リードしたファイルのデータが残っている。
【００５３】
そこへ、クライアント２−２が共有ディスク８−１の同じファイルに対してライト（データの書き込み）をする場合、排他制御が必要になる。すなわち、クライアント２−２がサーバー１に対して、前記と同じファイルのライトを行うため、そのファイルのファイル管理情報を要求した時、サーバー１はクライアント２−１に対し、クライアント２−１がキャッシュメモリ６−１上に持つ、当該ファイルに関するキャッシュデータを捨てるように要求する。
【００５４】
その後、クライアント２−１がキャッシュメモリ６−２に持つキャッシュデータを捨てたことをサーバー１が確認すると、サーバー１はクライアント２−２に対し、当該ファイル管理情報を転送する。クライアント２−２は前記ファイル管理情報を受け取ると、そのファイル管理情報を使用して共有ディスク８−１の該当するファイルに対し、データのライト（書き込み）を行う。以下、各具体例について詳細に説明する。
【００５５】
§３：例１の説明・・・図６、図７参照
図６は例１の説明図であり、図７は例１の制御シーケンスである。以下、図６、図７に基づき、例１について説明する。この例は、前記図２に示した分散システム上にある、２つのクライアント２−１、２−２が共有する１つの共有ディスク８−１に格納されたファイル１を、前記２つのクライアント２−１、２−２がそれぞれリード／ライトする（異なったクライアントが同一ファイルに対してリード／ライトする）例である。この例ではファイルのリード／ライト毎に前記のような排他制御が行われる。
【００５６】
先ず、クライアント２−１がサーバー１に対してファイル１のファイル管理情報を要求する。この要求を受け取ったサーバー１は、メモリ９からファイル１のファイル管理情報（ファイル１の属性、ディスクレイアウト情報等）を検索し、そのファイル管理情報をネットワーク３を経由してクライアント２−１へ転送する。この時、サーバー１は、クライアント２−１がファイル１のキャッシュデータを持っていることをメモリ９に記録しておく。
【００５７】
一方、クライアント２−１はサーバー１からファイル管理情報を受け取ると、そのファイル管理情報を使用して共有ディスク８−１のファイル１をリードするためのリード命令を発行して、共有ディスク８−１からファイル１をリードする。そして、リード処理が終了すると、前記リードしたファイル１をキャッシュメモリ６−１に格納する。このようにしてクライアント２−１がファイル１のデータをキャッシュメモリ６−１に保持する。
【００５８】
その後、クライアント２−２が前記と同じファイル１に対し、データのライト（書き込み）を行うため、サーバー１に対しファイル１のファイル管理情報を要求する。この要求を受け取ったサーバー１は、クライアント２−１に対し、キャッシュメモリ６−１に保持しているファイル１のデータを捨てるように（破棄するように）指示する解放命令を発行する。
【００５９】
この命令を受け取ったクライアント２−１はキャッシュメモリ６−１に保持しているファイル１のデータを捨て、このことをサーバー１へ通知する。サーバー１は、クライアント２−２がファイル１のデータを持っていることをメモリ９に記録する。そして、サーバー１からファイル１のファイル管理情報をクライアント２−２へ転送する。
【００６０】
クライアント２−２は前記ファイル管理情報を受け取ると、このファイル管理情報を使用して共有ディスク８−１に対し、ファイル１のライト命令を発行し、該共有ディスク８−１のファイル１に対し、データのライト（書き込み）を行う。このライトが終了すると、クライアント２−２は、ライトしたファイル１のデータをキャッシュメモリ６−２に格納し、処理を終了する。
【００６１】
このようにすれば、サーバー１はファイル管理のみを行えば良いから、従来例に比べてサーバー１の負荷が少なくなる。その結果、一つのサーバー当たり、管理出来るクライアントの数を増やすことが可能になる。また、ファイルデータはネットワーク３を経由することなく、共有ディスク８−１から直接クライアントへ転送されるので、ネットワーク３を経由する場合に比べてファイルデータの転送時間が極めて短くなり、処理の高速化を図ることができる。
【００６２】
また、クライアント２−１は、共有ディスク８−１から読み出したファイルデータをキャッシュメモリ６−１上に保持し、サーバー１は、クライアント２−２により共有ディスク８−１上のファイルに対してデータの書き込みがあった場合に、共有ディスク８−１上のファイルデータと、キャッシュメモリ６−１上のファイルデータとの一貫性を保証する制御を行っている。従って、クライアント上のプロセスが読むファイルデータの最新性が保証される。
【００６３】
§４：例２の説明・・・図８、図９参照
図８は例２の説明図であり、図９は例２の制御シーケンスである。以下、図８、図９に基づき、例２について説明する。この例は、前記図２に示した分散システム上にある、２つのクライアント２−１、２−２が共有する２つの共有ディスク８−１、８−２を対象としてファイルのリード／ライトを行う例である。
【００６４】
この場合、クライアント２−１が、続けてアクセスする共有ディスク８−１上のファイル１とファイル２が同じディスク上にあり、両方のアクセスの性能を上げるために、共有ディスク８−１を単位（ハードウェアを単位）としてアクセス中であることを示し、排他制御する。従って、クライアント２−２は、その間に生成したいファイル３を、別の共有ディスク８−２に生成する。
【００６５】
以下、図９に基づいて詳細に説明する。先ず、クライアント２−１がファイル１のリードを行うため、サーバー１へファイル管理情報を要求する。続いてクライアント２−１はファイル２をリードするためサーバー１へファイル管理情報を要求する。この要求を受けたサーバー１は、ファイル１、ファイル２のファイル管理情報をメモリ９から検索して求め、そのファイル管理情報をクライアント２−１へ転送する。
【００６６】
このファイル管理情報を受けたクライアント２−１は、前記ファイル管理情報から、ファイル１とファイル２が共に、共有ディスク８−１にあることが分かると、共有ディスク８−１を単位（ハードウェアを単位）としてロックすることをサーバー１へ通知する。この通知を受けたサーバー１では、クライアント２−１により共有ディスク８−１がロックされていることをメモリ９に記録する。
【００６７】
その後、クライアント２−１では、共有ディスク８−１に対してリード命令を発行し、ファイル１とファイル２をリードする。そして、前記リードが終了すると、共有ディスク８−１からリードしたファイル１、ファイル２のデータをキャッシュメモリ６−１に格納する。その後、クライアント２−１は共有ディスク８−１を解放することをサーバー１へ通知する。この通知を受けたサーバー１は、クライアント２−１が共有ディスク８−１をロックしていたのを、解放したことをメモリ９に記録する。
【００６８】
前記のようにして、共有ディスク８−１をロックしている状態で、クライアント２−２からファイル３を生成してライトするため、サーバー１へファイル管理情報を要求する。この要求を受けたサーバー１は、メモリ９のファイル管理情報より、共有ディスク８−１は今使えない状態であることを認識すると、クライアント２−２に対して、共有ディスク８−２の空きブロックを指定し、ファイル管理情報を転送する。
【００６９】
クライアント２−２は、受け取ったファイル管理情報を基に、共有ディスク８−２へアクセスし、指定された領域に前記ファイル３のデータをライトする。そして、ライト処理を終了する。
【００７０】
このようにサーバー１は、共有ディスク８−１の物理的な単位で排他制御するので、クライアント２−１、２−２によるファイルのリード／ライトは、互いのデータを壊さないことが保証される。また、サーバー１は、ハードウェアを単位として排他制御しているので、クライアント２−１、２−２は、そのハードウェアを占有して使うことで、装置性能の向上を図ることができる。
【００７１】
§５：例３の説明・・・図１０、図１１参照
図１０は例３の説明図であり、図１１は例３の制御シーケンスである。以下、図１０、図１１に基づき、例３について説明する。この例は、前記図２に示した分散システム上にある、２つのクライアント２−１、２−２が共有する２つの共有ディスク８−１、８−２を対象としてファイルのリード／ライトを行う例である。
【００７２】
この場合、共有ディスク８−１はクライアント２−１、２−２に接続されており、いずれのクライアントからも直接アクセスできるようになっている。そして、共有ディスク８−１には、ファイル１、ファイル２を格納するが、ファイル１がクライアント２−１のものであり、ファイル２がクライアント２−２のものであることを、サーバー１が予め知っているものとする。このため、サーバー１は、前記ファイル１、２へのアクセス時に、クライアント２−１、２−２からのファイル管理情報の要求があった場合、排他制御は行わない。
【００７３】
以下、図１１に基づいて具体的に説明する。例えば、クライアント２−１がファイル１をリードするため、サーバー１へファイル管理情報を要求すると、サーバー１は排他制御を行うことなく、メモリ９からファイル１のファイル管理情報を検索してクライアント２−１へ転送する。また、この時、クライアント２−２がファイル２をリードするため、サーバー１へファイル管理情報を要求すると、サーバー１は排他制御を行うことなく、メモリ９からファイル２のファイル管理情報を検索してクライアント２−２へ転送する。
【００７４】
このようにしてファイル１のファイル管理情報を受け取ったクライアント２−１は、前記ファイル管理情報を基に、共有ディスク８−１へアクセスしてファイル１をリードする。そして、リードが終了したらそのファイル１のデータをキャッシュメモリ６−１に格納する。また、ファイル２のファイル管理情報を受け取ったクライアント２−２は、前記ファイル管理情報を基に、共有ディスク８−１へアクセスしてファイル２をリードする。そして、リードが終了したらそのファイル２のデータをキャッシュメモリ６−２に格納する。
【００７５】
クライアント２−２は前記ファイル２のリードが終了した後、更に、同じファイル２にライトするため、サーバー１へファイル管理情報を要求すると、この時もサーバー１は排他制御を行うことなく、メモリ９からファイル２のファイル管理情報を検索してクライアント２−２へ転送する。ファイル２のファイル管理情報を受け取ったクライアント２−２は、前記ファイル管理情報を基に、共有ディスク８−１へアクセスしてファイル２をライトする。そして、ライトが終了したらそのファイル２のデータをキャッシュメモリ６−２に格納する。
【００７６】
§６：例４の説明・・・図１２、図１３参照
図１２は例４の説明図であり、図１３は例４の制御シーケンスである。以下、図１２、図１３に基づき、例４について説明する。この例は、前記図２に示した分散システム上にある、２つのクライアント２−１、２−２が共有する２つの共有ディスク８−１、８−２を対象としてファイルのリード／ライトを行う例である。
この場合、共有ディスク８−１はクライアント２−１、２−２に接続されており、いずれのクライアントからも直接制御できるようになっている。そして、共有ディスク８−１にはファイル１を格納する。この場合、クライアント２−１、２−２共に同じファイル１にリード／ライトするが、それぞれ協調的に働くのでどこをリード／ライトするかをサーバー１が事前に知っているものとする。このため、サーバー１は、前記ファイル１、２へのアクセス時に、クライアント２−１、２−２からのファイル管理情報の要求があっても排他制御は行わない。
【００７７】
以下、図１３に基づいて具体的に説明する。例えば、クライアント２−１がファイル１をリードするため、サーバー１へファイル管理情報を要求する。続いてクライアント２−２がファイル１をリードするため、サーバー１へファイル管理情報を要求したとする。この時、サーバー１は、ファイル１が２つのクライアント２−１、２−２で共有されるので、排他制御は行わない。
【００７８】
従って、サーバー１は、メモリ９からファイル１のファイル管理情報を検索してクライアント２−１へ転送し、続いてファイル１のファイル管理情報をクライアント２−２へ転送する。このようにしてファイル１のファイル管理情報を受け取ったクライアント２−１は、前記ファイル管理情報を基に、共有ディスク８−１へアクセスしてファイル１をリードするが、ファイル１のオフセット０から１００バイト分のデータのみをリードする。そして、リードが終了したらそのファイル１のデータをキャッシュメモリ６−１に格納する。
【００７９】
また、前記のようにしてファイル１のファイル管理情報を受け取ったクライアント２−２は、前記ファイル管理情報を基に、共有ディスク８−１へアクセスしてファイル１をリードするが、ファイル１のオフセット１０Ｋから１Ｋバイト分のデータのみをリードする。そして、リードが終了したらそのファイル１のデータをキャッシュメモリ６−１に格納する。
【００８０】
§７：記録媒体とプログラムの説明
前記のように、サーバー１では、ファイル管理を行うためのファイル管理情報を保持してファイル管理を行い、クライアントからの要求に応じて、前記保持しているファイル管理情報の中から要求のあったファイルの管理情報を検索し、そのファイル管理情報をネットワーク３を介して要求元のクライアントへ転送する。また、各クライアント２−１〜２−３では、サーバー１から受け取ったファイル管理情報を基に、ネットワーク３を介することなく、前記共有ディスクを直接制御して、該当するファイルへのアクセスを行う。
【００８１】
前記サーバー１（計算機）、及びクライアント２−１〜２−３（計算機）等が行う処理は、サーバー１、及びクライアント２−１〜２−３内のＣＰＵがプログラムを実行することにより次のようにして実現する。前記サーバー１、及びクライアント２−１〜３−３にはディスク装置が設けてあり、このディスク装置の記憶媒体に、前記処理を実現するためのプログラムやその他の各種データ等を格納しておく。そして、前記処理を行う場合は、ＣＰＵの制御によりディスク装置の記憶媒体に格納されている前記プログラムやデータを読み出して計算機本体内のメモリに取り込む。
【００８２】
その後、ＣＰＵが前記メモリに格納してあるプログラムの内、必要なプログラムから順次読み出して実行することにより前記処理を行う。なお、前記ディスク装置の記憶媒体に格納するプログラムは、次のようにして格納（記憶）する。
【００８３】
▲１▼：フレキシブルディスク（フロッピィディスク）に格納されているプログラム（他の装置で作成したプログラムデータ）を、サーバー１やクライアント２−１〜２−３本体に設けたフレキシブルディスクドライブ装置により読み取り、ディスク装置の記憶媒体に格納する。
【００８４】
▲２▼：光磁気ディスク、或いはＣＤ−ＲＯＭ等の記憶媒体に格納されているデータを、前記サーバー１やクライアント２−１〜２−３に設けたドライブ装置により読み取り、ディスク装置の記憶媒体に格納する。
【００８５】
▲３▼：ＬＡＮ等の通信回線を介して他の装置から伝送されたデータを前記サーバー１やクライアント２−１〜２−３の装置本体で受信し、そのデータをディスク装置の記憶媒体に格納する。
【００８６】
【発明の効果】
以上説明したように、本発明によれば次のような効果がある。
（１）  ：複数の計算機が共有ディスクを共有し、その上にファイルを読み書きすることが可能になる。この場合、ネットワーク上をファイルデータが通らないので、従来例に比べて高速処理が可能になる。また、サーバーは、ファイル管理のみを行えば良いから、サーバーの負荷が少なくなり、一サーバー当たりの管理可能なクライアント数を増やすことが可能になる。更に、分散環境であるため、計算機の通過が比較的容易にできる。
【００８７】
（２）  ：クライアントはサーバーから受け取ったファイル管理情報を使用して共有ディスク上のファイルにアクセスすることができる。従って、共有するディスク上のファイルデータを、それぞれのクライアントで共有することが簡単にできる。
【００８８】
（３）  ：サーバーはファイル毎に排他制御を行うことができるので、クライアントの書き込み／読み出しは、お互いのデータを壊すことなく行うことが保証される。
【００８９】
（４）  ：サーバーは、どのクライアントがどのファイルのキャッシュデータを持っているかを知っているので、クライアントが或るファイルを書いた時、他のクライアントに対し、そのファイルのキャッシュデータを捨てさせることができる。このことにより、クライアント上のプロセスが読むデータの最新性が保証される。
【００９０】
（５）  ：サーバーは、共有ディスクのハードウェアを単位として排他制御できるので、クライアントはそのハードウェアを占有して使うことができる。このため、装置の性能の向上が期待できる。
【００９１】
前記効果の他、各請求項に対応して次のような効果がある。
(6) ：請求項１では、ファイル管理用計算機のファイル管理手段は、共有ディスク上のデータをファイルとして見せるための共有ディスクの装置番号とディスク装置上のブロック番号を含むファイルに関する管理データを有するファイル管理を行うためのファイル管理情報を保持してファイル管理を行い、他の計算機からの要求に応じて、前記保持しているファイル管理情報の中から要求のあったファイルの管理情報を検索し、そのファイル管理情報をネットワークを介して要求元の計算機へ転送する。
【００９２】
その後、他の計算機のファイルアクセス制御手段は、ファイル管理用計算機から受け取ったファイル管理情報を基に、ネットワークを介することなく共有ディスクを直接制御して、該当するファイルへのアクセスを行う。
【００９３】
このようにすれば、ファイル管理用計算機はファイル管理のみを行えば良いから、従来例に比べてファイル管理用計算機の負荷が少なくなる。その結果、一つのファイル管理用計算機（サーバー１）当たり、管理出来る他の計算機の数を増やすことが可能になる。
【００９４】
また、ファイルデータはネットワークを経由することなく、共有ディスクから直接他の計算機へ転送されるので、ネットワーク３を経由する場合に比べてファイルデータの転送時間が極めて短くなり、処理の高速化を図ることができる。
【００９５】
（７）  ：請求項２では、ファイル管理用計算機のファイル単位排他制御手段は、他の計算機からファイル管理情報の要求を受けた場合、他の計算機同士をファイルのアクセスに関してファイル単位で排他制御する。このようにファイル管理用計算機は、ファイル毎に排他制御するので、他の計算機によるファイルのリード／ライトは、互いのデータを壊さないことが保証される。
【００９６】
（８）  ：請求項３では、ファイル管理用計算機の物理的単位排他制御手段は、他の計算機からファイル管理情報の要求を受けた場合、他の計算機同士をファイルのアクセスに関して共有ディスクの物理的な単位（ハードウェア単位）で排他制御する。
【００９７】
このようにファイル管理用計算機は、共有ディスクの物理的な単位で排他制御するので、他の計算機によるファイルのリード／ライトは、互いのデータを壊さないことが保証される。また、ファイル管理用計算機は、ハードウェアを単位として排他制御しているので、他の計算機は、そのハードウェアを占有して使うことで、装置性能の向上を図ることができる。
【００９８】
（９）  ：請求項４では、ファイル管理用計算機以外の他の計算機のファイルデータ保持手段は、共有ディスクから読み出したファイルデータをメモリ上に保持する。そして、ファイル管理用計算機のファイルデータ保証制御手段は、ファイル管理用計算機以外の計算機により共有ディスク上のファイルに対してデータの書き込みがあった場合に、共有ディスク上のファイルデータと、前記メモリ上のファイルデータとの一貫性を保証する制御を行う。このようにすれば、前記他の計算機上のプロセスが読むファイルデータの最新性が保証される。
【００９９】
(10)：請求項５では、記録媒体のプログラムを読み出して実行することにより、ファイル管理用計算機側では、共有ディスク上のデータをファイルとして見せるための共有ディスクの装置番号とディスク装置上のブロック番号を含むファイルに関する管理データを有するファイル管理を行うためのファイル管理情報を保持してファイル管理を行い、他の計算機からの要求に応じて、保持しているファイル管理情報の中から要求のあったファイルの管理情報を検索し、そのファイル管理情報をネットワークを介して要求元の計算機へ転送する制御を行う。
【０１００】
また、他の計算機側では、ファイル管理用計算機から受け取ったファイル管理情報を基に、前記ネットワークを介することなく前記共有ディスクを直接制御して、該当するファイルへのアクセスを行う。
【０１０１】
このようにすれば、ファイル管理用計算機はファイル管理のみを行えば良いから、従来例に比べてファイル管理用計算機の負荷が少なくなる。その結果、一つのファイル管理用計算機当たり、管理出来る他の計算機の数を増やすことが可能になる。また、ファイルデータは、ネットワークを経由することなく、共有ディスクから直接他の計算機へ転送されるので、ネットワークを経由する場合に比べて、ファイルデータの転送時間が極めて短くなり、処理の高速化を図ることができる。
【図面の簡単な説明】
【図１】本発明の原理説明図である。
【図２】実施の形態におけるシステム構成図である。
【図３】実施の形態におけるファイル管理情報例である。
【図４】実施の形態における共有ディスクからの読み出し制御シーケンスである。
【図５】実施の形態におけるクライアント間の排他制御シーケンスである。
【図６】実施の形態における例１の説明図である。
【図７】実施の形態における例１の制御シーケンスである。
【図８】実施の形態における例２の説明図である。
【図９】実施の形態における例２の制御シーケンスである。
【図１０】実施の形態における例３の説明図である。
【図１１】実施の形態における例３の制御シーケンスである。
【図１２】実施の形態における例４の説明図である。
【図１３】実施の形態における例４の制御シーケンスである。
【図１４】従来例１の説明図である。
【図１５】従来例１の制御シーケンスである。
【図１６】従来例２の説明図である。
【符号の説明】
１  サーバー
２−１〜２−３  クライアント
３  ネットワーク
４−１〜４−３  磁気ディスク
５、６−１〜６−３  キャッシュメモリ
８−１〜８−２  共有ディスク
９  メモリ
【図１】
0003605271.tif 000002
【図２】
0003605271.tif 000003
【図３】
0003605271.tif 000004
【図４】
0003605271.tif 000005
【図５】
0003605271.tif 000006
【図６】
0003605271.tif 000007
【図７】
0003605271.tif 000008
【図８】
0003605271.tif 000009
【図９】
0003605271.tif 000010
【図１０】
0003605271.tif 000011
【図１１】
0003605271.tif 000012
【図１２】
0003605271.tif 000013
【図１３】
0003605271.tif 000014
【図１４】
0003605271.tif 000015
【図１５】
0003605271.tif 000016
【図１６】
0003605271.tif 000017