JP2014191651A - ストレージシステム、ストレージ装置、ストレージシステムの制御方法、およびストレージ装置の制御プログラム - Google Patents

ストレージシステム、ストレージ装置、ストレージシステムの制御方法、およびストレージ装置の制御プログラム Download PDF

Info

Publication number
JP2014191651A
JP2014191651A JP2013067542A JP2013067542A JP2014191651A JP 2014191651 A JP2014191651 A JP 2014191651A JP 2013067542 A JP2013067542 A JP 2013067542A JP 2013067542 A JP2013067542 A JP 2013067542A JP 2014191651 A JP2014191651 A JP 2014191651A
Authority
JP
Japan
Prior art keywords
data
bloom filter
unit
storage device
storage
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
Application number
JP2013067542A
Other languages
English (en)
Inventor
Masatoshi Tamura
雅寿 田村
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013067542A priority Critical patent/JP2014191651A/ja
Priority to US14/174,890 priority patent/US20140297947A1/en
Publication of JP2014191651A publication Critical patent/JP2014191651A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer Security & Cryptography (AREA)

Abstract

【課題】負荷分散された複数のストレージ装置に対して効率的にアクセスすること。
【解決手段】ストレージ装置102は、ストレージシステム100が記憶する複数のデータの各々のデータのアクセス時刻に基づいて、複数のデータから選択された第1のデータ群となるホットデータを記憶する。また、ストレージ装置103は、複数のデータのうちのホットデータとは異なる第2のデータ群となるコールドデータを記憶する。制御装置101は、ホットデータの識別情報の特徴を抽出した特徴量が登録されたBF113を記憶する。制御装置101は、アクセス対象となる対象データの識別情報の特徴を抽出したハッシュ値がBF113に登録されているかを判断する。そして、制御装置101は、判断結果に基づいて、ストレージ装置102またはストレージ装置103に対象データのアクセス要求を送信する。
【選択図】図1

Description

