JP2009110407A - キャッシュ方法及びキャッシュ装置 - Google Patents

キャッシュ方法及びキャッシュ装置 Download PDF

Info

Publication number
JP2009110407A
JP2009110407A JP2007283724A JP2007283724A JP2009110407A JP 2009110407 A JP2009110407 A JP 2009110407A JP 2007283724 A JP2007283724 A JP 2007283724A JP 2007283724 A JP2007283724 A JP 2007283724A JP 2009110407 A JP2009110407 A JP 2009110407A
Authority
JP
Japan
Prior art keywords
cache
data
identifier
index
storage means
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
JP2007283724A
Other languages
English (en)
Other versions
JP4607937B2 (ja
Inventor
Makoto Obara
誠 小原
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2007283724A priority Critical patent/JP4607937B2/ja
Publication of JP2009110407A publication Critical patent/JP2009110407A/ja
Application granted granted Critical
Publication of JP4607937B2 publication Critical patent/JP4607937B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ユーザ毎に個別に設定することなく、全てのユーザが利用できるキャッシュデータを設定することを可能とする。
【解決手段】中継部31は、ストレージ装置50に格納されるデータ及び当該データを示すインデックスを入力する。識別子生成部33は、中継部31によって入力されたデータ内容に対応するハッシュ値を生成する。キャッシュ管理部32は、識別子生成部33によって生成されたハッシュ値がキャッシュデータテーブル23に保持されているか否かを判定する。キャッシュ管理部32は、識別子生成部33によって生成されたハッシュ値がキャッシュデータテーブル23に保持されていると判定された場合、中継部31によって入力されたインデックスに対応付けて当該ハッシュ値をキャッシュインデックステーブル24に登録する。
【選択図】 図2

Description

本発明は、ストレージ装置及びクライアント装置間で転送されるデータをキャッシュするキャッシュ方法及びキャッシュ装置に関する。
近年、例えば企業や官公庁におけるクライアントPC(以下、クライアント装置と表記)からの情報漏洩が問題となっており、当該クライアント装置から情報の持ち出しをさせないようにするための方法の1つとして、シンクライアントシステムが注目されている。
シンクライアントシステムにおいては、例えばクライアント装置には最低限の機能しか持たせず、当該クライアント装置によって利用されるデータ(アプリケーションソフトまたはファイル等)は情報漏洩のおそれが少ないサーバルーム等に配置されたストレージ装置に格納される。このような構成とすることで、クライアント装置からの情報漏洩を防止することができる。
ところで、シンクライアントシステムは、その実現方法からいくつかの種類に分類できる。その実現方法の1つに、クライアント装置及びストレージ装置間でNFS(Network File System)、CIFS(Common Internet File System)またはiSCSI(Internet Small Computer System Interface)等の通信プロトコルを利用することで、当該クライアント装置が当該ストレージ装置から直接OS(Operation System)をブートするというネットワークブート型シンクライアントシステムがある。
このネットワークブート型シンクライアントシステムにおいては、例えば多数のクライアント装置が一斉にネットワークブートを行った場合、ストレージ装置へのアクセスが集中するためブート性能が低下することがある。また、ストレージ装置とクライアント装置との間が例えばWAN(Wide Area Network)で接続されているようなネットワークブート型シンクライアントシステムにおいては、当該WANは例えばLAN(Local Area Network)と比較して帯域が細く遅延が大きい回線であるため、その回線速度の遅さが課題となり当該システムの導入は難しい。
そこで、例えばWWW(World Wide Web)の世界におけるプロシキ(Proxy)のように、ストレージ装置とクライアント装置との間に中継装置を導入し、当該中継装置上でキャッシュを行うことによりストレージ装置への負荷を分散させることで性能を向上させる技術(以下、先行技術と表記)が開示されている(例えば、特許文献1を参照)。
しかしながら、上記した先行技術においては、例えば中継装置上でキャッシュされたデータの漏洩(キャッシュからの情報漏洩)を防止する必要がある。
このキャッシュからの情報漏洩に対する対策としては、例えば中継装置上においてキャッシュされるデータを、漏洩しても問題のないデータ、例えばOSのファイルまたはアプリケーションプログラムファイル等に限定するということが考えられる。
これを簡単に実現するためには、例えば漏洩しても問題がなく、かつ、キャッシュの効果が得られるようなデータ(つまり、キャッシュ可能なデータ)をシステム管理者が予め選別し、当該データを中継装置にキャッシュとして予め登録(設定)しておく方法(以下、第1の方法と表記)が考えられる。また、別の方法として、例えばストレージ装置に格納されているデータの各々にキャッシュの許可/不許可を設定しておくという方法(以下、第2の方法と表記)が考えられる。
特開2005−149334号公報
上記した第1及び第2の方法のようにキャッシュ可能なデータ(キャッシュデータ)を予め設定しておく場合、例えばユーザ(あるいはクライアント装置)毎にボリュームイメージをストレージ装置内に用意して運用するようなネットワークブート型シンクライアントシステムにおいては、そのキャッシュデータについても例えばユーザ毎に個別に設定(用意)する必要がある。
この場合、上記した第1の方法によりユーザ毎に個別にキャッシュデータを登録する作業は、システム管理者にとっては大きな負担となる。また、上記した第2の方法の場合も、同様に、キャッシュの許可/不許可を設定する作業はシステム管理者にとっては大きな負担となる。
本発明の目的は、ユーザ毎に個別に設定することなく、全てのユーザが利用できるキャッシュデータを設定することが可能なキャッシュ方法及びキャッシュ装置を提供することにある。
本発明の1つの態様によれば、データ格納手段に格納されているデータを予めキャッシュするキャッシュ格納手段と、前記キャッシュ格納手段にキャッシュされたデータに対応付けて当該キャッシュデータの内容に対応する識別子を予め保持するキャッシュデータテーブルと、キャッシュインデックステーブルとを備えるキャッシュ装置に適用されるキャッシュ方法であって、前記データ格納手段に格納されるデータ及び当該データを示すインデックスを入力するステップと、前記入力されたデータの内容に対応する識別子を生成するステップと、前記生成された識別子が前記キャッシュデータテーブルに保持されているかを判定するステップと、前記生成された識別子が保持されていると判定された場合、前記入力されたインデックするに対応付けて当該識別子を前記キャッシュインデックステーブルに登録するステップとを具備するキャッシュ方法が提供される。
本発明によれば、ユーザ毎に個別に設定することなく、全てのユーザが利用できるキャッシュデータを設定することを可能とする。
以下、図面を参照して、本発明の各実施形態について説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態に係る中継装置(キャッシュ装置)のハードウェア構成を示すブロック図である。図1に示すように、コンピュータ10は、例えばハードディスクドライブ(HDD)のような外部記憶装置20と接続されている。この外部記憶装置20は、コンピュータ10によって実行されるプログラム21を格納する。コンピュータ10及び外部記憶装置20は、中継装置30を構成する。
図2は、本実施形態に係る中継装置30の主として機能構成を示すブロック図である。中継装置30は、クライアント装置40及びストレージ装置50と通信可能に接続されている。中継装置30とクライアント装置40との間では、例えばiSCSI(Internet Small Computer System Interface)による通信が実行される。中継装置30とストレージ装置50との間についても同様である。
この中継装置30、クライアント装置40及びストレージ装置50は、例えばネットワークブート型シンクライアントシステムを構成する。
クライアント装置40は、例えばストレージ装置50に対してアクセスする装置である。また、クライアント装置40は、例えばiSCSI(SCSI)でのイニシエータ(Initiator)としての機能を有する。なお、ストレージ装置50に対してアクセスするクライアント装置は、複数存在する。図2においては、便宜的に、クライアント装置40以外のクライアント装置については省略されている。上記したネットワークブート型シンクライアントシステムを構成するクライアント装置40を含む複数のクライアント装置のオペレーティングシステム(OS:Operating System)またはアプリケーションプログラムの環境は統一されているものとする。
ストレージ装置50は、各種データを格納するディスクボリュームを備える。ストレージ装置50は、クライアント装置40に対して当該ストレージ装置50のディスクボリュームへのアクセスを提供する。ストレージ装置50は、例えばiSCSI(SCSI)でのターゲット(Target)としての機能を有する。なお、ストレージ装置50に備えられているディスクボリュームは、例えばクライアント装置40(を利用するユーザ)毎に用意されている。つまり、クライアント装置40は、ストレージ装置50内に備えられている自己のディスクボリュームに対してアクセスすることができる。
中継装置30は、例えばクライアント装置40及びストレージ装置50の通信を中継する。中継装置30は、例えばユーザの操作に応じて、設定モードまたは運用モードのいずれかの動作モードが設定される。中継装置30では、設定された動作モードに応じた処理が実行される。設定モードが設定されている場合には、中継装置30は、キャッシュデータの設定(登録)処理を行う。一方、運用モードが設定されている場合には、中継装置30は、設定モード時に設定されたキャッシュデータを利用する処理を実行する。この中継装置30に設定される動作モード(設定モード及び運用モード)は、例えば当該中継装置30の管理者等の操作に応じて切り替えられる。また、この切り替えを、中継する全ての、または任意のiSCSIセッションに対して実行したり、ある期間だけ指定した動作モードで動作するようにすることも可能である。なお、設定モードまたは運用モードが設定されている際の中継装置30の各処理の詳細については後述する。
クライアント装置40からは、中継装置30のクライアント装置40側インタフェイスを指定してストレージ装置50への接続を試みる。それを受け付けた中継装置30では、ストレージ装置50側インタフェイスからストレージ装置50に対して接続を行う。これにより、クライアント装置40とストレージ装置50間の接続が確立される。
なお、クライアント装置40側/ストレージ装置50側インタフェイスは物理的に1つのインタフェイスであってもよい。例えばiSCSIであれば、TCP/IPのIPアドレスやポート番号で別インタフェイスであることが識別可能であれば十分である。
中継装置30は、中継部31、キャッシュ管理部32及び識別子生成部33を含む。本実施形態において、中継部31、キャッシュ管理部32及び識別子生成部33は、図1に示すコンピュータ10が外部記憶装置20に格納されているプログラム21を実行することにより実現されるものとする。このプログラム21は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム21が、例えばネットワークを介してコンピュータ10にダウンロードされても構わない。
また、中継装置30は、キャッシュ格納部22、キャッシュデータテーブル23及びキャッシュインデックステーブル24を含む。本実施形態において、キャッシュ格納部22、キャッシュデータテーブル23及びキャッシュインデックステーブル24は、例えば外部記憶装置20(不揮発性の記憶領域)に格納される。
中継部31は、例えばクライアント装置40及びストレージ装置50間でiSCSI−PDUを中継する。このiSCSI−PDUが、データ転送に関わるもの(READ&SCSI DATAIN/WRITE&DATAOUT)であれば、キャッシュ管理部32を通してキャッシュへのアクセスが実行される。一方、このiSCSI−PDUがデータ転送に関わらないものであれば、当該PDUは、そのまま相手先に対して中継部31により転送される。
ここで、例えばクライアント装置40がストレージ装置50からデータの読み込み(リード)を行う場合を想定する。この場合、クライアント装置40は、リード要求(読み込み要求)を中継装置30に送信する。このリード要求には、例えば読み込み(リード)の対象となるデータ(読み込みデータ)を示すインデックスが含まれる。インデックスは、例えば読み込みデータのファイル名または当該読み込みデータが格納されているストレージ装置50内のアドレス等を含む。中継部31は、クライアント装置40によって送信されたリード要求を入力する。中継部31は、入力されたリード要求をストレージ装置50に転送する。これにより、中継部31は、転送されたリード要求に含まれるインデックスによって示される読み込みデータをストレージ装置50から入力する(読み込む)。
一方、例えばクライアント装置40がストレージ装置50に対してデータの書き込み(ライト)を行う場合を想定する。この場合、クライアント装置40は、ライト要求(書き込み要求)を中継装置30に送信する。このライト要求には、例えば書き込み(ライト)の対象となるデータ(書き込みデータ)及び当該書き込みデータを示すインデックスが含まれる。インデックスは、例えば書き込みデータのファイル名又は当該書き込みデータの書き込み先であるストレージ装置50内のアドレス等を含む。中継部31は、クライアント装置40によって送信されたライト要求を入力する。中継部31は、入力されたライト要求をストレージ装置50に転送する。これにより、ストレージ装置50に書き込みデータが書き込まれる。
キャッシュ管理部32は、例えば読み込みデータまたは書き込みデータ(以下、対象データと表記)に対するキャッシュ制御を実行する。
上記した設定モードが中継装置30に対して設定されている場合には、キャッシュ管理部32は、対象データをキャッシュデータとしてキャッシュ格納部22にキャッシュ(設定)する。このキャッシュ格納部22は、例えばストレージ装置50に格納されているデータをキャッシュするために用いられる。
また、キャッシュ管理部32は、キャッシュ格納部22にキャッシュされたデータ(キャッシュデータ)の内容に対応する識別子を、当該データに対応付けてキャッシュデータテーブル23に登録(設定)する。
なお、設定モード時においてキャッシュ格納部22及びキャッシュデータテーブル23に設定されるキャッシュデータは、例えばOSのファイルまたはアプリケーションプログラムファイルのような漏洩しても問題がないようなデータに限定される。
一方、運用モードが中継装置30に対して設定されている場合には、キャッシュ管理部32は、対象データの内容に対応する識別子がキャッシュデータテーブル23に保持されているか否かを判定する。キャッシュ管理部32は、対象データの内容に対応する識別子がキャッシュデータテーブル23に保持されている場合には、当該対象データを示すインデックスに対応付けて当該識別子をキャッシュインデックステーブル24に登録する処理を実行する。また、キャッシュ管理部32は、対象データの内容に対応する識別子がキャッシュデータテーブル23に保持されていない場合には、当該対象データを示すインデックスに対応付けてキャッシュインデックステーブル24に保持されている識別子を削除(無効化)する。
また、運用モードが中継装置30に対して設定されている場合、キャッシュ管理部32は、中継部31によって入力されたリード要求に含まれるインデックスに対応付けてキャッシュインデックステーブル24に識別子が保持されているか否かを判定する。キャッシュ管理部32は、識別子が保持されていると判定された場合、当該識別子がキャッシュデータテーブル23に保持されているか否かを判定する。これにより、キャッシュ管理部32は、例えばクライアント装置40からリード要求が送信された(つまり、中継部31によってリード要求が入力された)場合に、キャッシュヒット判定処理を実行する。キャッシュ管理部32は、キャッシュデータテーブル23に識別子が保持されていると判定された場合、キャッシュヒットと判定する。この場合、キャッシュ管理部32は、キャッシュデータテーブル23によって当該識別子に対応付けられているデータを、キャッシュ格納部22から取得する。キャッシュ管理部31は、取得されたデータを、リード要求に対する応答として中継部31を介してクライアント装置40に送信する。
なお、キャッシュ管理部32は、例えばユーザによって指定されたキャッシュデータをキャッシュ格納部22から削除(無効化)する機能を有する。また、キャッシュ管理部32は、ユーザによって指定された識別子をキャッシュデータテーブル23及びキャッシュインデックステーブル24から削除する機能を有する。
識別子生成部33は、キャッシュ管理部32から例えば対象データを受け取る。識別子生成部33は、受け取られた例えば対象データの内容に対応する識別子としてハッシュ値を生成する。このとき、識別子生成部33は、識別子の生成に例えばMD5またはSHA1のような予め定められたハッシュ関数を用いてハッシュ値を生成する。識別子生成部33によって生成されたハッシュ値は、キャッシュ管理部32によって例えばキャッシュデータテーブル23及びキャッシュインデックステーブル24に登録される。
上記したキャッシュデータテーブル23には、例えばキャッシュ格納部22にキャッシュされたキャッシュデータに対応付けて当該キャッシュデータの内容に対応する識別子(ハッシュ値)が保持される。
また、キャッシュインデックステーブル24には、ストレージ装置50に格納されているデータを示すインデックスに対応付けて当該データの内容に対応するハッシュ値が保持される。以下では、例えばデータが読み込まれる、または書き込まれるディスクボリュームのシリアル番号及び論理ブロックアドレス(LBA:Logical Block Address)の組合せをインデックスとする。シリアル番号は、ストレージ装置30内にあるディスクボリュームを識別するための番号であり、ストレージ装置30に対して例えばCDB(Command Descriptor Block)を発行することで取得される。また、iSCSIの場合は、iSCSI−InitiatorName及びLUN(Logical Unit Number)の組をシリアル番号として利用することも可能であり、様々な実現方法がある。
なお、キャッシュインデックステーブル24は、ストレージ装置50内に備えられているディスクボリューム毎、つまり、当該ディスクボリュームにアクセス可能なクライアント装置40(を利用するユーザ)毎に用意されている。つまり、ストレージ装置50内に備えられているディスクボリュームの各々に対応するキャッシュインデックステーブル24が存在する。また、例えばストレージ装置50内に新たにディスクボリュームが作成された場合には、当該作成されたディスクボリュームに対応するキャッシュインデックステーブル24が作成される。
また、キャッシュデータテーブル23及びキャッシュインデックステーブル24に登録されるハッシュ値は、例えば論理ブロックアドレスのaセクタ(512バイトの倍数)単位のデータのハッシュ値である。以下では、便宜的に1セクタ(512バイト)単位であるものとする。
また、本実施形態ではiSCSIによるブロック型転送プロトコルを例として、キャッシュデータテーブル113及びキャッシュインデックステーブル114の説明を行うが、当該iSCSIに限定されるわけではない。例えばインデックスとしてパス名等を利用することで、NFS(Network File System)またはCIFS(Common Internet File System)等のファイル転送プロトコルにも適用可能である。
図3は、キャッシュデータテーブル23のデータ構造の一例を示す。図3に示すように、キャッシュデータテーブル23には、キャッシュデータ(格納先のアドレス)及び識別子が対応付けて登録されている。このアドレス(キャッシュデータのアドレス)は、キャッシュデータがキャッシュ格納部22に格納されているアドレスであり、例えば8バイトで表される。また、識別子は、予め定められたハッシュ関数(例えば、SHA1)を用いて、対応付けられているキャッシュデータの内容から生成されたハッシュ値である。また、このハッシュ値は、例えば20バイトで表される。
図3に示す例では、キャッシュデータのアドレス「0x15A0001000020000(8バイト)」に対応付けてハッシュ値「0x5C3EB80066420002BC3DCC7CA4AB6EFAD7ED4AE5(20バイト)」が登録されている。キャッシュデータのアドレス「0x15A0001000020200」に対応付けてハッシュ値「0xF28E8BDB1F95033D31D332AD1C192E5263687F27」が登録されている。また、キャッシュデータのアドレス「0x15A0001000020400」に対応付けてハッシュ値「0xB376885AC8452B6CBF9CED81B1080BFD570D9B91」が登録されている。
図4は、キャッシュインデックステーブル24のデータ構造の一例を示す。図4に示すように、キャッシュインデックステーブル24には、ディスクボリュームのシリアル番号、論理ブロックアドレス(LBA)及び識別子が登録されている。キャッシュインデックステーブル24では、ディスクボリュームのシリアル番号及び論理ブロックアドレスの組合せをインデックスとしている。また、キャッシュインデックステーブル24は、ディスクボリューム(ディスクボリュームのシリアル番号)毎に存在する。
また、図4に示すように、キャッシュインデックステーブル24には、シリアル番号によって識別されるディスクボリューム内の論理ブロックアドレス毎に対応付けて識別子が登録されている。
ここでは、ディスクボリュームのシリアル番号は、例えば10バイトで表される。また、論理ブロックアドレスは、4バイトで表される。識別子は、ディスクボリュームのシリアル番号及び論理ブロックアドレスによって示される(論理ブロックアドレスに格納されている)データの内容から、予め定められたハッシュ関数(例えば、SHA1)を用いて生成されたハッシュ値である。このハッシュ値は、例えば20バイトで表される。
図4には、シリアル番号が「0xF4BAACDDD8FA4ACBF834」によって識別されるディスクボリュームに対応するキャッシュインデックステーブル24が示されている。図4に示す例では、論理ブロックアドレス「0x00000000(4バイト)」に対応付けてハッシュ値「0x5C3EB80066420002BC3DCC7CA4AB6EFAD7ED4AE5(20バイト)」が登録されている。論理ブロックアドレス「0x00000001」に対応付けてハッシュ値「0xF28E8BDB1F95033D31D332AD1C192E5263687F27」が登録されている。論理ブロックアドレス「0x00000003」に対応付けてハッシュ値「0xB376885AC8452B6CBF9CED81B1080BFD570D9B91」が登録されている。また、論理ブロックアドレス「0x00000007」に対応付けてハッシュ値「0x5C3EB80066420002BC3DCC7CA4AB6EFAD7ED4AE5」が登録されている。
次に、図5を参照して、キャッシュデータテーブル23及びキャッシュインデックステーブル24の関係について説明する。なお、図5においては、上記した図3及び図4とは異なり、キャッシュデータテーブル23及びキャッシュインデックステーブル24に保持(登録)されているディスクボリュームのシリアル番号、論理ブロックアドレス、識別子(ハッシュ値)及びデータのアドレスについては、便宜的に簡略化して記載されている。
図5では、ディスクボリュームのシリアル番号「1」によって識別されるストレージ装置50内のディスクボリュームに対応するキャッシュインデックステーブル24について説明する。
このキャッシュインデックステーブル24には、論理ブロックアドレス「1」に対応付けて識別子「ハッシュ値1」が登録されている。また、論理ブロックアドレス「2」に対応付けて識別子「ハッシュ値2」、論理ブロックアドレス「3」に対応付けて識別子「ハッシュ値3」、論理ブロックアドレス「4」に対応付けて識別子「ハッシュ値1」が登録されている。つまり、論理ブロックアドレス「1」に格納されているデータ及び論理ブロックアドレス「4」に格納されているデータは同一データである。換言すれば、論理ブロックアドレス「1」及び論理ブロックアドレス「4」は、同一データをポイントしている状態である。
一方、キャッシュデータテーブル23には、識別子「ハッシュ値1」に対応付けてキャッシュデータのアドレスとして「アドレス1」が登録されている。また、識別子「ハッシュ値2」に対応付けてキャッシュデータのアドレスとして「アドレス2」、識別子「ハッシュ値3」に対応付けてキャッシュデータのアドレスとして「アドレス3」が登録されている。
また、キャッシュ格納部22の「アドレス1」にはデータAが格納されている。キャッシュ格納部22の「アドレス2」にはデータBが格納されている。また、キャッシュ格納部22の「アドレス3」にはデータCが格納されている。
なお、データAは、キャッシュ格納部22の「アドレス1」にキャッシュされているデータであり、ストレージ装置50のディスクボリュームシリアル番号「1」の論理ブロックアドレス「1」及び論理ブロックアドレス「4」に格納されているデータ(と同一)である。
データBは、キャッシュ格納部22の「アドレス2」にキャッシュされているデータであり、ストレージ装置50のディスクボリュームシリアル番号「1」の論理ブロックアドレス「2」に格納されているデータ(と同一)である。
また、データCは、キャッシュ格納部22の「アドレス3」にキャッシュされているデータであり、ストレージ装置50のディスクボリュームシリアル番号「1」の論理ブロックアドレス「3」に格納されているデータ(と同一)である。
上記したように、キャッシュデータテーブル23及びキャッシュインデックステーブル24は、識別子(ハッシュ値)により関連付けられている。これにより、例えばクライアント装置40からストレージ装置50に対してリード要求があった場合には、中継装置30は、当該リード要求に含まれるインデックス(ディスクボリュームシリアル番号及び論理ブロックアドレス)からキャッシュ格納部22に格納(キャッシュ)されているキャッシュデータを特定できる。
次に、図6のフローチャートを参照して、前述した設定モードが設定されている場合における中継装置30の処理手順について説明する。この設定モードは、前述したように例えばキャッシュデータを設定(登録)する際の動作モードである。
本実施形態に係る中継装置30では、例えば中継装置30の管理者(ユーザ)の操作に応じてクライアント装置40から送信されたリード要求に応じて対象データをストレージ装置50から読み込み、当該対象データをキャッシュデータとして登録する処理が実行される。換言すれば、例えばクライアント装置40がストレージ装置50から対象データを読み込むことにより、ネットワークブートを実行することでキャッシュデータが登録される。
この場合、中継装置30の管理者(ユーザ)は、クライアント装置40を操作することによって、ストレージ装置50に格納されているデータのうち例えば漏洩しても問題のないデータであって、かつ、キャッシュデータとして登録するデータを対象データとして指定する。
まず、中継装置30に含まれる中継部31は、クライアント装置40によって送信されたリード要求を入力(受信)する(ステップS1)。このリード要求には、中継装置30の管理者によって指定されたデータ(対象データ)を示すインデックスが含まれる。このインデックスには、対象データが格納されているストレージ装置50内のディスクボリュームを識別するディスクボリュームシリアル番号及び当該ディスクボリューム内の論理ブロックアドレスが含まれる。
中継部31は、入力されたリード要求をストレージ装置50に対して転送(送信)する(ステップS2)。
ストレージ装置50は、中継部31によって転送されたリード要求に応じて、対象データを中継装置30に返す。これにより、中継装置30に含まれる中継部31は、対象データをストレージ装置50から読み込む(ステップS3)。この読み込まれた対象データは、リード要求に含まれるインデックスによって示されるデータである。具体的には、ストレージ装置50内に備えられるディスクボリュームのうち、リード要求に含まれるディスクボリュームシリアル番号によって識別されるディスクボリューム内の当該リード要求に含まれる論理ブロックアドレスに格納されているデータである。
次に、識別子生成部33は、ストレージ装置50から読み込まれた対象データの内容に対応する識別子としてハッシュ値を生成する(ステップS4)。識別子生成部33は、生成されたハッシュ値をキャッシュ管理部32に渡す。
キャッシュ管理部32は、識別子生成部33から渡されたハッシュ値がキャッシュデータテーブル23に保持されている(存在する)か否かを判定する(ステップS5)。
ハッシュ値がキャッシュデータテーブル23に保持されていないと判定された場合(ステップS5のNO)、キャッシュ管理部32は、ストレージ装置50から読み込まれた対象データをキャッシュデータとしてキャッシュ格納部22にキャッシュ(設定)する(ステップS6)。
キャッシュ管理部32は、識別子生成部33から渡されたハッシュ値を対象データに対応付けてキャッシュデータテーブル23に登録(設定)する(ステップS7)。これにより、対象データがキャッシュデータとして登録される。
一方、ステップS5においてハッシュ値がキャッシュデータテーブル23に保持されていると判定された場合、対象データは既にキャッシュ格納部22にキャッシュ(設定)されており、かつ、当該ハッシュ値はキャッシュデータテーブル23に保持されているため、ステップS8の処理が実行される。
中継部31は、上記したようなキャッシュ管理部32による処理が実行されると、リード要求の要求元であるクライアント装置40に対象データを送信する(ステップS8)。
上記したように、ネットワークブート型シンクライアントシステムにおいて、例えば中継装置30管理者が任意のクライアント装置40を利用してネットワークブートを実行することにより、当該ストレージ装置50から読み込まれたデータがキャッシュデータとしてキャッシュ格納部22及びキャッシュデータテーブル23に設定される。
なお、例えばキャッシュ格納部22及びキャッシュデータテーブル23において例えば予め定められた容量を超過した場合については特に記していないが、例えばLRU(Least Recent Used)等を適用することによって各種データが整理される。
また、ここでは、クライアント装置40から送信されたリード要求に応じてキャッシュデータが登録されるものとして説明したが、当該クライアント装置40から送信されたライト要求に応じてキャッシュデータが登録される構成であっても構わない。この場合、ライト要求に含まれる対象データ(書き込みデータ)に対して、上記したステップS4〜ステップS7の処理が実行される。このとき、ステップS5においてハッシュ値がキャッシュデータテーブル23に保持されていると判定された場合には、ライト要求がストレージ装置50に送信され、当該ライト要求に含まれる対象データがストレージ装置50に書き込まれる。
次に、図7のフローチャートを参照して、前述した運用モードが設定されている場合にクライアント装置40からストレージ装置50に対してリード要求が送信された際の中継装置30の処理手順について説明する。この運用モードは、例えば上記した設定モード時に設定されたキャッシュデータを利用する際の動作モードである。
ここでは、上記した設定モードにおいて、キャッシュ格納部22にキャッシュデータが予め設定されているものとする。また、同様に、キャッシュデータに対応付けて当該キャッシュデータの内容に対応するハッシュ値がキャッシュデータテーブル23に予め設定されているものとする。なお、中継装置30に対して運用モードが設定されている場合には、キャッシュ格納部22及びキャッシュデータテーブル23への書き込みが保護(つまり、ライトプロテクト)される。
まず、中継装置30に含まれる中継部31は、クライアント装置40によって送信されたリード要求を入力(受信)する(ステップS11)。入力されたリード要求には、読み込みの対象となるデータ(対象データ)を示すインデックスが含まれる。このインデックスには、対象データが格納されているストレージ装置50内のディスクボリュームを識別するディスクボリュームシリアル番号及び当該ディスクボリューム内の論理ブロックアドレスが含まれる。
次に、キャッシュ管理部32は、中継部31によって入力されたリード要求に含まれるインデックスに基づいて、キャッシュヒット判定処理を実行する(ステップS12)。つまり、キャッシュ管理部32は、中継部31によって入力されたリード要求に応じてストレージ装置50から読み込まれる対象データ対象データがキャッシュデータとしてキャッシュ格納部22にキャッシュ(設定)されているか否かを判定する。このキャッシュヒット判定処理の詳細については、後述する。
キャッシュヒット判定処理の結果がキャッシュヒットである場合(ステップS13のYES)、キャッシュ管理部32は、キャッシュ格納部22にキャッシュされている対象データを、リード要求の要求元であるクライアント装置40に対して送信する(ステップS14)。キャッシュ管理部32は、中継部31を介して、対象データを送信する。
一方、キャッシュヒット判定処理の結果がキャッシュミスヒットであると判定された場合(ステップS13のNO)、キャッシュ管理部32は、中継部31を介して、リード要求をストレージ装置50に転送する(ステップS15)。
ストレージ装置50は、中継部31によって転送されたリード要求に応じて対象データを中継部31に返す。これにより、中継部31は、対象データをストレージ装置50から読み込む(ステップS16)。
中継部31は、読み込まれた対象データをリード要求に対する応答として、当該リード要求の要求元であるクライアント装置40に送信する(ステップS17)。
また、キャッシュ管理部32は、上記したステップS17においてクライアント装置40に対してリード要求の応答を行うと同時に、中継部31によって読み込まれた(入力された)対象データ及び中継部31によって入力されたリード要求に含まれるインデックスに基づいてキャッシュインデックステーブル24への登録処理(キャッシュへの登録処理)を実行する(ステップS18)。このキャッシュインデックステーブル24への登録処理の詳細については、後述する。
次に、図8のフローチャートを参照して、上記したキャッシュヒット判定処理(図7に示すステップ12の処理)の詳細な処理手順について説明する。
まず、キャッシュ管理部32は、中継部31によって入力されたリード要求に含まれるインデックスに基づいて、キャッシュインデックステーブル24を特定する(ステップS21)。この場合、例えばインデックスに含まれるディスクボリュームシリアル番号によって識別されるディスクボリュームに対応するキャッシュインデックステーブル24が特定される。
次に、キャッシュ管理部32は、インデックスに含まれる論理ブロックアドレスに対応付けてキャッシュインデックステーブル24にハッシュ値が保持されている(存在する)か否かを判定する(ステップS22)。このキャッシュインデックステーブル24は、上記したステップS21において特定されたキャッシュインデックステーブル24である。
キャッシュインデックステーブル24にハッシュ値が保持されていると判定された場合(ステップS22のYES)、キャッシュ管理部32は、当該ハッシュ値をキャッシュインデックステーブル24から取得する(ステップS23)。
キャッシュ管理部32は、取得されたハッシュ値がキャッシュデータテーブル23に保持されているか否かを判定する(ステップS24)。
ここで、取得されたハッシュ値がキャッシュデータテーブル23に保持されていると判定された場合には、キャッシュデータテーブル23によって当該ハッシュ値に対応付けられているデータ(対象データ)がキャッシュ格納部22にキャッシュされている。したがって、取得されたハッシュ値がキャッシュデータテーブル23に保持されている場合(ステップS24のYES)、キャッシュ管理部32は、キャッシュヒットと判定する。
キャッシュヒットと判定された場合には、対象データがキャッシュ格納部22から取得され、リード要求の応答としてクライアント装置40に送信される。
一方、ステップS22においてキャッシュインデックステーブル24にハッシュ値が保持されていないと判定された場合、キャッシュ管理部32は、キャッシュミスヒットと判定する。また、ステップS24において、取得されたハッシュ値がキャッシュデータテーブル23に保持されていないと判定された場合には、キャッシュ管理部32は、キャッシュミスヒットと判定する。
ここでは、リード要求にはインデックスとして1つの論理ブロックアドレスのみが含まれているものとして説明したが、リード要求に複数の論理ブロックアドレスが含まれている構成であってもよい。この場合、リード要求には、ディスクボリュームシリアル番号及び論理ブロックアドレスに加えて、データ長が含まれる。この場合には、リード要求に含まれる論理ブロックアドレスからデータ長の間に該当する複数の論理ブロックアドレスの全てに対して上記したような処理が実行される。
具体的には、リード要求に含まれる複数の論理ブロックアドレスの各々に対して上記したような処理が実行され、キャッシュヒットと判定された場合には当該論理ブロックアドレスに対応する対象データが例えば出力バッファ上に配置される。このようにして、リード要求に含まれる複数の論理ブロックアドレスの全てについてキャッシュヒットと判定された場合には全体としてキャッシュヒットと判定される。この場合、出力バッファ上に配置された対象データがリード要求の応答としてクライアント装置40に送信される。
一方、リード要求に含まれる複数の論理ブロックアドレスのうち、少なくとも1つがキャッシュミスヒットである場合には出力バッファ上に配置されているデータがクリアされ、全体としてキャッシュミスヒットと判定される。
次に、図9のフローチャートを参照して、前述した運用モードが設定されている場合にクライアント装置40からストレージ装置50に対してライト要求が送信された際の中継装置30の処理手順について説明する。
まず、中継装置30に含まれる中継部31は、クライアント装置40から送信されたライト要求を入力(受信)する(ステップS31)。このライト要求には、書き込みの対象となるデータ(対象データ)を示すインデックスが含まれる。このインデックスには、対象データが書き込まれるストレージ装置50内のディスクボリュームを識別するディスクボリュームシリアル番号及び当該ディスクボリューム内の論理ブロックアドレスが含まれる。
中継部31は、入力されたライト要求をストレージ装置50に転送する(ステップS32)。これにより、ストレージ装置50に対象データが書き込まれる。この場合、対象データは、インデックスに含まれるディスクボリュームシリアル番号によって識別されるディスクボリューム内の当該インデックスに含まれる論理ブロックアドレスに書き込まれる。
また、キャッシュ管理部32は、中継部31によって入力されたライト要求に含まれる対象データ及びインデックスに基づいてキャッシュインデックステーブル24への登録処理(キャッシュへの登録処理)を実行する(ステップS33)。このキャッシュインデックステーブル24への登録処理の詳細については、後述する。
次に、図10のフローチャートを参照して、上記した図7に示すステップS18及び図9に示すステップS33のキャッシュインデックステーブル24への登録処理(キャッシュへの登録処理)の処理手順について説明する。
図7及び図9において説明したように、キャッシュインデックステーブル24への登録処理は、クライアント装置40にからの要求の種類(リード要求またはライト要求)に応じて実行されるタイミングは異なる。しかしながら、このキャッシュインデックステーブル24への登録処理は、中継装置30(の中継部31)によって入力されたディスクボリュームシリアル番号、論理ブロックアドレス及びデータ(読み込みデータまたは書き込みデータ)に基づいて実行される。このため、上記した図7に示すステップS18及び図9に示すステップS33のキャッシュインデックステーブル24への登録処理は同一の処理であるものとして説明する。
なお、ディスクボリュームシリアル番号及び論理ブロックアドレスは、例えばリード要求またはライト要求に含まれるインデックスである。また、中継装置30の中継部31によって入力されるデータ(読み込みデータまたは書き込みデータ)を対象データとして説明する。
中継部31は、入力されたディスクボリュームシリアル番号、論理ブロックアドレス及び対象データをキャッシュ管理部32に渡す。キャッシュ管理部32は、中継部31から渡された対象データを識別子生成部33に送出する。
識別子生成部33は、キャッシュ管理部32によって送出された対象データの内容に対応する識別子としてハッシュ値を生成する(ステップS41)。このハッシュ値は、例えばSHA1のような予め定められたハッシュ関数を用いて生成される。
次に、キャッシュ管理部32は、識別子生成部33によって生成されたハッシュ値がキャッシュデータテーブル23に保持されているか否かを判定する(ステップS42)。
識別子生成部33によって生成されたハッシュ値がキャッシュデータテーブル23に保持されていると判定された場合(ステップS42のYES)、キャッシュ管理部32は、キャッシュデータテーブル23において当該ハッシュ値に対応付けられているデータをキャッシュ格納部22から取得する。この場合、キャッシュ管理部32は、識別子生成部33によって生成されたハッシュ値に対応付けてキャッシュデータテーブル23に保持されているアドレスを特定する。キャッシュ管理部32は、キャッシュ格納部22の特定されたアドレスに格納されているデータ(キャッシュデータ)を取得する。
キャッシュ管理部32は、取得されたキャッシュデータ及び中継部31から渡された対象データが同一であるか否かを判定する(ステップS43)。
取得されたキャッシュデータ及び対象データが同一であると判定された場合(ステップS43のYES)、キャッシュ管理部32は、中継部31から渡されたディスクボリュームシリアル番号によって識別されるディスクボリュームに対応するキャッシュインデックステーブル24を特定する(ステップS44)。なお、中継部31から渡されたディスクボリュームシリアル番号によって識別されるディスクボリュームに対応するキャッシュインデックステーブル24が存在しない場合には、当該ディスクボリュームに対応するキャッシュインデックステーブル24が新たに追加(作成)される。
キャッシュ管理部32は、特定されたキャッシュインデックステーブル24において、中継部31から渡された論理ブロックアドレスに対応付けてハッシュ値が保持されているか否かを判定する(ステップS45)。
中継部31から渡された論理ブロックアドレスに対応付けてハッシュ値が保持されていると判定された場合(ステップS45のYES)、キャッシュ管理部32は、当該ハッシュ値を識別子生成部33によって生成されたハッシュ値に書き換える(ステップS46)。これにより、識別子生成部33によって生成されたハッシュ値がキャッシュインデックステーブル24に登録される。
一方、中継部31から渡された論理ブロックアドレスに対応付けてハッシュ値が保持されていないと判定された場合(ステップS45のNO)、キャッシュ管理部32は、識別子生成部33によって生成されたハッシュ値を当該論理ブロックアドレスに対応付けてキャッシュインデックステーブル24に追加(登録)する(ステップS47)。
また、ステップS42において識別子生成部33によって生成されたハッシュ値がキャッシュデータテーブル23に保持されていないと判定された場合、キャッシュ管理部32は、中継部31から渡されたディスクボリュームシリアル番号によって識別されるディスクボリュームに対応するキャッシュインデックステーブル24を特定する。キャッシュ管理部32は、特定されたキャッシュインデックステーブル24において、中継部31から渡された論理ブロックアドレスに対応付けてハッシュ値が保持されているか否かを判定する(ステップS48)。
中継部31から渡された論理ブロックアドレスに対応付けてハッシュ値が保持されていると判定された場合(ステップS48のYES)、キャッシュ管理部32は、特定されたキャッシュインデックステーブル24から当該ハッシュ値を削除する(ステップS49)。換言すれば、キャッシュ管理部32は、特定されたキャッシュインデックステーブル24において中継部31から渡された論理ブロックアドレスに対応付けられているハッシュ値を無効化する。なお、中継部31から渡された論理ブロックアドレスに対応付けてハッシュ値が保持されていないと判定された場合(ステップS48のNO)、処理は終了される。
一方、ステップS43において、取得されたキャッシュデータ及び対象データが同一でないと判定された場合には、同一のハッシュ値が複数のデータ(ここでは、キャッシュデータ及び対象データ)に対応しているため、いわゆるハッシュ衝突が検出される。この場合、ステップS49の処理が実行される。
上記したように、中継部31によって入力された対象データが、例えば設定モード時にキャッシュデータテーブル23(キャッシュ格納部22)にキャッシュデータとして設定(登録)されている場合には、当該対象データに対応するハッシュ値が当該対象データを示すインデックスに対応付けてキャッシュインデックステーブル24に登録される。これにより、例えばこの対象データを示すインデックスを含むリード要求がクライアント装置40から送信された場合にはキャッシュヒットと判定されるため、ストレージ装置50から対象データを読み込む必要がない。
上記したように本実施形態においては、中継装置30に対して設定モードが設定されている場合に例えば管理者が任意のクライアント装置40を利用してネットワークブートを実行する(データを読み込む)だけで、キャッシュ格納部22及びキャッシュデータテーブル23に対してキャッシュデータを予め設定(登録)することが可能となる。また、キャッシュデータテーブル23及びキャッシュインデックステーブル24はハッシュ値で対応付けられている(つまり、データとインデックスとが切り離されている)ため、ネットワークブートを実行したクライアント装置40とは異なるクライアント装置40が自己のディスクボリュームに対してアクセスした場合、つまり、インデックスが異なる場合であっても、データ(OSのファイルまたはアプリケーションプログラムファイル等)が同一であれば予め設定されたキャッシュデータにキャッシュヒットする。このように、例えばストレージ装置50上にクライアント装置40を利用するユーザ毎にディスクボリュームが用意されているようなネットワークブート型シンクライアントシステムにおいても、ユーザ毎に個別にキャッシュデータを設定することなく、全てのユーザ(クライアント装置40)が利用できるキャッシュデータを設定することが可能となる。
また、本実施形態においては、例えばユーザ毎にキャッシュデータを設定する必要がないため、キャッシュに用いられる領域を節約することが可能となる。
また、本実施形態においては、設定モード時に予め設定されたキャッシュデータを示すインデックスについてのみキャッシュインデックステーブル24に登録されるため、当該キャッシュデータ以外のデータについてはキャッシュとして設定されない。このため、例えば中継装置30の管理者によって指定されたOSのファイルまたはアプリケーションプログラムファイルのような情報漏洩しても問題のないデータのみをキャッシュデータとして設定しておくことで、当該設定されたデータ以外のデータの漏洩を防止することができる。
また、本実施形態においては、キャッシュ格納部22、キャッシュデータテーブル23及びキャッシュインデックス24は、外部記憶装置20のような不揮発性の記憶領域に格納(記憶)されている。これにより、例えば中継装置30の電源が遮断された場合であっても、キャッシュ格納部22、キャッシュデータテーブル23及びキャッシュインデックステーブル24の内容は消失しないため、中継装置30の起動時に新たにキャッシュデータの設定(登録)処理を行うことなく、当該キャッシュ格納部22、キャッシュデータテーブル23及びキャッシュインデックス24をそのまま利用することができる。また、この場合に、例えばキャッシュ格納部22、キャッシュデータテーブル23及びキャッシュインデックステーブル24の内容を暗号化しておくことで、例えば中継装置30が持ち出された(盗難にあった)場合の不用意な情報漏洩を防止することが可能となる。
なお、本実施形態においては、キャッシュ格納部22、キャッシュデータテーブル23またはキャッシュインデックス24が揮発性の記憶領域に格納される構成であっても構わない。この場合には、例えば中継装置30の電源が遮断された際に、キャッシュ格納部22、キャッシュデータテーブル23またはキャッシュインデックステーブル24の内容を消失させることで、例えば中継装置30が持ち出された場合の情報漏洩の被害を軽減することができる。
また、本実施形態においては、例えば中継装置30の動作を終了する(電源が遮断される)際に、当該中継装置30の外部の不揮発性記憶領域にキャッシュ格納部22、キャッシュデータテーブル23またはキャッシュインデックステーブル24(の一部または全部)を退避させ、当該中継装置30の起動時に当該キャッシュ格納部22、キャッシュデータテーブル23またはキャッシュインデックステーブル24を当該外部の不揮発性記憶領域から読み込む(取得する)構成であっても構わない。これにより、中継装置30が持ち出された場合の情報漏洩を防止し、かつ、当該中継装置30の起動時に新たにキャッシュデータの設定処理を行うことなく、電源遮断時のキャッシュ格納部22、キャッシュデータテーブル23またはキャッシュインデックステーブル24をそのまま利用することが可能となる。
また、本実施形態においては、設定モード時にキャッシュ格納部22にはデータ(キャッシュデータ)は設定されず、当該データに対応するハッシュ値のみがキャッシュデータテーブル23に設定される構成でも構わない。この場合、例えば運用モード時に、キャッシュデータテーブル23に設定されているハッシュ値に対応するデータ(対象データ)が中継装置30に入力された場合に、当該対象データをキャッシュデータとしてキャッシュ格納部22及びキャッシュデータテーブル23に登録する。これにより、キャッシュデータテーブル23に登録されているハッシュ値に対応するデータを入力するまで、当該データをキャッシュデータとして用意しておく必要がないため、キャッシュに用いられる領域を節約することが可能となる。
また、本実施形態において、設定モード時にキャッシュ格納部22及びキャッシュデータテーブル23に対して対象データをキャッシュデータとして登録する際に、中継部31によって入力されたインデックスに対応付けて当該対象データに対応するハッシュ値をキャッシュインデックステーブル24にも登録する構成であってもよい。これにより、運用モード時に、当該インデックスを含むリード要求がクライアント装置40から送信された場合には、キャッシュインデックステーブル24への登録処理を行うことなくキャッシュヒットが判定され、キャッシュデータを利用することができる。
[第2の実施形態]
次に、図11を参照して、本発明の第2の実施形態について説明する。図11は、本実施形態に係る中継装置(キャッシュ装置)300の主として機能構成を示すブロック図である。なお、前述した図2と同様の部分には同一参照符号を付してその詳しい説明を省略する。ここでは、図2と異なる部分について主に述べる。なお、本実施形態に係る中継装置300のハードウェア構成は、前述した第1の実施形態と同様であるため、図1を用いて説明する。
図11に示すように、中継装置300は、読み込み命令発行部301を含む。本実施形態において、読み込み命令発行部301は、図1に示すコンピュータ10が外部記憶装置20に格納されているプログラム21を実行することにより実現されるものとする。
読み込み命令発行部301は、例えば中継装置300が設定モードに設定されている場合において、例えば中継装置300の管理者(ユーザ)の操作に応じて、ストレージ装置50に格納されているデータの読み込みを要求するためのリード要求(読み込み要求)を発行する。このリード要求には、読み込みの対象となるデータ(読み込みデータ)を示すインデックスを含む。このインデックスには、例えば読み込みデータが読み込まれるディスクボリュームのシリアル番号及び当該ディスクボリューム内の論理ブロックアドレスが含まれる。
また、読み込み命令発行部301は、発行されたリード要求に基づいてストレージ装置50から読み込まれた読み込みデータを読み捨てる処理を実行する。
次に、図12のフローチャートを参照して、本実施形態に係る中継装置300の処理手順について説明する。なお、中継装置300の動作モードとして、例えば当該中継装置300の管理者の操作に応じて設定モードが設定されているものとする。
まず、読み込み命令発行部301は、例えば中継装置300の管理者の操作に応じて、ストレージ装置50に格納されているデータの読み込みを要求するリード要求をストレージ装置50に対して発行する(ステップS51)。読み込み命令発行部301によって発行されたリード要求には、例えば読み込みの対象となるデータ(以下、対象データと表記)を示すインデックス(ディスクボリュームシリアル番号及び論理ブロックアドレス)が含まれる。なお、中継装置300の管理者は、例えば当該中継装置300を操作することによって、ストレージ装置50の任意のクライアント装置40に対応するディスクボリュームに格納されているデータのうち例えば漏洩しても問題のないデータであって、かつ、キャッシュデータとして登録するデータを対象データとして指定する。
中継部31は、読み込み命令発行部301によって発行されたリード要求をストレージ装置50に対して転送する(ステップS52)。
次に、図6に示すステップS3〜ステップS7の処理に相当するステップS53〜ステップS57の処理が実行される。
上記したステップS53〜ステップS57の処理が実行されると、読み込み命令発行部301は、ステップS53においてストレージ装置50から読み込まれた対象データを、例えばクライアント装置40に送信することなく読み捨てる(ステップS58)。
上記したように本実施形態においては、中継装置300に対して設定モードが設定されている場合において、管理者が中継装置300を操作することによって指定されたデータの読み込みを要求するためのリード要求が読み込み発行部301から発行されることによって、キャッシュ格納部22及びキャッシュデータテーブル23に対してキャッシュデータを予め設定することが可能となる。つまり、前述した第1の実施形態においてはクライアント装置40がネットワークブートを実行することによりキャッシュデータを設定するのに対して、本実施形態においては、クライアント装置40を用いることなく(ネットワークブートを実行することなく)、キャッシュデータを設定することができる。
このように、本実施形態においては、管理者が中継装置300を操作することによって指定された例えば任意のクライアント装置40に対応するディスクボリューム(に格納されているデータ)の読み込み処理を実行するだけで、その他のクライアント装置40でも利用可能なキャッシュデータを設定することが可能となる。
なお、本願発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
本発明の第1の実施形態に係る中継装置のハードウェア構成を示すブロック図。 本実施形態に係る中継装置30の主として機能構成を示すブロック図。 キャッシュデータテーブル23のデータ構造の一例を示す図。 キャッシュインデックステーブル24のデータ構造の一例を示す図。 キャッシュデータテーブル23及びキャッシュインデックステーブル24の関係について説明するための図。 設定モードが設定されている場合における中継装置30の処理手順を示すフローチャート。 運用モードが設定されている場合にリード要求が送信された際の中継装置30の処理手順を示すフローチャート。 キャッシュヒット判定処理の詳細な処理手順を示すフローチャート。 運用モードが設定されている場合にライト要求が送信された際の中継装置30の処理手順を示すフローチャート。 キャッシュインデックステーブル24への登録処理の処理手順を示すフローチャート。 本発明の第2の実施形態に係る中継装置300の主として機能構成を示すブロック図。 設定モードが設定されている場合における本実施形態に係る中継装置300の処理手順を示すフローチャート。
符号の説明
10…コンピュータ、20…外部記憶装置、22…キャッシュ格納部、23…キャッシュデータテーブル、24…キャッシュインデックステーブル、30,300…中継装置(キャッシュ装置)、31…中継部、32…キャッシュ管理部、33…識別子生成部、40…クライアント装置、50…ストレージ装置(データ格納手段)、301…読み込み命令発行部。

Claims (14)

  1. データ格納手段に格納されているデータを予めキャッシュするキャッシュ格納手段と、前記キャッシュ格納手段にキャッシュされたデータに対応付けて当該キャッシュデータの内容に対応する識別子を予め保持するキャッシュデータテーブルと、キャッシュインデックステーブルとを備えるキャッシュ装置に適用されるキャッシュ方法であって、
    前記データ格納手段に格納されるデータ及び当該データを示すインデックスを入力するステップと、
    前記入力されたデータの内容に対応する識別子を生成するステップと、
    前記生成された識別子が前記キャッシュデータテーブルに保持されているかを判定するステップと、
    前記生成された識別子が保持されていると判定された場合、前記入力されたインデックスに対応付けて当該識別子を前記キャッシュインデックステーブルに登録するステップと
    を具備することを特徴とするキャッシュ方法。
  2. 前記判定するステップにおいて、前記生成された識別子が保持されていないと判定された場合、前記入力されたインデックスに対応付けて前記キャッシュインデックステーブルに保持されている識別子を無効とすることを特徴とする請求項1記載のキャッシュ方法。
  3. 前記データ格納手段に格納されるデータであって、ユーザによって指定されたデータを入力するステップと、
    前記ユーザによって指定されたデータの内容に対応する識別子を生成するステップと、
    前記ユーザによって指定されたデータを前記キャッシュ格納手段にキャッシュするステップと、
    前記ユーザによって指定されたデータの内容に対応する識別子を前記キャッシュされた当該データに対応付けて前記キャッシュデータテーブルに登録するステップと
    を更に具備することを特徴とする請求項1記載のキャッシュ方法。
  4. ユーザの操作に応じて、データ格納手段に格納されているデータの読み込みを要求するための読み込み要求を発行するステップと、
    前記発行された読み込み要求に応じて、前記データ格納手段からデータを読み込むステップと、
    前記読み込まれたデータの内容に対応する識別子を生成するステップと、
    前記読み込まれたデータを前記キャッシュ格納手段にキャッシュするステップと、
    前記生成された識別子を前記キャッシュされたデータに対応付けて前記キャッシュデータテーブルに登録するステップと
    を更に具備することを特徴とする請求項1記載のキャッシュ方法。
  5. データ格納手段に格納されているデータの内容に対応する識別子を予め保持するキャッシュデータテーブルと、キャッシュ格納手段と、キャッシュインデックステーブルとを備えるキャッシュ装置に適用されるキャッシュ方法であって、
    前記データ格納手段に格納されるデータ及び当該データを示すインデックスを入力するステップと、
    前記入力されたデータの内容に対応する識別子を生成するステップと、
    前記生成された識別子が前記キャッシュデータテーブルに保持されているかを判定するステップと、
    前記生成された識別子が保持されていると判定された場合、前記入力されたデータを前記キャッシュ格納手段にキャッシュするステップと、
    前記キャッシュされたデータを、前記生成された識別子に対応付けて前記キャッシュデータテーブルに登録するステップと、
    前記入力されたインデックスに対応付けて前記生成された識別子を前記キャッシュインデックステーブルに登録するステップと
    を具備することを特徴とするキャッシュ方法。
  6. 前記判定するステップにおいて、前記生成された識別子が保持されていないと判定された場合、前記入力されたインデックスに対応付けて前記キャッシュインデックステーブルに保持されている識別子を無効とすることを特徴とする請求項5記載のキャッシュ方法。
  7. 前記データ格納手段に格納されるデータであって、ユーザによって指定されたデータを入力するステップと、
    前記ユーザによって指定されたデータの内容に対応する識別子を生成するステップと、
    前記ユーザによって指定されたデータの内容に対応する識別子を前記キャッシュデータテーブルに登録するステップと
    を更に具備することを特徴とする請求項5記載のキャッシュ方法。
  8. ユーザの操作に応じて、データ格納手段に格納されているデータの読み込みを要求する読み込み要求を発行するステップと、
    前記発行された読み込み要求に応じて、前記データ格納手段からデータを読み込むステップと、
    前記読み込まれたデータの内容に対応する識別子を生成するステップと、
    前記生成された識別子を前記キャッシュデータテーブルに登録するステップと
    を更に具備することを特徴とする請求項5記載のキャッシュ方法。
  9. 前記データ格納手段に格納されているデータの読み込みを要求するための、当該データを示すインデックスを含む読み込み要求を入力するステップと、
    前記入力された読み込み要求に含まれるインデックスに対応付けて前記キャッシュインデックステーブルに識別子が保持されているかを判定するステップと、
    前記キャッシュインデックステーブルに識別子が保持されていると判定された場合、前記キャッシュデータテーブルに当該識別子が保持されているかを判定するステップと、
    前記キャッシュデータテーブルに識別子が保持されていると判定された場合、当該キャッシュデータテーブルによって当該識別子に対応付けられているデータを、前記キャッシュ格納手段から取得するステップと、
    前記取得されたデータを、前記入力されたデータ読み込み要求の要求元に対して送信するステップと
    を更に具備することを特徴とする請求項1または5のいずれか1項に記載のキャッシュ方法。
  10. ユーザの操作に応じて、前記キャッシュ格納手段にキャッシュされているデータ、前記キャッシュデータテーブルまたは前記キャッシュデータテーブルに保持されている識別子を削除するステップを更に具備することを特徴とする請求項1または5のいずれか1項に記載のキャッシュ方法。
  11. 前記キャッシュ格納手段、前記キャッシュデータテーブルまたは前記キャッシュインデックステーブルを前記キャッシュ装置の電源遮断時に当該キャッシュ装置の外部に退避させるステップと、
    前記退避させたキャッシュ格納手段、キャッシュデータテーブルまたはキャッシュインデックステーブルを、前記キャッシュ装置の起動時に取得するステップと
    を更に具備することを特徴とする請求項1または5のいずれか1項に記載のキャッシュ方法。
  12. データ格納手段に格納されているデータを予めキャッシュするキャッシュ格納手段と、
    前記キャッシュ格納手段にキャッシュされたデータに対応付けて当該キャッシュデータの内容に対応する識別子を予め保持するキャッシュデータテーブルと、
    前記データ格納手段に格納されるデータ及び当該データを示すインデックスを入力する入力手段と、
    前記入力されたデータの内容に対応する識別子を生成する識別子生成手段と、
    前記生成された識別子が前記キャッシュデータテーブルに保持されているかを判定する判定手段と、
    前記生成された識別子が保持されていると判定された場合、前記入力されたインデックスに対応付けて当該識別子を前記キャッシュインデックステーブルに登録する登録手段と
    を具備することを特徴とするキャッシュ装置。
  13. 前記キャッシュ格納手段、前記キャッシュデータテーブルまたは前記キャッシュインデックステーブルは、不揮発性の記憶領域に格納されることを特徴とする請求項12記載のキャッシュ装置。
  14. 前記キャッシュ格納手段、前記キャッシュデータテーブルまたは前記キャッシュインデックステーブルは、揮発性の記憶領域に格納されることを特徴とする請求項12記載のキャッシュ装置。
JP2007283724A 2007-10-31 2007-10-31 キャッシュ方法及びキャッシュ装置 Expired - Fee Related JP4607937B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007283724A JP4607937B2 (ja) 2007-10-31 2007-10-31 キャッシュ方法及びキャッシュ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007283724A JP4607937B2 (ja) 2007-10-31 2007-10-31 キャッシュ方法及びキャッシュ装置

Publications (2)

Publication Number Publication Date
JP2009110407A true JP2009110407A (ja) 2009-05-21
JP4607937B2 JP4607937B2 (ja) 2011-01-05

Family

ID=40778807

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007283724A Expired - Fee Related JP4607937B2 (ja) 2007-10-31 2007-10-31 キャッシュ方法及びキャッシュ装置

Country Status (1)

Country Link
JP (1) JP4607937B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4592115B1 (ja) * 2009-05-29 2010-12-01 誠 後藤 ファイル格納システム、サーバ装置及びプログラム
JP2011109261A (ja) * 2009-11-13 2011-06-02 Ricoh Co Ltd ルータ装置、通信方法、及び通信プログラム
JP2012058825A (ja) * 2010-09-06 2012-03-22 Nec Corp ストレージ装置及びストレージ装置の記憶資源の使用効率向上方法
KR20160131832A (ko) * 2015-05-07 2016-11-16 엔트릭스 주식회사 클라우드 스트리밍 서비스 시스템, 리시프로컬 캐시를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
CN110858201A (zh) * 2018-08-24 2020-03-03 阿里巴巴集团控股有限公司 数据处理方法及系统、处理器、存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002268935A (ja) * 2001-03-12 2002-09-20 Toshiba Corp データ転送装置、データ転送方法及びプログラム
JP2003281023A (ja) * 2002-03-26 2003-10-03 Toshiba Corp データ転送装置、データ転送方法、データ受信表示装置、プログラム
JP2005025759A (ja) * 2003-07-01 2005-01-27 Microsoft Corp インスタントメッセージングオブジェクトストア
JP2005149334A (ja) * 2003-11-19 2005-06-09 Nippon Telegr & Teleph Corp <Ntt> ネットワークブートシステム,ネットワークブート方法およびネットワークブート用キャッシュ装置
JP2009026141A (ja) * 2007-07-20 2009-02-05 Toshiba Corp キャッシュ方法及びキャッシュ装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002268935A (ja) * 2001-03-12 2002-09-20 Toshiba Corp データ転送装置、データ転送方法及びプログラム
JP2003281023A (ja) * 2002-03-26 2003-10-03 Toshiba Corp データ転送装置、データ転送方法、データ受信表示装置、プログラム
JP2005025759A (ja) * 2003-07-01 2005-01-27 Microsoft Corp インスタントメッセージングオブジェクトストア
JP2005149334A (ja) * 2003-11-19 2005-06-09 Nippon Telegr & Teleph Corp <Ntt> ネットワークブートシステム,ネットワークブート方法およびネットワークブート用キャッシュ装置
JP2009026141A (ja) * 2007-07-20 2009-02-05 Toshiba Corp キャッシュ方法及びキャッシュ装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4592115B1 (ja) * 2009-05-29 2010-12-01 誠 後藤 ファイル格納システム、サーバ装置及びプログラム
JP2010277374A (ja) * 2009-05-29 2010-12-09 Makoto Goto ファイル格納システム、サーバ装置及びプログラム
JP2011109261A (ja) * 2009-11-13 2011-06-02 Ricoh Co Ltd ルータ装置、通信方法、及び通信プログラム
JP2012058825A (ja) * 2010-09-06 2012-03-22 Nec Corp ストレージ装置及びストレージ装置の記憶資源の使用効率向上方法
KR20160131832A (ko) * 2015-05-07 2016-11-16 엔트릭스 주식회사 클라우드 스트리밍 서비스 시스템, 리시프로컬 캐시를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR101888846B1 (ko) * 2015-05-07 2018-08-16 에스케이테크엑스 주식회사 클라우드 스트리밍 서비스 시스템, 리시프로컬 캐시를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
CN110858201A (zh) * 2018-08-24 2020-03-03 阿里巴巴集团控股有限公司 数据处理方法及系统、处理器、存储介质
CN110858201B (zh) * 2018-08-24 2023-05-02 阿里巴巴集团控股有限公司 数据处理方法及系统、处理器、存储介质

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4405533B2 (ja) キャッシュ方法及びキャッシュ装置
US10523786B2 (en) I/O bandwidth reduction using storage-level common page information
JP4278445B2 (ja) ネットワークシステム及びスイッチ
TWI390419B (zh) 具伺服器驗證之出自使用者空間i/o之系統與方法
JP4648687B2 (ja) データストレージシステムにおける暗号化変換の方法と装置
US11470056B2 (en) In-flight data encryption/decryption for a distributed storage platform
JP4687382B2 (ja) ストレージシステムにおけるウイルスチェック方法
US20090150462A1 (en) Data migration operations in a distributed file system
US20120079583A1 (en) Offload reads and writes
WO2017190084A1 (en) Offloading storage encryption operations
JP2010009573A (ja) Nas及びcas統合体でデータをバックアップする為の方法と装置
JP5859417B2 (ja) メタデータサーバとデータサーバとの間でaclの一貫性を維持する方法および装置
TW200841353A (en) Extending flash drive lifespan
JP2012141943A (ja) Sasエキスパンダ接続ルーティング技法
US20090150533A1 (en) Detecting need to access metadata during directory operations
JP4607937B2 (ja) キャッシュ方法及びキャッシュ装置
US20090150449A1 (en) Open file migration operations in a distributed file system
JP4764455B2 (ja) 外部記憶装置
US11423158B2 (en) Dynamic compression with dynamic multi-stage encryption for a data storage system
US20090150414A1 (en) Detecting need to access metadata during file operations
US20090150477A1 (en) Distributed file system optimization using native server functions
JP2004246702A (ja) 計算機システム、計算機装置、計算機システムにおけるデータアクセス方法及びプログラム
US10268384B2 (en) File transfers between machines without target CPU intervention
JP4607936B2 (ja) データ転送方法及びデータ転送システム
JP5760592B2 (ja) 共有ファイルシステムのストレージアクセス制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100823

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4607937

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees