JP2015179326A - データ転送装置、データ転送方法およびコンピュータプログラム - Google Patents
データ転送装置、データ転送方法およびコンピュータプログラム Download PDFInfo
- Publication number
- JP2015179326A JP2015179326A JP2014055562A JP2014055562A JP2015179326A JP 2015179326 A JP2015179326 A JP 2015179326A JP 2014055562 A JP2014055562 A JP 2014055562A JP 2014055562 A JP2014055562 A JP 2014055562A JP 2015179326 A JP2015179326 A JP 2015179326A
- Authority
- JP
- Japan
- Prior art keywords
- storage
- data
- unit
- file
- response message
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】記憶容量とデータ応答性能を高めつつ、サーバ機能の性能低下を防止できるようにする。
【解決手段】本発明の実施形態としてのデータ転送装置において ストレージ制御部は、複数のストレージへのデータの読み書きを制御し、対応情報管理部は、ストレージ制御部が書き込んだデータと、データを書き込んだストレージとを関連づけた対応情報を管理し、ストレージ管理部は、ストレージ制御部が書き込みまたは読み出しに失敗したストレージを無効ストレージとして管理し、特定部は、通信装置から受信した取得要求メッセージで要求されたデータを格納しているストレージを特定し、読み出し部は、特定したストレージが、無効ストレージに該当するときは、データの読み出し要求をストレージ制御部に行わない。
【選択図】図2
【解決手段】本発明の実施形態としてのデータ転送装置において ストレージ制御部は、複数のストレージへのデータの読み書きを制御し、対応情報管理部は、ストレージ制御部が書き込んだデータと、データを書き込んだストレージとを関連づけた対応情報を管理し、ストレージ管理部は、ストレージ制御部が書き込みまたは読み出しに失敗したストレージを無効ストレージとして管理し、特定部は、通信装置から受信した取得要求メッセージで要求されたデータを格納しているストレージを特定し、読み出し部は、特定したストレージが、無効ストレージに該当するときは、データの読み出し要求をストレージ制御部に行わない。
【選択図】図2
Description
本発明の実施形態は、データ転送装置、データ転送方法およびコンピュータプログラムに関する。
従来のデータ記憶装置には、ストレージ上のファイルにデータを記憶し、クライアントからの要求に応じて、データをストレージから読み出し、読み出したデータをクライアントに送信するものがあった。頻繁アクセスされるデータについては、これをDRAMに配置することで、高速な応答を実現するものがあった。しかし、この方式では、大記憶容量で高速な応答を実現するには、多量のDRAMを要する問題があった。またストレージが故障した場合に、クライアントへの応答性が大きく低下またはサーバ機能が停止する問題がった。
本発明の実施形態は、記憶容量と応答性能を高めつつ、ストレージ故障の場合も応答性の低下を抑制できるようにすることを目的とする。
本発明の実施形態としてのデータ転送装置は、ネットワークを介して、通信装置と通信するデータ転送装置であって、ストレージ制御部、対応情報管理部、ストレージ管理部、通信部、特定部、および読み出し部を備える。
前記ストレージ制御部は、複数のストレージへのデータの読み書きを制御する。
前記対応情報管理部は、前記ストレージ制御部が書き込んだデータと、前記データを書き込んだストレージとを関連づけた対応情報を管理する。
前記ストレージ管理部は、前記ストレージ制御部がデータの書き込みまたは読み出しに失敗したストレージを無効ストレージとして管理する。
前記通信部は、前記通信装置から、前記データの取得要求メッセージを受信する。
前記特定部は、前記対応情報に基づき、前記取得要求メッセージで要求されたデータを格納しているストレージを特定する。
前記読み出し部は、前記特定部が特定したストレージが、前記無効ストレージに該当するきは、前記データの読み出し要求を前記ストレージ制御部に行わず、前記無効ストレージに該当しないときは、前記特定したストレージから前記データを読み出すことを前記ストレージ制御部に要求する。
以下、図面を参照しながら、本発明の実施形態について説明する。
(第1の実施形態)
図1は、本実施形態に係るデータ転送装置を含むキャッシュサーバと、キャッシュアクセスクライアント(以下、クライアントと呼ぶ)とを備えたデータ転送システムの全体構成を示す。
図1は、本実施形態に係るデータ転送装置を含むキャッシュサーバと、キャッシュアクセスクライアント(以下、クライアントと呼ぶ)とを備えたデータ転送システムの全体構成を示す。
キャッシュサーバ101は、クライアント102と、ネットワーク103により接続されている。クライアントは1台のみ示しているが、複数台のクライアントがネットワーク103に接続されていてもよい。
ネットワーク103は、有線、無線、またはこれらのハイブリッドのネットワークである。ここでは、Ethernet(登録商標)のようなLAN(Local Area Network)を想定するが、無線LANなど、他の方式のネットワークでもかまわない。
クライアント102は、キャッシュサーバ101で定めた手順(キャッシュプロトコル)で、キャッシュサーバ101とメッセージを送受信する。クライアント102は、PC、スマートフォン、タブレット端末、携帯端末等の通信装置である。キャッシュサーバ101は、データを記憶する複数のストレージ1〜ストレージn(nは2以上の整数)を有する。キャッシュサーバ101は、ストレージ1〜nへの読み書きを制御するストレージ制御装置を含む。
キャッシュサーバ101は、ストレージへのデータ記憶方式として、キーと、バリュー(データ)を対応させた記憶方法をとるものとする。このため、キャッシュサーバ101を、キーバリューストア(KVS)サーバと呼び、クライアント102は、KVSクライアントと呼ぶ場合もある。
キャッシュプロトコルの代表的なものには、memcachedプロトコル(https://github.com/memcached/memcached/blob/master/doc/protocol.txt)があり、本実施形態では、これを用いる場合を想定する。ただし、同様の、他のプロトコルで代替することも可能である。
ストレージ1〜nは、任意のファイルシステムに従って構成されている。代表的なファイルシステムには、FATファイルシステム(https://www.microsoft.com/ja-jp/mic/iplicense/ipventures/FATFileSystem.aspx)やLinuxのext4 (https://ext4.wiki.kernel.org/index.php/Main_Page) などがある。管理者のポリシーにしたがって、ストレージ1〜nを任意のファイルシステムで構成してかまわない。
キャッシュサーバ101は、クライアント102から、保存対象であるデータを含むデータ保存要求メッセージを受ける。キャッシュサーバ101は、データ保存要求メッセージを受けると、キャッシュプロトコルの応答形式に従って、当該データを含む応答メッセージを作成する。キャッシュサーバ101は、当該応答メッセージを、ストレージ1〜nから選択した1つのストレージに保存する。また、キャッシュサーバ101は、クライアント102からデータ取得要求メッセージを受けると、取得要求されたデータを含む応答メッセージを格納するストレージを特定し、特定したストレージから、応答メッセージを読み出す。キャッシュサーバ101は、読み出した応答メッセージにヘッダを付加し、パケットを生成し、当該パケットをクライアント102に送信する。つまり、キャッシュサーバ101は、データの保存要求メッセージを受けた際に、応答メッセージを生成してストレージに保存しておき、データの取得要求メッセージを受けた際には、事前に生成した応答メッセージをストレージから読み出して送信する。これにより、高速な応答を行う。なお、データ保存要求メッセージを送信するクライアントと、データ取得要求メッセージを送信するクライアントは同じであっても、異なってもかまわない。
データ保存要求メッセージは、memcachedプロトコルでは、SET要求メッセージに対応し、データ取得要求メッセージは、同プロトコルではGET要求メッセージに対応する。以下では、memcachedプロトコルを想定し、SET要求メッセージおよびGET要求メッセージの用語を用いる。
図2に、本実施形態に係るデータ転送装置の内部構成を示す。このデータ転送装置は、TCP/IP通信部11、キャッシュプロトコル処理部12、データ確認処理部13、記憶領域特定部14、対応表管理部(対応情報管理部)15、応答メッセージ生成部16、ストレージ管理部17、データ書き込み部18、ストレージ制御部19、エラー処理部20、データ読み出し部21、無効ファイル判定部22を備える。
TCP/IP通信部11は、TCP/IPの通信プロトコルに従って、ネットワーク103上のクライアント102と通信する。TCP/IP通信部11は、CPUで動作するOS(Operating System)と連携して、クライアントとのセッションを管理する機能を備えていてもよい。
TCP/IP通信部11は、クライアント102から受信した通信メッセージを、キャッシュプロトコル処理部12へ渡したり、キャッシュプロトコル処理部12から受け取った通信メッセージを、ネットワーク103を介してクライアント102に送出したりする。本実施形態では、通信メッセージとして、キャッシュプロトコルの規定に従った要求メッセージを受信し、それに対する応答メッセージを送信する場合を主として想定する。
本実施形態では、ネットワーク103から受信する要求メッセージの種類として、データの記憶(保存)を要求するSET要求メッセージと、データの取得を要求するGET要求メッセージがある。SET要求メッセージにはSET命令が含まれ、SET命令は、キーとデータとを含む。GET要求メッセージにはGET命令が含まれ、GET命令はキーを含む。その他の種類の要求メッセージがあっても構わない。
キャッシュプロトコル処理部12は、TCP/IP通信部11からクライアント103の要求メッセージを受け取る。一例として、キャッシュプロトコル処理部12は、OSのrecv()システムコールを受けることで、OSから要求メッセージを受信する。キャッシュプロトコル処理部12は、要求メッセージの内容を解釈する。解釈の結果、要求メッセージの種類がSET要求の場合は、SET命令に含まれるキーとデータをデータ確認処理部13へ渡す。GET要求の場合は、GET命令に含まれるキーを、記憶領域特定部14へ渡す。
また、キャッシュプロトコル処理部12は、キャッシュプロトコルの規定に従って、要求メッセージに対する応答メッセージを作成し、TCP/IP通信部11へ渡す機能を有する。例えばSET要求メッセージを受けた場合は、SET命令の実行結果(成功あるいは失敗等)を表す応答メッセージを返す。なお、GET要求メッセージを受けて、GET要求されたデータを含む応答メッセージを返すときは、後述するように、データ読み出し部21がストレージから当該応答メッセージを読み出して返す。
対応表管理部15は、キー・データ位置対応表(キー・データ位置対応情報)を記憶および管理する。図3にキー・データ位置対応表の例を示す。キー・データ位置対応表には、キー(key)と、ファイルディスクリプタと、オフセットと、データ長とが一組として、複数のエントリが格納されている。
ファイルディスクリプタは、キーに対応する応答メッセージが、ストレージ上で保持されているファイルを識別する識別子である。ファイルディスクリプタは、ストレージ上のファイルを特定するために用いる。オフセットは、当該ファイルの中の位置を示す数値である。例えば、ファイルの先頭からのバイト位置を示す数値である。データ長は、応答メッセージの長さを表す。図の例では、キー・データ位置対応表は、単純な表で表記しているが、キーを検索鍵とするツリーあるいはハッシュ表など、キーによる検索を高速に行うデータ構造を有することが好ましい。
データ確認処理部13は、キャッシュプロトコル処理部12から受け取ったキーと同一の文字列を含むエントリが、キー・データ位置対応表に含まれているかどうかを確認する。含まれている場合は、キー・データ位置対応表の当該エントリを無効にする。無効化の方法として、エントリを削除してもよいし、無効を示す値を設定してもよい。ただし、無効化の処理は必須では無く、省略することも可能である。この場合、後述する本キー・データ位置対応表へのエントリを追加する行う場合は、同じキーのエントリを上書きすればよい。これにより、以降の処理の間に、当該キーに関するGET命令の処理を継続する必要がある場合への対応が可能となる。
データ確認処理部13は、必要に応じてエントリの無効化を行った後、キャッシュプロトコル処理部12から受け取ったキーとデータを、応答メッセージ生成部16に渡す。
応答メッセージ生成部16は、データ確認処理部13から受け取ったキーとデータを用いて、キャッシュプロトコルの規定に従って、応答メッセージを生成する。ここで生成する応答メッセージは、当該キーを指定したGET命令に対応する応答メッセージである。当該応答メッセージは、データ確認処理部13から受け取ったデータを含む。
応答メッセージ生成部16は、生成した応答メッセージを格納するため、ストレージ管理部17に、ストレージ1〜nのうちの1つのストレージ上の記憶領域の割り当てを依頼する。割り当て依頼には、応答メッセージのメッセージ長を含める。応答メッセージ生成部16は、ストレージ管理部17から、割り当てられた記憶領域の情報を受け取る。
ストレージ管理部17は、データ記憶場所テーブルを保持し、当該テーブルに基づき、各ストレージ上の記憶領域の割り当てを管理する。ストレージ管理部17は、応答メッセージ生成部16からの依頼に応じて、応答メッセージを格納するための記憶領域を割り当てる。記憶領域は、例えばファイルと、オフセットとにより識別する。なお、ファイルは、特定の1つのストレージに、ファイルシステムによって対応づけられている。ストレージ間でファイルディスクリプタの値の重複を許容するファイルシステムの場合には、記憶領域は、ファイルとオフセットに加え、ストレージの識別子によって識別する。
図4に、データ記憶場所テーブルの例を示す。データ記憶場所テーブルには、パス(path)、ファイルディスクリプタ、オフセットの各フィールドが含まれる。
パスは、ファイルシステムにおいて、ストレージあるいはファイルがマッピングされている場所を特定する。「mnt1」はストレージ1、「mnt2」はストレージ2、「mntn」はストレージnに対応する。ファイルディスクリプタは、そのファイルへアクセスするための識別子である。ファイル1は、ファイルディスクリプタ3のファイルに対応し、ファイルnはファイルディスクリプタmのファイルに対応する。オフセットは、該当するファイルディスクリプタを有するファイル内において、次に記憶領域を割り当て可能な開始位置を示す。
図示の例では、n個のファイルのエントリがある。各々のファイルは、それぞれ異なるストレージ上に保持されている。ただし、1つのストレージ上に、複数のファイルを配置し、ファイルごとのエントリを、データ記憶場所テーブルに設定することもできる。
なお、初期状態では、データ記憶場所テーブルのオフセットは0に設定されているとする。パスの値は予め固定されており、ファイルディスクリプタは、本装置の初期処理の際に、値が決められて、設定されるものとする。ただし、これは一例であり、別の方法でこれらの値が決められてもかまわない。
ストレージ管理部17は、記憶領域の割り当ての際、任意の方法でストレージを選択する。例えば、ストレージ管理部17は、各ストレージの選択される回数が均等になるように、ストレージを選択してもよい。一例として、ラウンドロビン方式でストレージを選択する。または、ランダムに選択することも可能である。また、後述する実施形態のように、GET要求に応じてアクセスされたストレージの頻度に応じて、ストレージを選択することも可能である。
ストレージ管理部17は、ファイル内に記憶領域を割り当てるたびに、割り当てたサイズ分、オフセットを増加させる。例えば、100バイトの領域を割り当てた場合は、100バイト分加算することで、オフセットを更新する。
ストレージのセクタ境界を意識して、オフセットをセクタサイズの整数倍になるように調整する方法も可能である。例えば、512バイト未満の割り当てを行った後は、512バイトを加算することで、オフセットを更新する。また、512バイトを超える割り当て後は、512バイトの整数倍に切り上げて、切り上げた値でオフセットを更新する。
ストレージ管理部17は、割り当てた記憶領域の情報を、応答メッセージ生成部16に返す。応答メッセージ生成部16に返す記憶領域の情報は、ファイルディスクリプタおよびオフセットを含む。必要に応じて、ストレージの識別子を含めてもよい。
応答メッセージ生成部16は、生成した応答メッセージ、応答メッセージのメッセージ長、およびストレージ管理部19から返されたファイルディスクリプタとオフセットを、データ書き込み部18に渡す。なお、応答メッセージのメッセージ長は、応答メッセージ生成部16で計算すればよい。
データ書き込み部18は、応答メッセージ生成部16から渡されたこれらの情報に基づき、ストレージ制御部19へ、応答メッセージの書き込みを指示する情報を出力する。
ストレージ制御部19は、データ書き込み部18から指示された情報に従って、ストレージ上のファイルへ、応答メッセージの書き込みを行う。具体的に、ファイルディスクリプタで示されたストレージ上のファイルへ、オフセットで示された位置から、応答メッセージを書き込む。
ストレージ制御部19は、使用するファイルシステムの規定に従って、ストレージ上のファイルへ、応答メッセージを書き込む。また、ストレージ制御部19は、後述するデータ読み出し部21からの読み出し要求に応じて、ストレージ上のファイルから応答メッセージの読み出しを行う。このように、ストレージ制御部10は、ストレージへの読み書きを制御する
より詳細に、ストレージへの読み書きは、512バイト単位など、セクタと呼ばれるデータアクセス単位で行う。このため、ストレージ制御部19は、データアクセス単位で、書き込みまたは読み出しのコマンドを発行して、ストレージに送る。ストレージの入出力の規定として、例えばSATA(https://www.sata-io.org/)などが知られている。本実施形態のストレージはSATAストレージを想定するが、これに限定されない。
ストレージは、ストレージ制御部19から書き込みコマンドまたは読み出しコマンドを受け取ってコマンドを実行し、処理の正常完了(成功)、あるいは、異常終了(処理エラーすなわち失敗)を示す応答を、ストレージ制御部19に返す。応答は、ストレージの入出力の規定に従って返す。
書き込みが正常に終了すると、データ書き込み部18は、ストレージ制御部19から正常書き込み完了の通知を受け、応答メッセージ生成部16に、キー・データ位置対応表へのエントリ登録の指示を行う。応答メッセージ生成部16は、キー・データ位置対応表に、新規エントリ(キーと、ファイルディスクリプタ、オフセット、メッセージ長)を追加する。同じキーの値のエントリが存在するときは、エントリを上書きすればよい。
ここでは、エントリ登録を応答メッセージ生成部16が行ったが、データ確認処理部13またはデータ書き込み部18が行うように構成してもよい。あるいは、エントリ登録を行う登録処理部(図示せず)を別途設け、当該登録処理部が登録を行っても良い。この場合、当該登録処理部がストレージ制御部19から正常書き込みの完了通知を受け、キー・データ位置対応表にエントリを登録する。
ストレージ制御部19は、アクセスを行ったストレージが、書き込みまたは読み出しに失敗したこと(エラー)を検知した場合は、エラー処理部20へエラー情報を通知する。エラー情報は、当該エラーを起こしたストレージ、あるいは、ファイル、あるいは、ディレクトリ(例えば図4のmnt1とファイル1の間に1つまたは複数のディレクトリが存在する場合など)の識別情報を含む。
ここで、エラーの検知は、例えばアクセス先のストレージからエラーイベントを受けた場合、あるいは、規定の時間(たとえばSATAの規定時間)以内に、ストレージから応答がない場合に行われる。ストレージが故障している場合など、このようなことが起こる。
また、管理者の設定によっては、ストレージのアクセス時間が一定以上遅延した場合に、所望の性能を満足しないとして、エラー(失敗)として扱うことも可能である。例えば、1ミリ秒未満で処理が完了することを希望する場合に、1ミリ秒を超える時間を要して処理が完了した場合は、エラーを検知する方法が可能である。この場合、管理者は事前に1ミリ秒の値を設定しておき、ストレージ制御部19はこの設定された値に従って、一定以上の遅延が発生したかを判定する。
エラー処理部20は、ストレージ制御部19から、エラー情報を受け取ると、ストレージ管理部17に、エラー情報に示される、ストレージ、あるいは、ファイル、ディレクトリに、新規に記憶領域を割り当てることを禁止することを定めた禁止情報を通知する。また、エラー処理部20は、当該禁止情報を無効ファイル判定部22にさらに通知してもよい。
ストレージ管理部17は、エラー処理部20からの禁止情報の通知に従い、以降、応答メッセージ生成部16からストレージ上の記憶領域の割り当てを依頼された場合には、エラー情報に示されるストレージ、あるいは、ファイル、あるいはディレクトリを割り当てないように動作する。具体的に、ストレージ管理部17は、当該禁止情報に従って、データ記憶場所テーブルから、当該ストレージ、ファイルディスクリプタ、あるいはディレクトリを含むエントリを無効化する。無効にされたストレージを、無効ストレージ、無効にされたファイルディスクリプタのファイルを無効ファイル、無効にされたディレクトリを無効ディレクトリと呼ぶ。ストレージ管理部17は、これら無効ストレージ、あるいは無効ファイル、あるいは無効ディレクトリから、記憶領域を割り当てないようにする。
例えば、ストレージ3上のファイルディスクリプタ5のファイルへアクセスする際に、エラーが発生したとする。この場合、エラー処理部20は、ストレージ3もしくはファイルディスクリプタ5の割り当て禁止情報を、ストレージ管理部17に通知する。ストレージ管理部17は、当該禁止情報に従って、データ記憶場所テーブルから、ファイルディスクリプタ5のエントリを無効化する。ファイルディスクリプタ5のエントリを無効化する動作を図5に示す。以後、ストレージ管理部17は、ファイルディスクリプタ5の無効化されたファイル、もしくは無効化されたストレージ5等に、新たに記憶領域を割り当てない。つまり、無効ファイルもしくは無効ストレージ等に、新たに記憶領域を割り当てない。なお、エントリを無効化する方法として、エントリ自体をテーブルから削除してもよいし、無効を示す値をエントリに対して設定してもよい。
ここで、キー・データ位置対応表にも、割り当て禁止されたストレージ上のファイルのファイルディスクリプタ(本例では図4に示すようにファイルディスクリプタ5)が含まれる。しかしながら、キー・データ位置対応表からは、当該ファイルディスクリプタのエントリの削除は行わなくてもよい。この理由は以下の通りである。
キー・データ位置対応表には、膨大なエントリ(例えば数億のエントリ)を保持することも想定される。この場合、エラー発生時にエントリの削除を行うと、その間、処理が滞り、キャッシュサーバの応答性能が、劣化する恐れがある。また、対応表管理部15が、ファイルディスクリプタを検索キーとして探索する機能を有する場合などは、検索機能の応答が著しく劣化する可能性もある。
なお、応答メッセージの書き込みに失敗した場合、応答メッセージ生成部16は、ストレージ管理部17から、書き込みに失敗したファイルまたはストレージと異なるファイルまたはストレージから、記憶領域の再割り当てを受け、再度、ストレージ制御部19に書き込み要求を行ってもよい。または、書き込みに失敗したことを示す応答メッセージを、キャッシュプロトコル処理部12等で生成して、ネットワーク103を介してクライアント102に送信してもよい。これらの場合、エラー処理部20から、応答メッセージ生成部16やキャッシュプロトコル処理部12に、エラー情報を通知してもよい。
記憶領域特定部14は、キャッシュプロトコル処理部12からGET要求メッセージに含まれるキーを受け取る。記憶領域特定部14は、キーが、キー・データ位置対応表に含まれるかどうかを検査する。キーが含まれない場合は、応答すべきデータは存在しないと判断する。この場合、キャッシュプロトコル処理部12を介して、その旨の応答メッセージを返しても良い。一方、当該キー・データ位置対応表にキーが含まれる場合は、当該キーを含むエントリから、ファイルディスクリプタ、オフセット、メッセージ長(データ長)を取り出す。
記憶領域特定部14は、取り出したファイルディスクリプタを、無効ファイル判定部22に渡す。無効ファイル判定部22は、当該ファイルディスクリプタが、無効なファイルディスクリプタか否かを判定する。記憶領域特定部14は、当該ファイルディスクリプタが、エラーが発生したストレージ上のファイルを示す場合、無効と判定する。
無効の判定方法としては、ストレージ管理部17に問い合わせて、当該ファイルディスクリプタ、または当該ファイルディスクリプタを含むストレージもしくはディレクトリが有効か否かを確認してもよい。あるいは、エラー処理部20からストレージ管理部17に禁止情報を通知する際に、無効ファイル判定部22にも禁止情報を通知して、無効ファイル判定部22の内部に記憶しておいてもよい。
無効なファイルディスクリプタの場合、無効ファイル判定部22は、ストレージアクセスは行わないことを決定し、データ読み出し部21へは、当該ファイルディスクリプタ、オフセット、メッセージ長を渡さない。これにより、仮にストレージアクセスを行った場合に発生するエラーを未然に阻止する。一方、無効ファイル判定部22は、当該ファイルディスクリプタが無効でない(つまり、有効である)と判定した場合は、データ読み出し部21に、当該ファイルディスクリプタ、オフセット、メッセージ長を渡す。必要に応じて、ストレージの識別子を渡しても良い。
データ読み出し部21は、ファイルディスクリプタ、オフセット、メッセージ長に基づき、ストレージ制御部19を介して、応答メッセージを読み出す。読み出した応答メッセージは、GET命令で指定されたキーに対応するデータを含んでいる。データ読み出し部21は、読み出した応答メッセージをTCP/IP通信部11に渡す。TCP/IP通信部11は、キャッシュアクセスクライアントからのGET要求メッセージの応答として、受け取った応答メッセージを送出する。GET命令の応答メッセージを事前に生成してあるため、GET要求メッセージに対する高速な応答が可能である。
なお、データ読み出し部21は、ストレージ制御部19を介して読み出しを行う際に、アクセス先のストレージでエラーが発生する場合もあり得る。この場合には、上述の書き込み時のエラー発生の場合と同様に、エラー処理部20を用いたアクセス禁止処理を行えばよい。すなわち、エラー処理部20から、アクセスエラーが発生したストレージ、あるいは、ファイル、ディレクトリへの割り当てを禁止する禁止情報を、ストレージ管理部17に通知する。当該禁止情報を、無効ファイル判定部22にさらに通知してもよい。ストレージ管理部17は、以降、当該禁止情報に示されるストレージ、ファイル、ディレクトリを割り当てないように動作する。
以上、本実施形態によれば、複数のストレージを併用して記憶容量とデータ応答性能を高めつつ、ストレージの性能低下を抑制、あるいは、故障に対応できる。
すなわち、本実施形態によれば、ストレージを複数利用することで記憶容量を確保できる。
また、本実施形態によれば、GET要求に対する応答の形式の応答メッセージを記憶しておき、GET要求を受けた場合には、当該応答メッセージを読み出して、送信することで高速な応答が可能となる。
また、本実施形態によれば、ストレージへの書き込みまたは読み出しが失敗した場合には、当該ストレージへの書き込みおよび読み出しを禁止する。GET要求されたデータの記憶された場所が、当該禁止されたストレージであった場合には、当該ストレージからの読み出しは行わない。これにより、読み出し時のエラーの発生を未然に防いで、応答性能低下を抑制できる。
また、本実施形態によれば、ストレージへの書き込みまたは読み出しが失敗した場合には、そのストレージを使用することを禁止し、残りのストレージを用いて同様の処理を継続できる。よって、クライアントへのサービス停止は阻止できる。
(第2の実施形態)
図6は、第2の実施形態に係るデータ転送装置を示す。図2に示した第1の実施形態に係るデータ転送装置に、新規登録ストレージ登録部31が追加されている。
図6は、第2の実施形態に係るデータ転送装置を示す。図2に示した第1の実施形態に係るデータ転送装置に、新規登録ストレージ登録部31が追加されている。
新規登録ストレージ登録部31は、キャッシュサーバが動作中に、ストレージが増設(追加)された場合に処理を行う。新規登録ストレージ登録部31は、ストレージが追加されると、ストレージ制御部19から、増設されたストレージの情報を受ける。これにより、新規登録ストレージ登録部31は、新規ストレージの追加を検知する。新規登録ストレージ登録部31は、追加されたストレージに対しても、新規に記憶領域の割り当てが可能となるように、ストレージ管理部17に、新規ストレージの情報を通知する。通知する新規ストレージの情報は、新規に追加されたストレージの識別情報や、当該ストレージへ割り当てられたファイルのファイルディスクリプタ、および当該ファイルへのパス中のディレクトリなどを含む。
ストレージ管理部17は、新規ストレージ登録部31から、新規ストレージの情報の通知を受け取ると、データ記憶領域保持テーブルに、当該ストレージに関連する新規エントリ(パス、ファイルディスクリプタ、オフセット)を追加する。オフセットの初期値は、例えば0とする。
以上、本実施形態によれば、ストレージが新規に追加された場合も有効に対応できる。
(第3の実施形態)
図7は、第3の実施形態に係るデータ転送装置を示す。図2に示した第1の実施形態に係るデータ転送装置に、統計情報管理部41が追加されている。
図7は、第3の実施形態に係るデータ転送装置を示す。図2に示した第1の実施形態に係るデータ転送装置に、統計情報管理部41が追加されている。
統計情報管理部41は、GET命令に起因するストレージアクセスの頻度に応じた統計情報を管理する。統計情報管理部41は、データ読み出し部21がストレージ制御部19を介してストレージアクセスする際に、どのストレージにアクセスしているかの通知を受ける。これにより、統計情報管理部41は、ストレージへのアクセスの頻度に応じた統計情報を計算および管理する。統計情報管理部41は、ストレージ単位でのアクセスのみならず、ファイルディスクリプタ、ディレクトリなどの単位で、アクセスの頻度に応じた統計情報を管理してもよい。
図8に統計情報管理部41で管理する統計情報の例を示す。各ストレージにはそれぞれ1つのファイルが存在する。データ読み出し部21がストレージのファイルにアクセスするたびに、統計情報管理部41へアクセスを通知する。統計情報管理部41は、統計情報の一例として、通知された回数の合計を、応答回数(読み出し頻度)として算出する。この応答回数は、システム起動時からの累積値としてもよい。または、一定時間毎に累積値を所定値にリセットしてもよく、例えば10秒や1分毎に、累積値を0にリセットしてもよい。この場合、応答回数は、最近10秒、あるいは、1分のアクセス頻度を示す数値として解釈される。
ここで述べた統計情報の例は一例であり、別の統計情報を計算してもよい。例えば一定時間間隔で応答回数を計算し、これらの移動平均を計算してもよい。または、直前の過去X回の各時間間隔での応答回数のうちの最大値、最小値、中央値などの値を、統計情報としてもよい。
ストレージ管理部17は、統計情報管理部41で管理する統計情報に基づき、応答メッセージ生成部16からの依頼に対し、記憶領域を割り当てる。高頻度に読み出しアクセスされるストレージは、処理負荷が高い状態にある。このため、ストレージ管理部17は、一例として、応答回数の少ないストレージを、優先に割り当てる。
具体的に、応答回数が閾値以下のストレージの中から、ストレージを選択することがある。あるいは、応答回数が、相対的に低いストレージの中から、ストレージを選択することがある。例えば、応答回数が最も低いストレージを選択する。または、応答回数が小さい順に、ストレージを順位付けし、上位X個のストレージの中から、ストレージを選択することがある。これにより、各ストレージへの読み出し回数が、均等になることが期待される。ここでは、応答回数を用いた具体例を示したが、応答回数以外の統計情報を利用する場合も、同様の考え方に基づき選択を行うことで、各ストレージからの読み出し回数が均等になることが期待される。
(第4の実施形態)
図9は、第4の実施形態に係るデータ転送装置を示す。第2および第3の実施形態を組み合わせたものである。すなわち、図9のデータ転送装置は、統計情報管理部41と、新規ストレージ登録部31を備える。本実施形態の動作は、第2および第3の実施形態の説明から自明であるため、省略する。
図9は、第4の実施形態に係るデータ転送装置を示す。第2および第3の実施形態を組み合わせたものである。すなわち、図9のデータ転送装置は、統計情報管理部41と、新規ストレージ登録部31を備える。本実施形態の動作は、第2および第3の実施形態の説明から自明であるため、省略する。
(第5の実施形態)
図10は、第5の実施形態に係るデータ転送装置を示す。図9に示した第4の実施形態に係るデータ転送装置の応答メッセージ生成部16が、記憶領域取得部26に置換されている。また、データ読み出し部21とTCP/IP通信部11の間に、応答メッセージ生成部23が配置されている。同様の変形を、第1〜第4の実施形態に対して行うことも可能である。
図10は、第5の実施形態に係るデータ転送装置を示す。図9に示した第4の実施形態に係るデータ転送装置の応答メッセージ生成部16が、記憶領域取得部26に置換されている。また、データ読み出し部21とTCP/IP通信部11の間に、応答メッセージ生成部23が配置されている。同様の変形を、第1〜第4の実施形態に対して行うことも可能である。
第1〜第4の実施形態では、SET要求メッセージをクライアントから受けた場合に、SET命令で指定されたデータを含む、GET要求に対する応答メッセージを生成し、ストレージに格納した。本実施形態では、SET要求メッセージを受けた時点では応答メッセージは作成せず、ストレージには、SET命令で与えられたデータを格納する。一方、GET要求メッセージをクライアントから受けた場合に、GET命令されたデータをストレージから読み出し、当該データを含む応答メッセージを生成する。つまり、GET応答メッセージを、SET要求を受けた時点で生成するのではなく、GET要求を受けた時点で生成する。以下、これまで説明した実施形態との差分のみ説明する。
データ確認処理部13は、キャッシュプロトコル処理部12からSET要求メッセージに含まれるキーとデータを受け取り、当該キーと同じキーがキー・データ位置対応表に存在するか確認する。存在する場合は、必要に応じて当該キーを含むエントリを無効化する。これは第1の実施形態と同様である。なお、本実施形態では、図3に示したキー・データ位置対応表の「メッセージ長」は「データ長」になる。
データ確認処理部13は、キーとデータを、データ記憶領域取得部26に渡す。記憶領域取得部26は、キーとデータに基づき、ストレージ管理部17に、ストレージ上の記憶領域の割り当てを依頼し、割り当てられた記憶領域の情報(ファイルディスクリプタ、オフセット)を受け取る。必要に応じて、ストレージの識別子を受け取ってもよい。記憶領域取得部26は、SET命令で指定されたデータと、当該データのデータ長と、ストレージ管理部17から受け取ったファイルディスクリプタおよびオフセットとを、データ書き込み部18に渡す。
データ書き込み部18は、これらの受け取った情報に基づき、ストレージへのデータ書き込みを、ストレージ制御部19に要求する。書き込みが正常に終了すると、データ書き込み部18は、ストレージ制御部19から正常書き込み完了の通知を受け、記憶領域取得部26に、キー・データ位置対応表へのエントリ登録を指示する。記憶領域取得部26は、キー・データ位置対応表に、新規エントリ(キーと、ファイルディスクリプタ、オフセット、データ長)を登録する。
ここでは、エントリ登録を記憶領域取得部26が行ったが、データ確認処理部13またはデータ書き込み部18が行うように構成しても良い。あるいは、エントリ登録を行う登録処理部(図示せず)を別途設け、当該登録処理部が登録を行っても良い。この場合、当該登録処理部がストレージ制御部19から正常書き込みの完了通知を受け、キー・データ位置対応表にエントリを登録する。
一方、GET要求メッセージを受けた場合、記憶領域特定部14および無効ファイル判定部22の処理を経た後、データ読み出し部21は、ファイルディスクリプタ、オフセット、データ長に従って、ストレージ制御部19にデータの読み出し要求を行う。データ読み出し部21は、データ読み出しが成功した場合、読み出したデータを、応答メッセージ生成部23に送る。
応答メッセージ生成部23は、そのデータを含む応答メッセージを、GET命令に対する応答の形式で生成する。より詳細に、応答メッセージ生成部23は、データ読み出し部21からデータを受け取ると、記憶領域特定部14から、GET命令に含まれていたキーを受け取り、メッセージヘッダを生成し、GET命令の応答形式のメッセージを生成する。その後、応答メッセージ生成部23は、当該メッセージをTCP/IP通信部11に渡す。TCP/IP通信部11は、クライアントからのGET要求メッセージに対する応答として、当該メッセージを送信する。
以上、本実施形態によれば、ストレージへ記憶させる対象が応答メッセージではなく、データそのものである場合にも、第1〜第4の実施形態と同様の効果を得ることができる。
尚、各実施形態のデータ転送装置は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることでも実現することが可能である。すなわち、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより、本データ転送装置を実現することができる。このとき、データ転送装置は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、CD-ROMなどの記憶媒体に記憶して、あるいは通信網を介して上記のプログラムを配布して、このプログラムをコンピュータ装置に配置することで実現出来る。また、上記のコンピュータ装置に内蔵あるいは外付けされたメモリ、ハードディスク又はCD-R、CD-RW、DVD-RAM、DVD-R等の記憶媒体などを利用することが出来る。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
101:キャッシュサーバ
102:キャッシュクライアント
1〜n:ストレージ
11:TCP/IP通信部
12:キャッシュプロトコル処理部
13:データ確認処理部
14:記憶領域特定部
15:対応表管理部
16:応答メッセージ生成部
17:ストレージ管理部
18:データ書き込み部
19:ストレージ制御部
20:エラー処理部
21:データ読み出し部
22:無効ファイル判定部
23:応答メッセージ生成部
31:新規ストレージ登録部
41:統計情報管理部
102:キャッシュクライアント
1〜n:ストレージ
11:TCP/IP通信部
12:キャッシュプロトコル処理部
13:データ確認処理部
14:記憶領域特定部
15:対応表管理部
16:応答メッセージ生成部
17:ストレージ管理部
18:データ書き込み部
19:ストレージ制御部
20:エラー処理部
21:データ読み出し部
22:無効ファイル判定部
23:応答メッセージ生成部
31:新規ストレージ登録部
41:統計情報管理部
Claims (19)
- ネットワークを介して、通信装置と通信するデータ転送装置であって、
複数のストレージへのデータの読み書きを制御するストレージ制御部と、
前記ストレージ制御部が書き込んだデータと、前記データを書き込んだストレージとを関連づけた対応情報を管理する対応情報管理部と、
前記ストレージ制御部がデータの書き込みまたは読み出しに失敗したストレージを無効ストレージとして管理するストレージ管理部と、
前記通信装置から、前記データの取得要求メッセージを受信する通信部と、
前記対応情報に基づき、前記取得要求メッセージで要求されたデータを格納しているストレージを特定する特定部と、
前記特定部で特定したストレージが、前記無効ストレージに該当するきは、前記データの読み出し要求を前記ストレージ制御部に行わず、前記無効ストレージに該当しないときは、前記特定したストレージから前記データを読み出すことを前記ストレージ制御部に要求する読み出し部と
を備えたデータ転送装置。 - 書き込み部をさらに備え、
前記通信部は、前記通信装置からデータの保存要求メッセージを受信し、
前記ストレージ管理部は、前記保存要求メッセージで要求されたデータを書き込むストレージを、前記複数のストレージのうち前記無効ストレージ以外のストレージの中から選択し、
前記書き込み部は、前記ストレージ管理部により選択されたストレージに、前記データの書き込みを行うことを、前記ストレージ制御部に要求し、
前記ストレージ制御部は、前記書き込み部からの要求に応じて、前記ストレージに前記データの書き込みを行う
請求項1に記載のデータ転送装置。 - 新たなストレージが前記ストレージ制御部の制御対象に追加されたことを検知する新規ストレージ検知部をさらに備え、
前記ストレージ管理部は、前記新規ストレージ検知部で検知されたストレージをストレージの選択対象に含める
請求項1ないし2のいずれか一項に記載のデータ転送装置。 - 前記読み出し部が前記ストレージ制御部に読み出し要求を行った各ストレージの頻度に応じて、各ストレージへの読み出し要求の頻度に関する統計情報を管理する統計情報管理部をさらに備え、
前記ストレージ管理部は、前記統計情報に基づいて、前記ストレージを選択する
請求項1ないし3のいずれか一項に記載のデータ転送装置。 - 前記ストレージ管理部は、前記読み出し要求の頻度が少ないストレージを優先的に選択する
請求項4に記載のデータ転送装置。 - 前記ストレージ管理部は、前記ストレージ制御部が前記保存要求メッセージで要求されたデータの書き込みに失敗した場合は、前記書き込みに失敗したストレージとは別のストレージを選択し、
前記書き込み部は、前記別のストレージへ前記データを書き込むことを、前記ストレージ制御部に要求する
請求項2に記載のデータ転送装置。 - 前記通信部は、前記特定したストレージが無効ストレージに該当するときは、前記取得要求メッセージで要求されたデータは存在しないことを表す応答メッセージを、前記通信装置に送信する
請求項1ないし6のいずれか一項に記載のデータ転送装置。 - 前記複数のストレージは、所定のファイルシステムによって管理されており、それぞれ1つ以上のファイルを格納しており、
前記ストレージ制御部は、各ストレージの各ファイルへのデータの読み書きを制御し、
前記対応情報管理部は、前記ストレージ制御部が書き込んだデータと、前記データを書き込んだファイルとを関連づけた前記対応情報を管理し、
前記ストレージ管理部は、前記ストレージ制御部が書き込みまたは読み出しに失敗したファイル、または前記ファイルを格納しているストレージを、無効ファイルまたは無効ストレージとして管理し、
前記特定部は、前記取得要求メッセージで要求されたデータを格納しているファイルを前記対応情報に基づき特定し、
前記読み出し部は、前記特定したファイルが、前記無効ファイルであるとき、または前記無効ストレージに属するときは、前記ストレージ制御部に前記特定したファイルからのデータ読み出しを要求しない
請求項1ないし5のいずれか一項に記載のデータ転送装置。 - 書き込み部をさらに備え、
前記通信部は、データの保存要求メッセージを受信し、
前記ストレージ管理部は、前記保存要求メッセージで要求されたデータを書き込むファイルを、前記無効ストレージ以外のストレージ上のファイル、または前記無効ファイル以外のファイルから選択し、
前記書き込み部は、前記ストレージ管理部により選択されたファイルに、前記データの書き込みを行うことを、前記ストレージ制御部に要求し、
前記ストレージ制御部は、前記書き込み部からの要求に応じて、前記ファイルへ前記データの書き込みを行う
請求項8に記載のデータ転送装置。 - 前記ストレージ管理部は、前記ストレージ制御部が前記データの書き込みに失敗した場合は、前記書き込みに失敗したファイルまたはストレージとは別のファイルまたはストレージを選択し、
前記書き込み部は、前記別のファイル、または別のストレージ上のファイルへ前記データを書き込むことを前記ストレージ制御部に要求する
請求項9に記載のデータ転送装置。 - 前記通信部は、前記特定したファイルが、前記無効ファイルに該当する、または前記無効ストレージに属するときは、前記取得要求メッセージで要求されたデータは存在しないことを表す応答メッセージを、前記通信装置に送信する
請求項8ないし10のいずれか一項に記載のデータ転送装置。 - 前記通信部は、前記ストレージ制御部が前記データの書き込みまたは読み出しに失敗した場合は、前記書き込みまたは読み出しに失敗したことを示す応答メッセージを、前記通信装置に送信する
請求項1ないし11のいずれか一項に記載のデータ転送装置。 - 前記読み出し部による前記データの読み出し要求に応じて前記ストレージ制御部により読み出されたデータを取得し、前記データを含む応答メッセージを生成する応答メッセージ生成部をさらに備え、
前記通信部は、前記応答メッセージを、前記取得要求メッセージに対する応答として前記通信装置に送信する
請求項1ないし12のいずれか一項に記載のデータ転送装置。 - 前記ストレージ制御部は、データを含む応答メッセージの読み書きを前記複数のストレージに対して制御し、
前記対応情報管理部は、前記ストレージ制御部が書き込んだ応答メッセージと、前記応答メッセージを書き込んだストレージとを関連づけた対応情報を管理し、
前記通信部は、前記通信装置から、前記データの取得要求メッセージを受信し、
前記特定部は、前記対応情報に基づき、前記取得要求メッセージで要求されたデータを含む応答メッセージを格納しているストレージを特定し、
前記読み出し部は、前記特定部で特定したストレージが、前記無効ストレージに該当するときは、前記応答メッセージの読み出し要求を、前記ストレージ制御部に行わず、前記無効ストレージに該当しないときは、前記特定したストレージから前記応答メッセージを読み出すことを前記ストレージ制御部に要求する
請求項1に記載のデータ転送装置。 - 書き込み部と、応答メッセージ生成部をさらに備え、
前記通信部は、データの保存要求メッセージを受信し、
前記応答メッセージ生成部は、前記保存要求メッセージで要求されたデータを含む応答メッセージを生成し、
前記ストレージ管理部は、前記応答メッセージを書き込むストレージを、前記複数のストレージのうち前記無効ストレージ以外のストレージの中から選択し、
前記書き込み部は、前記ストレージ管理部により選択されたストレージに、前記応答メッセージの書き込みを行うことを、前記ストレージ制御部に要求し、
前記ストレージ制御部は、前記書き込み部からの要求に応じて、前記ストレージに前記応答メッセージの書き込みを行う
請求項14に記載のデータ転送装置。 - ネットワークを介して、通信装置と通信するデータ転送方法であって、
複数のストレージへのデータの読み書きを制御するストレージ制御装置が書き込んだデータと、前記データを書き込んだストレージとを関連づけた対応情報を管理する対応管理ステップと、
前記ストレージ制御装置がデータの書き込みまたは読み出しに失敗したストレージを、無効ストレージとして管理するストレージ管理ステップと、
前記通信装置から、前記データの取得要求メッセージを受信する受信ステップと、
前記対応情報に基づき、前記取得要求メッセージで要求されたデータを格納しているストレージを特定する特定ステップと、
前記特定したストレージが、前記無効ストレージに該当するときは、前記データの読み出し要求を、前記ストレージ制御装置に行わないことを決定する決定ステップと、
前記特定ステップで特定したストレージが、前記無効ストレージに該当しないときは、前記特定ステップで特定したストレージから前記データを読み出すことを、前記ストレージ制御装置に要求する読み出しステップと、
を備えたデータ転送方法。 - 前記ストレージ制御装置は、データを含む応答メッセージの読み書きを前記複数のストレージに対して制御し、
前記対応情報管理ステップは、前記ストレージ制御装置が書き込んだ応答メッセージと、前記応答メッセージを書き込んだストレージとを関連づけた対応情報を管理し、
前記受信ステップは、前記通信装置から、前記データの取得要求メッセージを受信し、
前記特定ステップは、前記対応情報に基づき、前記取得要求メッセージで要求されたデータを含む応答メッセージを格納しているストレージを特定し、
前記決定ステップは、前記特定したストレージが、前記無効ストレージに該当するときは、前記応答メッセージの読み出し要求を前記ストレージ制御装置に行わないことを決定し、
前記読み出しステップは、前記特定ステップで特定したストレージが、前記無効ストレージに該当しないときは、前記特定したストレージから前記応答メッセージを読み出すことを、前記ストレージ制御装置に要求する
請求項16に記載のデータ転送方法。 - ネットワークを介して、通信装置と通信するためのコンピュータプログラムであって、
複数のストレージへのデータの読み書きを制御するストレージ制御装置が書き込んだデータと、前記データを書き込んだストレージとを関連づけた対応情報を管理する対応管理ステップと、
前記ストレージ制御装置がデータの書き込みまたは読み出しに失敗したストレージを、無効ストレージとして管理するストレージ管理ステップと、
前記通信装置から、前記データの取得要求メッセージを受信する受信ステップと、
前記対応情報に基づき、前記取得要求メッセージで要求されたデータを格納しているストレージを特定する特定ステップと、
前記特定したストレージが、前記無効ストレージに該当するときは、前記データの読み出し要求を、前記ストレージ制御装置に行わないことを決定する決定ステップと、
前記特定ステップで特定したストレージが、前記無効ストレージに該当しないときは、前記特定ステップで特定したストレージから前記データを読み出すことを、前記ストレージ制御装置に要求する読み出しステップと、
をコンピュータに実行させるためのコンピュータプログラム。 - 前記ストレージ制御装置は、データを含む応答メッセージの読み書きを前記複数のストレージに対して制御し、
前記対応情報管理ステップは、前記ストレージ制御装置が書き込んだ応答メッセージと、前記応答メッセージを書き込んだストレージとを関連づけた対応情報を管理し、
前記受信ステップは、前記通信装置から、前記データの取得要求メッセージを受信し、
前記特定ステップは、前記対応情報に基づき、前記取得要求メッセージで要求されたデータを含む応答メッセージを格納しているストレージを特定し、
前記決定ステップは、前記特定したストレージが、前記無効ストレージに該当するときは、前記応答メッセージの読み出し要求を前記ストレージ制御装置に行わないことを決定し、
前記読み出しステップは、前記特定ステップで特定したストレージが、前記無効ストレージに該当しないときは、前記特定したストレージから前記応答メッセージを読み出すことを、前記ストレージ制御装置に要求する
請求項18に記載のコンピュータプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014055562A JP2015179326A (ja) | 2014-03-18 | 2014-03-18 | データ転送装置、データ転送方法およびコンピュータプログラム |
US14/658,709 US9811410B2 (en) | 2014-03-18 | 2015-03-16 | Data transfer device, data transfer method, and non-transitory computer readable medium |
US15/802,105 US10698758B2 (en) | 2014-03-18 | 2017-11-02 | Data transfer device, data transfer method, and non-transitory computer readable medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014055562A JP2015179326A (ja) | 2014-03-18 | 2014-03-18 | データ転送装置、データ転送方法およびコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015179326A true JP2015179326A (ja) | 2015-10-08 |
Family
ID=54142236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014055562A Abandoned JP2015179326A (ja) | 2014-03-18 | 2014-03-18 | データ転送装置、データ転送方法およびコンピュータプログラム |
Country Status (2)
Country | Link |
---|---|
US (2) | US9811410B2 (ja) |
JP (1) | JP2015179326A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733753B (zh) * | 2018-04-10 | 2021-08-03 | 网宿科技股份有限公司 | 一种文件读取方法及应用实体 |
CN112363761B (zh) * | 2020-11-09 | 2022-08-02 | 西安热工研究院有限公司 | 一种支持动态重定位的算法页变量引用方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002099465A (ja) | 2000-09-25 | 2002-04-05 | Hitachi Ltd | キャッシュ制御方法 |
JP2006040065A (ja) * | 2004-07-28 | 2006-02-09 | Fujitsu Ltd | データ記憶装置およびデータ記憶方法 |
US8103824B2 (en) * | 2008-04-17 | 2012-01-24 | International Business Machines Corporation | Method for self optimizing value based data allocation across a multi-tier storage system |
US8225135B2 (en) * | 2009-07-07 | 2012-07-17 | Drobo, Inc. | System and method for protecting users of data storage systems against known problems |
US8438361B2 (en) * | 2010-03-10 | 2013-05-07 | Seagate Technology Llc | Logical block storage in a storage device |
US8984352B2 (en) * | 2010-04-14 | 2015-03-17 | Hitachi, Ltd. | Storage control apparatus and control method of storage control apparatus |
JP5640543B2 (ja) * | 2010-08-10 | 2014-12-17 | 富士通株式会社 | ストレージシステム及びその制御方法 |
US8990634B2 (en) * | 2010-11-03 | 2015-03-24 | Microsoft Technology Licensing, Llc | Reporting of intra-device failure data |
JP2014235531A (ja) | 2013-05-31 | 2014-12-15 | 株式会社東芝 | データ転送装置、データ転送システム、およびプログラム |
US9959403B2 (en) * | 2013-07-03 | 2018-05-01 | Megachips Corporation | Information processing system for mutual authentication between communication device and storage |
US9823876B2 (en) * | 2015-09-29 | 2017-11-21 | Seagate Technology Llc | Nondisruptive device replacement using progressive background copyback operation |
-
2014
- 2014-03-18 JP JP2014055562A patent/JP2015179326A/ja not_active Abandoned
-
2015
- 2015-03-16 US US14/658,709 patent/US9811410B2/en active Active
-
2017
- 2017-11-02 US US15/802,105 patent/US10698758B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20150269046A1 (en) | 2015-09-24 |
US20180113756A1 (en) | 2018-04-26 |
US10698758B2 (en) | 2020-06-30 |
US9811410B2 (en) | 2017-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11886731B2 (en) | Hot data migration method, apparatus, and system | |
US10768857B2 (en) | Storage system having a controller that selects a die of a solid state disk to store data | |
JP5931196B2 (ja) | I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法 | |
US10715622B2 (en) | Systems and methods for accelerating object stores with distributed caching | |
US10671285B2 (en) | Tier based data file management | |
US8775755B2 (en) | Peer-to-peer transcendent memory | |
JP6268116B2 (ja) | データ処理装置、データ処理方法およびコンピュータプログラム | |
JP6582445B2 (ja) | シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム | |
US9021208B2 (en) | Information processing device, memory management method, and computer-readable recording medium | |
US10698758B2 (en) | Data transfer device, data transfer method, and non-transitory computer readable medium | |
US20110282923A1 (en) | File management system, method, and recording medium of program | |
JP6378044B2 (ja) | データ処理装置、データ処理方法およびプログラム | |
JP6607044B2 (ja) | サーバー装置、分散ファイルシステム、分散ファイルシステム制御方法、および、プログラム | |
JP6076882B2 (ja) | 情報処理システム、管理装置及びキー割当プログラム | |
JP6568232B2 (ja) | 計算機システム、及び、装置の管理方法 | |
JP5494363B2 (ja) | ファイル管理プログラム,ファイル管理方法およびファイル管理装置 | |
US20240004575A1 (en) | Storage system and data management method of storage system | |
KR102167791B1 (ko) | 인-메모리 레이어 관리 장치 및 그를 위한 컴퓨터로 읽을 수 있는 기록 매체 | |
CN114697393A (zh) | 一种数据存储方法、装置、设备及介质 | |
CN116095011A (zh) | 一种数据限流方法、装置、计算机设备以及存储介质 | |
JP2011028658A (ja) | データベース装置、キャッシュ装置、データベースシステム、キャッシュメンテナンス方法およびそのプログラム | |
KR20180074114A (ko) | 가상 파일 기반의 클라우드 서비스 방법 및 장치 | |
JP2008210325A (ja) | 管理サーバ、ファイル管理方法およびそのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160105 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20160707 |