JP4259036B2 - ネットワークデータのキャッシュ方法およびシステム - Google Patents
ネットワークデータのキャッシュ方法およびシステム Download PDFInfo
- Publication number
- JP4259036B2 JP4259036B2 JP2002137919A JP2002137919A JP4259036B2 JP 4259036 B2 JP4259036 B2 JP 4259036B2 JP 2002137919 A JP2002137919 A JP 2002137919A JP 2002137919 A JP2002137919 A JP 2002137919A JP 4259036 B2 JP4259036 B2 JP 4259036B2
- Authority
- JP
- Japan
- Prior art keywords
- secondary storage
- storage device
- data
- processor
- disk
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Between Computers (AREA)
Description
【発明の属する技術分野】
本発明はネットワークを経由した遠隔データアクセスに関する。特にデータのキャッシングおよびその制御を実現するシステムに関する。
【0002】
【従来の技術】
近年、ASP(Application Service Provider)の形式で、サービスを提供する企業が現れている。ASPの利点は、データベース等のデータは全てデータセンタ側にあるため、顧客ユーザのシステム規模を小さくでき、顧客にとって最新のアプリケーションを低コストで利用できる点がある。サービス提供企業側も、複数の顧客のシステムを統合でき、設備投資も少なくて済む。さらにデータバックアップ作業等もデータセンタ側で行うため、顧客側でのデータの管理コストも低減できる等の利点もある。これらの利点から、最近では様々なサービスがASP形式で提供されており、医療情報分野においても同様である。
【0003】
また同様なサービスをディスク上のデータに対して行うことを可能にする技術として、iSCSIと呼ばれる技術が近年注目されている。iSCSIは、TCP/IPネットワークを経由して、ディスク入出力コマンドであるSCSIコマンドを受け渡す技術である。この技術の規格は、インタネット上の規格の制定団体であるIETF(The Internet Engineering Task Force)のワーキンググループによって議論されており、現在ドラフトレベルの規格が公表されている。またこのプロトコルに対応したストレージ製品として、米国IBM社の、IBM Total Storage IP Storage 200iがある。
【0004】
この技術を利用すると、データセンタに置かれ。顧客とLANや通信回線で接続されたディスクを、顧客配下のローカルディスクと同様に見せることができる。このため、ASPでの利点と同様に、クライント側に大量の記憶装置を置く必要が無くなり、データのバックアップ等の管理もデータセンタ側に委託でき、管理コストが低減できる。また、全て顧客の下で動作していたシステムに対し、既存のアプリケーションプログラムの変更無しに、ディスク等の記憶装置をデータセンタに移行し、管理コスト低減の利益を享受する事も可能になる。このようなストレージ管理サービスを提供する形態は、SSP(Storage Service Provider)と呼ばれている。
【0005】
一方ASPやSSPの問題点としては、操作毎にクライアントとサーバ間で通信が発生し、通信遅延のため動作が遅くなる点が挙げられる。特に医療情報分野では、CTやMRI等の画像の大容量データを必要とする場合が多く、通信による遅延が顕著になる。一般に通信遅延を隠蔽するには、通信データのキャッシングが有効である。しかし、キャッシュによる通信遅延の隠蔽は、キャッシュされたデータが再利用される場合に限定され、一回だけしか参照されないデータに対しては有効でない。
【0006】
一回だけしか参照されないデータに対しても通信遅延を隠蔽する方法としては、先読みキャッシュの方法が知られている。例えば特許第3074535号では、医療情報システムに対し、スケジューリングによる先読みキャッシュにより、データアクセスの遅延を隠蔽する方法が開示されている。
【0007】
しかし先読みキャッシュによる遅延の隠蔽方式を、既存のアプリケーションに対して適用するのは難しい。これは先読みを行うプログラムと既存のアプリケーションは別のプログラムであり、キャッシュされたデータが既存のアプリケーションとは別のアプリケーションプログラム中に保存されることに起因する。このため、既存のアプリケーションではデータアクセスに際し、アクセスしたいデータが先読みされている否かを判断し、先読みされている場合は先読みプログラムからデータを受け取り、先読みされていない場合はOSに要求するように変更する必要がある。
【0008】
【発明が解決しようとする課題】
先読みキャッシュによる遅延の隠蔽では、キャッシュされたデータが既存のアプリケーションとは別のアプリケーションプログラム中に保存される。このためこの方式を、既存のアプリケーションに対して適用するのは難しい。
【0009】
本発明の目的は、ネットワークを経由してデータの送受信を行うiSCSIのような方式に対し、ネットワークによるデータアクセス遅延を隠蔽するため、キャッシュ動作を行う手段を提供する事にある。また、本発明の別の目的は、キャッシュされているデータとされていないデータの区別をアプリケーションプログラムから隠蔽する手段を提供することにある。これにより、すでにアプリケーションプログラムが動作している環境に対し、先読みプログラムによるキャッシングを導入した場合において、既存のプログラムは従来通りOSに対してデータの要求を行う方式のままで、キャッシュされたデータを得ることが可能になる。
【0010】
本発明のもう一つの目的は、前記キャッシュ動作の制御を、キャッシュを行っているシステム以外のシステムから制御する手段を提供することにある。
【0011】
【課題を解決するための手段】
上記データアクセス遅延の隠蔽は、クライアントシステム内のデバイスドライバレベルでデータをキャッシングする手段、キャッシュしたデータを外部記憶装置に格納する手段により達成される。デバイスドライバとは、ハードウェアの違いを吸収し、OSにデバイスアクセスのための共有の手順を提供するためのソフトウェアである。ここでのデバイスとは、ディスクインタフェースやネットワークインタフェースを意味する。
【0012】
また上記のキャッシュの制御は、クライアントの外から、キャッシュフラッシュ等のキャッシュ制御の命令をクライアントに送信する手段、クライアント内において受信したキャッシュ制御命令を実行する手段により達成される。
【0013】
【発明の実施の形態】
次に図1〜図5を用いて本発明の第一の実施例を説明する。最初に、通信プロトコルにiSCSIを用いた場合の一般的な手順を示し、次に本発明であるクライアントシステムのデバイスドライバでのキャッシングについて述べる。
【0014】
図2に、クライアントシステム1とiSCSI対応ディスクシステム11の一構成例を示す。クライアントシステム1のハードウエア構成は、WindowsやUNIX等のOSが動作する、汎用的なコンピュータシステムと同様である。すなわち、プロセッサ2、主記憶3、ネットワークインタフェース4、ディスクインタフェース5および6を持ち、内部バス7で相互接続された構成である。またディスクインタフェースは5および6は、それぞれディスク装置8および9と接続されている。
【0015】
ディスク装置8には、OS、アプリケーションプログラム、デバイスドライバ等のプログラムが記録されている。これらのプログラムはクライアントシステム1の電源投入後、必要に応じてプロセッサ2およびディスクインタフェース5により、主記憶3上に読み込まれ実行される。
【0016】
ネットワークインタフェース4は、LANやWAN10を介してiSCSI対応ディスクシステム11と接続されている。LANやWANの中でルータやハブ等の中継装置を用いた場合も本特許は適用可能であるが、実施例の動作には影響しないので省略する。
【0017】
iSCSI対応ディスクシステム11は、iSCSI対応ディスク制御装置12を持ち、ディスク装置13に接続されている。複数のディスク装置を持つ場合も本特許は適用可能であるが、実施例の動作には影響しないので、ディスク制御装置が一つの場合について説明する。
【0018】
図3に、クライアントシステム1のソフトウエア階層とハードウエア階層を示す。ここでのハードウエア階層の各要素は、図2の各要素に対応している。また、上下で接している階層間は互いにデータ交換可能である事を示す。
【0019】
まず、一般的なSCSIディスク入出力動作について述べる。アプリケーション層14からディスクにデータを書き込む場合、ディスク入力要求は最初にOS層15に伝えられる。OSは、ディスク入力を実行するのに必要な情報を、ハードウエア機器に依存しない形式で、SCSI用デバイスドライバ16に渡す。SCSI用デバイスドライバ16は、OSから受け取った情報を、ディスクインタフェース5独自の入出力仕様に変換する。そして、SCSI用デバイスドライバ16が、ディスクインタフェース5に情報を書き込むことにより、ディスクインタフェース5が起動される。続いてデータを伴ったSCSIコマンドの書き込み要求がディスク装置8に送られ、データの書き込みが実行される。
【0020】
アプリケーション層からのデータの読み出しも、ディスク出力要求が前記ディスク入力要求の場合と同様の手順で、ディスク装置8に送られる。そしてディスク装置8からの出力データは、前記とは逆の手順でアプリケーション層に送られ一連のデータ読み出し操作が完了する。
【0021】
続いて一般的なiSCSI対応ディスク制御装置12に対する入出力動作について述べる。アプリケーション層14からディスクにデータを書き込む場合、ディスク入力要求は最初にOS層15に伝えられる。OSは、ディスク入力を実行するのに必要な情報を、ハードウエア機器に依存しない形式で、iSCSI用デバイスドライバ17に渡す。
【0022】
iSCSI用デバイスドライバの、OS側とのインタフェースのパラメタ等の構成は、通常のSCSI用デバイスドライバと同じになっている。このため、OSがiSCSIデバイスドライバに渡す情報は、SCSIデバイスドライバの場合と同じである。また同様の理由から、OSから見て、iSCSIプロトコルでアクセスするディスク装置とSCSIプロトコルでアクセスするディスク装置は、同じ種類のデバイスに見える。
【0023】
iSCSI用デバイスドライバ17は、OSから受け取った情報を、iSCSI仕様のコマンド形式に変換する。そして、ネットワークインタフェース4およびLAN/WAN10を使用し、iSCSI対応ディスクシステム11にiSCSIコマンドを送ることにより、データの書き込みが実行される。
【0024】
LAN/WANを経由して交換されるiSCSIコマンドの詳細は、インタネット上の規格の制定団体であるIETF(The Internet Engineering Task Force)のワーキンググループによって議論されており、現在ドラフトレベルの規格が公表されている。
【0025】
アプリケーション層からのデータの読み出しも、前記ディスク入力要求の場合と同様の手順で、iSCSI対応ディスクシステム11に送られる。そして、iSCSI対応ディスクシステム11からの出力データは、前記とは逆の手順でアプリケーション層に送られ一連のデータ読み出し操作が完了する。
【0026】
次に本特許であるデバイスドライバにおけるキャッシュ動作について説明する。
【0027】
キャッシュデータは、キャッシュ用ディスク装置9に格納する。これは、OS、アプリケーションプログラム、デバイスドライバ等のプログラムが記録されているディスク装置8とは別のディスク装置である(図2)。読み出したデータがキャッシュ上にあるか否かの判定は、クライントシステム1の主記憶3上に置いた、キャッシュ管理テーブル18を用いる。図4にキャッシュ管理テーブルの構成を示す。
【0028】
一般にディスク装置内の記録領域は、ブロックと呼ばれる一定サイズに区切られ、各々にブロック番号と呼ばれる識別番号が割り当てられている。このため入出力は、データの位置を示すブロック番号と、データの長さを示すブロック数を指定して行われる。
【0029】
キャッシュ管理テーブル18は、上記の入出力方法に対応し、キャッシュ用ディスクの識別番号19、キャッシュ用ディスクのブロック番号20、キャッシュ用ディスクのブロック数21、iSCSIディスクの識別番号22、iSCSIディスクのブロック番号23、iSCSIディスクのブロック数24、通し番号25、の組を保持する。
【0030】
キャッシュ管理テーブル18の生成は、クライントシステム1の初期化事に行われる。初期化された直後のテーブルは空である。これは何もキャッシュされていない事を意味する。データがキャッシュされる毎に一個のエントリが生成される。
【0031】
図4においては、iSCSIディスク中の、ブロック番号0から10ブロック分のデータが、キャッシュ用ディスク中の、ブロック番号0から10ブロック分の領域に格納されている状態を示している。また、iSCSIディスク中の、ブロック番号88から8ブロック分のデータは、キャッシュ用ディスク中の、ブロック番号10から8ブロック分の領域に格納されている。キャッシュ用ディスクの識別番号とiSCSIディスクの識別番号は、各々に複数のディスク装置を使用している場合、ディスク装置を識別する為に用いる。本実施例では各々一個のディスクを使用しているため、識別番号は0が入っている。
【0032】
図1(a)にiSCSI対応ディスクシステムに対し、データの読み出し(リード)を行った場合の、iSCSI用デバイスドライバの動作のフローチャートを示す。OSからiSCSI用デバイスドライバへの要求が、データの読み出し(リード)動作の場合、iSCSI用デバイスドライバは、対象のデータがキャッシュ用ディスク9上にあるか否かを、上記のキャッシュ管理テーブル18を検索して判断する(101)。対象のデータがキャッシュ用ディスク上9にある場合、ディスクインタフェース6を使用して、データをキャッシュ用ディスク装置9から読み出し、OSに返す(102)。
【0033】
対象のデータがキャッシュ用ディスク9上にない場合は、従来のiSCSI用デバイスドライバと同様に、OSから受け取った情報を、iSCSI仕様のコマンド形式に変換し、ネットワークインタフェース4およびLAN/WAN10を使用し、iSCSI対応ディスクシステム11にiSCSIコマンドを送る(103)。
【0034】
iSCSI対応ディスクシステム11からデータが到着すると、ネットワークインタフェース4からパケット受信の割り込みが入る(105)(図1(b))。これにより、再びiSCSI用デバイスドライバが起動され、パケット中のリードデータ部分をキャッシュディスクに格納すると共に、その情報をキャッシュ管理テーブル中の新しいエントリとして追加する(106)。そして、到着したパケット中のiSCSIコマンド部分を通常のSCSIコマンドの情報に変換しOSに返す(107)。以上の一連の動作により、対象のデータがキャッシュ用ディスク9上にない場合のリード動作が完了する。
【0035】
図5にiSCSI対応ディスクシステムに対し、データの書き込み(ライト)を行った場合の、iSCSI用デバイスドライバの動作のフローチャートを示す。OSからiSCSI用デバイスドライバへの要求が、データの書き込み(ライト)動作の場合、iSCSI用デバイスドライバは、対象のデータがキャッシュ用ディスク9上にあるか否かを、キャッシュ管理テーブル18を検索して判断する(109)。対象のデータがキャッシュ用ディスク9上にある場合、ディスクインタフェース6を使用して、データをキャッシュ用ディスク装置9に書き込みデータを更新する(110)。対象のデータがキャッシュ用ディスク9上に無い場合、データをキャッシュディスクに格納すると共に、その情報をキャッシュ管理テーブル中の新しいエントリとして追加する(111)。
【0036】
そしていずれの場合も、OSから受け取った情報を、iSCSI仕様のコマンド形式に変換する。そして、ネットワークインタフェース4およびLAN/WAN10を使用し、iSCSI対応ディスクシステム11にiSCSIコマンドを送ることにより、データの書き込みが実行される(112)。
【0037】
以上により、ネットワークを経由してデータの送受信を行う方式に対し、ネットワークによるデータアクセス遅延を隠蔽できる。またキャッシュされているデータとされていないデータの区別をアプリケーションプログラムから隠蔽でき、先読みプログラム等によるキャッシングを導入した場合、既存のプログラムは従来通りOSに対してデータの要求を行う方式のままで、キャッシュされたデータを得ることが可能になる。
【0038】
上記の実施例では、アプリケーション層から要求のあった書き込みデータは、直ちにiSCSI対応ディスクシステム11に書き込まれる動作を説明しているが、LAN/WAN回線が塞がっていたり、指定された時間だけ接続される場合などに対応するため、任意の時間後に書き込む動作も可能である。
【0039】
この動作を実現する場合、キャッシュ管理テーブル18に、未送信フラグ領域を付け加える。直ちにiSCSI対応ディスクシステム11に書き込まない場合、iSCSI用デバイスドライバは、キャッシュ管理テーブル18のエントリを作成又は更新する時に、未送信フラグをセットする。そして、タイマ等によるLAN/WAN回線の監視の結果、送信可能になった場合、未送信フラグがセットされているデータをまとめて送信することにより、任意の時間後に書き込む動作を実現する。
【0040】
前記の実施例では、キャッシュ用ディスク9が一杯になり新たなデータが入れられない場合、最も古いキャッシュデータを削除し、新たなデータをキャッシュする。これはキャッシュの制御で一般的に用いられている、いわゆる先入れ先出しの方式である。キャッシュ管理テーブル18中の通し番号25は、エントリが生成された順番を表し、このエントリの値を用いて、最も古いキャッシュデータを確定することが可能である。すなわち、キャッシュ用ディスク9が一杯になった場合、通し番号25が一番若いエントリを探し、そのエントリ示すキャッシュ用ディスク9上の領域に新たなデータを格納し、エントリを更新する。
【0041】
この先入れ先出し方式に加え、iSCSI対応ディスクシステム11中の指定した領域に対するデータはキャッシュ用ディスク9上から削除せず、常にキャッシュ用ディスク9に置いておく方式も可能である。この動作を実現する場合、キャッシュ管理テーブル18に、キャッシュ常駐フラグ領域を付け加える。このキャッシュ常駐フラグがセットされている場合、前記のキャッシュデータ削除の対象から外すことにより、データのキャッシュへの常駐化を実現できる。
【0042】
本発明の第二の実施例を説明する。
【0043】
本実施例では、iSCSI対応ディスクシステムとの接続インタフェースに、キャッシュ用ディスクへのインタフェースが含まれている場合を説明する。
【0044】
図6に、クライアントシステム1とiSCSI対応ディスクシステム11の第二の構成例を示す。
【0045】
本実施例でも第一の実施例と同様に、クライアントシステム1のハードウエア構成は、WindowsやUNIX等のOSが動作する、汎用的なコンピュータシステムと同様である。すなわち、プロセッサ2、主記憶3、ディスクインタフェース5を持ち、内部バス7で相互接続された構成である。またディスクインタフェース5はディスク装置8と接続されている。
【0046】
ディスク装置8には、OS、アプリケーションプログラム、デバイスドライバ等のプログラムが記録されている。これらのプログラムはクライアントシステム1の電源投入後、必要に応じてプロセッサ2およびディスクインタフェース5により、主記憶3上に読み込まれ実行される。
【0047】
iSCSIディスクインタフェース31は、プロセッサ32、メモリ33、ネットワークインタフェース34、ディスクインタフェース35、クライアントインタフェース36を持ち、内部バス37で相互接続された構成である。またディスクインタフェース35はディスク装置29と接続されている。iSCSIディスクインタフェース31の動作は、プロセッサ32がメモリ33中にある制御プログラムを実行することにより制御される。
【0048】
クライアントインタフェース36は、クライントシステム1との入出力を制御する回路であり、制御のための各種レジスタや割り込み信号線等は、従来のディスクインタフェース5等と同様な構成を持つ。このため、クライアントシステム1からは、iSCSIディスクインタフェース31は、従来のディスクインタフェース5等と同様に見える。したがって、クライアントシステム1中のデバイスドライバも、従来のディスクインタフェース用のデバイスドライバが使用される。すなわち、iSCSIディスクインタフェース31は、クライアントシステム1中のデバイスドライバと情報の交換を行う。
【0049】
すなわち、本実施例では従来のデバイスドライバを使用するため、デバイスドライバ中でキャッシュの動作は行わない。キャッシュの動作は、iSCSIディスクインタフェース31内で行なう。このため、第一の実施例で示したキャッシュ管理テーブル18は、iSCSIディスクインタフェース31中のメモリ33中に格納される。
【0050】
図7(a)にiSCSI対応ディスクシステムに対し、データの読み出し(リード)を行った場合の、iSCSIディスクインタフェース31の動作のフローチャートを示す。
【0051】
デバイスドライバからiSCSIディスクインタフェース31への要求が、データの読み出し(リード)動作の場合、iSCSIディスクインタフェース31は、対象のデータがキャッシュ用ディスク29上にあるか否かを、キャッシュ管理テーブルを検索して判断する(201)。対象のデータがキャッシュ用ディスク上29にある場合、ディスクインタフェース35を使用して、データをキャッシュ用ディスク装置29から読み出し、デバイスドライバに返す(202)。
【0052】
対象のデータがキャッシュ用ディスク29上にない場合は、デバイスドライバから受け取った情報を、iSCSI仕様のコマンド形式に変換し、ネットワークインタフェース34およびLAN/WAN10を使用し、iSCSI対応ディスクシステム11にiSCSIコマンドを送る(203)。
【0053】
iSCSI対応ディスクシステム11からデータが到着すると、ネットワークインタフェース34からパケット受信の割り込みが入る(205)(図7(b))。これにより再び処理が起動され、パケット中のリードデータ部分をキャッシュディスクに格納すると共に、その情報をキャッシュ管理テーブル中の新しいエントリとして追加する(206)。そして、到着したパケット中のiSCSIコマンド部分を通常のSCSIコマンドの情報に変換しデバイスドライバに返す(207)。以上の一連の動作により、対象のデータがキャッシュ用ディスク29上にない場合のリード動作が完了する。
【0054】
図8にiSCSI対応ディスクシステムに対し、データの書き込み(ライト)を行った場合の、iSCSIディスクインタフェース31の動作のフローチャートを示す。
【0055】
デバイスドライバからiSCSIディスクインタフェース31への要求が、データの書き込み(ライト)動作の場合、iSCSIディスクインタフェース31は、対象のデータがキャッシュ用ディスク29上にあるか否かを、キャッシュ管理テーブルを検索して判断する(209)。対象のデータがキャッシュ用ディスク29上にある場合、ディスクインタフェース35を使用して、データをキャッシュ用ディスク装置29に書き込みデータを更新する(210)。対象のデータがキャッシュ用ディスク29上に無い場合、データをキャッシュディスクに格納すると共に、その情報をキャッシュ管理テーブル中の新しいエントリとして追加する(211)。
【0056】
そしていずれの場合も、デバイスドライバから受け取った情報を、iSCSI仕様のコマンド形式に変換する。そして、ネットワークインタフェース34およびLAN/WAN10を使用し、iSCSI対応ディスクシステム11にiSCSIコマンドを送ることにより、データの書き込みが実行される(212)。
【0057】
以上により、ネットワークを経由してデータの送受信を行う方式に対し、ネットワークによるデータアクセス遅延を隠蔽できる。またキャッシュされているデータとされていないデータの区別をアプリケーションプログラムから隠蔽でき、先読みプログラム等によるキャッシングを導入した場合、既存のプログラムは従来通りOSに対してデータの要求を行う方式のままで、キャッシュされたデータを得ることが可能になる。
【0058】
本実施例でも、クライアントシステムからのデータを、任意の時間後にiSCSI対応ディスクシステム11に書き込む動作や、任意のデータのキャッシュへの常駐化を、第一の実施例と同様の手順で実現可能である。
【0059】
本発明の第三の実施例を説明する。
【0060】
本実施例では、キャッシュ動作をクライアントシステム1以外のシステムから制御する方法を説明する。
【0061】
第一および第二の実施例で、クライアントシステムからのデータを、任意の時間後にiSCSI対応ディスクシステム11に書き込む動作や、任意のデータのキャッシュへの常駐化の実施例を述べたが、この動作の詳細を、クライアントシステム1以外のシステムから制御可能である。図9に、クライアントシステム1以外のシステムからキャッシュ動作を制御する場合の構成例を示す。
【0062】
本構成例では、第一の実施例の構成に加え、制御計算機30がLAN/WANに接続されている。制御計算機は、LAN/WANを経由して、クライアントシステム1に対しキャッシュ制御コマンドを送信する。
【0063】
キャッシュ制御コマンドは、クライアントシステム1とiSCSI対応ディスクシステム11間で交換されるiSCSIパケットとは区別可能な任意のフォーマットで作成する。これにより、iSCSI用デバイスドライバが、ネットワークインタフェースからパケット受信の割り込みで起動された時に、iSCSIパケットかキャッシュ制御コマンドかの区別が可能になり、キャッシュ制御コマンドの場合には、その内容に応じた動作が可能になる。
【0064】
キャッシュ制御コマンドによるiSCSI用デバイスドライバの動作の例は次のものがある。
(1)キャッシュフラッシュ:これは、iSCSI対応ディスクシステム11にまだ送信していないデータを全て送信する動作である。この動作は、iSCSI用デバイスドライバが、キャッシュ管理テーブル18中の未送信フラグがセットされているデータ全てを、iSCSI対応ディスクシステム11に送信することにより実現される。また、キャッシュ管理テーブル18中のiSCSIディスクの識別番号情報を使用することにより、任意のiSCSIディスクに対する未送信データだけを送信させることもできる。
(2)送信停止:前述の、任意の時間後にiSCSI対応ディスクシステム11に書き込む動作と基本的に同じであり、通常ならiSCSI対応ディスクシステムに対し書き込みのため直ちに送信されるデータを、一時的に送信しないでおく動作である。
【0065】
この動作は、クライアントシステム1中の主記憶3上に、送信可否情報を保存し、OSからデータの書き込み要求があった場合、前記送信可否情報を参照し、送信不可の場合、送信されるデータをキャッシュ用ディスク上に格納すると共に、そのデータに対するキャッシュ管理テーブル18中の未送信フラグをセットすることにより実現する。また、送信可否情報に対象とするiSCSIディスクの識別番号も記録することにより、任意のiSCSIディスクに対してだけ、一時的に送信しないでおく動作もできる。
(3)送信再開:前述の送信停止を解除する動作である。この動作は、クライアントシステム1中の主記憶3上の送信可否情報を、送信可能を示す情報に更新することにより実現する。
【0066】
本実施例は、対象とする構成を第一の実施例に基づいて記述したが、第二の実施例の構成に対しても適用可能である。この場合、動作の対象となるのが、iSCSI用デバイスドライバの代わりに、iSCSIディスクインタフェース31中の制御プログラムとなる。また、送信可否情報が格納されるのは、iSCSIディスクインタフェース31中のメモリ33になる。
【0067】
これまで説明してきた全ての実施例では、LAN/WANネットワークを経由して交換されるディスク入出力コマンドをiSCSIプロトコルとして説明したが、デバイスドライバが解釈するプロトコルを変更すれば、iSCSI以外のプロトコルに対しても適用できる。
【0068】
さらに、これまで説明してきた全ての実施例では、キャッシュ用ディスク9や29は、OS等が格納されるディスク8とは別のディスク装置としていたが、同じディスク装置の場合でも本特許は実施可能である。
【0069】
OS等が格納されるディスクとキャッシュ用ディスクを共用する場合、OS等が格納されるディスク上にキャッシュ用の領域を予め確保し、そのキャッシュ用の領域情報をデバイスドライバに与えることで実現できる。キャッシュ用の領域情報とは、キャッシュ用に確保されたディスクの識別番号、キャッシュ用に確保された領域の開始ブロック番号とキャッシュ用領域のブロック数である。この情報をOSの起動時に主記憶上に置き、iSCSI用デバイスドライバがその情報を読み込むことにより、OS等が格納されるディスクとキャッシュ用ディスクの共用が実現できる。
【0070】
【発明の効果】
本発明によれば、ネットワークを経由してデータの送受信を行う方式に対し、ネットワークによるデータアクセス遅延を隠蔽できる。またキャッシュされているデータとされていないデータの区別をアプリケーションプログラムから隠蔽でき、先読みプログラム等によるキャッシングを導入した場合、既存のプログラムは従来通りOSに対してデータの要求を行う方式のままで、キャッシュされたデータを得ることが可能になる効果がある。さらに、前記キャッシュ動作の制御を、キャッシュを行っているシステム以外のシステムから制御できるという効果がある。
【図面の簡単な説明】
【図1】データの読み出しを行った場合の、iSCSI用デバイスドライバの動作のフローチャートである。
【図2】クライアントシステムとiSCSI対応ディスクシステムの一構成例である。
【図3】クライアントシステム1のソフトウエア階層とハードウエア階層の一構成例である。
【図4】キャッシュ管理テーブルの一構成例である。
【図5】データの書き込みを行った場合の、iSCSI用デバイスドライバの動作のフローチャートである。
【図6】クライアントシステムとiSCSI対応ディスクシステムの別の構成例である。
【図7】データの読み出しを行った場合の、iSCSIディスクインタフェースの動作のフローチャートである。
【図8】データの書き込みを行った場合の、iSCSIディスクインタフェースの動作のフローチャートである。
【図9】クライアントシステム以外のシステムからキャッシュ動作を制御する場合の一構成例である。
【符号の説明】
1……クライアントシステム、2……プロセッサ、3……主記憶、4……ネットワークインタフェース、5・6……ディスクインタフェース、7 ……内部バス、8……ディスク装置、9……キャッシュ用ディスク装置、10……LAN/AN、11……iSCSI対応ディスクシステム、12……iSCSI対応ディスク制御装置、13……ディスク装置、14……アプリケーション層、15……OS層、16……SCSI用デバイスドライバ、17……iSCSI用デバイスドライバ、18……キャッシュ管理テーブル、29……キャッシュ用ディスク装置、30……制御計算機、31……iSCSIディスクインタフェース、32……プロセッサ、33……メモリ、34……ネットワークインタフェース、35……ディスクインタフェース、36……クライアントインタフェース、37……内部バス。
Claims (5)
- ネットワークI/Fと、二次記憶装置と、該二次記憶装置への接続I/Fと、OSと前記二次記憶装置のデバイスドライバとが格納される記憶手段と、前記デバイスドライバおよびOSを動作させるプロセッサとを有するサーバシステムであって、
前記 OS は、前記プロセッサに、所定のデータの読み出し要求を行わせるためのものであり、
前記デバイスドライバは、前記プロセッサに、前記読み出し要求のあった前記所定のデータが、前記二次記憶装置に存在するか否かを判断させるためのものであり、
前記デバイスドライバは、前記プロセッサに、前記所定のデータが前記二次記憶装置に存在しない場合に、前記ネットワーク I/F に対して前記所定のデータの読み出しを要求させるためのものであり、
前記デバイスドライバは、前記プロセッサに、前記所定のデータが前記二次記憶装置に存在する場合に、前記二次記憶装置への接続 I/F に対して前記所定のデータの読み出しを要求させるためのものである、
ことを特徴とするサーバシステム。 - 請求項1に記載のサーバシステムにおいて、前記OSに基づき前記プロセッサが行う前記二次記憶装置に対する書き込み要求のあったデータの前記二次記憶装置における格納位置と、該データの格納元における格納位置とを対照する管理テーブルを備えることを特徴とするサーバシステム。
- クライアント端末が接続されたローカル側サーバと、ネットワークを介して前記ローカル側サーバと接続されるリモート側サーバを備えたクライアント・サーバシステムにおいて、
前記ローカル側サーバは、外部ネットワークへ接続される第1のネットワークI/Fと、第1の二次記憶装置と、該第1の二次記憶装置への接続I/Fと、OSと前記第1の二次記憶装置に対応するデバイスドライバが格納される記憶手段と、前記OSとデバイスドライバとを動作させる第1のプロセッサとを有し、
前記リモート側サーバは、第2の二次記憶装置と、該第2の二次記憶装置を制御する制御部とを有し、前記制御部は、外部ネットワークに接続される第2のネットワークI/Fと、
該第2の二次記憶装置への接続I/Fと、制御部を動作させる第2のプロセッサとを備え、
前記 OS は、前記第1のプロセッサに、所定のデータの読み出し要求を行わせるためのものであり、
前記デバイスドライバは、前記第1のプロセッサに、前記読み出し要求のあった前記所定のデータが、前記第1の二次記憶装置に存在するか否かを判断させるためのものであり、
前記デバイスドライバは、前記第1のプロセッサに、前記所定のデータが前記第1の二次記憶装置に存在しない場合に、前記リモート側サーバの制御部に対して前記所定のデータの読み出しを要求させるためのものであり、
前記デバイスドライバは、前記第1のプロセッサに、前記所定のデータが前記第1の二次記憶装置に存在する場合に、前記第1の二次記憶装置への接続 I/F に対して前記所定のデータの読み出しを要求させるためのものである、ことを特徴とするクライアント・サーバシステム。 - 請求項3に記載のクライアント・サーバシステムにおいて、
さらに、制御計算機を有し、
前記ローカル側サーバは前記OSに基づき前記第1のプロセッサが行う第1の二次記憶装置に対する書き込み要求のあったデータの、前記第1の二次記憶装置における格納位置と前記第2の二次記憶装置における格納位置とを対照する管理テーブルを備え、
前記管理テーブルは、前記OSに基づき前記第1のプロセッサが行うデータの書き込み命令を受けたことを示す情報が記録された項目を備え、
前記制御計算機は、前記管理テーブルにおける前記情報が記録された項目に対応するデータの読み出しを、前記第一の二次記憶装置に対して所定のタイミングで要求することを特徴とするクライアント・サーバシステム。 - ネットワークI/Fと、二次記憶装置と、該二次記憶装置への接続I/Fと、前記二次記憶装置のデバイスドライバとOSが格納される記憶手段と、OSと前記デバイスドライバを動作させるプロセッサとを備えたサーバの制御方法において、
前記 OS に基づき、前記プロセッサが、所定のデータの読み出し要求を行うステップと、
前記デバイスドライバに基づき、前記プロセッサが、前記読み出し要求のあった前記所定のデータが、前記二次記憶装置に存在するか否かを判断するステップと、
前記デバイスドライバに基づき、前記プロセッサが、前記所定のデータが前記二次記憶装置に存在しない場合に、前記ネットワーク I/F に対して前記所定のデータの読み出しを要求するステップと、
前記デバイスドライバに基づき、前記プロセッサが、前記所定のデータが前記二次記憶装置に存在する場合に、前記二次記憶装置への接続 I/F に対して前記所定のデータの読み出しを要求するステップと
を含むことを特徴とするサーバの制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002137919A JP4259036B2 (ja) | 2002-05-14 | 2002-05-14 | ネットワークデータのキャッシュ方法およびシステム |
US10/214,184 US7155492B2 (en) | 2002-05-14 | 2002-08-08 | Method and system for caching network data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002137919A JP4259036B2 (ja) | 2002-05-14 | 2002-05-14 | ネットワークデータのキャッシュ方法およびシステム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003330794A JP2003330794A (ja) | 2003-11-21 |
JP2003330794A5 JP2003330794A5 (ja) | 2005-09-15 |
JP4259036B2 true JP4259036B2 (ja) | 2009-04-30 |
Family
ID=29416832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002137919A Expired - Fee Related JP4259036B2 (ja) | 2002-05-14 | 2002-05-14 | ネットワークデータのキャッシュ方法およびシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7155492B2 (ja) |
JP (1) | JP4259036B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7873868B1 (en) * | 2003-01-17 | 2011-01-18 | Unisys Corporation | Method for obtaining higher throughput in a computer system utilizing a clustered systems manager |
US8018953B1 (en) * | 2003-08-20 | 2011-09-13 | Cisco Technology, Inc. | Adaptive, deterministic ant routing approach for updating network routing information |
US20050120134A1 (en) * | 2003-11-14 | 2005-06-02 | Walter Hubis | Methods and structures for a caching to router in iSCSI storage systems |
US20050131863A1 (en) * | 2003-12-11 | 2005-06-16 | W. Daniel Hillis | Reception of spatial-to-temporal translated data |
US7349999B2 (en) * | 2003-12-29 | 2008-03-25 | Intel Corporation | Method, system, and program for managing data read operations on network controller with offloading functions |
CN100452795C (zh) * | 2004-01-16 | 2009-01-14 | 英业达股份有限公司 | 利用iSCSI协议访问逻辑设备的方法 |
US7533190B2 (en) * | 2004-04-08 | 2009-05-12 | Intel Corporation | Network storage target boot and network connectivity through a common network device |
US7478265B2 (en) | 2004-10-14 | 2009-01-13 | Hewlett-Packard Development Company, L.P. | Error recovery for input/output operations |
US20060100997A1 (en) * | 2004-10-27 | 2006-05-11 | Wall Gary C | Data caching |
US7516252B2 (en) * | 2005-06-08 | 2009-04-07 | Intel Corporation | Port binding scheme to create virtual host bus adapter in a virtualized multi-operating system platform environment |
JP2011028537A (ja) * | 2009-07-27 | 2011-02-10 | Buffalo Inc | 外部記憶装置へのアクセスを高速化する方法および外部記憶システム |
JP5697404B2 (ja) * | 2010-11-02 | 2015-04-08 | キヤノン株式会社 | 情報処理装置、情報処理方法及びプログラム |
US8856803B2 (en) | 2011-11-02 | 2014-10-07 | Oracle International Corporation | Content delivery within an application |
US9164913B1 (en) * | 2012-04-16 | 2015-10-20 | Qlogic, Corporation | Method and system for offloading copy on write operations |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100387207B1 (ko) * | 1994-03-15 | 2003-10-04 | 디지 인터내셔날 인크. | 원격네트워크장치에의한통신시스템및통신방법 |
US5805809A (en) * | 1995-04-26 | 1998-09-08 | Shiva Corporation | Installable performance accelerator for maintaining a local cache storing data residing on a server computer |
US6370614B1 (en) * | 1999-01-26 | 2002-04-09 | Motive Power, Inc. | I/O cache with user configurable preload |
US6880126B1 (en) * | 1999-08-03 | 2005-04-12 | International Business Machines Corporation | Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data |
US6598174B1 (en) * | 2000-04-26 | 2003-07-22 | Dell Products L.P. | Method and apparatus for storage unit replacement in non-redundant array |
US6918113B2 (en) * | 2000-11-06 | 2005-07-12 | Endeavors Technology, Inc. | Client installation and execution system for streamed applications |
-
2002
- 2002-05-14 JP JP2002137919A patent/JP4259036B2/ja not_active Expired - Fee Related
- 2002-08-08 US US10/214,184 patent/US7155492B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20030217114A1 (en) | 2003-11-20 |
US7155492B2 (en) | 2006-12-26 |
JP2003330794A (ja) | 2003-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4186602B2 (ja) | ジャーナルログを利用した更新データ書込方法 | |
JP4259036B2 (ja) | ネットワークデータのキャッシュ方法およびシステム | |
US6925533B2 (en) | Virtual disk image system with local cache disk for iSCSI communications | |
US6389510B1 (en) | Method and apparatus for caching web-based information | |
US8423720B2 (en) | Computer system, method, cache controller and computer program for caching I/O requests | |
US20030212865A1 (en) | Method and apparatus for flushing write cache data | |
US20050027798A1 (en) | Caching system and method for a network storage system | |
US6405201B1 (en) | Method and apparatus for reducing network traffic for remote file append operations | |
JP2005010969A (ja) | ネットワークシステム及びスイッチ | |
KR20040012812A (ko) | L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치 | |
JP2005322237A (ja) | データ・ストレージ・システム間でのポイント・イン・タイム・コピー | |
US5524225A (en) | Cache system and method for providing software controlled writeback | |
EP1566041B1 (en) | High-performance lock management for flash copy in n-way shared storage systems | |
JP2001027967A (ja) | 外部記憶装置及び情報処理システム | |
US20160371017A1 (en) | Processing read and write requests | |
US7437511B1 (en) | Secondary level cache for storage area networks | |
US6182164B1 (en) | Minimizing cache overhead by storing data for communications between a peripheral device and a host system into separate locations in memory | |
EP2344947B1 (en) | Storage controller and method of controlling storage controller | |
JPH07239808A (ja) | 分散データ管理方式 | |
JP4439798B2 (ja) | ディスクアレイ装置の制御方法、及びディスクアレイ装置 | |
JP2008523485A (ja) | システムと共有バッファ内のストレージとの間でデータを転送する方法、システム、及びコンピュータ・プログラム(システムと共有バッファ内ストレージとの間のデータ転送) | |
JPH09167143A (ja) | メッセージ受信制御方式 | |
EP0631236B1 (en) | A bus-master computer system and method | |
JP2001265653A (ja) | データ処理装置 | |
JP2001184294A (ja) | ファイルアクセス方法とこれを用いた情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050401 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050401 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060419 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090108 |
|
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: 20090120 |
|
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: 20090202 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120220 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130220 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140220 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |