JP4818383B2 - Relay device and method for registering cache data in the same device - Google Patents

Relay device and method for registering cache data in the same device Download PDF

Info

Publication number
JP4818383B2
JP4818383B2 JP2009058051A JP2009058051A JP4818383B2 JP 4818383 B2 JP4818383 B2 JP 4818383B2 JP 2009058051 A JP2009058051 A JP 2009058051A JP 2009058051 A JP2009058051 A JP 2009058051A JP 4818383 B2 JP4818383 B2 JP 4818383B2
Authority
JP
Japan
Prior art keywords
cache
data
identifier
relay
index
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
Application number
JP2009058051A
Other languages
Japanese (ja)
Other versions
JP2010211607A (en
Inventor
誠 小原
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 JP2009058051A priority Critical patent/JP4818383B2/en
Publication of JP2010211607A publication Critical patent/JP2010211607A/en
Application granted granted Critical
Publication of JP4818383B2 publication Critical patent/JP4818383B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、データを格納する第1の装置と当該第1の装置に対して読み書きアクセスを行う第2の装置との間のデータ転送のための通信を中継する中継装置に係り、特にキャッシュ可能なデータをキャッシュデータとして登録するのに好適な中継装置及び同装置にキャッシュデータを登録するための方法に関する。   The present invention relates to a relay device that relays communication for data transfer between a first device that stores data and a second device that performs read / write access to the first device, and is particularly cacheable. The present invention relates to a relay apparatus suitable for registering various data as cache data and a method for registering cache data in the apparatus.

昨今、例えば、企業や官公庁においてクライアント装置として用いられるクライアントパーソナルコンピュータ(以下、クライアントPCと称する)からの情報漏洩が問題となっている。そこで、クライアントPCに情報の持ち出しをさせないようにするためのコンピュータシステムとして、シンクライアントシステムが注目されいてる。   Recently, for example, information leakage from a client personal computer (hereinafter referred to as a client PC) used as a client device in a company or a public office has become a problem. Therefore, a thin client system has attracted attention as a computer system for preventing the client PC from taking out information.

シンクライアントシステムは、その実現方法から幾つかの種類に分類される。シンクライアントシステムの1つとして、ネットワークブート型シンクライアントシステムが知られている。ネットワークブート型シンクライアントシステムでは、物理的に情報漏洩の心配の少ないサーバルームなどにストレージ装置が配置される。クライアントPCは、このストレージ装置との間でNFS(Network File System)やCIFS(Common Internet File System)、或いはiSCSI(internet Small Computer System Interface)などの通信プロトコルを利用して、当該ストレージ装置から直接OS(Operating System)をブートする。   Thin client systems are classified into several types according to their implementation methods. As one of thin client systems, a network boot type thin client system is known. In a network boot type thin client system, a storage device is arranged in a server room where there is little concern about information leakage physically. The client PC uses a communication protocol such as NFS (Network File System), CIFS (Common Internet File System), or iSCSI (Internet Small Computer System Interface) to and from this storage device to directly execute an OS from the storage device. Boot (Operating System).

ネットワークブート型シンクライアントシステムの課題の1つとして、クライアントPCとストレージ装置との間がWAN(Wide Area Network)で接続されているような環境では、WANの回線速度の遅さがネックとなって、導入が難しいことが知られている。そこで、WWW(World Wide Web)の世界におけるプロキシ(Proxy)のように、ストレージ装置とクライアントPCとの間に中継装置(ノード装置)を導入し、中継装置によって中継されるデータをキャッシュデータとして、当該中継装置上でキャッシュ用のデータ格納手段(キャッシュデータ格納手段)に格納するためのキャッシュ制御を行うことで、負荷分散を行い、性能を向上させる手法が提案されている。しかし、中継装置でキャッシュ制御を行うことにより生じる新たな課題として、キャッシュデータ格納手段からの情報漏洩に対する対策をどのように実現するか、ということを検討しなければならない。   One of the challenges of the network boot thin client system is that in the environment where the client PC and the storage device are connected by a WAN (Wide Area Network), the slowness of the WAN line speed becomes a bottleneck. It is known that it is difficult to introduce. Therefore, like a proxy in the world of WWW (World Wide Web), a relay device (node device) is introduced between the storage device and the client PC, and the data relayed by the relay device is used as cache data. A technique has been proposed in which load control is performed and performance is improved by performing cache control for storing data in a cache data storage unit (cache data storage unit) on the relay device. However, it is necessary to consider how to implement a countermeasure against information leakage from the cache data storage means as a new problem caused by performing cache control in the relay device.

例えば特許文献1には、中継装置のキャッシュデータ格納手段からの情報漏洩に対する対策を実現するための技術が記載されている。この特許文献1に記載の技術では、クライアントPCまたはストレージ装置は、中継装置によって中継されるデータについて、キャッシュの可否を示す属性情報を出力する。中継装置は、この属性情報に基づいて中継するデータのキャッシュの可否を判断し、キャッシュ否と判断されたデータ(例えば機密データ)については、キャッシュデータ格納手段に格納せずに、つまりキャッシュせずに、中継のみを行う。このような特許文献1に記載の技術によれば、機密データを中継装置にキャッシュすることを禁止できるため、当該機密データが中継装置(のキャッシュデータ格納手段)から漏洩するのを防止できる。   For example, Patent Document 1 describes a technique for realizing a countermeasure against information leakage from a cache data storage unit of a relay device. In the technique described in Patent Document 1, the client PC or the storage device outputs attribute information indicating whether or not the cache is possible for data relayed by the relay device. The relay device determines whether or not to cache the data to be relayed based on the attribute information, and does not store the data determined to be cache (eg, confidential data) without storing it in the cache data storage means, that is, without caching. And only relay. According to such a technique described in Patent Document 1, since it is possible to prohibit the confidential data from being cached in the relay device, it is possible to prevent the confidential data from leaking from the relay device (the cache data storage unit thereof).

特開2004−287476号JP 2004-287476 A

上記特許文献1には、クライアント装置とストレージ装置との間でデータが転送される都度、当該データのキャッシュの可否を示す属性情報が、当該データ(のヘッダ)に付加されて中継装置に通知されること(以下、第1の手法と称する)が記載されている。また特許文献1には、ストレージ装置においてデータ毎に管理されている属性情報が、データの転送とは別に、ストレージ装置から中継装置に通知されること(以下、第2の手法と称する)も記載されている。   In Patent Document 1, each time data is transferred between the client device and the storage device, attribute information indicating whether or not the data can be cached is added to the data (header) and notified to the relay device. (Hereinafter referred to as the first technique). Patent Document 1 also describes that attribute information managed for each data in the storage apparatus is notified from the storage apparatus to the relay apparatus separately from the data transfer (hereinafter referred to as a second method). Has been.

第1の手法は、クライアント装置とストレージ装置との間でデータが転送される都度、属性情報を通知しなければならないという問題がある。一方、第2の手法は、データ毎に管理されている属性情報を、データ転送とは別に、ストレージ装置から中継装置に通知(転送)しなければならないという問題がある。   The first method has a problem that attribute information must be notified every time data is transferred between a client device and a storage device. On the other hand, the second method has a problem that attribute information managed for each data must be notified (transferred) from the storage apparatus to the relay apparatus separately from the data transfer.

本発明は上記事情を考慮してなされたものでその目的は、データのキャッシュの可否を示す属性情報の中継装置への通知を必要とすることなく、キャッシュ可能なデータを効率的に登録できる中継装置及び同装置にキャッシュデータを登録するための方法を提供することにある。   The present invention has been made in consideration of the above circumstances, and its purpose is to perform relaying that can efficiently register cacheable data without requiring notification to the relay device of attribute information indicating whether data can be cached. To provide a device and a method for registering cache data in the device.

本発明の1つの観点によれば、データを格納する第1の装置と前記第1の装置に対して読み書きアクセスを行う第2の装置との間のデータ転送のための通信を中継する中継装置が提供される。この中継装置は、前記第1の装置に格納されているデータを、当該データの内容に対応する識別子に対応付けて格納するためのキャッシュ格納手段と、前記キャッシュ格納手段に格納されるデータの内容に対応する識別子を、前記第1の装置における当該データを指定するインデックスに対応付けて保持するためのキャッシュインデックステーブルと、第3の装置から送信される、インデックスを含むキャッシュ登録要求を受信するキャッシュ登録要求受信手段と、前記第1の装置と前記第2の装置との間のデータ転送のための通信を中継する中継手段であって、前記キャッシュ登録要求受信手段が前記キャッシュ登録要求を受信した第1の場合、当該キャッシュ登録要求に含まれているインデックスの指定する第1のデータを前記第1の装置から読み込み、前記第2の装置から前記第1の装置に読み書きアクセスするためのインデックスを含む読み書き要求を受信した第2の場合には、当該読み書き要求に含まれているインデックスに対応する第2のデータを前記第2の装置との間で入出力する中継手段と、要求されたデータの内容に対応する識別子を生成する識別子生成手段と、前記第1の場合、前記第1のデータの内容に対応する識別子を前記識別子生成手段により生成させ、前記第1のデータを前記生成された識別子に対応付けて前記キャッシュ格納手段に格納し、且つ前記生成された識別子を、前記第1のデータを指定するインデックスに対応付けて前記キャッシュインデックステーブルに登録するキャッシュ登録手段と、前記第2の場合、前記読み書き要求に含まれている前記インデックスに対応付けて前記キャッシュインデックステーブルに識別子が登録され、且つ当該識別子と同一の識別子が前記キャッシュ格納手段に登録されているかによって、キャッシュヒットであるかを判定するキャッシュヒット判定手段と、キャッシュヒットでないと判定された場合、前記読み書き要求を前記中継手段により前記第1の装置に中継させることによって、前記読み書き要求に含まれている前記インデックスの指定する前記第2のデータを前記中継手段に取得させて前記中継手段により前記第2の装置に中継させる中継制御手段と、前記中継手段によって中継される前記第2のデータの内容に対応する識別子を前記識別子生成手段により生成させ、当該生成された識別子に対応付けて前記キャッシュ格納手段に前記第2のデータと同一のデータが格納されている場合、当該生成された識別子を、前記読み書き要求に含まれている前記インデックスに対応付けて前記キャッシュインデックステーブルに登録するインデックス登録手段とを具備することを特徴とする。   According to one aspect of the present invention, a relay device that relays communication for data transfer between a first device that stores data and a second device that performs read / write access to the first device Is provided. The relay device stores data stored in the first device in association with an identifier corresponding to the content of the data, and content of the data stored in the cache storage device And a cache index table for holding an identifier corresponding to the index in the first device in association with an index designating the data, and a cache that receives a cache registration request including the index transmitted from the third device A registration request receiving means and a relay means for relaying communication for data transfer between the first device and the second device, wherein the cache registration request receiving means receives the cache registration request In the first case, the first data specified by the index included in the cache registration request is stored in the first device. In the second case of receiving a read / write request including an index for reading / writing access from the second device to the first device, a second corresponding to the index included in the read / write request is received. Relay means for inputting / outputting data to / from the second device, identifier generating means for generating an identifier corresponding to the content of the requested data, and in the first case, the content of the first data A corresponding identifier is generated by the identifier generation unit, the first data is stored in the cache storage unit in association with the generated identifier, and the generated identifier is designated as the first data Cache registration means for registering in the cache index table in association with an index to be included, and in the second case, included in the read / write request A cache hit determination means for determining whether a cache hit is made depending on whether an identifier is registered in the cache index table in association with the index and an identifier identical to the identifier is registered in the cache storage means; When it is determined that it is not a cache hit, the relay unit relays the read / write request to the first device, thereby relaying the second data designated by the index included in the read / write request. And generating the identifier corresponding to the content of the second data relayed by the relay means by the identifier generating means, The cache storage means in association with the assigned identifier. And index registration means for registering the generated identifier in the cache index table in association with the index included in the read / write request when the same data as the data of 2 is stored. It is characterized by.

本発明によれば、データのキャッシュの可否を示す情報の中継装置への通知を必要とすることなく、キャッシュ可能なデータを効率的に登録できる。特に本発明によれば、キャッシュ登録要求に応じて、当該キャッシュ登録要求に含まれているインデックスで指定されたデータの内容に対応する識別子が、当該インデックスに対応付けてキャッシュインデックステーブルに登録され、且つ当該データが当該識別子に対応付けてキャッシュ格納手段に格納されると、つまりキャッシュデータとして登録されると、以後、第2の装置からの読み書き要求に別のインデックスが含まれていても、当該別のインデックスによって指定されるデータ(つまり読み書き要求によって指定されるデータ)と同一のデータが、当該同一のデータの内容に対応する識別子に対応付けて既にキャッシュデータとして登録されているならば、当該指定されるデータもキャッシュデータとして自動的に登録される。   According to the present invention, cacheable data can be efficiently registered without requiring notification to the relay device of information indicating whether data can be cached. In particular, according to the present invention, in response to a cache registration request, an identifier corresponding to the content of data specified by an index included in the cache registration request is registered in the cache index table in association with the index, And if the data is stored in the cache storage means in association with the identifier, that is, registered as cache data, the read / write request from the second device will include If the same data as the data specified by another index (that is, the data specified by the read / write request) is already registered as cache data in association with the identifier corresponding to the content of the same data, The specified data is also automatically registered as cache data.

本発明の一実施形態に係るコンピュータシステムの全体構成を示すブロック図。1 is a block diagram showing the overall configuration of a computer system according to an embodiment of the present invention. 図1に示されるストレージ装置及び中継装置に用いられるコンピュータの基本構成を示すブロック図。The block diagram which shows the basic composition of the computer used for the storage apparatus and relay apparatus which are shown by FIG. 同実施形態におけるストレージ装置、クライアント装置及び中継装置の機能構成を示すブロック図。2 is an exemplary block diagram illustrating functional configurations of a storage apparatus, a client apparatus, and a relay apparatus in the embodiment. FIG. 同実施形態におけるキャッシュインデックステーブルのデータ構造例を示す図。The figure which shows the data structure example of the cache index table in the same embodiment. 同実施形態におけるキャッシュデータテーブルのデータ構造例を示す図。The figure which shows the data structure example of the cache data table in the embodiment. キャッシュインデックステーブル、キャッシュデータテーブル及びキャッシュデータ格納部の関係について説明するための図。The figure for demonstrating the relationship between a cache index table, a cache data table, and a cache data storage part. 同実施形態におけるキャッシュ登録動作の手順を示すフローチャート。6 is a flowchart showing a procedure of a cache registration operation in the embodiment. 同実施形態においてクライアント装置がストレージ装置よりデータを読み込む場合の中継装置の処理手順を示すフローチャート。6 is an exemplary flowchart illustrating a processing procedure of the relay apparatus when the client apparatus reads data from the storage apparatus in the embodiment. 同実施形態におけるキャッシュインデックステーブルへの登録処理の手順を示すフローチャート。6 is an exemplary flowchart illustrating a procedure of registration processing in a cache index table according to the embodiment. 同実施形態の変形例におけるキャッシュ登録動作の手順を示すフローチャート。9 is a flowchart showing a procedure of a cache registration operation in a modification of the embodiment. 同変形例におけるセッション取得処理の手順を示すフローチャート。The flowchart which shows the procedure of the session acquisition process in the modification.

以下、本発明の実施の形態につき図面を参照して説明する。
<システム構成>
図1は本発明の一実施形態に係るコンピュータシステムの全体構成を示すブロック図である。このコンピュータシステムは、例えばシンクライアントシステム(更に詳細には、ネットワークブート型シンクライアントシステム)である。図1に示すシステムは、ストレージ装置(第1の装置)10と、クライアント装置(第2の装置)20を含む複数のクライアント装置と、中継装置30とから構成される。なお、図1において、クライアント装置20以外のクライアント装置は便宜的に省略されている。
Embodiments of the present invention will be described below with reference to the drawings.
<System configuration>
FIG. 1 is a block diagram showing the overall configuration of a computer system according to an embodiment of the present invention. This computer system is, for example, a thin client system (more specifically, a network boot type thin client system). The system shown in FIG. 1 includes a storage device (first device) 10, a plurality of client devices including a client device (second device) 20, and a relay device 30. In FIG. 1, client devices other than the client device 20 are omitted for convenience.

ストレージ装置10は、各種データを格納するn個のディスクボリューム100-1〜100-n(図3参照)を有する。本実施形態において、n個のディスクボリューム100-1〜100-nは、クライアント装置20を含むn台のクライアント装置にそれぞれ対応付けて用意されるものとする。ここでは、ディスクボリューム100-1がクライアント装置20に対応付けられているものとする。ストレージ装置10は、クライアント装置20を含む複数のクライアント装置の各々に対して、対応するディスクボリュームへのアクセスを提供する。ストレージ装置10は、例えばiSCSIでのターゲット(Target)としての機能を持つ。   The storage apparatus 10 has n disk volumes 100-1 to 100-n (see FIG. 3) for storing various data. In the present embodiment, n disk volumes 100-1 to 100-n are prepared in association with n client apparatuses including the client apparatus 20, respectively. Here, it is assumed that the disk volume 100-1 is associated with the client device 20. The storage apparatus 10 provides access to the corresponding disk volume to each of a plurality of client apparatuses including the client apparatus 20. The storage device 10 has a function as a target in iSCSI, for example.

なお、ディスクボリューム100-1〜100-nがクライアント装置20を含む複数のクライアント装置を利用する例えばn人のユーザにそれぞれ対応付けて用意されるものであっても構わない。また、1つのクライアント装置(一人のユーザ)に複数のディスクボリュームが対応付けられていてもよく、n台のクライアント装置(n人のユーザ)にそれぞれ対応付けられるディスクボリュームの数がクライアント装置(ユーザ)毎に異なっていても構わない。   The disk volumes 100-1 to 100-n may be prepared in association with, for example, n users who use a plurality of client devices including the client device 20, respectively. Also, a plurality of disk volumes may be associated with one client device (one user), and the number of disk volumes associated with each of n client devices (n users) is the client device (user). ) May be different for each.

