(57)【特許請求の範囲】
【請求項１】
ネットワークI/Fと、二次記憶装置と、該二次記憶装置への接続I/Fと、OSと前記二次記憶装置のデバイスドライバとが格納される記憶手段と、前記デバイスドライバおよびOSを動作させるプロセッサとを有するサーバシステムであって、
前記OSは、前記プロセッサに、所定のデータの読み出し要求を行わせるためのものであり、
前記デバイスドライバは、前記プロセッサに、前記読み出し要求のあった前記所定のデータが、前記二次記憶装置に存在するか否かを判断させるためのものであり、
前記デバイスドライバは、前記プロセッサに、前記所定のデータが前記二次記憶装置に存在しない場合に、前記ネットワークI/Fに対して前記所定のデータの読み出しを要求させるためのものであり、
前記デバイスドライバは、前記プロセッサに、前記所定のデータが前記二次記憶装置に存在する場合に、前記二次記憶装置への接続I/Fに対して前記所定のデータの読み出しを要求させるためのものである、
ことを特徴とするサーバシステム。
【請求項２】
請求項１に記載のサーバシステムにおいて、前記OSに基づき前記プロセッサが行う前記二次記憶装置に対する書き込み要求のあったデータの前記二次記憶装置における格納位置と、該データの格納元における格納位置とを対照する管理テーブルを備えることを特徴とするサーバシステム。
【請求項３】
クライアント端末が接続されたローカル側サーバと、ネットワークを介して前記ローカル側サーバと接続されるリモート側サーバを備えたクライアント・サーバシステムにおいて、
前記ローカル側サーバは、外部ネットワークへ接続される第１のネットワークI/Fと、第１の二次記憶装置と、該第１の二次記憶装置への接続I/Fと、OSと前記第１の二次記憶装置に対応するデバイスドライバが格納される記憶手段と、前記OSとデバイスドライバとを動作させる第１のプロセッサとを有し、
前記リモート側サーバは、第２の二次記憶装置と、該第２の二次記憶装置を制御する制御部とを有し、前記制御部は、外部ネットワークに接続される第２のネットワークI/Fと、
該第２の二次記憶装置への接続I/Fと、制御部を動作させる第２のプロセッサとを備え、
前記OSは、前記第１のプロセッサに、所定のデータの読み出し要求を行わせるためのものであり、
前記デバイスドライバは、前記第１のプロセッサに、前記読み出し要求のあった前記所定のデータが、前記第１の二次記憶装置に存在するか否かを判断させるためのものであり、
前記デバイスドライバは、前記第１のプロセッサに、前記所定のデータが前記第１の二次記憶装置に存在しない場合に、前記リモート側サーバの制御部に対して前記所定のデータの読み出しを要求させるためのものであり、
前記デバイスドライバは、前記第１のプロセッサに、前記所定のデータが前記第１の二次記憶装置に存在する場合に、前記第１の二次記憶装置への接続I/Fに対して前記所定のデータの読み出しを要求させるためのものである、ことを特徴とするクライアント・サーバシステム。
【請求項４】
請求項３に記載のクライアント・サーバシステムにおいて、
さらに、制御計算機を有し、
前記ローカル側サーバは前記OSに基づき前記第１のプロセッサが行う第１の二次記憶装置に対する書き込み要求のあったデータの、前記第１の二次記憶装置における格納位置と前記第２の二次記憶装置における格納位置とを対照する管理テーブルを備え、
前記管理テーブルは、前記OSに基づき前記第１のプロセッサが行うデータの書き込み命令を受けたことを示す情報が記録された項目を備え、
前記制御計算機は、前記管理テーブルにおける前記情報が記録された項目に対応するデータの読み出しを、前記第一の二次記憶装置に対して所定のタイミングで要求することを特徴とするクライアント・サーバシステム。
【請求項５】
ネットワークI/Fと、二次記憶装置と、該二次記憶装置への接続I/Fと、前記二次記憶装置のデバイスドライバとOSが格納される記憶手段と、OSと前記デバイスドライバを動作させるプロセッサとを備えたサーバの制御方法において、
前記OSに基づき、前記プロセッサが、所定のデータの読み出し要求を行うステップと、
前記デバイスドライバに基づき、前記プロセッサが、前記読み出し要求のあった前記所定のデータが、前記二次記憶装置に存在するか否かを判断するステップと、
前記デバイスドライバに基づき、前記プロセッサが、前記所定のデータが前記二次記憶装置に存在しない場合に、前記ネットワークI/Fに対して前記所定のデータの読み出しを要求するステップと、
前記デバイスドライバに基づき、前記プロセッサが、前記所定のデータが前記二次記憶装置に存在する場合に、前記二次記憶装置への接続I/Fに対して前記所定のデータの読み出しを要求するステップと
を含むことを特徴とするサーバの制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はネットワークを経由した遠隔データアクセスに関する。特にデータのキャッシングおよびその制御を実現するシステムに関する。
【０００２】
【従来の技術】
近年、ＡＳＰ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）の形式で、サービスを提供する企業が現れている。ＡＳＰの利点は、データベース等のデータは全てデータセンタ側にあるため、顧客ユーザのシステム規模を小さくでき、顧客にとって最新のアプリケーションを低コストで利用できる点がある。サービス提供企業側も、複数の顧客のシステムを統合でき、設備投資も少なくて済む。さらにデータバックアップ作業等もデータセンタ側で行うため、顧客側でのデータの管理コストも低減できる等の利点もある。これらの利点から、最近では様々なサービスがＡＳＰ形式で提供されており、医療情報分野においても同様である。
【０００３】
また同様なサービスをディスク上のデータに対して行うことを可能にする技術として、ｉＳＣＳＩと呼ばれる技術が近年注目されている。ｉＳＣＳＩは、ＴＣＰ／ＩＰネットワークを経由して、ディスク入出力コマンドであるＳＣＳＩコマンドを受け渡す技術である。この技術の規格は、インタネット上の規格の制定団体であるＩＥＴＦ（Ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）のワーキンググループによって議論されており、現在ドラフトレベルの規格が公表されている。またこのプロトコルに対応したストレージ製品として、米国ＩＢＭ社の、ＩＢＭ  Ｔｏｔａｌ  Ｓｔｏｒａｇｅ  ＩＰ  Ｓｔｏｒａｇｅ  ２００ｉがある。
【０００４】
この技術を利用すると、データセンタに置かれ。顧客とＬＡＮや通信回線で接続されたディスクを、顧客配下のローカルディスクと同様に見せることができる。このため、ＡＳＰでの利点と同様に、クライント側に大量の記憶装置を置く必要が無くなり、データのバックアップ等の管理もデータセンタ側に委託でき、管理コストが低減できる。また、全て顧客の下で動作していたシステムに対し、既存のアプリケーションプログラムの変更無しに、ディスク等の記憶装置をデータセンタに移行し、管理コスト低減の利益を享受する事も可能になる。このようなストレージ管理サービスを提供する形態は、ＳＳＰ（Ｓｔｏｒａｇｅ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）と呼ばれている。
【０００５】
一方ＡＳＰやＳＳＰの問題点としては、操作毎にクライアントとサーバ間で通信が発生し、通信遅延のため動作が遅くなる点が挙げられる。特に医療情報分野では、ＣＴやＭＲＩ等の画像の大容量データを必要とする場合が多く、通信による遅延が顕著になる。一般に通信遅延を隠蔽するには、通信データのキャッシングが有効である。しかし、キャッシュによる通信遅延の隠蔽は、キャッシュされたデータが再利用される場合に限定され、一回だけしか参照されないデータに対しては有効でない。
【０００６】
一回だけしか参照されないデータに対しても通信遅延を隠蔽する方法としては、先読みキャッシュの方法が知られている。例えば特許第３０７４５３５号では、医療情報システムに対し、スケジューリングによる先読みキャッシュにより、データアクセスの遅延を隠蔽する方法が開示されている。
【０００７】
しかし先読みキャッシュによる遅延の隠蔽方式を、既存のアプリケーションに対して適用するのは難しい。これは先読みを行うプログラムと既存のアプリケーションは別のプログラムであり、キャッシュされたデータが既存のアプリケーションとは別のアプリケーションプログラム中に保存されることに起因する。このため、既存のアプリケーションではデータアクセスに際し、アクセスしたいデータが先読みされている否かを判断し、先読みされている場合は先読みプログラムからデータを受け取り、先読みされていない場合はＯＳに要求するように変更する必要がある。
【０００８】
【発明が解決しようとする課題】
先読みキャッシュによる遅延の隠蔽では、キャッシュされたデータが既存のアプリケーションとは別のアプリケーションプログラム中に保存される。このためこの方式を、既存のアプリケーションに対して適用するのは難しい。
【０００９】
本発明の目的は、ネットワークを経由してデータの送受信を行うｉＳＣＳＩのような方式に対し、ネットワークによるデータアクセス遅延を隠蔽するため、キャッシュ動作を行う手段を提供する事にある。また、本発明の別の目的は、キャッシュされているデータとされていないデータの区別をアプリケーションプログラムから隠蔽する手段を提供することにある。これにより、すでにアプリケーションプログラムが動作している環境に対し、先読みプログラムによるキャッシングを導入した場合において、既存のプログラムは従来通りＯＳに対してデータの要求を行う方式のままで、キャッシュされたデータを得ることが可能になる。
【００１０】
本発明のもう一つの目的は、前記キャッシュ動作の制御を、キャッシュを行っているシステム以外のシステムから制御する手段を提供することにある。
【００１１】
【課題を解決するための手段】
上記データアクセス遅延の隠蔽は、クライアントシステム内のデバイスドライバレベルでデータをキャッシングする手段、キャッシュしたデータを外部記憶装置に格納する手段により達成される。デバイスドライバとは、ハードウェアの違いを吸収し、ＯＳにデバイスアクセスのための共有の手順を提供するためのソフトウェアである。ここでのデバイスとは、ディスクインタフェースやネットワークインタフェースを意味する。
【００１２】
また上記のキャッシュの制御は、クライアントの外から、キャッシュフラッシュ等のキャッシュ制御の命令をクライアントに送信する手段、クライアント内において受信したキャッシュ制御命令を実行する手段により達成される。
【００１３】
【発明の実施の形態】
次に図１〜図５を用いて本発明の第一の実施例を説明する。最初に、通信プロトコルにｉＳＣＳＩを用いた場合の一般的な手順を示し、次に本発明であるクライアントシステムのデバイスドライバでのキャッシングについて述べる。
【００１４】
図２に、クライアントシステム１とｉＳＣＳＩ対応ディスクシステム１１の一構成例を示す。クライアントシステム１のハードウエア構成は、ＷｉｎｄｏｗｓやＵＮＩＸ等のＯＳが動作する、汎用的なコンピュータシステムと同様である。すなわち、プロセッサ２、主記憶３、ネットワークインタフェース４、ディスクインタフェース５および６を持ち、内部バス７で相互接続された構成である。またディスクインタフェースは５および６は、それぞれディスク装置８および９と接続されている。
【００１５】
ディスク装置８には、ＯＳ、アプリケーションプログラム、デバイスドライバ等のプログラムが記録されている。これらのプログラムはクライアントシステム１の電源投入後、必要に応じてプロセッサ２およびディスクインタフェース５により、主記憶３上に読み込まれ実行される。
【００１６】
ネットワークインタフェース４は、ＬＡＮやＷＡＮ１０を介してｉＳＣＳＩ対応ディスクシステム１１と接続されている。ＬＡＮやＷＡＮの中でルータやハブ等の中継装置を用いた場合も本特許は適用可能であるが、実施例の動作には影響しないので省略する。
【００１７】
ｉＳＣＳＩ対応ディスクシステム１１は、ｉＳＣＳＩ対応ディスク制御装置１２を持ち、ディスク装置１３に接続されている。複数のディスク装置を持つ場合も本特許は適用可能であるが、実施例の動作には影響しないので、ディスク制御装置が一つの場合について説明する。
【００１８】
図３に、クライアントシステム１のソフトウエア階層とハードウエア階層を示す。ここでのハードウエア階層の各要素は、図２の各要素に対応している。また、上下で接している階層間は互いにデータ交換可能である事を示す。
【００１９】
まず、一般的なＳＣＳＩディスク入出力動作について述べる。アプリケーション層１４からディスクにデータを書き込む場合、ディスク入力要求は最初にＯＳ層１５に伝えられる。ＯＳは、ディスク入力を実行するのに必要な情報を、ハードウエア機器に依存しない形式で、ＳＣＳI用デバイスドライバ１６に渡す。ＳＣＳI用デバイスドライバ１６は、ＯＳから受け取った情報を、ディスクインタフェース５独自の入出力仕様に変換する。そして、ＳＣＳI用デバイスドライバ１６が、ディスクインタフェース５に情報を書き込むことにより、ディスクインタフェース５が起動される。続いてデータを伴ったＳＣＳＩコマンドの書き込み要求がディスク装置８に送られ、データの書き込みが実行される。
【００２０】
アプリケーション層からのデータの読み出しも、ディスク出力要求が前記ディスク入力要求の場合と同様の手順で、ディスク装置８に送られる。そしてディスク装置８からの出力データは、前記とは逆の手順でアプリケーション層に送られ一連のデータ読み出し操作が完了する。
【００２１】
続いて一般的なｉＳＣＳＩ対応ディスク制御装置１２に対する入出力動作について述べる。アプリケーション層１４からディスクにデータを書き込む場合、ディスク入力要求は最初にＯＳ層１５に伝えられる。ＯＳは、ディスク入力を実行するのに必要な情報を、ハードウエア機器に依存しない形式で、ｉＳＣＳI用デバイスドライバ１７に渡す。
【００２２】
ｉＳＣＳＩ用デバイスドライバの、ＯＳ側とのインタフェースのパラメタ等の構成は、通常のＳＣＳＩ用デバイスドライバと同じになっている。このため、ＯＳがｉＳＣＳＩデバイスドライバに渡す情報は、ＳＣＳＩデバイスドライバの場合と同じである。また同様の理由から、ＯＳから見て、ｉＳＣＳＩプロトコルでアクセスするディスク装置とＳＣＳＩプロトコルでアクセスするディスク装置は、同じ種類のデバイスに見える。
【００２３】
ｉＳＣＳI用デバイスドライバ１７は、ＯＳから受け取った情報を、ｉＳＣＳＩ仕様のコマンド形式に変換する。そして、ネットワークインタフェース４およびＬＡＮ／ＷＡＮ１０を使用し、ｉＳＣＳＩ対応ディスクシステム１１にｉＳＣＳＩコマンドを送ることにより、データの書き込みが実行される。
【００２４】
ＬＡＮ／ＷＡＮを経由して交換されるｉＳＣＳＩコマンドの詳細は、インタネット上の規格の制定団体であるＩＥＴＦ（Ｔｈｅ  Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）のワーキンググループによって議論されており、現在ドラフトレベルの規格が公表されている。
【００２５】
アプリケーション層からのデータの読み出しも、前記ディスク入力要求の場合と同様の手順で、ｉＳＣＳＩ対応ディスクシステム１１に送られる。そして、ｉＳＣＳＩ対応ディスクシステム１１からの出力データは、前記とは逆の手順でアプリケーション層に送られ一連のデータ読み出し操作が完了する。
【００２６】
次に本特許であるデバイスドライバにおけるキャッシュ動作について説明する。
【００２７】
キャッシュデータは、キャッシュ用ディスク装置９に格納する。これは、ＯＳ、アプリケーションプログラム、デバイスドライバ等のプログラムが記録されているディスク装置８とは別のディスク装置である（図２）。読み出したデータがキャッシュ上にあるか否かの判定は、クライントシステム１の主記憶３上に置いた、キャッシュ管理テーブル１８を用いる。図４にキャッシュ管理テーブルの構成を示す。
【００２８】
一般にディスク装置内の記録領域は、ブロックと呼ばれる一定サイズに区切られ、各々にブロック番号と呼ばれる識別番号が割り当てられている。このため入出力は、データの位置を示すブロック番号と、データの長さを示すブロック数を指定して行われる。
【００２９】
キャッシュ管理テーブル１８は、上記の入出力方法に対応し、キャッシュ用ディスクの識別番号１９、キャッシュ用ディスクのブロック番号２０、キャッシュ用ディスクのブロック数２１、ｉＳＣＳＩディスクの識別番号２２、ｉＳＣＳＩディスクのブロック番号２３、ｉＳＣＳＩディスクのブロック数２４、通し番号２５、の組を保持する。
【００３０】
キャッシュ管理テーブル１８の生成は、クライントシステム１の初期化事に行われる。初期化された直後のテーブルは空である。これは何もキャッシュされていない事を意味する。データがキャッシュされる毎に一個のエントリが生成される。
【００３１】
図４においては、ｉＳＣＳＩディスク中の、ブロック番号０から１０ブロック分のデータが、キャッシュ用ディスク中の、ブロック番号０から１０ブロック分の領域に格納されている状態を示している。また、ｉＳＣＳＩディスク中の、ブロック番号８８から８ブロック分のデータは、キャッシュ用ディスク中の、ブロック番号１０から８ブロック分の領域に格納されている。キャッシュ用ディスクの識別番号とｉＳＣＳＩディスクの識別番号は、各々に複数のディスク装置を使用している場合、ディスク装置を識別する為に用いる。本実施例では各々一個のディスクを使用しているため、識別番号は０が入っている。
【００３２】
図１（ａ）にｉＳＣＳＩ対応ディスクシステムに対し、データの読み出し（リード）を行った場合の、ｉＳＣＳＩ用デバイスドライバの動作のフローチャートを示す。ＯＳからｉＳＣＳＩ用デバイスドライバへの要求が、データの読み出し（リード）動作の場合、ｉＳＣＳＩ用デバイスドライバは、対象のデータがキャッシュ用ディスク９上にあるか否かを、上記のキャッシュ管理テーブル１８を検索して判断する（１０１）。対象のデータがキャッシュ用ディスク上９にある場合、ディスクインタフェース６を使用して、データをキャッシュ用ディスク装置９から読み出し、ＯＳに返す（１０２）。
【００３３】
対象のデータがキャッシュ用ディスク９上にない場合は、従来のｉＳＣＳＩ用デバイスドライバと同様に、ＯＳから受け取った情報を、ｉＳＣＳＩ仕様のコマンド形式に変換し、ネットワークインタフェース４およびＬＡＮ／ＷＡＮ１０を使用し、ｉＳＣＳＩ対応ディスクシステム１１にｉＳＣＳＩコマンドを送る（１０３）。
【００３４】
ｉＳＣＳＩ対応ディスクシステム１１からデータが到着すると、ネットワークインタフェース４からパケット受信の割り込みが入る（１０５）（図１（ｂ））。これにより、再びｉＳＣＳＩ用デバイスドライバが起動され、パケット中のリードデータ部分をキャッシュディスクに格納すると共に、その情報をキャッシュ管理テーブル中の新しいエントリとして追加する（１０６）。そして、到着したパケット中のｉＳＣＳＩコマンド部分を通常のＳＣＳＩコマンドの情報に変換しＯＳに返す（１０７）。以上の一連の動作により、対象のデータがキャッシュ用ディスク９上にない場合のリード動作が完了する。
【００３５】
図５にｉＳＣＳＩ対応ディスクシステムに対し、データの書き込み（ライト）を行った場合の、ｉＳＣＳＩ用デバイスドライバの動作のフローチャートを示す。ＯＳからｉＳＣＳＩ用デバイスドライバへの要求が、データの書き込み（ライト）動作の場合、ｉＳＣＳＩ用デバイスドライバは、対象のデータがキャッシュ用ディスク９上にあるか否かを、キャッシュ管理テーブル１８を検索して判断する（１０９）。対象のデータがキャッシュ用ディスク９上にある場合、ディスクインタフェース６を使用して、データをキャッシュ用ディスク装置９に書き込みデータを更新する（１１０）。対象のデータがキャッシュ用ディスク９上に無い場合、データをキャッシュディスクに格納すると共に、その情報をキャッシュ管理テーブル中の新しいエントリとして追加する（１１１）。
【００３６】
そしていずれの場合も、ＯＳから受け取った情報を、ｉＳＣＳＩ仕様のコマンド形式に変換する。そして、ネットワークインタフェース４およびＬＡＮ／ＷＡＮ１０を使用し、ｉＳＣＳＩ対応ディスクシステム１１にｉＳＣＳＩコマンドを送ることにより、データの書き込みが実行される（１１２）。
【００３７】
以上により、ネットワークを経由してデータの送受信を行う方式に対し、ネットワークによるデータアクセス遅延を隠蔽できる。またキャッシュされているデータとされていないデータの区別をアプリケーションプログラムから隠蔽でき、先読みプログラム等によるキャッシングを導入した場合、既存のプログラムは従来通りＯＳに対してデータの要求を行う方式のままで、キャッシュされたデータを得ることが可能になる。
【００３８】
上記の実施例では、アプリケーション層から要求のあった書き込みデータは、直ちにｉＳＣＳＩ対応ディスクシステム１１に書き込まれる動作を説明しているが、ＬＡＮ／ＷＡＮ回線が塞がっていたり、指定された時間だけ接続される場合などに対応するため、任意の時間後に書き込む動作も可能である。
【００３９】
この動作を実現する場合、キャッシュ管理テーブル１８に、未送信フラグ領域を付け加える。直ちにｉＳＣＳＩ対応ディスクシステム１１に書き込まない場合、ｉＳＣＳＩ用デバイスドライバは、キャッシュ管理テーブル１８のエントリを作成又は更新する時に、未送信フラグをセットする。そして、タイマ等によるＬＡＮ／ＷＡＮ回線の監視の結果、送信可能になった場合、未送信フラグがセットされているデータをまとめて送信することにより、任意の時間後に書き込む動作を実現する。
【００４０】
前記の実施例では、キャッシュ用ディスク９が一杯になり新たなデータが入れられない場合、最も古いキャッシュデータを削除し、新たなデータをキャッシュする。これはキャッシュの制御で一般的に用いられている、いわゆる先入れ先出しの方式である。キャッシュ管理テーブル１８中の通し番号２５は、エントリが生成された順番を表し、このエントリの値を用いて、最も古いキャッシュデータを確定することが可能である。すなわち、キャッシュ用ディスク９が一杯になった場合、通し番号２５が一番若いエントリを探し、そのエントリ示すキャッシュ用ディスク９上の領域に新たなデータを格納し、エントリを更新する。
【００４１】
この先入れ先出し方式に加え、ｉＳＣＳＩ対応ディスクシステム１１中の指定した領域に対するデータはキャッシュ用ディスク９上から削除せず、常にキャッシュ用ディスク９に置いておく方式も可能である。この動作を実現する場合、キャッシュ管理テーブル１８に、キャッシュ常駐フラグ領域を付け加える。このキャッシュ常駐フラグがセットされている場合、前記のキャッシュデータ削除の対象から外すことにより、データのキャッシュへの常駐化を実現できる。
【００４２】
本発明の第二の実施例を説明する。
【００４３】
本実施例では、ｉＳＣＳＩ対応ディスクシステムとの接続インタフェースに、キャッシュ用ディスクへのインタフェースが含まれている場合を説明する。
【００４４】
図６に、クライアントシステム１とｉＳＣＳＩ対応ディスクシステム１１の第二の構成例を示す。
【００４５】
本実施例でも第一の実施例と同様に、クライアントシステム１のハードウエア構成は、ＷｉｎｄｏｗｓやＵＮＩＸ等のＯＳが動作する、汎用的なコンピュータシステムと同様である。すなわち、プロセッサ２、主記憶３、ディスクインタフェース５を持ち、内部バス７で相互接続された構成である。またディスクインタフェース５はディスク装置８と接続されている。
【００４６】
ディスク装置８には、ＯＳ、アプリケーションプログラム、デバイスドライバ等のプログラムが記録されている。これらのプログラムはクライアントシステム１の電源投入後、必要に応じてプロセッサ２およびディスクインタフェース５により、主記憶３上に読み込まれ実行される。
【００４７】
ｉＳＣＳＩディスクインタフェース３１は、プロセッサ３２、メモリ３３、ネットワークインタフェース３４、ディスクインタフェース３５、クライアントインタフェース３６を持ち、内部バス３７で相互接続された構成である。またディスクインタフェース３５はディスク装置２９と接続されている。ｉＳＣＳＩディスクインタフェース３１の動作は、プロセッサ３２がメモリ３３中にある制御プログラムを実行することにより制御される。
【００４８】
クライアントインタフェース３６は、クライントシステム１との入出力を制御する回路であり、制御のための各種レジスタや割り込み信号線等は、従来のディスクインタフェース５等と同様な構成を持つ。このため、クライアントシステム１からは、ｉＳＣＳＩディスクインタフェース３１は、従来のディスクインタフェース５等と同様に見える。したがって、クライアントシステム１中のデバイスドライバも、従来のディスクインタフェース用のデバイスドライバが使用される。すなわち、ｉＳＣＳＩディスクインタフェース３１は、クライアントシステム１中のデバイスドライバと情報の交換を行う。
【００４９】
すなわち、本実施例では従来のデバイスドライバを使用するため、デバイスドライバ中でキャッシュの動作は行わない。キャッシュの動作は、ｉＳＣＳＩディスクインタフェース３１内で行なう。このため、第一の実施例で示したキャッシュ管理テーブル１８は、ｉＳＣＳＩディスクインタフェース３１中のメモリ３３中に格納される。
【００５０】
図７（ａ）にｉＳＣＳＩ対応ディスクシステムに対し、データの読み出し（リード）を行った場合の、ｉＳＣＳＩディスクインタフェース３１の動作のフローチャートを示す。
【００５１】
デバイスドライバからｉＳＣＳＩディスクインタフェース３１への要求が、データの読み出し（リード）動作の場合、ｉＳＣＳＩディスクインタフェース３１は、対象のデータがキャッシュ用ディスク２９上にあるか否かを、キャッシュ管理テーブルを検索して判断する（２０１）。対象のデータがキャッシュ用ディスク上２９にある場合、ディスクインタフェース３５を使用して、データをキャッシュ用ディスク装置２９から読み出し、デバイスドライバに返す（２０２）。
【００５２】
対象のデータがキャッシュ用ディスク２９上にない場合は、デバイスドライバから受け取った情報を、ｉＳＣＳＩ仕様のコマンド形式に変換し、ネットワークインタフェース３４およびＬＡＮ／ＷＡＮ１０を使用し、ｉＳＣＳＩ対応ディスクシステム１１にｉＳＣＳＩコマンドを送る（２０３）。
【００５３】
ｉＳＣＳＩ対応ディスクシステム１１からデータが到着すると、ネットワークインタフェース３４からパケット受信の割り込みが入る（２０５）（図７（ｂ））。これにより再び処理が起動され、パケット中のリードデータ部分をキャッシュディスクに格納すると共に、その情報をキャッシュ管理テーブル中の新しいエントリとして追加する（２０６）。そして、到着したパケット中のｉＳＣＳＩコマンド部分を通常のＳＣＳＩコマンドの情報に変換しデバイスドライバに返す（２０７）。以上の一連の動作により、対象のデータがキャッシュ用ディスク２９上にない場合のリード動作が完了する。
【００５４】
図８にｉＳＣＳＩ対応ディスクシステムに対し、データの書き込み（ライト）を行った場合の、ｉＳＣＳＩディスクインタフェース３１の動作のフローチャートを示す。
【００５５】
デバイスドライバからｉＳＣＳＩディスクインタフェース３１への要求が、データの書き込み（ライト）動作の場合、ｉＳＣＳＩディスクインタフェース３１は、対象のデータがキャッシュ用ディスク２９上にあるか否かを、キャッシュ管理テーブルを検索して判断する（２０９）。対象のデータがキャッシュ用ディスク２９上にある場合、ディスクインタフェース３５を使用して、データをキャッシュ用ディスク装置２９に書き込みデータを更新する（２１０）。対象のデータがキャッシュ用ディスク２９上に無い場合、データをキャッシュディスクに格納すると共に、その情報をキャッシュ管理テーブル中の新しいエントリとして追加する（２１１）。
【００５６】
そしていずれの場合も、デバイスドライバから受け取った情報を、ｉＳＣＳＩ仕様のコマンド形式に変換する。そして、ネットワークインタフェース３４およびＬＡＮ／ＷＡＮ１０を使用し、ｉＳＣＳＩ対応ディスクシステム１１にｉＳＣＳＩコマンドを送ることにより、データの書き込みが実行される（２１２）。
【００５７】
以上により、ネットワークを経由してデータの送受信を行う方式に対し、ネットワークによるデータアクセス遅延を隠蔽できる。またキャッシュされているデータとされていないデータの区別をアプリケーションプログラムから隠蔽でき、先読みプログラム等によるキャッシングを導入した場合、既存のプログラムは従来通りＯＳに対してデータの要求を行う方式のままで、キャッシュされたデータを得ることが可能になる。
【００５８】
本実施例でも、クライアントシステムからのデータを、任意の時間後にｉＳＣＳＩ対応ディスクシステム１１に書き込む動作や、任意のデータのキャッシュへの常駐化を、第一の実施例と同様の手順で実現可能である。
【００５９】
本発明の第三の実施例を説明する。
【００６０】
本実施例では、キャッシュ動作をクライアントシステム１以外のシステムから制御する方法を説明する。
【００６１】
第一および第二の実施例で、クライアントシステムからのデータを、任意の時間後にｉＳＣＳＩ対応ディスクシステム１１に書き込む動作や、任意のデータのキャッシュへの常駐化の実施例を述べたが、この動作の詳細を、クライアントシステム１以外のシステムから制御可能である。図９に、クライアントシステム１以外のシステムからキャッシュ動作を制御する場合の構成例を示す。
【００６２】
本構成例では、第一の実施例の構成に加え、制御計算機３０がＬＡＮ／ＷＡＮに接続されている。制御計算機は、ＬＡＮ／ＷＡＮを経由して、クライアントシステム１に対しキャッシュ制御コマンドを送信する。
【００６３】
キャッシュ制御コマンドは、クライアントシステム１とｉＳＣＳＩ対応ディスクシステム１１間で交換されるｉＳＣＳＩパケットとは区別可能な任意のフォーマットで作成する。これにより、ｉＳＣＳＩ用デバイスドライバが、ネットワークインタフェースからパケット受信の割り込みで起動された時に、ｉＳＣＳＩパケットかキャッシュ制御コマンドかの区別が可能になり、キャッシュ制御コマンドの場合には、その内容に応じた動作が可能になる。
【００６４】
キャッシュ制御コマンドによるｉＳＣＳＩ用デバイスドライバの動作の例は次のものがある。
（１）キャッシュフラッシュ：これは、ｉＳＣＳＩ対応ディスクシステム１１にまだ送信していないデータを全て送信する動作である。この動作は、ｉＳＣＳＩ用デバイスドライバが、キャッシュ管理テーブル１８中の未送信フラグがセットされているデータ全てを、ｉＳＣＳＩ対応ディスクシステム１１に送信することにより実現される。また、キャッシュ管理テーブル１８中のｉＳＣＳＩディスクの識別番号情報を使用することにより、任意のｉＳＣＳＩディスクに対する未送信データだけを送信させることもできる。
（２）送信停止：前述の、任意の時間後にｉＳＣＳＩ対応ディスクシステム１１に書き込む動作と基本的に同じであり、通常ならｉＳＣＳＩ対応ディスクシステムに対し書き込みのため直ちに送信されるデータを、一時的に送信しないでおく動作である。
【００６５】
この動作は、クライアントシステム１中の主記憶３上に、送信可否情報を保存し、ＯＳからデータの書き込み要求があった場合、前記送信可否情報を参照し、送信不可の場合、送信されるデータをキャッシュ用ディスク上に格納すると共に、そのデータに対するキャッシュ管理テーブル１８中の未送信フラグをセットすることにより実現する。また、送信可否情報に対象とするｉＳＣＳＩディスクの識別番号も記録することにより、任意のｉＳＣＳＩディスクに対してだけ、一時的に送信しないでおく動作もできる。
（３）送信再開：前述の送信停止を解除する動作である。この動作は、クライアントシステム１中の主記憶３上の送信可否情報を、送信可能を示す情報に更新することにより実現する。
【００６６】
本実施例は、対象とする構成を第一の実施例に基づいて記述したが、第二の実施例の構成に対しても適用可能である。この場合、動作の対象となるのが、ｉＳＣＳＩ用デバイスドライバの代わりに、ｉＳＣＳＩディスクインタフェース３１中の制御プログラムとなる。また、送信可否情報が格納されるのは、ｉＳＣＳＩディスクインタフェース３１中のメモリ３３になる。
【００６７】
これまで説明してきた全ての実施例では、ＬＡＮ／ＷＡＮネットワークを経由して交換されるディスク入出力コマンドをｉＳＣＳＩプロトコルとして説明したが、デバイスドライバが解釈するプロトコルを変更すれば、ｉＳＣＳＩ以外のプロトコルに対しても適用できる。
【００６８】
さらに、これまで説明してきた全ての実施例では、キャッシュ用ディスク９や２９は、ＯＳ等が格納されるディスク８とは別のディスク装置としていたが、同じディスク装置の場合でも本特許は実施可能である。
【００６９】
ＯＳ等が格納されるディスクとキャッシュ用ディスクを共用する場合、ＯＳ等が格納されるディスク上にキャッシュ用の領域を予め確保し、そのキャッシュ用の領域情報をデバイスドライバに与えることで実現できる。キャッシュ用の領域情報とは、キャッシュ用に確保されたディスクの識別番号、キャッシュ用に確保された領域の開始ブロック番号とキャッシュ用領域のブロック数である。この情報をＯＳの起動時に主記憶上に置き、ｉＳＣＳＩ用デバイスドライバがその情報を読み込むことにより、ＯＳ等が格納されるディスクとキャッシュ用ディスクの共用が実現できる。
【００７０】
【発明の効果】
本発明によれば、ネットワークを経由してデータの送受信を行う方式に対し、ネットワークによるデータアクセス遅延を隠蔽できる。またキャッシュされているデータとされていないデータの区別をアプリケーションプログラムから隠蔽でき、先読みプログラム等によるキャッシングを導入した場合、既存のプログラムは従来通りＯＳに対してデータの要求を行う方式のままで、キャッシュされたデータを得ることが可能になる効果がある。さらに、前記キャッシュ動作の制御を、キャッシュを行っているシステム以外のシステムから制御できるという効果がある。
【図面の簡単な説明】
【図１】データの読み出しを行った場合の、ｉＳＣＳＩ用デバイスドライバの動作のフローチャートである。
【図２】クライアントシステムとｉＳＣＳＩ対応ディスクシステムの一構成例である。
【図３】クライアントシステム１のソフトウエア階層とハードウエア階層の一構成例である。
【図４】キャッシュ管理テーブルの一構成例である。
【図５】データの書き込みを行った場合の、ｉＳＣＳＩ用デバイスドライバの動作のフローチャートである。
【図６】クライアントシステムとｉＳＣＳＩ対応ディスクシステムの別の構成例である。
【図７】データの読み出しを行った場合の、ｉＳＣＳＩディスクインタフェースの動作のフローチャートである。
【図８】データの書き込みを行った場合の、ｉＳＣＳＩディスクインタフェースの動作のフローチャートである。
【図９】クライアントシステム以外のシステムからキャッシュ動作を制御する場合の一構成例である。
【符号の説明】
１……クライアントシステム、２……プロセッサ、３……主記憶、４……ネットワークインタフェース、５・６……ディスクインタフェース、７ ……内部バス、８……ディスク装置、９……キャッシュ用ディスク装置、１０……ＬＡＮ／ＡＮ、１１……ｉＳＣＳＩ対応ディスクシステム、１２……ｉＳＣＳＩ対応ディスク制御装置、１３……ディスク装置、１４……アプリケーション層、１５……ＯＳ層、１６……ＳＣＳI用デバイスドライバ、１７……ｉＳＣＳI用デバイスドライバ、１８……キャッシュ管理テーブル、２９……キャッシュ用ディスク装置、３０……制御計算機、３１……ｉＳＣＳＩディスクインタフェース、３２……プロセッサ、３３……メモリ、３４……ネットワークインタフェース、３５……ディスクインタフェース、３６……クライアントインタフェース、３７……内部バス。
【図１】
0004259036.tif 000002
【図２】
0004259036.tif 000003
【図３】
0004259036.tif 000004
【図４】
0004259036.tif 000005
【図５】
0004259036.tif 000006
【図６】
0004259036.tif 000007
【図７】
0004259036.tif 000008
【図８】
0004259036.tif 000009
【図９】
0004259036.tif 000010