本発明は、ストレージシステム、ストレージ装置、ストレージシステムの制御方法、およびストレージ装置の制御プログラムに関する。
従来、ブルームフィルタ(Bloom Filter)と呼ばれるビット列のデータ構造がある。ブルームフィルタは、あるデータが既存のデータの集合に含まれるか否かを判断する際に用いられる。関連する先行技術として、たとえば、複数のブルームフィルタの同一位置のビットを集めて、同一位置ごとに集められたビット列を、ビット位置順に配列させるものがある。また、複数のストレージ装置に記憶された各ファイルへのアクセス履歴と、各ストレージの空き容量とに応じてストレージ装置間でファイルの移動やコピーを行う技術がある。さらに、複数のストレージ装置でそれぞれ形成される複数のプールの負荷状況を定期的に監視し、アクセス頻度の高いデータが集中するプールがあれば、該当のプールから他のプールにアクセス頻度の高いデータを再配置して負荷分散する技術がある。(たとえば、下記特許文献1〜3を参照。)
特開2011−233014号公報 特開2006−003962号公報 特開2009−252106号公報
しかしながら、従来技術によれば、複数のストレージ装置を含むストレージシステムに対するアクセス要求先となる対象データが、複数のストレージ装置のいずれの装置に記憶されているか特定することが難しい。たとえば、データの格納先のストレージ装置をデータごとに管理しようとすると、管理する情報が膨大となる。
1つの側面では、本発明は、複数のストレージ装置に格納されたデータに対して効率的にアクセスするストレージシステム、ストレージ装置、ストレージシステムの制御方法、およびストレージ装置の制御プログラムを提供することを目的とする。
本発明の一側面によれば、第1のストレージ装置と第2のストレージ装置と制御装置とにおいて、第1のストレージ装置が複数のデータの各々のデータのアクセス時刻に基づいて複数のデータから選択された第1のデータ群を記憶しており、第2のストレージ装置が複数のデータのうちの第1のデータ群とは異なる第2のデータ群を記憶しており、第1のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタを記憶する記憶部と、複数のデータのうちのアクセス対象となる対象データの識別情報の特徴を抽出した特徴量がブルームフィルタに登録されているかを判断し、判断した判断結果に基づいて、第1のストレージ装置または第2のストレージ装置に対象データのアクセス要求を送信するストレージシステム、ストレージシステムの制御方法、およびストレージ装置の制御プログラムが提案される。
本発明の他の側面によれば、制御装置と接続されるストレージ装置において、記憶領域が記憶する、複数のデータの各々のデータのアクセス時刻に基づいて複数のデータから選択された第1のデータ群に新たなデータが追加された場合、第1のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録された第1のブルームフィルタに、新たなデータの識別情報の特徴を抽出した新たな特徴量を登録し、新たな特徴量を登録した登録後の第1のブルームフィルタを、制御装置に送信するストレージ装置が提案される。
本発明の一態様によれば、複数のストレージ装置に格納されたデータに対して効率的にアクセスするという効果を奏する。
図1は、本実施の形態にかかるストレージシステムの動作例を示す説明図である。 図2は、ストレージシステムの接続例を示す説明図である。 図3は、サーバ装置のハードウェア構成例を示すブロック図である。 図4は、クライアント装置のハードウェア構成の一例を示すブロック図である。 図5は、ストレージシステムの機能例を示すブロック図である。 図6は、データ配置テーブルの記憶内容の一例を示す説明図である。 図7は、データの配置例およびデータへのアクセス例を示す説明図である。 図8は、BFの登録期間および保持期間の一例を示す説明図である。 図9は、BFを用いた領域判断処理のシーケンスの一例を示す説明図である。 図10は、BFを用いた領域判断処理のシーケンスの他の例を示す説明図である。 図11は、BFの共有およびBFのマージのシーケンスの一例を示す説明図である。 図12は、クライアント装置におけるアクセス要求発生時の処理手順の一例を示すフローチャートである。 図13は、ホット領域担当サーバ装置におけるアクセス時の処理手順の一例を示すフローチャートである。 図14は、コールド領域担当サーバ装置におけるアクセス時の処理手順の一例を示すフローチャートである。 図15は、サーバ装置におけるホット領域移行判断処理手順の一例を示すフローチャートである。 図16は、サーバ装置におけるコールド領域移行判断処理手順の一例を示すフローチャートである。 図17は、BF登録処理手順の一例を示すフローチャートである。 図18は、BF削除処理手順の一例を示すフローチャートである。
以下に図面を参照して、開示のストレージシステム、ストレージ装置、ストレージシステムの制御方法、およびストレージ装置の制御プログラムの実施の形態を詳細に説明する。
図1は、本実施の形態にかかるストレージシステムの動作例を示す説明図である。本実施の形態にかかるストレージシステム100は、複数のストレージ装置を有するシステムである。具体的に、ストレージシステム100は、制御装置101と、第1のストレージ装置となるストレージ装置102と、第2のストレージ装置となるストレージ装置103と、を有する。ストレージシステム100は、ストレージ装置102、ストレージ装置103の記憶領域をストレージシステム100のユーザに提供するシステムである。ストレージシステム100は、制御装置101からアクセスされる。制御装置101は、ストレージシステム100のユーザが利用するパーソナル・コンピュータであってもよいし、Webサーバのようなサーバでもよい。たとえば、ストレージシステム100は、ユーザが利用するファイルを記憶する。また、たとえば、ストレージシステム100は、Webサーバがユーザに提供するWebコンテンツを記憶する。
複数のストレージ装置を有するストレージシステムは、ストレージ装置にかかるアクセス負荷が不均一となることがある。ストレージシステム全体の性能を効率的に使うためには、ストレージ装置間のアクセス負荷の偏りが解消されるようにデータの移行を行うことになる。
一般にストレージシステムが記憶するデータには、アクセス頻度が高いデータと、アクセス頻度が低いデータとがある。そして、複数のストレージ装置が記憶するデータ量が大きくなるにつれ、アクセス頻度が高いデータの割合が低下することが多い。
以下、アクセス頻度が高いデータを、「ホットデータ」と呼称する。また、アクセス頻度が低いデータを、「コールドデータ」と呼称する。さらに、ホットデータを記憶する記憶領域を、「ホット領域」と呼称する。また、コールドデータを記憶する記憶領域を、「コールド領域」と呼称する。
ホットデータとコールドデータの判断方法は、データのアクセス時刻に基づいて判断することができる。たとえば、現在時刻から一定期間前までにアクセスがあるデータを、ホットデータとし、現在時刻から一定期間前までにアクセスがないデータを、コールドデータとしてもよい。または、現在時刻から一定期間前までに所定の回数以上アクセスがあるデータを、ホットデータとしてもよい。
アクセス負荷の偏りを解消するためには、ホット領域を平準化することが求められる。しかしながら、ホット領域は時間とともに移り変わるため、複数のストレージ装置を有するストレージシステムは、ホット領域とコールド領域間でデータを移行することになる。
アクセス負荷の偏りを解消する方法として、たとえば、次の3つの方式がある。1つ目の方式は、ホット領域とコールド領域の分離は行わず、アクセス負荷の均等化のために、データを記憶する全領域のデータ再配置を行う方式である。
2つ目の方式は、ホット領域とコールド領域を分離し、アクセス負荷に応じてホット領域とコールド領域間のデータを移行する方式である。また、2つ目の方式は、アクセス負荷の均等化のために、ホット領域のデータ移行を行う。そして、2つ目の方式は、データ移行を行う際に、どのデータがホット領域またはコールド領域のいずれにあるかをデータごとに管理する。2つ目の方式は、アクセス時には、データごとに管理した情報に従って該当領域にアクセスする。
3つ目の方式は、ホット領域とコールド領域を分離し、アクセス負荷に応じてホット領域とコールド領域間のデータを移行する方式である。また、3つ目の方式は、アクセス負荷の均等化のために、ホット領域のデータ移行を行う。そして、3つ目の方式は、どのデータがどちらの領域にあるかをデータごとに管理しない。3つ目の方式は、アクセス時には、ホット領域またはコールド領域のいずれに存在するかがわからないため、ホット領域とコールド領域両方に対してアクセスする。
1つ目の方式は、全領域のデータを移動させるため、移行時に非効率なデータ移動が発生してしまう。また、2つ目の方式は、アクセス要求のたびに、データがホット領域またはコールド領域のいずれにあるかを管理する情報から検索することになるが、データ数が増大すると検索コストおよび情報保持コストが増大してしまう。3つ目の方式は、ホット領域とコールド領域の両方にアクセスを行うため、アクセス時に余計なシステム負荷がかかってしまう。
このように、再配置時のデータ移行を効率的に行うためには、2つ目の方式や3つ目の方式が採用するように、ホット領域とコールド領域とを分離した方がよい。しかしながら、ホット領域とコールド領域とを分離すると、システム負荷が増大してしまう。
そこで、本実施の形態にかかるストレージシステム100は、ホットデータを記憶するストレージ装置102とコールドデータを記憶するストレージ装置103を有する。そして、本実施の形態にかかるストレージシステム100は、ホットデータ名を登録したブルームフィルタ(Bloom Filter)にアクセス対象データ名がヒットすればストレージ装置102にアクセス要求を送る。これにより、ストレージシステム100は、アクセス要求を送信する回数が抑制されて、効率的に対象データにアクセスすることができる。
図1に示すストレージ装置102は、ストレージシステム100が記憶する複数のデータの各々のデータのアクセス時刻に基づいて、複数のデータから選択された第1のデータ群となるホットデータを記憶する。ストレージ装置102は、ホットデータを記憶するホット領域111を有する。また、図1に示すストレージ装置103は、複数のデータのうちのホットデータとは異なる第2のデータ群となるコールドデータを記憶する。ストレージ装置103は、コールドデータを記憶するコールド領域112を有する。
図1に示す制御装置101は、ホットデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタ113を記憶する。ホットデータの識別情報は、たとえば、ホットデータのデータ名や、ホットデータのアドレスである。識別情報の特徴を抽出した特徴量は、たとえば、識別情報のハッシュ値である。ハッシュ値を算出する関数としては、MD5(Message−Digest 5)、SHA(Secure Hash Algorithm)−1、SHA−256等がある。以下の説明では、特徴量がハッシュ値であるとして説明を行う。また、データの識別情報として、データ名を用いることとする。
ブルームフィルタは、ビットがONの時、陽性または偽陽性を示し、OFFの時は陰性を示す。なお、ビットの値が1をONとし、0をOFFとしてもよく、逆に、ビットの値が0をONとし、1をOFFとしてもよい。本実施の形態では、ビットの値が1をONとし、0をOFFとする。また、ブルームフィルタを、以下、単に「BF」と呼称する。
制御装置101は、ストレージシステム100が記憶するデータへのアクセス要求の発行を検出した場合、アクセス対象となる対象データの識別情報の特徴を抽出したハッシュ値がBF113に登録されているかを判断する。アクセス要求は、制御装置101上で動作するアプリや、制御装置101に接続された他の装置によって、発行される。
制御装置101は、判断結果に基づいて、ストレージ装置102またはストレージ装置103に対象データのアクセス要求を送信する。たとえば、ハッシュ値がBF113に登録されていれば、制御装置101は、ストレージ装置102に対象データのアクセス要求を送信する。一方、ハッシュ値がBF113に登録されていなければ、制御装置101は、ストレージ装置103に対象データのアクセス要求を送信する。次に、ストレージシステム100を、クライアント装置とサーバ装置とに適用した例を、図2に示す。
図2は、ストレージシステムの接続例を示す説明図である。ストレージシステム200は、サーバ装置#A、#B、#C、…、#X、#Y、#Zと、クライアント装置#a、#b、…とを有する。サーバ装置#A、#B、#C、…、#X、#Y、#Zは、図1に示すストレージ装置102、ストレージ装置103に相当する。また、クライアント装置#a、#b、…は、図1に示す制御装置101に相当する。サーバ装置#A、#B、#C、…、#X、#Y、#Zは、アクセス負荷の分散のため、あるデータの範囲に対するホット領域を有し、他のあるデータの範囲に対するコールド領域を有する。サーバ装置#A、#B、#C、…、#X、#Y、#Zが記憶するデータについては、図6、図7にて後述する。
また、ホット領域を有するサーバ装置を、「ホット領域担当サーバ装置」と呼称する。ホット領域担当サーバ装置は、図1に示すストレージ装置102に相当する。同様に、コールド領域を有するサーバ装置を、「コールド領域担当サーバ装置」と呼称する。コールド領域担当サーバ装置は、図1に示すストレージ装置103に相当する。
サーバ装置#A、#B、#C、…、#X、#Y、#Zと、クライアント装置#a、#b、…、は、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などのネットワーク201によってそれぞれ接続される。
クライアント装置#a、#b、…、は、ストレージシステム200を利用するユーザによって操作されるコンピュータである。また、サーバ装置#A、#B、#C、…、#X、#Y、#Zは、各サーバ装置が有するストレージをクライアント装置#a、#b、…、に提供するコンピュータである。たとえば、クライアント装置#a、#b、…、は、Webブラウザ等といったアプリケーションソフトウェアを使用してサーバ装置#A、#B、#C、…、#X、#Y、#Zに接続する。以下、アプリケーションソフトウェアを、「アプリ」と呼称する。
(サーバ装置のハードウェア)
図3は、サーバ装置のハードウェア構成例を示すブロック図である。図3では、サーバ装置#Aのハードウェア構成例を説明する。図2に示したサーバ装置#B〜サーバ装置#Zも、サーバ装置#Aと同様のハードウェアを有する。図3において、サーバ装置#Aは、Central Processing Unit(CPU)301と、Read‐Only Memory(ROM)302と、Random Access Memory(RAM)303と、を含む。また、サーバ装置#Aは、ディスクドライブ304およびディスク305と、通信インターフェース306と、を含む。また、CPU301〜通信インターフェース306はバス307によってそれぞれ接続される。
CPU301は、サーバ装置#Aの全体の制御を司る演算処理装置である。ROM302は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。RAM303は、CPU301のワークエリアとして使用される揮発性メモリである。
ディスクドライブ304は、CPU301の制御に従ってディスク305に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ304には、たとえば、磁気ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する不揮発性メモリである。たとえばディスクドライブ304が磁気ディスクドライブである場合、ディスク305には、磁気ディスクを採用することができる。また、ディスクドライブ304がソリッドステートドライブである場合、ディスク305には、半導体素子メモリを採用することができる。
通信インターフェース306は、ネットワーク201と内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース306は、通信回線を通じてネットワーク201を介して他の装置に接続される。通信インターフェース306には、たとえば、モデムやLANアダプタなどを採用することができる。また、サーバ装置#Aは、光ディスクドライブ、光ディスク、キーボード、マウスを有していてもよい。
(クライアント装置のハードウェア)
図4は、クライアント装置のハードウェア構成の一例を示すブロック図である。図4において、クライアント装置#aは、CPU401と、ROM402と、RAM403と、を含む。また、クライアント装置#aは、ディスクドライブ404と、ディスク405と、通信インターフェース406と、を含む。また、クライアント装置#aは、ディスプレイ407と、キーボード408と、マウス409とを含む。また、CPU401〜マウス409はバス410によってそれぞれ接続される。
CPU401は、クライアント装置#aの全体の制御を司る演算処理装置である。ROM402は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。RAM403は、CPU401のワークエリアとして使用される揮発性メモリである。
ディスクドライブ404は、CPU401の制御に従ってディスク405に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ404には、たとえば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク405は、ディスクドライブ404の制御で書き込まれたデータを記憶する不揮発性メモリである。たとえばディスクドライブ404が磁気ディスクドライブである場合、ディスク405には、磁気ディスクを採用することができる。また、ディスクドライブ404が光ディスクドライブである場合、ディスク405には、光ディスクを採用することができる。また、ディスクドライブ404がソリッドステートドライブである場合、ディスク405には、半導体素子メモリを採用することができる。
通信インターフェース406は、ネットワーク201と内部のインターフェースを司り、外部装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース406は、通信回線を通じてネットワーク201に接続され、ネットワーク201を介して他の装置に接続される。通信インターフェース406には、たとえば、モデムやLANアダプタなどを採用することができる。
ディスプレイ407は、マウスカーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する装置である。ディスプレイ407には、たとえば、CRT(Cathode Ray Tube)、TFT(Thin Film Transistor)液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
キーボード408は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う装置である。また、キーボード408は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス409は、マウスカーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う装置である。マウス409は、ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
(ストレージシステム200の機能)
次に、ストレージシステム200の機能について説明する。図5は、ストレージシステムの機能例を示すブロック図である。ストレージシステム200は、記憶部501と、判断部502と、送信部503と、更新部504とを含む。さらに、ストレージシステム200は、登録部511と、個数判断部512と、作成部513と、BF送信部514と、第1選択部515と、第1移行部516と、削除判断部517と、削除部518と、第2選択部521と、第2移行部522とを含む。
判断部502〜更新部504は、クライアント装置#aが有する機能である。他のクライアント装置となるクライアント装置#b、…も、判断部502〜更新部504を有する。制御部となる判断部502〜更新部504は、記憶装置に記憶されたプログラムをCPU401が実行することにより、判断部502〜更新部504の機能を実現する。記憶装置とは、具体的には、たとえば、図4に示したROM402、RAM403、ディスク405などである。また、クライアント装置#aは、記憶部501にアクセス可能である。記憶部501は、RAM403、ディスク405といった記憶装置に格納される。
登録部511〜削除部518は、サーバ装置のうちのホット領域を有するサーバ装置#Aが有する機能である。ホット領域を有する他のサーバ装置も、登録部511〜削除部518を有する。第2選択部521、第2移行部522は、サーバ装置のうちのコールド領域を有するサーバ装置#Bが有する機能である。コールド領域を有する他のサーバ装置も、第2選択部521、第2移行部522を有する。制御部となる登録部511〜第2移行部522は、記憶装置に記憶されたプログラムをCPU301が実行することにより、登録部511〜第2移行部522の機能を実現する。記憶装置とは、具体的には、たとえば、図3に示したROM302、RAM303、ディスク305などである。
記憶部501は、ホットデータの各々のデータのデータ名のハッシュ値が登録されたBF113を記憶する。判断部502は、複数のデータのうちのアクセス対象となる対象データのデータ名のハッシュ値がBF113に登録されているかを判断する。なお、判断結果は、RAM403、ディスク405などの記憶領域に記憶される。
送信部503は、判断部502が判断した判断結果に基づいて、ホット領域担当サーバ装置またはコールド領域担当サーバ装置に対象データのアクセス要求を送信する。具体的に、送信部503は、判断部502が、BF113に対象データのデータ名のハッシュ値が登録されていると判断した場合、ホット領域担当サーバ装置に対象データのアクセス要求を送信してもよい。一方、送信部503は、判断部502が、BF113に対象データのデータ名のハッシュ値が登録されていないと判断した場合、コールド領域担当サーバ装置に対象データのアクセス要求を送信してもよい。
また、送信部503がホット領域担当サーバ装置に対象データのアクセス要求を送信した結果、対象データが存在しないことを示す応答をホット領域担当サーバ装置から受け付けたとする。この場合、送信部503は、コールド領域担当サーバ装置に対象データのアクセス要求を送信してもよい。
また、送信部503がコールド領域担当サーバ装置に対象データのアクセス要求を送信した結果、対象データが存在しないことを示す応答をコールド領域担当サーバ装置から受け付けたとする。この場合、送信部503は、対象データが書込対象となるデータであれば、対象データに基づいて、ホット領域担当サーバ装置またはコールド領域担当サーバ装置に対象データのアクセス要求を送信してもよい。
更新部504は、BF送信部514が送信した新たなハッシュ値を登録した登録後の第1のBFを受け付けた場合、新たなハッシュ値を登録した登録後の第1のBFに基づいて、BF113を更新する。具体的な更新例として、更新部504は、第1のBFの内容でBF113に上書きする。
また、更新部504は、BF送信部514が送信した第2のBFを受け付けた場合、第2のBFに基づいて、記憶部501が記憶するBFを更新してもよい。具体的な更新例として、更新部504は、第2のBFを記憶部501に格納する。
また、更新部504は、BF送信部514が送信した新たなハッシュ値を登録した登録後の第2のBFを受け付けた場合、新たなハッシュ値を登録した登録後の第2のBFに基づいて、記憶部501が記憶するBFを更新してもよい。具体的な更新例として、更新部504は、登録後の第2のBFを記憶部501に格納する。
また、更新部504は、BF送信部514が送信した第1のBFを削除したことを示す情報を受け付けた場合、第1のBFを削除したことを示す情報に基づいて、記憶部501が記憶するBFを更新してもよい。具体的な更新例として、更新部504は、記憶部501に記憶された第1のBFを削除する。
登録部511は、ホット領域担当サーバ装置が記憶するホットデータに新たなデータが追加された場合、ホットデータの各々のデータのデータ名のハッシュ値が登録された第1のBFに、新たなデータのデータ名の新たなハッシュ値を登録する。
また、登録部511は、作成部513が第2のBFを作成した後、ホット領域担当サーバ装置が記憶するホットデータのいずれかのデータがアクセスされた場合、第2のBFに、いずれかのデータの識別情報の特徴を抽出した新たなハッシュ値を登録してもよい。
また、登録部511は、作成部513が第2のBFを作成した後、ホット領域担当サーバ装置が記憶するホットデータに新たなデータが追加された場合、第2のBFに、新たなデータの識別情報の特徴を抽出した新たなハッシュ値を登録してもよい。BFにハッシュ値を登録する処理については、図8にて後述する。
個数判断部512は、第1のBFに登録されたハッシュ値の個数が所定数を超えるか否かを判断する。具体的な所定数の設定例については、図8にて後述する。個数判断部512は、RAM303、ディスク305などの記憶領域に記憶される。
作成部513は、個数判断部512が第1のBFに登録されたハッシュ値の個数が所定数を超えると判断した場合、第1のBFとは異なる第2のBFを作成する。作成された第2のBFは、RAM303、ディスク305などの記憶領域に記憶される。
BF送信部514は、登録部511が新たなハッシュ値を登録した登録後の第1のBFを、クライアント装置#aに送信する。また、BF送信部514は、作成部513が作成した第2のBFをクライアント装置#aに送信してもよい。また、BF送信部514は、登録部511が新たなハッシュ値を登録した登録後の第2のBFを、クライアント装置#aに送信してもよい。また、BF送信部514は、削除部518が第1のBFを削除した場合、第1のBFを削除したことを示す情報を送信してもよい。BFの送信については、図9、図10にて後述する。
第1選択部515は、ホット領域111が記憶するホットデータの各々のデータから、各々のデータのアクセス時刻と、作成部513が第2のBFを作成した時刻とに基づいて、コールド領域担当サーバ装置に移行する対象データを選択する。
たとえば、第1選択部515は、各々のデータのアクセス時刻が、作成部513が第2のBFを作成した時刻より古いデータを選択する。また、第1選択部515は、各々のデータのアクセス時刻が、作成部513が第2のBFを作成した時刻と所定の期間を足した時刻より古いデータを選択してもよい。所定の期間は、第1のBFを保持する期間となる。以下、所定の期間を保持期間とする。
また、第1選択部515は、現在時刻から保持期間を引いた時刻から現在時刻までの、アクセス回数が所定の回数未満となるデータを選択してもよい。なお、選択されたデータの識別情報が、RAM303、ディスク305などの記憶領域に記憶される。
第1移行部516は、第1選択部515が選択した対象データを、コールド領域担当サーバ装置に移行する。
削除判断部517は、作成部513が第2のBFを作成した時刻に基づいて、第1のBFを削除するか否かを判断する。たとえば、削除判断部517は、作成部513が第2のBFを作成した時刻に保持期間を足した時刻が、現在時刻より古ければ、第1のBFを削除すると判断する。また、たとえば、削除判断部517は、作成部513が第2のBFを作成した時刻が一日前であれば、第1のBFを削除すると判断してもよい。判断結果は、RAM303、ディスク305などの記憶領域に記憶される。
削除部518は、削除判断部517が第1のBFを削除すると判断し、かつ、第1移行部516が対象データをコールド領域担当サーバ装置に移行した後、第1のBFを削除する。
第2選択部521は、コールド領域112が記憶するコールドデータの各々のデータから、各々のデータのアクセス時刻に基づいて、ホット領域担当サーバ装置に移行する対象となる対象データを選択する。
たとえば、第2選択部521は、各々のデータのアクセス時刻が、現在時刻から保持期間を引いた時刻より新しいデータを選択する。また、第2選択部521は、現在時刻から保持期間を引いた時刻から現在時刻までの、アクセス回数が所定の回数以上となるデータを選択してもよい。なお、選択されたデータの識別情報が、RAM303、ディスク305などの記憶領域に記憶される。
第2移行部522は、第2選択部521が選択した対象データをホット領域担当サーバ装置に移行する。
図6は、データ配置テーブルの記憶内容の一例を示す説明図である。データ配置テーブル601は、データが配置されたサーバ装置を特定するテーブルである。図6に示すデータ配置テーブル601は、レコード601−1〜レコード601−6を有する。
データ配置テーブル601は、スロット番号、データのハッシュ値範囲、ホット領域担当サーバ装置、コールド領域担当サーバ装置、BF群、各BFの保持完了時刻という6つのフィールドを含む。さらに、ホット領域担当サーバ装置フィールドと、コールド領域担当サーバ装置フィールドとは、1st、2nd、3rdのサブフィールドを有する。
また、データ配置テーブル601の各フィールドのうちの、ハッチを付与した各BFの保持完了時刻フィールドは、ホット領域担当サーバ装置が有する。一方、データ配置テーブル601の各フィールドのハッチを付与していないフィールドは、ホット領域担当サーバ装置と、コールド領域担当サーバ装置と、クライアント装置とが共有する。なお、BF群フィールドは、ホット領域担当サーバ装置と、クライアント装置とが共有する。
スロット番号フィールドには、分散用ハッシュ関数の結果となるハッシュ値が取り得る値の範囲を分割した際の識別番号が格納される。以下、ハッシュ値が取り得る値の範囲を、「ハッシュ空間」と呼称する。また、ハッシュ空間を分割した1つのブロックを「スロット」と呼称する。スロットの識別番号を、「スロット番号」と呼称する。
データのハッシュ値範囲フィールドには、ハッシュ空間のうちの、該当のスロット番号に対応するハッシュ値の範囲が格納される。ホット領域担当サーバ装置フィールドには、該当のスロット番号に対応するデータのうちのホットデータが格納されたサーバ装置の識別情報が格納される。コールド領域担当サーバ装置フィールドには、該当のスロット番号に対応するデータのうちのコールドデータが格納されたサーバ装置の識別情報が格納される。ホット領域担当サーバ装置フィールドの1st、2nd、3rdの各サブフィールドには、ホットデータを記憶するサーバ装置の識別情報がそれぞれ格納される。同様に、コールド領域担当サーバ装置フィールドの1st、2nd、3rdの各サブフィールドには、コールドデータを記憶するサーバ装置の識別情報がそれぞれ格納される。
BF群フィールドには、該当のスロット番号に対応するデータがホットデータであるかコールドデータであるかを判断するBF群が格納される。BF群は、BF113に相当する。各BFの保持完了時刻フィールドには、BF群の保持期間が完了する時刻が格納される。
たとえば、レコード601−1は、ハッシュ空間内のスロット番号“0”に対応するデータのうちの、ホットデータがサーバ装置#A、#C、#Xに記憶され、コールドデータがサーバ装置#B、#Y、#Zに記憶されることを示す。
図7は、データの配置例およびデータへのアクセス例を示す説明図である。図7では、クライアント装置#aが実行するアプリによって、データへのアクセス要求が発行されたとする。本実施の形態にかかるストレージシステム200は、データを3重化して配置する。たとえば、スロット番号αのホットデータは、サーバ装置#A、#C、#Xに3重化して保持される。また、スロット番号αのコールドデータは、サーバ装置#B、#Y、#Zに3重化して保持される。
図7に示す(1)の処理において、クライアント装置#aは、アクセス対象となるデータ701のデータ名を分散用ハッシュ関数に与えて、ハッシュ値を得る。そして、クライアント装置#aは、データ配置テーブル601を参照して、ハッシュ値に対応するスロット番号αを取得する。
次に、図7に示す(2)の処理において、クライアント装置#aは、データ701のデータ名をBF用ハッシュ関数群に与えて、ハッシュ値群を得る。そして、クライアント装置#aは、ハッシュ値群が、データ配置テーブル601のBF群のいずれかにヒットしたか否かを判断する。
ヒットしたと判断した場合、クライアント装置#aは、データ701がホットデータであると判断して、データ配置テーブル601のホット領域担当サーバ装置フィールドを参照して、ホット領域担当サーバ装置のいずれかにアクセスする。たとえば、図7の例では、クライアント装置#aは、サーバ装置#A、#C、#Xのいずれかにアクセスする。アクセスがあったサーバ装置は、データ701にアクセスする。ここで、BFは、偽陽性が起こり得るため、アクセスがあったサーバ装置は、データ701を検出できない場合がある。検出できない場合、アクセスがあったサーバ装置は、検出できなかった旨をクライアント装置#aに送信する。
データ701を検出できない場合、または、ヒットしないと判断した場合、データ701がコールドデータであると判断して、データ配置テーブル601のコールド領域担当サーバ装置フィールドを参照して、コールド領域担当サーバ装置のいずれかにアクセスする。図7の例では、クライアント装置#aは、サーバ装置#B、#Y、#Zのいずれかにアクセスする。
図8は、BFの登録期間および保持期間の一例を示す説明図である。図8の(a)では、データ配置テーブル601のレコード601−1に登録されたBF群について、BFが取り得る2つの状態となる登録期間および保持期間について説明する。
サーバ装置は、BFを作成する。サーバ装置は、作成したBFを、登録期間の状態にあるBFであると設定する。さらに、サーバ装置は、各スロットの時間軸に沿って複数のBFを作成する。サーバ装置は、ホット領域にデータが加わると、データをBF用ハッシュ関数群に与えたハッシュ値群を、登録期間の状態にあるBFに登録する。ホット領域にデータが加わる契機としては、新しくデータが生成される場合、または、コールド領域からホット領域に、データが移動される場合である。
サーバ装置は、BFに登録されたデータ数が所定数を超えたと判断した場合、該当BFの状態を保持期間へと移行する。ここで、所定数は、BFの偽陽性判定確率に応じてストレージシステム200の設計者等により設定される数である。偽陽性判定確率とは、データがコールド領域にあるにも関わらず、ホット領域にあると判定してしまう確率である。偽陽性判定確率は、下記(1)式により算出できる。
Figure 2014191651
ただし、kは、BF用ハッシュ関数群の個数を示す。mは、BFのビット量を示す。nは、BFに登録されたnを示す。たとえば、k=3であり、BFのビット量が2.84Mビットである場合に、偽陽性判定確率を0.001以下としたい場合、所定数は、100000個となる。
そして、サーバ装置は、新たなBFを作成し、新しいBFの状態を登録期間に設定する。サーバ装置は、保持期間に設定されたBFを、保持期間として設定された時間分保持する。サーバ装置は、保持期間に設定されたBFに対して新たにデータを登録しないが、アクセス要求があった際に、保持期間に設定されたBFをアクセス要求があったデータがホット領域にあるか否かのチェックに用いる。図8の(a)では、BFの状態が登録期間にある期間を、ハッチを付与することにより示す。
図8の(a)の例では、サーバ装置は、時刻t0にてBF1を作成し、BF1の状態を登録期間に設定する。そして、時刻t1にてBF1に登録されたデータ数が所定数を超えたと判断した場合、サーバ装置は、BF2を作成し、BF1の状態を保持期間に設定するとともに、BF2の状態を登録期間に設定する。
同様に、時刻t2にてBF2に登録されたデータ数が所定数を超えたと判断した場合、サーバ装置は、BF3を作成し、BF2の状態を保持期間に設定するとともに、BF3の状態を登録期間に設定する。
また、時刻t3にてBF1の保持期間が終了したと判断した場合、サーバ装置は、BF1を削除する。また、時刻t3にてBF3に登録されたデータ数が所定数を超えたと判断した場合、サーバ装置は、BF4を作成し、BF3の状態を保持期間に設定するとともに、BF4の状態を登録期間に設定する。
たとえば、仮にBF1でヒットしていたものの、BF2およびBF3ではヒットしないデータがあるとする。該当のデータは、時刻t1から、保持期間が経過した時刻t3までアクセスされていないことを意味する。ここで、図8の(a)に示す時刻t4にて、該当のデータは、BF2、BF2、およびBF4でヒットせず、コールド領域に移動されていることになる。
図8の(b)では、現在時刻が時刻t4における、ホットデータとコールドデータの状態を示す。ホット領域担当サーバ装置は、自装置が記憶するデータのうち、データのアクセス時刻+保持期間が、時刻t4より古いデータを、コールド領域担当サーバ装置に移行する。図8の(b)の例では、ホット領域担当サーバ装置は、アクセス時刻がtより古いデータを、コールド領域担当サーバ装置に移行する。また、コールド領域担当サーバ装置は、自装置が記憶するデータのうち、データのアクセス時刻+保持期間が、時刻t4より新しいデータを、ホット領域担当サーバ装置に移行する。図8の(b)の例では、コールド領域担当サーバ装置は、アクセス時刻がtより新しいデータを、ホット領域担当サーバ装置に移行する。
図8の(a)と図8の(b)とが示すように、削除されたBF1に登録されていたデータは、コールドデータとして、コールド領域担当サーバ装置に移行されていることがわかる。なお、アクセス時刻がt1からtまでの間になるデータは、コールドデータとなり、コールド領域担当サーバ装置に移行されている。アクセス時刻がt1からtまでの間になるデータに対するアクセス要求が発生した場合、クライアント装置#aは、自装置が記憶するBF2を参照して、一旦ホット領域担当サーバ装置にアクセス要求を送信することになる。この場合、データが存在しないため、クライアント装置#aは、コールド領域担当サーバにアクセス要求を送信することになる。このように、ストレージシステム200は、アクセス要求が多く送信されることになるが、目的のデータに対するアクセス要求を正常に処理することができる。
次に、図9および図10を用いて、データ名がabcとなるデータabcについて、ホット領域にある場合のシーケンスと、コールド領域にある場合のシーケンスとを示す。図9および図10において、データabcを分散用ハッシュ関数に与えた場合のハッシュ値の範囲はレコード601−1が示す0以上10未満になり、スロット番号が“0”となるとする。さらに、クライアント装置#aは、データabcがホットデータであればサーバ装置#Aにアクセスし、データabcがコールドデータであればサーバ装置#Bにアクセスするものとする。
図9は、BFを用いた領域判断処理のシーケンスの一例を示す説明図である。図9に示すシーケンスは、データabcがホット領域にある場合のクライアント装置#aとサーバ装置#Aとが実行する処理の順序を示す。
クライアント装置#aは、クライアント装置#a上で動作するアプリによって、データabcを作成する(ステップS901)。次に、クライアント装置#aは、データabcがホット領域にあるかコールド領域にあるかを判断する。そして、クライアント装置#aは、データabcがホット領域およびコールド領域になく、データabcをホットデータに書き込むべきであると判断して、データabcの書込要求をサーバ装置#Aに送信する(ステップS902)。サーバ装置#Aは、データabcを記憶するとともに、スロット番号“0”であるレコード601−1のBF群のうち、状態が登録期間にあるBF1に、データabcをBF用ハッシュ関数群に与えて得たハッシュ値群を登録する(ステップS903)。図9の例では、サーバ装置#Aは、BF用ハッシュ関数群から得られたハッシュ値1とハッシュ値2とをBF1に登録する。
続けて、サーバ装置#Aは、登録期間にあるBF1をクライアント装置#aに送信することにより、BF1をクライアント装置#aと共有する(ステップS904)。さらに、サーバ装置#Aは、登録期間にあるBF1を、サーバ装置#C、#Xと共有する。
次に、クライアント装置#aは、クライアント装置#a上で動作するアプリが発行した、データabcのアクセス要求として、データabcの読出要求を検出する(ステップS905)。続けて、クライアント装置#aは、データabcをBF用ハッシュ関数群に与えて得たハッシュ値群が、共有されているBF群のいずれかにヒットしたか否かを判断する(ステップS906)。図9の例では、クライアント装置#aは、ハッシュ値群のビット全てがBF1でONとなっており、ヒットしたと判断したため、データabcがホットデータであると判断して、サーバ装置#Aにデータabcの読出要求を送信する(ステップS907)。読出要求を受け付けたサーバ装置#Aは、データabcを読み出して、読み出したデータをクライアント装置#aに送信する(ステップS908)。
図10は、BFを用いた領域判断処理のシーケンスの他の例を示す説明図である。図10に示すシーケンスは、データabcがコールド領域にある場合のクライアント装置#aとサーバ装置#Aとサーバ装置#Bとが実行する処理の順序を示す。また、図10で示すステップS1001〜ステップS1004の処理は、図9に示すステップS901〜ステップS904と同一の処理であるため、説明を省略する。
ステップS1004の処理終了後、データabcのアクセス時刻+保持時刻が、現在時刻よりも古い場合、サーバ装置#Aは、データabcをサーバ装置#Aからサーバ装置#Bに移行する(ステップS1005)。そして、サーバ装置#Aは、BF1を削除して、BF4を作成する(ステップS1006)。次に、サーバ装置#Aは、登録期間にあるBF4をクライアント装置#aに送信することにより、BF4をクライアント装置#aと共有する(ステップS1007)。さらに、サーバ装置#Aは、登録期間にあるBF4を、サーバ装置#C、#Xと共有する。
続けて、クライアント装置#a上で動作するアプリが発行した、データabcのアクセス要求として、データabcの読出要求を検出する(ステップS1008)。続けて、クライアント装置#aは、データabcをBF用ハッシュ関数群に与えて得たハッシュ値群が、共有されているBF群のいずれかにヒットしたか否かを判断する(ステップS1009)。図10の例では、クライアント装置#aは、ハッシュ値群のビットの一部がBF4でOFFとなっており、ヒットしないと判断したため、データabcがコールドデータであると判断して、サーバ装置#Bにデータabcの読出要求を送信する(ステップS1010)。読出要求を受け付けたサーバ装置#Bは、データabcを読み出して、読み出したデータをクライアント装置#aに送信する(ステップS1011)。次に、BFの共有について、図11を用いて説明する。
図11は、BFの共有およびBFのマージのシーケンスの一例を示す説明図である。図11では、図9のステップS904と、図10のステップS1004とステップS1007とで示した、BFの共有についてと、具体的な共有手順となるBFのマージについての処理の順序を示す。図11において、スロット番号“0”を例に挙げて説明する。また、図11に示すシーケンスは、図8に示した時刻t2以降について示す。サーバ装置#A、#C、#Xは、状態が保持期間であるBF1とBF2とを有し、状態が登録期間であるBF3を有する。
BFを共有するのは、スロット番号“0”のホット領域担当サーバ装置と、クライアント装置とである。サーバ装置#A、#C、#Xのいずれかが、状態が登録期間となるBF3を更新する。そして、定期的に、サーバ装置#A、#C、#Xは、自装置のBF3を、他装置に送信する(ステップS1101)。他装置のBF3を受信したサーバ装置#A、#C、#Xは、BFのマージとして、他装置のBF3と自装置のBF3とのOR演算を算出し、自装置のBF3とする。BFの偽陽性は、OR演算を行ったBFでも成り立つ。
図11では、模擬的に、BF3を8ビットで表現する。そして、マージ前のサーバ装置#AのBF3は、最下位ビットを0番目のビットとすると、6番目のビットと4番目のビットとがONである。また、マージ前のサーバ装置#CのBF3は、6番目のビットと3番目のビットとがONである。さらに、マージ前のサーバ装置#XのBF3は、4番目のビットと0番目のビットとがONである。この状態で、BFのマージを行うと、サーバ装置#A、#C、#XのBF3は、6番目のビットと4番目のビットと3番目のビットと0番目のビットとがONとなる。
また、クライアント装置#aは、定期的、または何らかのイベントを契機に、データ配置テーブル601の送信要求を、サーバ装置#A、#C、#Xのいずれかに送信する(ステップS1102)。図11の例では、クライアント装置#aは、データ配置テーブル601の送信要求を、サーバ装置#Aに送信する。また、何らかのイベントは、たとえば、クライアント装置#aがBFにヒットしたのに、対象データが存在しなかった場合である。
データ配置テーブル601の送信要求を受信したサーバ装置#Aは、データ配置テーブル601を送信する(ステップS1103)。なお、データ配置テーブル601のフィールドのうち、サーバ装置#Aが送信するフィールドは、図6にてハッチを付与していないフィールドとなる。データ配置テーブル601を受け付けたクライアント装置#aは、受け付けたデータ配置テーブル601のBF群を用いて、自装置が有するBFを更新する。具体的に、クライアント装置#aは、受け付けたデータ配置テーブル601のBF群をそのまま自装置が有するBFに上書きする。
そして、BF3に登録されたデータ数が所定数を超えた時刻t3にて、サーバ装置#A、#C、#Xは、同期を取って、新たなBFとして、BF4を作成する。次に、図12〜図18を用いて、ストレージシステム200の各装置が実行するフローチャートについて説明する。
図12は、クライアント装置におけるアクセス要求発生時の処理手順の一例を示すフローチャートである。クライアント装置におけるアクセス要求発生時の処理は、アクセス要求が発生した際に、クライアント装置が実行する処理である。また、アクセス要求が発生する場合とは、たとえば、クライアント装置が実行するアプリが、アクセス要求を発行した場合である。図12では、実行主体がクライアント装置#aである場合を例にして説明する。
クライアント装置#aは、アクセス要求の対象データ名と、分散用ハッシュ関数とから、対象データが所属するスロット番号を取得する(ステップS1201)。次に、クライアント装置#aは、対象データ名と、BF用ハッシュ関数群とから、取得したスロット番号のBF群をチェックする(ステップS1202)。続けて、クライアント装置#aは、データ配置テーブル601の該当のスロット番号に対応するBF群のいずれかのBFにヒットしたか否かを判断する(ステップS1203)。
いずれかのBFにヒットした場合(ステップS1203:Yes)、クライアント装置#aは、ホット領域担当サーバ装置のいずれかにアクセス要求を送信する(ステップS1204)。アクセス要求を送信後、クライアント装置#aは、アクセス要求を送信したサーバ装置から、アクセス要求の応答があるまで待機する。
アクセス要求の応答を受け付けた後、クライアント装置#aは、アクセス要求を送信したサーバ装置に対象データが存在したか否かを判断する(ステップS1205)。アクセス要求を送信したサーバ装置に対象データが存在した場合(ステップS1205:Yes)、クライアント装置#aは、クライアント装置におけるアクセス要求発生時の処理を終了する。
いずれのBFにもヒットしない場合(ステップS1203:No)、または、偽陽性によりアクセス要求を送信したサーバ装置に対象データが存在しない場合(ステップS1205:No)、クライアント装置#aは、コールド領域担当サーバ装置のいずれかにアクセス要求を送信する(ステップS1206)。アクセス要求を送信後、クライアント装置#aは、アクセス要求を送信したサーバ装置から、アクセス要求の応答があるまで待機する。
アクセス要求の応答を受け付けた後、クライアント装置#aは、アクセス要求を送信したサーバ装置に対象データが存在したか否かを判断する(ステップS1207)。アクセス要求を送信したサーバ装置に対象データが存在した場合(ステップS1207:Yes)、クライアント装置#aは、クライアント装置におけるアクセス要求発生時の処理を終了する。
アクセス要求を送信したサーバ装置に対象データが存在しない場合(ステップS1207:No)、クライアント装置#aは、続けて、アクセス要求の種類を確認する(ステップS1208)。アクセス要求の種類が読出要求である場合(ステップS1208:読出要求)、クライアント装置#aは、クライアント装置におけるアクセス要求発生時の処理を終了する。
アクセス要求の種類が書込要求である場合(ステップS1208:書込要求)、新規のデータを書き込むことになるため、クライアント装置#aは、対象データに基づいて、ホット領域担当サーバ装置またはコールド領域担当サーバ装置に、新規書込要求としてアクセス要求を送信する(ステップS1209)。ステップS1209の処理において、ホット領域担当サーバ装置にアクセス要求を送信する場合、後述する図17のBF登録処理を実行する契機の一つとなる。
ホット領域担当サーバ装置またはコールド領域担当サーバ装置のいずれにアクセス要求を送信するかの方針については、たとえば、クライアント装置が、対象データのアクセス頻度が低いと判断できる場合、コールド領域担当サーバ装置に送信するとしてもよい。たとえば、クライアント装置#aは、クライアント装置#aのユーザ、またはストレージシステム200を利用するソフトウェアの開発者等により、アクセス頻度が低いとされるデータ名を予め登録しておく。そして、クライアント装置#aは、ステップS1208の処理を行う際に、対象データ名が、予め登録されたデータ名と一致すれば、コールド領域担当サーバ装置にアクセス要求を送信し、一致しなければホット領域担当サーバ装置にアクセス要求を送信する。
また、クライアント装置#aは、予め登録されたデータ名の代わりに、アクセス頻度が低いとされるファイル名に付与される識別子を登録しておいてもよいし、ファイルの冒頭付近に埋め込まれたファイル形式の識別子を登録しておいてもよい。そして、クライアント装置#aは、対象データの識別子と、予め登録された識別子と一致すれば、コールド領域担当サーバ装置にアクセス要求を送信してもよい。
また、ストレージシステム200が新規書込要求をコールド領域担当サーバ装置に送信する方針を採用した場合、コールド領域担当サーバ装置は、ステップS1206の時点で新規書込要求に対する書き込みを行ってもよい。
ステップS1209の処理終了後、クライアント装置#aは、クライアント装置におけるアクセス要求発生時の処理を終了する。クライアント装置におけるアクセス要求発生時の処理を実行することにより、ストレージシステム200は、アクセス要求が発生した際に、アクセス要求に対する結果を得ることができる。また、ストレージシステム200は、BF群にヒットして陽性であるか、またはBF群にヒットしなければ、ホット領域担当サーバ装置またはコールド領域担当サーバ装置のいずれか一方のみにアクセス要求を送信するため、アクセス時の負荷を抑制できる。
図13は、ホット領域担当サーバ装置におけるアクセス時の処理手順の一例を示すフローチャートである。ホット領域担当サーバ装置におけるアクセス時の処理は、アクセス要求がクライアント装置から送信された際に、ホット領域担当サーバ装置が実行する処理である。図13では、実行主体がサーバ装置#Aである場合を例にして説明する。
サーバ装置#Aは、アクセス要求が新規書込要求か否かを判断する(ステップS1301)。アクセス要求が新規書込要求でない場合(ステップS1301:No)、サーバ装置#Aは、アクセス対象データが存在するか否かを判断する(ステップS1302)。アクセス対象データが存在する場合(ステップS1302:Yes)、またはアクセス要求が新規書込要求である場合(ステップS1301:Yes)、サーバ装置#Aは、アクセス要求の対象データに対してBF登録処理を実行する(ステップS1303)。BF登録処理の詳細は、図17にて後述する。
サーバ装置#Aは、アクセス要求に応じた処理を実行する(ステップS1304)。たとえば、アクセス要求が書込要求であれば、サーバ装置#Aは、対象データを上書きする。また、アクセス要求が新規書込要求であれば、サーバ装置#Aは、対象データを新規に作成する。さらに、アクセス要求が読出要求であれば、サーバ装置#Aは、対象データを読み出す。
ステップS1304の処理終了後、サーバ装置#Aは、アクセス対象データのアクセス時刻を更新する(ステップS1305)。次に、サーバ装置#Aは、アクセス要求が正常に処理されたこと示す応答をクライアント装置に送信する(ステップS1306)。アクセス対象データが存在しない場合(ステップS1302:No)、サーバ装置#Aは、アクセス対象データが存在しないこと示す応答をクライアント装置に送信する(ステップS1307)。
ステップS1306またはステップS1307の処理終了後、サーバ装置#Aは、ホット領域担当サーバ装置におけるアクセス時の処理を終了する。ホット領域担当サーバ装置におけるアクセス時の処理を実行することにより、ストレージシステム200は、ホットデータにアクセスすることができる。
図14は、コールド領域担当サーバ装置におけるアクセス時の処理手順の一例を示すフローチャートである。コールド領域担当サーバ装置におけるアクセス時の処理は、アクセス要求がクライアント装置から送信された際に、コールド領域担当サーバ装置が実行する処理である。図14では、実行主体がサーバ装置#Bである場合を例にして説明する。
また、図14に示す各ステップのうち、ステップS1401:YesまたはステップS1402:Yesとなる場合以外のステップは、ステップS1301、ステップS1302、ステップS1304〜ステップS1307と同一の処理のため、説明を省略する。ステップS1401:YesまたはステップS1402:Yesとなる場合、サーバ装置#Bは、ステップS1403の処理を実行する。コールド領域担当サーバ装置におけるアクセス時の処理を実行することにより、ストレージシステム200は、コールドデータにアクセスすることができる。
図15は、サーバ装置におけるホット領域移行判断処理手順の一例を示すフローチャートである。サーバ装置におけるホット領域移行判断処理は、ホット領域にあるデータごとに、コールド領域に移行すべきか否かを判断して、移行すべきデータをコールド領域に移行する処理である。図15では、実行主体がサーバ装置#Aである場合を例にして説明する。
サーバ装置#Aは、先頭のデータを選択する(ステップS1501)。次に、サーバ装置#Aは、選択したデータのアクセス時刻+保持期間が、現在時刻より古いか否かを判断する(ステップS1502)。選択したデータのアクセス時刻+保持期間が、現在時刻より古い場合(ステップS1502:Yes)、サーバ装置#Aは、選択したデータをコールド領域担当サーバ装置に移行する(ステップS1503)。
ステップS1503の処理終了後、または選択したデータのアクセス時刻+保持期間が、現在時刻より古くない場合(ステップS1502:No)、サーバ装置#Aは、全てのデータを選択したか否かを判断する(ステップS1504)。まだ選択していないデータがある場合(ステップS1504:No)、サーバ装置#Aは、次のデータを選択する(ステップS1505)。そして、サーバ装置#Aは、ステップS1502の処理に移行する。
全てのデータを選択した場合(ステップS1504:Yes)、サーバ装置#Aは、サーバ装置におけるホット領域移行判断処理を終了する。なお、サーバ装置#Aは、ステップS1502:Yesとなったデータを記憶しておき、ステップS1504:Yesとなった後、ステップS1502:Yesとなったデータを一括して移行してもよい。
サーバ装置におけるホット領域移行判断処理を実行することにより、ストレージシステム200は、アクセス頻度が低くなり、コールド領域に移行すべきデータを、コールド領域に移行することができる。
図16は、サーバ装置におけるコールド領域移行判断処理手順の一例を示すフローチャートである。サーバ装置におけるコールド領域移行判断処理は、コールド領域にあるデータごとに、ホット領域に移行すべきか否かを判断して、移行すべきデータをホット領域に移行する処理である。図16では、実行主体がサーバ装置#Bである場合を例にして説明する。
サーバ装置#Bは、先頭のデータを選択する(ステップS1601)。次に、サーバ装置#Bは、選択したデータのアクセス時刻+保持期間が、現在時刻より新しいか否かを判断する(ステップS1602)。選択したデータのアクセス時刻+保持期間が、現在時刻より新しい場合(ステップS1602:Yes)、サーバ装置#Bは、選択したデータをホット領域担当サーバ装置に移行する(ステップS1603)。なお、選択したデータがホット領域担当サーバ装置に移行されることにより、ホット領域担当サーバ装置は、図17に示すBF登録処理を実行する。
ステップS1603の処理終了後、または選択したデータのアクセス時刻+保持期間が、現在時刻より新しくない場合(ステップS1602:No)、サーバ装置#Bは、全てのデータを選択したか否かを判断する(ステップS1604)。選択していないデータがある場合(ステップS1604:No)、サーバ装置#Bは、次のデータを選択する(ステップS1605)。そして、サーバ装置#Bは、ステップS1602の処理に移行する。
全てのデータを選択した場合(ステップS1604:Yes)、サーバ装置#Bは、サーバ装置におけるコールド領域移行判断処理を終了する。サーバ装置におけるコールド領域移行判断処理を実行することにより、ストレージシステム200は、アクセス頻度が高くなり、ホット領域に移行すべきデータを、ホット領域に移行することができる。
図17は、BF登録処理手順の一例を示すフローチャートである。BF登録処理は、ホット領域に追加されたデータのデータ名、またはホット領域に属するデータのうちアクセスされたデータのデータ名をBFに登録する処理である。図17では、実行主体がサーバ装置#Aである場合を例にして説明する。
サーバ装置#Aは、状態が登録期間であるBFに、対象データのハッシュ値群を登録する(ステップS1701)。次に、サーバ装置#Aは、状態が登録期間であるBFに登録された個数が所定数を超えたか否かを判断する(ステップS1702)。状態が登録期間であるBFに登録された個数が所定数を超えた場合(ステップS1702:Yes)、サーバ装置#Aは、新たなBFを作成する(ステップS1703)。次に、サーバ装置#Aは、作成したBFの状態を、登録期間に設定する(ステップS1704)。続けて、サーバ装置#Aは、今まで登録期間に設定されていたBFの状態を、保持期間に設定する(ステップS1705)。次に、サーバ装置#Aは、状態を保持期間に設定したBFの保持完了時刻を、新たなBFを作成した時刻+保持期間に設定する(ステップS1706)。
ステップS1706の処理終了後、または状態が登録期間であるBFに登録された個数が所定数を超えない場合(ステップS1702:No)、サーバ装置#Aは、BF登録処理を終了する。BF登録処理を実行することにより、ストレージシステム200は、アクセス頻度が高いデータを、最新のBFに登録することができる。
図18は、BF削除処理手順の一例を示すフローチャートである。BF削除処理は、最も古いBFを削除する処理である。図18では、実行主体がサーバ装置#Aである場合を例にして説明する。また、BF削除処理が実行される契機としては、あるスロットに対するBFが2つ以上あるときであれば、どの契機で実行されてもよい。たとえば、BF削除処理は、保持期間ごとに実行されてもよい。
サーバ装置#Aは、BF群のうちの保持完了時刻が最も古いBFの保持完了時刻が、現在時刻より古いか否かを判断する(ステップS1801)。最も古いBFの保持完了時刻が、現在時刻より古い場合(ステップS1801:Yes)、サーバ装置#Aは、続けて、最も古いBFの保持完了時刻より、アクセス時刻+保持期間が古いデータがあるか否かを判断する(ステップS1802)。最も古いBFの保持完了時刻より、アクセス時刻+保持期間が古いデータがない場合(ステップS1802:No)、サーバ装置#Aは、最も古いBFを削除する(ステップS1803)。ステップS1803の処理終了後、サーバ装置#Aは、BF削除処理を終了する。
最も古いBFの保持完了時刻が、現在時刻より古くない場合(ステップS1801:No)、または最も古いBFの保持完了時刻より、アクセス時刻+保持期間が古いデータがある場合(ステップS1802:Yes)、サーバ装置#Aは、BF削除処理を終了する。BF削除処理を実行することにより、ストレージシステム200は、アクセス頻度が低くなり、既にコールド領域に移行済のデータが登録されていたBFを削除するため、ヒット率を向上することができる。
以上説明したように、ストレージシステム200によれば、ホットデータを記憶するストレージ装置102とコールドデータを記憶するストレージ装置103とのうち、ホットデータ名を登録したBFに応じてアクセス要求を送る。これにより、ストレージシステム200は、アクセス要求を送信する回数が抑制されて、効率的に対象データにアクセスすることができる。
また、ストレージシステム200によれば、ホットデータを、BFで管理することにより、ホット領域のデータごとに管理しなくてよいため、管理にかかる負荷を抑制することができる。また、ホットデータの個数は、コールドデータの個数より少なくなることが多いため、ストレージシステム200は、コールドデータをBFで管理する場合に比べ、BFにかかるデータ量を少なくすることができる。
また、ストレージシステム200によれば、ホット領域に追加されたデータ名のハッシュ値が登録されたBFを、クライアント装置に送信してもよい。これにより、ストレージシステム200は、クライアント装置が送信する追加されたデータに対するアクセス要求が、ホット領域担当サーバのみに送信されるため、ストレージシステム200にかかるアクセス負荷を抑制することができる。
また、ストレージシステム200によれば、サーバ装置のBFに登録されたハッシュ値が所定数を超えた際に作成された新たなBFを、クライアント装置に送信してもよい。これにより、ストレージシステム200は、クライアント装置が送信する新たなBFに登録されたデータに対するアクセス要求が、ホット領域担当サーバのみに送信されるため、ストレージシステム200にかかるアクセス負荷を抑制することができる。
また、ストレージシステム200によれば、ホット領域のデータ群に追加されたデータ名のハッシュ値が登録された新たなBFを、クライアント装置に送信してもよい。これにより、クライアント装置が送信する新たなBFに登録されたデータに対するアクセス要求が、ホット領域担当サーバのみに送信される。したがって、ストレージシステム200は、ストレージシステム200にかかるアクセス負荷を抑制することができる。
また、ストレージシステム200によれば、ホット領域のデータ群のうちのアクセスされたデータ名のハッシュ値が登録された新たなBFを、クライアント装置に送信してもよい。これにより、クライアント装置が送信する新たなBFに登録されたアクセス頻度の高いデータに対するアクセス要求が、ホット領域担当サーバのみに送信される。したがって、ストレージシステム200は、ストレージシステム200にかかるアクセス負荷を抑えることができる。
また、ストレージシステム200によれば、ホット領域が記憶するホットデータの各々のデータのうち、各々のデータのアクセス時刻と、新たなBFを作成した時刻とに基づいて、コールド領域担当サーバ装置に移行してもよい。これにより、ストレージシステム200は、アクセス頻度が低くなり、ホット領域担当サーバが記憶するBFのうちの古いBFにのみ登録されているはずのデータを移行することができる。
また、ストレージシステム200によれば、ホット領域の各々のデータのアクセス時刻と新たなBFを作成した時刻とに基づき選択したデータがコールド領域担当サーバに移行されていれば、古いBFを削除し、削除したことをクライアント装置に送信してもよい。これにより、クライアント装置は、既にコールド領域担当サーバに移行したデータのアクセス要求をコールド領域担当サーバに送信するため、ストレージシステム200にかかるアクセス負荷を抑えることができる。また、ストレージシステム200は、BFに登録されていないにも関わらずデータがホット領域に存在するという、クライアント装置がデータにアクセスできなくなってしまう状態を避けることができる。
また、ストレージシステム200によれば、コールド領域が記憶するコールドデータの各々のデータのうち、各々のデータのアクセス時刻に基づいて、ホット領域担当サーバ装置に移行してもよい。これにより、ストレージシステム200は、コールドデータのうちのアクセス頻度が高くなったデータを移行することができる。
また、ストレージシステム200によれば、クライアント装置が記憶するBFに対象データのデータ名のハッシュ値が登録されていれば、ホット領域担当サーバ装置にアクセス要求を送信してもよい。これにより、ストレージシステム200は、アクセス要求が送信される回数を抑制できるため、ストレージシステム200にかかるアクセス負荷を抑制することができる。
また、ストレージシステム200によれば、クライアント装置が記憶するBFに対象データのデータ名のハッシュ値が登録されていなければ、コールド領域担当サーバ装置にアクセス要求を送信してもよい。これにより、ストレージシステム200は、アクセス要求が送信される回数を抑制できるため、ストレージシステム200にかかるアクセス負荷を抑制することができる。
また、ストレージシステム200によれば、ホット領域担当サーバ装置にアクセス要求を送信した結果、対象データが存在しないことを示す応答を受け付けた場合、コールド領域担当サーバ装置にアクセス要求を送信してもよい。これにより、ストレージシステム200は、偽陽性であった場合でも、アクセス要求を正しく処理することができる。
また、コールド領域担当サーバ装置にアクセス要求を送信して、対象データが存在しないことを示す応答を受け付けたとする。このとき、ストレージシステム200によれば、アクセス要求が書込要求であれば、ホット領域担当サーバ装置またはコールド領域担当サーバ装置に新規書込要求を送信してもよい。これにより、ストレージシステム200は、新規書込要求を正しく処理することができる。
なお、本実施の形態で説明したストレージシステムの制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。ストレージプログラムやストレージシステムの制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またストレージプログラムやストレージシステムの制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第1のデータ群を記憶する第1のストレージ装置と、
前記複数のデータのうちの前記第1のデータ群とは異なる第2のデータ群を記憶する第2のストレージ装置と、
前記第1のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタを記憶する記憶部と、前記複数のデータのうちのアクセス対象となる対象データの識別情報の特徴を抽出した特徴量が前記ブルームフィルタに登録されているかを判断する判断部と、前記判断部が判断した判断結果に基づいて、前記第1のストレージ装置または前記第2のストレージ装置に前記対象データのアクセス要求を送信する送信部と、を有する制御装置と、
を含むことを特徴とするストレージシステム。
(付記2)前記第1のストレージ装置は、
前記第1のストレージ装置が記憶する第1のデータ群に新たなデータが追加された場合、前記第1のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録された第1のブルームフィルタに、前記新たなデータの識別情報の特徴を抽出した新たな特徴量を登録する登録部と、
前記登録部が前記新たな特徴量を登録した登録後の前記第1のブルームフィルタを、前記制御装置に送信するブルームフィルタ送信部と、を有し、
前記制御装置はさらに、
前記ブルームフィルタ送信部が送信した前記新たな特徴量を登録した登録後の前記第1のブルームフィルタを受け付けた場合、前記新たな特徴量を登録した登録後の前記第1のブルームフィルタに基づいて、前記記憶部が記憶するブルームフィルタを更新する更新部と、を有することを特徴とする付記1に記載のストレージシステム。
(付記3)前記第1のストレージ装置はさらに、
前記第1のブルームフィルタに登録された特徴量の個数が所定数を超えるか否かを判断する個数判断部と、
前記個数判断部が前記第1のブルームフィルタに登録された特徴量の個数が前記所定数を超えると判断した場合、前記第1のブルームフィルタとは異なる第2のブルームフィルタを作成する作成部と、を有し、
前記ブルームフィルタ送信部は、
前記作成部が作成した前記第2のブルームフィルタを前記制御装置に送信し、
前記更新部は、
前記ブルームフィルタ送信部が送信した前記第2のブルームフィルタを受け付けた場合、前記第2のブルームフィルタに基づいて、前記記憶部が記憶するブルームフィルタを更新することを特徴とする付記2に記載のストレージシステム。
(付記4)前記登録部は、
前記作成部が前記第2のブルームフィルタを作成した後、前記第1のストレージ装置が記憶する第1のデータ群のいずれかのデータがアクセスされた場合、前記第2のブルームフィルタに、前記いずれかのデータの識別情報の特徴を抽出した新たな特徴量を登録し、
前記ブルームフィルタ送信部は、
前記登録部が前記新たな特徴量を登録した登録後の前記第2のブルームフィルタを、前記制御装置に送信し、
前記更新部は、
前記ブルームフィルタ送信部が送信した前記新たな特徴量を登録した登録後の前記第2のブルームフィルタを受け付けた場合、前記新たな特徴量を登録した登録後の前記第2のブルームフィルタに基づいて、前記記憶部が記憶するブルームフィルタを更新することを特徴とする付記3に記載のストレージシステム。
(付記5)前記登録部は、
前記作成部が前記第2のブルームフィルタを作成した後、前記第1のストレージ装置が記憶する第1のデータ群に新たなデータが追加された場合、前記第2のブルームフィルタに、前記新たなデータの識別情報の特徴を抽出した新たな特徴量を登録し、
前記ブルームフィルタ送信部は、
前記登録部が前記新たな特徴量を登録した登録後の前記第2のブルームフィルタを、前記制御装置に送信し、
前記更新部は、
前記ブルームフィルタ送信部が送信した前記新たな特徴量を登録した登録後の前記第2のブルームフィルタを受け付けた場合、前記新たな特徴量を登録した登録後の前記第2のブルームフィルタに基づいて、前記記憶部が記憶するブルームフィルタを更新することを特徴とする付記3に記載のストレージシステム。
(付記6)前記第1のストレージ装置はさらに、
前記第1のストレージ装置が記憶する第1のデータ群の各々のデータから、当該各々のデータのアクセス時刻と、前記作成部が前記第2のブルームフィルタを作成した時刻とに基づいて、前記第2のストレージ装置に移行する対象データを選択する第1選択部と、
前記第1選択部が選択した前記対象データを、前記第2のストレージ装置に移行する第1移行部と、
を有することを特徴とする付記4または5に記載のストレージシステム。
(付記7)前記第1のストレージ装置はさらに、
前記作成部が前記第2のブルームフィルタを作成した時刻に基づいて、前記第1のブルームフィルタを削除するか否かを判断する削除判断部と、
前記削除判断部が前記第1のブルームフィルタを削除すると判断し、かつ、前記第1移行部が前記対象データを前記第2のストレージ装置に移行した後、前記第1のブルームフィルタを削除する削除部と、を有し、
前記ブルームフィルタ送信部は、
前記削除部が前記第1のブルームフィルタを削除した場合、前記第1のブルームフィルタを削除したことを示す情報を前記制御装置に送信し、
前記更新部は、
前記ブルームフィルタ送信部が送信した前記第1のブルームフィルタを削除したことを示す情報を受け付けた場合、前記第1のブルームフィルタを削除したことを示す情報に基づいて、前記記憶部が記憶するブルームフィルタを更新することを特徴とする付記6に記載のストレージシステム。
(付記8)前記第2のストレージ装置は、
前記第2のストレージ装置が記憶する第2のデータ群の各々のデータから、当該各々のデータのアクセス時刻に基づいて、前記第1のストレージ装置に移行する対象となる対象データを選択する第2選択部と、
前記第2選択部が選択した前記対象データを前記第1のストレージ装置に移行する第2移行部と、
を有することを特徴とする付記2〜7のいずれか一つに記載のストレージシステム。
(付記9)前記送信部は、
前記判断部が、前記記憶部が記憶するブルームフィルタに前記対象データの識別情報の特徴を抽出した特徴量が登録されていると判断した場合、前記第1のストレージ装置に前記対象データのアクセス要求を送信することを特徴とする付記1〜8のいずれか一つに記載のストレージシステム。
(付記10)前記送信部は、
前記送信部が前記第1のストレージ装置に前記対象データのアクセス要求を送信した結果、前記対象データが存在しないことを示す応答を前記第1のストレージ装置から受け付けた場合、前記第2のストレージ装置に前記対象データのアクセス要求を送信することを特徴とする付記9に記載のストレージシステム。
(付記11)前記送信部は、
前記判断部が、前記記憶部が記憶するブルームフィルタに前記対象データの識別情報の特徴を抽出した特徴量が登録されていないと判断した場合、前記第2のストレージ装置に前記対象データのアクセス要求を送信することを特徴とする付記1〜8のいずれか一つに記載のストレージシステム。
(付記12)第1のストレージ装置と、第2のストレージ装置とに接続される制御装置において、
複数のデータのうちのアクセス対象となる対象データの識別情報の特徴を抽出した特徴量が、前記第1のストレージ装置が記憶する前記複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第1のデータ群と、前記第2のストレージ装置が記憶する前記複数のデータのうちの前記第1のデータ群とは異なる第2のデータ群とのうち、前記第1のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタに登録されているかを判断する判断部と、
前記判断部が判断した判断結果に基づいて、前記第1のストレージ装置または前記第2のストレージ装置に前記対象データのアクセス要求を送信する送信部と、
を有することを特徴とする制御装置。
(付記13)制御装置と接続されるストレージ装置において、
複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第1のデータ群を記憶する記憶領域と、
前記第1のデータ群に新たなデータが追加された場合、前記第1のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録された第1のブルームフィルタに、前記新たなデータの識別情報の特徴を抽出した新たな特徴量を登録する登録部と、
前記登録部が前記新たな特徴量を登録した登録後の前記第1のブルームフィルタを、前記制御装置に送信するブルームフィルタ送信部と、
を有することを特徴とするストレージ装置。
(付記14)制御装置と、第1のストレージ装置と、第2のストレージ装置とを有するストレージシステムの制御方法において、
前記制御装置が、
複数のデータのうちのアクセス対象となる対象データの識別情報の特徴を抽出した特徴量が、前記第1のストレージ装置が記憶する前記複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第1のデータ群と、前記第2のストレージ装置が記憶する前記複数のデータのうちの前記第1のデータ群とは異なる第2のデータ群とのうち、前記第1のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタに登録されているかを判断し、
判断した判断結果に基づいて、前記第1のストレージ装置または前記第2のストレージ装置に前記対象データのアクセス要求を送信する、
処理を実行することを特徴とするストレージシステムの制御方法。
(付記15)制御装置と接続されるストレージ装置に、
記憶装置に記憶された複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第1のデータ群に新たなデータが追加された場合、前記第1のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録された第1のブルームフィルタに、前記新たなデータの識別情報の特徴を抽出した新たな特徴量を登録し、
前記新たな特徴量を登録した登録後の前記第1のブルームフィルタを、前記制御装置に送信する、
処理を実行させることを特徴とするストレージプログラム。
(付記16)第1のストレージ装置と、第2のストレージ装置と接続される制御装置に、
複数のデータのうちのアクセス対象となる対象データの識別情報の特徴を抽出した特徴量が、前記第1のストレージ装置が記憶する前記複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第1のデータ群と、前記第2のストレージ装置が記憶する前記複数のデータのうちの前記第1のデータ群とは異なる第2のデータ群とのうち、前記第1のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタに登録されているかを判断し、
判断した判断結果に基づいて、前記第1のストレージ装置または前記第2のストレージ装置に前記対象データのアクセス要求を送信する、
処理を実行させることを特徴とするストレージ装置の制御プログラム。
100、200 ストレージシステム
101 制御装置
102、103 ストレージ装置
501 記憶部
502 判断部
503 送信部
504 更新部
511 登録部
512 個数判断部
513 作成部
514 BF送信部
515 第1選択部
516 第1移行部
517 削除判断部
518 削除部
521 第2選択部
522 第2移行部