クライアント装置20は、ストレージ装置10に対してアクセスする。更に詳細に述べるならば、ストレージ装置10内のディスクボリューム100-1〜100-nのうち、自身に対応付けられているディスクボリューム(ここでは、ディスクボリューム100-1)に対してアクセスする。クライアント装置20は、例えばiSCSIでのイニシエータ(Initiator)として機能する。   The client device 20 accesses the storage device 10. More specifically, among the disk volumes 100-1 to 100-n in the storage apparatus 10, the disk volume associated with itself (here, the disk volume 100-1) is accessed. The client device 20 functions as an initiator in iSCSI, for example.

中継装置30は、クライアント装置20を含む複数のクライアント装置(イニシエータ)とストレージ装置10(ターゲット)との間の通信、例えばiSCSIプロトコルによるデータ転送を中継する。iSCSIプロトコルは、TCP(Transmission Control Protocol)/IP(Internet Protocol)を用いて、ストレージ装置10で利用されているSCSIプロトコルを搬送するためのプロトコルである。中継装置30は、iSCSIプロトコルによるデータ転送を中継する際に、転送されるデータのキャッシュ制御を行う。   The relay device 30 relays communication between a plurality of client devices (initiators) including the client device 20 and the storage device 10 (target), for example, data transfer by the iSCSI protocol. The iSCSI protocol is a protocol for carrying the SCSI protocol used in the storage apparatus 10 using TCP (Transmission Control Protocol) / IP (Internet Protocol). The relay device 30 performs cache control of data to be transferred when relaying data transfer by the iSCSI protocol.

本実施形態において、ストレージ装置10及び中継装置30はコンピュータを用いて実現される。図2は、このようなコンピュータの基本構成を示すブロック図である。図2に示されるように、コンピュータは、少なくとも1つの処理ユニット21、主記憶装置22、補助記憶装置23、通信機構24及び入出力装置25の周知のハードウェア構成を有する。補助記憶装置23は、例えばハードディスクドライブを用いて構成される。補助記憶装置23には、処理ユニット21によって実行されるプログラムを格納することができる。通信機構24は、iSCSIプロトコルによるデータ転送のための通信を行う。   In the present embodiment, the storage device 10 and the relay device 30 are realized using a computer. FIG. 2 is a block diagram showing the basic configuration of such a computer. As shown in FIG. 2, the computer has a known hardware configuration of at least one processing unit 21, main storage device 22, auxiliary storage device 23, communication mechanism 24, and input / output device 25. The auxiliary storage device 23 is configured using, for example, a hard disk drive. A program executed by the processing unit 21 can be stored in the auxiliary storage device 23. The communication mechanism 24 performs communication for data transfer according to the iSCSI protocol.

クライアント装置20もまたコンピュータを用いて実現される。但しクライアント装置20は、図2に示される補助記憶装置23を含まないものとする。つまりクライアント装置20は、図2に示されるコンピュータのハードウェア構成のうち、補助記憶装置23を除くハードウェア構成を有する。このためクライアント装置20においては、処理ユニット21によって実行されるプログラムのうち、例えばストレージ装置10から転送されるプログラム(本実施形態ではOSを含むプログラム)は主記憶装置22に格納される。なお、クライアント装置20から中継装置30に後述するキャッシュ登録を要求するためのプログラム(以下、特定プログラムと称する)は、例えばROMに予め格納されている。   The client device 20 is also realized using a computer. However, the client device 20 does not include the auxiliary storage device 23 shown in FIG. That is, the client device 20 has a hardware configuration excluding the auxiliary storage device 23 in the hardware configuration of the computer shown in FIG. Therefore, in the client device 20, among the programs executed by the processing unit 21, for example, a program transferred from the storage device 10 (a program including an OS in the present embodiment) is stored in the main storage device 22. Note that a program for requesting later-described cache registration from the client device 20 to the relay device 30 (hereinafter referred to as a specific program) is stored in advance in, for example, a ROM.

図3は、図1のシステムにおけるストレージ装置10、クライアント装置20及び中継装置30の機能構成を示すブロック図である。
図3において、ストレージ装置10は、ディスクボリューム100-1〜100-nを有する。各ディスクボリューム100-i(i=1〜n)は、図2に示される補助記憶装置23の記憶領域を用いて実現される。本実施形態において、各ディスクボリューム100-iは、論理アドレス空間を提供する論理ユニット(論理ボリューム)である。各ディスクボリューム100-iには、ディスクボリューム番号DVNと呼ばれる固有のID(シリアル番号)が割り当てられる。
FIG. 3 is a block diagram illustrating functional configurations of the storage apparatus 10, the client apparatus 20, and the relay apparatus 30 in the system of FIG.
In FIG. 3, the storage apparatus 10 has disk volumes 100-1 to 100-n. Each disk volume 100-i (i = 1 to n) is realized by using the storage area of the auxiliary storage device 23 shown in FIG. In this embodiment, each disk volume 100-i is a logical unit (logical volume) that provides a logical address space. Each disk volume 100-i is assigned a unique ID (serial number) called a disk volume number DVN.

クライアント装置20は、ドライバ・ファイルシステム210と、キャッシュ登録データ選択・要求送信部220とを有する。本実施形態おいて、ドライバ・ファイルシステム210は、クライアント装置20が、図2に示される構成から補助記憶装置23を除いたハードウェア構成のコンピュータから構成される場合に、当該コンピュータ内の処理ユニット21が、ストレージ装置10からクライアント装置20の主記憶装置22にダウンロードされたプログラム(例えばOS)を実行することにより実現されるものとする。一方、キャッシュ登録データ選択・要求送信部220は、例えばROMに予め格納されている特定プログラムを処理ユニット21が主記憶装置22に読み込んで実行することにより実現されるものとする。   The client device 20 includes a driver / file system 210 and a cache registration data selection / request transmission unit 220. In this embodiment, the driver file system 210 is a processing unit in a computer when the client device 20 is configured from a computer having a hardware configuration excluding the auxiliary storage device 23 from the configuration shown in FIG. 21 is realized by executing a program (for example, OS) downloaded from the storage device 10 to the main storage device 22 of the client device 20. On the other hand, the cache registration data selection / request transmission unit 220 is realized, for example, when the processing unit 21 reads and executes a specific program stored in advance in the ROM in the main storage device 22.

ドライバ・ファイルシステム210は、例えばクライアント装置20に対応付けられているストレージ装置10内のディスクボリューム100-1からファイルシステム211を構築する。ファイルシステム211は、キャッシュ登録データ選択・要求送信部220に対して、ファイルパスから該当するファイルが格納されているディスクボリューム100-1内の領域(以下、データ領域と称する)を指定する情報(以下、データ領域情報と称する)を取得するためのインタフェイスを提供する。   The driver file system 210 constructs the file system 211 from the disk volume 100-1 in the storage apparatus 10 associated with the client apparatus 20, for example. The file system 211 specifies information (hereinafter referred to as a data area) in the disk volume 100-1 in which the corresponding file is stored from the file path to the cache registration data selection / request transmission unit 220. Hereinafter, an interface for obtaining data area information) is provided.

本実施形態では、データ領域の開始位置は、論理ブロックの開始位置(論理ブロックの境界)に一致し、当該データ領域の終了位置は、論理ブロックの終了位置(論理ブロックの境界)に一致するものとする。そこで、データ領域情報は、データ領域の開始位置の論理ブロックアドレス(以下、開始論理ブロックアドレスと称する)LBAと、当該データ領域(に格納されているファイル)のデータ長(サイズ)Lの情報とを含む。このデータ長Lは、論理ブロックのデータ長の整数倍である。   In the present embodiment, the start position of the data area matches the start position of the logical block (logical block boundary), and the end position of the data area matches the logical block end position (logical block boundary). And Therefore, the data area information includes a logical block address (hereinafter referred to as a start logical block address) LBA at the start position of the data area, and information on the data length (size) L of the data area (file stored in the data area). including. This data length L is an integral multiple of the data length of the logical block.

キャッシュ登録データ選択・要求送信部220は、例えば、クライアント装置20のハードウェア構成に含まれている入出力装置25(図2参照)を用いたユーザ(またはシステム管理者)の操作に基づき、中継装置30にキャッシュデータとして登録すべきデータ(ここではファイル)の指定を受け付ける。キャッシュ登録データ選択・要求送信部220は、この指定に基づき、ファイルシステム211から、そのファイルが保存されているディスクボリューム(ここではディスクボリューム100-1)内のデータ領域に関するデータ領域情報LBA/Lを取得し、当該情報LBA/Lをキャッシュ登録要求により中継装置30に送信する。   The cache registration data selection / request transmission unit 220 performs relaying based on the operation of the user (or system administrator) using the input / output device 25 (see FIG. 2) included in the hardware configuration of the client device 20, for example. The designation of data (here, a file) to be registered as cache data in the apparatus 30 is accepted. Based on this designation, the cache registration data selection / request transmission unit 220 sends data area information LBA / L regarding the data area in the disk volume (here, the disk volume 100-1) in which the file is stored from the file system 211. And the information LBA / L is transmitted to the relay device 30 by a cache registration request.

中継装置30は、主として2種類の動作を行う。第1の動作は、クライアント装置20のキャッシュ登録データ選択・要求送信部220から送信されるキャッシュ登録要求に応じて、ストレージ装置10から転送されるデータをキャッシュデータとして登録するキャッシュ登録動作である。第2の動作は、クライアント装置20のドライバ・ファイルシステム210から送信される読み書き要求(リード要求またはライト要求)に応じて行われる、ストレージ装置10とクライアント装置20との間の入出力(I/O)セッション(ここではiSCSIセッション)の中継とキャッシュ動作である。   The relay device 30 mainly performs two types of operations. The first operation is a cache registration operation for registering data transferred from the storage device 10 as cache data in response to a cache registration request transmitted from the cache registration data selection / request transmission unit 220 of the client device 20. The second operation is performed in response to a read / write request (read request or write request) transmitted from the driver file system 210 of the client device 20, and input / output (I / O) between the storage device 10 and the client device 20. O) Relay of session (here, iSCSI session) and cache operation.

iSCSIセッションの中継は次のように行われる。まず、クライアント装置20から中継装置30のクライアント装置側インタフェイス(I/F)311を指定して、ストレージ装置10への接続を要求する。中継装置30は、このクライアント装置20からの要求を受け付けると、当該中継装置30のストレージ装置側インタフェイス(I/F)312からストレージ装置10に対して接続を行う。これによりクライアント装置20とストレージ装置10との間の接続(iSCSIセッション)が中継装置30を介して確立する。なお、クライアント装置側インタフェイス311及びストレージ装置側インタフェイス312が物理的に1つのインタフェイスであってもよく、iSCSIであれば、TCP/IPのIPアドレスやポート番号で別インタフェイスであることが識別できれば十分である。インタフェイス311及び312は、通信機構24によって実現される。   The relay of the iSCSI session is performed as follows. First, the client device 20 specifies the client device side interface (I / F) 311 of the relay device 30 and requests connection to the storage device 10. When receiving the request from the client device 20, the relay device 30 connects to the storage device 10 from the storage device side interface (I / F) 312 of the relay device 30. Thereby, a connection (iSCSI session) between the client device 20 and the storage device 10 is established via the relay device 30. Note that the client device side interface 311 and the storage device side interface 312 may be physically one interface. If iSCSI, the TCP / IP IP address and port number are separate interfaces. It is enough if can be identified. The interfaces 311 and 312 are realized by the communication mechanism 24.

<中継装置の構成>
中継装置30は、上述の2種類の動作を実現するために、中継部310、キャッシュ管理部320、キャッシュインデックステーブル330、キャッシュデータテーブル340、キャッシュデータ格納部350、識別子生成部360及びキャッシュ登録要求処理部370を含む。本実施形態において、中継装置30内の中継部310、キャッシュ管理部320、識別子生成部360及びキャッシュ登録要求処理部370は、中継装置30が図2に示されるコンピュータから構成される場合に、当該コンピュータ内の処理ユニット21が、補助記憶装置23に格納されている所定のプログラムを主記憶装置22に読み込んで実行することにより実現される。
<Configuration of relay device>
In order to realize the above-described two types of operations, the relay device 30 includes a relay unit 310, a cache management unit 320, a cache index table 330, a cache data table 340, a cache data storage unit 350, an identifier generation unit 360, and a cache registration request. A processing unit 370 is included. In the present embodiment, the relay unit 310, the cache management unit 320, the identifier generation unit 360, and the cache registration request processing unit 370 in the relay device 30 are configured when the relay device 30 includes the computer illustrated in FIG. The processing unit 21 in the computer is realized by reading a predetermined program stored in the auxiliary storage device 23 into the main storage device 22 and executing it.

