(57)【要約】【課題】負荷分散された複数のストレージ装置に対して効率的にアクセスすること。【解決手段】ストレージ装置１０２は、ストレージシステム１００が記憶する複数のデータの各々のデータのアクセス時刻に基づいて、複数のデータから選択された第１のデータ群となるホットデータを記憶する。また、ストレージ装置１０３は、複数のデータのうちのホットデータとは異なる第２のデータ群となるコールドデータを記憶する。制御装置１０１は、ホットデータの識別情報の特徴を抽出した特徴量が登録されたＢＦ１１３を記憶する。制御装置１０１は、アクセス対象となる対象データの識別情報の特徴を抽出したハッシュ値がＢＦ１１３に登録されているかを判断する。そして、制御装置１０１は、判断結果に基づいて、ストレージ装置１０２またはストレージ装置１０３に対象データのアクセス要求を送信する。【選択図】図１
2014191651.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第１のデータ群を記憶する第１のストレージ装置と、
前記複数のデータのうちの前記第１のデータ群とは異なる第２のデータ群を記憶する第２のストレージ装置と、
前記第１のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタを記憶する記憶部と、前記複数のデータのうちのアクセス対象となる対象データの識別情報の特徴を抽出した特徴量が前記ブルームフィルタに登録されているかを判断する判断部と、前記判断部が判断した判断結果に基づいて、前記第１のストレージ装置または前記第２のストレージ装置に前記対象データのアクセス要求を送信する送信部と、を有する制御装置と、
を含むことを特徴とするストレージシステム。
【請求項２】
前記第１のストレージ装置は、
前記第１のストレージ装置が記憶する第１のデータ群に新たなデータが追加された場合、前記第１のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録された第１のブルームフィルタに、前記新たなデータの識別情報の特徴を抽出した新たな特徴量を登録する登録部と、
前記登録部が前記新たな特徴量を登録した登録後の前記第１のブルームフィルタを、前記制御装置に送信するブルームフィルタ送信部と、を有し、
前記制御装置はさらに、
前記ブルームフィルタ送信部が送信した前記新たな特徴量を登録した登録後の前記第１のブルームフィルタを受け付けた場合、前記新たな特徴量を登録した登録後の前記第１のブルームフィルタに基づいて、前記記憶部が記憶するブルームフィルタを更新する更新部と、を有することを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記第１のストレージ装置はさらに、
前記第１のブルームフィルタに登録された特徴量の個数が所定数を超えるか否かを判断する個数判断部と、
前記個数判断部が前記第１のブルームフィルタに登録された特徴量の個数が前記所定数を超えると判断した場合、前記第１のブルームフィルタとは異なる第２のブルームフィルタを作成する作成部と、を有し、
前記ブルームフィルタ送信部は、
前記作成部が作成した前記第２のブルームフィルタを前記制御装置に送信し、
前記更新部は、
前記ブルームフィルタ送信部が送信した前記第２のブルームフィルタを受け付けた場合、前記第２のブルームフィルタに基づいて、前記記憶部が記憶するブルームフィルタを更新することを特徴とする請求項２に記載のストレージシステム。
【請求項４】
前記登録部は、
前記作成部が前記第２のブルームフィルタを作成した後、前記第１のストレージ装置が記憶する第１のデータ群のいずれかのデータがアクセスされた場合、前記第２のブルームフィルタに、前記いずれかのデータの識別情報の特徴を抽出した新たな特徴量を登録し、
前記ブルームフィルタ送信部は、
前記登録部が前記新たな特徴量を登録した登録後の前記第２のブルームフィルタを、前記制御装置に送信し、
前記更新部は、
前記ブルームフィルタ送信部が送信した前記新たな特徴量を登録した登録後の前記第２のブルームフィルタを受け付けた場合、前記新たな特徴量を登録した登録後の前記第２のブルームフィルタに基づいて、前記記憶部が記憶するブルームフィルタを更新することを特徴とする請求項３に記載のストレージシステム。
【請求項５】
前記第１のストレージ装置はさらに、
前記第１のストレージ装置が記憶する第１のデータ群の各々のデータから、当該各々のデータのアクセス時刻と、前記作成部が前記第２のブルームフィルタを作成した時刻とに基づいて、前記第２のストレージ装置に移行する対象データを選択する第１選択部と、
前記第１選択部が選択した前記対象データを、前記第２のストレージ装置に移行する第１移行部と、
を有することを特徴とする請求項４に記載のストレージシステム。
【請求項６】
前記第１のストレージ装置はさらに、
前記作成部が前記第２のブルームフィルタを作成した時刻に基づいて、前記第１のブルームフィルタを削除するか否かを判断する削除判断部と、
前記削除判断部が前記第１のブルームフィルタを削除すると判断し、かつ、前記第１移行部が前記対象データを前記第２のストレージ装置に移行した後、前記第１のブルームフィルタを削除する削除部と、を有し、
前記ブルームフィルタ送信部は、
前記削除部が前記第１のブルームフィルタを削除した場合、前記第１のブルームフィルタを削除したことを示す情報を前記制御装置に送信し、
前記更新部は、
前記ブルームフィルタ送信部が送信した前記第１のブルームフィルタを削除したことを示す情報を受け付けた場合、前記第１のブルームフィルタを削除したことを示す情報に基づいて、前記記憶部が記憶するブルームフィルタを更新することを特徴とする請求項５に記載のストレージシステム。
【請求項７】
前記第２のストレージ装置は、
前記第２のストレージ装置が記憶する第２のデータ群の各々のデータから、当該各々のデータのアクセス時刻に基づいて、前記第１のストレージ装置に移行する対象となる対象データを選択する第２選択部と、
前記第２選択部が選択した前記対象データを前記第１のストレージ装置に移行する第２移行部と、
を有することを特徴とする請求項２〜６のいずれか一つに記載のストレージシステム。
【請求項８】
制御装置と接続されるストレージ装置において、
複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第１のデータ群を記憶する記憶領域と、
前記第１のデータ群に新たなデータが追加された場合、前記第１のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録された第１のブルームフィルタに、前記新たなデータの識別情報の特徴を抽出した新たな特徴量を登録する登録部と、
前記登録部が前記新たな特徴量を登録した登録後の前記第１のブルームフィルタを、前記制御装置に送信するブルームフィルタ送信部と、
を有することを特徴とするストレージ装置。
【請求項９】
制御装置と、第１のストレージ装置と、第２のストレージ装置とを有するストレージシステムの制御方法において、
前記制御装置が、
複数のデータのうちのアクセス対象となる対象データの識別情報の特徴を抽出した特徴量が、前記第１のストレージ装置が記憶する前記複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第１のデータ群と、前記第２のストレージ装置が記憶する前記複数のデータのうちの前記第１のデータ群とは異なる第２のデータ群とのうち、前記第１のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタに登録されているかを判断し、
判断した判断結果に基づいて、前記第１のストレージ装置または前記第２のストレージ装置に前記対象データのアクセス要求を送信する、
処理を実行することを特徴とするストレージシステムの制御方法。
【請求項１０】
第１のストレージ装置と、第２のストレージ装置とに接続される制御装置に、
複数のデータのうちのアクセス対象となる対象データの識別情報の特徴を抽出した特徴量が、前記第１のストレージ装置が記憶する前記複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第１のデータ群と、前記第２のストレージ装置が記憶する前記複数のデータのうちの前記第１のデータ群とは異なる第２のデータ群とのうち、前記第１のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタに登録されているかを判断し、
判断した判断結果に基づいて、前記第１のストレージ装置または前記第２のストレージ装置に前記対象データのアクセス要求を送信する、
処理を実行させることを特徴とするストレージ装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、ストレージ装置、ストレージシステムの制御方法、およびストレージ装置の制御プログラムに関する。
【背景技術】
【０００２】
従来、ブルームフィルタ（Ｂｌｏｏｍ  Ｆｉｌｔｅｒ）と呼ばれるビット列のデータ構造がある。ブルームフィルタは、あるデータが既存のデータの集合に含まれるか否かを判断する際に用いられる。関連する先行技術として、たとえば、複数のブルームフィルタの同一位置のビットを集めて、同一位置ごとに集められたビット列を、ビット位置順に配列させるものがある。また、複数のストレージ装置に記憶された各ファイルへのアクセス履歴と、各ストレージの空き容量とに応じてストレージ装置間でファイルの移動やコピーを行う技術がある。さらに、複数のストレージ装置でそれぞれ形成される複数のプールの負荷状況を定期的に監視し、アクセス頻度の高いデータが集中するプールがあれば、該当のプールから他のプールにアクセス頻度の高いデータを再配置して負荷分散する技術がある。（たとえば、下記特許文献１〜３を参照。）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２３３０１４号公報
【特許文献２】特開２００６−００３９６２号公報
【特許文献３】特開２００９−２５２１０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術によれば、複数のストレージ装置を含むストレージシステムに対するアクセス要求先となる対象データが、複数のストレージ装置のいずれの装置に記憶されているか特定することが難しい。たとえば、データの格納先のストレージ装置をデータごとに管理しようとすると、管理する情報が膨大となる。
【０００５】
１つの側面では、本発明は、複数のストレージ装置に格納されたデータに対して効率的にアクセスするストレージシステム、ストレージ装置、ストレージシステムの制御方法、およびストレージ装置の制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、第１のストレージ装置と第２のストレージ装置と制御装置とにおいて、第１のストレージ装置が複数のデータの各々のデータのアクセス時刻に基づいて複数のデータから選択された第１のデータ群を記憶しており、第２のストレージ装置が複数のデータのうちの第１のデータ群とは異なる第２のデータ群を記憶しており、第１のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタを記憶する記憶部と、複数のデータのうちのアクセス対象となる対象データの識別情報の特徴を抽出した特徴量がブルームフィルタに登録されているかを判断し、判断した判断結果に基づいて、第１のストレージ装置または第２のストレージ装置に対象データのアクセス要求を送信するストレージシステム、ストレージシステムの制御方法、およびストレージ装置の制御プログラムが提案される。
【０００７】
本発明の他の側面によれば、制御装置と接続されるストレージ装置において、記憶領域が記憶する、複数のデータの各々のデータのアクセス時刻に基づいて複数のデータから選択された第１のデータ群に新たなデータが追加された場合、第１のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録された第１のブルームフィルタに、新たなデータの識別情報の特徴を抽出した新たな特徴量を登録し、新たな特徴量を登録した登録後の第１のブルームフィルタを、制御装置に送信するストレージ装置が提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、複数のストレージ装置に格納されたデータに対して効率的にアクセスするという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態にかかるストレージシステムの動作例を示す説明図である。
【図２】図２は、ストレージシステムの接続例を示す説明図である。
【図３】図３は、サーバ装置のハードウェア構成例を示すブロック図である。
【図４】図４は、クライアント装置のハードウェア構成の一例を示すブロック図である。
【図５】図５は、ストレージシステムの機能例を示すブロック図である。
【図６】図６は、データ配置テーブルの記憶内容の一例を示す説明図である。
【図７】図７は、データの配置例およびデータへのアクセス例を示す説明図である。
【図８】図８は、ＢＦの登録期間および保持期間の一例を示す説明図である。
【図９】図９は、ＢＦを用いた領域判断処理のシーケンスの一例を示す説明図である。
【図１０】図１０は、ＢＦを用いた領域判断処理のシーケンスの他の例を示す説明図である。
【図１１】図１１は、ＢＦの共有およびＢＦのマージのシーケンスの一例を示す説明図である。
【図１２】図１２は、クライアント装置におけるアクセス要求発生時の処理手順の一例を示すフローチャートである。
【図１３】図１３は、ホット領域担当サーバ装置におけるアクセス時の処理手順の一例を示すフローチャートである。
【図１４】図１４は、コールド領域担当サーバ装置におけるアクセス時の処理手順の一例を示すフローチャートである。
【図１５】図１５は、サーバ装置におけるホット領域移行判断処理手順の一例を示すフローチャートである。
【図１６】図１６は、サーバ装置におけるコールド領域移行判断処理手順の一例を示すフローチャートである。
【図１７】図１７は、ＢＦ登録処理手順の一例を示すフローチャートである。
【図１８】図１８は、ＢＦ削除処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に図面を参照して、開示のストレージシステム、ストレージ装置、ストレージシステムの制御方法、およびストレージ装置の制御プログラムの実施の形態を詳細に説明する。
【００１１】
図１は、本実施の形態にかかるストレージシステムの動作例を示す説明図である。本実施の形態にかかるストレージシステム１００は、複数のストレージ装置を有するシステムである。具体的に、ストレージシステム１００は、制御装置１０１と、第１のストレージ装置となるストレージ装置１０２と、第２のストレージ装置となるストレージ装置１０３と、を有する。ストレージシステム１００は、ストレージ装置１０２、ストレージ装置１０３の記憶領域をストレージシステム１００のユーザに提供するシステムである。ストレージシステム１００は、制御装置１０１からアクセスされる。制御装置１０１は、ストレージシステム１００のユーザが利用するパーソナル・コンピュータであってもよいし、Ｗｅｂサーバのようなサーバでもよい。たとえば、ストレージシステム１００は、ユーザが利用するファイルを記憶する。また、たとえば、ストレージシステム１００は、Ｗｅｂサーバがユーザに提供するＷｅｂコンテンツを記憶する。
【００１２】
複数のストレージ装置を有するストレージシステムは、ストレージ装置にかかるアクセス負荷が不均一となることがある。ストレージシステム全体の性能を効率的に使うためには、ストレージ装置間のアクセス負荷の偏りが解消されるようにデータの移行を行うことになる。
【００１３】
一般にストレージシステムが記憶するデータには、アクセス頻度が高いデータと、アクセス頻度が低いデータとがある。そして、複数のストレージ装置が記憶するデータ量が大きくなるにつれ、アクセス頻度が高いデータの割合が低下することが多い。
【００１４】
以下、アクセス頻度が高いデータを、「ホットデータ」と呼称する。また、アクセス頻度が低いデータを、「コールドデータ」と呼称する。さらに、ホットデータを記憶する記憶領域を、「ホット領域」と呼称する。また、コールドデータを記憶する記憶領域を、「コールド領域」と呼称する。
【００１５】
ホットデータとコールドデータの判断方法は、データのアクセス時刻に基づいて判断することができる。たとえば、現在時刻から一定期間前までにアクセスがあるデータを、ホットデータとし、現在時刻から一定期間前までにアクセスがないデータを、コールドデータとしてもよい。または、現在時刻から一定期間前までに所定の回数以上アクセスがあるデータを、ホットデータとしてもよい。
【００１６】
アクセス負荷の偏りを解消するためには、ホット領域を平準化することが求められる。しかしながら、ホット領域は時間とともに移り変わるため、複数のストレージ装置を有するストレージシステムは、ホット領域とコールド領域間でデータを移行することになる。
【００１７】
アクセス負荷の偏りを解消する方法として、たとえば、次の３つの方式がある。１つ目の方式は、ホット領域とコールド領域の分離は行わず、アクセス負荷の均等化のために、データを記憶する全領域のデータ再配置を行う方式である。
【００１８】
２つ目の方式は、ホット領域とコールド領域を分離し、アクセス負荷に応じてホット領域とコールド領域間のデータを移行する方式である。また、２つ目の方式は、アクセス負荷の均等化のために、ホット領域のデータ移行を行う。そして、２つ目の方式は、データ移行を行う際に、どのデータがホット領域またはコールド領域のいずれにあるかをデータごとに管理する。２つ目の方式は、アクセス時には、データごとに管理した情報に従って該当領域にアクセスする。
【００１９】
３つ目の方式は、ホット領域とコールド領域を分離し、アクセス負荷に応じてホット領域とコールド領域間のデータを移行する方式である。また、３つ目の方式は、アクセス負荷の均等化のために、ホット領域のデータ移行を行う。そして、３つ目の方式は、どのデータがどちらの領域にあるかをデータごとに管理しない。３つ目の方式は、アクセス時には、ホット領域またはコールド領域のいずれに存在するかがわからないため、ホット領域とコールド領域両方に対してアクセスする。
【００２０】
１つ目の方式は、全領域のデータを移動させるため、移行時に非効率なデータ移動が発生してしまう。また、２つ目の方式は、アクセス要求のたびに、データがホット領域またはコールド領域のいずれにあるかを管理する情報から検索することになるが、データ数が増大すると検索コストおよび情報保持コストが増大してしまう。３つ目の方式は、ホット領域とコールド領域の両方にアクセスを行うため、アクセス時に余計なシステム負荷がかかってしまう。
【００２１】
このように、再配置時のデータ移行を効率的に行うためには、２つ目の方式や３つ目の方式が採用するように、ホット領域とコールド領域とを分離した方がよい。しかしながら、ホット領域とコールド領域とを分離すると、システム負荷が増大してしまう。
【００２２】
そこで、本実施の形態にかかるストレージシステム１００は、ホットデータを記憶するストレージ装置１０２とコールドデータを記憶するストレージ装置１０３を有する。そして、本実施の形態にかかるストレージシステム１００は、ホットデータ名を登録したブルームフィルタ（Ｂｌｏｏｍ  Ｆｉｌｔｅｒ）にアクセス対象データ名がヒットすればストレージ装置１０２にアクセス要求を送る。これにより、ストレージシステム１００は、アクセス要求を送信する回数が抑制されて、効率的に対象データにアクセスすることができる。
【００２３】
図１に示すストレージ装置１０２は、ストレージシステム１００が記憶する複数のデータの各々のデータのアクセス時刻に基づいて、複数のデータから選択された第１のデータ群となるホットデータを記憶する。ストレージ装置１０２は、ホットデータを記憶するホット領域１１１を有する。また、図１に示すストレージ装置１０３は、複数のデータのうちのホットデータとは異なる第２のデータ群となるコールドデータを記憶する。ストレージ装置１０３は、コールドデータを記憶するコールド領域１１２を有する。
【００２４】
図１に示す制御装置１０１は、ホットデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタ１１３を記憶する。ホットデータの識別情報は、たとえば、ホットデータのデータ名や、ホットデータのアドレスである。識別情報の特徴を抽出した特徴量は、たとえば、識別情報のハッシュ値である。ハッシュ値を算出する関数としては、ＭＤ５（Ｍｅｓｓａｇｅ−Ｄｉｇｅｓｔ  ５）、ＳＨＡ（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ）−１、ＳＨＡ−２５６等がある。以下の説明では、特徴量がハッシュ値であるとして説明を行う。また、データの識別情報として、データ名を用いることとする。
【００２５】
ブルームフィルタは、ビットがＯＮの時、陽性または偽陽性を示し、ＯＦＦの時は陰性を示す。なお、ビットの値が１をＯＮとし、０をＯＦＦとしてもよく、逆に、ビットの値が０をＯＮとし、１をＯＦＦとしてもよい。本実施の形態では、ビットの値が１をＯＮとし、０をＯＦＦとする。また、ブルームフィルタを、以下、単に「ＢＦ」と呼称する。
【００２６】
制御装置１０１は、ストレージシステム１００が記憶するデータへのアクセス要求の発行を検出した場合、アクセス対象となる対象データの識別情報の特徴を抽出したハッシュ値がＢＦ１１３に登録されているかを判断する。アクセス要求は、制御装置１０１上で動作するアプリや、制御装置１０１に接続された他の装置によって、発行される。
【００２７】
制御装置１０１は、判断結果に基づいて、ストレージ装置１０２またはストレージ装置１０３に対象データのアクセス要求を送信する。たとえば、ハッシュ値がＢＦ１１３に登録されていれば、制御装置１０１は、ストレージ装置１０２に対象データのアクセス要求を送信する。一方、ハッシュ値がＢＦ１１３に登録されていなければ、制御装置１０１は、ストレージ装置１０３に対象データのアクセス要求を送信する。次に、ストレージシステム１００を、クライアント装置とサーバ装置とに適用した例を、図２に示す。
【００２８】
図２は、ストレージシステムの接続例を示す説明図である。ストレージシステム２００は、サーバ装置＃Ａ、＃Ｂ、＃Ｃ、…、＃Ｘ、＃Ｙ、＃Ｚと、クライアント装置＃ａ、＃ｂ、…とを有する。サーバ装置＃Ａ、＃Ｂ、＃Ｃ、…、＃Ｘ、＃Ｙ、＃Ｚは、図１に示すストレージ装置１０２、ストレージ装置１０３に相当する。また、クライアント装置＃ａ、＃ｂ、…は、図１に示す制御装置１０１に相当する。サーバ装置＃Ａ、＃Ｂ、＃Ｃ、…、＃Ｘ、＃Ｙ、＃Ｚは、アクセス負荷の分散のため、あるデータの範囲に対するホット領域を有し、他のあるデータの範囲に対するコールド領域を有する。サーバ装置＃Ａ、＃Ｂ、＃Ｃ、…、＃Ｘ、＃Ｙ、＃Ｚが記憶するデータについては、図６、図７にて後述する。
【００２９】
また、ホット領域を有するサーバ装置を、「ホット領域担当サーバ装置」と呼称する。ホット領域担当サーバ装置は、図１に示すストレージ装置１０２に相当する。同様に、コールド領域を有するサーバ装置を、「コールド領域担当サーバ装置」と呼称する。コールド領域担当サーバ装置は、図１に示すストレージ装置１０３に相当する。
【００３０】
サーバ装置＃Ａ、＃Ｂ、＃Ｃ、…、＃Ｘ、＃Ｙ、＃Ｚと、クライアント装置＃ａ、＃ｂ、…、は、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのネットワーク２０１によってそれぞれ接続される。
【００３１】
クライアント装置＃ａ、＃ｂ、…、は、ストレージシステム２００を利用するユーザによって操作されるコンピュータである。また、サーバ装置＃Ａ、＃Ｂ、＃Ｃ、…、＃Ｘ、＃Ｙ、＃Ｚは、各サーバ装置が有するストレージをクライアント装置＃ａ、＃ｂ、…、に提供するコンピュータである。たとえば、クライアント装置＃ａ、＃ｂ、…、は、Ｗｅｂブラウザ等といったアプリケーションソフトウェアを使用してサーバ装置＃Ａ、＃Ｂ、＃Ｃ、…、＃Ｘ、＃Ｙ、＃Ｚに接続する。以下、アプリケーションソフトウェアを、「アプリ」と呼称する。
【００３２】
（サーバ装置のハードウェア）
図３は、サーバ装置のハードウェア構成例を示すブロック図である。図３では、サーバ装置＃Ａのハードウェア構成例を説明する。図２に示したサーバ装置＃Ｂ〜サーバ装置＃Ｚも、サーバ装置＃Ａと同様のハードウェアを有する。図３において、サーバ装置＃Ａは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）３０１と、Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）３０２と、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲＡＭ）３０３と、を含む。また、サーバ装置＃Ａは、ディスクドライブ３０４およびディスク３０５と、通信インターフェース３０６と、を含む。また、ＣＰＵ３０１〜通信インターフェース３０６はバス３０７によってそれぞれ接続される。
【００３３】
ＣＰＵ３０１は、サーバ装置＃Ａの全体の制御を司る演算処理装置である。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される揮発性メモリである。
【００３４】
ディスクドライブ３０４は、ＣＰＵ３０１の制御に従ってディスク３０５に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ３０４には、たとえば、磁気ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク３０５は、ディスクドライブ３０４の制御で書き込まれたデータを記憶する不揮発性メモリである。たとえばディスクドライブ３０４が磁気ディスクドライブである場合、ディスク３０５には、磁気ディスクを採用することができる。また、ディスクドライブ３０４がソリッドステートドライブである場合、ディスク３０５には、半導体素子メモリを採用することができる。
【００３５】
通信インターフェース３０６は、ネットワーク２０１と内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース３０６は、通信回線を通じてネットワーク２０１を介して他の装置に接続される。通信インターフェース３０６には、たとえば、モデムやＬＡＮアダプタなどを採用することができる。また、サーバ装置＃Ａは、光ディスクドライブ、光ディスク、キーボード、マウスを有していてもよい。
【００３６】
（クライアント装置のハードウェア）
図４は、クライアント装置のハードウェア構成の一例を示すブロック図である。図４において、クライアント装置＃ａは、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、を含む。また、クライアント装置＃ａは、ディスクドライブ４０４と、ディスク４０５と、通信インターフェース４０６と、を含む。また、クライアント装置＃ａは、ディスプレイ４０７と、キーボード４０８と、マウス４０９とを含む。また、ＣＰＵ４０１〜マウス４０９はバス４１０によってそれぞれ接続される。
【００３７】
ＣＰＵ４０１は、クライアント装置＃ａの全体の制御を司る演算処理装置である。ＲＯＭ４０２は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。ＲＡＭ４０３は、ＣＰＵ４０１のワークエリアとして使用される揮発性メモリである。
【００３８】
ディスクドライブ４０４は、ＣＰＵ４０１の制御に従ってディスク４０５に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ４０４には、たとえば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク４０５は、ディスクドライブ４０４の制御で書き込まれたデータを記憶する不揮発性メモリである。たとえばディスクドライブ４０４が磁気ディスクドライブである場合、ディスク４０５には、磁気ディスクを採用することができる。また、ディスクドライブ４０４が光ディスクドライブである場合、ディスク４０５には、光ディスクを採用することができる。また、ディスクドライブ４０４がソリッドステートドライブである場合、ディスク４０５には、半導体素子メモリを採用することができる。
【００３９】
通信インターフェース４０６は、ネットワーク２０１と内部のインターフェースを司り、外部装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース４０６は、通信回線を通じてネットワーク２０１に接続され、ネットワーク２０１を介して他の装置に接続される。通信インターフェース４０６には、たとえば、モデムやＬＡＮアダプタなどを採用することができる。
【００４０】
ディスプレイ４０７は、マウスカーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する装置である。ディスプレイ４０７には、たとえば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＴＦＴ（Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ）液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４１】
キーボード４０８は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う装置である。また、キーボード４０８は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス４０９は、マウスカーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う装置である。マウス４０９は、ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
【００４２】
（ストレージシステム２００の機能）
次に、ストレージシステム２００の機能について説明する。図５は、ストレージシステムの機能例を示すブロック図である。ストレージシステム２００は、記憶部５０１と、判断部５０２と、送信部５０３と、更新部５０４とを含む。さらに、ストレージシステム２００は、登録部５１１と、個数判断部５１２と、作成部５１３と、ＢＦ送信部５１４と、第１選択部５１５と、第１移行部５１６と、削除判断部５１７と、削除部５１８と、第２選択部５２１と、第２移行部５２２とを含む。
【００４３】
判断部５０２〜更新部５０４は、クライアント装置＃ａが有する機能である。他のクライアント装置となるクライアント装置＃ｂ、…も、判断部５０２〜更新部５０４を有する。制御部となる判断部５０２〜更新部５０４は、記憶装置に記憶されたプログラムをＣＰＵ４０１が実行することにより、判断部５０２〜更新部５０４の機能を実現する。記憶装置とは、具体的には、たとえば、図４に示したＲＯＭ４０２、ＲＡＭ４０３、ディスク４０５などである。また、クライアント装置＃ａは、記憶部５０１にアクセス可能である。記憶部５０１は、ＲＡＭ４０３、ディスク４０５といった記憶装置に格納される。
【００４４】
登録部５１１〜削除部５１８は、サーバ装置のうちのホット領域を有するサーバ装置＃Ａが有する機能である。ホット領域を有する他のサーバ装置も、登録部５１１〜削除部５１８を有する。第２選択部５２１、第２移行部５２２は、サーバ装置のうちのコールド領域を有するサーバ装置＃Ｂが有する機能である。コールド領域を有する他のサーバ装置も、第２選択部５２１、第２移行部５２２を有する。制御部となる登録部５１１〜第２移行部５２２は、記憶装置に記憶されたプログラムをＣＰＵ３０１が実行することにより、登録部５１１〜第２移行部５２２の機能を実現する。記憶装置とは、具体的には、たとえば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、ディスク３０５などである。
【００４５】
記憶部５０１は、ホットデータの各々のデータのデータ名のハッシュ値が登録されたＢＦ１１３を記憶する。判断部５０２は、複数のデータのうちのアクセス対象となる対象データのデータ名のハッシュ値がＢＦ１１３に登録されているかを判断する。なお、判断結果は、ＲＡＭ４０３、ディスク４０５などの記憶領域に記憶される。
【００４６】
送信部５０３は、判断部５０２が判断した判断結果に基づいて、ホット領域担当サーバ装置またはコールド領域担当サーバ装置に対象データのアクセス要求を送信する。具体的に、送信部５０３は、判断部５０２が、ＢＦ１１３に対象データのデータ名のハッシュ値が登録されていると判断した場合、ホット領域担当サーバ装置に対象データのアクセス要求を送信してもよい。一方、送信部５０３は、判断部５０２が、ＢＦ１１３に対象データのデータ名のハッシュ値が登録されていないと判断した場合、コールド領域担当サーバ装置に対象データのアクセス要求を送信してもよい。
【００４７】
また、送信部５０３がホット領域担当サーバ装置に対象データのアクセス要求を送信した結果、対象データが存在しないことを示す応答をホット領域担当サーバ装置から受け付けたとする。この場合、送信部５０３は、コールド領域担当サーバ装置に対象データのアクセス要求を送信してもよい。
【００４８】
また、送信部５０３がコールド領域担当サーバ装置に対象データのアクセス要求を送信した結果、対象データが存在しないことを示す応答をコールド領域担当サーバ装置から受け付けたとする。この場合、送信部５０３は、対象データが書込対象となるデータであれば、対象データに基づいて、ホット領域担当サーバ装置またはコールド領域担当サーバ装置に対象データのアクセス要求を送信してもよい。
【００４９】
更新部５０４は、ＢＦ送信部５１４が送信した新たなハッシュ値を登録した登録後の第１のＢＦを受け付けた場合、新たなハッシュ値を登録した登録後の第１のＢＦに基づいて、ＢＦ１１３を更新する。具体的な更新例として、更新部５０４は、第１のＢＦの内容でＢＦ１１３に上書きする。
【００５０】
また、更新部５０４は、ＢＦ送信部５１４が送信した第２のＢＦを受け付けた場合、第２のＢＦに基づいて、記憶部５０１が記憶するＢＦを更新してもよい。具体的な更新例として、更新部５０４は、第２のＢＦを記憶部５０１に格納する。
【００５１】
また、更新部５０４は、ＢＦ送信部５１４が送信した新たなハッシュ値を登録した登録後の第２のＢＦを受け付けた場合、新たなハッシュ値を登録した登録後の第２のＢＦに基づいて、記憶部５０１が記憶するＢＦを更新してもよい。具体的な更新例として、更新部５０４は、登録後の第２のＢＦを記憶部５０１に格納する。
【００５２】
また、更新部５０４は、ＢＦ送信部５１４が送信した第１のＢＦを削除したことを示す情報を受け付けた場合、第１のＢＦを削除したことを示す情報に基づいて、記憶部５０１が記憶するＢＦを更新してもよい。具体的な更新例として、更新部５０４は、記憶部５０１に記憶された第１のＢＦを削除する。
【００５３】
登録部５１１は、ホット領域担当サーバ装置が記憶するホットデータに新たなデータが追加された場合、ホットデータの各々のデータのデータ名のハッシュ値が登録された第１のＢＦに、新たなデータのデータ名の新たなハッシュ値を登録する。
【００５４】
また、登録部５１１は、作成部５１３が第２のＢＦを作成した後、ホット領域担当サーバ装置が記憶するホットデータのいずれかのデータがアクセスされた場合、第２のＢＦに、いずれかのデータの識別情報の特徴を抽出した新たなハッシュ値を登録してもよい。
【００５５】
また、登録部５１１は、作成部５１３が第２のＢＦを作成した後、ホット領域担当サーバ装置が記憶するホットデータに新たなデータが追加された場合、第２のＢＦに、新たなデータの識別情報の特徴を抽出した新たなハッシュ値を登録してもよい。ＢＦにハッシュ値を登録する処理については、図８にて後述する。
【００５６】
個数判断部５１２は、第１のＢＦに登録されたハッシュ値の個数が所定数を超えるか否かを判断する。具体的な所定数の設定例については、図８にて後述する。個数判断部５１２は、ＲＡＭ３０３、ディスク３０５などの記憶領域に記憶される。
【００５７】
作成部５１３は、個数判断部５１２が第１のＢＦに登録されたハッシュ値の個数が所定数を超えると判断した場合、第１のＢＦとは異なる第２のＢＦを作成する。作成された第２のＢＦは、ＲＡＭ３０３、ディスク３０５などの記憶領域に記憶される。
【００５８】
ＢＦ送信部５１４は、登録部５１１が新たなハッシュ値を登録した登録後の第１のＢＦを、クライアント装置＃ａに送信する。また、ＢＦ送信部５１４は、作成部５１３が作成した第２のＢＦをクライアント装置＃ａに送信してもよい。また、ＢＦ送信部５１４は、登録部５１１が新たなハッシュ値を登録した登録後の第２のＢＦを、クライアント装置＃ａに送信してもよい。また、ＢＦ送信部５１４は、削除部５１８が第１のＢＦを削除した場合、第１のＢＦを削除したことを示す情報を送信してもよい。ＢＦの送信については、図９、図１０にて後述する。
【００５９】
第１選択部５１５は、ホット領域１１１が記憶するホットデータの各々のデータから、各々のデータのアクセス時刻と、作成部５１３が第２のＢＦを作成した時刻とに基づいて、コールド領域担当サーバ装置に移行する対象データを選択する。
【００６０】
たとえば、第１選択部５１５は、各々のデータのアクセス時刻が、作成部５１３が第２のＢＦを作成した時刻より古いデータを選択する。また、第１選択部５１５は、各々のデータのアクセス時刻が、作成部５１３が第２のＢＦを作成した時刻と所定の期間を足した時刻より古いデータを選択してもよい。所定の期間は、第１のＢＦを保持する期間となる。以下、所定の期間を保持期間とする。
【００６１】
また、第１選択部５１５は、現在時刻から保持期間を引いた時刻から現在時刻までの、アクセス回数が所定の回数未満となるデータを選択してもよい。なお、選択されたデータの識別情報が、ＲＡＭ３０３、ディスク３０５などの記憶領域に記憶される。
【００６２】
第１移行部５１６は、第１選択部５１５が選択した対象データを、コールド領域担当サーバ装置に移行する。
【００６３】
削除判断部５１７は、作成部５１３が第２のＢＦを作成した時刻に基づいて、第１のＢＦを削除するか否かを判断する。たとえば、削除判断部５１７は、作成部５１３が第２のＢＦを作成した時刻に保持期間を足した時刻が、現在時刻より古ければ、第１のＢＦを削除すると判断する。また、たとえば、削除判断部５１７は、作成部５１３が第２のＢＦを作成した時刻が一日前であれば、第１のＢＦを削除すると判断してもよい。判断結果は、ＲＡＭ３０３、ディスク３０５などの記憶領域に記憶される。
【００６４】
削除部５１８は、削除判断部５１７が第１のＢＦを削除すると判断し、かつ、第１移行部５１６が対象データをコールド領域担当サーバ装置に移行した後、第１のＢＦを削除する。
【００６５】
第２選択部５２１は、コールド領域１１２が記憶するコールドデータの各々のデータから、各々のデータのアクセス時刻に基づいて、ホット領域担当サーバ装置に移行する対象となる対象データを選択する。
【００６６】
たとえば、第２選択部５２１は、各々のデータのアクセス時刻が、現在時刻から保持期間を引いた時刻より新しいデータを選択する。また、第２選択部５２１は、現在時刻から保持期間を引いた時刻から現在時刻までの、アクセス回数が所定の回数以上となるデータを選択してもよい。なお、選択されたデータの識別情報が、ＲＡＭ３０３、ディスク３０５などの記憶領域に記憶される。
【００６７】
第２移行部５２２は、第２選択部５２１が選択した対象データをホット領域担当サーバ装置に移行する。
【００６８】
図６は、データ配置テーブルの記憶内容の一例を示す説明図である。データ配置テーブル６０１は、データが配置されたサーバ装置を特定するテーブルである。図６に示すデータ配置テーブル６０１は、レコード６０１−１〜レコード６０１−６を有する。
【００６９】
データ配置テーブル６０１は、スロット番号、データのハッシュ値範囲、ホット領域担当サーバ装置、コールド領域担当サーバ装置、ＢＦ群、各ＢＦの保持完了時刻という６つのフィールドを含む。さらに、ホット領域担当サーバ装置フィールドと、コールド領域担当サーバ装置フィールドとは、１ｓｔ、２ｎｄ、３ｒｄのサブフィールドを有する。
【００７０】
また、データ配置テーブル６０１の各フィールドのうちの、ハッチを付与した各ＢＦの保持完了時刻フィールドは、ホット領域担当サーバ装置が有する。一方、データ配置テーブル６０１の各フィールドのハッチを付与していないフィールドは、ホット領域担当サーバ装置と、コールド領域担当サーバ装置と、クライアント装置とが共有する。なお、ＢＦ群フィールドは、ホット領域担当サーバ装置と、クライアント装置とが共有する。
【００７１】
スロット番号フィールドには、分散用ハッシュ関数の結果となるハッシュ値が取り得る値の範囲を分割した際の識別番号が格納される。以下、ハッシュ値が取り得る値の範囲を、「ハッシュ空間」と呼称する。また、ハッシュ空間を分割した１つのブロックを「スロット」と呼称する。スロットの識別番号を、「スロット番号」と呼称する。
【００７２】
データのハッシュ値範囲フィールドには、ハッシュ空間のうちの、該当のスロット番号に対応するハッシュ値の範囲が格納される。ホット領域担当サーバ装置フィールドには、該当のスロット番号に対応するデータのうちのホットデータが格納されたサーバ装置の識別情報が格納される。コールド領域担当サーバ装置フィールドには、該当のスロット番号に対応するデータのうちのコールドデータが格納されたサーバ装置の識別情報が格納される。ホット領域担当サーバ装置フィールドの１ｓｔ、２ｎｄ、３ｒｄの各サブフィールドには、ホットデータを記憶するサーバ装置の識別情報がそれぞれ格納される。同様に、コールド領域担当サーバ装置フィールドの１ｓｔ、２ｎｄ、３ｒｄの各サブフィールドには、コールドデータを記憶するサーバ装置の識別情報がそれぞれ格納される。
【００７３】
ＢＦ群フィールドには、該当のスロット番号に対応するデータがホットデータであるかコールドデータであるかを判断するＢＦ群が格納される。ＢＦ群は、ＢＦ１１３に相当する。各ＢＦの保持完了時刻フィールドには、ＢＦ群の保持期間が完了する時刻が格納される。
【００７４】
たとえば、レコード６０１−１は、ハッシュ空間内のスロット番号“０”に対応するデータのうちの、ホットデータがサーバ装置＃Ａ、＃Ｃ、＃Ｘに記憶され、コールドデータがサーバ装置＃Ｂ、＃Ｙ、＃Ｚに記憶されることを示す。
【００７５】
図７は、データの配置例およびデータへのアクセス例を示す説明図である。図７では、クライアント装置＃ａが実行するアプリによって、データへのアクセス要求が発行されたとする。本実施の形態にかかるストレージシステム２００は、データを３重化して配置する。たとえば、スロット番号αのホットデータは、サーバ装置＃Ａ、＃Ｃ、＃Ｘに３重化して保持される。また、スロット番号αのコールドデータは、サーバ装置＃Ｂ、＃Ｙ、＃Ｚに３重化して保持される。
【００７６】
図７に示す（１）の処理において、クライアント装置＃ａは、アクセス対象となるデータ７０１のデータ名を分散用ハッシュ関数に与えて、ハッシュ値を得る。そして、クライアント装置＃ａは、データ配置テーブル６０１を参照して、ハッシュ値に対応するスロット番号αを取得する。
【００７７】
次に、図７に示す（２）の処理において、クライアント装置＃ａは、データ７０１のデータ名をＢＦ用ハッシュ関数群に与えて、ハッシュ値群を得る。そして、クライアント装置＃ａは、ハッシュ値群が、データ配置テーブル６０１のＢＦ群のいずれかにヒットしたか否かを判断する。
【００７８】
ヒットしたと判断した場合、クライアント装置＃ａは、データ７０１がホットデータであると判断して、データ配置テーブル６０１のホット領域担当サーバ装置フィールドを参照して、ホット領域担当サーバ装置のいずれかにアクセスする。たとえば、図７の例では、クライアント装置＃ａは、サーバ装置＃Ａ、＃Ｃ、＃Ｘのいずれかにアクセスする。アクセスがあったサーバ装置は、データ７０１にアクセスする。ここで、ＢＦは、偽陽性が起こり得るため、アクセスがあったサーバ装置は、データ７０１を検出できない場合がある。検出できない場合、アクセスがあったサーバ装置は、検出できなかった旨をクライアント装置＃ａに送信する。
【００７９】
データ７０１を検出できない場合、または、ヒットしないと判断した場合、データ７０１がコールドデータであると判断して、データ配置テーブル６０１のコールド領域担当サーバ装置フィールドを参照して、コールド領域担当サーバ装置のいずれかにアクセスする。図７の例では、クライアント装置＃ａは、サーバ装置＃Ｂ、＃Ｙ、＃Ｚのいずれかにアクセスする。
【００８０】
図８は、ＢＦの登録期間および保持期間の一例を示す説明図である。図８の（ａ）では、データ配置テーブル６０１のレコード６０１−１に登録されたＢＦ群について、ＢＦが取り得る２つの状態となる登録期間および保持期間について説明する。
【００８１】
サーバ装置は、ＢＦを作成する。サーバ装置は、作成したＢＦを、登録期間の状態にあるＢＦであると設定する。さらに、サーバ装置は、各スロットの時間軸に沿って複数のＢＦを作成する。サーバ装置は、ホット領域にデータが加わると、データをＢＦ用ハッシュ関数群に与えたハッシュ値群を、登録期間の状態にあるＢＦに登録する。ホット領域にデータが加わる契機としては、新しくデータが生成される場合、または、コールド領域からホット領域に、データが移動される場合である。
【００８２】
サーバ装置は、ＢＦに登録されたデータ数が所定数を超えたと判断した場合、該当ＢＦの状態を保持期間へと移行する。ここで、所定数は、ＢＦの偽陽性判定確率に応じてストレージシステム２００の設計者等により設定される数である。偽陽性判定確率とは、データがコールド領域にあるにも関わらず、ホット領域にあると判定してしまう確率である。偽陽性判定確率は、下記（１）式により算出できる。
【００８３】
【数１】
2014191651.tif 000003
【００８４】
ただし、ｋは、ＢＦ用ハッシュ関数群の個数を示す。ｍは、ＢＦのビット量を示す。ｎは、ＢＦに登録されたｎを示す。たとえば、ｋ＝３であり、ＢＦのビット量が２．８４Ｍビットである場合に、偽陽性判定確率を０．００１以下としたい場合、所定数は、１０００００個となる。
【００８５】
そして、サーバ装置は、新たなＢＦを作成し、新しいＢＦの状態を登録期間に設定する。サーバ装置は、保持期間に設定されたＢＦを、保持期間として設定された時間分保持する。サーバ装置は、保持期間に設定されたＢＦに対して新たにデータを登録しないが、アクセス要求があった際に、保持期間に設定されたＢＦをアクセス要求があったデータがホット領域にあるか否かのチェックに用いる。図８の（ａ）では、ＢＦの状態が登録期間にある期間を、ハッチを付与することにより示す。
【００８６】
図８の（ａ）の例では、サーバ装置は、時刻ｔ0にてＢＦ１を作成し、ＢＦ１の状態を登録期間に設定する。そして、時刻ｔ1にてＢＦ１に登録されたデータ数が所定数を超えたと判断した場合、サーバ装置は、ＢＦ２を作成し、ＢＦ１の状態を保持期間に設定するとともに、ＢＦ２の状態を登録期間に設定する。
【００８７】
同様に、時刻ｔ2にてＢＦ２に登録されたデータ数が所定数を超えたと判断した場合、サーバ装置は、ＢＦ３を作成し、ＢＦ２の状態を保持期間に設定するとともに、ＢＦ３の状態を登録期間に設定する。
【００８８】
また、時刻ｔ3にてＢＦ１の保持期間が終了したと判断した場合、サーバ装置は、ＢＦ１を削除する。また、時刻ｔ3にてＢＦ３に登録されたデータ数が所定数を超えたと判断した場合、サーバ装置は、ＢＦ４を作成し、ＢＦ３の状態を保持期間に設定するとともに、ＢＦ４の状態を登録期間に設定する。
【００８９】
たとえば、仮にＢＦ１でヒットしていたものの、ＢＦ２およびＢＦ３ではヒットしないデータがあるとする。該当のデータは、時刻ｔ1から、保持期間が経過した時刻ｔ3までアクセスされていないことを意味する。ここで、図８の（ａ）に示す時刻ｔ４にて、該当のデータは、ＢＦ２、ＢＦ２、およびＢＦ４でヒットせず、コールド領域に移動されていることになる。
【００９０】
図８の（ｂ）では、現在時刻が時刻ｔ4における、ホットデータとコールドデータの状態を示す。ホット領域担当サーバ装置は、自装置が記憶するデータのうち、データのアクセス時刻＋保持期間が、時刻ｔ４より古いデータを、コールド領域担当サーバ装置に移行する。図８の（ｂ）の例では、ホット領域担当サーバ装置は、アクセス時刻がｔより古いデータを、コールド領域担当サーバ装置に移行する。また、コールド領域担当サーバ装置は、自装置が記憶するデータのうち、データのアクセス時刻＋保持期間が、時刻ｔ４より新しいデータを、ホット領域担当サーバ装置に移行する。図８の（ｂ）の例では、コールド領域担当サーバ装置は、アクセス時刻がｔより新しいデータを、ホット領域担当サーバ装置に移行する。
【００９１】
図８の（ａ）と図８の（ｂ）とが示すように、削除されたＢＦ１に登録されていたデータは、コールドデータとして、コールド領域担当サーバ装置に移行されていることがわかる。なお、アクセス時刻がｔ1からｔまでの間になるデータは、コールドデータとなり、コールド領域担当サーバ装置に移行されている。アクセス時刻がｔ1からｔまでの間になるデータに対するアクセス要求が発生した場合、クライアント装置＃ａは、自装置が記憶するＢＦ２を参照して、一旦ホット領域担当サーバ装置にアクセス要求を送信することになる。この場合、データが存在しないため、クライアント装置＃ａは、コールド領域担当サーバにアクセス要求を送信することになる。このように、ストレージシステム２００は、アクセス要求が多く送信されることになるが、目的のデータに対するアクセス要求を正常に処理することができる。
【００９２】
次に、図９および図１０を用いて、データ名がａｂｃとなるデータａｂｃについて、ホット領域にある場合のシーケンスと、コールド領域にある場合のシーケンスとを示す。図９および図１０において、データａｂｃを分散用ハッシュ関数に与えた場合のハッシュ値の範囲はレコード６０１−１が示す０以上１０未満になり、スロット番号が“０”となるとする。さらに、クライアント装置＃ａは、データａｂｃがホットデータであればサーバ装置＃Ａにアクセスし、データａｂｃがコールドデータであればサーバ装置＃Ｂにアクセスするものとする。
【００９３】
図９は、ＢＦを用いた領域判断処理のシーケンスの一例を示す説明図である。図９に示すシーケンスは、データａｂｃがホット領域にある場合のクライアント装置＃ａとサーバ装置＃Ａとが実行する処理の順序を示す。
【００９４】
クライアント装置＃ａは、クライアント装置＃ａ上で動作するアプリによって、データａｂｃを作成する（ステップＳ９０１）。次に、クライアント装置＃ａは、データａｂｃがホット領域にあるかコールド領域にあるかを判断する。そして、クライアント装置＃ａは、データａｂｃがホット領域およびコールド領域になく、データａｂｃをホットデータに書き込むべきであると判断して、データａｂｃの書込要求をサーバ装置＃Ａに送信する（ステップＳ９０２）。サーバ装置＃Ａは、データａｂｃを記憶するとともに、スロット番号“０”であるレコード６０１−１のＢＦ群のうち、状態が登録期間にあるＢＦ１に、データａｂｃをＢＦ用ハッシュ関数群に与えて得たハッシュ値群を登録する（ステップＳ９０３）。図９の例では、サーバ装置＃Ａは、ＢＦ用ハッシュ関数群から得られたハッシュ値１とハッシュ値２とをＢＦ１に登録する。
【００９５】
続けて、サーバ装置＃Ａは、登録期間にあるＢＦ１をクライアント装置＃ａに送信することにより、ＢＦ１をクライアント装置＃ａと共有する（ステップＳ９０４）。さらに、サーバ装置＃Ａは、登録期間にあるＢＦ１を、サーバ装置＃Ｃ、＃Ｘと共有する。
【００９６】
次に、クライアント装置＃ａは、クライアント装置＃ａ上で動作するアプリが発行した、データａｂｃのアクセス要求として、データａｂｃの読出要求を検出する（ステップＳ９０５）。続けて、クライアント装置＃ａは、データａｂｃをＢＦ用ハッシュ関数群に与えて得たハッシュ値群が、共有されているＢＦ群のいずれかにヒットしたか否かを判断する（ステップＳ９０６）。図９の例では、クライアント装置＃ａは、ハッシュ値群のビット全てがＢＦ１でＯＮとなっており、ヒットしたと判断したため、データａｂｃがホットデータであると判断して、サーバ装置＃Ａにデータａｂｃの読出要求を送信する（ステップＳ９０７）。読出要求を受け付けたサーバ装置＃Ａは、データａｂｃを読み出して、読み出したデータをクライアント装置＃ａに送信する（ステップＳ９０８）。
【００９７】
図１０は、ＢＦを用いた領域判断処理のシーケンスの他の例を示す説明図である。図１０に示すシーケンスは、データａｂｃがコールド領域にある場合のクライアント装置＃ａとサーバ装置＃Ａとサーバ装置＃Ｂとが実行する処理の順序を示す。また、図１０で示すステップＳ１００１〜ステップＳ１００４の処理は、図９に示すステップＳ９０１〜ステップＳ９０４と同一の処理であるため、説明を省略する。
【００９８】
ステップＳ１００４の処理終了後、データａｂｃのアクセス時刻＋保持時刻が、現在時刻よりも古い場合、サーバ装置＃Ａは、データａｂｃをサーバ装置＃Ａからサーバ装置＃Ｂに移行する（ステップＳ１００５）。そして、サーバ装置＃Ａは、ＢＦ１を削除して、ＢＦ４を作成する（ステップＳ１００６）。次に、サーバ装置＃Ａは、登録期間にあるＢＦ４をクライアント装置＃ａに送信することにより、ＢＦ４をクライアント装置＃ａと共有する（ステップＳ１００７）。さらに、サーバ装置＃Ａは、登録期間にあるＢＦ４を、サーバ装置＃Ｃ、＃Ｘと共有する。
【００９９】
続けて、クライアント装置＃ａ上で動作するアプリが発行した、データａｂｃのアクセス要求として、データａｂｃの読出要求を検出する（ステップＳ１００８）。続けて、クライアント装置＃ａは、データａｂｃをＢＦ用ハッシュ関数群に与えて得たハッシュ値群が、共有されているＢＦ群のいずれかにヒットしたか否かを判断する（ステップＳ１００９）。図１０の例では、クライアント装置＃ａは、ハッシュ値群のビットの一部がＢＦ４でＯＦＦとなっており、ヒットしないと判断したため、データａｂｃがコールドデータであると判断して、サーバ装置＃Ｂにデータａｂｃの読出要求を送信する（ステップＳ１０１０）。読出要求を受け付けたサーバ装置＃Ｂは、データａｂｃを読み出して、読み出したデータをクライアント装置＃ａに送信する（ステップＳ１０１１）。次に、ＢＦの共有について、図１１を用いて説明する。
【０１００】
図１１は、ＢＦの共有およびＢＦのマージのシーケンスの一例を示す説明図である。図１１では、図９のステップＳ９０４と、図１０のステップＳ１００４とステップＳ１００７とで示した、ＢＦの共有についてと、具体的な共有手順となるＢＦのマージについての処理の順序を示す。図１１において、スロット番号“０”を例に挙げて説明する。また、図１１に示すシーケンスは、図８に示した時刻ｔ２以降について示す。サーバ装置＃Ａ、＃Ｃ、＃Ｘは、状態が保持期間であるＢＦ１とＢＦ２とを有し、状態が登録期間であるＢＦ３を有する。
【０１０１】
ＢＦを共有するのは、スロット番号“０”のホット領域担当サーバ装置と、クライアント装置とである。サーバ装置＃Ａ、＃Ｃ、＃Ｘのいずれかが、状態が登録期間となるＢＦ３を更新する。そして、定期的に、サーバ装置＃Ａ、＃Ｃ、＃Ｘは、自装置のＢＦ３を、他装置に送信する（ステップＳ１１０１）。他装置のＢＦ３を受信したサーバ装置＃Ａ、＃Ｃ、＃Ｘは、ＢＦのマージとして、他装置のＢＦ３と自装置のＢＦ３とのＯＲ演算を算出し、自装置のＢＦ３とする。ＢＦの偽陽性は、ＯＲ演算を行ったＢＦでも成り立つ。
【０１０２】
図１１では、模擬的に、ＢＦ３を８ビットで表現する。そして、マージ前のサーバ装置＃ＡのＢＦ３は、最下位ビットを０番目のビットとすると、６番目のビットと４番目のビットとがＯＮである。また、マージ前のサーバ装置＃ＣのＢＦ３は、６番目のビットと３番目のビットとがＯＮである。さらに、マージ前のサーバ装置＃ＸのＢＦ３は、４番目のビットと０番目のビットとがＯＮである。この状態で、ＢＦのマージを行うと、サーバ装置＃Ａ、＃Ｃ、＃ＸのＢＦ３は、６番目のビットと４番目のビットと３番目のビットと０番目のビットとがＯＮとなる。
【０１０３】
また、クライアント装置＃ａは、定期的、または何らかのイベントを契機に、データ配置テーブル６０１の送信要求を、サーバ装置＃Ａ、＃Ｃ、＃Ｘのいずれかに送信する（ステップＳ１１０２）。図１１の例では、クライアント装置＃ａは、データ配置テーブル６０１の送信要求を、サーバ装置＃Ａに送信する。また、何らかのイベントは、たとえば、クライアント装置＃ａがＢＦにヒットしたのに、対象データが存在しなかった場合である。
【０１０４】
データ配置テーブル６０１の送信要求を受信したサーバ装置＃Ａは、データ配置テーブル６０１を送信する（ステップＳ１１０３）。なお、データ配置テーブル６０１のフィールドのうち、サーバ装置＃Ａが送信するフィールドは、図６にてハッチを付与していないフィールドとなる。データ配置テーブル６０１を受け付けたクライアント装置＃ａは、受け付けたデータ配置テーブル６０１のＢＦ群を用いて、自装置が有するＢＦを更新する。具体的に、クライアント装置＃ａは、受け付けたデータ配置テーブル６０１のＢＦ群をそのまま自装置が有するＢＦに上書きする。
【０１０５】
そして、ＢＦ３に登録されたデータ数が所定数を超えた時刻ｔ３にて、サーバ装置＃Ａ、＃Ｃ、＃Ｘは、同期を取って、新たなＢＦとして、ＢＦ４を作成する。次に、図１２〜図１８を用いて、ストレージシステム２００の各装置が実行するフローチャートについて説明する。
【０１０６】
図１２は、クライアント装置におけるアクセス要求発生時の処理手順の一例を示すフローチャートである。クライアント装置におけるアクセス要求発生時の処理は、アクセス要求が発生した際に、クライアント装置が実行する処理である。また、アクセス要求が発生する場合とは、たとえば、クライアント装置が実行するアプリが、アクセス要求を発行した場合である。図１２では、実行主体がクライアント装置＃ａである場合を例にして説明する。
【０１０７】
クライアント装置＃ａは、アクセス要求の対象データ名と、分散用ハッシュ関数とから、対象データが所属するスロット番号を取得する（ステップＳ１２０１）。次に、クライアント装置＃ａは、対象データ名と、ＢＦ用ハッシュ関数群とから、取得したスロット番号のＢＦ群をチェックする（ステップＳ１２０２）。続けて、クライアント装置＃ａは、データ配置テーブル６０１の該当のスロット番号に対応するＢＦ群のいずれかのＢＦにヒットしたか否かを判断する（ステップＳ１２０３）。
【０１０８】
いずれかのＢＦにヒットした場合（ステップＳ１２０３：Ｙｅｓ）、クライアント装置＃ａは、ホット領域担当サーバ装置のいずれかにアクセス要求を送信する（ステップＳ１２０４）。アクセス要求を送信後、クライアント装置＃ａは、アクセス要求を送信したサーバ装置から、アクセス要求の応答があるまで待機する。
【０１０９】
アクセス要求の応答を受け付けた後、クライアント装置＃ａは、アクセス要求を送信したサーバ装置に対象データが存在したか否かを判断する（ステップＳ１２０５）。アクセス要求を送信したサーバ装置に対象データが存在した場合（ステップＳ１２０５：Ｙｅｓ）、クライアント装置＃ａは、クライアント装置におけるアクセス要求発生時の処理を終了する。
【０１１０】
いずれのＢＦにもヒットしない場合（ステップＳ１２０３：Ｎｏ）、または、偽陽性によりアクセス要求を送信したサーバ装置に対象データが存在しない場合（ステップＳ１２０５：Ｎｏ）、クライアント装置＃ａは、コールド領域担当サーバ装置のいずれかにアクセス要求を送信する（ステップＳ１２０６）。アクセス要求を送信後、クライアント装置＃ａは、アクセス要求を送信したサーバ装置から、アクセス要求の応答があるまで待機する。
【０１１１】
アクセス要求の応答を受け付けた後、クライアント装置＃ａは、アクセス要求を送信したサーバ装置に対象データが存在したか否かを判断する（ステップＳ１２０７）。アクセス要求を送信したサーバ装置に対象データが存在した場合（ステップＳ１２０７：Ｙｅｓ）、クライアント装置＃ａは、クライアント装置におけるアクセス要求発生時の処理を終了する。
【０１１２】
アクセス要求を送信したサーバ装置に対象データが存在しない場合（ステップＳ１２０７：Ｎｏ）、クライアント装置＃ａは、続けて、アクセス要求の種類を確認する（ステップＳ１２０８）。アクセス要求の種類が読出要求である場合（ステップＳ１２０８：読出要求）、クライアント装置＃ａは、クライアント装置におけるアクセス要求発生時の処理を終了する。
【０１１３】
アクセス要求の種類が書込要求である場合（ステップＳ１２０８：書込要求）、新規のデータを書き込むことになるため、クライアント装置＃ａは、対象データに基づいて、ホット領域担当サーバ装置またはコールド領域担当サーバ装置に、新規書込要求としてアクセス要求を送信する（ステップＳ１２０９）。ステップＳ１２０９の処理において、ホット領域担当サーバ装置にアクセス要求を送信する場合、後述する図１７のＢＦ登録処理を実行する契機の一つとなる。
【０１１４】
ホット領域担当サーバ装置またはコールド領域担当サーバ装置のいずれにアクセス要求を送信するかの方針については、たとえば、クライアント装置が、対象データのアクセス頻度が低いと判断できる場合、コールド領域担当サーバ装置に送信するとしてもよい。たとえば、クライアント装置＃ａは、クライアント装置＃ａのユーザ、またはストレージシステム２００を利用するソフトウェアの開発者等により、アクセス頻度が低いとされるデータ名を予め登録しておく。そして、クライアント装置＃ａは、ステップＳ１２０８の処理を行う際に、対象データ名が、予め登録されたデータ名と一致すれば、コールド領域担当サーバ装置にアクセス要求を送信し、一致しなければホット領域担当サーバ装置にアクセス要求を送信する。
【０１１５】
また、クライアント装置＃ａは、予め登録されたデータ名の代わりに、アクセス頻度が低いとされるファイル名に付与される識別子を登録しておいてもよいし、ファイルの冒頭付近に埋め込まれたファイル形式の識別子を登録しておいてもよい。そして、クライアント装置＃ａは、対象データの識別子と、予め登録された識別子と一致すれば、コールド領域担当サーバ装置にアクセス要求を送信してもよい。
【０１１６】
また、ストレージシステム２００が新規書込要求をコールド領域担当サーバ装置に送信する方針を採用した場合、コールド領域担当サーバ装置は、ステップＳ１２０６の時点で新規書込要求に対する書き込みを行ってもよい。
【０１１７】
ステップＳ１２０９の処理終了後、クライアント装置＃ａは、クライアント装置におけるアクセス要求発生時の処理を終了する。クライアント装置におけるアクセス要求発生時の処理を実行することにより、ストレージシステム２００は、アクセス要求が発生した際に、アクセス要求に対する結果を得ることができる。また、ストレージシステム２００は、ＢＦ群にヒットして陽性であるか、またはＢＦ群にヒットしなければ、ホット領域担当サーバ装置またはコールド領域担当サーバ装置のいずれか一方のみにアクセス要求を送信するため、アクセス時の負荷を抑制できる。
【０１１８】
図１３は、ホット領域担当サーバ装置におけるアクセス時の処理手順の一例を示すフローチャートである。ホット領域担当サーバ装置におけるアクセス時の処理は、アクセス要求がクライアント装置から送信された際に、ホット領域担当サーバ装置が実行する処理である。図１３では、実行主体がサーバ装置＃Ａである場合を例にして説明する。
【０１１９】
サーバ装置＃Ａは、アクセス要求が新規書込要求か否かを判断する（ステップＳ１３０１）。アクセス要求が新規書込要求でない場合（ステップＳ１３０１：Ｎｏ）、サーバ装置＃Ａは、アクセス対象データが存在するか否かを判断する（ステップＳ１３０２）。アクセス対象データが存在する場合（ステップＳ１３０２：Ｙｅｓ）、またはアクセス要求が新規書込要求である場合（ステップＳ１３０１：Ｙｅｓ）、サーバ装置＃Ａは、アクセス要求の対象データに対してＢＦ登録処理を実行する（ステップＳ１３０３）。ＢＦ登録処理の詳細は、図１７にて後述する。
【０１２０】
サーバ装置＃Ａは、アクセス要求に応じた処理を実行する（ステップＳ１３０４）。たとえば、アクセス要求が書込要求であれば、サーバ装置＃Ａは、対象データを上書きする。また、アクセス要求が新規書込要求であれば、サーバ装置＃Ａは、対象データを新規に作成する。さらに、アクセス要求が読出要求であれば、サーバ装置＃Ａは、対象データを読み出す。
【０１２１】
ステップＳ１３０４の処理終了後、サーバ装置＃Ａは、アクセス対象データのアクセス時刻を更新する（ステップＳ１３０５）。次に、サーバ装置＃Ａは、アクセス要求が正常に処理されたこと示す応答をクライアント装置に送信する（ステップＳ１３０６）。アクセス対象データが存在しない場合（ステップＳ１３０２：Ｎｏ）、サーバ装置＃Ａは、アクセス対象データが存在しないこと示す応答をクライアント装置に送信する（ステップＳ１３０７）。
【０１２２】
ステップＳ１３０６またはステップＳ１３０７の処理終了後、サーバ装置＃Ａは、ホット領域担当サーバ装置におけるアクセス時の処理を終了する。ホット領域担当サーバ装置におけるアクセス時の処理を実行することにより、ストレージシステム２００は、ホットデータにアクセスすることができる。
【０１２３】
図１４は、コールド領域担当サーバ装置におけるアクセス時の処理手順の一例を示すフローチャートである。コールド領域担当サーバ装置におけるアクセス時の処理は、アクセス要求がクライアント装置から送信された際に、コールド領域担当サーバ装置が実行する処理である。図１４では、実行主体がサーバ装置＃Ｂである場合を例にして説明する。
【０１２４】
また、図１４に示す各ステップのうち、ステップＳ１４０１：ＹｅｓまたはステップＳ１４０２：Ｙｅｓとなる場合以外のステップは、ステップＳ１３０１、ステップＳ１３０２、ステップＳ１３０４〜ステップＳ１３０７と同一の処理のため、説明を省略する。ステップＳ１４０１：ＹｅｓまたはステップＳ１４０２：Ｙｅｓとなる場合、サーバ装置＃Ｂは、ステップＳ１４０３の処理を実行する。コールド領域担当サーバ装置におけるアクセス時の処理を実行することにより、ストレージシステム２００は、コールドデータにアクセスすることができる。
【０１２５】
図１５は、サーバ装置におけるホット領域移行判断処理手順の一例を示すフローチャートである。サーバ装置におけるホット領域移行判断処理は、ホット領域にあるデータごとに、コールド領域に移行すべきか否かを判断して、移行すべきデータをコールド領域に移行する処理である。図１５では、実行主体がサーバ装置＃Ａである場合を例にして説明する。
【０１２６】
サーバ装置＃Ａは、先頭のデータを選択する（ステップＳ１５０１）。次に、サーバ装置＃Ａは、選択したデータのアクセス時刻＋保持期間が、現在時刻より古いか否かを判断する（ステップＳ１５０２）。選択したデータのアクセス時刻＋保持期間が、現在時刻より古い場合（ステップＳ１５０２：Ｙｅｓ）、サーバ装置＃Ａは、選択したデータをコールド領域担当サーバ装置に移行する（ステップＳ１５０３）。
【０１２７】
ステップＳ１５０３の処理終了後、または選択したデータのアクセス時刻＋保持期間が、現在時刻より古くない場合（ステップＳ１５０２：Ｎｏ）、サーバ装置＃Ａは、全てのデータを選択したか否かを判断する（ステップＳ１５０４）。まだ選択していないデータがある場合（ステップＳ１５０４：Ｎｏ）、サーバ装置＃Ａは、次のデータを選択する（ステップＳ１５０５）。そして、サーバ装置＃Ａは、ステップＳ１５０２の処理に移行する。
【０１２８】
全てのデータを選択した場合（ステップＳ１５０４：Ｙｅｓ）、サーバ装置＃Ａは、サーバ装置におけるホット領域移行判断処理を終了する。なお、サーバ装置＃Ａは、ステップＳ１５０２：Ｙｅｓとなったデータを記憶しておき、ステップＳ１５０４：Ｙｅｓとなった後、ステップＳ１５０２：Ｙｅｓとなったデータを一括して移行してもよい。
【０１２９】
サーバ装置におけるホット領域移行判断処理を実行することにより、ストレージシステム２００は、アクセス頻度が低くなり、コールド領域に移行すべきデータを、コールド領域に移行することができる。
【０１３０】
図１６は、サーバ装置におけるコールド領域移行判断処理手順の一例を示すフローチャートである。サーバ装置におけるコールド領域移行判断処理は、コールド領域にあるデータごとに、ホット領域に移行すべきか否かを判断して、移行すべきデータをホット領域に移行する処理である。図１６では、実行主体がサーバ装置＃Ｂである場合を例にして説明する。
【０１３１】
サーバ装置＃Ｂは、先頭のデータを選択する（ステップＳ１６０１）。次に、サーバ装置＃Ｂは、選択したデータのアクセス時刻＋保持期間が、現在時刻より新しいか否かを判断する（ステップＳ１６０２）。選択したデータのアクセス時刻＋保持期間が、現在時刻より新しい場合（ステップＳ１６０２：Ｙｅｓ）、サーバ装置＃Ｂは、選択したデータをホット領域担当サーバ装置に移行する（ステップＳ１６０３）。なお、選択したデータがホット領域担当サーバ装置に移行されることにより、ホット領域担当サーバ装置は、図１７に示すＢＦ登録処理を実行する。
【０１３２】
ステップＳ１６０３の処理終了後、または選択したデータのアクセス時刻＋保持期間が、現在時刻より新しくない場合（ステップＳ１６０２：Ｎｏ）、サーバ装置＃Ｂは、全てのデータを選択したか否かを判断する（ステップＳ１６０４）。選択していないデータがある場合（ステップＳ１６０４：Ｎｏ）、サーバ装置＃Ｂは、次のデータを選択する（ステップＳ１６０５）。そして、サーバ装置＃Ｂは、ステップＳ１６０２の処理に移行する。
【０１３３】
全てのデータを選択した場合（ステップＳ１６０４：Ｙｅｓ）、サーバ装置＃Ｂは、サーバ装置におけるコールド領域移行判断処理を終了する。サーバ装置におけるコールド領域移行判断処理を実行することにより、ストレージシステム２００は、アクセス頻度が高くなり、ホット領域に移行すべきデータを、ホット領域に移行することができる。
【０１３４】
図１７は、ＢＦ登録処理手順の一例を示すフローチャートである。ＢＦ登録処理は、ホット領域に追加されたデータのデータ名、またはホット領域に属するデータのうちアクセスされたデータのデータ名をＢＦに登録する処理である。図１７では、実行主体がサーバ装置＃Ａである場合を例にして説明する。
【０１３５】
サーバ装置＃Ａは、状態が登録期間であるＢＦに、対象データのハッシュ値群を登録する（ステップＳ１７０１）。次に、サーバ装置＃Ａは、状態が登録期間であるＢＦに登録された個数が所定数を超えたか否かを判断する（ステップＳ１７０２）。状態が登録期間であるＢＦに登録された個数が所定数を超えた場合（ステップＳ１７０２：Ｙｅｓ）、サーバ装置＃Ａは、新たなＢＦを作成する（ステップＳ１７０３）。次に、サーバ装置＃Ａは、作成したＢＦの状態を、登録期間に設定する（ステップＳ１７０４）。続けて、サーバ装置＃Ａは、今まで登録期間に設定されていたＢＦの状態を、保持期間に設定する（ステップＳ１７０５）。次に、サーバ装置＃Ａは、状態を保持期間に設定したＢＦの保持完了時刻を、新たなＢＦを作成した時刻＋保持期間に設定する（ステップＳ１７０６）。
【０１３６】
ステップＳ１７０６の処理終了後、または状態が登録期間であるＢＦに登録された個数が所定数を超えない場合（ステップＳ１７０２：Ｎｏ）、サーバ装置＃Ａは、ＢＦ登録処理を終了する。ＢＦ登録処理を実行することにより、ストレージシステム２００は、アクセス頻度が高いデータを、最新のＢＦに登録することができる。
【０１３７】
図１８は、ＢＦ削除処理手順の一例を示すフローチャートである。ＢＦ削除処理は、最も古いＢＦを削除する処理である。図１８では、実行主体がサーバ装置＃Ａである場合を例にして説明する。また、ＢＦ削除処理が実行される契機としては、あるスロットに対するＢＦが２つ以上あるときであれば、どの契機で実行されてもよい。たとえば、ＢＦ削除処理は、保持期間ごとに実行されてもよい。
【０１３８】
サーバ装置＃Ａは、ＢＦ群のうちの保持完了時刻が最も古いＢＦの保持完了時刻が、現在時刻より古いか否かを判断する（ステップＳ１８０１）。最も古いＢＦの保持完了時刻が、現在時刻より古い場合（ステップＳ１８０１：Ｙｅｓ）、サーバ装置＃Ａは、続けて、最も古いＢＦの保持完了時刻より、アクセス時刻＋保持期間が古いデータがあるか否かを判断する（ステップＳ１８０２）。最も古いＢＦの保持完了時刻より、アクセス時刻＋保持期間が古いデータがない場合（ステップＳ１８０２：Ｎｏ）、サーバ装置＃Ａは、最も古いＢＦを削除する（ステップＳ１８０３）。ステップＳ１８０３の処理終了後、サーバ装置＃Ａは、ＢＦ削除処理を終了する。
【０１３９】
最も古いＢＦの保持完了時刻が、現在時刻より古くない場合（ステップＳ１８０１：Ｎｏ）、または最も古いＢＦの保持完了時刻より、アクセス時刻＋保持期間が古いデータがある場合（ステップＳ１８０２：Ｙｅｓ）、サーバ装置＃Ａは、ＢＦ削除処理を終了する。ＢＦ削除処理を実行することにより、ストレージシステム２００は、アクセス頻度が低くなり、既にコールド領域に移行済のデータが登録されていたＢＦを削除するため、ヒット率を向上することができる。
【０１４０】
以上説明したように、ストレージシステム２００によれば、ホットデータを記憶するストレージ装置１０２とコールドデータを記憶するストレージ装置１０３とのうち、ホットデータ名を登録したＢＦに応じてアクセス要求を送る。これにより、ストレージシステム２００は、アクセス要求を送信する回数が抑制されて、効率的に対象データにアクセスすることができる。
【０１４１】
また、ストレージシステム２００によれば、ホットデータを、ＢＦで管理することにより、ホット領域のデータごとに管理しなくてよいため、管理にかかる負荷を抑制することができる。また、ホットデータの個数は、コールドデータの個数より少なくなることが多いため、ストレージシステム２００は、コールドデータをＢＦで管理する場合に比べ、ＢＦにかかるデータ量を少なくすることができる。
【０１４２】
また、ストレージシステム２００によれば、ホット領域に追加されたデータ名のハッシュ値が登録されたＢＦを、クライアント装置に送信してもよい。これにより、ストレージシステム２００は、クライアント装置が送信する追加されたデータに対するアクセス要求が、ホット領域担当サーバのみに送信されるため、ストレージシステム２００にかかるアクセス負荷を抑制することができる。
【０１４３】
また、ストレージシステム２００によれば、サーバ装置のＢＦに登録されたハッシュ値が所定数を超えた際に作成された新たなＢＦを、クライアント装置に送信してもよい。これにより、ストレージシステム２００は、クライアント装置が送信する新たなＢＦに登録されたデータに対するアクセス要求が、ホット領域担当サーバのみに送信されるため、ストレージシステム２００にかかるアクセス負荷を抑制することができる。
【０１４４】
また、ストレージシステム２００によれば、ホット領域のデータ群に追加されたデータ名のハッシュ値が登録された新たなＢＦを、クライアント装置に送信してもよい。これにより、クライアント装置が送信する新たなＢＦに登録されたデータに対するアクセス要求が、ホット領域担当サーバのみに送信される。したがって、ストレージシステム２００は、ストレージシステム２００にかかるアクセス負荷を抑制することができる。
【０１４５】
また、ストレージシステム２００によれば、ホット領域のデータ群のうちのアクセスされたデータ名のハッシュ値が登録された新たなＢＦを、クライアント装置に送信してもよい。これにより、クライアント装置が送信する新たなＢＦに登録されたアクセス頻度の高いデータに対するアクセス要求が、ホット領域担当サーバのみに送信される。したがって、ストレージシステム２００は、ストレージシステム２００にかかるアクセス負荷を抑えることができる。
【０１４６】
また、ストレージシステム２００によれば、ホット領域が記憶するホットデータの各々のデータのうち、各々のデータのアクセス時刻と、新たなＢＦを作成した時刻とに基づいて、コールド領域担当サーバ装置に移行してもよい。これにより、ストレージシステム２００は、アクセス頻度が低くなり、ホット領域担当サーバが記憶するＢＦのうちの古いＢＦにのみ登録されているはずのデータを移行することができる。
【０１４７】
また、ストレージシステム２００によれば、ホット領域の各々のデータのアクセス時刻と新たなＢＦを作成した時刻とに基づき選択したデータがコールド領域担当サーバに移行されていれば、古いＢＦを削除し、削除したことをクライアント装置に送信してもよい。これにより、クライアント装置は、既にコールド領域担当サーバに移行したデータのアクセス要求をコールド領域担当サーバに送信するため、ストレージシステム２００にかかるアクセス負荷を抑えることができる。また、ストレージシステム２００は、ＢＦに登録されていないにも関わらずデータがホット領域に存在するという、クライアント装置がデータにアクセスできなくなってしまう状態を避けることができる。
【０１４８】
また、ストレージシステム２００によれば、コールド領域が記憶するコールドデータの各々のデータのうち、各々のデータのアクセス時刻に基づいて、ホット領域担当サーバ装置に移行してもよい。これにより、ストレージシステム２００は、コールドデータのうちのアクセス頻度が高くなったデータを移行することができる。
【０１４９】
また、ストレージシステム２００によれば、クライアント装置が記憶するＢＦに対象データのデータ名のハッシュ値が登録されていれば、ホット領域担当サーバ装置にアクセス要求を送信してもよい。これにより、ストレージシステム２００は、アクセス要求が送信される回数を抑制できるため、ストレージシステム２００にかかるアクセス負荷を抑制することができる。
【０１５０】
また、ストレージシステム２００によれば、クライアント装置が記憶するＢＦに対象データのデータ名のハッシュ値が登録されていなければ、コールド領域担当サーバ装置にアクセス要求を送信してもよい。これにより、ストレージシステム２００は、アクセス要求が送信される回数を抑制できるため、ストレージシステム２００にかかるアクセス負荷を抑制することができる。
【０１５１】
また、ストレージシステム２００によれば、ホット領域担当サーバ装置にアクセス要求を送信した結果、対象データが存在しないことを示す応答を受け付けた場合、コールド領域担当サーバ装置にアクセス要求を送信してもよい。これにより、ストレージシステム２００は、偽陽性であった場合でも、アクセス要求を正しく処理することができる。
【０１５２】
また、コールド領域担当サーバ装置にアクセス要求を送信して、対象データが存在しないことを示す応答を受け付けたとする。このとき、ストレージシステム２００によれば、アクセス要求が書込要求であれば、ホット領域担当サーバ装置またはコールド領域担当サーバ装置に新規書込要求を送信してもよい。これにより、ストレージシステム２００は、新規書込要求を正しく処理することができる。
【０１５３】
なお、本実施の形態で説明したストレージシステムの制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。ストレージプログラムやストレージシステムの制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またストレージプログラムやストレージシステムの制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１５４】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１５５】
（付記１）複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第１のデータ群を記憶する第１のストレージ装置と、
前記複数のデータのうちの前記第１のデータ群とは異なる第２のデータ群を記憶する第２のストレージ装置と、
前記第１のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタを記憶する記憶部と、前記複数のデータのうちのアクセス対象となる対象データの識別情報の特徴を抽出した特徴量が前記ブルームフィルタに登録されているかを判断する判断部と、前記判断部が判断した判断結果に基づいて、前記第１のストレージ装置または前記第２のストレージ装置に前記対象データのアクセス要求を送信する送信部と、を有する制御装置と、
を含むことを特徴とするストレージシステム。
【０１５６】
（付記２）前記第１のストレージ装置は、
前記第１のストレージ装置が記憶する第１のデータ群に新たなデータが追加された場合、前記第１のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録された第１のブルームフィルタに、前記新たなデータの識別情報の特徴を抽出した新たな特徴量を登録する登録部と、
前記登録部が前記新たな特徴量を登録した登録後の前記第１のブルームフィルタを、前記制御装置に送信するブルームフィルタ送信部と、を有し、
前記制御装置はさらに、
前記ブルームフィルタ送信部が送信した前記新たな特徴量を登録した登録後の前記第１のブルームフィルタを受け付けた場合、前記新たな特徴量を登録した登録後の前記第１のブルームフィルタに基づいて、前記記憶部が記憶するブルームフィルタを更新する更新部と、を有することを特徴とする付記１に記載のストレージシステム。
【０１５７】
（付記３）前記第１のストレージ装置はさらに、
前記第１のブルームフィルタに登録された特徴量の個数が所定数を超えるか否かを判断する個数判断部と、
前記個数判断部が前記第１のブルームフィルタに登録された特徴量の個数が前記所定数を超えると判断した場合、前記第１のブルームフィルタとは異なる第２のブルームフィルタを作成する作成部と、を有し、
前記ブルームフィルタ送信部は、
前記作成部が作成した前記第２のブルームフィルタを前記制御装置に送信し、
前記更新部は、
前記ブルームフィルタ送信部が送信した前記第２のブルームフィルタを受け付けた場合、前記第２のブルームフィルタに基づいて、前記記憶部が記憶するブルームフィルタを更新することを特徴とする付記２に記載のストレージシステム。
【０１５８】
（付記４）前記登録部は、
前記作成部が前記第２のブルームフィルタを作成した後、前記第１のストレージ装置が記憶する第１のデータ群のいずれかのデータがアクセスされた場合、前記第２のブルームフィルタに、前記いずれかのデータの識別情報の特徴を抽出した新たな特徴量を登録し、
前記ブルームフィルタ送信部は、
前記登録部が前記新たな特徴量を登録した登録後の前記第２のブルームフィルタを、前記制御装置に送信し、
前記更新部は、
前記ブルームフィルタ送信部が送信した前記新たな特徴量を登録した登録後の前記第２のブルームフィルタを受け付けた場合、前記新たな特徴量を登録した登録後の前記第２のブルームフィルタに基づいて、前記記憶部が記憶するブルームフィルタを更新することを特徴とする付記３に記載のストレージシステム。
【０１５９】
（付記５）前記登録部は、
前記作成部が前記第２のブルームフィルタを作成した後、前記第１のストレージ装置が記憶する第１のデータ群に新たなデータが追加された場合、前記第２のブルームフィルタに、前記新たなデータの識別情報の特徴を抽出した新たな特徴量を登録し、
前記ブルームフィルタ送信部は、
前記登録部が前記新たな特徴量を登録した登録後の前記第２のブルームフィルタを、前記制御装置に送信し、
前記更新部は、
前記ブルームフィルタ送信部が送信した前記新たな特徴量を登録した登録後の前記第２のブルームフィルタを受け付けた場合、前記新たな特徴量を登録した登録後の前記第２のブルームフィルタに基づいて、前記記憶部が記憶するブルームフィルタを更新することを特徴とする付記３に記載のストレージシステム。
【０１６０】
（付記６）前記第１のストレージ装置はさらに、
前記第１のストレージ装置が記憶する第１のデータ群の各々のデータから、当該各々のデータのアクセス時刻と、前記作成部が前記第２のブルームフィルタを作成した時刻とに基づいて、前記第２のストレージ装置に移行する対象データを選択する第１選択部と、
前記第１選択部が選択した前記対象データを、前記第２のストレージ装置に移行する第１移行部と、
を有することを特徴とする付記４または５に記載のストレージシステム。
【０１６１】
（付記７）前記第１のストレージ装置はさらに、
前記作成部が前記第２のブルームフィルタを作成した時刻に基づいて、前記第１のブルームフィルタを削除するか否かを判断する削除判断部と、
前記削除判断部が前記第１のブルームフィルタを削除すると判断し、かつ、前記第１移行部が前記対象データを前記第２のストレージ装置に移行した後、前記第１のブルームフィルタを削除する削除部と、を有し、
前記ブルームフィルタ送信部は、
前記削除部が前記第１のブルームフィルタを削除した場合、前記第１のブルームフィルタを削除したことを示す情報を前記制御装置に送信し、
前記更新部は、
前記ブルームフィルタ送信部が送信した前記第１のブルームフィルタを削除したことを示す情報を受け付けた場合、前記第１のブルームフィルタを削除したことを示す情報に基づいて、前記記憶部が記憶するブルームフィルタを更新することを特徴とする付記６に記載のストレージシステム。
【０１６２】
（付記８）前記第２のストレージ装置は、
前記第２のストレージ装置が記憶する第２のデータ群の各々のデータから、当該各々のデータのアクセス時刻に基づいて、前記第１のストレージ装置に移行する対象となる対象データを選択する第２選択部と、
前記第２選択部が選択した前記対象データを前記第１のストレージ装置に移行する第２移行部と、
を有することを特徴とする付記２〜７のいずれか一つに記載のストレージシステム。
【０１６３】
（付記９）前記送信部は、
前記判断部が、前記記憶部が記憶するブルームフィルタに前記対象データの識別情報の特徴を抽出した特徴量が登録されていると判断した場合、前記第１のストレージ装置に前記対象データのアクセス要求を送信することを特徴とする付記１〜８のいずれか一つに記載のストレージシステム。
【０１６４】
（付記１０）前記送信部は、
前記送信部が前記第１のストレージ装置に前記対象データのアクセス要求を送信した結果、前記対象データが存在しないことを示す応答を前記第１のストレージ装置から受け付けた場合、前記第２のストレージ装置に前記対象データのアクセス要求を送信することを特徴とする付記９に記載のストレージシステム。
【０１６５】
（付記１１）前記送信部は、
前記判断部が、前記記憶部が記憶するブルームフィルタに前記対象データの識別情報の特徴を抽出した特徴量が登録されていないと判断した場合、前記第２のストレージ装置に前記対象データのアクセス要求を送信することを特徴とする付記１〜８のいずれか一つに記載のストレージシステム。
【０１６６】
（付記１２）第１のストレージ装置と、第２のストレージ装置とに接続される制御装置において、
複数のデータのうちのアクセス対象となる対象データの識別情報の特徴を抽出した特徴量が、前記第１のストレージ装置が記憶する前記複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第１のデータ群と、前記第２のストレージ装置が記憶する前記複数のデータのうちの前記第１のデータ群とは異なる第２のデータ群とのうち、前記第１のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタに登録されているかを判断する判断部と、
前記判断部が判断した判断結果に基づいて、前記第１のストレージ装置または前記第２のストレージ装置に前記対象データのアクセス要求を送信する送信部と、
を有することを特徴とする制御装置。
【０１６７】
（付記１３）制御装置と接続されるストレージ装置において、
複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第１のデータ群を記憶する記憶領域と、
前記第１のデータ群に新たなデータが追加された場合、前記第１のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録された第１のブルームフィルタに、前記新たなデータの識別情報の特徴を抽出した新たな特徴量を登録する登録部と、
前記登録部が前記新たな特徴量を登録した登録後の前記第１のブルームフィルタを、前記制御装置に送信するブルームフィルタ送信部と、
を有することを特徴とするストレージ装置。
【０１６８】
（付記１４）制御装置と、第１のストレージ装置と、第２のストレージ装置とを有するストレージシステムの制御方法において、
前記制御装置が、
複数のデータのうちのアクセス対象となる対象データの識別情報の特徴を抽出した特徴量が、前記第１のストレージ装置が記憶する前記複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第１のデータ群と、前記第２のストレージ装置が記憶する前記複数のデータのうちの前記第１のデータ群とは異なる第２のデータ群とのうち、前記第１のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタに登録されているかを判断し、
判断した判断結果に基づいて、前記第１のストレージ装置または前記第２のストレージ装置に前記対象データのアクセス要求を送信する、
処理を実行することを特徴とするストレージシステムの制御方法。
【０１６９】
（付記１５）制御装置と接続されるストレージ装置に、
記憶装置に記憶された複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第１のデータ群に新たなデータが追加された場合、前記第１のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録された第１のブルームフィルタに、前記新たなデータの識別情報の特徴を抽出した新たな特徴量を登録し、
前記新たな特徴量を登録した登録後の前記第１のブルームフィルタを、前記制御装置に送信する、
処理を実行させることを特徴とするストレージプログラム。
【０１７０】
（付記１６）第１のストレージ装置と、第２のストレージ装置と接続される制御装置に、
複数のデータのうちのアクセス対象となる対象データの識別情報の特徴を抽出した特徴量が、前記第１のストレージ装置が記憶する前記複数のデータの各々のデータのアクセス時刻に基づいて前記複数のデータから選択された第１のデータ群と、前記第２のストレージ装置が記憶する前記複数のデータのうちの前記第１のデータ群とは異なる第２のデータ群とのうち、前記第１のデータ群の各々のデータの識別情報の特徴を抽出した特徴量が登録されたブルームフィルタに登録されているかを判断し、
判断した判断結果に基づいて、前記第１のストレージ装置または前記第２のストレージ装置に前記対象データのアクセス要求を送信する、
処理を実行させることを特徴とするストレージ装置の制御プログラム。
【符号の説明】
【０１７１】
１００、２００  ストレージシステム
１０１  制御装置
１０２、１０３  ストレージ装置
５０１  記憶部
５０２  判断部
５０３  送信部
５０４  更新部
５１１  登録部
５１２  個数判断部
５１３  作成部
５１４  ＢＦ送信部
５１５  第１選択部
５１６  第１移行部
５１７  削除判断部
５１８  削除部
５２１  第２選択部
５２２  第２移行部
【図１】
2014191651.tif 000004
【図２】
2014191651.tif 000005
【図３】
2014191651.tif 000006
【図４】
2014191651.tif 000007
【図５】
2014191651.tif 000008
【図６】
2014191651.tif 000009
【図７】
2014191651.tif 000010
【図８】
2014191651.tif 000011
【図９】
2014191651.tif 000012
【図１０】
2014191651.tif 000013
【図１１】
2014191651.tif 000014
【図１２】
2014191651.tif 000015
【図１３】
2014191651.tif 000016
【図１４】
2014191651.tif 000017
【図１５】
2014191651.tif 000018
【図１６】
2014191651.tif 000019
【図１７】
2014191651.tif 000020
【図１８】
2014191651.tif 000021