Claims (10)

  1. 複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第1のデータ群を記憶する第1のストレージ装置と、
    前記複数のデータのうちの前記第1のデータ群とは異なる第2のデータ群を記憶する第2のストレージ装置と、
    前記第1のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタを記憶する記憶部と、前記複数のデータのうちのアクセス対象となる対象データの識別情報の特徴を抽出した特徴量が前記ブルームフィルタに登録されているかを判断する判断部と、前記判断部が判断した判断結果に基づいて、前記第1のストレージ装置または前記第2のストレージ装置に前記対象データのアクセス要求を送信する送信部と、を有する制御装置と、
    を含むことを特徴とするストレージシステム。
  2. 前記第1のストレージ装置は、
    前記第1のストレージ装置が記憶する第1のデータ群に新たなデータが追加された場合、前記第1のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録された第1のブルームフィルタに、前記新たなデータの識別情報の特徴を抽出した新たな特徴量を登録する登録部と、
    前記登録部が前記新たな特徴量を登録した登録後の前記第1のブルームフィルタを、前記制御装置に送信するブルームフィルタ送信部と、を有し、
    前記制御装置はさらに、
    前記ブルームフィルタ送信部が送信した前記新たな特徴量を登録した登録後の前記第1のブルームフィルタを受け付けた場合、前記新たな特徴量を登録した登録後の前記第1のブルームフィルタに基づいて、前記記憶部が記憶するブルームフィルタを更新する更新部と、を有することを特徴とする請求項1に記載のストレージシステム。
  3. 前記第1のストレージ装置はさらに、
    前記第1のブルームフィルタに登録された特徴量の個数が所定数を超えるか否かを判断する個数判断部と、
    前記個数判断部が前記第1のブルームフィルタに登録された特徴量の個数が前記所定数を超えると判断した場合、前記第1のブルームフィルタとは異なる第2のブルームフィルタを作成する作成部と、を有し、
    前記ブルームフィルタ送信部は、
    前記作成部が作成した前記第2のブルームフィルタを前記制御装置に送信し、
    前記更新部は、
    前記ブルームフィルタ送信部が送信した前記第2のブルームフィルタを受け付けた場合、前記第2のブルームフィルタに基づいて、前記記憶部が記憶するブルームフィルタを更新することを特徴とする請求項2に記載のストレージシステム。
  4. 前記登録部は、
    前記作成部が前記第2のブルームフィルタを作成した後、前記第1のストレージ装置が記憶する第1のデータ群のいずれかのデータがアクセスされた場合、前記第2のブルームフィルタに、前記いずれかのデータの識別情報の特徴を抽出した新たな特徴量を登録し、
    前記ブルームフィルタ送信部は、
    前記登録部が前記新たな特徴量を登録した登録後の前記第2のブルームフィルタを、前記制御装置に送信し、
    前記更新部は、
    前記ブルームフィルタ送信部が送信した前記新たな特徴量を登録した登録後の前記第2のブルームフィルタを受け付けた場合、前記新たな特徴量を登録した登録後の前記第2のブルームフィルタに基づいて、前記記憶部が記憶するブルームフィルタを更新することを特徴とする請求項3に記載のストレージシステム。
  5. 前記第1のストレージ装置はさらに、
    前記第1のストレージ装置が記憶する第1のデータ群の各々のデータから、当該各々のデータのアクセス時刻と、前記作成部が前記第2のブルームフィルタを作成した時刻とに基づいて、前記第2のストレージ装置に移行する対象データを選択する第1選択部と、
    前記第1選択部が選択した前記対象データを、前記第2のストレージ装置に移行する第1移行部と、
    を有することを特徴とする請求項4に記載のストレージシステム。
  6. 前記第1のストレージ装置はさらに、
    前記作成部が前記第2のブルームフィルタを作成した時刻に基づいて、前記第1のブルームフィルタを削除するか否かを判断する削除判断部と、
    前記削除判断部が前記第1のブルームフィルタを削除すると判断し、かつ、前記第1移行部が前記対象データを前記第2のストレージ装置に移行した後、前記第1のブルームフィルタを削除する削除部と、を有し、
    前記ブルームフィルタ送信部は、
    前記削除部が前記第1のブルームフィルタを削除した場合、前記第1のブルームフィルタを削除したことを示す情報を前記制御装置に送信し、
    前記更新部は、
    前記ブルームフィルタ送信部が送信した前記第1のブルームフィルタを削除したことを示す情報を受け付けた場合、前記第1のブルームフィルタを削除したことを示す情報に基づいて、前記記憶部が記憶するブルームフィルタを更新することを特徴とする請求項5に記載のストレージシステム。
  7. 前記第2のストレージ装置は、
    前記第2のストレージ装置が記憶する第2のデータ群の各々のデータから、当該各々のデータのアクセス時刻に基づいて、前記第1のストレージ装置に移行する対象となる対象データを選択する第2選択部と、
    前記第2選択部が選択した前記対象データを前記第1のストレージ装置に移行する第2移行部と、
    を有することを特徴とする請求項2〜6のいずれか一つに記載のストレージシステム。
  8. 制御装置と接続されるストレージ装置において、
    複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第1のデータ群を記憶する記憶領域と、
    前記第1のデータ群に新たなデータが追加された場合、前記第1のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録された第1のブルームフィルタに、前記新たなデータの識別情報の特徴を抽出した新たな特徴量を登録する登録部と、
    前記登録部が前記新たな特徴量を登録した登録後の前記第1のブルームフィルタを、前記制御装置に送信するブルームフィルタ送信部と、
    を有することを特徴とするストレージ装置。
  9. 制御装置と、第1のストレージ装置と、第2のストレージ装置とを有するストレージシステムの制御方法において、
    前記制御装置が、
    複数のデータのうちのアクセス対象となる対象データの識別情報の特徴を抽出した特徴量が、前記第1のストレージ装置が記憶する前記複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第1のデータ群と、前記第2のストレージ装置が記憶する前記複数のデータのうちの前記第1のデータ群とは異なる第2のデータ群とのうち、前記第1のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタに登録されているかを判断し、
    判断した判断結果に基づいて、前記第1のストレージ装置または前記第2のストレージ装置に前記対象データのアクセス要求を送信する、
    処理を実行することを特徴とするストレージシステムの制御方法。
  10. 第1のストレージ装置と、第2のストレージ装置とに接続される制御装置に、
    複数のデータのうちのアクセス対象となる対象データの識別情報の特徴を抽出した特徴量が、前記第1のストレージ装置が記憶する前記複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第1のデータ群と、前記第2のストレージ装置が記憶する前記複数のデータのうちの前記第1のデータ群とは異なる第2のデータ群とのうち、前記第1のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタに登録されているかを判断し、
    判断した判断結果に基づいて、前記第1のストレージ装置または前記第2のストレージ装置に前記対象データのアクセス要求を送信する、
    処理を実行させることを特徴とするストレージ装置の制御プログラム。
JP2013067542A 2013-03-27 2013-03-27 ストレージシステム、ストレージ装置、ストレージシステムの制御方法、およびストレージ装置の制御プログラム Pending JP2014191651A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013067542A JP2014191651A (ja) 2013-03-27 2013-03-27 ストレージシステム、ストレージ装置、ストレージシステムの制御方法、およびストレージ装置の制御プログラム
US14/174,890 US20140297947A1 (en) 2013-03-27 2014-02-07 Storage system, storage apparatus, control method of storage system, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013067542A JP2014191651A (ja) 2013-03-27 2013-03-27 ストレージシステム、ストレージ装置、ストレージシステムの制御方法、およびストレージ装置の制御プログラム

Publications (1)

Publication Number Publication Date
JP2014191651A true JP2014191651A (ja) 2014-10-06

Family

ID=51622000

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013067542A Pending JP2014191651A (ja) 2013-03-27 2013-03-27 ストレージシステム、ストレージ装置、ストレージシステムの制御方法、およびストレージ装置の制御プログラム

Country Status (2)

Country Link
US (1) US20140297947A1 (ja)
JP (1) JP2014191651A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021092950A (ja) * 2019-12-10 2021-06-17 富士通株式会社 データ処理装置およびデータ処理プログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9947386B2 (en) * 2014-09-21 2018-04-17 Advanced Micro Devices, Inc. Thermal aware data placement and compute dispatch in a memory system
CN107968818B (zh) * 2017-11-17 2021-06-04 北京联想超融合科技有限公司 数据的存储方法、装置及服务器集群
CN109274760A (zh) * 2018-10-19 2019-01-25 西安瑜乐文化科技股份有限公司 一种移动开发冷热数据拆分方法
CN111629378B (zh) * 2020-06-05 2021-01-19 上海创蓝文化传播有限公司 一种基于布隆过滤器拦截风险短信的方法及装置
US11308058B1 (en) * 2021-01-04 2022-04-19 International Business Machines Corporation Building and using combined multi-type sub-indices to search NoSQL databases

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005539309A (ja) * 2002-09-16 2005-12-22 ティギ・コーポレイション 記憶システムアーキテクチャおよび多重キャッシュ装置
US20060206669A1 (en) * 2002-12-20 2006-09-14 Data Domain Inc. Efficient data storage system
US20120017041A1 (en) * 2010-07-19 2012-01-19 Lsi Corporation Managing extended raid caches using counting bloom filters
JP2012018549A (ja) * 2010-07-08 2012-01-26 Hitachi Ltd デジタルシーケンス特徴量算出方法及びデジタルシーケンス特徴量算出装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0612015A1 (en) * 1993-02-16 1994-08-24 International Business Machines Corporation Improved disk array system having special parity groups for data blocks with high update activity
JP2008217340A (ja) * 2007-03-02 2008-09-18 Fuji Xerox Co Ltd 文書廃棄処理システムおよびプログラム
US20130173853A1 (en) * 2011-09-26 2013-07-04 Nec Laboratories America, Inc. Memory-efficient caching methods and systems
CN103890763B (zh) * 2011-10-26 2017-09-12 国际商业机器公司 信息处理装置、数据存取方法以及计算机可读存储介质
US9846711B2 (en) * 2012-12-28 2017-12-19 Facebook, Inc. LSM cache

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005539309A (ja) * 2002-09-16 2005-12-22 ティギ・コーポレイション 記憶システムアーキテクチャおよび多重キャッシュ装置
US20060206669A1 (en) * 2002-12-20 2006-09-14 Data Domain Inc. Efficient data storage system
JP2012018549A (ja) * 2010-07-08 2012-01-26 Hitachi Ltd デジタルシーケンス特徴量算出方法及びデジタルシーケンス特徴量算出装置
US20120017041A1 (en) * 2010-07-19 2012-01-19 Lsi Corporation Managing extended raid caches using counting bloom filters

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021092950A (ja) * 2019-12-10 2021-06-17 富士通株式会社 データ処理装置およびデータ処理プログラム
JP7323804B2 (ja) 2019-12-10 2023-08-09 富士通株式会社 データ処理装置およびデータ処理プログラム