中継部310は、クライアント装置20とストレージ装置10との間のiSCSIプロトコルによるPDU(Protocol Data Unit)の転送、つまりiSCSI−PDUの転送を中継する。中継部310は、クライアント装置側インタフェイス311とストレージ装置側インタフェイス312とを含む。iSCSI−PDUがデータ転送に関係するもの(READ&SCSI DATAIN/WRITE&SCSI DATAOUT)であれば、キャッシュ管理部320によるキャッシュ制御が行われる。   The relay unit 310 relays PDU (Protocol Data Unit) transfer between the client apparatus 20 and the storage apparatus 10 according to the iSCSI protocol, that is, transfer of iSCSI-PDU. The relay unit 310 includes a client apparatus side interface 311 and a storage apparatus side interface 312. If the iSCSI-PDU is related to data transfer (READ & SCSI DATAIN / WRITE & SCSI DATAOUT), cache control by the cache management unit 320 is performed.

キャッシュ管理部320は、クライアント装置20のドライバ・ファイルシステム210からのリード要求またはライト要求に応じて中継部310によって中継されるデータのキャッシュ制御を行う。キャッシュ管理部320は、クライアント装置20のキャッシュ登録データ選択・要求送信部220から送信されるキャッシュ登録要求によって指定されるデータをキャッシュデータとして中継装置30内に登録するためのキャッシュ登録動作を行う。   The cache management unit 320 performs cache control of data relayed by the relay unit 310 in response to a read request or a write request from the driver / file system 210 of the client device 20. The cache management unit 320 performs a cache registration operation for registering data designated by the cache registration request transmitted from the cache registration data selection / request transmission unit 220 of the client device 20 in the relay device 30 as cache data.

キャッシュ管理部320は、キャッシュインデックステーブル330及びキャッシュデータテーブル340を管理する。キャッシュ管理部320はまた、キャッシュデータ格納部350をも管理する。キャッシュ管理部320は、キャッシュ登録部320a、キャッシュヒット判定部320b、中継制御部320c及びインデックス登録部320dを含む。   The cache management unit 320 manages the cache index table 330 and the cache data table 340. The cache management unit 320 also manages the cache data storage unit 350. The cache management unit 320 includes a cache registration unit 320a, a cache hit determination unit 320b, a relay control unit 320c, and an index registration unit 320d.

キャッシュインデックステーブル330は、ストレージ装置10内のディスクボリューム(論理ボリューム)100-iに対応付けて設けられる。キャッシュインデックステーブル330は、対応するディスクボリューム100-iに固有のディスクボリューム番号DVNと当該ディスクボリューム100-i内の論理ブロックの論理ブロックアドレスLBAとの組み合わせを、当該論理ブロックに格納されているデータを指定するインデックスとして保持する。キャッシュインデックステーブル330は、このインデックスによって指定されるデータの内容に対応する識別子を、当該インデックスに対応付けて保持する。   The cache index table 330 is provided in association with the disk volume (logical volume) 100-i in the storage apparatus 10. The cache index table 330 includes a combination of a disk volume number DVN unique to a corresponding disk volume 100-i and a logical block address LBA of a logical block in the disk volume 100-i stored in the logical block. Is stored as an index to specify. The cache index table 330 holds an identifier corresponding to the content of data specified by this index in association with the index.

ディスクボリューム番号DVNは、対応するディスクボリューム100-iを識別するための番号である。本実施形態においてディスクボリューム番号DVNは、中継装置30内の全てのディスクボリューム100-iに対してシリアルに割り当てられる。このディスクボリューム番号DVNは、中継装置30からストレージ装置10に対して問い合わせのためのCDB(Command Descriptor Block)を発行することにより取得される。iSCSIの場合、DVNに代えて、当該DVNとiSCSI−InitiatorName(イニシエータの名前)との組を利用することも可能である。   The disk volume number DVN is a number for identifying the corresponding disk volume 100-i. In this embodiment, the disk volume number DVN is serially assigned to all the disk volumes 100-i in the relay apparatus 30. This disk volume number DVN is acquired by issuing a CDB (Command Descriptor Block) for inquiry from the relay device 30 to the storage device 10. In the case of iSCSI, instead of DVN, a combination of the DVN and iSCSI-InitiatorName (initiator name) can be used.

図4は、キャッシュインデックステーブル330のデータ構造例を示す。図4の例では、キャッシュインデックステーブル330はエントリの群を有する。キャッシュインデックステーブル330は、対応するディスクボリューム100-iに固有のディスクボリューム番号DVNをエントリ群から独立に保持する。キャッシュインデックステーブル330の各エントリは、対応するディスクボリューム100-i内の論理ブロックの論理ブロックアドレスLBAと、当該論理ブロックに格納されているデータ(ブロックデータ)の内容に対応する識別子とを保持する。   FIG. 4 shows an exemplary data structure of the cache index table 330. In the example of FIG. 4, the cache index table 330 has a group of entries. The cache index table 330 holds a disk volume number DVN unique to the corresponding disk volume 100-i independently from the entry group. Each entry in the cache index table 330 holds a logical block address LBA of a logical block in the corresponding disk volume 100-i and an identifier corresponding to the content of data (block data) stored in the logical block. .

このように、図4に示されるキャッシュインデックステーブル330は、ディスクボリューム100-i内の論理ブロックのデータを指定するための各インデックスを、当該各インデックスに共通のディスクボリューム番号DVNと、当該インデックス毎に異なる論理ブロックアドレスLBAとに分離して保持している。これによりキャッシュインデックステーブル330の各エントリに必要な記憶容量を低減している。キャッシュインデックステーブル330に、当該テーブル330のエントリ群から独立に保持されディスクボリューム番号DVNは、当該エントリ群の各々に保持される論理ブロックアドレスLBAと組み合わせてインデックスを構成する。このため、キャッシュインデックステーブル330の各エントリは、等価的に、インデックス及び識別子の組を保持しているといえる。   As described above, the cache index table 330 shown in FIG. 4 includes each index for designating data of a logical block in the disk volume 100-i, a disk volume number DVN common to each index, and each index. Are separated into different logical block addresses LBA. This reduces the storage capacity required for each entry in the cache index table 330. The disk volume number DVN held in the cache index table 330 independently from the entry group of the table 330 constitutes an index in combination with the logical block address LBA held in each of the entry group. Therefore, it can be said that each entry of the cache index table 330 equivalently holds a pair of an index and an identifier.

さて、キャッシュインデックステーブル330の各エントリに保持される識別子は、例えば、aを論理ブロックのデータ長(ここではセクタ長)を表す0より大きい整数とすると、対応するインデックス中の論理ブロックアドレスLBAで指定される論理ブロックに格納されているaセクタ(512バイトの倍数)分のデータのハッシュ値である。このように本実施形態では、キャッシュインデックステーブル330(及びキャッシュデータテーブル340)によって管理されるキャッシュブロックのデータ長(サイズ)が、論理ブロックのデータ長に等しいものとする。勿論、論理ブロックを複数のブロックに等分し、その等分された各ブロックをキャッシュブロックとして管理することも可能である。更に本実施形態では、説明の簡略化のために、aが1であり、キャッシュインデックステーブル330(及びキャッシュデータテーブル340)の1エントリが1セクタ(=512バイト)単位で管理されるものとする。   The identifier held in each entry of the cache index table 330 is, for example, the logical block address LBA in the corresponding index when a is an integer greater than 0 representing the data length (sector length in this case) of the logical block. This is a hash value of data for a sector (a multiple of 512 bytes) stored in the specified logical block. As described above, in this embodiment, it is assumed that the data length (size) of the cache block managed by the cache index table 330 (and the cache data table 340) is equal to the data length of the logical block. Of course, it is also possible to equally divide a logical block into a plurality of blocks and manage each equally divided block as a cache block. Furthermore, in this embodiment, for simplicity of explanation, it is assumed that a is 1, and one entry of the cache index table 330 (and the cache data table 340) is managed in units of one sector (= 512 bytes). .

キャッシュインデックステーブル330は、ストレージ装置10内のディスクボリューム(論理ボリューム)100-i毎に用意される。つまり、中継装置30には、当該中継装置30でアクセスを中継しているストレージ装置10上のディスクボリューム100-iの数に相当するキャッシュインデックステーブル330が存在する。   The cache index table 330 is prepared for each disk volume (logical volume) 100-i in the storage apparatus 10. In other words, the relay device 30 has a cache index table 330 corresponding to the number of disk volumes 100-i on the storage device 10 to which access is relayed by the relay device 30.

キャッシュデータテーブル340は、キャッシュインデックステーブル330によって管理されるa(本実施形態ではa=1)セクタ分のデータのハッシュ値を識別子として、当該識別子と、キャッシュデータ格納部350における当該データ(キャッシュデータ)の格納(登録)先のアドレスとの組を保持するエントリの群を有する。つまりキャッシュデータテーブル340は、キャッシュインデックステーブル330のエントリに論理ブロックアドレスLBAと対応付けて保持されている識別子と、対応するキャッシュデータの格納先のアドレス(以下、キャッシュデータアドレスと称する)との組を保持するエントリの群を有する。図5は、キャッシュデータテーブル340のデータ構造例を示す。   The cache data table 340 uses a hash value of data for a (a = 1 in this embodiment) sectors managed by the cache index table 330 as an identifier, and the identifier and the data (cache data in the cache data storage unit 350). ) Has a group of entries that hold a pair with a storage (registration) destination address. That is, the cache data table 340 is a set of an identifier held in association with the logical block address LBA in an entry of the cache index table 330 and a storage address of the corresponding cache data (hereinafter referred to as a cache data address). Has a group of entries. FIG. 5 shows an example of the data structure of the cache data table 340.

以下の説明では、キャッシュデータ格納部350に格納されるデータ(キャッシュデータ)の内容に対応する識別子(を含むエントリ情報)を、キャッシュデータテーブル340のエントリに登録することを、キャッシュデータテーブル340にデータを登録すると表現することもある。また、キャッシュデータ格納部350に格納されるデータの内容に対応する識別子(を含むエントリ情報)が、キャッシュデータテーブル340のエントリに登録されている状態を、キャッシュデータテーブル340にデータが登録されていると表現することもある。つまりキャッシュインデックステーブル330及びキャッシュデータテーブル340は、ストレージ装置10のディスクボリューム100-iに格納されるデータを、当該データの内容に対応する識別子に対応付けて格納するためのキャッシュ格納部380を構成する。   In the following description, registering an identifier (including entry information) corresponding to the content of data (cache data) stored in the cache data storage unit 350 in an entry of the cache data table 340 is described in the cache data table 340. Sometimes expressed as registering data. In addition, the identifier (including entry information) corresponding to the content of the data stored in the cache data storage unit 350 is registered in the entry of the cache data table 340, and the data is registered in the cache data table 340. Sometimes expressed. That is, the cache index table 330 and the cache data table 340 constitute a cache storage unit 380 for storing data stored in the disk volume 100-i of the storage apparatus 10 in association with an identifier corresponding to the content of the data. To do.

キャッシュインデックステーブル330及びキャッシュデータテーブル340は、例えば、中継装置30のハードウェア構成に含まれている主記憶装置22及び補助記憶装置23の記憶領域の一部に格納して用いられるものとする。また、キャッシュデータ格納部350は、主記憶装置22及び補助記憶装置23それぞれの記憶領域(揮発性記憶領域及び不揮発性記憶領域)の一部を用いて実現されるものとする。具体的には、テーブル330及び340は、中継装置30の動作状態では主記憶装置22に格納して用いられ、少なくとも中継装置30の動作が停止される際には補助記憶装置23に保存される。そしてテーブル330及び340は、中継装置30の起動時に補助記憶装置23から主記憶装置22にロードして用いられる。キャッシュデータ格納部350のデータも同様である。しかし、このような形態は一例であり、例えば主記憶装置22(揮発性記憶装置)及び補助記憶装置23(不揮発性記憶装置)の一方だけを用いても構わない。   For example, the cache index table 330 and the cache data table 340 are used by being stored in a part of the storage areas of the main storage device 22 and the auxiliary storage device 23 included in the hardware configuration of the relay device 30. The cache data storage unit 350 is realized by using a part of the storage areas (volatile storage area and nonvolatile storage area) of the main storage device 22 and the auxiliary storage device 23. Specifically, the tables 330 and 340 are stored and used in the main storage device 22 in the operation state of the relay device 30, and are stored in the auxiliary storage device 23 at least when the operation of the relay device 30 is stopped. . The tables 330 and 340 are loaded from the auxiliary storage device 23 to the main storage device 22 when the relay device 30 is activated. The same applies to the data stored in the cache data storage unit 350. However, such a form is an example, and for example, only one of the main storage device 22 (volatile storage device) and the auxiliary storage device 23 (nonvolatile storage device) may be used.

なお、本実施形態ではiSCSIによるブロック型転送プロトコルを例として、キャッシュインデックステーブル330及びキャッシュデータテーブル340の説明を行うが、iSCSIに限るものではない。例えば、インデックスとしてパス名を利用することで、iSCSIによるブロック型転送プロトコルに代えて、NFS(Network File System)やCIFS(Common Internet File System)などのファイル転送プロトコルを適用することも可能である。   In the present embodiment, the cache index table 330 and the cache data table 340 are described by taking the block type transfer protocol by iSCSI as an example, but the present invention is not limited to iSCSI. For example, by using a path name as an index, a file transfer protocol such as NFS (Network File System) or CIFS (Common Internet File System) can be applied instead of the block transfer protocol based on iSCSI.

キャッシュデータ格納部350は、キャッシュデータテーブル340の各エントリによって管理されるキャッシュデータアドレスに、a(=1)セクタ分のキャッシュデータを格納する。このキャッシュデータのハッシュ値は、キャッシュデータテーブル340の対応するエントリにキャッシュデータアドレスと組をなして保持されている識別子に一致する。   The cache data storage unit 350 stores cache data for a (= 1) sectors at the cache data address managed by each entry of the cache data table 340. The hash value of the cache data matches the identifier held in the corresponding entry of the cache data table 340 in pairs with the cache data address.

次に、図6を参照して、キャッシュインデックステーブル330、キャッシュデータテーブル340及びキャッシュデータ格納部350の関係について説明する。なお、図6においては、図4及び図5とは異なり、キャッシュインデックステーブル330及びキャッシュデータテーブル340に保持(登録)されている、ディスクボリューム番号DVN、論理ブロックアドレスLBA、識別子(ハッシュ値)及びキャッシュデータアドレスについては、便宜的に簡略化して記載されている。   Next, the relationship among the cache index table 330, the cache data table 340, and the cache data storage unit 350 will be described with reference to FIG. In FIG. 6, unlike FIGS. 4 and 5, the disk volume number DVN, logical block address LBA, identifier (hash value), and identifier stored (registered) in the cache index table 330 and the cache data table 340 The cache data address is simplified for convenience.

図6では、ディスクボリューム番号「DVN1」によって識別されるストレージ装置10内のディスクボリューム、例えばディスクボリューム100-1に対応するキャッシュインデックステーブル330について説明する。   FIG. 6 illustrates a cache index table 330 corresponding to a disk volume in the storage apparatus 10 identified by the disk volume number “DVN1”, for example, the disk volume 100-1.

