(57)【要約】【課題】ストリーミングをクライアントに配信する際にストレージからデータを取り出す能力によってサーバ能力が制限され、データ転送速度が低下し、処理時間が増加する。【解決手段】サーバとストレージとを接続するデバイスアダプタは、キャッシュコントローラと、キャッシュ装置にアクセスするキャッシュインタフェースと、ストレージにアクセスするストレージインタフェースとを備える。キャッシュコントローラによって、ホストコンピュータからは意識されずに、ストレージから取り出したデータをキャッシュに格納できる。キャッシュコントローラは、キャッシュ上の記憶領域割当を管理するキャッシュディレクトリと、ストレージとキャッシュの負荷とパフォーマンスの情報を維持するモニタとを備える。ストレージとキャッシュは、キャッシュ内の要求データの存在だけでなく、ストレージの現在の負荷とパフォーマンスによっても使い分ける。【選択図】図２
2005148961.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータとメインストレージとを相互接続するデバイスアダプタであって、
前記デバイスアダプタはキャッシュストレージにアクセスするためのキャッシュストレージインタフェース装置、及び、ネットワークを介して前記メインストレージにアクセスするメインストレージインタフェース装置と、前記ホストコンピュータによるデータの出力要求を処理するキャッシュコントローラとを具備し、前記キャッシュコントローラは、
前記メインストレージから取り出したデータを前記キャッシュストレージにキャッシュする処理部と、
前記キャッシュストレージの記憶領域の割当と使用状況を管理する処理部と、
前記メインストレージと前記キャッシュストレージとに関する負荷とパフォーマンスの情報を管理する処理部と、
前記要求されたデータがキャッシュされているか否かを判断する処理部と、
前記要求されたデータがキャッシュされている時に、前記要求データを取り出すストレージを、前記キャッシュストレージ、及び、メインストレージのいずれとするかを決定する処理部とを備える。
【請求項２】
請求項１に記載のデバイスアダプタであって、
前記キャッシュする処理部は、
前記取り出したデータが、前記キャッシュストレージに既にキャッシュされている、或いは、前記キャッシュストレージインタフェース装置のデータ転送帯域幅が予め設定した閾値を超えている場合には、前記取り出したデータを、前記キャッシュストレージにキャッシュしない。
【請求項３】
請求項１に記載のデバイスアダプタであって、
前記負荷の情報は、前記メインストレージインタフェース装置および／または前記キャッシュストレージインタフェース装置の現在のデータ転送速度であって、
前記要求データを取り出すストレージを決定する処理部は、前記現在のデータ転送速度を参照して決定する。
【請求項４】
請求項１に記載のデバイスアダプタであって、
前記パフォーマンスの情報は、前記メインストレージインタフェース装置および／または前記キャッシュストレージインタフェース装置の平均要求処理時間であって、
前記要求データを取り出すストレージを決定する処理部は、前記平均要求処理時間を参照して決定する。
【請求項５】
請求項１に記載のデバイスアダプタであって、
前記メインストレージインタフェース装置は、前記キャッシュストレージインタフェース装置とは異なるインタフェースを備える。
【請求項６】
請求項３に記載のデバイスアダプタであって、
前記メインストレージインタフェース装置は、ファイバーチャネルインタフェースを備える。
【請求項７】
請求項３に記載のデバイスアダプタであって、
前記キャッシュストレージインタフェース装置は、ＳＣＳＩインタフェースを備える。
【請求項８】
請求項１に記載のデバイスアダプタであって、
前記キャッシュコントローラは、さらに、前記キャッシュストレージの領域の割当て処理部を備える。
【請求項９】
請求項６に記載のデバイスアダプタであって、
前記キャッシュストレージ領域割当て処理部は、前記キャッシュストレージの領域が利用できない場合に、置換すべきデータを選択して置換する。
【請求項１０】
請求項１に記載のデバイスアダプタであって、
前記要求されたデータがキャッシュされているか否かを判断する処理部は、前記判定にディスクセクタ番号を用いる。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージエリアネットワークからのデータの取出しとキャッシングに関し、特に、ＯＳのサポートや変更を行うことなくストレージからアクセスされるデータのキャッシングを可能にするデバイスアダプタに関する。
【背景技術】
【０００２】
ＳＡＮ（Storage Area Network）を介してアクセスされる、ＲＡＩＤ（安価なディスクの冗長アレイ）などのネットワークアクセス型ストレージシステムは、信頼性と記憶容量の拡張性の点から極めて有用であり、非常に高速なデータ入出力（Ｉ／Ｏ）を可能とする。ＳＡＮを実現するために使用されるファイバーチャネル（ＦＣ）ネットワークやＩＰネットワークによって、さらにはネイティブＳＣＳＩコマンドやＳＣＳＩ／ＩＰプロトコル、例えばｉＳＣＳＩを用いて、そのようなネットワークアクセス型ストレージシステムに非常に柔軟にアクセスでき、その結果ＳＡＮに接続された複数のストレージ装置に複数のホストコンピュータから同時に直接アクセスすることが可能となる。
【０００３】
上述のネットワークアクセス型ストージシステムにおいては、複数のホストコンピュータがＳＡＮに接続されたストレージ装置のデータに同時にアクセスすることによって入出力速度が制限されてしまい、システム全体のパフォーマンスを低下させる可能性がある。具体的には、ストレージ装置からホストコンピュータへのデータ転送速度は、ＳＡＮを構成するネットワーク媒体の使用可能な物理的帯域幅によって制限される。
【０００４】
これにより、ストレージ装置が高速にデータを出力できても、その性能を充分に発揮することができない。また、ＳＡＮを構成するスイッチは、複数のポート間において、ホストコンピュータからストレージ装置へあるいはストレージ装置からホストコンピュータへ転送するデータを処理する。そのため、広い入出力の内部帯域幅を必要とし全ての入出力動作を効率よく処理する必要がある。
【０００５】
ストレージシステムに接続されたネットワークからデータをアクセスするホストコンピュータにおいては、前述の問題によって、データ転送速度の低下と、入出力要求処理に必要な時間の増加という２つの問題が生じる。ホストコンピュータをマルチメディアストリーミングサーバとして用いる場合には、クライアントに配信するためにストレージシステムからデータを取り出す能力によってサーバのパフォーマンスが制限されるため、上述の問題は特に重大である。
【０００６】
具体的には、データの取出速度が遅いと、ホストコンピュータの演算処理能力に関わらずサーバとしてのパフォーマンスは低下する。リアルタイム処理を必要とするマルチメディアデータの配信を考えると、入出力要求の処理時間が増えることにより、データ伝送遅延が生じるため、クライアント側に配信、復号、提供するマルチメディアの品質を劣化させる恐れがある。
【０００７】
多くのストレージシステムではこれらのパフォーマンス問題に取り組んでおり、それらを解決するために異なる解決法が提示されている。
【０００８】
まず、使用している記憶媒体（例えば磁気ディスクやテープ）のアクセス遅延を避け、ストレージシステムの入出力処理の遅延を克服するために、多くのストレージシステムでは、高速なキャッシュメモリを実装し、解決を図っている。このキャッシュメモリによって、頻繁にアクセスするデータのキャッシングが可能となり、その結果使用されている低速な記憶媒体へのアクセスが回避され、そうしたデータへの入出力要求の処理時間が削減される（例えば、特許文献１参照）。
【０００９】
また、データがホストコンピュータの近くにキャッシュされるキャッシング方式は、ＳＡＮ内でのデータ転送帯域幅の消費量が削減できるのでより良い解決法である。ホスト拡張バスかあるいはＳＡＮにアクセスするために使用するデバイスアダプタに接続されるキャッシュデバイスが、いくつか提案されている。
【００１０】
たとえば、特許文献２記載のデバイスアダプタにおいては、キャッシュデバイスはホストコンピュータの拡張バス（Ｉ／Ｏバス）に直接接続される。この方法では、大量のデータをキャッシュするために、キャッシュ記憶媒体として非常に大容量のディスクを使用して非常に柔軟なキャッシングを実現している。
【００１１】
また、ストレージシステムに接続されＳＡＮからデータを取り出すために使用されるデバイス内でキャッシング作業を行う方法がある。そのデバイスを介してアクセスするストレージへのデータキャッシュの有用性は縮小するが、キャッシング作業中のホスト拡張バスの過負荷を取り除くことができる。
【００１２】
そのようなデバイスの実施例として、特許文献３記載のデバイスアダプタでは、ＩＰネットワークに接続されたストレージシステムから取り出されたデータをアクセス装置に接続されたディスクにキャッシュすることができる。従って、キャッシング作業は、ホスト拡張バスに過負荷を与えることなくデバイスアダプタ内で実施することができる。
【００１３】
また、データキャッシュに接続されたホストコンピュータの例として、アクセスしたストレージシステムと使用しているキャッシュストレージ装置の最高データ転送速度と処理速度の違いを考慮しないキャッシング方式が提示されている。
【００１４】
【特許文献１】特開第２００１‐０５１９０１号公報
【００１５】
【特許文献２】米国特許第６４６３５０９号公報
【特許文献３】国際公開第０３／０１７５９８号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかし、特許文献１に記載の方法では、キャッシングはアクセス先のストレージ装置内で行われるので、ＳＡＮ内のネットワーク帯域幅の使用を削減することはできない。従って、この方法では、ＳＡＮ内のデータ転送パフォーマンスの低下を解決できない。
【００１７】
さらに、通常キャッシュのサイズは大量のデータを保持するほど十分な大きさはなく、ストリーミングサーバによってアクセスされるマルチメディアデータファイルでは、複数のホストサーバが続けて大容量のデータファイルに同時にアクセスした場合、キャッシュ全体の効率は低下してしまう。
【００１８】
特許文献２に記載の方法では、異なる種類のインタフェースを介して様々な記憶装置から取り出されたデータは、ホストオペレーティングシステム内のデータ転送経路やデバイスドライバを変更することによって、それらのキャッシュデバイスにキャッシュすることができる。
【００１９】
この方法によって、高い柔軟性がもたらされるが、２つの重大な問題が生じる。１つは、データのキャッシングおよびキャッシュデバイスからの取出しを処理するためにはオペレーティングシステムからのサポートが必要となることである。利用対象のオペレーティングシステムは、デバイスドライバの階層構造をサポートする必要がある。
【００２０】
もう１つの問題は、キャッシングプロセス用拡張バスの帯域幅の消費量が過剰になることである。使用するバスの種類に応じて、キャッシュされるデータは拡張バスを介して２回転送される可能性がある。１回は記憶データにアクセスするデバイスからホストメモリへ、もう１回はホストメモリからキャッシュデバイスへと転送される。このようなホストＩ／Ｏバスの過負荷によって、マルチメディアストリーミングなどの入出力が集中する用途でのパフォーマンスが低下する可能性がある。
【００２１】
特許文献３に記載の方法では、デバイスは、使用しているキャッシュストレージの負荷と、キャッシュされていないデータを取り出すために使用されるインタフェースの負荷とを正確に測定するための帯域幅制御を行う機能を持たず、データの取り出し先はキャッシュ内にデータがあるか否かによって判断される。インタフェースの負荷状況を用いて動的にデータの取り出し先の決定を行う機能は、マルチメディアデータなどのリアルタイム処理を特徴とするデータの取出しの場合に必要である。
【００２２】
特定の種類の入出力処理に対して使用中のキャッシュデバイスがストレージ装置に接続したＳＡＮより低いパフォーマンスを示した場合、この方式ではシステム全体のパフォーマンスが低下する可能性がある。得られた入出力要求処理時間（もしくは少なくともその概算）がキャッシュデバイスの入出力要求処理に必要な入出力要求処理時間より短い場合、キャッシュ済みのデータであっても、ＳＡＮを介するストレージシステムから取り出す必要が生じる可能性がある。
【００２３】
その典型的な例としては、小さなデータブロックのデータの取出しがある。小さなデータブロックの取出しは通常、ディスクストライピングの効果によりディスクアレイシステムでは速くなり、ディスクシークのオーバヘッドが大きいシングルディスクシステムでは遅くなる。
【課題を解決するための手段】
【００２４】
本発明は、ホストコンピュータがネットワークを介してメインストレージから取り出したデータを有効にかつ柔軟にキャッシュして、キャッシュストレージの柔軟な大きさと、効率的なキャッシングプロセスと、ホストコンピュータによる入出力要求の処理時間を削減するためのデータ取出し先の動的制御とを行う、ホストコンピュータとメインストレージとを接続するデバイスアダプタを提供する。
【００２５】
本発明による、ホストコンピュータとメインストレージとを相互接続するデバイスアダプタは、キャッシュストレージにアクセスするためのキャッシュストレージインタフェース装置、及び、ネットワークを介して前記メインストレージにアクセスするメインストレージインタフェース装置と、前記ホストコンピュータによるデータの出力要求を処理するキャッシュコントローラとを備える。
【００２６】
キャッシュコントローラは、メインストレージから取り出したデータを前記キャッシュストレージにキャッシュする処理部と、キャッシュストレージの記憶領域の割当と使用状況を管理する処理部と、メインストレージと前記キャッシュストレージとに関する負荷とパフォーマンスの情報を管理する処理部と、要求されたデータがキャッシュされているか否かを判断する処理部と、要求されたデータがキャッシュされている時に、要求データを取り出すストレージを、キャッシュストレージ、及び、メインストレージのいずれとするかを決定する処理部とを備える。
【００２７】
さらに、上記デバイスアダプタにおいて、上記キャッシュする処理部は、取り出したデータが、キャッシュストレージに既にキャッシュされている、或いは、キャッシュストレージインタフェース装置のデータ転送帯域幅が予め設定した閾値を超えている場合には、取り出したデータを、前記キャッシュストレージにキャッシュしないことを特徴とする。
【００２８】
また、上記負荷の情報とは、メインストレージインタフェース装置および／またはキャッシュストレージインタフェース装置の現在のデータ転送速度であって、要求データを取り出すストレージを決定する処理部は、上記現在のデータ転送速度を参照して決定することを特徴とする。
【００２９】
また、上記パフォーマンスの情報とは、メインストレージインタフェース装置および／またはキャッシュストレージインタフェース装置の平均要求処理時間であって、要求データを取り出すストレージを決定する処理部は、上記平均要求処理時間を参照して決定することを特徴とする。
【発明の効果】
【００３０】
本発明によれば、ホストコンピュータに接続されたデバイスに記憶装置にネットワークを介して接続されたストレージから取り出したデータを有効にかつ柔軟にキャッシュして、キャッシュストレージの柔軟な大きさや、システムに負荷をかけない効率的なキャッシングプロセスや、ホスト入出力要求の処理時間を削減するためのデータ取り出し先の動的制御が可能になる。
【発明を実施するための最良の形態】
【００３１】
図１には、一般的なホストコンピュータ（１００）に接続された、本発明のデバイスアダプタ（２００）が示されている。ホストコンピュータ（１００）が備える一つ以上のＣＰＵ（中央処理装置）（１１０）は、コントローラ／ブリッジ（１３０）によって管理されるメモリバスを介してメインメモリ（１２０）に記憶されたプログラムをアクセスし実行する。メインメモリ（１２０）が記憶するプログラムは、デバイスドライバプログラムによるデバイス制御などのアプリケーションに様々なサービスを提供するホストオペレーティングシステム（ＯＳ）とアプリケーションプログラムを含む。
【００３２】
デバイスアダプタ（２００）からメインメモリ（１２０）へのデータ転送は拡張バス（１４０）を介して実施される。拡張バス（１４０）は、図示したような単一のバスではなく複数のバスから構成されても良い。あるいは拡張バスを備えず、デバイスアダプタ（２００）がコントローラ／ブリッジ（１３０）によって管理されるメモリバスに直接接続されてもよい。
【００３３】
本実施例のデバイスアダプタ装置（２００）は、拡張バスインタフェース装置（２１０）を用いて、拡張バス（１４０）を介してホストコンピュータ（１００）に接続される。
【００３４】
デバイスアダプタ装置（２００）は、キャッシュコントローラ（２２０）と、メインストレージインタフェース装置（２４０）と、キャッシュストレージインタフェース装置（２５０）とを備える。キャッシュコントローラ（２２０）は、メインストレージインタフェース装置（２４０）と、キャッシュストレージインタフェース装置（２５０）と、キャッシュディレクトリ（２２２）の使用量と、を監視するストレージインタフェースモニタ（２２１）を備え、ローカルキャッシュであるキャッシュストレージ（４００）上の記憶領域割当てを管理する。
【００３５】
デバイスアダプタ装置（２００）の各構成要素は、ハードウェアまたはプロセッサがプログラムを実行することにより具現化され、以下に説明する処理フローは、デバイスアダプタが備えるプロセッサが、プログラムを実行するかあるいはハードウェアを制御することによって達成される。
【００３６】
メインストレージ（５００）は、コントローラ（２４１）を含むメインストレージインタフェース装置（２４０）とネットワーク３００を介してアクセスされる。キャッシュストレージ（４００）は、コントローラ（２５１）を含むキャッシュストレージインタフェース装置（２５０）を用いてアクセスされる。
【００３７】
メインストレージインタフェース装置（２４０）とキャッシュストレージインタフェース装置（２５０）は、デバイス統合バス（２３０）に接続され、拡張バスインタフェース装置（２１０）とキャッシュコントローラ（２２０）を、介して拡張バス（１４０）とのデータ転送を実施する。
【００３８】
デバイスアダプタ（２００）は、ホストコンピュータ（１００）からは、単一インタフェース、即ちメインストレージインタフェース装置（２４０）として動作する。すなわち、キャッシュコントローラ（２２０）とキャッシュストレージ（４００）は隠され、キャッシュストレージ制御とキャッシング処理は、キャッシュコントローラ（２２０）が実装されたデバイスアダプタ（２００）内でホストコンピュータ（１００）に意識されずに実行される。
【００３９】
図２は、デバイスアダプタ（２００）による、ホストコンピュータ（１００）によって発せられた読出し入出力要求の処理フローを示す。
【００４０】
キャッシュコントローラ（２２０）が読出し要求を受けると（ｓ１００）、キャッシュディレクトリ（２２２）を使用してデータがキャッシュストレージ（４００）に記録されている否かを確認（ｓ１０１）する。
【００４１】
要求されたデータがキャッシュストレージ（４００）にキャッシュされていない場合、要求はメインストレージインタフェース装置（２４０）に渡され（ｓ１０４）、メインストレージ（５００）からデータが取り出される。要求が完了すると、処理の終了がホストコンピュータ（１００）に通知され（ｓ１０６）、データを要求するプログラムが残りの処理の完了を待たずに実行を再開することができる。
【００４２】
ｓ１０４で取り出されたデータが既にキャッシュされている（ｓ１０７）、或いは、キャッシュストレージインタフェース装置（２５０）のデータ転送帯域幅が予め設定した閾値を超過、即ちキャッシュストレージ（４００）が過負荷となっている（ｓ１０８）場合には、データはキャッシュストレージ（４００）にキャッシュされない。
【００４３】
ｓ１０７，ｓ１０８いずれも「ＮＯ」であれば、つまり取り出されたデータをキャッシュすべき場合には、キャッシュコントローラ（２２０）がキャッシュディレクトリ（２２２）を使ってキャッシュストレージ（４００）上の記憶領域を割り当てる（ｓ１０９）。
【００４４】
十分なキャッシュ領域が割り当てられると（ｓ１１０）、データはキャッシュストレージ（４００）に書き込まれ（ｓ１１２）、キャッシュディレクトリ（２２２）は書込み動作の完了を更新する（ｓ１１３）。キャッシュ領域割当てが失敗した場合、いくつかのキャッシュディレクトリエントリは、キャッシュストレージの領域を空けるために無効化される場合がある（ｓ１１１）。そのような場合、キャッシュディレクトリエントリの最長時間未使用順を用いるか、あるいはキャッシュヒット率を最高にするのに最適な他のアルゴリズムを用いて無効化するキャッシュディレクトリエントリを選択することができる。
【００４５】
要求されたデータがキャッシュストレージ（４００）にあると判定された（ｓ１０１）場合、キャッシュコントローラ（２２０）は、ストレージインタフェースモニタ（２２１）によって監視される負荷と統計情報に応じて、
データを取り出すために使用する最適なインタフェース、すなわち、キャッシュストレージインタフェース装置（２５０）、メインストレージインタフェース装置（２４０）のいずれかを、決定する（ｓ１０２）。
【００４６】
より具体的には、ストレージインタフェースモニタ（２２１）は、メインストレージインタフェース装置（２４０）のデータ転送速度およびキャッシュストレージインタフェース装置（２５０）のデータ転送速度を監視するとともに、アクセスされるメインストレージ５００とキャッシュストレージ４００とのパフォーマンスの統計データも管理する。ストレージインタフェースモニタ（２２１）は、上記の監視と管理の結果に基づき、下記の条件判断にしたがって最適なインタフェースを選択する。
（１）キャッシュストレージ（４００）のデータ転送速度が最大帯域に近づき、過負荷になった場合には、メインストレージインタフェース装置（２４０）を使用する。
（２）メインストレージインタフェース装置（２４０）だけを使用することにより、要求された出力の処理時間が短縮されると判断される場合は、メインストレージインタフェース装置（２４０）を使用する。具体的には、キャッシュヒットに偏りがある等の理由により、部分的にキャッシュされたデータを無視して要求をメインストレージインタフェース装置（２４０）だけを用いて処理する方法が出力要求を二種類のストレージに対する要求に分割する方法より速い、と判断される場合である。
（３）上記（１）（２）に当てはまらない場合は、キャッシュストレージインタフェース装置（２５０）を使用する。
【００４７】
キャッシュストレージインタフェース装置（２５０）が選択されると、入出力要求はキャッシュディレクトリ情報に従って変えられ、キャッシュストレージ（４００）からデータが取り出される（ｓ１０５）。メインストレージインタフェース装置（２４０）が選択されると、データはメインストレージ（５００）から取り出される（ｓ１０４）。
【００４８】
ステップ（ｓ１０４、ｓ１０５）で行われた処理は、キャッシュストレージ（４００）に部分的にキャッシュされた出力要求参照データに対して並列に行われる。しかし、そうした出力要求は、データの一部がキャッシュストレージに既にキャッシュされていても、ストレージインタフェースモニタ（２２１）によって提供される情報に応じてステップ１０４で完全に処理することができる。
【００４９】
図３は、図１の構成をより詳細に示すもので、デバイスアダプタ（２００）として、ＦＣ／ＳＣＳＩデバイスアダプタ（２００）の構成を示している。
【００５０】
図１のネットワーク（３００）とメインストレージ（５００）には、ＳＡＮ（３００）とＲＡＩＤ装置（５００）が相当し、キャッシュストレージ（４００）にはＳＣＳＩディスク（４００）が相当する。図１のメインストレージインタフェース装置（２４０）には、ＳＡＮ（３００）を介してＲＡＩＤ装置（５００）にアクセスするためにファイバーチャネル（ＦＣ）コントローラ（２４１）を使用したＦＣインタフェース装置（２４０）が相当する。図１のキャッシュストレージインタフェース装置２（２５０）にはＳＣＳＩコントローラ（２５１）を使用したＳＣＳＩインタフェース装置（２５０）が相当する。
【００５１】
ＦＣ／ＳＣＳＩデバイスアダプタ（２００）は拡張バス（１４０）を用いてホストコンピュータ（１００）に接続される。キャッシュコントローラ（２２０）は、ローカルキャッシュのＳＣＳＩディスク（４００）の領域割当てを管理するキャッシュディレクトリ（２２２）を保持する。
【００５２】
ストレージインタフェースモニタ（２２１）は、ＦＣインタフェース装置（２４０）のデータ転送速度およびＳＣＳＩインタフェース装置（２５０）のデータ転送速度を監視するとともに、固定の入出力要求のサイズに合わせた入出力要求の平均処理時間の形で、ＦＣおよびＳＣＳＩインタフェースを介してアクセスされる各記憶装置のパフォーマンスの統計データも管理する。
【００５３】
ストレージインタフェースモニタ（２２１）は、上記の監視と管理の結果に基づき、前述と同様の条件判断を行って、最適なインタフェースを選択する。
【００５４】
図４に、キャッシュストレージ（５００）の領域を固体サイズのブロック単位に分割して管理するキャッシュディレクトリ（２２２）の例を示す。キャッシュディレクトリエントリはブロック番号（１０）ごとに、ブロックが空いているかあるいはキャッシュされたデータが格納されているかをブロック状態（１１）によって示す。キャッシュされたデータはデバイス識別番号（デバイスＩＤ）（１３）で示され、開始セクタ番号（１４）とセクタ数（１５）によって記憶装置上のアドレスとブロック内にキャッシュされたこのアドレスで始まるデータ量が特定される。
【００５５】
キャッシュヒットあるいはキャッシュミスは、各キャッシュ入力開始セクタ番号（１４）および対象装置のキャッシュされたデータに格納されているキャッシュデータのブロックのセクタ数（１５）を、ＳＣＳＩ入出力要求パラメータと比較することによって判断することができる。
【００５６】
各キャッシュエントリに、最後にデータにアクセスした時刻を示す最終使用時刻（１２）を付けること
により、キャッシュストレージが一杯、即ちキャッシュブロックが全て使用されている時に、最長時間未使用法を使ってキャッシュデータの置換えを行うことが可能となる。
【００５７】
ホストコンピュータ（１００）が、図２のｓ１００において、読出しＳＣＳＩコマンドを発した時、キャッシュコントローラ（２２０）はキャッシュエントリを利用してキャッシュされたデータを探索する。キャッシュミスの時には、受け取ったＳＣＳＩコマンドをＦＣコントローラ（２４１）に直接渡して、ＳＡＮ（３００）を介してＲＡＩＤ装置（４００）からデータを取り出すことができる。データを無事引き出すと、キャッシュコントローラ（２２０）は、キャッシュディレクトリに従ってキャッシュ領域を割り当ててデータをキャッシュすなわち、ＳＣＳＩディスク（４００）に書き込むと共に、キャッシュディレクトリ（２２２）へ、新規にキャッシュされたデータの入力を行う。キャッシュヒット時には、入出力要求完了時間の概算に応じて使用するストレージを選択することによって、最高パフォーマンスを達成し、キャッシュヒット率が高い場合にはＳＡＮ帯域幅を他の用途に有効に使用できるようにする。
【００５８】
本実施形態のデバイスアダプタ（２００）に接続するローカルＳＣＳＩディスク（４００）に大容量ディスクを用いることにより、ギガバイトのオーダーのデータをキャッシュすることが可能である。これは、アクセスしたファイルを全てローカルディスク（ＳＣＳＩディスク）（４００）にキャッシングすることを可能とし、大容量のデータをＲＡＩＤ装置（５００）から取り出すビデオストリームサーバにとって特に有効である。
【００５９】
たとえば、ＳＣＳＩディスク（４００）のサイズを、ビデオストリームサーバのワーキングセット、即ちビデオストリームサーバを使用するクライアント装置が最も頻繁にアクセスしたファイルサイズの合計を含む全てのビデオファイルの合計、に応じて決定した場合、全ファイルがキャッシュストレージであるＳＣＳＩディスク（４００）にキャッシュされ、ＲＡＩＤ装置（５００）への遠隔アクセスが全て抑制される。これにより、ＳＡＮ（３００）での実質データ転送帯域幅が拡大し、同一のＳＡＮ構成でもより多くのストリームサーバを使用可能になることから、システムの拡張性を向上させることができる。
【図面の簡単な説明】
【００６０】
【図１】開示したデバイスアダプタの構成を簡易化して示したブロック図である。
【図２】開示したデバイスアダプタに読出し入出力要求を発する処理を示した簡易フローチャートである。
【図３】ファイバーチャネルとＳＣＳＩインタフェースを用いた開示したデバイスアダプタの一実施形態の例を簡易化して示したブロック図である。
【図４】キャッシュディレクトリの実施形態の例である。
【符号の説明】
【００６１】
１００…ホストコンピュータ、１１０…ＣＰＵ（中央処理装置）、１２０…メインメモリ、１３０…コントローラ／ブリッジ、１４０…拡張バス、２００…デバイスアダプタ、２１０…拡張バスインタフェース装置、２２０…キャッシュコントローラ、２２１…ストレージインタフェースモニタ、２２２…キャッシュディレクトリ、２３０…デバイス統合バス、２４０…メインストレージインタフェース装置、２４１…コントローラ、２５０…キャッシュストレージインタフェース装置、２５１…コントローラ、３００…ネットワーク、４００…キャッシュストレージ、５００…メインストレージ。
【図１】
2005148961.tif 000003
【図２】
2005148961.tif 000004
【図３】
2005148961.tif 000005
【図４】
2005148961.tif 000006