JP2014178734A - キャッシュ装置、データ書込方法及びプログラム - Google Patents
キャッシュ装置、データ書込方法及びプログラム Download PDFInfo
- Publication number
- JP2014178734A JP2014178734A JP2013050616A JP2013050616A JP2014178734A JP 2014178734 A JP2014178734 A JP 2014178734A JP 2013050616 A JP2013050616 A JP 2013050616A JP 2013050616 A JP2013050616 A JP 2013050616A JP 2014178734 A JP2014178734 A JP 2014178734A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage
- divided data
- key
- cache device
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】WAN環境を通したストレージファームへのデータの書き込みにおけるレスポンスを向上させることを目的とする。
【解決手段】ファイルシステム生成装置から受信した書込対象のデータを所定のデータ長に分割して分割データを生成し、分割データと当該分割データに対応するキーとのセットを生成するストレージライタに接続されたキャッシュ装置は、前記ストレージライタから分割データと当該分割データに対応するキーとのセットを受信するデータ受信部と、前記受信した分割データと当該分割データに対応するキーとのセットを当該キャッシュ装置の記憶部に格納すると共に、ストレージファームに格納するデータ書込部とを有する。
【選択図】図1
【解決手段】ファイルシステム生成装置から受信した書込対象のデータを所定のデータ長に分割して分割データを生成し、分割データと当該分割データに対応するキーとのセットを生成するストレージライタに接続されたキャッシュ装置は、前記ストレージライタから分割データと当該分割データに対応するキーとのセットを受信するデータ受信部と、前記受信した分割データと当該分割データに対応するキーとのセットを当該キャッシュ装置の記憶部に格納すると共に、ストレージファームに格納するデータ書込部とを有する。
【選択図】図1
Description
本発明は、キャッシュ装置、データ書込方法及びプログラムに関する。
近年、仮想化技術や分散処理技術等の進展に伴い、扱うデータ量は増加する傾向にあり、特に文書ファイルや画像、動画等の非構造化データの量が急増している。このため、大量のデータを効率的に保存する技術が求められている。
記憶領域を効率的に利用することができる技術として、key-Value形式を用いたデータの記憶方法が検討されている(特許文献1参照)。具体的には、ストレージファームに書き込もうとするデータを、インデックスと書込対象のデータのビット列とに分ける。書込対象のデータのビット列に対してはハッシュ値を計算し、計算されたハッシュ値をkeyとするkey-Value形式にしてストレージファームに書き込む。このようにして、ユーザが異なってもビット列としての同一性を判別することができ記憶領域の効率的な利用をすることができる。
遅延を解消しスループットを最適化するWAN高速化装置http://itpro.nikkeibp.co.jp/as/wan2/index.shtml
WAN高速化http://www.cisco.com/web/JP/news/cisco_news_letter/tech/waas2/index.html
今後、ストレージリソースの集約効果や柔軟なリソースの利用ができるという理由から、クラウドストレージの利用が広まっていくことが考えられる。リソースが一か所に集約されているクラウドストレージでは、まさに上記のkey-Value形式を用いたデータの記憶方法によりデータの重複排除効果が期待されると考えられる。
しかし、上記のkey-Value形式を用いたデータの記憶方法では、ストレージファームが広域ネットワーク(WAN:Wide Area Network)環境にある場合に問題がある。例えば、ストレージファームに書き込まれるデータがWAN環境を通るため、ユーザに対するレスポンスが劇的に低下するという問題がある(非特許文献1及び2参照)。
また、ストレージシステムでは信頼性やフォールトトレランス性を強化するためにレプリケーションを行っている。特に信頼性を重視する観点から、全てのレプリカが書き込まれた時点で書き込み完了として扱う場合、更にレスポンスが低下する。
本発明は、WAN環境を通したストレージファームへのデータの書き込み及び読み出しにおけるレスポンスを向上させることを目的とする。
また、WAN環境下におけるレスポンス制御を目的として、システムが重視する観点を選択し、この重視する観点に基づくデータの書き込み制御を行うことを目的とする。
本発明の一形態に係るキャッシュ装置は、
ファイルシステム生成装置から受信した書込対象のデータを所定のデータ長に分割して分割データを生成し、分割データと当該分割データに対応するキーとのセットを生成するストレージライタに接続されたキャッシュ装置であって、
前記ストレージライタから分割データと当該分割データに対応するキーとのセットを受信するデータ受信部と、
前記受信した分割データと当該分割データに対応するキーとのセットを当該キャッシュ装置の記憶部に格納すると共に、ストレージファームに格納するデータ書込部と、
を有する。
ファイルシステム生成装置から受信した書込対象のデータを所定のデータ長に分割して分割データを生成し、分割データと当該分割データに対応するキーとのセットを生成するストレージライタに接続されたキャッシュ装置であって、
前記ストレージライタから分割データと当該分割データに対応するキーとのセットを受信するデータ受信部と、
前記受信した分割データと当該分割データに対応するキーとのセットを当該キャッシュ装置の記憶部に格納すると共に、ストレージファームに格納するデータ書込部と、
を有する。
本発明の一形態に係るデータ書込方法は、
ファイルシステム生成装置から受信した書込対象のデータを所定のデータ長に分割して分割データを生成し、分割データと当該分割データに対応するキーとのセットを生成するストレージライタに接続されたキャッシュ装置におけるデータ書込方法であって、
前記ストレージライタから分割データと当該分割データに対応するキーとのセットを受信するステップと、
前記受信した分割データと当該分割データに対応するキーとのセットを当該キャッシュ装置の記憶部に格納すると共に、ストレージファームに格納するステップと、
を有する。
ファイルシステム生成装置から受信した書込対象のデータを所定のデータ長に分割して分割データを生成し、分割データと当該分割データに対応するキーとのセットを生成するストレージライタに接続されたキャッシュ装置におけるデータ書込方法であって、
前記ストレージライタから分割データと当該分割データに対応するキーとのセットを受信するステップと、
前記受信した分割データと当該分割データに対応するキーとのセットを当該キャッシュ装置の記憶部に格納すると共に、ストレージファームに格納するステップと、
を有する。
本発明の一形態に係るプログラムは、
ファイルシステム生成装置から受信した書込対象のデータを所定のデータ長に分割して分割データを生成し、分割データと当該分割データに対応するキーとのセットを生成するストレージライタに接続されたキャッシュ装置として、コンピュータを機能させるためのプログラムであって、当該コンピュータを
前記ストレージライタから分割データと当該分割データに対応するキーとのセットを受信する手段、及び
前記受信した分割データと当該分割データに対応するキーとのセットを当該キャッシュ装置の記憶部に格納すると共に、ストレージファームに格納する手段、
として機能させる。
ファイルシステム生成装置から受信した書込対象のデータを所定のデータ長に分割して分割データを生成し、分割データと当該分割データに対応するキーとのセットを生成するストレージライタに接続されたキャッシュ装置として、コンピュータを機能させるためのプログラムであって、当該コンピュータを
前記ストレージライタから分割データと当該分割データに対応するキーとのセットを受信する手段、及び
前記受信した分割データと当該分割データに対応するキーとのセットを当該キャッシュ装置の記憶部に格納すると共に、ストレージファームに格納する手段、
として機能させる。
本発明によれば、WAN環境を通したストレージファームへのデータの書き込み及び読み出しにおけるレスポンスを向上させることが可能になる。
以下、本発明の実施例について詳細に説明する。
<ストレージシステムの構成>
図1に、本発明の実施例に係るストレージシステムの構成図を示す。本発明の実施例に係るストレージシステムは、ストレージファーム10と、ストレージライタ20と、ストレージリーダ30と、監視装置40と、ファイルシステム生成装置50と、キャッシュ装置60とを有する。ファイルシステム生成装置50、ストレージライタ20、ストレージリーダ30及びキャッシュ装置60は、例えば広域ネットワークを介して、ストレージファーム10に接続されている。キャッシュ装置60は、複数のファイルシステム生成装置50により共有されるため、ファイルシステム生成装置50から見て広域ネットワークの手前に配置される。なお、各装置の配置は、図1に示す配置に限定されない。また、ストレージファーム10は、ネットワークを介して利用可能な複数の記憶装置が相互に連結された記憶システムであり、複数のストレージサーバ11から構成されている。図示しないが、キャッシュ装置60も、複数のストレージサーバから構成されたストレージファームとして構成されてもよい。なお、ストレージライタ20、ストレージリーダ30、監視装置40、ファイルシステム生成装置50及びキャッシュ装置60の数は、図1に示す数に限定されない。また、ストレージサーバ11の数も、図1に示す数に限定されない。
図1に、本発明の実施例に係るストレージシステムの構成図を示す。本発明の実施例に係るストレージシステムは、ストレージファーム10と、ストレージライタ20と、ストレージリーダ30と、監視装置40と、ファイルシステム生成装置50と、キャッシュ装置60とを有する。ファイルシステム生成装置50、ストレージライタ20、ストレージリーダ30及びキャッシュ装置60は、例えば広域ネットワークを介して、ストレージファーム10に接続されている。キャッシュ装置60は、複数のファイルシステム生成装置50により共有されるため、ファイルシステム生成装置50から見て広域ネットワークの手前に配置される。なお、各装置の配置は、図1に示す配置に限定されない。また、ストレージファーム10は、ネットワークを介して利用可能な複数の記憶装置が相互に連結された記憶システムであり、複数のストレージサーバ11から構成されている。図示しないが、キャッシュ装置60も、複数のストレージサーバから構成されたストレージファームとして構成されてもよい。なお、ストレージライタ20、ストレージリーダ30、監視装置40、ファイルシステム生成装置50及びキャッシュ装置60の数は、図1に示す数に限定されない。また、ストレージサーバ11の数も、図1に示す数に限定されない。
本発明の実施例では、ファイルシステム生成装置50からストレージファーム10に書き込もうとするデータを、インデックスと書込対象のデータのビット列とに分ける。書込対象のデータのビット列は、所定のデータ長の分割データに分割される。分割データのビット列に対してハッシュ値が計算され、計算されたハッシュ値をkeyとし、分割データのビット列をvalueとするkey-Value形式にして、分割データがキャッシュ装置60及びストレージファーム10に書き込まれる。
このように、ストレージライタ20とストレージファーム10との間にハッシュ値keyでアクセス可能なkey-Value形式の実データのキャッシュ装置60を配置することで、読み出し時の性能向上が図られる。
また、本発明の実施例では、ユーザに対するレスポンスを向上させるために、信頼性とパフォーマンスとのトレードオフについてユーザ又はアプリケーションによる切り替えを可能とする。ここで、信頼性とパフォーマンスとのトレードオフによる切り替えとは、レスポンスに大きく影響する「情報処理システムが重視する観点」を選択可能とすることである。例えば、「情報処理システムが重視する観点」として、ストレージファームがレプリケーション機能を有する場合、全ての書き込みが完了したときに書き込み完了とする一貫性重視の観点と、所定数の書き込みが完了したときに書き込み完了とするパフォーマンス重視の観点とが存在する。この観点の設定はユーザ又はアプリケーションが実施する。例えば、ユーザが直接ストレージファームを利用する場合はユーザによる設定を可能とし、アプリケーションを通して利用する場合は、アプリケーションによる設定を可能とする。ただし、アプリケーションによる切替設定を可能とするためには、予めアプリケーションによる観点の切替設定を可能とする機能をアプリケーション内に備えておく必要がある。
このような観点がユーザ又はアプリケーションから切り替えられた場合に変更されるのは、書込み開始のタイミングではなく、ユーザ又はアプリケーションに対して発行する書込み完了のタイミングである。例えば、レスポンスの速さを優先するアプリケーションがパフォーマンス重視の観点を選択した場合、データ損失が発生した場合の挙動に問題が生じる可能性はあることを前提に、所定数(例えば、1つ)のレプリカに書き込まれた時点で書き込み完了を通知するような対処を可能とする。また、信頼性を優先するアプリケーションが一貫性重視の観点を選択した場合、全てのレプリカに書き込まれた時点で書き込み完了を通知するような対処を可能とする。以下では、「情報処理システムが重視する観点」は、データの書き込み要件を示すフラグと称される。
以下に、ストレージシステムの各構成要素について説明する。
ストレージファーム10の各ストレージサーバ11は、(key,value)のセットを保存する記憶装置である。ストレージサーバ11は、外部から(key,value)のセットが与えられると、そのセットを保存する。また、ストレージサーバ11は、外部からkeyが与えられると、そのkeyに対応するvalueを返す。
なお、keyを計算するためのハッシュ関数Hash()は、暗号学的に安全な(衝突困難性を有する)ハッシュ関数である。例えば、SHA256のようなハッシュ関数が用いられてもよい。ハッシュ関数により計算された値はハッシュ値と称される。
監視装置40は、ストレージファーム10内の各ストレージサーバ11を監視する装置である。監視装置40は、ストレージサーバ11に書き込まれているデータのレプリケーションの数を監視する。監視部40は、レプリケーション数が予め決められた数に満たない場合、ストレージサーバ11に対してレプリカの書き込みを指示する。ただし、データの書き込み要件を示すフラグがパフォーマンス重視に設定されている場合、監視装置40は、予め決められたレプリケーション数のうち所定数(例えば、1つ)の書き込みが完了した時点で、書き込みが完了したものとする。なお、所定数(例えば、1つ)の書き込みが完了した時点で書き込みが完了したものとするが、その後も予め決められたレプリケーション数になるまでレプリカの書き込みが行われる。一方、データの書き込み要件を示すフラグが一貫性重視に設定されている場合、監視装置40は、予め決められたレプリケーション数の全ての書き込みが完了した時点で、書き込みが完了したものとする。
キャッシュ装置60は、ストレージファーム10の各ストレージサーバ11と同様に、(key,value)のセットを保存する記憶装置である。キャッシュ装置60は、外部から(key,value)のセットが与えられると、そのセットをキャッシュ装置60内の記憶部に一時的に保存すると共に、ストレージファーム10に保存する。キャッシュ装置60の記憶容量はストレージファーム10の記憶容量に比べて小さいため、キャッシュ装置60に保存されたデータは、アクセス頻度、アクセス時間等によって削除される。なお、(key,value)のセットにデータの書き込み要件を示すフラグが付与されている場合、フラグは除去され、(key,value)のセットのみが保存される。データの書き込み要件を示すフラグは、ストレージファーム10の監視装置40に渡される。
また、キャッシュ装置60は、外部からkeyが与えられると、キャッシュ装置60の記憶部からそのkeyに対応するvalueを返す。キャッシュ装置60の記憶部にそのkeyに対応するvalueが存在しない場合、キャッシュ装置60は、ストレージファーム10からそのkeyに対応するvalueを取得して返す。
ストレージライタ20は、ファイルシステム生成装置50からの書き込み指示を受けて、キャッシュ装置60に(key,value)のセットを書き込む装置である。ストレージライタ20は、ファイルシステム生成装置50から受信した書込対象のデータのビット列を所定のデータ長に分割して、分割データであるvalueを生成する。更に、ストレージライタ20は、分割データに対応するキーとして、keyi=Hash(valuei)を計算し、キャッシュ装置60に(keyi,valuei)のセットを書き込む。また、ストレージライタ20は、(keyi,valuei)のセットを書き込む前に、書込先のキャッシュ装置60にkeyiが書き込まれているか否かを確認し、keyiが書き込まれている場合には、(keyi,valuei)のセットの書き込みをスキップしてもよい。ストレージライタ20は、keyiのリストを生成し、ファイルシステム生成装置50に返す。
ストレージリーダ30は、ファイルシステム生成装置50から読み出し指示を受けて、キャッシュ装置60から指示されたkeyのリストに含まれるそれぞれのkeyに対応する分割データvalueをすべて読み出し、ファイルシステム生成装置50に返す。なお、キャッシュ装置60に分割データvalueが存在しない場合、キャッシュ装置60は、ストレージファーム10から分割データvalueを読み出し、ストレージリーダ30を介してファイルシステム生成装置50に返す。この場合、キャッシュ装置60は、分割データvalueがキャッシュ装置60内に存在しないkeyのみに対して、ストレージファーム10から分割データvalueを読み出せばよい。
ファイルシステム生成装置50は、通常のファイルシステムが備える機能に加えて、自己のファイルシステム内で一意のインデックスとkeyのリストとを対応付けて管理する。
<データ書き込み動作>
次に、データ書き込み動作について図2を参照して説明する。
次に、データ書き込み動作について図2を参照して説明する。
ステップS11において、ファイルシステム生成装置50は、アプリケーションからデータの書き込み指示を受ける。受け取ったデータは、インデックスと書込対象のデータのビット列とに分けられる。インデックスは、ファイルシステム生成装置50におけるファイルの格納場所を示すファイルパスでもよい。また、ユーザ又はアプリケーションから、データの書き込み要件を示すフラグが付与される。
ステップS12において、ファイルシステム生成装置50は、書込対象のデータのビット列を、データの書き込み要件を示すフラグと共にストレージライタ20に送信する。
ステップS13において、ストレージライタ20は、書込対象のデータを所定のデータ長に分割する。分割されたデータをvaluei(i=1,...N)とする。ここで、分割されたデータvaluei毎にキャッシュ装置60及びストレージファーム10にデータが保存されるため、分割されたデータvaluei毎にデータの書き込み要件を示すフラグが付与される。
ステップS14において、ストレージライタ20は、keyi=Hash(valuei)を計算する。
ステップS15において、ストレージライタ20は、キャッシュ装置60に(keyi,valuei)のセットを渡す。このとき、ストレージライタ20は、keyiのリストを生成し、ファイルシステム生成装置50に返す。ファイルシステム生成装置50は、インデックスとkeyiのリストとを対応付けて保存する。
ステップS16及びS17において、キャッシュ装置60は、キャッシュ装置60内の記憶部に(keyi,valuei)のセットを書き込むと共に、ストレージファーム10に(keyi,valuei)のセットを書き込む。更に、ストレージファーム10の監視装置40にデータの書き込み要件を示すフラグを渡す。ストレージファーム10の監視装置40は、データの書き込み要件が満たされた場合、書き込みが完了したものとする。
上記のように、データの書き込み要件を示すフラグには、一貫性重視と、パフォーマンス重視とが存在する。例えば、ユーザがローカルファイルシステムのバックエンドとしてこのストレージファームを利用する場合には、とにかく確実にデータを読み書きできる信頼性や一貫性が重視されると考えられる。この場合、ストレージファームに対して全てのデータが書かれた時点で書き込み完了とする制御を行う。このように、一貫性重視では、予め決められたレプリケーション数(N個)の全てのレプリカについて書き込みが完了した時点で書込み完了とする。一方、オンラインストレージ等の用途で用いる場合は最終的に正しいデータが読み書きできればよく、とにかくユーザに対するレスポンスを高めることが重視される傾向がある。このような場合の処理としては、書込み処理開始のタイミングは信頼性を重視するタイミングと変わらないが、アプリケーションに対して確認応答を返すタイミングを速くする。例えば、全てのレプリカへの書込み完了を待たず、全レプリカ中の一定数に対する書き込みが完了した時点で、書き込み完了をアプリケーションに通知する。パフォーマンス重視では、予め決められたレプリケーション数(N個)のうち所定数(n個)について書き込みが完了した段階で書込み完了とする。ただし、所定数(n個)についてはユーザ指定できるものとし、N≧nである。このように、アプリケーション毎に求めるストレージファームへの書き込み要件が異なる場合には、それぞれの要件に合わせてストレージファームに書き込むことでアプリケーション毎の最適化が可能となる。
<データ読み出し動作>
次に、データ読み出し動作について図3を参照して説明する。
次に、データ読み出し動作について図3を参照して説明する。
ステップS21において、ファイルシステム生成装置50は、アプリケーションからデータの読み出し指示を受ける。データはインデックスで指定される。
ステップS22において、ファイルシステム生成装置50は、アプリケーションが指定したインデックスに対応するkeyiのリストをストレージリーダ30に送信する。
ステップS23において、ストレージリーダ30は、keyiのリストに対応するvalueiをキャッシュ装置60から読み出す。
ストレージリーダ30がvalueiをキャッシュ装置60から読み出すことができない場合、ステップS24において、キャッシュ装置60は、keyiのリストに対応するvalueiをストレージファーム10から読み出し、ストレージリーダ30に戻す。ストレージファーム10から読み出したデータは、キャッシュ装置60の記憶部に格納してもよい。
このようにして、ステップS25において、ストレージリーダ30は、keyiのリストに対応するvalueiを取得する。
ステップS26において、ストレージリーダ30は、valueiを結合し、元のデータを得る。
ステップS27において、ストレージリーダ30は、valueiを結合して得た元のデータをファイルシステム生成装置50に送信する。
ステップS28において、ファイルシステム生成装置50は、アプリケーションにデータを渡す。
<キャッシュ装置の構成及び動作>
次に、キャッシュ装置60の構成及び動作について更に詳細に説明する。キャッシュ装置60は、データ受信部601と、データ書込部603と、キャッシュ用記憶部605と、データ読出部607と、データ送信部609と、書込完了通知部611とを有する。
次に、キャッシュ装置60の構成及び動作について更に詳細に説明する。キャッシュ装置60は、データ受信部601と、データ書込部603と、キャッシュ用記憶部605と、データ読出部607と、データ送信部609と、書込完了通知部611とを有する。
データ受信部601は、ストレージライタ20から書込対象のデータを分割した分割データvalueと、分割データに対応するkeyとのセットを受信する。更に、データ受信部601は、(key,value)のセットに付与されたデータの書き込み要件を示すフラグを受信する。
データ書込部603は、受信した(key,value)のセットをキャッシュ用記憶部605に格納すると共に、ストレージファーム10に格納する。
キャッシュ用記憶部605は、(key,value)のセットを保存する記憶装置である。
書込完了通知部611は、ストレージファーム10においてデータの書き込み要件が満たされた場合、書込完了通知をファイルシステム生成装置50に通知する。
データ読出部607は、ストレージリーダ30からkeyのリストを受信した場合、受信したkeyのリストに対応するvalueをキャッシュ用記憶部605から読み出す。データ読出部605は、受信したkeyのリストに対応するvalueがキャッシュ用記憶部605に存在しない場合、ストレージファーム10からkeyのリストに対応するvalueを読み出す。このときに、データ読出部607は、ストレージファーム10から読み出したkeyのリストに対応するvalueをキャッシュ用記憶部605に格納してもよい。
データ送信部609は、キャッシュ用記憶部605又はストレージファーム10から読み出したvalueをストレージリーダ30に送信する。
<利用例>
本発明の実施例は、図5に示すように、分散ファイルシステムとして利用されているRiak及びRedisを用いて構成されてもよい。
本発明の実施例は、図5に示すように、分散ファイルシステムとして利用されているRiak及びRedisを用いて構成されてもよい。
例えば、ストレージファーム部分に分散KVS(key value store)のRiakを用い、キャッシュ装置部分に分散KVSのRedisを用いる構成が考えられる。またキャッシュ装置部分にはRiakライブラリであるRiackを配置する。ローカルファイルシステムとしての利用の場合はユーザから見るとあたかもローカルファイルシステムを操作しているように見えるようにするため、ユーザランドでファイルシステムが作成できるFuseを利用してストレージライタおよびストレージリーダの機能を隠ぺいしてもよい。この例ではFuseは送出するデータに対して一貫性重視のフラグを付与してストレージライタに送信する。ファイルシステムのようなブロックストレージとして利用する場合、データが損失するとファイルシステム自体が破壊される可能性がある。そのため、ローカルファイルシステムとしての利用の場合には、常に一貫性重視のフラグが使用される。
一方、オブジェクトストレージサービスとしての利用の場合はユーザに対するレスポンス向上が求められる。このため、1つのレプリカに書き込まれた時点で書き込みを完了とする。このように、オブジェクトファイルシステムとしての利用の場合には、パフォーマンス重視のフラグに切り替えられる。
上記のように、ストレージライタでは書き込みたいデータを固定長のブロックに切り分けハッシュ値を計算する。更に、valueの先頭にフラグを付与して、key-Value形式のデータとする。キャッシュ装置部分のRedisでは、ストレージライタからkey-Value形式のデータを受け取ると、フラグを読み取り、フラグと(key,value)とをRiackに伝える。分散KVSのRiakではRiackからのフラグを考慮してkey-Value形式のデータを保存及びレプリケーションする。RiackがRiakに受け渡すフラグがパフォーマンス重視の場合、Riakは全レプリカ中1つを書き込んだ時点で、Riackに対して書込完了通知(ack)を返す。一貫性重視の場合は信頼性重視で全てのレプリカを書いた時点で書込完了通知(ack)を返す。
<実施例の効果>
本発明の実施例によれば、WAN環境を通したストレージファームへのデータの書き込み及び読み出しにおけるレスポンスを向上させることが可能になる。
本発明の実施例によれば、WAN環境を通したストレージファームへのデータの書き込み及び読み出しにおけるレスポンスを向上させることが可能になる。
より具体的には、ストレージライタとストレージファームとの間にkey-Value形式の実データのキャッシュを配置することで、読み出し時の性能向上が図られる。また、key-Value形式のデータを利用することにより、異なるユーザ又は異なるアプリケーション毎のデータ間における重複データを重複排除可能となり、ストレージの効率的な利用を図ることが可能となる。
更に、それぞれのユーザやアプリケーションが指定する性能要件に応じてストレージファームへのデータの書き込み要件を変更することで、要件に応じた性能向上に応えることが可能となる。
例えば、本発明の実施例に係るストレージシステムは、個人のパーソナルコンピュータ(PC)のローカルファイルシステムとして利用したり、オブジェクトストレージとして用いることができる。前者のローカルファイルシステムとして利用される場合は、信頼性が求められるため、一貫性重視の観点が設定されてもよい。後者のオブジェクトストレージとして利用される場合は、パフォーマンスが求められるため、パフォーマンス重視の観点が設定されてもよい。このように求めるストレージ要件が異なる場合でも同一のストレージファームに共存し、それぞれのストレージ書き込み要件に対応することができる。
更に、図6を参照して、本発明の実施例に係るストレージシステムによる効果を説明する。図6は、複数のファイルシステム生成装置50により共有されるメタデータ記憶装置70が存在する点を除き、図1の構成と同じである。この例では、各拠点にキャッシュ装置60が配置されている。ストレージライタ20及びストレージリーダ30は省略されているが、ファイルシステム生成装置50とキャッシュ装置60との間に存在する。
更に、図6を参照して、本発明の実施例に係るストレージシステムによる効果を説明する。図6は、複数のファイルシステム生成装置50により共有されるメタデータ記憶装置70が存在する点を除き、図1の構成と同じである。この例では、各拠点にキャッシュ装置60が配置されている。ストレージライタ20及びストレージリーダ30は省略されているが、ファイルシステム生成装置50とキャッシュ装置60との間に存在する。
上記のように、ファイルシステム生成装置50は、ストレージファーム10にデータを書き込んだ場合、ストレージライタ20からkeyiのリストを取得する。メタデータ記憶装置70は、このkeyiのリストを格納し、複数のファイルシステム生成装置50により共有可能にする装置である。
例えば、東京のユーザAから大阪のユーザCにデータX(例えば、1TB)が送付され、その後、東京のユーザBから大阪のユーザDに同じデータXが送付される場合について検討する。
ユーザAからユーザCにデータXを送付する場合(S1及びS2)、ユーザAは、データXをキャッシュ装置60及びストレージファーム10に格納し、データXに対応するkeyiのリストをメタデータ記憶装置70に格納する(S3)。ユーザBがデータXをユーザDに送付する前に、ユーザBは、データXに対応するkeyiのリストをメタデータ記憶装置70から取得し(S4)、ユーザDに送信することで、ユーザDは、大阪のキャッシュ装置60にデータXが存在する可能性があることを認識できる。この場合、ユーザBは、データXの実データをユーザDに送信する必要はなく、keyiのリストの送受信だけでユーザDは1TBのデータXを取得可能となる。その結果、送受信側でのスループットが大幅に向上する。
このように、本発明の実施例では、同一データを共通化して同一のハッシュ値で管理するため、他人のデータの使い回しが可能となる。
説明の便宜上、本発明の実施例に係るキャッシュ装置及びストレージシステムは機能的なブロック図を用いて説明しているが、本発明の実施例に係るキャッシュ装置及びストレージシステムは、ハードウェア、ソフトウェア又はそれらの組み合わせで実現されてもよい。また、各機能部が必要に応じて組み合わせて使用されてもよい。また、本発明の実施例に係る方法は処理の流れを示すフローチャートを用いて説明しているが、本発明の実施例に係る方法は、実施例に示す順序と異なる順序で実施されてもよい。
以上、WAN環境を通したストレージファームへのデータの書き込み及び読み出しにおけるレスポンスを向上させるための手法について説明したが、本発明は、上記の実施例に限定されることなく、特許請求の範囲内において、種々の変更・応用が可能である。
10 ストレージファーム
20 ストレージライタ
30 ストレージリーダ
40 監視装置
50 ファイルシステム生成装置
60 キャッシュ装置
70 メタデータ記憶装置
20 ストレージライタ
30 ストレージリーダ
40 監視装置
50 ファイルシステム生成装置
60 キャッシュ装置
70 メタデータ記憶装置
Claims (7)
- ファイルシステム生成装置から受信した書込対象のデータを所定のデータ長に分割して分割データを生成し、分割データと当該分割データに対応するキーとのセットを生成するストレージライタに接続されたキャッシュ装置であって、
前記ストレージライタから分割データと当該分割データに対応するキーとのセットを受信するデータ受信部と、
前記受信した分割データと当該分割データに対応するキーとのセットを当該キャッシュ装置の記憶部に格納すると共に、ストレージファームに格納するデータ書込部と、
を有するキャッシュ装置。 - 前記データ受信部は、前記ストレージファームへのデータの書き込み要件を示すフラグを受信し、
前記ストレージファームにおいて前記データの書き込み要件が満たされた場合、書込完了通知を前記ファイルシステム生成装置に通知する書込完了通知部を更に有する、請求項1に記載のキャッシュ装置。 - 前記ストレージファームへのデータの書き込み要件を示すフラグは、
予め決められたレプリケーション数の全ての書き込みが完了したことを示すフラグと、
予め決められたレプリケーション数のうち所定数の書き込みが完了したことを示すフラグと、
のうちいずれかを含む、請求項2に記載のキャッシュ装置。 - ファイルシステム生成装置から読出対象のデータに対応するキーのリストを取得するストレージリーダに更に接続され、
前記ストレージリーダからキーのリストを受信した場合、当該受信したキーのリストに含まれるキーに対応する分割データを前記記憶部から読み出すデータ読出部と、
読み出した分割データを前記ストレージリーダに送信するデータ送信部と、
を更に有する、請求項1乃至3のうちいずれか1項に記載のキャッシュ装置。 - 前記データ読出部は、前記受信したキーのリストに含まれるキーのうち少なくとも1つのキーに対応する分割データが前記記憶部に存在しない場合、前記ストレージファームから前記少なくとも1つのキーに対応する分割データを読み出す、請求項4に記載のキャッシュ装置。
- ファイルシステム生成装置から受信した書込対象のデータを所定のデータ長に分割して分割データを生成し、分割データと当該分割データに対応するキーとのセットを生成するストレージライタに接続されたキャッシュ装置におけるデータ書込方法であって、
前記ストレージライタから分割データと当該分割データに対応するキーとのセットを受信するステップと、
前記受信した分割データと当該分割データに対応するキーとのセットを当該キャッシュ装置の記憶部に格納すると共に、ストレージファームに格納するステップと、
を有するデータ書込方法。 - ファイルシステム生成装置から受信した書込対象のデータを所定のデータ長に分割して分割データを生成し、分割データと当該分割データに対応するキーとのセットを生成するストレージライタに接続されたキャッシュ装置として、コンピュータを機能させるためのプログラムであって、当該コンピュータを
前記ストレージライタから分割データと当該分割データに対応するキーとのセットを受信する手段、及び
前記受信した分割データと当該分割データに対応するキーとのセットを当該キャッシュ装置の記憶部に格納すると共に、ストレージファームに格納する手段、
として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013050616A JP2014178734A (ja) | 2013-03-13 | 2013-03-13 | キャッシュ装置、データ書込方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013050616A JP2014178734A (ja) | 2013-03-13 | 2013-03-13 | キャッシュ装置、データ書込方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014178734A true JP2014178734A (ja) | 2014-09-25 |
Family
ID=51698655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013050616A Pending JP2014178734A (ja) | 2013-03-13 | 2013-03-13 | キャッシュ装置、データ書込方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014178734A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016091222A (ja) * | 2014-10-31 | 2016-05-23 | 株式会社東芝 | データ処理装置、データ処理方法およびプログラム |
JP2019028954A (ja) * | 2017-08-04 | 2019-02-21 | 富士通株式会社 | ストレージ制御装置、プログラム、及び重複排除方法 |
JP2020506462A (ja) * | 2017-01-06 | 2020-02-27 | オラクル・インターナショナル・コーポレイション | ファイルシステムデータ階層のクラウド移行 |
CN110941595A (zh) * | 2019-11-19 | 2020-03-31 | 北京奇艺世纪科技有限公司 | 一种文件系统访问方法及装置 |
-
2013
- 2013-03-13 JP JP2013050616A patent/JP2014178734A/ja active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016091222A (ja) * | 2014-10-31 | 2016-05-23 | 株式会社東芝 | データ処理装置、データ処理方法およびプログラム |
US11334528B2 (en) | 2017-01-06 | 2022-05-17 | Oracle International Corporation | ZFS block-level deduplication and duplication at cloud scale |
JP2020506462A (ja) * | 2017-01-06 | 2020-02-27 | オラクル・インターナショナル・コーポレイション | ファイルシステムデータ階層のクラウド移行 |
JP2020506461A (ja) * | 2017-01-06 | 2020-02-27 | オラクル・インターナショナル・コーポレイション | クラウドデータストアにわたるファイルシステム階層ミラーリング |
US11308033B2 (en) | 2017-01-06 | 2022-04-19 | Oracle International Corporation | File system hierarchy mirroring across cloud data stores |
JP7098628B2 (ja) | 2017-01-06 | 2022-07-11 | オラクル・インターナショナル・コーポレイション | クラウドデータストアにわたるファイルシステム階層ミラーリング |
JP7113016B2 (ja) | 2017-01-06 | 2022-08-04 | オラクル・インターナショナル・コーポレイション | ファイルシステムデータ階層のクラウド移行 |
US11422974B2 (en) | 2017-01-06 | 2022-08-23 | Oracle International Corporation | Hybrid cloud mirroring to facilitate performance, migration, and availability |
US11436195B2 (en) | 2017-01-06 | 2022-09-06 | Oracle International Corporation | Guaranteed file system hierarchy data integrity in cloud object stores |
US11442898B2 (en) | 2017-01-06 | 2022-09-13 | Oracle International Corporation | File system hierarchies and functionality with cloud object storage |
US11714784B2 (en) | 2017-01-06 | 2023-08-01 | Oracle International Corporation | Low-latency direct cloud access with file system hierarchies and semantics |
US11755535B2 (en) | 2017-01-06 | 2023-09-12 | Oracle International Corporation | Consistent file system semantics with cloud object storage |
JP2019028954A (ja) * | 2017-08-04 | 2019-02-21 | 富士通株式会社 | ストレージ制御装置、プログラム、及び重複排除方法 |
CN110941595A (zh) * | 2019-11-19 | 2020-03-31 | 北京奇艺世纪科技有限公司 | 一种文件系统访问方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10789215B1 (en) | Log-structured storage systems | |
US11423015B2 (en) | Log-structured storage systems | |
US11093455B2 (en) | Log-structured storage systems | |
US11074017B2 (en) | Log-structured storage systems | |
US11294881B2 (en) | Log-structured storage systems | |
US11422728B2 (en) | Log-structured storage systems | |
EP3695303B1 (en) | Log-structured storage systems | |
US10885022B1 (en) | Log-structured storage systems | |
US10903981B1 (en) | Log-structured storage systems | |
WO2016155635A1 (zh) | 一种数据处理方法和设备 | |
US10942852B1 (en) | Log-structured storage systems | |
CN111226209B (zh) | 在基于区块链的系统中执行映射迭代 | |
CN111226206B (zh) | 拍摄区块链数据的快照 | |
JP2014178734A (ja) | キャッシュ装置、データ書込方法及びプログラム | |
CN103488768A (zh) | 一种基于云计算的文件管理方法及系统 | |
JP4667419B2 (ja) | 分散型マルチメディアサーバシステムおよびそのマルチメディア情報蓄積・配信方法 | |
WO2017039538A1 (en) | Systems and methods for unified storage services | |
Mao et al. | Research of data reliability technology based on erasure code redundancy technology in cloud storage | |
JP5183684B2 (ja) | 分散型マルチメディアサーバシステムおよびそのマルチメディア情報蓄積・配信方法 |