このキャッシュインデックステーブル330の第1エントリには、論理ブロックアドレス「LBA1」に対応付けて識別子「ハッシュ値1」が登録されている。またキャッシュインデックステーブル330の第2、第3及び第4エントリには、それぞれ、論理ブロックアドレス「LBA2」に対応付けて識別子「ハッシュ値2」が、論理ブロックアドレス「LBA3」に対応付けて識別子「ハッシュ値3」が、論理ブロックアドレス「LBA4」に対応付けて識別子「ハッシュ値1」が登録されている。つまり、論理ブロックアドレス「LBA1」に格納されているデータ及び論理ブロックアドレス「LBA4」に格納されているデータは同一である。換言すれば、キャッシュインデックステーブル330に保持されている論理ブロックアドレス「LBA1」及び「LBA4」は、同一データを指し示している。   In the first entry of the cache index table 330, the identifier “hash value 1” is registered in association with the logical block address “LBA1”. In the second, third and fourth entries of the cache index table 330, the identifier “hash value 2” is associated with the logical block address “LBA2”, and the identifier “HBA3” is associated with the identifier “ The identifier “hash value 1” is registered in association with the hash value 3 ”and the logical block address“ LBA4 ”. That is, the data stored in the logical block address “LBA1” and the data stored in the logical block address “LBA4” are the same. In other words, the logical block addresses “LBA1” and “LBA4” held in the cache index table 330 indicate the same data.

一方、キャッシュデータテーブル340の第1エントリには、識別子「ハッシュ値1」に対応付けてキャッシュデータアドレスとして「アドレス1」が登録されている。またキャッシュデータテーブル340の第2の及び第3のエントリには、それぞれ、識別子「ハッシュ値2」に対応付けてキャッシュデータアドレスとして「アドレス2」が、識別子「ハッシュ値3」に対応付けてキャッシュデータアドレスとして「アドレス3」が登録されている。つまりキャッシュデータテーブル340の第1、第2及び第3エントリには、それぞれ、識別子「ハッシュ値1」、「ハッシュ値2」及び「ハッシュ値1」に対応するデータ(ここでは、データA、データB及びデータC)が登録されている。これらのデータは、漏洩しても問題のないデータである。   On the other hand, in the first entry of the cache data table 340, “address 1” is registered as a cache data address in association with the identifier “hash value 1”. In the second and third entries of the cache data table 340, “address 2” is associated with the identifier “hash value 2” as the cache data address, and cache is associated with the identifier “hash value 3”. “Address 3” is registered as the data address. That is, the first, second, and third entries of the cache data table 340 include data corresponding to the identifiers “hash value 1”, “hash value 2”, and “hash value 1” (here, data A, data B and data C) are registered. These data are data that can be leaked without any problem.

また、キャッシュデータ格納部350の「アドレス1」にはデータAが格納されている。キャッシュデータ格納部350の「アドレス2」及び「アドレス3」には、それぞれ、データB及びデータCが格納されている。   Further, data A is stored at “address 1” of the cache data storage unit 350. Data B and data C are stored in “address 2” and “address 3” of the cache data storage unit 350, respectively.

なお、データAは、キャッシュデータ格納部350の「アドレス1」にキャッシュされているデータであり、ディスクボリューム番号「DVN1」によって識別されるストレージ装置10内のディスクボリューム100-1の論理ブロックアドレス「LBA1」及び論理ブロックアドレス「LBA4」に格納されているデータ(と同一)である。   The data A is data cached at “address 1” in the cache data storage unit 350, and the logical block address “of the disk volume 100-1 in the storage apparatus 10 identified by the disk volume number“ DVN1 ”. LBA1 ”and data stored in the logical block address“ LBA4 ”.

データBは、キャッシュデータ格納部350の「アドレス2」にキャッシュされているデータであり、ディスクボリューム番号「DVN1」によって識別されるストレージ装置10内のディスクボリューム100-1の論理ブロックアドレス「LBA2」に格納されているデータ(と同一)である。   The data B is data cached at “address 2” in the cache data storage unit 350, and the logical block address “LBA2” of the disk volume 100-1 in the storage apparatus 10 identified by the disk volume number “DVN1”. Is the same as the data stored in

また、データCは、キャッシュデータ格納部350の「アドレス3」にキャッシュされているデータであり、ディスクボリューム番号「DVN1」によって識別されるストレージ装置10内のストレージ装置10のディスクボリュームシリアル番号「1」の論理ブロックアドレス「3」に格納されているデータ(と同一)である。   The data C is data cached at “address 3” in the cache data storage unit 350, and the disk volume serial number “1” of the storage apparatus 10 in the storage apparatus 10 identified by the disk volume number “DVN1”. Data stored in the logical block address “3” of “”.

上記したように、キャッシュインデックステーブル330及びキャッシュデータテーブル340は、識別子(ハッシュ値)により関連付けられている。これにより、例えばストレージ装置10からストレージ装置10に対するリード要求があった場合には、中継装置30は、当該リード要求に含まれるインデックス(ディスクボリュームシリアル番号及び論理ブロックアドレス)からキャッシュデータ格納部350に格納(キャッシュ)されているキャッシュデータを特定できる。   As described above, the cache index table 330 and the cache data table 340 are associated by an identifier (hash value). Thereby, for example, when there is a read request from the storage apparatus 10 to the storage apparatus 10, the relay apparatus 30 transfers the index (disk volume serial number and logical block address) included in the read request to the cache data storage unit 350. The cache data stored (cached) can be specified.

再び図3を参照すると、識別子生成部360は、キャッシュ管理部320からaセクタ分のデータを受け取ることにより、当該データの内容に対応する識別子を生成し、生成された識別子をキャッシュ管理部320に応答する。本実施例では識別子の生成に所定のハッシュ関数が用いられる。このハッシュ関数には、MD(Merkle-Damgard)5やSHA(Secure Hash Algorithm)1などが利用できる。   Referring to FIG. 3 again, the identifier generation unit 360 receives the data for a sector from the cache management unit 320, generates an identifier corresponding to the content of the data, and sends the generated identifier to the cache management unit 320. respond. In this embodiment, a predetermined hash function is used for generating the identifier. For this hash function, MD (Merkle-Damgard) 5 or SHA (Secure Hash Algorithm) 1 can be used.

キャッシュ登録要求処理部370は、クライアント装置20内のキャッシュ登録データ選択・要求送信部220から、入力として、当該クライアント装置20のイニシエータ名と、キャッシュデータとして登録されるべきデータ(例えばファイル)の論理ブロックアドレスLBA及びデータ長(セクタ数)Lとを(含むキャッシュ登録要求を)受信する。説明の簡略化のために、データ長Lは、論理ブロックのデータ長の整数倍であるものとする。   The cache registration request processing unit 370 receives as input from the cache registration data selection / request transmission unit 220 in the client device 20 the logic of the initiator name of the client device 20 and data (for example, a file) to be registered as cache data. The block address LBA and the data length (number of sectors) L are received (including a cache registration request). For simplicity of explanation, it is assumed that the data length L is an integer multiple of the data length of the logical block.

キャッシュ登録要求処理部370は、この入力を受信すると、当該イニシエータ名に対応するiSCSIセッション内において、当該論理ブロックアドレスLBA及びデータ長Lで指定されるデータを受信するためのiSCSI−PDUを生成する。   Upon receiving this input, the cache registration request processing unit 370 generates an iSCSI-PDU for receiving the data specified by the logical block address LBA and the data length L in the iSCSI session corresponding to the initiator name. .

キャッシュ登録要求処理部370は、中継部310と連携して、生成されたiSCSI−PDUをストレージ装置10に送信する。このiSCSI−PDUの送信により、キャッシュ登録要求処理部370は、ストレージ装置10からiSCSI−PDUによって通知される論理ブロックアドレスLBA及びデータ長Lで指定されるデータ領域のデータを受信する。キャッシュ登録要求処理部370は、この受信データの情報を、キャッシュ管理部320と連携して、キャッシュインデックステーブル330及びキャッシュデータテーブル340に登録する。   The cache registration request processing unit 370 transmits the generated iSCSI-PDU to the storage device 10 in cooperation with the relay unit 310. By transmitting the iSCSI-PDU, the cache registration request processing unit 370 receives the data in the data area specified by the logical block address LBA and the data length L notified from the storage apparatus 10 by the iSCSI-PDU. The cache registration request processing unit 370 registers the received data information in the cache index table 330 and the cache data table 340 in cooperation with the cache management unit 320.

<中継装置の動作の概要>
まず、中継装置30を中心とする動作の概要について説明する。
中継装置30は、自身が中継するiSCSI−PDUがデータ転送に関係するか否かによって動作を切り替える。まず、中継するiSCSI−PDUがデータ転送に関係しないものであれば、中継装置30は、iSCSI−PDUをそのまま相手先に対して転送する動作を行う。これに対し、iSCSI−PDUがデータ転送に関係するものであれば、中継装置30は、キャッシュ管理部320を通してキャッシュアクセス動作を行う。
<Outline of operation of relay device>
First, an outline of the operation centering on the relay device 30 will be described.
The relay device 30 switches operation depending on whether or not the iSCSI-PDU relayed by the relay device 30 is related to data transfer. First, if the iSCSI-PDU to be relayed is not related to data transfer, the relay device 30 performs an operation of transferring the iSCSI-PDU as it is to the other party. On the other hand, if the iSCSI-PDU is related to data transfer, the relay device 30 performs a cache access operation through the cache management unit 320.

また中継装置30は、次の2種類の動作をもう。2種類の動作の1つは、中継装置30にキャッシュデータを登録するためのキャッシュ登録動作である。2種類の動作の他の1つは、クライアント装置20からストレージ装置10にiSCSIセッション(入出力セッション)を中継するためのiSCSIセッション中継動作である。このiSCSIセッション中継動作が行われる際には、後述するキャッシュ動作も行われる。   In addition, the relay device 30 performs the following two types of operations. One of the two types of operations is a cache registration operation for registering cache data in the relay device 30. Another one of the two types of operations is an iSCSI session relay operation for relaying an iSCSI session (input / output session) from the client device 20 to the storage device 10. When this iSCSI session relay operation is performed, a cache operation described later is also performed.

<キャッシュ登録動作>
次に、中継装置30にキャッシュデータを登録するためのキャッシュ登録動作について説明する。
<Cache registration operation>
Next, a cache registration operation for registering cache data in the relay device 30 will be described.

まず、キャッシュ登録動作の概要について説明する。
本実施形態では、キャッシュ登録動作は以下の2つの手順1及び2から構成される。
手順1:クライアント装置20のキャッシュ登録データ選択・要求送信部220は、中継装置30に対して、キャッシュ登録すべきデータのインデックスをキャッシュ登録要求により送信する。
First, an overview of the cache registration operation will be described.
In the present embodiment, the cache registration operation includes the following two procedures 1 and 2.
Procedure 1: The cache registration data selection / request transmission unit 220 of the client device 20 transmits an index of data to be cache registered to the relay device 30 in response to a cache registration request.

手順2:中継装置30のキャッシュ登録要求処理部370は、クライアント装置20のキャッシュ登録データ選択・要求送信部220からインデックスを(含むキャッシュ登録要求を)受信すると、中継部310を用いて、当該インデックスに対応するデータをストレージ装置10から読み込む。中継装置30のキャッシュ管理部320は、読み込まれたデータをキャッシュデータとしてキャッシュデータ格納部350に格納すると共に、そのキャッシュデータを管理するためのキャッシュインデックステーブル330及びキャッシュデータテーブル340に新たなエントリ情報を登録する。但し、テーブル340及び340に既にエントリ情報が登録されているデータであれば、新たなエントリ情報の登録は行われない。   Procedure 2: When the cache registration request processing unit 370 of the relay device 30 receives an index (including a cache registration request) from the cache registration data selection / request transmission unit 220 of the client device 20, the cache registration request processing unit 370 uses the relay unit 310 to Is read from the storage device 10. The cache management unit 320 of the relay device 30 stores the read data as cache data in the cache data storage unit 350 and adds new entry information to the cache index table 330 and the cache data table 340 for managing the cache data. Register. However, if the entry information is already registered in the tables 340 and 340, the new entry information is not registered.

次に手順1及び2の詳細について、図7のフローチャートを参照して説明する。
<手順1の詳細>
まず、手順1の詳細について説明する。
今、ディスクボリューム100-1に格納されている複数のファイルが、クライアント装置20のファイルシステム211によって管理されているものとする。このファイルシステム211は、ストレージ装置10上のディスクボリューム100-1から構成されることに注意されたい。
Next, the details of the procedures 1 and 2 will be described with reference to the flowchart of FIG.
<Details of Procedure 1>
First, details of the procedure 1 will be described.
Now, it is assumed that a plurality of files stored in the disk volume 100-1 are managed by the file system 211 of the client apparatus 20. It should be noted that this file system 211 is composed of a disk volume 100-1 on the storage apparatus 10.

クライアント装置20のキャッシュ登録データ選択・要求送信部220は、当該クライアント装置20のファイルシステム211によって管理されているファイルの中から、中継装置30にキャッシュデータとして登録する対象とすべき1つ以上のファイルを決定する(ステップ700)。このファイルの決定には、例えば、クライアント装置20のハードウェア構成に含まれている入出力装置25(図2参照)を用いた、当該クライアント装置20のユーザやシステム管理者からの、キャッシュ登録データ選択・要求送信部220に対する明示的な指定や、ファイル名などからの自動決定など様々な方法が適用可能である。ここでは、ファイル名が指定されるものとする。またステップ700では、キャッシュ登録先の中継装置30のアドレス(例えばIPアドレス)も指定される。   The cache registration data selection / request transmission unit 220 of the client device 20 includes one or more items to be registered as cache data in the relay device 30 from the files managed by the file system 211 of the client device 20. A file is determined (step 700). For the determination of this file, for example, cache registration data from the user of the client device 20 or the system administrator using the input / output device 25 (see FIG. 2) included in the hardware configuration of the client device 20 Various methods such as explicit designation for the selection / request transmission unit 220 and automatic determination based on a file name can be applied. Here, it is assumed that a file name is specified. In step 700, the address (for example, IP address) of the relay apparatus 30 that is the cache registration destination is also designated.

つまり、ステップ700においてキャッシュ登録データ選択・要求送信部220は、キャッシュ登録対象となるファイルのファイル名の指定を入力して、キャッシュ登録対象となるファイルを決定する。またステップ700においてキャッシュ登録データ選択・要求送信部220は、キャッシュ登録先の中継装置30のアドレスの指定も入力する。   That is, in step 700, the cache registration data selection / request transmission unit 220 inputs the designation of the file name of the cache registration target file, and determines the cache registration target file. In step 700, the cache registration data selection / request transmission unit 220 also inputs the designation of the address of the cache registration destination relay device 30.

キャッシュ登録データ選択・要求送信部220は、指定されたキャッシュ登録の対象となるファイルが格納されているディスクボリューム100-1を識別するディスクボリューム番号DVN、当該ファイルが格納されているディスクボリューム100-i内のデータ領域を指定するデータ領域情報LBA/Lを、クライアント装置20のファイルシステム211を通して取得する(ステップ701)。ここでは、説明の簡略化のために、データ領域(ファイル)のデータ長Lが、1論理ブロックの長さに一致するa(=1)セクタであるものとする。   The cache registration data selection / request transmission unit 220 identifies the disk volume number DVN for identifying the disk volume 100-1 in which the specified cache registration target file is stored, and the disk volume 100- in which the file is stored. Data area information LBA / L designating the data area in i is acquired through the file system 211 of the client device 20 (step 701). Here, for simplification of description, it is assumed that the data length L of the data area (file) is a (= 1) sector that matches the length of one logical block.

