JP2007148554A - ネットワークキャッシュ装置およびプログラム - Google Patents

ネットワークキャッシュ装置およびプログラム Download PDF

Info

Publication number
JP2007148554A
JP2007148554A JP2005339005A JP2005339005A JP2007148554A JP 2007148554 A JP2007148554 A JP 2007148554A JP 2005339005 A JP2005339005 A JP 2005339005A JP 2005339005 A JP2005339005 A JP 2005339005A JP 2007148554 A JP2007148554 A JP 2007148554A
Authority
JP
Japan
Prior art keywords
data
read
computer
storage device
cache
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.)
Granted
Application number
JP2005339005A
Other languages
English (en)
Other versions
JP4606998B2 (ja
Inventor
Shin Kobayashi
心 小林
Hirofumi Inomata
宏文 猪股
Shinji Kimura
信二 木村
Ikuko Kobayashi
郁子 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Nippon Telegraph and Telephone Corp
Original Assignee
Hitachi Ltd
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd, Nippon Telegraph and Telephone Corp filed Critical Hitachi Ltd
Priority to JP2005339005A priority Critical patent/JP4606998B2/ja
Publication of JP2007148554A publication Critical patent/JP2007148554A/ja
Application granted granted Critical
Publication of JP4606998B2 publication Critical patent/JP4606998B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】キャッシュ装置によるデータ先読みを高速化することによって、データ先読みのためのリード要求が、コンピュータからのリード要求に先行して行われることを確実とする技術を提供する。
【解決手段】ネットワークキャッシュ装置C1は、コンピュータPCが発行するリード要求と同一の条件による先行リード要求を発行するための先読みパターンデータを先読みパターンデータ格納領域に格納する手段と、コンピュータが特定の動作に必要なデータを取得するためにリード要求の発行を開始する前に、先読みパターンデータの記述に従って先行リード要求を発行することにより、ストレージ装置S1からデータを取得して、当該データをキャッシュデータ格納領域内に一時的に記憶させる手段と、を備える。
【選択図】図2

Description

本発明は、コンピュータと、コンピュータの動作に必要なデータを格納した記憶装置との間の通信を仲介し、コンピュータが記憶装置から取得したデータまたはコンピュータが記憶装置に保存したデータを一時的に記憶し、コンピュータからリード要求されたデータが一時的に記憶しているデータ内にあれば、記憶装置にアクセスすることなく当該データをコンピュータに返送するネットワークキャッシュ装置およびそのプログラムに関する。
特許文献1には、内蔵ハードディスク装置を持たないディスクレスパーソナルコンピュータ(PC)を起動する時間を短縮することのできるネットワークブートシステムが記載されている。特許文献1においては、キャッシュ装置は、ディスクレスPCから送信要求されたデータが規定の論理ブロック、例えば論理ブロック0番地の読み出し要求であると、ストレージ装置に論理ブロック0番地の読み出し要求を送信するとともに、予め設定されたOSイメージ分のデータの読み出し要求をストレージ装置に送信する。ストレージ装置からOSイメージ分のデータの読み出し応答を受信すると、キャッシュ装置は、受信したOSイメージを内蔵の記憶媒体に記憶し、これを契機として、ディスクレスPCからの論理ブロック1番地以降の読み出し要求に対しては、ストレージ装置に要求を行わず、自装置内に記憶しているOSイメージから該当するデータをディスクレスPCに転送する。また、特許文献1には、ディスクレスPCから認証サーバへ認証要求が送られたときに、認証正常であれば、認証サーバからキャッシュ装置へOSイメージの読み出し指示が出され、キャッシュ装置は、これを契機として、ディスクレスPCからの最初の「読み出し要求」を受信する前に、ストレージ装置に対してOSイメージの「読み出し要求」を送信することが記載されている。
特開2005−149334号公報
特許文献1記載のネットワークブートシステムでは、コンピュータ(以下、PCを例に説明)によって記憶装置の既定の論理ブロック番地が読み出されたこと、あるいはコンピュータを使用開始しようとするユーザによるユーザ認証が成功したこと、を契機としてデータ先読みが開始する。そうすると、キャッシュ装置が、PCの動作に必要なデータを読み出し開始してから、PCの動作に伴ってPCがリード要求の発行を開始するまでの時間は、数秒〜10数秒しかない。
そのため、キャッシュ装置と記憶装置との間のネットワークの伝送遅延時間や帯域の影響が無視できない場合、ならびにストレージアクセスの待ち時間が無視できない場合、キャッシュ装置がリード要求を発行してから、対象データの取得を完了するまでの時間(以下、「ネットワークレスポンス時間」と呼ぶ)が増加し、データ先読みに必要な時間に対する、ネットワークレスポンス時間の占める割合が無視できなくなり、データ先読みに必要な時間が増加する恐れがある。ネットワークの伝送遅延時間や帯域、ストレージアクセスの待ち時間がネットワークレスポンス時間に影響を与える様子を図1に示す。
その結果、PCからのリード要求発行時に、その対象データの先読みが未実行となり、キャッシュ装置に対象データが保存されていないという状態(以下、「キャッシュミスヒット」という)が発生する。その場合PCのリード要求発行後、伝送遅延時間が大きく、あるいは帯域が小さい(以下、「性能が低い」と表現する)ネットワークを使用して記憶装置からデータの取得を待たなければならない。その結果、PCの動作に必要なデータの取得が遅延し、PCの動作速度の劣化防止効果が十分得られず、PCの使用者にとってはPCの動作が遅く感じられ、利便性が低下する。
また、キャッシュ装置と記憶装置との間のネットワークとして、通信事業者が提供するベストエフォート型の商用ネットワークを利用した場合、ベストエフォートネットワークの伝送遅延時間や帯域が時々刻々変動することにより、PCの動作に必要なデータの取得時間も変動し、PCの動作速度が不安定化する。
本発明は、前記課題を解決するためのものであって、キャッシュ装置によるデータ先読みを高速化することによって、データ先読みのためのリード要求が、コンピュータからのリード要求に先行して行われることを確実とするものである。すなわち、コンピュータによるリード要求の対象データはキャッシュ装置内に既に保存されていること(これを、「キャッシュヒット」という)が確実となる。
そうすると、コンピュータは、リード要求発行後、逐次、記憶装置からデータの取得を待つ必要がなく、同一のデータは、アクセス時間の短いキャッシュ装置から取得することができる。これは、より性能の高いネットワークを介してデータを取得することを意味するから、コンピュータの動作性能が向上する。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
第1の発明は、先読みパターンデータを格納する先読みパターンデータ格納領域を有する記憶デバイスと、コンピュータが発行するリード要求と同一の条件による先行リード要求を発行するための先読みパターンデータを先読みパターンデータ格納領域に格納する手段と、コンピュータが特定の動作に必要なデータを取得するためにリード要求の発行を開始する前に、先読みパターンデータの記述に従って先行リード要求を発行することにより、記憶装置からデータを取得して、当該データをキャッシュデータ格納領域内に一時的に記憶させる手段と、を備えることを特徴とする。
第2の発明は、先読みパターンデータを格納する先読みパターンデータ格納領域を有する記憶デバイスと、コンピュータが発行するリード要求において、時間的に連続して発行される複数のリード要求が読み出し対象とするブロック番地領域が連続している場合には、当該連続したブロック領域のすべてを読み出し対象とする1回の先行リード要求を発行するように変換した先読みパターンデータを先読みパターンデータ格納領域に格納する手段と、コンピュータが特定の動作に必要なデータを取得するためにリード要求の発行を開始する前に、先読みパターンデータの記述に従って先行リード要求を発行することにより、記憶装置からデータを取得して、当該データをキャッシュデータ格納領域内に一時的に記憶させる手段と、を備えることを特徴とする。
第3の発明は、先読みパターンデータを格納する先読みパターンデータ格納領域を有する記憶デバイスと、コンピュータが発行するリード要求において、同一のブロック番地が複数のリード要求によって読み出される場合には、当該ブロック番地は1回の先行リード要求によって読み出され、かつ番地が連続する複数のブロックは、1回の先行リード要求によって読み出されるように変換した先読みパターンデータを先読みパターンデータ格納領域に格納する手段と、コンピュータが特定の動作に必要なデータを取得するためにリード要求の発行を開始する前に、先読みパターンデータの記述に従って先行リード要求を発行することにより、記憶装置からデータを取得して、当該データをキャッシュデータ格納領域内に一時的に記憶させる手段と、を備えることを特徴とする。
第4の発明は、第3の発明において、格納する手段は、リード要求が、当該リード要求が対象とする読み出しブロックのブロック番地の昇順または降順で発行されるように変換して格納することを特徴とする。
第5の発明は、第3の発明において、格納する手段は、コンピュータによる、より早期の読み出し対象となるブロックを含むリード要求が、より早期に発行されるように変換して格納することを特徴とする。
第6の発明は、第1〜5の発明において、記憶装置との間で2以上のセッションを確立し、データ先読みのために発行される任意のリード要求は、当該2以上のセッションのいずれかを選択して発行する手段を備えることを特徴とする。
以下、第1〜第6の発明を、変数を用いて説明する。
コンピュータは、所定の動作をするにあたり、記憶装置内のあるブロック番地を対象としたリード要求を発行することによって、当該動作に必要なデータを取得する。そして、そのリード要求の回数が合計N回であり、i番目のリード要求が読み出し対象とする記憶装置内ブロック番地は、開始ブロック番地をB、総ブロック数をLとする連続した複数のブロック番地であることが、キャッシュ装置にとって既知であるとする。以下、このようなコンピュータの所定の動作に伴うリード要求の発行パターンを、「読み出しパターンサンプル(B,L)」と表現することとする。また、[B,L]の表記は、論理ブロック番地Biから論理ブロック番地B+L−1の区間を意味するものとする。
第1〜6の発明は、既知の読み出しパターンサンプル(B,L)に基づき、データ先読みを行うことにある。そのうち、第2〜5の発明は、読み出しパターンサンプル(B,L)に対し、一定のアルゴリズムに基づいた加工を施すことにより、第1の発明と比較して、リード要求の発行を削減してデータ先読みを行うことにある。当該アルゴリズムは、第2〜5の発明においてそれぞれ異なる。また、第6の発明は、リード要求の発行を削減することはないが、リード要求を多重に発行することによって、ネットワークレスポンス時間の影響を極力排除しようとするものである。
第1の発明は、データ先読みをN回のリード要求を発行することにより行うものであって、i番目のリード要求は[B,L]を対象とすることを特徴とするものである。要するに、キャッシュ装置が、読み出しパターンサンプル(B,L)によるリード要求の発行条件を完全に模倣して、データ先読みを行うものである。
この発明によれば、データ先読みが完了する前にコンピュータの動作が開始したとしても、コンピュータからのリード要求が対象とするデータが既にキャッシュ装置内に記憶されていることがより確実となり、キャッシュヒットの割合を高めることができる。その結果、コンピュータは、記憶装置からデータを取得する必要がなく、同一のデータはキャッシュ装置から取得することができる。これは、より性能の高いネットワークを介してデータを取得することを意味するから、コンピュータの動作性能が向上する。
第2の発明を説明する。読み出しパターンサンプル(B,L)におけるi番目ないしj番目の合計j−i+1個のリード要求に着目したときに、連続する(i番目とi+1番目,i+1番目とi+2番目,・・・j−1番目とj番目の)リード要求の読み出し対象のブロック番地が連続している(B+L=Bi+1,Bi+1+Li+1=Bi+2,・・・Bj−1+Lj−1=Bとなる)場合がある。
第2の発明は、このような場合において、第1の発明が発行するi番目ないしj番目のリード要求(合計j−i+1個)を、[B,B+L−B]を読み出し対象とする1回のリード要求に置き換えて記憶装置に発行することにより、データ先読みを行うことを特徴とする。例えば、2番目のリード要求が[2,2]、3番目のリード要求が[4,3]、4番目のリード要求が[7,4]であったとすると、これら3回のリード要求を、1回のリード要求[2,9]に置き換えて記憶装置に発行することにより、データ先読みを行うことを特徴とする。
この発明によれば、第1の発明では、データ先読みのためのリード要求の発行回数がN回であったものを、N回未満に削減することができる。その結果、リード要求を発行する度に発生するネットワークレスポンス時間の累積時間を削減することができ、データ先読みに必要な時間を短縮することができる。そうすると、キャッシュヒット率(リード要求1回当たりのキャッシュヒット数をいう。以下同じ)を高めることができ、PCの動作性能を向上させることができる。
第3の発明は、読み出しパターンサンプル(B,L)に基づいてリード要求を発行する点では第1および2の発明と類似するが、読み出しパターンサンプル(B,L)を以下の方法により加工して、第1および2の発明とは異なる条件によってリード要求を発行するという特徴を持つ。
まず、読み出しパターンサンプル(B,L)(1≦i≦N)において、整数kを1≦k≦Nの範囲で変化させた結果、B≦m≦B+L−1を1回以上満たしたすべての整数mを抽出する。これは、読み出しパターンサンプルにおいて、1回以上読み出し対象となったブロック番地をすべて抽出することを意味する。
次に、抽出したブロック番地mを読み出し対象とするリード要求を発行することにより、データ先読みを行う。ただし、ブロック番地mが連続して存在(例えば、m=0,1,2,3,5,6,7・・・である場合には、m=0,1,2,3で連続して存在)している場合には、当該連続領域の開始ブロック番地をb,ブロック数をlとして、[b,l](上記の例では、[0,4])を読み出し対象とする1個だけのリード要求を発行する。
本発明によれば、番地が連続するブロックを1回のリード要求で読み出し、かつ同一のブロック番地が2回以上のリード要求によって読み出されることがない。すると、同一のブロックが2回以上読み出される余地を残す第2の発明と比較して、リード要求の回数をさらに削減することができる。その結果、リード要求を発行する度に発生するネットワークレスポンス時間の累積時間を、第2の発明と比較してさらに削減することができ、データ先読み時間を短縮することができる。そうすると、第2の発明と比較して、キャッシュヒット率をさらに高めることができ、PCの動作性能を向上させることができる。
第3の発明では、リード要求による読み出し対象のみが特徴となっていて、リード要求の発行順序には特徴がない。一方で、後述する第4および第5の発明は、第3の発明において、リード要求の発行順序に特徴を持たせたものである。
第4の発明は、第3の発明において発行されうるリード要求の発行順序を、その開始ブロック番地の昇順または降順とするものである。
この発明によれば、論理ブロック番地が小さい順または大きい順にリード要求が発行され、記憶装置からデータを取得する。そうすると、記憶装置が磁気ディスク装置であり、磁気ディスク上の中心から外周にかけて、あるいはその逆方向にブロック番地が順番に分布している場合では、データ先読みに伴って磁気ヘッドが中心から外周またはその逆方向に滑らかに移動し、無駄な往復動作をすることがないから、記憶装置からデータを高速に取得できることが期待でき、データ先読み時間を短縮することができる。また、記憶装置が、RAID(Redundant Array of Independent Disks)装置である場合、一般的に、内蔵する磁気ディスク装置と、大きなデータサイズでの入出力が成されるので、この読み出されたデータの無駄が軽減され、データ先読み時間を短縮することができる。そうすると、第1および2の発明と比較して、キャッシュヒット率をさらに高めることができ、PCの動作性能を向上させることができる。
第5の発明は、第3の発明において発行されうるリード要求の発行順序を、読み出しパターンサンプル(B,L)と比較して決定することに特徴がある。
まず、第3の発明において発行されうるリード要求のうち、読み出しパターンサンプル(B,L)の読み出し対象範囲を完全に含む、[b,l](b≦B≦B+L≦b+l)を対象とするリード要求を選択して発行する。次に、読み出しパターンサンプル(B,L)について、同様に当該読み出し対象範囲を完全に含むリード要求を発行する。読み出しパターンサンプル(B,L)、(B,L)・・・についても、同様の選択を行う。
本発明によれば、データ先読みが完了する前にコンピュータの動作が開始したとしても、コンピュータからのリード要求が対象とするデータが既にキャッシュ装置内に保存されていることが、第4の発明と比較してより確実となり、キャッシュヒット率をさらに高めることができ、PCの動作性能を向上させることができる。
第6の発明は、PCが、記憶装置からデータを取得するために、リード要求を発行し、データが返送されてきたことを確認してから次のリード要求を発行するという制約があるという点に着目したものである。本発明においては、キャッシュ装置と記憶装置との間に複数のセッションを確立し、データ先読みに伴うリード要求を複数のセッションに振り分けて発行することによって、前記制約を回避するものである。
この発明によれば、i番目のリード要求を発行した後、当該リードコマンドに対応するデータが返送されてくる前に、別のセッションを使用して次のi+1番目のリード要求を発行することができるから、ネットワークレスポンス時間の単純な累積を回避し、データ先読みの高速化を図ることができる。そうすると、第1ないし5の発明と比較して、キャッシュヒット率をさらに高めることができ、PCの動作性能を向上させることができる。
データ先読みにともなうリード要求の発行回数を削減し、あるいは複数のセッションを介してリード要求を発行することによって、データ先読み実行時のネットワーク利用率を上昇させ、データ先読みを高速化させることができる。その結果、PCからの任意のリード要求があった時には、当該リード要求の対象データは既にキャッシュ装置に保存されていることとなるから、キャッシュヒット率をほぼ100%とすることができ、PCの動作(OSやアプリケーションソフトの起動)を、さらに高速化することができる。
さらに、キャッシュヒット率がほぼ100%となることで、PCは、必要なデータを、ストレージ装置からではなく、キャッシュ装置から取得することとなる。そうすると、状態(帯域や遅延時間等)が変動しやすいWANを経由することなく、状態が比較的安定しているLANのみを経由して必要なデータを取得することになるから、WANの状態変化の影響をほとんど受けることなく、PCにおけるOSやアプリケーションソフトの起動時間を安定化することができる。
本発明の実施例のネットワークキャッシュ装置を含む全体のシステム構成例を図2に示す。図2において、PC1〜PC3はコンピュータの一例となるパーソナルコンピュータ(以下、PC)である。S1は記憶装置の一例となるストレージ装置である。C1はネットワークキャッシュ装置(以下、「キャッシュ装置」と記載する。)である。PC1〜PC3、キャッシュ装置C1、ストレージ装置S1はIP(Internet Protocol)網N1で接続されている。ここで、PC1〜PC3とキャッシュ装置C1の間のネットワーク性能(遅延の小ささ、帯域の大きさ、パケット損失の小ささ等)は、キャッシュ装置C1とストレージ装置S1の間のネットワーク性能よりも高いものとする。例えば、PC1〜PC3とキャッシュ装置C1は同一のLAN(Local Area Network)に属し、地理的にも相互に近い位置に設置されているものとする。一方、当該LANとストレージ装置S1は、WAN(Wide Area Network)で接続されていて、地理的にも遠い位置にあるものとする。
PC1〜PC3、キャッシュ装置C1、ストレージ装置S1の各ノードには、IP(Internet Protocol)アドレスとTCP(Transmission Control Protocol)ポート番号が付与されていて、IP網N1(LANやWAN)を介して相互にTCP/IP通信が可能である。PC1〜PC3に割り当てられているIPアドレスをp1〜p3、キャッシュ装置C1に割り当てられているIPアドレスをc1、ストレージ装置S1に割り当てられているIPアドレスをs1とする。
PC1〜PC3の内部には、イニシエータI1〜I3がある。一方、ストレージ装置S1の内部にはターゲットT1があり、ターゲット名tn1が割り当てられている。ターゲットT1には論理ユニットLU1〜LU3が接続され、それぞれに論理ユニット番号lun1〜lun3が割り当てられている。1つの論理ユニットLU(Logical Unit)内の記憶領域は、多数の論理ブロックによって構成され、各論理ブロックには論理ブロックアドレス(LBA:Logical Block Address)が割り当てられている。1つの論理ブロックの容量は通常512Byteであって、これより大きなデータが論理ユニットLUに保存される場合には、複数の論理ブロックに分けて保存される。
PC1〜PC3は、自らが特定の動作をするために、ストレージ装置S1内の特定の論理ユニットLUに保存されたデータをiSCSI(Internet Small Computer System Interface)プロトコルを使用して取得する。iSCSIはIETF(Internet Engineering Task Force)で標準化されたプロトコルであって、その詳細な仕様はRFC(Request for Comments)3720に記載されている。
具体的には、まずPC1〜PC3のイニシエータI1〜I3が、Login Requestオペレーションをストレージ装置S1内ターゲットT1に対して送信し、ストレージ装置S1内ターゲットT1からLogin Responseを返送してもらうことにより、PC1〜PC3内イニシエータI1〜I3とストレージ装置S1内ターゲットT1との間でiSCSIセッションを確立する。次に、当該iSCSIセッションを使用して、イニシエータI1〜I3がターゲットT1に対してリード要求を送信し、Data−Inを返却してもらうことでデータを取得する。ここで、「リード要求」とは、具体的にはSCSI RequestオペレーションにSCSIコマンド「READ」を載せたものであり、以後これを「SCSI−READ」と表記する。SCSI−READによれば、LU内の論理ブロックアドレスBと論理ブロックの総数Lを指定することで、先頭の論理ブロックアドレスをB、論理ブロックの総数をLブロックとする複数の連続した論理ブロックのデータを1度に読み出すことができる。以後、BとLで表される連続論理ブロック領域を[B,L]、当該領域を読み出し対象とするSCSI−READを「SCSI−READ[B,L]」と表記する。例えば、論理ブロック[0,12]は、論理ブロックアドレス0〜11の合計12個の連続論理ブロック領域を指し、SCSI−READ[0,12]は、当該論理ブロック領域のデータを読み出し対象とするSCSI−READである。通常、1つのデータは複数の不連続な論理ブロックに散在していることが多く、その場合、複数のSCSI−READによる読み出しが必要になる。
ここから以下においては、PC1〜PC3のうち、PC1が動作する場合の実施例を詳述する。そこで、ストレージ装置S1内LU1には、PC1の動作に必要な一切のデータ(オペレーティングシステム(以下、OS)やアプリケーションプログラム等)が保存されているものとする。
キャッシュ装置C1は、上記手順に伴ってPC1とストレージ装置S1の間で送受信されるiSCSIオペレーションやデータを中継する役割を持つ。すなわち、PC1がストレージ装置S1に対して送信するLogin Request、SCSI−READ、その他のオペレーションは一旦キャッシュ装置C1に送信され、キャッシュ装置C1によってストレージ装置S1に中継される。逆にストレージ装置S1からPC1に対して返送されるデータも、同様にキャッシュ装置C1によって中継される。
キャッシュ装置C1が、PC1とストレージ装置S1の間で送受信されるiSCSIオペレーションやデータを中継する方法には様々なものがあるが、その一つの方法を以下に詳述する。
その方法とは、キャッシュ装置C1をIP網N1(LAN)における1つのIPホスト(IPアドレスc1を持ったノード)として設置し、PC1からストレージ装置S1、あるいはストレージ装置S1からPC1に対して送信するiSCSIオペレーションやデータを転送するIPパケットの着信IPアドレスをc1とする方法である。この方法によるiSCSIオペレーション等の中継シーケンスを図3に示す。
まず、PC1はキャッシュ装置C1との間でTCPコネクション1を確立し、当該コネクションを利用して、Login Requestをキャッシュ装置C1に送信する。Login Requestを受信したキャッシュ装置C1は、Login Request送信元IPアドレス(PC1のp1)から、Table1を検索することにより、当該Login Requestの中継先を検索し、検索した中継先であるストレージ装置S1(IPアドレスs1、TCPポート3260)との間でTCPコネクション2を確立して、当該TCPコネクション2を利用してLogin Requestを中継する。この時、キャッシュ装置C1は、TCPコネクション1とTCPコネクション2が対であることを管理する。
Login Requestを受信したストレージ装置S1は、TCPコネクション2を利用してLogin Responseをキャッシュ装置C1に返送し、Login Responseを受信したキャッシュ装置C1は、TCPコネクション2に対応するTCPコネクション1を利用して、Login RequestをPC1に中継する。この時、PC1とストレージ装置S1との間にはiSCSIセッションが確立する。
以降、PC1とストレージ装置S1との間で送受信されるiSCSIオペレーション、レスポンス、データは、すべてコネクション1とTCPコネクション2およびiSCSIセッションを利用して送受信されることとなる。
キャッシュ装置C1は、さらにデータキャッシュ機能も持つ。データキャッシュ機能は、パッシブ(受動的)なものと、アクティブ(能動的)なものがある。
パッシブなキャッシュ機能とは、イニシエータがターゲットからデータを取得したことを契機に、当該データをキャッシュ装置内にも保存(キャッシュ)する機能である。すなわち、ストレージ装置S1からPC1に対して返送されたデータは、キャッシュ装置C1によって中継されるとともに、キャッシュ装置C1内の記憶デバイス(メモリ、ハードディスクドライブ等)にも保存される。その結果、再度PC1からストレージ装置S1に対して同一データを読み出すためにSCSI−READが発行された場合には、キャッシュ装置C1は当該SCSI−READをストレージ装置S1に中継することなく、キャッシュ装置C1は折り返し当該データをPC1に対して返送する(キャッシュヒットする)。
アクティブなキャッシュ機能とは、パッシブなキャッシュ機能に加え、イニシエータがターゲットからデータを取得する前に、キャッシュ装置が自律的にデータをターゲットから取得し、キャッシュする機能である。すなわち、PC1がストレージ装置S1からデータを取得するためにストレージ装置S1に対してSCSI−READを発行する前に、キャッシュ装置C1が自律的にストレージ装置S1に対してSCSI−READを発行することにより、PC1が取得すると予想されるデータを前もって取得(以下、「データ先読み」と呼ぶ)し、キャッシュ装置内に保存する。そして、PC1がストレージ装置S1に対してSCSI−READを発行し、ストレージ装置S1からデータを取得しようとした時には、既に同一のデータがキャッシュされている(キャッシュヒットする)ことが期待できるから、キャッシュ装置C1は当該SCSI−READをストレージ装置S1に中継することなく、キャッシュ装置C1は折り返し当該データをPC1に対して返送する。
上記「PC1が取得すると予想されるデータ」は、「先読みパターンデータ」によって特定する。先読みパターンデータとは、キャッシュ装置C1内の記憶デバイスに保存されるデータであって、データ先読みを行う際にキャッシュ装置C1がストレージ装置S1に対して発行するSCSI−READの発行条件を記述したものである。
先読みパターンデータの形式例を図4に示す。図4において、1行目〜3行目はデータ先読み対象のLUを特定する情報である。1行目はデータ先読み対象LUが属するストレージのIPアドレスとTCPポート番号、2行目は当該LUが属するターゲット名、3行目は当該LUの論理ユニット番号LUNである。4行目以降は、3行目までに特定された論理ユニット番号LUNにおける、読み出し対象LBAを特定する情報であり、各行が1個のSCSI−READ[B,L]の発行に対応し、第1カラムは読み出し対象の先頭論理ブロックアドレス(=B)、第2カラムは読み出しブロック総数(=L)に対応する。
ただし、必要な情報が特定できる限り、先読みパターンデータの形式は図4のものに限られない。また、図4の1行目(IPアドレス、TCPポート番号)、2行目(ターゲット名)、3行目(LU)の情報は、先読みパターンデータに含まれる必要はなく、先読みパターンデータとは別に保持してもよい。
図4の先読みパターンデータによれば、キャッシュ装置C1は、IPアドレス192.168.1.1、ポート番号3260、ターゲット名iqn.com.hitachi−ntt−labsで特定されるターゲットとの間でiSCSIセッションを確立し、LU=0に対してSCSI−READを発行することによって、データ先読みを行う。図4によれば、SCSI−READ[0,2]が1番目に発行され、SCSI−READ[2,2]が2番目に発行されることとなる。
先読みパターンデータは、データ先読みの目的(PCの動作のうち、何を高速化させたいか)に応じて、システム管理者等が自由に作成することができる。例えば、特定のアプリケーションソフトウェアの起動を高速化するには、当該アプリケーションソフトウェアが保存されているLUとLBAがデータ先読み対象となるように、先読みパターンデータを作成する。
ここから以下では、PC(ハードディスクドライブを内蔵しない)でのOS起動を高速化するために、OS起動の際に必要なデータを先読みすることを想定して、先読みパターンデータの作成方法を詳述する。
先読みパターンデータを作成する最も簡便な方法は、実際にPC1の電源を投入して(必要ならばユーザ認証を行って)OSを起動させ、OSの起動が完了するまでの間に、PC1からキャッシュ装置C1に対して送信されるすべての(N個の)SCSI−READ[B,L](1≦i≦N)をキャプチャし、その内容[B,L](1≦i≦N)どおりに先読みパターンデータ(図4では4行目以降)を記述するというものである。
キャプチャの方法としては、PC1とキャッシュ装置C1との間のネットワークにパケットキャプチャ装置を設置し、通過するSCSI−READのパケット内容を解析して、[B,L](1≦i≦N)の値を抽出する方法がある。また、別の方法としては、通過するSCSI−READの内容を解析、[B,L](1≦i≦N)を記録する機能をキャッシュ装置自身が配備し、それを使用する方法がある。いずれを選択しても問題ない。
以上の方法で作成した先読みパターンデータを、そのままキャッシュ装置C1に保存してデータ先読みをさせた場合、PC1がOS起動に際して発行するn個のSCSI−READ[B,L](0≦i≦n)と、データ先読みによってキャッシュ装置C1がストレージ装置S1に対して発行するSCSI−READは、同一となる。このように、データ先読みにおいて、PC1が発行するSCSI−READを忠実に再現させるような先読みパターンデータの形式を、以後「形式1」と呼ぶこととする。
形式1の先読みパターンデータを使ってデータ先読みを行い、その後PC1でOSが起動すれば、PC1が発行するSCSI−READコマンドの読み出し対象データは、常にキャッシュ装置に存在することになる。そうすると、PC1はストレージ装置S1ではなくキャッシュ装置C1から必要なデータを取得することができるから、PC1におけるOS起動はより高速となる。
OSの起動に際しては、例えばマイクロソフト株式会社(商標)のOSであるWindows XP(商標)の場合、PCは200〜300MByte程度のデータを取得することがわかっている。そして、形式1による先読みパターンデータによって同程度サイズのデータを先読みすると、数十秒の時間を要することがわかっている。そのため、データ先読みの開始からPC1のOS起動開始までの時間が比較的短い場合は、データ先読みによるSCSI−READの発行が、PCからのSCSI−READ発行に間に合わないこともある。そうすると、結局PC1はストレージ装置S1からデータの取得を待たなければならないこととなるから、PC1におけるOS起動の高速化の効果が減退するという問題がある。
そこで、形式1におけるデータ先読みの冗長性を以下のような方法で排除し、データ先読みを高速化する。
PC1がOS起動に際して発行するSCSI−READ[B,L]を図示すると、一般的に図5のようになる。図5において、横軸はLBAであり、縦軸は何度目に発行されたSCSI−READであるかを表す。1本の線分は、1個のSCSI−READによる読み出し対象論理ブロックの範囲を表す。Bは線分(1回のSCSI−READコマンドによる読み出し範囲)の開始位置(先頭LBA)を表し、Lは線分の長さ(1回のSCSI−READコマンドにより読み出されるブロック総数)を表す。
図5の例では、計14個のSCSI−READが発行されているが、1〜3番目、4〜5番目、6〜8番目、9〜11番目、12〜14番目のSCSI−READコマンドは、それぞれ連続した論理ブロック領域を読み出している。
ここで、SCSIによるデータ取得手順を図6に示す。図6は、9ブロックのデータを2つのSCSI−READにより取得する場合(左)と、1つのSCSI−READで取得する場合(右)を比較している。SCSIによれば、SCSI−READを連続して発行するには、前に発行したSCSI−READにより要求したデータがData−Inによって返送された後でなければ、次のSCSI−READコマンドを発行することができない。そうすると、連続した論理ブロック(図6では9ブロック)のデータを図6(左)のように複数のSCSI−READに分割して(図6(左)では、1番目に3ブロック、2番目に6ブロック)読み出すよりも、図6(右)のように1回のSCSI−READですべてのブロックを読み出した方が、SCSI−READの発行回数も減少するから、より短時間で読み出しを完了することができる。
図5の場合であれば、1〜3番目、4〜5番目、6〜8番目、9〜11番目、12〜14番目のSCSI−READは、それぞれ1回のSCSI−READに置き換えればよい。そうすると、図7のように、形式1の先読みパターンデータを「形式2」に変換した先読みパターンデータによっても、同一のデータ先読み効果が得られる。
形式1におけるSCSI−READの発行回数が14回であるのに対し、形式2の先読みパターンデータでは5回である。その結果、SCSI−READの発行にともなって発生するネットワークレスポンス時間の累積時間を削減することができるから、ネットワーク利用効率が上昇し、データ先読みに必要な時間を削減することができる。データ先読みに必要な時間を削減することができれば、キャッシュヒット率を高めることができるから、PC1の動作性能は向上する。
形式2によるSCSI−READの発行条件を見てみると、3回目と5回目で同一の論理ブロック領域を読み出している。ところが、データ先読みにおいては、同一のデータを1度読み出してキャッシュすれば、再度読み出す必要はない。
また、形式2においては、2番目と4番目のSCSI−READによる読み出し対象は連続しているにもかかわらず、別個のSCSI−READを発行することになる。これは、形式1から形式2への変換においては、時間的に連続しているSCSI−READの読み出し対象が連続論理ブロックである場合のみに、それらを1回のSCSI−READに置換するからである。しかし、読み出し対象論理ブロックの連続性によるSCSI−READの置換対象は、時間的に連続して発行されているものに限定する必要はない。
そこで、以上のような冗長性を排除するために、形式1の先読みパターンデータを「形式3」に変換する。形式3への変換アルゴリズムは、図8に示した通りである。
形式3の先読みパターンデータでは、形式1において2回以上読み出し対象となったブロック(図7における[B,L],[B,L],[B,L])であっても、SCSI−READにより読み出される回数は1回のみとする。また、論理ブロックアドレスが連続した領域は、1回のみのSCSI−READによって読み出されるようにする。さらに、SCSI−READの発行順序は、読み出し対象論理ブロックアドレスの小さい順または大きい順(図7では小さい順)とする。
形式3の効果は2つある。まず、形式1におけるSCSI−READの発行回数が14回、形式2では5回であるのに対し、形式3の先読みパターンデータによればSCSI−READの発行回数を3回に削減することができる。その結果、データ先読みに必要な時間を、形式1や形式2と比較して削減することができる。
さらに、ストレージ装置S1が磁気ディスク装置であり、磁気ディスク上の中心から外周にかけて、あるいはその逆方向に論理ブロックアドレスが順番に分布している場合では、形式3に基づくデータ先読みに伴って磁気ヘッドが中心から外周またはその逆方向に滑らかに移動し、無駄な往復動作をすることがないから、ストレージ装置S1からデータを高速に取得できることが期待できる。
以上の2点より、形式1や2と比較してキャッシュヒット率をさらに高めることができるから、PC1の動作性能は向上する。
形式1(PC1におけるOS起動においてデータ読み出しそのまま)によるSCSI−READの発行条件を見てみると、論理ブロック[B,L]と[B,L]が、論理ブロック[B,L]、[B,L]、[B,L]よりも先に読み出されているにもかかわらず、形式3ではその順序が逆である。
そうすると、論理ブロック[B,L]、[B,L]、[B,L]のデータの読み出しが優先され、論理ブロック[B,L]、[B,L]のデータが必要になる時期に、当該データがキャッシュ装置C1に保存されていない事態が生じる恐れもある。その結果、SCSI−READがキャッシュ装置C1によってストレージ装置S1に中継され、ストレージ装置S1から比較的性能の低いネットワーク(WAN)を介してデータを取得することになるから、データ先読みの高速化の効果が減退する。
以上の問題を解決するには、形式3においてSCSI−READの発行順序のみを変更した、「形式4」の先読みパターンデータを使用する。形式1から形式4への変換アルゴリズムを図9に示す。
図9によれば、形式4におけるSCSI−READの発行回数は3回であり、その回数は形式3と変わらない。そのため、データ先読みに必要な時間は形式3と変わらない。しかし、PC1が実際に必要とするデータをより早期に先読みする点で、形式3と比較してキャッシュヒット率を改善することができる。その結果、PC1におけるOS起動をより高速化することができる。
形式2〜形式4の先読みパターンデータは、上述のアルゴリズムに基づき動作するプログラムによって形式1の先読みパターンデータを読み込み、それぞれの形式に変換、出力することによって得ることができる。
以上に説明した実施例は、先読みパターンデータの形式を変換することによって、データ先読みを高速化するものである。以下では、先読みパターンデータの形式は同一としつつ、データ先読みのためにPC1内イニシエータI1とストレージ装置S1内ターゲットT1との間に確立するiSCSIセッション数を増加し、複数のiSCSIセッションを使用してSCSI−READを発行することにより、データ先読みを高速化する原理および方法を詳述する。
iSCSIおよびSCSIによれば、SCSI−READを連続して発行する場合、SCSI−READによって要求したデータが返送されないと、次のSCSI−READを発行されないという制約は、コンピュータが、ユーザ操作によって、先に読み出されたデータに基づき、次の動作を決定する非決定的な条件に基づいているためである。本実施例のデータ先読み処理は、先読みパターンデータに基づく、ストレージ装置のアクセスであるので、複数のiSCSIセッションを確立し、SCSI−READを各セッションに振り分けて発行する。そうすると、当該制約の影響は最小限に抑えることができ、ネットワークの利用率が上昇する。その原理を図10に示す。
図10では、5個のSCSI−READを単一のiSCSIセッションで発行する場合(図10(左)参照)と、3つのiSCSIセッションに振り分けて発行する場合(図10(右)参照)を比較している。SCSI−READの振り分け方は、図10のようなラウンドロビン方式でもよいし、ランダム選択でもよい。
また、ストレージ装置へ、多重にリード要求を発行するインタフェースとして、複数のセッションを利用する他に、単一のセッションにおいて、SCSI2仕様以降に定められたCommand Queuingを使用しても、差し支えない。
以上の実施例は、PCにおけるOSの起動を高速化する場合を想定して詳述したが、OSの起動後に必要となるアプリケーションソフトウェアの起動も、本願発明を利用して高速化することができる。その方法を以下に詳述する。
先読みパターンデータを作成する最も簡便な方法として、実際にPC1の電源を投入して(必要ならばユーザ認証を行って)OSを起動させ、OSの起動が完了するまでの間に、PC1からキャッシュ装置C1に対して送信されるすべての(N個の)SCSI−READ[B,L](1≦i≦N)をキャプチャし、その内容[B,L](1≦i≦N)どおりに先読みパターンデータ(図4では4行目以降)を記述するという方法を説明ずみである。
ここで、OS起動が完了したことをもってSCSI−READ[B,L]のキャプチャを停止することなく、OS起動完了後、引き続き起動を高速化したいアプリケーションソフトウェアを起動させ、その起動完了後にキャプチャを停止し、そのキャプチャ内容[B,L]どおりに先読みパターンデータを作成する。そうすると、当該先読みパターンデータの対象に、当該アプリケーションソフトウェアの起動に必要なデータも含まれることとなるから、OSの起動だけではなく、当該アプリケーションソフトウェアの起動によって読み出されるデータもキャッシュ装置に前もって保存されている状態となる。その結果、当該アプリケーションソフトウェアの起動を高速化することができる。
また、先読みパターンデータの対象を、アプリケーションソフトウェアの起動に必要なデータのみとすることもできる。その場合、OSの起動は高速化できないが、当該アプリケーションソフトウェアの起動のみを高速化することができる。
次に、キャッシュ装置C1の内部構造(ソフトウェア構造)の例について、図11を用いて説明する。キャッシュ装置C1は、図11に示すように、iSCSIターゲットC101、キャッシュメモリ制御機能C102、キャッシュメモリ管理機能C103、先読みパターンデータ変換機能C104、iSCSIイニシエータC105をソフトウェアとして有し、記憶デバイスC106をハードウェアとして備える。記憶デバイスC106としては、メモリまたはハードディスクまたはその他の記憶手段を用いることができる。記憶デバイスC106は、キャッシュデータ格納領域C107、先読みパターンデータ格納領域C108を有する。キャッシュデータ格納領域C107、先読みパターンデータ格納領域C108はプログラムによって記憶デバイスC106内に作成される。
キャッシュメモリ制御機能C102は、図には示していないが、PCが発行するリード要求と同一の条件による先行リード要求を発行するための先読みパターンデータを先読みパターンデータ格納領域C108に格納する機能と、PCが特定の動作に必要なデータを取得するためにリード要求の発行を開始する前に、先読みパターンデータ格納領域C108内の先読みパターンデータの記述に従って先行リード要求を発行することにより、ストレージ装置S1からデータを取得して、当該データをキャッシュデータ格納領域C107内に一時的に記憶させる機能と、ストレージ装置S1との間で2以上のセッションを確立し、データ先読みのために発行される任意のリード要求は、当該2以上のセッションのいずれかを選択して発行する機能を備える。
先読みパターンデータ変換機能C104は、図には示していないが、PCが発行するリード要求において、時間的に連続して発行される複数のリード要求が読み出し対象とするブロック番地領域が連続している場合には、当該連続したブロック領域のすべてを読み出し対象とする1回の先行リード要求を発行するように変換した先読みパターンデータを先読みパターンデータ格納領域C108に格納する機能と、PCが発行するリード要求において、同一のブロック番地が複数のリード要求によって読み出される場合には、当該ブロック番地は1回の先行リード要求によって読み出され、かつ番地が連続する複数のブロックは、1回の先行リード要求によって読み出されるように変換した先読みパターンデータを先読みパターンデータ格納領域C108に格納する機能と、を備える。
図11に示すように、iSCSIターゲットC101、キャッシュメモリ制御機能C102、キャッシュメモリ管理機能C103、先読みパターンデータ変換機能C104はアプリケーションプログラムであり、iSCSIイニシエータはオペレーティングシステムが有する機能である。キャッシュ装置C1は、これらのプログラムをCPUが実行することにより、それぞれの機能を実現する手段を備える。なお、キャッシュ装置C1の内部構造(ソフトウェア構造)の一部または全部をハードウェアで構成しもよい。
図11において、iSCSIターゲットC101は、PC1〜3が持つiSCSIイニシエータ機能と通信し、PC1〜3との間でiSCSIコマンドやデータを送受信する機能を持つ。一方、iSCSIイニシエータC105は、ストレージ装置S1が持つiSCSIターゲット機能と通信し、ストレージ装置S1との間でiSCSIコマンドやデータを送受信する機能を持つ。
キャッシュメモリ制御機能C102は、iSCSIターゲットC101とiSCSIイニシエータC105(オペレーティングシステム内)との間の入出力制御を仲介し、まずは従来技術に係る機能を提供する。
すなわち、PC1からのSCSI−READをiSCSIターゲットC101経由で受信すると、キャッシュメモリ管理機能C103を介して、当該SCSI−READが読み出し対象とするデータがキャッシュデータ格納領域C107内に存在するか否かを検索する。検索の結果、キャッシュデータが存在しない(ミスヒット)と判断したならば、当該SCSI−READを、iSCSIイニシエータC105を介してストレージ装置S1に送信する。逆に、検索の結果、キャッシュデータが存在している(ヒット)と判断したならば、対象データを、キャッシュメモリ管理機能C103を介してキャッシュデータ格納領域C107から取得し、iSCSIターゲットC101を介してPC1に返送する。また、PC1が送信したSCSI−READがキャッシュミスヒットによりストレージ装置S1に到達した結果、読み出し対象のデータがストレージ装置S1からData−Inによって返送されてきた時には、当該Data−InをPC1に対して中継するとともに、当該Data−Inに搭載されていたデータをキャッシュメモリ管理機能C103を介してキャッシュデータ格納領域C107に保存する。
キャッシュメモリ制御機能C102は、キャプチャされたSCSI−READのとおりの先読みパターンデータを、キャッシュメモリ管理機能C103を介して、先読みパターンデータ格納領域C108に例えば図4に示すように書き込む。この書き込みは、前回、PC1が起動した時、あるいは専らキャプチャを目的としてPC1を試験起動した時に行われる。OSが起動開始してからOSが起動完了するまでに、SCSI−READが数千〜数万回発行されるので、その全てをキャプチャし、先読みパターンデータとして、先読みパターンデータ格納領域C108に格納する。
さらに、キャッシュメモリ制御機能C102は、従来技術に係るデータ先読み機能、および多重セッション確立機能も提供する。すなわち、キャッシュメモリ制御機能C102は、先読みパターン格納領域C108に保存された先読みパターンデータを読み込み、iSCSIイニシエータC105とストレージ装置S1との間で多重のiSCSIセッションを確立する。そして、当該iSCSIセッションを介して、SCSI−READを先読みパターンデータの記述に従ってストレージ装置S1に発行することにより、ストレージ装置S1からデータを取得し、当該データをキャッシュメモリ管理機能C103を介してキャッシュデータ格納領域C107に保存する。多重セッション確立機能を用いない場合は、iSCSIイニシエータC105とストレージ装置S1との間で一つのiSCSIセッションを確立し、同様な処理を行う。
次に、先読みパターンデータ変換機能C104について説明する。先読みパターン変換機能C104は、先読みパターンデータ格納領域C108に保存された先読みパターンデータを読み込み、各形式に変換し、変換後の先読みパターンデータを先読みパターンデータ格納領域C108に書き戻す。
次に、キャッシュ装置C1の内部構造(ハードウェア構造)の例について、図12を用いて説明する。
図12において、ハードウェアは、CPU(Central Processing Unit)C111、メモリC112、ハードディスク(HDD:Hard Disk Unit)C113、NIC(Network Interface card)C114、そして各部を接続するシステムバスC115から構成される。
CPU(C111)は、従来技術に係る処理、および本願発明の実施例に詳述した処理を実現するために必要な、一切の演算処理を行う。
図11におけるオペレーティングシステム、iSCSIターゲット、iSCSIイニシエータ、従来技術に係るプログラム、本願発明に係る一切のプログラムは、メモリC112またはハードディスクC113に格納することができる。そして、これらのプログラムは適宜メモリC112にロードされて実行される(メモリC112に格納されていたプログラムは、メモリC112内の別の領域にロードされて実行される)。NIC(C114)は、IPネットワークN1と接続され、PC1〜PC3およびストレージ装置S1との間でIPによる通信を行う。
図11における記憶デバイスはC106、メモリC112またはハードディスクC113を割り当てることができる。メモリC112を割り当てた場合、キャッシュデータの書き込みまたは読み出しが高速に行うことができる一方で、単位容量あたりの価格が高いという欠点がある。一方、ハードディスクC113に割り当てた場合、単位容量あたりの価格が安い一方で、データの書き込みまたは読み出しが高速に行えないという欠点がある。
以上に説明したハードウェア構造は、当該構造の要件を満たす通常のパーソナルコンピュータ、ワークステーション、サーバ等などで提供することもできる。
以上、本発明者によってなされた発明を、前記実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
ネットワークの伝送遅延時間や帯域、ストレージアクセスの待ち時間が、ネットワークレスポンス時間に影響を与える様子を示した図である。 本発明の実施例のネットワークキャッシュ装置を含む全体のシステム構成例を示した図である。 キャッシュ装置によるiSCSIオペレーション等の中継方法を示した図である。 先読みパターンデータの形式例を示した図である。 PCがOS起動する際に、読み出される論理ブロックのアドレスを示した図である。 SCSI−READによるデータ取得手順を示した図である。 先読みパターンデータの形式を形式1から形式2に変更するアルゴリズムを示した図である。 先読みパターンデータの形式を形式1から形式3に変更するアルゴリズムを示した図である。 先読みパターンデータの形式を形式1から形式4に変更するアルゴリズムを示した図である。 複数のiSCSIセッションを使用したSCSI−READの発行手順を示した図である。 キャッシュ装置のソフトウェア構造の一例を示した図である。 キャッシュ装置のハードウェア構造の一例を示した図である。
符号の説明
PC1〜PC3…パーソナルコンピュータ、p1〜p3…PC1〜PC3に割り当てられているIPアドレス、I1〜I3…イニシエータ、C1…ネットワークキャッシュ装置、c1…ネットワークキャシュ装置C1に割り当てられているIPアドレス、N1…ネットワーク、S1…ストレージ装置、s1…ストレージ装置S1に割り当てられているIPアドレス、LU1〜LU3…論理ユニット、lun1〜lun…論理ユニットU1〜LU3に割り当てられている論理ユニット番号、C101…iSCSIターゲット、C102…キャッシュメモリ制御機能、C103…キャッシュメモリ管理機能、C104…先読みパターンデータ変換機能、C105…iSCSIイニシエータ、C106記憶デバイス、C107…キャッシュデータ格納領域、C108…先読みパターンデータ格納領域、C111…CPU、C112…メモリ、C113…HDD、C114…NIC、C115…システムバス

Claims (7)

  1. コンピュータと、前記コンピュータの動作に必要なデータを格納した記憶装置との間の通信を仲介し、前記コンピュータが前記記憶装置から取得したデータまたは前記コンピュータが前記記憶装置に保存したデータをキャッシュデータ格納領域内に一時的に記憶し、前記コンピュータからリード要求されたデータが前記キャッシュデータ格納領域内にあれば、前記記憶装置にアクセスすることなく当該データを前記コンピュータに返送するネットワークキャッシュ装置であって、
    先読みパターンデータを格納する先読みパターンデータ格納領域を有する記憶デバイスと、
    前記コンピュータが発行するリード要求と同一の条件による先行リード要求を発行するための先読みパターンデータを前記先読みパターンデータ格納領域に格納する手段と、
    前記コンピュータが特定の動作に必要なデータを取得するためにリード要求の発行を開始する前に、前記先読みパターンデータの記述に従って先行リード要求を発行することにより、前記記憶装置からデータを取得して、当該データを前記キャッシュデータ格納領域内に一時的に記憶させる手段と、
    を備えることを特徴とするネットワークキャッシュ装置。
  2. コンピュータと、前記コンピュータの動作に必要なデータを格納した記憶装置との間の通信を仲介し、前記コンピュータが前記記憶装置から取得したデータまたは前記コンピュータが前記記憶装置に保存したデータをキャッシュデータ格納領域内に一時的に記憶し、前記コンピュータからリード要求されたデータが前記キャッシュデータ格納領域内にあれば、前記記憶装置にアクセスすることなく当該データを前記コンピュータに返送するネットワークキャッシュ装置であって、
    先読みパターンデータを格納する先読みパターンデータ格納領域を有する記憶デバイスと、
    前記コンピュータが発行するリード要求において、時間的に連続して発行される複数のリード要求が読み出し対象とするブロック番地領域が連続している場合には、当該連続したブロック領域のすべてを読み出し対象とする1回の先行リード要求を発行するように変換した先読みパターンデータを前記先読みパターンデータ格納領域に格納する手段と、
    前記コンピュータが特定の動作に必要なデータを取得するためにリード要求の発行を開始する前に、前記先読みパターンデータの記述に従って先行リード要求を発行することにより、前記記憶装置からデータを取得して、当該データを前記キャッシュデータ格納領域内に一時的に記憶させる手段と、
    を備えることを特徴とするネットワークキャッシュ装置。
  3. コンピュータと、前記コンピュータの動作に必要なデータを格納した記憶装置との間の通信を仲介し、前記コンピュータが前記記憶装置から取得したデータまたは前記コンピュータが前記記憶装置に保存したデータをキャッシュデータ格納領域内に一時的に記憶し、前記コンピュータからリード要求されたデータが前記キャッシュデータ格納領域内にあれば、前記記憶装置にアクセスすることなく当該データを前記コンピュータに返送するネットワークキャッシュ装置であって、
    先読みパターンデータを格納する先読みパターンデータ格納領域を有する記憶デバイスと、
    前記コンピュータが発行するリード要求において、同一のブロック番地が複数のリード要求によって読み出される場合には、当該ブロック番地は1回の先行リード要求によって読み出され、かつ番地が連続する複数のブロックは、1回の先行リード要求によって読み出されるように変換した先読みパターンデータを前記先読みパターンデータ格納領域に格納する手段と、
    前記コンピュータが特定の動作に必要なデータを取得するためにリード要求の発行を開始する前に、前記先読みパターンデータの記述に従って先行リード要求を発行することにより、前記記憶装置からデータを取得して、当該データを前記キャッシュデータ格納領域内に一時的に記憶させる手段と、
    を備えることを特徴とするネットワークキャッシュ装置。
  4. 請求項3に記載のネットワークキャッシュ装置であって、
    前記格納する手段は、リード要求が、当該リード要求が対象とする読み出しブロックのブロック番地の昇順または降順で発行されるように変換して格納することを特徴とするネットワークキャッシュ装置。
  5. 請求項3に記載のネットワークキャッシュ装置であって、
    前記格納する手段は、前記コンピュータによる、より早期の読み出し対象となるブロックを含むリード要求が、より早期に発行されるように変換して格納することを特徴とするネットワークキャッシュ装置。
  6. 請求項1ないし5のうちいずれか1項に記載のネットワークキャッシュ装置であって、
    前記記憶装置との間で2以上のセッションを確立し、データ先読みのために発行される任意のリード要求は、当該2以上のセッションのいずれかを選択して発行する手段を備えることを特徴とするネットワークキャッシュ装置。
  7. コンピュータと、前記コンピュータの動作に必要なデータを格納した記憶装置との間の通信を仲介し、前記コンピュータが前記記憶装置から取得したデータまたは前記コンピュータが前記記憶装置に保存したデータを記憶デバイスのキャッシュデータ格納領域内に一時的に記憶し、前記コンピュータからリード要求されたデータが前記キャッシュデータ格納領域内にあれば、前記記憶装置にアクセスすることなく当該データを前記コンピュータに返送するネットワークキャッシュ装置のためのネットワークキャッシュプログラムであって、
    記憶デバイスに先読みパターンデータを格納する先読みパターンデータ格納領域を作成する手段および請求項1ないし6に記載の手段としてコンピュータを機能させるためのネットワークキャッシュプログラム。
JP2005339005A 2005-11-24 2005-11-24 ネットワークキャッシュ装置およびプログラム Expired - Fee Related JP4606998B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005339005A JP4606998B2 (ja) 2005-11-24 2005-11-24 ネットワークキャッシュ装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005339005A JP4606998B2 (ja) 2005-11-24 2005-11-24 ネットワークキャッシュ装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2007148554A true JP2007148554A (ja) 2007-06-14
JP4606998B2 JP4606998B2 (ja) 2011-01-05

Family

ID=38209933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005339005A Expired - Fee Related JP4606998B2 (ja) 2005-11-24 2005-11-24 ネットワークキャッシュ装置およびプログラム

Country Status (1)

Country Link
JP (1) JP4606998B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010176306A (ja) * 2009-01-28 2010-08-12 Toshiba Corp 情報処理装置およびデータ記憶装置
JP2013077161A (ja) * 2011-09-30 2013-04-25 Toshiba Corp 情報処理装置、ハイブリッド記憶装置、およびキャッシュ方法
US9239792B2 (en) 2013-03-07 2016-01-19 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Sharing cache in a computing system
JP2021504867A (ja) * 2017-11-28 2021-02-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation テープ・ドライブ上で模倣読み取りを使用する高速な位置特定

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998026352A1 (fr) * 1996-12-13 1998-06-18 Hitachi, Ltd. Procede de commande de prelecture de fichiers dans un systeme d'ordinateur
JP2001014111A (ja) * 1999-06-29 2001-01-19 Hitachi Ltd 回転形記憶装置の制御方法
JP2001154811A (ja) * 1999-11-30 2001-06-08 Toshiba Corp 計算機システム
JP2003030967A (ja) * 2001-07-18 2003-01-31 Sony Corp 記録装置および方法、記録媒体、並びにプログラム
JP2003085118A (ja) * 2001-09-13 2003-03-20 Fujitsu Ltd 周辺装置のパラメータ設定方法、及び、周辺装置
JP2004078755A (ja) * 2002-08-21 2004-03-11 Hitachi Ltd 情報処理システム
JP2004118482A (ja) * 2002-09-26 2004-04-15 Toshiba Corp 記憶装置、および、キャッシュ方法
JP2004164824A (ja) * 2002-10-16 2004-06-10 Microsoft Corp レンダリング中のメディアプレイヤのメモリの最適化
JP2004310630A (ja) * 2003-04-10 2004-11-04 Mitsubishi Electric Corp キャッシュ制御装置
JP2005011110A (ja) * 2003-06-19 2005-01-13 Hitachi Ltd 情報処理装置、情報処理装置の制御方法、プログラム、及び情報処理システム

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998026352A1 (fr) * 1996-12-13 1998-06-18 Hitachi, Ltd. Procede de commande de prelecture de fichiers dans un systeme d'ordinateur
JP2001014111A (ja) * 1999-06-29 2001-01-19 Hitachi Ltd 回転形記憶装置の制御方法
JP2001154811A (ja) * 1999-11-30 2001-06-08 Toshiba Corp 計算機システム
JP2003030967A (ja) * 2001-07-18 2003-01-31 Sony Corp 記録装置および方法、記録媒体、並びにプログラム
JP2003085118A (ja) * 2001-09-13 2003-03-20 Fujitsu Ltd 周辺装置のパラメータ設定方法、及び、周辺装置
JP2004078755A (ja) * 2002-08-21 2004-03-11 Hitachi Ltd 情報処理システム
JP2004118482A (ja) * 2002-09-26 2004-04-15 Toshiba Corp 記憶装置、および、キャッシュ方法
JP2004164824A (ja) * 2002-10-16 2004-06-10 Microsoft Corp レンダリング中のメディアプレイヤのメモリの最適化
JP2004310630A (ja) * 2003-04-10 2004-11-04 Mitsubishi Electric Corp キャッシュ制御装置
JP2005011110A (ja) * 2003-06-19 2005-01-13 Hitachi Ltd 情報処理装置、情報処理装置の制御方法、プログラム、及び情報処理システム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010176306A (ja) * 2009-01-28 2010-08-12 Toshiba Corp 情報処理装置およびデータ記憶装置
JP2013077161A (ja) * 2011-09-30 2013-04-25 Toshiba Corp 情報処理装置、ハイブリッド記憶装置、およびキャッシュ方法
US9239792B2 (en) 2013-03-07 2016-01-19 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Sharing cache in a computing system
US9256539B2 (en) 2013-03-07 2016-02-09 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Sharing cache in a computing system
JP2021504867A (ja) * 2017-11-28 2021-02-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation テープ・ドライブ上で模倣読み取りを使用する高速な位置特定
JP7116383B2 (ja) 2017-11-28 2022-08-10 インターナショナル・ビジネス・マシーンズ・コーポレーション テープ・ドライブ上で模倣読み取りを使用する高速な位置特定

Also Published As

Publication number Publication date
JP4606998B2 (ja) 2011-01-05

Similar Documents

Publication Publication Date Title
US11311801B2 (en) Methods for using high-speed data communication fabric to enable cross-system command buffer reading for data retrieval in cloud gaming
JP4186602B2 (ja) ジャーナルログを利用した更新データ書込方法
US8959307B1 (en) Reduced latency memory read transactions in storage devices
CN101419535B (zh) 虚拟机的分布式虚拟磁盘系统
WO2018005613A1 (en) Systems and methods for efficient distribution of stored data objects
US8776158B1 (en) Asynchronous shifting windows caching for forward and backward video streaming
US11623140B2 (en) High-speed save data storage for cloud gaming
JP5611889B2 (ja) データ転送装置、データ送信システムおよびデータ送信方法
CN111212141A (zh) 一种共享存储系统
JP4606998B2 (ja) ネットワークキャッシュ装置およびプログラム
JP4053842B2 (ja) 計算機システム
US7725654B2 (en) Affecting a caching algorithm used by a cache of storage system
US8549274B2 (en) Distributive cache accessing device and method for accelerating to boot remote diskless computers
CN109254958A (zh) 分布式数据读写方法、设备及系统
EP4310690A1 (en) Systems and methods for data prefetching for low latency data read from a remote server
CN116700604B (zh) 一种基于sas hba的数据传输方法
Geoffray Opiom: Off-processor I/O with myrinet
JP6529678B2 (ja) アプリケーションの実行を加速する方法及びデバイス
US20040260670A1 (en) Network file server, information processing apparatus, program and information recording medium
JP2015184883A (ja) 計算機システム
Barve et al. Competitive parallel disk prefetching and buffer management
JP5494363B2 (ja) ファイル管理プログラム,ファイル管理方法およびファイル管理装置
JP2009070359A (ja) ハードディスクレス型コンピュータの起動効率を向上可能な広域通信網起動システム
JP3979183B2 (ja) データ共有システム及びディスク装置へのアクセス方法並びにプログラム
JP3981057B2 (ja) ファイルシステム制御方法およびプログラム記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100805

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: 20101005

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: 20101006

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131015

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees