説明

ストレージ制御装置、ストレージシステム、ストレージ制御方法及びそのためのプログラム

【課題】 重複排除ストレージにおける省電力が不十分である。
【解決手段】 入力データブロックの重複判定を行う重複判定部と、非重複データブロックを保持するバッファと、判定結果とバッファの容量とバッファの現在の使用容量とに基づいて、非重複データの今後の発生状況の予測に対応する予測情報を算出する非重複データ増加予測部と、予測情報の出力の有無と予測情報とに基づいてストレージ装置の運転モードを決定するモード制御部とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ制御装置、ストレージシステム、ストレージ制御方法及びそのためのプログラムに関し、特にストレージ装置、ストレージシステムの省電力化に係るストレージ制御装置、ストレージシステム、ストレージ制御方法及びそのためのプログラムに関する。
【背景技術】
【0002】
ストレージ装置、ストレージシステムの省電力化についてさまざまな関連技術が知られている。
【0003】
例えば、特許文献1は、用途種別や容量増加傾向の情報に基づいて必要なストレージ容量を算出し、余剰の記憶容量分を削減可能とする、ストレージ装置を管理する計算機及び方法を開示している。このように特許文献1は、一般的なストレージシステムにおける省電力化の技術を開示している。
【0004】
このような一般的なストレージシステムとは異なる、重複排除ストレージがある。
【0005】
重複排除ストレージは、入力されたデータがすでに過去に入力され保存されているデータと重複している場合、重複データの管理テーブルの更新だけを行い、その入力されたデータをストレージに保存しない。このような重複排除ストレージにおいて、入力されるデータの大半が過去に保存されたデータと重複している場合、実際にストレージに書き込まれるデータの容量は少ない。従って、ストレージの稼働率は、低くなる傾向がある。
【0006】
このような重複排除ストレージにおける省電力制御の関連技術が特許文献2及び3に記載されている。
【0007】
特許文献2は、ストレージシステム及びストレージシステムの消費電力低減方法を開示している。このストレージシステムは、複数のディスク装置を含む複数の論理ユニットと電源制御ユニットとを有している。また、電源制御ユニットは、各論理ユニットを個別に電源オン/オフする。複数の論理ユニットそれぞれは、常時稼動グループまたは省電力グループに振り分けられている。このストレージシステムは、同一ハッシュ値を有するデータを同一の論理ユニットに集約するように動作する。こうすることで、このストレージシステムは、重複除去を実行する場合に、電源を投入するべき省電力グループに属する論理ユニットの台数が少なくなるように制御している。
【0008】
また、特許文献3に記載のデータデデュプリケーションを用いる電力効率のよいストレージは、電源を常時投入しておくバッファボリュームと通常は電源を落としておくベースボリュームとを有している。このストレージは、特定のタイミングでベースボリュームの電源を投入し、バッファボリュームに格納されているデータと、ベースボリュームに格納されているデータとを比較する。そして、このストレージは、比較結果に基づいて、バッファボリュームに格納されているデータのうちの、ベースボリュームに格納されているデータと重複していないデータをベースボリュームに格納する。その後、このストレージは、ベースボリュームの電源を切断する。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2010−211743号公報
【特許文献2】特開2009−059096号公報
【特許文献3】特開2009−020858号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、上述した関連技術においては、重複排除ストレージにおける省電力が不十分であるという問題点がある。
【0011】
省電力が不十分である理由は、以下のとおりである。
【0012】
特許文献2のストレージシステム及びストレージシステムの消費電力低減方法は、重複除去の状況に係わらず常時稼動モードである、の論理ユニットを有しているからである。
【0013】
特許文献3のデータデデュプリケーションを用いる電力効率のよいストレージは、常時稼動しているバッファボリュームを有しているからである。即ち、このストレージは、重複データの多少に係わらず、ベースボリュームを起動して重複判定処理を実行するまでに入力されるデータを全て保存できる、大きさの容量を有するバッファボリュームを、常に稼動させているからである。
【0014】
本発明の目的は、上述した問題点を解決できるストレージ制御装置、ストレージシステム、ストレージ制御方法及びそのためのプログラムを提供することにある。
【課題を解決するための手段】
【0015】
本発明のストレージ制御装置は、ストレージ装置に格納するデータの候補である入力データブロックが、すでにストレージ装置に格納されているいずれの保管データブロックに含まれるデータとも異なるデータを含む、非重複データブロックであるか否かを、前記入力データブロックに含まれるデータのハッシュ値と各前記保管データブロックに含まれるデータのハッシュ値とを比較して判定し、前記判定の判定結果を出力する重複判定部と、
前記非重複データブロックを保持するバッファと、
前記保管データブロックそれぞれ及び前記非重複データブロックそれぞれに対応する、ハッシュ値と保存先アドレスとを関連付けて記憶する管理情報記憶部と、
前記判定結果と前記バッファの容量と前記バッファの現在の使用容量とに基づいて、前記非重複データの今後の発生状況の予測に対応する予測情報を算出し、前記算出した予測情報を出力する非重複データ増加予測部と、
前記ストレージ装置の起動が完了している状態である場合に前記バッファに保存されている前記非重複データブロックを前記ストレージ装置へ出力し、前記管理情報記憶部に記憶されている前記出力した非重複データブロックに対応する前記保存先アドレスを更新するバッファ出力制御部と、
前記予測情報の出力の有無と前記予測情報とに基づいて前記ストレージ装置の運転モードを決定し、前記決定した運転モードを前記ストレージ装置に通知するモード制御部と、を含み
前記重複判定部は、前記非重複データブロックを前記バッファに格納し、前記格納した非重複データブロックに対応する前記ハッシュ値及び前記保存先アドレスの組を管理情報記憶部に追加する。
【0016】
本発明のストレージ制御方法は、バッファと管理情報記憶部とを有するストレージ制御装置が、
ストレージ装置に格納するデータの候補である入力データブロックが、すでにストレージ装置に格納されているいずれの保管データブロックに含まれるデータとも異なるデータを含む、非重複データブロックであるか否かを、前記入力データブロックに含まれるデータのハッシュ値と各前記保管データブロックに含まれるデータのハッシュ値とを比較して判定し、前記判定の判定結果を出力し、
前記非重複データブロックを前記バッファに格納し、前記格納した非重複データブロックに対応する前記ハッシュ値及び前記保存先アドレスの組を管理情報記憶部に追加し、
前記判定結果と前記バッファの容量と前記バッファの現在の使用容量とに基づいて、前記非重複データの今後の発生状況の予測に対応する予測情報を算出し、前記算出した予測情報を出力し、
前記ストレージ装置の起動が完了している状態である場合に前記バッファに保存されている前記非重複データブロックを前記ストレージ装置へ出力し、前記管理情報記憶部に記憶されている前記出力した非重複データブロックに対応する前記保存先アドレスを更新し、
前記予測情報の出力の有無と前記予測情報とに基づいて前記ストレージ装置の運転モードを決定し、前記決定した運転モードを前記ストレージ装置に通知する。
【0017】
本発明のプログラムは、バッファと管理情報記憶部とを有するコンピュータに、
ストレージ装置に格納するデータの候補である入力データブロックが、すでにストレージ装置に格納されているいずれの保管データブロックに含まれるデータとも異なるデータを含む、非重複データブロックであるか否かを、前記入力データブロックに含まれるデータのハッシュ値と各前記保管データブロックに含まれるデータのハッシュ値とを比較して判定し、前記判定の判定結果を出力し、
前記非重複データブロックを前記バッファに格納し、前記格納した非重複データブロックに対応する前記ハッシュ値及び前記保存先アドレスの組を管理情報記憶部に追加し、
前記判定結果と前記バッファの容量と前記バッファの現在の使用容量とに基づいて、前記非重複データの今後の発生状況の予測に対応する予測情報を算出し、前記算出した予測情報を出力し、
前記ストレージ装置の起動が完了している状態である場合に前記バッファに保存されている前記非重複データブロックを前記ストレージ装置へ出力し、前記管理情報記憶部に記憶されている前記出力した非重複データブロックに対応する前記保存先アドレスを更新し、
前記予測情報の出力の有無と前記予測情報とに基づいて前記ストレージ装置の運転モードを決定し、前記決定した運転モードを前記ストレージ装置に通知する、処理を実行させる。
【発明の効果】
【0018】
本発明は、重複排除ストレージにおいて十分な省電力をすることが可能になるという効果がある。
【図面の簡単な説明】
【0019】
【図1】本発明の第1及び第2の実施形態の構成を示すブロック図である。
【図2】本発明の第1及び第2の実施形態におけるハッシュ値管理テーブルの例を示す図である。
【図3】本発明の第1及び第2の実施形態における参照元管理テーブルの例を示す図である。
【図4】本発明の第1及び第2の実施形態における重複判定履歴の例を示す図である。
【図5】本発明の第1及び第2の実施形態の非重複データの今後の発生状況を予測する方程式である。
【図6】本発明の第1及び第2の実施形態の重複排除部の動作を示すフローチャートである。
【図7】本発明の第1及び第2の実施形態の非重複データ増加予測部の動作を示すフローチャートである。
【図8】本発明の第1及び第2の実施形態のモード制御部の動作を示すフローチャートである。
【図9】本発明の第2の実施形態の構成を示すブロック図である。
【図10】本発明のプログラムにより所定の処理をコンピュータに実行させるストレージ制御装置の構成を示すブロック図である。
【発明を実施するための形態】
【0020】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【0021】
[第1の実施形態]
図1は、本発明の第1の実施形態の構成を示すブロック図である。
【0022】
図1を参照すると、本実施形態は、ストレージ制御装置100とストレージ装置200とホストシステム300とから構成されている。
【0023】
ストレージ制御装置100とストレージ装置200とホストシステム300とは、ネットワーク900で接続されている。ストレージ制御装置100、ストレージ装置200及びホストシステム300相互間の通信は、例えば、IP(Internet Protocol)を用いて行われる。また、例えば、ストレージ装置200に対するデータの読み取り及び書き込みについては、SAN(ステップStorage Area Network)の形態をとってもよい。
【0024】
ストレージ制御装置100は、データ分割部110、重複判定部120、非重複データ増加予測部130、モード制御部140、バッファ出力制御部150、管理情報記憶部160及びバッファ170を含む。
【0025】
ストレージ装置200は、電源制御部210及び1以上のディスク部(データ記憶部とも呼ばれる)220を含む。
【0026】
ホストシステム300は、ストレージ装置200に書き込む入力データ及び書き込みアドレスを含むライトコマンドを送信する。
【0027】
ストレージ制御装置100において、データ分割部110は、ホストシステム300からライトコマンドを受け取り、入力データを分割して1以上の入力データブロック(ストレージ装置200への格納対象候補であるデータブロック)を生成する。同時に、データ分割部110は、ライトコマンドに含まれる書き込みアドレスに基づいて、生成した入力データブロック毎の書き込みアドレス(以後、参照元アドレスと呼ぶ)を生成する。次に、データ分割部110は、生成した入力データブロックと対応する参照元アドレスとの組を重複判定部120へ出力する。ここで、参照アドレスは、ホストシステム300がストレージ装置200をアクセスする場合の論理アドレスである。
【0028】
尚、生成される入力データブロックのサイズは、可変長であってもよいし、固定長であってもよい。本実施形態においては、入力データブロックのサイズは、可変長であるものとして説明する。尚、入力データの分割の技術については周知であるため、説明を省略する。
【0029】
管理情報記憶部160は、図2に示すようなハッシュ値管理テーブル161と図3に示すような参照元管理テーブル162とを記憶する。
【0030】
図2は、ハッシュ値管理テーブル161の例を示す図である。図2を参照すると、ハッシュ値管理テーブル161は、バッファ170に保持されている入力データブロック(後述の非重複データブロック)それぞれ及びストレージ装置200に記憶されている保管データブロックそれぞれに対応するハッシュ値163と保存先アドレス164との組を含む。保管データブロックは、データ分割部110により生成された入力データブロックであって、すでにストレージ装置200に格納されているデータブロックである。
【0031】
図3は、参照元管理テーブル162の例を示す図である。図3を参照すると、参照元管理テーブル162は、非重複データブロックそれぞれ及び保管データブロックそれぞれに対応する参照元アドレス165と保存先アドレス164との組を含む。
【0032】
保管データブロックに対応する保存先アドレス164は、ストレージ制御装置100がストレージ装置200をアクセスする場合の、物理アドレスである。非重複ブロックに対応する保存先アドレス164は、バッファ170上のアドレスである。参照元アドレス165は、ホストシステム300がストレージ装置200をアクセスする場合の、論理アドレスである。
【0033】
重複判定部120は、入力データブロックが、保管データブロックに含まれるデータとは異なるデータを含む、非重複データブロックであるか否かを判定し、その判定結果を含む判定結果情報を非重複データ増加予測部130へ出力する。
【0034】
具体的には、重複判定部120は、入力データブロックに含まれるデータのハッシュ値(以後、ハッシュ値663と呼ぶ、図示しない)を算出する。尚、ハッシュ値663を算出する技術については周知であるため、説明を省略する。
【0035】
続けて、重複判定部120は、ハッシュ値663とハッシュ値管理テーブル161のハッシュ値163とを比較する。そして、ハッシュ値663がいずれのハッシュ値163とも一致しなかった場合、重複判定部120は、対応する入力データブロックが非重複データブロックであると判定する。一方、ハッシュ値663がいずれかのハッシュ値163と一致した場合、重複判定部120は、対応する入力データブロックが重複データブロックであると判定する。
【0036】
重複判定部120は、対応する入力データブロックが非重複データブロックであると判定した場合、その非重複データブロックをバッファ170に書き込む。同時に、重複判定部120は、ハッシュ値管理テーブル161及び参照元管理テーブル162を更新する。具体的には、重複判定部120は、ハッシュ値管理テーブル161に、その非重複データブロックのハッシュ値163と保存先アドレス164との組を追加する。同じく、重複判定部120は、参照元管理テーブル162に、その非重複データブロックの参照元アドレス165と保存先アドレス164との組を追加する。この場合、保存先アドレス164は、バッファ170上のアドレスである。
【0037】
また、重複判定部120は、対応する入力データブロックが非重複データブロックでない、即ち、重複ブロックであると判定した場合、その重複データブロックを廃棄する。同時に、重複判定部120は、参照元管理テーブル162を更新する。具体的には、重複判定部120は、参照元管理テーブル162を、例えば以下のように更新する。まず、重複判定部120は、ハッシュ値管理テーブル161を参照して、その入力ブロックデータのハッシュ値663と同じ値のハッシュ値163に対応する保存先アドレス164を取得する。次に、重複判定部120は、その入力ブロックデータの参照元アドレス165と取得した保存先アドレス164とを組にして参照元管理テーブル162に追加する。
【0038】
次に、重複判定部120は、その判定結果と対応する入力データブロックのサイズと入力データスループットとを含む判定結果情報を出力する。本実施形態において、入力データスループットは、単位時間当たりの入力データの量である。例えば、重複判定部120は、現在時刻から過去1秒間に受け取った入力データブロックのサイズを積算して、入力データスループットを算出する。
【0039】
バッファ170は、非重複データブロックを保持する。バッファ170が備える容量(B_maxバイト)は、例えば、以下のように決定される。ストレージ制御装置100が受け付ける入力データの1秒当たりの最大容量は、B_inputバイト/秒であるとする。ストレージ装置200が省電力モードの状態から通常動作モードの状態へ変化するのに掛かる起動時間は、T_start秒であるとする。この場合、バッファ170の容量(B_maxバイト)は、(B_input×T_start)バイトより大きい。
【0040】
バッファ出力制御部150は、バッファ170に保存されている入力データブロック(非重複データブロック)をストレージ装置200へ出力する。続けて、バッファ出力制御部150は、バッファ170をクリアする。同時に、バッファ出力制御部150は、ハッシュ値管理テーブル161及び参照元管理テーブル162の保存先アドレス164を、バッファ170上のアドレスからストレージ装置200上のアドレスへ更新する。
【0041】
非重複データ増加予測部130は、重複判定部120が出力した判定結果情報とバッファ170の容量とバッファ170の現在の保持量とに基づいて、予測される非重複データの今後の発生状況に対応する予測情報を算出する。次に、非重複データ増加予測部130は、その予測情報を出力する。バッファ170の現在の保持量は、非重複データ増加予測部130がバッファ170から取得した、バッファ170に保持している入力データブロックのサイズの合計である。
【0042】
例えば、非重複データ増加予測部130は、以下のように予測情報を算出する。まず、非重複データ増加予測部130は、入力データブロックのサイズと対応する判定結果とに基づいて、予め定められた期間(例えば、過去1ミリ秒間)中の、入力データブロックのデータサイズを全て合計した値(Xとする)と非重複データブロックのデータサイズを全て合計した値(Yとする)との比率(Y÷X)を算出する。尚、「予め定められた期間中の」は、「予め定められた条件に適合する」とも呼ばれる。「予め定められた条件に適合する」は、例えば、「最新の入力データブロックから、所定の個数の範囲内の」であってもよい。
【0043】
次に、非重複データ増加予測部130は、その算出した比率に入力データスループットを乗じて非重複データスループットを算出する。次に、非重複データ増加予測部130は、その算出した非重複データスループットとバッファ170の容量とバッファ170の現在の保持量とに基づいて、バッファ170に保持される非重複データブロックのサイズの合計がバッファ170の容量に達するまでの時間を予測情報として算出する。
【0044】
更に具体的に説明すると、非重複データ増加予測部130は、例えば以下のように予測情報を算出する。
【0045】
まず、非重複データ増加予測部130は、重複判定部120が出力した判定結果と対応する入力データブロックのサイズとを、非重複データ増加予測部130内の図示しない記憶部に、図4に示すような重複判定履歴131として記録する。図4は、重複判定履歴131の例を示す図である。図4を参照すると、重複判定履歴131は、時刻132、サイズ133及び判定結果134を含む。時刻132は、重複判定部120が出力した判定結果情報を受け取った時刻を、例えばマイクロ秒単位でかつ10ミリ秒周期で示す。サイズ133は、受け取った入力データブロックのサイズを、例えばキロバイト単位で示す。判定結果134は、「1」の場合に非重複データブロックであること、「0」の場合に重複データであることを示す。
【0046】
非重複データ増加予測部130は、重複判定履歴131を記録する度に、過去1ミリ秒間の入力データブロックのデータサイズ(判定結果134が0または1である、入力データブロックに対応するサイズ133)を全て合計した値(Xとする)と、非重複データブロックのデータサイズ(判定結果134が1である、入力データブロックに対応するサイズ133)を全て合計した値(Yとする)と、の比率(Y÷X)を算出する。図4の例では、現在時刻を最新の判定結果情報を受け取った時刻である時刻132「2601」とすると、過去1ミリ秒間には、時刻132「2601」、「2243」及び「1799」が含まれる。従って、比率(Y÷X)は、X=10+5+5=20及びY=5+5より、Y÷X=0.5と求められる。
【0047】
次に、非重複データ増加予測部130は、比率(Y÷X)に入力データスループット(Zと呼ぶ)を乗じて、非重複データスループット(Y÷X)×Zを算出する。例えば、Z=20メガバイトであるとすると、非重複データ増加予測部130は、(Y÷X)×Z=0.5×20メガバイト=10メガバイトを算出する。
【0048】
次に、非重複データ増加予測部130は、図5に示す方程式をtについて解く。図5は、非重複データの今後の発生状況を予測する方程式である。
【0049】
図5において、B_maxバイトはバッファ170の容量、B_currentバイトはバッファ170の現在の保持量である。従って、解は、バッファ170に保持される非重複データブロックのサイズの合計がB_maxバイトに達するまでの時間(T_max秒とする)である。
【0050】
例えば、B_max=40メガバイト、B_current=10メガバイトであるとすると、非重複データ増加予測部130は、T_max=(40メガバイト−10メガバイト)÷20メガバイト/秒=1.5秒を算出する。こうして、非重複データ増加予測部130は、非重複データの今後の発生量を予測する情報として、T_max秒を算出する。
【0051】
尚、非重複データ増加予測部130は、入力データブロックのサイズとして予め与えられたサイズと、入力データスループットとして予め与えられた値とを用いて、T_max秒を算出するようにしてもよい。この場合、重複判定部120は、入力データブロックのサイズ及び入力データスループットを判定結果情報に含めなくてもよい。
【0052】
モード制御部140は、非重複データ増加予測部130からの予測情報(T_max秒)の出力の有無と予測情報(T_max秒)とバッファ170の現在の保持量が0か否かとに基づいて、ストレージ装置200の運転モードを決定する。運転モードは、例えば、省電力モード及び通常電力モードである。尚、省電力モードは、例えばストレージ装置200自体(電源制御部210を除く)の電源オフや、ディスク部220毎の省電力モードへの移行及び電源オフを含む。次に、モード制御部140は、決定した運転モードをストレージ装置200に通知する。
【0053】
ストレージ装置200において、電源制御部210は、ストレージ制御装置100のモード制御部140から通知された運転モードに基づいて、ストレージ装置200の運転モードを切り替える。省電力モードへの切り替えにおいて、消費電力量を削減する技術は周知であるので、説明を省略する。
【0054】
ディスク部220は、単体または複数のディスクから構成され、ストレージ制御装置100のバッファ出力制御部150が出力した入力データブロック(非重複データブロック)を、保管データブロックとして記憶する。
【0055】
尚、本実施形態ではストレージ制御装置100が保存先アドレス164と参照元アドレス165との対応を管理するようにしたが、ストレージ装置200が保存先アドレスと参照元アドレスとの対応を管理するようにしてもよい。この場合、ストレージ制御装置100は、非重複データブロックに参照元アドレス165を付加して、ストレージ装置200に出力するようにしてもよい。
【0056】
次に、本発明の動作について図面を参照して詳細に説明する。
【0057】
まず、ホストシステム300は、ライトコマンドを送信する。ストレージ制御装置100は、ホストシステム300が送信したライトコマンドを受信する。
【0058】
ライトコマンドを受信すると、ストレージ制御装置100のデータ分割部110は、そのライトコマンドに含まれる入力データを分割して入力データブロックを生成し、出力する。
【0059】
次に、重複判定部120が入力データブロックを受け取り、ハッシュ値管理テーブル161を参照して、受け取った入力データブロックの重複判定を行う。
【0060】
図6は、重複判定部120の動作を示すフローチャートである。
【0061】
まず、重複判定部120は、入力データブロックを受け取る(ステップS1101)。
【0062】
次に、重複判定部120は、ハッシュ値管理テーブル161を参照して、入力データブロックが、保管データブロックに含まれるデータとは異なるデータを含む、非重複データブロックであるか否かを判定する(ステップS1102)。
【0063】
非重複データブロックでない場合(ステップS1102でNO)、重複判定部120は、その入力データブロックを破棄する(ステップS1103)。
【0064】
続けて、重複判定部120は、参照元管理テーブル162を更新する(ステップS1104)。そして、処理はステップS1107へ進む。
【0065】
非重複データブロックである場合(ステップS1102でYES)、重複判定部120は、その入力データブロックを、非重複データブロックとしてバッファ170に保存する(ステップS1105)。
【0066】
続けて、重複判定部120は、ハッシュ値管理テーブル161及び参照元管理テーブル162を更新する(ステップS1106)。
【0067】
次に、重複判定部120は、入力データスループットを算出する(ステップS1107)。
【0068】
次に、重複判定部120は、その入力データブロックのサイズと重複判定の結果(非重複/重複)と入力データスループットとを判定結果情報として非重複データ増加予測部130に出力する(ステップS1108)。
【0069】
次に、図7を参照して、非重複データ増加予測部130の動作を説明する。図7は、非重複データ増加予測部130の動作を示すフローチャートである。
【0070】
まず、非重複データ増加予測部130は、入力データブロックのサイズと重複判定の結果と入力データスループットとを受け取る(ステップS1301)。
【0071】
次に、非重複データ増加予測部130は、受け取った入力データブロックのサイズと重複判定の結果とそれらを受け取った時間とを組にして、重複判定履歴131として記録する(ステップS1302)。
【0072】
次に、非重複データ増加予測部130は、過去1ミリ秒間の入力データブロックのデータサイズを全て合計した値(X)と非重複データのデータサイズを全て合計した値(Y)の比率(Y÷X)を算出する(ステップS1303)。
【0073】
次に、非重複データ増加予測部130は、比率(Y÷X)に入力データスループットZを乗じて、非重複データスループット(Y÷X)×Zを算出する(ステップS1304)。
【0074】
次に、非重複データ増加予測部130は、バッファ170の現在の保持量(B_currentバイト)を取得する(ステップS1305)。
【0075】
次に、非重複データ増加予測部130は、図5に示す式に基づいてT_max秒を算出する(ステップS1306)。
【0076】
次に、非重複データ増加予測部130は、算出したT_max秒をモード制御部140に出力する(ステップS1307)。
【0077】
尚、上述の説明において、非重複データ増加予測部130は、重複判定の結果を受け取る毎に予測情報を出力するように動作するが、非重複データ増加予測部130は、予め定められた時間毎に予測情報を通知するようにしてもよい。
【0078】
次に、図8を参照して、モード制御部140の動作を説明する。図8は、モード制御部140の動作を示すフローチャートである。
【0079】
まず、モード制御部140は、図示しないタイマーをリスタート(タイマー値を「0」にして、計時を開始)する(ステップS1401)。
【0080】
次に、モード制御部140は、非重複データ増加予測部130から予測情報(T_max秒)の出力があったか否かを確認する(ステップS1402)。
【0081】
予測情報(T_max秒)の出力があった場合(ステップS1402でYES)、処理は、ステップS1410へ進む。
【0082】
予測情報(T_max秒)の出力がない場合(ステップS1402でNO)、モード制御部140は、タイマーの計時時間が予め定められたT_idle秒に達したか否かを確認する(ステップS1404)。
【0083】
T_idle秒に達した場合(ステップS1404でYES)、処理は、ステップS1440へ進む。
【0084】
T_idle秒に達していない場合(ステップS1404でNO)、処理は、ステップS1402へ戻る。
【0085】
ステップS1410において、モード制御部140は、T_max秒からストレージ装置200の起動時間T_start秒を差し引く(ステップS1410)。
【0086】
差し引いた結果が0以下の場合(ステップS1410でYES)、モード制御部140は、ストレージ装置200の電源制御部210に対して、運転モードを通常電力モードにするように通知する(ステップS1411)。そして、処理はステップS1401へ戻る。
【0087】
差し引いた結果が0を超える場合(ステップS1410でNO)、処理は、ステップS1402へ戻る。
【0088】
ステップS1440において、モード制御部140は、バッファ170の現在の保持量が0か否かを確認する(ステップS1440)。
【0089】
現在の保持量が0でない場合(ステップS1440でNO)、処理は、ステップS1411へ進む。
【0090】
現在の保持量が0の場合(ステップS1440でYES)、モード制御部140は、ストレージ装置200の電源制御部210に対して、運転モードを省電力モードにするように通知する(ステップS1442)。そして、処理はステップS1401へ戻る。
【0091】
以上に説明した動作によりモード制御部140は、運転モードを通知する。次に、ストレージ装置200は、通知された運転モードに基づいて、省電力モードと通常電力モードとを切り替える。
【0092】
ストレージ装置200は、運転モードを省電力モードから通常電力モードに切り替えると、T_idle秒後に起動が完了する。
【0093】
バッファ出力制御部150は、ストレージ装置200を監視してストレージ装置200の起動が完了した状態を検出する。
【0094】
尚、モード制御部140がストレージ装置200を監視してストレージ装置200の起動が完了した状態を検出し、これをバッファ出力制御部150に通知するようにしてもよい。即ち、モード制御部140が、ストレージ装置200の運転モード及び状態に関するインタフェースを一括して制御するようにしてもよい。
【0095】
ストレージ装置200の起動が完了した状態である場合に、バッファ出力制御部150は、バッファ170に保持されている非重複データブロックをストレージ装置200のディスク部220へ出力する。次に、バッファ出力制御部150は、非重複データブロックの出力が完了すると、バッファ170をクリアする。同時にバッファ出力制御部150は、ハッシュ値管理テーブル161と参照元管理テーブル162を更新する。
【0096】
上述した本実施形態における効果は、重複排除ストレージにおいて十分な省電力をすることを可能にする点である。
【0097】
その理由は、非重複データ増加予測部130が非重複データブロックの今後の発生状況に対応する予測情報を算出し、モード制御部140が予測情報の有無と予測情報とに基づいてストレージ装置200の運転モードを制御するようにしたからである。
【0098】
[第2の実施形態]
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【0099】
図9は、本発明の第2の実施形態に係るストレージ制御装置101の構成を示すブロック図である。
【0100】
図9を参照すると、本実施形態におけるストレージ制御装置101は、重複判定部120、非重複データ増加予測部130、モード制御部140、バッファ出力制御部150、管理情報記憶部160及びバッファ170を含む。
【0101】
本実施形態においては、入力データブロックは、図示しない外部の装置から与えられ、重複判定部120はこの入力データブロックを受け取り、処理する。例えば、入力データブロックは、第1の実施形態で説明したホストシステム300が送信するライトコマンドに含まれる入力データであってもよい。
【0102】
これ以外の各要素の機能及び動作は、実施形態1の対応する各要素と同一である。
【0103】
ストレージ制御装置101は、図10に示すような、汎用的なコンピュータによって構成されるストレージ制御装置102であってもよい。
【0104】
図10は、本実施形態における、プログラムにより所定の処理をコンピュータに実行させるストレージ制御装置の構成を示すブロック図である。
【0105】
図10を参照すると、ストレージ装置102は、CPU(Central Processing Unit)710、ディスク装置720、記憶部730及び通信部750を備えている。
【0106】
ストレージ制御装置101の重複判定部120、非重複データ増加予測部130、モード制御部140及びバッファ出力制御部150は、CPU710とディスク装置720と記憶部730とに対応する。また、ストレージ制御装置101の管理情報記憶部160及びバッファ170は、記憶部730に対応する。
【0107】
CPU710は、ディスク装置720に格納されたプログラムを、例えば記憶部730に展開し、展開したプログラムに基づいて、重複判定部120、非重複データ増加予測部130、モード制御部140及びバッファ出力制御部150と同様の処理を実行する。
【0108】
ディスク装置720は、そのプログラムを記憶する。
【0109】
記憶部730は、展開されたそのプログラムを記憶する。また、記憶部730は、管理情報記憶部160と同様に、ハッシュ値管理テーブル161及び参照元管理テーブル162を記憶する。更に、記憶部730は、バッファ170と同様に、非重複データブロックを記憶する。
【0110】
通信部750は、重複判定部120、モード制御部140及びバッファ出力制御部150に含まれる。
【0111】
尚、第1の実施形態についても、同様に、ストレージ制御装置100は、図10に示すような、汎用的なコンピュータによって構成されるストレージ制御装置102であってもよい。
【0112】
上述した本実施形態における効果は、第1の実施形態の効果に加えて、データ分割部110を不要にし、ストレージ制御装置101の構成要素を削減できる点である。
【0113】
その理由は、重複判定部120が外部から受け取ったデータを処理するようにしたからである。
【0114】
以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はない。例えば、各構成要素は、複数の構成要素が1個のモジュールとして実現されたり、一つの構成要素が複数のモジュールで実現されたりしてもよい。また、各構成要素は、ある構成要素が他の構成要素の一部であったり、ある構成要素の一部と他の構成要素の一部とが重複していたり、といったような構成であってもよい。
【0115】
また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は内容的に支障しない範囲で変更することができる。
【0116】
更に、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作と他の動作との実行タイミングが部分的に乃至全部において重複していたりしていてもよい。
【0117】
更に、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作の全ての関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。
【0118】
尚、以上説明した各実施形態における各構成要素は、必要に応じ可能であれば、ハードウェアで実現されても良いし、ソフトウェアで実現されても良いし、ハードウェアとソフトウェアの混在により実現されても良い。
【0119】
また、各構成要素の物理的な構成は、以上の実施形態の記載に限定されることはなく、独立して存在しても良いし、組み合わされて存在しても良いしまたは分離して構成されても良い。
【0120】
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
ストレージ装置に格納するデータの候補である入力データブロックが、すでにストレージ装置に格納されているいずれの保管データブロックに含まれるデータとも異なるデータを含む、非重複データブロックであるか否かを、前記入力データブロックに含まれるデータのハッシュ値と各前記保管データブロックに含まれるデータのハッシュ値とを比較して判定し、前記判定の判定結果を出力する重複判定部と、
前記非重複データブロックを保持するバッファと、
前記保管データブロックそれぞれ及び前記非重複データブロックそれぞれに対応する、ハッシュ値と保存先アドレスとを関連付けて記憶する管理情報記憶部と、
前記判定結果と前記バッファの容量と前記バッファの現在の使用容量とに基づいて、前記非重複データの今後の発生状況の予測に対応する予測情報を算出し、前記算出した予測情報を出力する非重複データ増加予測部と、
前記ストレージ装置の起動が完了している状態である場合に前記バッファに保存されている前記非重複データブロックを前記ストレージ装置へ出力し、前記管理情報記憶部に記憶されている前記出力した非重複データブロックに対応する前記保存先アドレスを更新するバッファ出力制御部と、
前記予測情報の出力の有無と前記予測情報とに基づいて前記ストレージ装置の運転モードを決定し、前記決定した運転モードを前記ストレージ装置に通知するモード制御部と、を含み
前記重複判定部は、前記非重複データブロックを前記バッファに格納し、前記格納した非重複データブロックに対応する前記ハッシュ値及び前記保存先アドレスの組を管理情報記憶部に追加する
ストレージ制御装置。
(付記2)
前記非重複データ増加予測部は、予め定められた条件に適合する前記入力データブロックのデータサイズを全て合計した値と前記非重複データのデータサイズを全て合計した値との比率を算出し、前記算出した比率に前記入力データスループットを乗じて非重複データスループットを算出し、前記バッファの容量から前記バッファの現在の使用量を引いた値を、前記非重複データスループットで除して算出した時間を前記予測情報として出力する
ことを特徴とする付記1記載のストレージ制御装置。
(付記3)
前記入力データブロックは、可変長であり、
前記重複判定部120は、前記判定結果に対応する前記入力データブロックのサイズを出力する
ことを特徴とする付記1または2記載のストレージ制御装置。
(付記4)
前記非重複データ増加予測部は、前記判定結果を受け取る毎に前記予測情報を出力する
ことを特徴とする付記1乃至3のいずれかに記載のストレージ制御装置。
(付記5)
前記非重複データ増加予測部は、予め定められた時間毎に前記予測情報を通知する
ことを特徴とする付記1乃至4のいずれかに記載のストレージ制御装置。
(付記6)
前記運転モードに基づいて、省電力運転モードと通常電力運転モードとを切り替える電源制御部と、
受け取った前記非重複データブロックを前記保管データブロックとして記憶するデータ記憶部と、を含むストレージ装置と、
付記1乃至5のいずれかに記載のストレージ制御装置と、を含む
ストレージシステム。
(付記7)
バッファと管理情報記憶部とを有するストレージ制御装置が、
ストレージ装置に格納するデータの候補である入力データブロックが、すでにストレージ装置に格納されているいずれの保管データブロックに含まれるデータとも異なるデータを含む、非重複データブロックであるか否かを、前記入力データブロックに含まれるデータのハッシュ値と各前記保管データブロックに含まれるデータのハッシュ値とを比較して判定し、前記判定の判定結果を出力し、
前記非重複データブロックを前記バッファに格納し、前記格納した非重複データブロックに対応する前記ハッシュ値及び前記保存先アドレスの組を管理情報記憶部に追加し、
前記判定結果と前記バッファの容量と前記バッファの現在の使用容量とに基づいて、前記非重複データの今後の発生状況の予測に対応する予測情報を算出し、前記算出した予測情報を出力し、
前記ストレージ装置の起動が完了している状態である場合に前記バッファに保存されている前記非重複データブロックを前記ストレージ装置へ出力し、前記管理情報記憶部に記憶されている前記出力した非重複データブロックに対応する前記保存先アドレスを更新し、
前記予測情報の出力の有無と前記予測情報とに基づいて前記ストレージ装置の運転モードを決定し、前記決定した運転モードを前記ストレージ装置に通知する
ストレージ制御方法。
(付記8)
前記ストレージ制御装置が、前記予測情報を算出において、予め定められた条件に適合する前記入力データブロックのデータサイズを全て合計した値と前記非重複データのデータサイズを全て合計した値との比率を算出し、前記算出した比率に前記入力データスループットを乗じて非重複データスループットを算出し、前記バッファの容量から前記バッファの現在の使用量を引いた値を、前記非重複データスループットで除して時間を算出する
ことを特徴とする付記7記載のストレージ制御方法。
(付記9)
前記入力データブロックは可変長であり、前記判定結果に対応する前記入力データブロックのサイズを出力する
ことを特徴とする付記7または8記載のストレージ制御装置。
(付記10)
前記判定結果を受け取る毎に前記予測情報を出力する
ことを特徴とする付記7乃至9のいずれかに記載のストレージ制御装置。
(付記11)
予め定められた時間毎に前記予測情報を通知する
ことを特徴とする付記7乃至10のいずれかに記載のストレージ制御装置。
(付記12)
バッファと管理情報記憶部とを有するコンピュータに、
ストレージ装置に格納するデータの候補である入力データブロックが、すでにストレージ装置に格納されているいずれの保管データブロックに含まれるデータとも異なるデータを含む、非重複データブロックであるか否かを、前記入力データブロックに含まれるデータのハッシュ値と各前記保管データブロックに含まれるデータのハッシュ値とを比較して判定し、前記判定の判定結果を出力し、
前記非重複データブロックを前記バッファに格納し、前記格納した非重複データブロックに対応する前記ハッシュ値及び前記保存先アドレスの組を管理情報記憶部に追加し、
前記判定結果と前記バッファの容量と前記バッファの現在の使用容量とに基づいて、前記非重複データの今後の発生状況の予測に対応する予測情報を算出し、前記算出した予測情報を出力し、
前記ストレージ装置の起動が完了している状態である場合に前記バッファに保存されている前記非重複データブロックを前記ストレージ装置へ出力し、前記管理情報記憶部に記憶されている前記出力した非重複データブロックに対応する前記保存先アドレスを更新し、
前記予測情報の出力の有無と前記予測情報とに基づいて前記ストレージ装置の運転モードを決定し、前記決定した運転モードを前記ストレージ装置に通知する、処理を実行させる
プログラム。
(付記13)
前記予測情報を算出において、予め定められた条件に適合する前記入力データブロックのデータサイズを全て合計した値と前記非重複データのデータサイズを全て合計した値との比率を算出し、前記算出した比率に前記入力データスループットを乗じて非重複データスループットを算出し、前記バッファの容量から前記バッファの現在の使用量を引いた値を、前記非重複データスループットで除して時間を算出する処理を、前記コンピュータに実行させる
ことを特徴とする付記12記載のプログラム。
(付記14)
前記入力データブロックは可変長であり、前記判定結果に対応する前記入力データブロックのサイズを出力する処理を、前記コンピュータに実行させる
ことを特徴とする付記12または13記載のプログラム。
(付記15)
前記判定結果を受け取る毎に前記予測情報を出力する処理を、前記コンピュータに実行させる
ことを特徴とする付記12乃至14のいずれかに記載のプログラム。
(付記16)
予め定められた時間毎に前記予測情報を通知する処理を、前記コンピュータに実行させる
ことを特徴とする付記12乃至15のいずれかに記載のプログラム。
【符号の説明】
【0121】
100 ストレージ制御装置
101 ストレージ制御装置
102 ストレージ制御装置
110 データ分割部
120 重複判定部
130 非重複データ増加予測部
131 重複判定履歴
132 時刻
133 サイズ
134 判定結果
140 モード制御部
150 バッファ出力制御部
160 管理情報記憶部
161 ハッシュ値管理テーブル
162 参照元管理テーブル
163 ハッシュ値
164 保存先アドレス
165 参照元アドレス
170 バッファ
200 ストレージ装置
210 電源制御部
220 ディスク部
300 ホストシステム
663 ハッシュ値
710 CPU
720 ディスク装置
730 記憶部
750 通信部
900 ネットワーク