次にキャッシュ登録データ選択・要求送信部220は、指定された中継装置30のキャッシュ登録要求処理部370に対して、キャッシュデータの登録を要求するためのキャッシュ登録要求を送信する(ステップ702)。このキャッシュ登録要求は、キャッシュ登録の対象となるデータ(ここでは、ファイルのデータ)を示すインデックスを含む。このインデックスは、ステップ701で取得された、ディスクボリューム番号DVN及び論理ブロックアドレスLBAを含む。キャッシュ登録要求は更に、ステップ701で取得されたキャッシュ登録の対象となるデータ(以下、キャッシュ登録対象データと称する)のデータ長Lの情報を含む。つまりキャッシュ登録要求は、ディスクボリューム番号DVN及びデータ領域情報LBA/Lを含む。   Next, the cache registration data selection / request transmission unit 220 transmits a cache registration request for requesting registration of cache data to the cache registration request processing unit 370 of the designated relay device 30 (step 702). This cache registration request includes an index indicating data (file data in this case) that is a target of cache registration. This index includes the disk volume number DVN and logical block address LBA acquired in step 701. The cache registration request further includes information on the data length L of the data that is the target of cache registration acquired in step 701 (hereinafter referred to as cache registration target data). That is, the cache registration request includes the disk volume number DVN and the data area information LBA / L.

なお、キャッシュ登録データ選択・要求送信部220が、ストレージ装置10に対してアクセスするクライアント装置20から独立の装置(以下、第3の装置と称する)に備えられていても構わない。但し、本実施形態では、キャッシュ登録データ選択・要求送信部220がクライアント装置20に備えられていることから、つまりクライアント装置20(第2の装置)が第3の装置を兼ねていることから、クライアント装置20(内のキャッシュ登録データ選択・要求送信部220)自身が、キャッシュ登録の必要性のあるデータを判断して、中継装置30に対して自らキャッシュ登録を依頼することができる。   Note that the cache registration data selection / request transmission unit 220 may be provided in a device independent of the client device 20 that accesses the storage device 10 (hereinafter referred to as a third device). However, in this embodiment, the cache registration data selection / request transmission unit 220 is provided in the client device 20, that is, the client device 20 (second device) also serves as the third device. The client device 20 (internal cache registration data selection / request transmission unit 220) itself can determine the data that needs to be registered and request the relay device 30 to perform cache registration.

<手順2の詳細>
次に、手順2の詳細について説明する。
中継装置30のキャッシュ登録要求処理部370はキャッシュ登録要求受信手段として機能して、クライアント装置20のキャッシュ登録データ選択・要求送信部220から送信されたキャッシュ登録要求を受信する(ステップ703)。
<Details of step 2>
Next, details of the procedure 2 will be described.
The cache registration request processing unit 370 of the relay device 30 functions as a cache registration request receiving unit, and receives the cache registration request transmitted from the cache registration data selection / request transmission unit 220 of the client device 20 (step 703).

キャッシュ登録要求処理部370は、キャッシュ登録要求を受信すると(ステップ703)、当該キャッシュ登録要求に含まれているインデックス中のディスクボリューム番号DVNで指定されるストレージ装置10のディスクボリューム100-1に、中継部310を通して中継装置30を接続する(ステップ704)。ここで中継装置30と接続されるディスクボリューム100-1は、キャッシュ登録を要求したクライアント装置20から現在接続されているストレージ装置10のディスクボリュームに一致する。ステップ704での接続動作では、現在中継装置30が中継中の、クライアント装置20とストレージ装置10との間のiSCSIセッションとは独立したセッションが確立される。なお、ステップ704でのセッションの確立が、クライアント装置20のキャッシュ登録データ選択・要求送信部220からキャッシュ登録が要求される前に、つまり事前に行われてもよい。   When the cache registration request processing unit 370 receives the cache registration request (step 703), the cache registration request processing unit 370 adds to the disk volume 100-1 of the storage apparatus 10 specified by the disk volume number DVN in the index included in the cache registration request. The relay device 30 is connected through the relay unit 310 (step 704). Here, the disk volume 100-1 connected to the relay apparatus 30 matches the disk volume of the storage apparatus 10 currently connected from the client apparatus 20 that requested the cache registration. In the connection operation in step 704, a session independent of the iSCSI session between the client apparatus 20 and the storage apparatus 10 that is currently being relayed by the relay apparatus 30 is established. The session establishment in step 704 may be performed before the cache registration is requested from the cache registration data selection / request transmission unit 220 of the client device 20, that is, in advance.

ステップ704の実行により上述のセッションが確立した状態で、キャッシュ登録要求処理部370は、クライアント装置20からキャッシュ登録が要求されたキャッシュ登録対象データを読み込むためのリード命令を生成する(ステップ705)。このステップ705においてキャッシュ登録要求処理部370は、生成したリード命令を、中継部310を介してストレージ装置10に送信する。   In a state where the above-described session is established by execution of step 704, the cache registration request processing unit 370 generates a read command for reading the cache registration target data requested for cache registration from the client device 20 (step 705). In step 705, the cache registration request processing unit 370 transmits the generated read command to the storage apparatus 10 via the relay unit 310.

ストレージ装置10は、中継部310を介して送信されたリード要求に基づき、要求されたデータをディスクボリューム100-1から読み出して中継部310に返す。キャッシュ登録要求処理部370は、中継部310に返されたデータをキャッシュ登録対象データとして、当該中継部310を介して取得する(ステップ706)。このようにしてキャッシュ登録要求処理部370は、キャッシュ登録対象データ(ここでは、ディスクボリューム番号DVNで指定されるディスクボリューム100-1内の、論理ブロックアドレスLBA及びデータ長Lで指定されるデータ領域に格納されているaセクタ分のデータ)を取得する。   Based on the read request transmitted via the relay unit 310, the storage device 10 reads the requested data from the disk volume 100-1 and returns it to the relay unit 310. The cache registration request processing unit 370 acquires the data returned to the relay unit 310 as cache registration target data via the relay unit 310 (step 706). In this way, the cache registration request processing unit 370 performs cache registration target data (here, the data area specified by the logical block address LBA and the data length L in the disk volume 100-1 specified by the disk volume number DVN). Data for a sector) stored in.

キャッシュ登録要求処理部370は、取得したキャッシュ登録対象データをキャッシュ管理部320に渡して、ステップ703で受信したキャッシュ登録要求の指定するキャッシュ登録動作を指示する。するとキャッシュ管理部320のキャッシュ登録部320aは、キャッシュ登録対象データを識別子生成部360に渡して、当該データの識別子の生成を要求する。   The cache registration request processing unit 370 passes the acquired cache registration target data to the cache management unit 320 and instructs a cache registration operation designated by the cache registration request received in step 703. Then, the cache registration unit 320a of the cache management unit 320 passes the cache registration target data to the identifier generation unit 360 and requests generation of the identifier of the data.

識別子生成部360は、キャッシュ登録対象データのハッシュ値を所定のハッシュ関数を用いて生成し、生成されたハッシュ値を当該データの識別子としてキャッシュ管理部320のキャッシュ登録部320aに返す(ステップ707)。つまり識別子生成部360は、取得されたキャッシュ登録対象データのハッシュ値を、要求された識別子として生成する。なお、中継部310、キャッシュ管理部320、識別子生成部360及びキャッシュ登録要求処理部370の間のキャッシュ登録対象データの授受は、図示せぬバッファを介して行われるものとする。この場合、キャッシュ登録対象データの物理的移動は必ずしも発生しない。   The identifier generation unit 360 generates a hash value of the cache registration target data using a predetermined hash function, and returns the generated hash value to the cache registration unit 320a of the cache management unit 320 as an identifier of the data (step 707). . That is, the identifier generation unit 360 generates the acquired hash value of the cache registration target data as the requested identifier. It is assumed that cache registration target data among the relay unit 310, the cache management unit 320, the identifier generation unit 360, and the cache registration request processing unit 370 is exchanged via a buffer (not shown). In this case, physical movement of cache registration target data does not necessarily occur.

キャッシュ登録部320aは、識別子生成部360によって生成された識別子を含む第1及び第2のエントリ情報を、それぞれキャッシュインデックステーブル330(ステップ705で取得されたデータが格納されているディスクボリューム100-1に対応するキャッシュインデックステーブル330)、及びキャッシュデータテーブル340に登録する(ステップ708)。但し、生成された識別子に一致する識別子を含むエントリがキャッシュデータテーブル340に既に存在する場合には、第1及び第2のエントリ情報の登録は行われない。   The cache registration unit 320a uses the cache index table 330 (the disk volume 100-1 storing the data acquired in step 705) as the first and second entry information including the identifier generated by the identifier generation unit 360. Are registered in the cache index table 330) and the cache data table 340 (step 708). However, when an entry including an identifier that matches the generated identifier already exists in the cache data table 340, the first and second entry information is not registered.

第1のエントリ情報は、インデックスの一部をなす論理ブロックアドレスLBAと生成された識別子とを含む。キャッシュインデックステーブル330は、このインデックスに含まれているディスクボリューム番号DVNを保持している。このため、第1のエントリ情報をキャッシュインデックステーブル330に登録することは、当該テーブル330に、インデックスに対応付けて識別子を登録することと等価である。   The first entry information includes a logical block address LBA that forms part of the index and a generated identifier. The cache index table 330 holds the disk volume number DVN included in this index. Therefore, registering the first entry information in the cache index table 330 is equivalent to registering an identifier in the table 330 in association with the index.

第2のエントリ情報は、生成された識別子と、当該識別子によって示されるデータがキャッシュデータとして格納されるキャッシュデータ格納部350のアドレス(キャッシュデータアドレス)とを含む。ステップ708においてキャッシュ登録部320aは、このキャッシュデータアドレスで指定されるキャッシュデータ格納部350の領域に、識別子によって示されるデータをキャッシュデータとして格納する。なお、このキャッシュデータの格納の後に、第1及び第2のエントリ情報の登録が行われてもよい。   The second entry information includes a generated identifier and an address (cache data address) of the cache data storage unit 350 in which data indicated by the identifier is stored as cache data. In step 708, the cache registration unit 320a stores the data indicated by the identifier as cache data in the area of the cache data storage unit 350 specified by the cache data address. The first and second entry information may be registered after the cache data is stored.

キャッシュ登録部320aによるステップ708の処理が終了すると、キャッシュ登録要求処理部370は、ステップ704で確立したセッションを閉じてから、クライアント装置20のキャッシュ登録データ選択・要求送信部220にキャッシュ登録完了の応答を返す(ステップ709)。   When the processing in step 708 by the cache registration unit 320a is completed, the cache registration request processing unit 370 closes the session established in step 704 and then completes the cache registration to the cache registration data selection / request transmission unit 220 of the client device 20. A response is returned (step 709).

もし、キャッシュ登録データ選択・要求送信部220に対して入力として複数のファイルが指定された場合、上述のステップ701〜709が、その指定された全てのファイルについて繰り返される(ステップ710)。   If a plurality of files are designated as input to the cache registration data selection / request transmission unit 220, the above-described steps 701 to 709 are repeated for all the designated files (step 710).

このように本実施形態においては、クライアント装置20からのキャッシュ登録要求を中継装置30が実行するだけで、当該要求に含まれているインデックスで指定されたデータだけをストレージ装置10から読み込んで、キャッシュデータとして当該中継装置30に登録することができる。このため本実施形態においては、従来技術とは異なり、クライアント装置とストレージ装置との間でデータが転送される都度、属性情報を通知するとか、データ毎に管理されている属性情報を、データ転送とは別に、ストレージ装置から中継装置に通知(転送)しなくて済む。なお、本実施形態において、クライアント装置20からのキャッシュ登録要求で指定されるデータは、漏洩しても問題のないデータ、例えばOSのファイルや、アプリケーションプログラムファイル等である。   As described above, in this embodiment, the relay device 30 simply executes the cache registration request from the client device 20, and reads only the data specified by the index included in the request from the storage device 10 to Data can be registered in the relay device 30 as data. For this reason, in this embodiment, unlike the prior art, every time data is transferred between the client device and the storage device, the attribute information is notified or the attribute information managed for each data is transferred to the data. Apart from this, there is no need to notify (transfer) the storage apparatus to the relay apparatus. In this embodiment, the data specified by the cache registration request from the client device 20 is data that does not cause a problem even if leaked, such as an OS file or an application program file.

<クライアント/ストレージ装置間のiSCSIセッション中継とキャッシュ動作>
本実施形態において中継装置30は、クライアント装置20とストレージ装置10との間の入出力(IO)セッションとしてのiSCSIセッションを中継する。この中継時に、中継装置30は、キャッシュインデックステーブル330及びキャッシュデータテーブル340を利用して、つまり当該両テーブルに登録されたエントリ情報によって指定されるキャッシュデータを利用して、キャッシュ(キャッシュ制御)動作を行う。
<ISCSI session relay and cache operation between client / storage device>
In the present embodiment, the relay device 30 relays an iSCSI session as an input / output (IO) session between the client device 20 and the storage device 10. At the time of this relay, the relay device 30 uses the cache index table 330 and the cache data table 340, that is, the cache (cache control) operation using the cache data specified by the entry information registered in both the tables. I do.

以下、クライアント装置20がストレージ装置10よりデータを読み込む場合の中継装置30の処理手順について、図8のフローチャートを参照して説明する。
今、中継装置30の中継部310が、クライアント装置20から送信されたリード要求を受信したものとする(ステップ801)。このリード要求は、読み込みの対象となるデータ(以下、読み込み対象データと称する)を示すインデックスを含む。このインデックスは、読み込み対象データが格納されているディスクボリューム100-iを識別するディスクボリューム番号DVN及び読み込み対象データが格納されているディスクボリューム100内の領域の開始位置を示す論理ブロックアドレス(開始論理ブロックアドレス)LBAを含む。リード要求は更に、読み込み対象データのデータ長Lの情報を含む。つまりリード要求は、ディスクボリューム番号DVN及びデータ領域情報LBA/Lを含む。ここでは、説明の簡略化のために、読み込み対象データのデータ長Lがa(=1)セクタであり、1キャッシュブロックのデータ長に等しく、且つ1キャッシュブロックのデータ長が1論理ブロックのデータ長に等しいものとする。
Hereinafter, the processing procedure of the relay device 30 when the client device 20 reads data from the storage device 10 will be described with reference to the flowchart of FIG.
Now, it is assumed that the relay unit 310 of the relay device 30 has received the read request transmitted from the client device 20 (step 801). This read request includes an index indicating data to be read (hereinafter referred to as read target data). This index includes a disk volume number DVN for identifying the disk volume 100-i in which the read target data is stored and a logical block address (start logic) indicating the start position of the area in the disk volume 100 in which the read target data is stored. Block address) LBA. The read request further includes information on the data length L of the data to be read. That is, the read request includes the disk volume number DVN and the data area information LBA / L. Here, for simplification of explanation, the data length L of the read target data is a (= 1) sector, is equal to the data length of one cache block, and the data length of one cache block is data of one logical block. It shall be equal to the length.

キャッシュ管理部320のキャッシュヒット判定部320bは、中継部310によってリード要求が受信された場合、当該リード要求に含まれるインデックスに基づいて、以下のキャッシュヒット判定処理を実行する(ステップ802)。
まずキャッシュ管理部320は、インデックスに含まれるディスクボリューム番号DVNによって示されるディスクボリュームに対応付けられているキャッシュインデックステーブル330を選択する(ステップ802a)。ここでは、ディスクボリューム100-1に対応付けられているキャッシュインデックステーブル330が選択されたものとする。
When the relay request is received by the relay unit 310, the cache hit determination unit 320b of the cache management unit 320 executes the following cache hit determination process based on the index included in the read request (step 802).
First, the cache management unit 320 selects the cache index table 330 associated with the disk volume indicated by the disk volume number DVN included in the index (step 802a). Here, it is assumed that the cache index table 330 associated with the disk volume 100-1 is selected.