Also Published As

Publication number Publication date
US20140297947A1 (en) 2014-10-02

Similar Documents

Publication Publication Date Title
CN108021336B (zh) 用于无缝数据迁移的数据布局方法、系统和存储介质
JP2014191651A (ja) ストレージシステム、ストレージ装置、ストレージシステムの制御方法、およびストレージ装置の制御プログラム
JP5449524B2 (ja) 計算機とその処理方法および計算機システム
WO2011033582A1 (en) Storage system for eliminating duplicated data
US20130055371A1 (en) Storage control method and information processing apparatus
JP6242930B2 (ja) センサデータ管理装置、センサデータ管理方法およびプログラム
CN103782295A (zh) 分布式数据管理系统中的查询说明计划
US11042508B2 (en) Information management
US10838944B2 (en) System and method for maintaining a multi-level data structure
JP5721056B2 (ja) トランザクション処理装置、トランザクション処理方法およびトランザクション処理プログラム
JP5792325B2 (ja) 計算機システム、データ管理方法及びプログラム
US10664309B2 (en) Use of concurrent time bucket generations for scalable scheduling of operations in a computer system
WO2015162717A1 (ja) 計算機
US11681444B2 (en) Shingled magnetic disk management method for data isolation by space files, apparatus, and electronic device
JP2010160577A (ja) 検索装置及びその制御方法、並びにコンピュータプログラム
JP2022089629A (ja) データ処理システム及びキャッシュ更新制御方法
JP5472885B2 (ja) プログラム、ストリームデータ処理方法及びストリームデータ処理計算機
US11210270B2 (en) Mapping storage across storage providers
JP2016081194A (ja) 記憶情報抽出プログラム、記憶制御装置、および記憶情報抽出方法
KR20190099068A (ko) 교차 네트워크 이벤트 귀속을 제공하는 시스템 및 방법
US10795839B1 (en) Systems and methods for creating pipeline paths
JP2013114271A (ja) 計算機システムおよび計算機資源の管理方法
WO2014010016A1 (ja) プログラム、データ管理方法、および情報処理装置
JP2007213288A (ja) ネットワークシステム、データサーバー、その操作方法及びコンピュータプログラム
KR101375794B1 (ko) 데이터베이스의 성능을 향상하기 위한 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170404

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20171010