【特許請求の範囲】
【請求項1】
ストレージ装置に格納するデータの候補である入力データブロックが、すでにストレージ装置に格納されているいずれの保管データブロックに含まれるデータとも異なるデータを含む、非重複データブロックであるか否かを、前記入力データブロックに含まれるデータのハッシュ値と各前記保管データブロックに含まれるデータのハッシュ値とを比較して判定し、前記判定の判定結果を出力する重複判定部と、
前記非重複データブロックを保持するバッファと、
前記保管データブロックそれぞれ及び前記非重複データブロックそれぞれに対応する、ハッシュ値と保存先アドレスとを関連付けて記憶する管理情報記憶部と、
前記判定結果と前記バッファの容量と前記バッファの現在の使用容量とに基づいて、前記非重複データの今後の発生状況の予測に対応する予測情報を算出し、前記算出した予測情報を出力する非重複データ増加予測部と、
前記ストレージ装置の起動が完了している状態である場合に前記バッファに保存されている前記非重複データブロックを前記ストレージ装置へ出力し、前記管理情報記憶部に記憶されている前記出力した非重複データブロックに対応する前記保存先アドレスを更新するバッファ出力制御部と、
前記予測情報の出力の有無と前記予測情報とに基づいて前記ストレージ装置の運転モードを決定し、前記決定した運転モードを前記ストレージ装置に通知するモード制御部と、を含み
前記重複判定部は、前記非重複データブロックを前記バッファに格納し、前記格納した非重複データブロックに対応する前記ハッシュ値及び前記保存先アドレスの組を管理情報記憶部に追加する
ストレージ制御装置。
【請求項2】
前記非重複データ増加予測部は、予め定められた条件に適合する前記入力データブロックのデータサイズを全て合計した値と前記非重複データのデータサイズを全て合計した値との比率を算出し、前記算出した比率に前記入力データスループットを乗じて非重複データスループットを算出し、前記バッファの容量から前記バッファの現在の使用量を引いた値を、前記非重複データスループットで除して算出した時間を前記予測情報として出力する
ことを特徴とする請求項1記載のストレージ制御装置。
【請求項3】
前記入力データブロックは、可変長であり、
前記重複判定部120は、前記判定結果に対応する前記入力データブロックのサイズを出力する
ことを特徴とする請求項1または2記載のストレージ制御装置。
【請求項4】
前記非重複データ増加予測部は、前記判定結果を受け取る毎に前記予測情報を出力する
ことを特徴とする請求項1乃至3のいずれかに記載のストレージ制御装置。
【請求項5】
前記非重複データ増加予測部は、予め定められた時間毎に前記予測情報を通知する
ことを特徴とする請求項1乃至4のいずれかに記載のストレージ制御装置。
【請求項6】
前記運転モードに基づいて、省電力運転モードと通常電力運転モードとを切り替える電源制御部と、
受け取った前記非重複データブロックを前記保管データブロックとして記憶するデータ記憶部と、を含むストレージ装置と、
請求項1乃至5のいずれかに記載のストレージ制御装置と、を含む
ストレージシステム。
【請求項7】
バッファと管理情報記憶部とを有するストレージ制御装置が、
ストレージ装置に格納するデータの候補である入力データブロックが、すでにストレージ装置に格納されているいずれの保管データブロックに含まれるデータとも異なるデータを含む、非重複データブロックであるか否かを、前記入力データブロックに含まれるデータのハッシュ値と各前記保管データブロックに含まれるデータのハッシュ値とを比較して判定し、前記判定の判定結果を出力し、
前記非重複データブロックを前記バッファに格納し、前記格納した非重複データブロックに対応する前記ハッシュ値及び前記保存先アドレスの組を管理情報記憶部に追加し、
前記判定結果と前記バッファの容量と前記バッファの現在の使用容量とに基づいて、前記非重複データの今後の発生状況の予測に対応する予測情報を算出し、前記算出した予測情報を出力し、
前記ストレージ装置の起動が完了している状態である場合に前記バッファに保存されている前記非重複データブロックを前記ストレージ装置へ出力し、前記管理情報記憶部に記憶されている前記出力した非重複データブロックに対応する前記保存先アドレスを更新し、
前記予測情報の出力の有無と前記予測情報とに基づいて前記ストレージ装置の運転モードを決定し、前記決定した運転モードを前記ストレージ装置に通知する
ストレージ制御方法。
【請求項8】
ストレージ制御装置は、前記予測情報を算出において、予め定められた条件に適合する前記入力データブロックのデータサイズを全て合計した値と前記非重複データのデータサイズを全て合計した値との比率を算出し、前記算出した比率に前記入力データスループットを乗じて非重複データスループットを算出し、前記バッファの容量から前記バッファの現在の使用量を引いた値を、前記非重複データスループットで除して時間を算出する
ことを特徴とする請求項7記載のストレージ制御方法。
【請求項9】
前記入力データブロックは可変長であり、前記判定結果に対応する前記入力データブロックのサイズを出力する
ことを特徴とする請求項7または8記載のストレージ制御装置。
【請求項10】
バッファと管理情報記憶部とを有するコンピュータに、
ストレージ装置に格納するデータの候補である入力データブロックが、すでにストレージ装置に格納されているいずれの保管データブロックに含まれるデータとも異なるデータを含む、非重複データブロックであるか否かを、前記入力データブロックに含まれるデータのハッシュ値と各前記保管データブロックに含まれるデータのハッシュ値とを比較して判定し、前記判定の判定結果を出力し、
前記非重複データブロックを前記バッファに格納し、前記格納した非重複データブロックに対応する前記ハッシュ値及び前記保存先アドレスの組を管理情報記憶部に追加し、
前記判定結果と前記バッファの容量と前記バッファの現在の使用容量とに基づいて、前記非重複データの今後の発生状況の予測に対応する予測情報を算出し、前記算出した予測情報を出力し、
前記ストレージ装置の起動が完了している状態である場合に前記バッファに保存されている前記非重複データブロックを前記ストレージ装置へ出力し、前記管理情報記憶部に記憶されている前記出力した非重複データブロックに対応する前記保存先アドレスを更新し、
前記予測情報の出力の有無と前記予測情報とに基づいて前記ストレージ装置の運転モードを決定し、前記決定した運転モードを前記ストレージ装置に通知する、処理を実行させる
プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−168853(P2012−168853A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願番号】特願2011−30734(P2011−30734)
【出願日】平成23年2月16日(2011.2.16)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】