次にキャッシュヒット判定部320bは、キャッシュインデックステーブル330を参照し、インデックスに含まれる論理ブロックアドレスLBAに対応付けて識別子が登録されている(エントリがある)かを判定する(ステップ802b)。   Next, the cache hit determination unit 320b refers to the cache index table 330 and determines whether an identifier is registered (there is an entry) in association with the logical block address LBA included in the index (step 802b).

もし、識別子が登録されているならば(ステップ802bのYES)、キャッシュヒット判定部320bは当該識別子(と同一の識別子)がキャッシュデータテーブル340に登録されているかを判定する(ステップ802c)。もし、この識別子がキャッシュデータテーブル340にも登録されているならば(ステップ802cのYES)、つまり、この識別子に対応するデータがキャッシュデータテーブル340に登録されているならば、キャッシュヒット判定部320bは読み込み対象データがキャッシュデータ格納部350に存在するキャッシュヒットと判定する(ステップ802d)。   If the identifier is registered (YES in step 802b), the cache hit determination unit 320b determines whether the identifier (identical to the identifier) is registered in the cache data table 340 (step 802c). If this identifier is also registered in the cache data table 340 (YES in step 802c), that is, if data corresponding to this identifier is registered in the cache data table 340, the cache hit determination unit 320b. Determines that the data to be read is a cache hit existing in the cache data storage unit 350 (step 802d).

キャッシュ管理部320の中継制御部320cは、キャッシュヒット判定部320bによってキャッシュヒットが判定されると、このキャッシュ判定に用いられた識別子に対応付けてキャッシュデータテーブル340に登録されているキャッシュデータアドレスを取得する(ステップ803)。そして中継制御部320cは、取得したキャッシュデータアドレスに基づき、キャッシュデータ格納部350の当該キャッシュデータアドレスに格納されているキャッシュデータを読み込み対象データとして読み込む(ステップ804)。そして中継制御部320cは、読み込んだデータをリード要求元のクライアント装置20に返すように中継部310に指示する。   When the cache hit determination unit 320b determines a cache hit, the relay control unit 320c of the cache management unit 320 sets the cache data address registered in the cache data table 340 in association with the identifier used for the cache determination. Obtain (step 803). Then, based on the acquired cache data address, the relay control unit 320c reads the cache data stored in the cache data address of the cache data storage unit 350 as data to be read (step 804). The relay control unit 320c instructs the relay unit 310 to return the read data to the client device 20 that is the read request source.

すると中継部310は、中継制御部320cによってキャッシュデータ格納部350から読み込まれたデータを、クライアント装置20からのリード要求に対する応答として、当該クライアント装置20に送信する(ステップ805)。これにより、クライアント装置20から送信されたリード要求に対する中継装置30での処理は終了する。   Then, the relay unit 310 transmits the data read from the cache data storage unit 350 by the relay control unit 320c to the client device 20 as a response to the read request from the client device 20 (step 805). Thereby, the processing in the relay device 30 for the read request transmitted from the client device 20 ends.

一方、識別子がキャッシュインデックステーブル330に登録されていないならば(ステップ802bのNO)、キャッシュヒット判定部320bは、読み込み対象データがキャッシュデータ格納部350に存在しないキャッシュミスヒットと判定する(ステップ802e)。また、キャッシュインデックステーブル330に識別子が登録されていても(ステップ802bのYES)。当該識別子(と同一の識別子)がキャッシュデータテーブル340に登録されていない場合には(ステップ802cのNO)、キャッシュヒット判定部320bはキャッシュミスヒットと判定する(ステップ802e)。   On the other hand, if the identifier is not registered in the cache index table 330 (NO in step 802b), the cache hit determination unit 320b determines that the read target data does not exist in the cache data storage unit 350 (step 802e). ). Even if an identifier is registered in the cache index table 330 (YES in step 802b). When the identifier (identical to the same identifier) is not registered in the cache data table 340 (NO in Step 802c), the cache hit determination unit 320b determines that it is a cache miss hit (Step 802e).

中継制御部320cは、キャッシュヒット判定部320bによってキャッシュミスヒットが判定されると、リード要求を、中継部310を介してストレージ装置10に中継(転送)する(ステップ806)。ストレージ装置10は、中継部310によって中継されたリード要求に応じてディスクボリューム100-1から読み込み対象データを読み出して中継部310に返す。これにより、中継部310は、読み込み対象データを取得する(ステップ807)。   When the cache hit determination unit 320b determines a cache miss hit, the relay control unit 320c relays (transfers) the read request to the storage apparatus 10 via the relay unit 310 (step 806). In response to the read request relayed by the relay unit 310, the storage apparatus 10 reads the read target data from the disk volume 100-1 and returns it to the relay unit 310. As a result, the relay unit 310 acquires data to be read (step 807).

中継部310は、取得したデータを、クライアント装置20からのリード要求に対する応答として、当該クライアント装置40に送信する(ステップ808)。   The relay unit 310 transmits the acquired data to the client device 40 as a response to the read request from the client device 20 (step 808).

キャッシュ管理部320のインデックス登録部320dは、キャッシュミスヒットが判定された場合、中継部310によって取得されたデータの内容に対応する識別子をキャッシュインデックステーブル330に登録するための、以下に述べるキャッシュインデックステーブルへの登録処理を実行する(ステップ809)。これにより、クライアント装置20から送信されたリード要求に対する中継装置30での処理は終了する。   The index registration unit 320d of the cache management unit 320 is a cache index described below for registering an identifier corresponding to the content of the data acquired by the relay unit 310 in the cache index table 330 when a cache miss is determined. A table registration process is executed (step 809). Thereby, the processing in the relay device 30 for the read request transmitted from the client device 20 ends.

次に、キャッシュインデックステーブルへの登録処理(図8のステップ809)の手順について、図9のフローチャートを参照して説明する。
インデックス登録部320dは、中継部310によって取得されたデータのハッシュ値を当該データの内容に対応する識別子として生成する(ステップ901)。インデックス登録部320dは、生成された識別子に対応するデータがキャッシュデータテーブル340に登録されているかを判定する(ステップ902)。ここでは、生成された識別子(に一致する識別子)を含むエントリ情報がキャッシュデータテーブル340に保持されており、且つ当該エントリ情報中のキャッシュデータアドレスで指定されるキャッシュデータ格納部350の領域に格納されているキャッシュデータと中継部310によって取得されたデータとが同一の場合に、ステップ902の判定がYESとなる。それ以外の場合、ステップ902の判定はNOとなる。
Next, the procedure of the registration process to the cache index table (step 809 in FIG. 8) will be described with reference to the flowchart in FIG.
The index registration unit 320d generates the hash value of the data acquired by the relay unit 310 as an identifier corresponding to the content of the data (Step 901). The index registration unit 320d determines whether data corresponding to the generated identifier is registered in the cache data table 340 (step 902). Here, the entry information including the generated identifier (identifier that matches the identifier) is held in the cache data table 340 and stored in the area of the cache data storage unit 350 specified by the cache data address in the entry information. If the cached data and the data acquired by the relay unit 310 are the same, the determination in step 902 is YES. Otherwise, the determination at step 902 is NO.

インデックス登録部320dは、生成された識別子に対応するデータがキャッシュデータテーブル340に登録されている場合(ステップ902のYES)、キャッシュミスヒットの判定に用いられたキャッシュインデックステーブル330に、インデックスに含まれている論理ブロックアドレスLBAに対応付けて、当該識別子を登録する(ステップ903)。このキャッシュインデックステーブル330は、インデックスに含まれているディスクボリューム番号DVNを保持している。このため、ステップ903の処理は、キャッシュインデックステーブル330に、インデックスに対応付けて識別子を登録することと等価である。このステップ903について更に詳細に説明する。   When the data corresponding to the generated identifier is registered in the cache data table 340 (YES in Step 902), the index registration unit 320d includes the index in the cache index table 330 used for determining the cache miss. The identifier is registered in association with the logical block address LBA (step 903). The cache index table 330 holds the disk volume number DVN included in the index. Therefore, the processing in step 903 is equivalent to registering an identifier in the cache index table 330 in association with the index. This step 903 will be described in more detail.

ステップ903は第1及び第2の処理に大別される。
第1の処理は、上述のキャッシュインデックステーブル330に、インデックス中の論理ブロックアドレスLBAに対応付けて既に別の識別子が登録されている場合に実行される。第1の処理では、上記別の識別子に代えて、生成された識別子が登録される。つまり、既登録の識別子が、生成された識別子に置き換えられる。
Step 903 is roughly divided into a first process and a second process.
The first process is executed when another identifier is already registered in the above-described cache index table 330 in association with the logical block address LBA in the index. In the first process, the generated identifier is registered instead of the other identifier. That is, the registered identifier is replaced with the generated identifier.

これに対し、第2の処理は、上述のキャッシュインデックステーブル330に、インデックス中の論理ブロックアドレスLBAが保持されていないか、或いは当該論理ブロックアドレスLBAに対応付けて識別子(ここでは有効な識別子)が登録されていない場合に実行される。第2の処理では、生成された識別子が、キインデックス中の論理ブロックアドレスLBAに対応付けてャッシュインデックステーブル330に登録される。   On the other hand, in the second process, the above-described cache index table 330 does not hold the logical block address LBA in the index, or an identifier (here, a valid identifier) associated with the logical block address LBA. Executed when is not registered. In the second process, the generated identifier is registered in the cache index table 330 in association with the logical block address LBA in the key index.

ステップ903が実行されることにより、以後、今回と同一の論理ブロックアドレスLBAへのアクセスが指定された場合、キャッシュヒットとなる。   By executing step 903, if access to the same logical block address LBA as this time is designated thereafter, a cache hit occurs.

ステップ903が実行される例について、図6を参照して説明する。
まず、クライアント装置20からのキャッシュ登録要求により、ディスクボリューム100-1の論理ブロックアドレス「LBA1」に格納されている、漏洩しても問題のないデータAが、ディスクボリューム100-1に対応するキャッシュインデックステーブル330及びキャッシュデータテーブル340を用いてキャッシュデータとして登録されているものとする。一方、ディスクボリューム100-nの論理ブロックアドレス「LBAn」にも、データAが格納されているものとする。但し、ディスクボリューム100-nの論理ブロックアドレス「LBAn」に格納されているデータAは、キャッシュデータとして登録されていないものとする。
An example in which step 903 is executed will be described with reference to FIG.
First, in response to a cache registration request from the client apparatus 20, data A stored in the logical block address “LBA1” of the disk volume 100-1 and having no problem with leakage is cached corresponding to the disk volume 100-1. Assume that cache data is registered using the index table 330 and the cache data table 340. On the other hand, it is assumed that data A is also stored in the logical block address “LBAn” of the disk volume 100-n. However, it is assumed that the data A stored in the logical block address “LBAn” of the disk volume 100-n is not registered as cache data.

このような状態で、中継装置30が、クライアント装置20から送信された、ディスクボリューム100-nの論理ブロックアドレス「LBAn」からデータを読み込むためのリード命令を受信したものとする。この場合、キャッシュミスヒットとなって、上述のキャッシュインデックステーブルへの登録処理(図8のステップ809)が実行される。これにより、ディスクボリューム100-nに対応するキャッシュインデックステーブル330には、論理ブロックアドレス「LBAn」に対応付けて、データAの内容に対応する識別子「ハッシュ値1」が登録される。   In this state, it is assumed that the relay device 30 has received a read command for reading data from the logical block address “LBAn” of the disk volume 100-n transmitted from the client device 20. In this case, a cache miss hit occurs, and the above-described registration process in the cache index table (step 809 in FIG. 8) is executed. As a result, the identifier “hash value 1” corresponding to the contents of the data A is registered in the cache index table 330 corresponding to the disk volume 100-n in association with the logical block address “LBAn”.

同様に、中継装置30が、クライアント装置20から送信された、ディスクボリューム100-1の論理ブロックアドレス「LBA4」からデータを読み込むためのリード命令を受信したものとする。ディスクボリューム100-1の論理ブロックアドレス「LBA4」には、データAが格納されている。もし、この論理ブロックアドレス「LBA4」のデータAが、図6とは異なり、キャッシュデータテーブル340に登録されていないならば、キャッシュミスヒットとなって、上述のキャッシュインデックステーブルへの登録処理(図8のステップ809)が実行される。これにより、ディスクボリューム100-1に対応するキャッシュインデックステーブル330には、図6に示されるように、論理ブロックアドレス「LBA4」に対応付けて、データAの内容に対応する識別子「ハッシュ値1」が登録される。   Similarly, it is assumed that the relay device 30 has received a read command for reading data from the logical block address “LBA4” of the disk volume 100-1 transmitted from the client device 20. Data A is stored in the logical block address “LBA4” of the disk volume 100-1. If the data A of the logical block address “LBA4” is not registered in the cache data table 340, unlike FIG. 6, a cache miss occurs and the registration processing (see FIG. 8 step 809) is executed. As a result, in the cache index table 330 corresponding to the disk volume 100-1, as shown in FIG. 6, the identifier “hash value 1” corresponding to the content of the data A is associated with the logical block address “LBA4”. Is registered.

つまり、本実施形態においては、i(i=1〜n),j(j=1〜n),x,yを、i≠j及び/またはx≠yであるとすると、クライアント装置20から中継装置30に送信されるキャッシュ登録命令に応じて、当該命令で指定された、ディスクボリューム100-iの論理ブロックアドレス「LBAx」のデータAを、キャッシュデータとして中継装置30内に登録すると、ディスクボリューム100-jの論理ブロックアドレス「LBAy」のデータAを読み込むリード命令の実行時に、ディスクボリューム100-jに対応するキャッシュインデックステーブル330に、論理ブロックアドレス「LBAy」に対応付けて、データAの識別子「ハッシュ値1」が自動的に登録される。このように本実施形態によれば、例えば、ストレージ装置10上にクライアント装置毎(またはクライアント装置を利用するユーザ毎)にディスクボリュームが用意されているようなシンクライアントシステムにおいても、クライアント装置毎(またはユーザ毎)にキャッシュデータの登録をクライアント装置側から中継装置30に要求することなく、各クライアント(またはユーザ)が利用できる形態でキャッシュデータを登録することができる。   That is, in this embodiment, if i (i = 1 to n), j (j = 1 to n), x, and y are i ≠ j and / or x ≠ y, the client apparatus 20 relays When the data A of the logical block address “LBAx” of the disk volume 100-i specified by the command is registered in the relay device 30 as cache data in accordance with the cache registration command transmitted to the device 30, the disk volume When executing a read instruction that reads data A at logical block address “LBAy” of 100-j, the identifier of data A is associated with the logical block address “LBAy” in the cache index table 330 corresponding to disk volume 100-j. “Hash value 1” is automatically registered. As described above, according to this embodiment, for example, even in a thin client system in which a disk volume is prepared for each client device (or for each user who uses the client device) on the storage device 10, for each client device ( Alternatively, the cache data can be registered in a form that can be used by each client (or user) without requesting the relay apparatus 30 from the client apparatus to register the cache data for each user.

一方、生成された識別子に対応するデータがキャッシュデータテーブル340に登録されていない場合(ステップ902のNO)、インデックス登録部320dは、キャッシュミスヒットの判定に用いられたキャッシュインデックステーブル330に、インデックス中の論理ブロックアドレスLBAに対応付けて登録されている識別子を例えば無効な値(null値)に置き換える(ステップ904)。これにより、以後、今回と同一の論理ブロックアドレスLBAへのアクセスが指定された場合にも、キャッシュミスヒットとなる。但し、キャッシュインデックステーブル330に、論理ブロックアドレスLBAに対応付けられた識別子が登録されていないならば、ステップ904は実行されずに、キャッシュインデックステーブルへの登録処理は終了する。   On the other hand, when the data corresponding to the generated identifier is not registered in the cache data table 340 (NO in step 902), the index registration unit 320d stores the index in the cache index table 330 used for the cache miss hit determination. The identifier registered in association with the logical block address LBA in the middle is replaced with, for example, an invalid value (null value) (step 904). As a result, a cache miss hit occurs even when access to the same logical block address LBA as this time is designated. However, if the identifier associated with the logical block address LBA is not registered in the cache index table 330, step 904 is not executed, and the registration process to the cache index table ends.

なお、読み込み対象データのデータ長Lが複数のキャッシュブロックのデータ長に等しい場合には、キャッシュヒット判定部320bは、ステップ802のキャッシュヒット判定処理を次のように実行すればよい。つまり、キャッシュヒット判定部320bは、論理ブロックアドレス及びデータ長Lで示されるデータ領域に対応するキャッシュインデックステーブル330の複数のエントリを参照して、その全てに識別子が登録されているかを判定すればよい。例えばデータ長Lが2aセクタであれば、キャッシュヒット判定部320bは、キャッシュインデックステーブル330のエントリのうち、論理ブロックアドレスLBAが保持されているエントリと、論理ブロックアドレス(LBA+1)が保持されているエントリとを参照すればよい。ここでは、参照された全てのエントリでキャッシュヒットが判定された場合だけ、全体としてキャッシュヒットが判定される。一方、1エントリでもキャッシュミスヒットが判定された場合には、全体としてキャッシュミスヒットが判定される。   When the data length L of the read target data is equal to the data length of the plurality of cache blocks, the cache hit determination unit 320b may execute the cache hit determination process in step 802 as follows. That is, the cache hit determination unit 320b refers to a plurality of entries in the cache index table 330 corresponding to the data area indicated by the logical block address and the data length L, and determines whether identifiers are registered in all of them. Good. For example, if the data length L is 2a sector, the cache hit determination unit 320b holds the entry holding the logical block address LBA and the logical block address (LBA + 1) among the entries in the cache index table 330. Refer to the entry. Here, the cache hit is determined as a whole only when the cache hit is determined in all the referenced entries. On the other hand, when a cache miss hit is determined even for one entry, a cache miss hit is determined as a whole.

以上、クライアント装置20からリード要求が送信された場合の中継装置30の動作について説明した。クライアント装置20からライト要求が送信された場合の中継装置30の動作については、データの転送方向がクライアント装置20からストレージ装置10になる点を除いて、リード要求の場合と同様となるため、説明を省略する。   The operation of the relay device 30 when a read request is transmitted from the client device 20 has been described above. The operation of the relay device 30 when a write request is transmitted from the client device 20 is the same as that in the case of a read request except that the data transfer direction is changed from the client device 20 to the storage device 10. Is omitted.

[変形例]
次に上記実施形態の変形例について説明する。
この変形例はキャッシュ登録動作に関して上記実施形態と相違する。そこで本変形例が実施形態と相違する点の理解を用意するために、実施形態で適用された中継装置30のキャッシュ登録動作の概要を以下に示す。
[Modification]
Next, a modification of the above embodiment will be described.
This modification is different from the above embodiment with respect to the cache registration operation. Therefore, in order to prepare an understanding that the present modification is different from the embodiment, an outline of the cache registration operation of the relay device 30 applied in the embodiment is shown below.

中継装置30は、クライアント装置20からキャッシュ登録要求を受信すると(ステップ703)、当該クライアント装置20が接続しているストレージ装置10(のディスクボリューム100-1)に対してiSCSIセッションを確立する(ステップ704)。この状態で中継装置30は、ストレージ装置10からキャッシュ登録対象データを取得して(ステップ705,706)、キャッシュデータテーブル340に登録する(ステップ707,708)。そして中継装置30は、iSCSIセッションを閉じる(709)。このiSCSIセッションは、中継装置30が中継しているクライアント装置20とストレージ装置10との間のiSCSIセッションとは独立したものである。   When the relay device 30 receives the cache registration request from the client device 20 (step 703), the relay device 30 establishes an iSCSI session for the storage device 10 (the disk volume 100-1 thereof) to which the client device 20 is connected (step 703). 704). In this state, the relay device 30 acquires the cache registration target data from the storage device 10 (steps 705 and 706) and registers it in the cache data table 340 (steps 707 and 708). Then, the relay device 30 closes the iSCSI session (709). This iSCSI session is independent of the iSCSI session between the client apparatus 20 and the storage apparatus 10 relayed by the relay apparatus 30.

次に、本変形例で適用される中継装置30のキャッシュ登録動作の手順について、実施形態と相違する点を中心に、図10のフローチャートを参照して説明する。なお、図10において、図7のフローチャートと同一部分には同一参照符号を付してある。   Next, the procedure of the cache registration operation of the relay device 30 applied in this modification will be described with reference to the flowchart of FIG. In FIG. 10, the same parts as those in the flowchart of FIG. 7 are denoted by the same reference numerals.

中継装置30のキャッシュ登録要求処理部370は、クライアント装置20のキャッシュ登録データ選択・要求送信部220からキャッシュ登録要求を受信すると(ステップ703)、セッション取得処理を行う(ステップA1)。このセッション取得処理により、キャッシュ登録要求処理部370は、中継装置30の中継部310が中継している、キャッシュ登録要求元のクライアント装置20とストレージ装置10との間のiSCSIセッション(通信)が存在する、そのiSCSIセッションを当該中継部310を介して取得する。セッション取得処理の詳細は後述する。   When receiving the cache registration request from the cache registration data selection / request transmission unit 220 of the client device 20 (step 703), the cache registration request processing unit 370 of the relay device 30 performs a session acquisition process (step A1). As a result of this session acquisition processing, the cache registration request processing unit 370 has an iSCSI session (communication) between the cache registration request source client device 20 and the storage device 10 relayed by the relay unit 310 of the relay device 30. The iSCSI session is acquired via the relay unit 310. Details of the session acquisition process will be described later.

キャッシュ登録要求処理部370は、クライアント装置20とストレージ装置10との間のiSCSIセッションを取得すると、当該クライアント装置20からキャッシュ登録が要求されたキャッシュ登録対象データを読み込むためのリード命令を生成する(ステップA2)。そしてキャッシュ登録要求処理部370は、生成したリード命令を、先に取得したiSCSIセッションを利用して、中継部310を介してストレージ装置10に送信する(ステップA3)。ここで、リード命令の送信は、取得したiSCSIセッションで中継されているiSCSI−PDU間(通信の中)にリード命令を挿入することにより実現される。   When the cache registration request processing unit 370 acquires an iSCSI session between the client device 20 and the storage device 10, the cache registration request processing unit 370 generates a read command for reading the cache registration target data for which cache registration is requested from the client device 20 ( Step A2). Then, the cache registration request processing unit 370 transmits the generated read command to the storage apparatus 10 via the relay unit 310 using the previously acquired iSCSI session (step A3). Here, the transmission of the read command is realized by inserting the read command between the iSCSI-PDU (during communication) relayed in the acquired iSCSI session.

キャッシュ登録要求処理部370は、リード命令の送信に応じてストレージ装置10から応答として返されるデータを中継部310を介して受信することにより、当該データをキャッシュ登録対象データとして取得する(ステップ706)。このストレージ装置10からの応答は、クライアント装置20には中継されない。   The cache registration request processing unit 370 receives the data returned as a response from the storage apparatus 10 in response to the transmission of the read command via the relay unit 310, thereby acquiring the data as cache registration target data (step 706). . The response from the storage device 10 is not relayed to the client device 20.

以降の動作は、上記実施形態と同様であり、キャッシュ登録対象データをキャッシュデータとしてキャッシュデータテーブル340に登録するための処理(ステップ707,708)が行われる。但し本変形例では、この処理の後に実施形態で行われていたステップ709は行われない。   Subsequent operations are the same as in the above embodiment, and processing for registering cache registration target data in the cache data table 340 as cache data (steps 707 and 708) is performed. However, in this modified example, step 709 performed in the embodiment after this processing is not performed.

次に、セッション取得処理(図10のステップA1)の手順について、図11のフローチャートを参照して説明する。
キャッシュ登録要求処理部370は、中継装置30の中継部310が中継している、キャッシュ登録要求元のクライアント装置20とストレージ装置10との間のiSCSIセッションがあるかをチェックする(ステップA11,A12)。もし、このようなiSCSIセッションが存在する(ステップA12のYES)、キャッシュ登録要求処理部370は当該iSCSIセッションを取得する(ステップA13)。
Next, the procedure of the session acquisition process (step A1 in FIG. 10) will be described with reference to the flowchart in FIG.
The cache registration request processing unit 370 checks whether there is an iSCSI session between the client apparatus 20 that is the cache registration request source and the storage apparatus 10 relayed by the relay unit 310 of the relay apparatus 30 (steps A11 and A12). ). If such an iSCSI session exists (YES in step A12), the cache registration request processing unit 370 acquires the iSCSI session (step A13).

これに対し、上述のiSCSIセッションがないならば、キャッシュ登録要求処理部370は、クライアント装置20のキャッシュ登録データ選択・要求送信部220に対して、キャッシュ登録要求の実行未完了を通知するための応答を返す(ステップA14)。そしてキャッシュ登録要求処理部370は、上述のiSCSIセッションが確立されるのを待つ(ステップA15,A16)。もし、このiSCSIセッションが確立したならば(ステップA16のYES)、つまり、クライアント装置20とストレージ装置10との間の通信の中継が開始されたならば、キャッシュ登録要求処理部370は、例えば任意のタイミングで、そのiSCSIセッションを取得する(ステップA13)。   In contrast, if there is no iSCSI session, the cache registration request processing unit 370 notifies the cache registration data selection / request transmission unit 220 of the client device 20 that the cache registration request has not been executed yet. A response is returned (step A14). Then, the cache registration request processing unit 370 waits for the establishment of the iSCSI session described above (steps A15 and A16). If this iSCSI session is established (YES in step A16), that is, if the relay of communication between the client apparatus 20 and the storage apparatus 10 is started, the cache registration request processing unit 370, for example, At that timing, the iSCSI session is acquired (step A13).

本変形例によれば、上記実施形態と同様の効果に加えて、以下に列挙する効果を得ることができる。
(1)キャッシュ登録のために、中継装置30が独自にiSCSIセッションを終端する必要がない。つまり中継装置30が、クライアント装置20に相当するイニシエータとしての動作(ストレージ装置10との間の通信プロトコル)を実装する必要がない。
According to this modification, in addition to the same effects as in the above embodiment, the effects listed below can be obtained.
(1) It is not necessary for the relay device 30 to terminate the iSCSI session independently for cache registration. That is, it is not necessary for the relay device 30 to implement an operation as an initiator corresponding to the client device 20 (communication protocol with the storage device 10).

(2)クライアント装置20がストレージ装置10のディスクボリューム100-iをリザーブしているときや、ストレージ装置10側の同時接続数制限により中継装置30からストレージ装置10に対して新たに接続できないときでも、中継装置30はストレージ装置10からキャッシュ登録用にデータを読み込むことができる。 (2) Even when the client device 20 reserves the disk volume 100-i of the storage device 10 or when the relay device 30 cannot newly connect to the storage device 10 due to the simultaneous connection limit on the storage device 10 side. The relay device 30 can read data from the storage device 10 for cache registration.

(3)ストレージ装置10側でディスクボリューム100-iにアクセスするために認証を設けている場合、そのための管理が容易になる。その理由は次の通りである。まず実施形態では、キャッシュ登録のために中継装置30からストレージ装置10に対してiSCSIセッションを独立して確立するには、この認証を通過しなければならず、そのためには、中継装置30がクライアント装置20またはストレージ装置10と連携して、認証情報を管理しなければならない。これに対し変形例では、既に設定されているセッションに相乗りするために、このような管理は不要である。しかも変形例では、中継装置30の中継部310が中継中でない場合であっても、キャッシュ登録要求を非同期的に処理することができる。 (3) When authentication is provided for accessing the disk volume 100-i on the storage apparatus 10 side, management for that is facilitated. The reason is as follows. First, in the embodiment, in order to independently establish an iSCSI session from the relay apparatus 30 to the storage apparatus 10 for cache registration, this authentication must be passed. Authentication information must be managed in cooperation with the device 20 or the storage device 10. On the other hand, in the modified example, such management is not necessary in order to share the already set session. Moreover, in the modified example, the cache registration request can be processed asynchronously even when the relay unit 310 of the relay device 30 is not relaying.

なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。   In addition, this invention is not limited to the said embodiment or its modification example as it is, A component can be deform | transformed and embodied in the range which does not deviate from the summary in an implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment or its modification. For example, you may delete a some component from all the components shown by embodiment or its modification.

10…ストレージ装置(第1の装置)、20…クライアント装置(第2の装置、第3の装置)、30…中継装置、100-1〜100-n…ディスクボリューム、210…ドライバ・ファイルシステム、211…ファイルシステム、220…キャッシュ登録データ選択・要求送信部、310…中継部、320…キャッシュ管理部、320a…キャッシュ登録部、320b…キャッシュヒット判定部、320c…中継制御部、320d…インデックス登録部、330…キャッシュインデックステーブル、340…キャッシュデータテーブル、350…キャッシュデータ格納部、360…識別子生成部、370…キャッシュ登録要求処理部(キャッシュ登録要求受信手段)、380…キャッシュ格納部。   DESCRIPTION OF SYMBOLS 10 ... Storage apparatus (1st apparatus), 20 ... Client apparatus (2nd apparatus, 3rd apparatus), 30 ... Relay apparatus, 100-1-100-n ... Disk volume, 210 ... Driver file system, 211 ... File system, 220 ... Cache registration data selection / request transmission unit, 310 ... Relay unit, 320 ... Cache management unit, 320a ... Cache registration unit, 320b ... Cache hit determination unit, 320c ... Relay control unit, 320d ... Index registration 330: Cache index table, 340 ... Cache data table, 350 ... Cache data storage unit, 360 ... Identifier generation unit, 370 ... Cache registration request processing unit (cache registration request receiving means), 380 ... Cache storage unit.

Claims (9)

データを格納する第1の装置と前記第1の装置に対して読み書きアクセスを行う第2の装置との間のデータ転送のための通信を中継する中継装置において、
前記第1の装置に格納されているデータを、当該データの内容に対応する識別子に対応付けて格納するためのキャッシュ格納手段と、
前記キャッシュ格納手段に格納されるデータの内容に対応する識別子を、前記第1の装置における当該データを指定するインデックスに対応付けて保持するためのキャッシュインデックステーブルと、
第3の装置から送信される、インデックスを含むキャッシュ登録要求を受信するキャッシュ登録要求受信手段と、
前記第1の装置と前記第2の装置との間のデータ転送のための通信を中継する中継手段であって、前記キャッシュ登録要求受信手段が前記キャッシュ登録要求を受信した第1の場合、当該キャッシュ登録要求に含まれている前記インデックスの指定する第1のデータを前記第1の装置から読み込み、前記第2の装置から前記第1の装置に読み書きアクセスするためのインデックスを含む読み書き要求を受信した第2の場合には、当該読み書き要求に含まれている前記インデックスの指定する第2のデータを前記第2の装置との間で入出力する中継手段と、
要求されたデータの内容に対応する識別子を生成する識別子生成手段と、
前記第1の場合、前記第1のデータの内容に対応する識別子を前記識別子生成手段により生成させ、前記第1のデータを前記生成された識別子に対応付けて前記キャッシュ格納手段に格納し、且つ前記生成された識別子を、前記第1のデータを指定する前記インデックスに対応付けて前記キャッシュインデックステーブルに登録するキャッシュ登録手段と、
前記第2の場合、前記読み書き要求に含まれている前記インデックスに対応付けて前記キャッシュインデックステーブルにデータの内容に対応する識別子が登録され、且つ当該識別子と同一の識別子が前記キャッシュ格納手段に登録されていることをもって前記読み書き要求に含まれている前記インデックスの指定する前記第2のデータが前記キャッシュ格納手段に存在するキャッシュヒットである判定するキャッシュヒット判定手段と、
前記キャッシュヒットであると判定されなかった場合、前記読み書き要求を前記中継手段により前記第1の装置に中継させることによって、前記読み書き要求に含まれている前記インデックスの指定する前記第2のデータを前記中継手段に取得させて前記中継手段により前記第2の装置に中継させる中継制御手段と、
前記キャッシュヒットであると判定されなかったために前記中継手段によって中継される前記第2のデータの内容に対応する識別子を前記識別子生成手段により生成させるインデックス登録手段であって、当該生成された識別子と同一の識別子に対応付けて前記キャッシュ格納手段に前記第2のデータと同一のデータが格納されている場合、当該生成された識別子を、前記読み書き要求に含まれている前記インデックスに対応付けて前記キャッシュインデックステーブルに登録するインデックス登録手段と
を具備することを特徴とする中継装置。
In a relay device that relays communication for data transfer between a first device that stores data and a second device that performs read / write access to the first device,
Cache storage means for storing data stored in the first device in association with an identifier corresponding to the content of the data;
A cache index table for holding an identifier corresponding to the content of data stored in the cache storage means in association with an index for specifying the data in the first device;
Cache registration request receiving means for receiving a cache registration request including an index transmitted from the third device;
A relay unit that relays communication for data transfer between the first device and the second device, wherein the cache registration request receiving unit receives the cache registration request; reads the first data designated by the index included in the cache registration request from the first device, it receives a write request including an index for read-write access to the first device from the second device If the second includes relay means for inputting and outputting the second data designated by the index included in the read and write requests to and from the second device,
Identifier generating means for generating an identifier corresponding to the content of the requested data;
In the first case, an identifier corresponding to the content of the first data is generated by the identifier generation unit, the first data is stored in the cache storage unit in association with the generated identifier, and a cache registration means for registering the generated identifier, the cache index table in association with the index for specifying the first data,
In the second case, an identifier corresponding to the data content is registered in the cache index table in association with the index included in the read / write request, and the same identifier as the identifier is registered in the cache storage unit. and determining a cache hit determination means that the cache hit has that it is, the second data designated by the index included in the read-write request exists in the cache storage means,
Wherein when it is not determined to be a cache hit, by relayed to the first device by said relay means said read and write requests, said second data designated by the index included in the read and write requests Relay control means for causing the relay means to acquire and relaying to the second device by the relay means;
Wherein a indexing means an identifier corresponding to the content of the second data relayed by said relay means for not determined to be a cache hit Ru is generated by the identifier generation unit, the generated identifier When the same data as the second data is stored in the cache storage unit in association with the same identifier , the generated identifier is associated with the index included in the read / write request. An index registration means for registering in the cache index table.
前記キャッシュ格納手段は、
前記第1の装置に格納されているデータを格納するためのキャッシュデータ格納手段と、
前記キャッシュデータ格納手段に格納されるデータの内容に対応する識別子に対応付けて当該データの前記キャッシュデータ格納手段における格納位置を示す格納位置情報を保持するためのキャッシュデータテーブルとから構成され、
前記キャッシュ登録手段は、前記第1のデータを前記キャッシュデータ格納手段に格納し、前記第1のデータの前記キャッシュデータ格納手段における格納位置を示す格納位置情報を前記第1のデータの内容に対応する前記生成された識別子に対応付けて前記キャッシュデータテーブルに登録することにより、前記第1のデータを前記生成された識別子に対応付けて前記キャッシュ格納手段に格納する
ことを特徴とする請求項1記載の中継装置。
The cache storage means includes
Cache data storage means for storing data stored in the first device;
A cache data table for storing storage location information indicating a storage location of the data in the cache data storage means in association with an identifier corresponding to the content of data stored in the cache data storage means;
The cache registration unit stores the first data in the cache data storage unit, and stores storage position information indicating a storage position of the first data in the cache data storage unit corresponding to the content of the first data. The first data is stored in the cache storage unit in association with the generated identifier by registering it in the cache data table in association with the generated identifier. The relay device described.
前記受信されたキャッシュ登録要求に含まれているインデックスの指定する前記第1のデータを前記第1の装置から読み込むためのリード命令を生成し、前記中継手段が中継している前記第1の装置と前記第2の装置との間の通信の中に、当該生成したリード命令を挿入させるキャッシュ登録要求処理手段を更に具備することを特徴とする請求項1または2に記載の中継装置。   The first device that generates a read command for reading the first data specified by the index included in the received cache registration request from the first device, and that is relayed by the relay means The relay apparatus according to claim 1, further comprising a cache registration request processing unit that inserts the generated read instruction into communication between the first apparatus and the second apparatus. 前記キャッシュ登録要求処理手段は、前記キャッシュ登録要求が受信された際に前記中継手段が前記第1の装置と前記第2の装置との間の通信を中継していない場合、前記第3の装置に対して前記キャッシュ登録要求の実行未完了を通知するための応答を返し、当該通信の中継の開始後に当該通信の中に前記リード命令を挿入させることを特徴とする請求項3記載の中継装置。   The cache registration request processing means, when the cache registration request is received, when the relay means is not relaying communication between the first device and the second device, the third device 4. The relay apparatus according to claim 3, wherein a response for notifying execution completion of the cache registration request is returned to the server, and the read command is inserted into the communication after the relay of the communication is started. . 前記第2の装置は、前記第3の装置を含むことを特徴とする請求項1乃至4のいずれかに記載の中継装置。   The relay apparatus according to claim 1, wherein the second apparatus includes the third apparatus. データを格納する第1の装置と前記第1の装置に対して読み書きアクセスを行う第2の装置との間のデータ転送のための通信を中継する、キャッシュ格納手段及びキャッシュインデックステーブルを備えた中継装置によって実行される同装置にキャッシュデータを登録するための方法であって、
第3の装置から前記中継装置に前記第1の装置に格納されている第1のデータを指定するインデックスを含むキャッシュ登録要求が送信された場合、当該キャッシュ登録要求を受信するステップと、
前記受信されたキャッシュ登録要求に含まれている前記インデックスの指定する前記第1のデータを前記第1の装置から読み込むステップと、
前記読み込まれた第1のデータの内容に対応する識別子を生成する第1の識別子生成ステップと、
前記読み込まれた第1のデータを、前記第1の識別子生成ステップで生成された識別子に対応付けて前記キャッシュ格納手段に格納し、且つ前記生成された識別子を、前記第1のデータを指定する前記インデックスに対応付けて前記キャッシュインデックステーブルに登録するキャッシュ登録ステップと、
前記第2の装置から前記第1の装置に読み書きアクセスするための第2のデータを指定するインデックスを含む読み書き要求が前記中継装置に送信された場合、前記読み書き要求を受信するステップと、
前記読み書き要求に含まれている前記インデックスに対応付けて前記キャッシュインデックステーブルにデータの内容に対応する識別子が登録され、且つ当該識別子と同一の識別子が前記キャッシュ格納手段に登録されていることをもって前記読み書き要求に含まれている前記インデックスの指定する前記第2のデータが前記キャッシュ格納手段に存在するキャッシュヒットである判定するステップと、
前記キャッシュヒットであると判定されなかった場合、前記読み書き要求を前記第1の装置に中継することにより、前記読み書き要求に含まれている前記インデックスの指定する前記第2のデータを前記第1の装置から取得するステップと、
前記取得された第2のデータを前記第2の装置に中継するステップと、
前記キャッシュヒットであると判定されなかったために中継された前記第2のデータの内容に対応する識別子を生成する第2の識別子生成ステップと、
前記第2の識別子ステップで生成された識別子と同一の識別子に対応付けて前記キャッシュ格納手段に前記第2のデータと同一のデータが格納されている場合、当該生成された識別子を、前記読み書き要求に含まれている前記インデックスに対応付けて前記キャッシュインデックステーブルに登録するステップと
を具備することを特徴とする中継装置にキャッシュデータを登録するための方法
Relay comprising a cache storage means and a cache index table for relaying communication for data transfer between a first device that stores data and a second device that performs read / write access to the first device A method for registering cache data in a device executed by the device,
Receiving a cache registration request when a cache registration request including an index designating the first data stored in the first device is transmitted from the third device to the relay device; and
Reading the first data specified by the index included in the received cache registration request from the first device;
A first identifier generating step for generating an identifier corresponding to the content of the read first data;
The read first data is stored in the cache storage unit in association with the identifier generated in the first identifier generation step, and the generated identifier is designated as the first data a cache registration step of registering in the cache index table in association with the index,
Receiving a read / write request when a read / write request including an index specifying second data for read / write access to the first device from the second device is transmitted to the relay device;
With the identifier corresponding to the content of the data in the cache index table in association with the index included in the read or write request is registered, is and registered the identifier and the same identifier in the cache storage means, determining that a cache hit the second data designated by the index included in the read-write request exists in the cache storage means,
If the cache hit is not determined, the second data specified by the index included in the read / write request is transferred to the first device by relaying the read / write request to the first device. Obtaining from the device;
Relaying the acquired second data to the second device;
A second identifier generating step for generating an identifier corresponding to the content of the second data relayed because the cache hit was not determined ;
When the same data as the second data is stored in the cache storage means in association with the same identifier as the identifier generated in the second identifier step, the generated identifier is used as the read / write request. And registering it in the cache index table in association with the index included in the cache data table .
前記キャッシュ格納手段は、
前記第1の装置に格納されているデータを格納するためのキャッシュデータ格納手段と、
前記キャッシュデータ格納手段に格納されるデータの内容に対応する識別子に対応付けて当該データの前記キャッシュデータ格納手段における格納位置を示す格納位置情報を保持するためのキャッシュデータテーブルとから構成され、
前記キャッシュ登録ステップは、
前記第1のデータを前記キャッシュデータ格納手段に格納するステップと、
前記第1のデータの前記キャッシュデータ格納手段における格納位置を示す格納位置情報を前記第1の識別子生成ステップで生成された識別子に対応付けて前記キャッシュデータテーブルに登録するステップとを含む
ことを特徴とする請求項6記載の中継装置にキャッシュデータを登録するための方法。
The cache storage means includes
Cache data storage means for storing data stored in the first device;
A cache data table for storing storage location information indicating a storage location of the data in the cache data storage means in association with an identifier corresponding to the content of data stored in the cache data storage means;
The cache registration step includes:
Storing the first data in the cache data storage means;
Storing the storage location information indicating the storage location of the first data in the cache data storage means in association with the identifier generated in the first identifier generation step in the cache data table. A method for registering cache data in the relay device according to claim 6.
前記読み込むステップは、
前記受信されたキャッシュ登録要求に含まれているインデックスの指定する前記第1のデータを前記第1の装置から読み込むためのリード命令を生成するステップと、
前記生成されたリード命令を、前記中継手段が中継している前記第1の装置と前記第2の装置との間の通信の中に挿入するステップと
を含むことを特徴とする請求項6または7に記載の中継装置にキャッシュデータを登録するための方法。
The step of reading includes
Generating a read command for reading from the first device the first data specified by an index included in the received cache registration request;
7. The step of inserting the generated read command into communication between the first device and the second device relayed by the relay means, or A method for registering cache data in the relay device according to claim 7.
前記読み込むステップは、前記キャッシュ登録要求が受信された際に前記中継装置が前記第1の装置と前記第2の装置との間の通信を中継していない場合、前記第3の装置に対して前記キャッシュ登録要求の実行未完了通知するための応答を返すステップを更に含み、
前記実行未完了を示す応答が返された場合、前記挿入するステップが、前記通信の中継の開始後に実行される
ことを特徴とする請求項8記載の中継装置にキャッシュデータを登録するための方法。
The reading step is performed when the relay device does not relay communication between the first device and the second device when the cache registration request is received. Returning a response for notifying execution completion of the cache registration request;
The method for registering cache data in a relay device according to claim 8, wherein, when a response indicating that the execution is not completed is returned, the inserting step is executed after the start of the relay of the communication. .
JP2009058051A 2009-03-11 2009-03-11 Relay device and method for registering cache data in the same device Expired - Fee Related JP4818383B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009058051A JP4818383B2 (en) 2009-03-11 2009-03-11 Relay device and method for registering cache data in the same device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009058051A JP4818383B2 (en) 2009-03-11 2009-03-11 Relay device and method for registering cache data in the same device

Publications (2)

Publication Number Publication Date
JP2010211607A JP2010211607A (en) 2010-09-24
JP4818383B2 true JP4818383B2 (en) 2011-11-16

Family

ID=42971676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009058051A Expired - Fee Related JP4818383B2 (en) 2009-03-11 2009-03-11 Relay device and method for registering cache data in the same device

Country Status (1)

Country Link
JP (1) JP4818383B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4250914B2 (en) * 2002-06-03 2009-04-08 株式会社日立製作所 Storage system
JP4252828B2 (en) * 2003-03-19 2009-04-08 株式会社日立製作所 Cache control method, node device, and program
JP4405533B2 (en) * 2007-07-20 2010-01-27 株式会社東芝 Cache method and cache device

Also Published As

Publication number Publication date
JP2010211607A (en) 2010-09-24

Similar Documents

Publication Publication Date Title
JP4405533B2 (en) Cache method and cache device
JP4824085B2 (en) System and method for caching a network file system
US11470056B2 (en) In-flight data encryption/decryption for a distributed storage platform
JP4278445B2 (en) Network system and switch
US11287994B2 (en) Native key-value storage enabled distributed storage system
US11640356B2 (en) Methods for managing storage operations for multiple hosts coupled to dual-port solid-state disks and devices thereof
JP2013539119A (en) Off-road read and write
US9398073B1 (en) Methods and apparatus for providing content
US8627446B1 (en) Federating data between groups of servers
WO2015118865A1 (en) Information processing device, information processing system, and data access method
JP4175379B2 (en) File sharing method and file sharing system
US8255611B1 (en) Methods and apparatus for accessing content
US9996422B2 (en) Methods and systems for a copy-offload operation
JP4607937B2 (en) Cache method and cache device
JP2004334481A (en) Virtualized information management apparatus
JP4345309B2 (en) Network storage device
JP4247975B2 (en) Data management method, data management system, program therefor, and recording medium
JP2009064055A (en) Computer system and security management method
JP3848268B2 (en) Computer system, computer apparatus, data access method and program in computer system
JP7071938B2 (en) Database management service provision system
JP4818383B2 (en) Relay device and method for registering cache data in the same device
US20140188952A1 (en) Reading data without an indirection logical reference identifier in a system that uses indirection access
JP4607936B2 (en) Data transfer method and data transfer system
JP6958928B2 (en) Storage devices, storage management methods, and programs
WO2022121385A1 (en) File access method, storage node, and network card

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110708

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

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

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

Free format text: PAYMENT UNTIL: 20140909

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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