(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022175713
(43)【公開日】2022-11-25
(54)【発明の名称】ストレージ装置、情報処理システム、情報処理方法、およびプログラム
(51)【国際特許分類】
G06F 3/06 20060101AFI20221117BHJP
【FI】
G06F3/06 301W
【審査請求】有
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2021082355
(22)【出願日】2021-05-14
(71)【出願人】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100106909
【弁理士】
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100134544
【弁理士】
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【弁理士】
【氏名又は名称】伊藤 英輔
(72)【発明者】
【氏名】上浦 朋花
(57)【要約】
【課題】ライト性能の向上を図ることができる技術を提供する。
【解決手段】第1ライトデータに含まれる管理単位の第1データに対応する特徴データを記憶させる場合、第1データの後続となる管理単位の第2データに対応する特徴データを、第1データに対応する特徴データと関連付けて記憶させる。第2ライトデータに対して重複判定を行う場合に、第1データに対応する特徴データを用いて重複判定を行い、第1データに対応する特徴データとの関連付けに基づき第2データに対応する特徴データを読み出し、第2データに対応する特徴データを用いて重複判定を行う。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付けるライト命令処理手段と、
第1ライトデータに含まれる前記管理単位の第1データに対応する前記特徴データを記憶手段に記憶させる場合、前記第1ライトデータに含まれて前記第1データの後続となる前記管理単位の第2データに対応する前記特徴データを、前記第1データに対応する前記特徴データと関連付けて前記記憶手段に記憶させる特徴データ登録手段と、
第2ライトデータに対して重複判定を行う場合に、前記第1データに対応する前記特徴データを用いて重複判定を行い、前記第1データに対応する前記特徴データとの関連付けに基づき前記第2データに対応する前記特徴データを読み出し、前記第2データに対応する前記特徴データを用いて重複判定を行う判定処理手段と、
を備えたストレージ装置。
【請求項2】
前記特徴データは、前記管理単位のデータから算出されるハッシュ値である、
請求項1に記載のストレージ装置。
【請求項3】
前記特徴データ登録手段は、前記第2データに対応する前記特徴データを、前記第1データに対応する前記特徴データと同じエントリに登録する、
請求項1または請求項2に記載のストレージ装置。
【請求項4】
前記特徴データ登録手段は、前記第2データに対応する前記特徴データと、前記第2データに対応する前記特徴データの格納位置を示す情報とを、前記第1データに対応する前記特徴データと同じエントリに登録する、
請求項1から請求項3のうちいずれか1項に記載のストレージ装置。
【請求項5】
前記記憶手段は、複数階層を含むテーブル情報を記憶し、前記複数階層の最下層のテーブル情報に前記エントリの位置情報が格納されている、
請求項3または請求項4に記載のストレージ装置。
【請求項6】
前記特徴データ登録手段は、前記第2データに対応する前記特徴データを前記記憶手段に記憶させる場合、前記第1ライトデータに含まれて前記第2データの後続となる前記管理単位の第3データに対応する前記特徴データを、前記第2データに対応する前記特徴データと関連付けて前記記憶手段に記憶させ、
前記判定処理手段は、前記第2ライトデータに対して重複判定を行う場合に、前記第2データに対応する前記特徴データとの関連付けに基づき前記第3データに対応する前記特徴データを読み出し、前記第3データに対応する前記特徴データを用いて重複判定を行う、
請求項1から請求項5のうちいずれか1項に記載のストレージ装置。
【請求項7】
ホストと、
前記ホストと通信可能に接続されたストレージ装置と、
を備え、
前記ストレージ装置は、
ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付けるライト命令処理手段と、
第1ライトデータに含まれる前記管理単位の第1データに対応する前記特徴データを記憶手段に記憶させる場合、前記第1ライトデータに含まれて前記第1データの後続となる前記管理単位の第2データに対応する前記特徴データを、前記第1データに対応する前記特徴データと関連付けて前記記憶手段に記憶させる特徴データ登録手段と、
第2ライトデータに対して重複判定を行う場合に、前記第1データに対応する前記特徴データを用いて重複判定を行い、前記第1データに対応する前記特徴データとの関連付けに基づき前記第2データに対応する前記特徴データを読み出し、前記第2データに対応する前記特徴データを用いて重複判定を行う判定処理手段と、
を含む、情報処理システム。
【請求項8】
ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付け、
第1ライトデータに含まれる前記管理単位の第1データに対応する前記特徴データを記憶させる場合、前記第1ライトデータに含まれて前記第1データの後続となる前記管理単位の第2データに対応する前記特徴データを、前記第1データに対応する前記特徴データと関連付けて記憶させ、
第2ライトデータに対して重複判定を行う場合に、前記第1データに対応する前記特徴データを用いて重複判定を行い、前記第1データに対応する前記特徴データとの関連付けに基づき前記第2データに対応する前記特徴データを読み出し、前記第2データに対応する前記特徴データを用いて重複判定を行う、
情報処理方法。
【請求項9】
コンピュータに、
ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付けることと、
第1ライトデータに含まれる前記管理単位の第1データに対応する前記特徴データを記憶させる場合、前記第1ライトデータに含まれて前記第1データの後続となる前記管理単位の第2データに対応する前記特徴データを、前記第1データに対応する前記特徴データと関連付けて記憶させることと、
第2ライトデータに対して重複判定を行う場合に、前記第1データに対応する前記特徴データを用いて重複判定を行い、前記第1データに対応する前記特徴データとの関連付けに基づき前記第2データに対応する前記特徴データを読み出し、前記第2データに対応する前記特徴データを用いて重複判定を行うことと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ装置、情報処理システム、情報処理方法、およびプログラムに関する。
【背景技術】
【0002】
特許文献1には、重複排除処理を行う計算機システムが開示されている。この計算機システムのホスト計算機は、更新コンテンツを構成する全てのチャンクに対して重複判定処理を行い、コンテンツ管理テーブルを更新する。そして、ホスト計算機は、次回の重複排除処理の際に最新のコンテンツのデータに基づいた重複排除リストを作成する。これにより、ホスト装置からストレージ装置へ送信するチャンクの数を減らすことができる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、重複排除を行うストレージ装置では、ライトデータとストレージ装置に既に記憶されているデータとが重複しているか否かを調べる際に、ライトデータを所定の管理単位のデータ(例えば一定長のチャンク)に分割し、上記管理単位のデータから算出されるハッシュ値などの特徴データと、ストレージ装置に既に記憶されている特徴データとを比較することが行われる。このような特徴データは、全てのライトデータにおける所定の管理単位のデータごとに記憶される必要があり膨大となる。その結果、ストレージ装置に記憶されている膨大な特徴データのなかから重複判定に用いる特徴データを特定することの負荷が大きく、ライト性能の向上が難しくなる場合がある。
【0005】
そこでこの発明は、上記課題を解決するストレージ装置、情報処理システム、情報処理方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明の第1態様によれば、ストレージ装置は、ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付けるライト命令処理手段と、第1ライトデータに含まれる前記管理単位の第1データに対応する前記特徴データを記憶手段に記憶させる場合、前記第1ライトデータに含まれて前記第1データの後続となる前記管理単位の第2データに対応する前記特徴データを、前記第1データに対応する前記特徴データと関連付けて前記記憶手段に記憶させる特徴データ登録手段と、第2ライトデータに対して重複判定を行う場合に、前記第1データに対応する前記特徴データを用いて重複判定を行い、前記第1データに対応する前記特徴データとの関連付けに基づき前記第2データに対応する前記特徴データを読み出し、前記第2データに対応する前記特徴データを用いて重複判定を行う判定処理手段と、を備える。
【0007】
上記目的を達成するために、本発明の第2態様によれば、情報処理システムは、ホストと、前記ホストと通信可能に接続されたストレージ装置と、を備える。前記ストレージ装置は、ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付けるライト命令処理手段と、第1ライトデータに含まれる前記管理単位の第1データに対応する前記特徴データを記憶手段に記憶させる場合、前記第1ライトデータに含まれて前記第1データの後続となる前記管理単位の第2データに対応する前記特徴データを、前記第1データに対応する前記特徴データと関連付けて前記記憶手段に記憶させる特徴データ登録手段と、第2ライトデータに対して重複判定を行う場合に、前記第1データに対応する前記特徴データを用いて重複判定を行い、前記第1データに対応する前記特徴データとの関連付けに基づき前記第2データに対応する前記特徴データを読み出し、前記第2データに対応する前記特徴データを用いて重複判定を行う判定処理手段と、を含む。
【0008】
上記目的を達成するために、本発明の第3態様によれば、情報処理方法は、ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付け、第1ライトデータに含まれる前記管理単位の第1データに対応する前記特徴データを記憶させる場合、前記第1ライトデータに含まれて前記第1データの後続となる前記管理単位の第2データに対応する前記特徴データを、前記第1データに対応する前記特徴データと関連付けて記憶させ、第2ライトデータに対して重複判定を行う場合に、前記第1データに対応する前記特徴データを用いて重複判定を行い、前記第1データに対応する前記特徴データとの関連付けに基づき前記第2データに対応する前記特徴データを読み出し、前記第2データに対応する前記特徴データを用いて重複判定を行う、ことを含む。
【0009】
上記目的を達成するために、本発明の第4態様によれば、プログラムは、コンピュータに、ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付けることと、第1ライトデータに含まれる前記管理単位の第1データに対応する前記特徴データを記憶させる場合、前記第1ライトデータに含まれて前記第1データの後続となる前記管理単位の第2データに対応する前記特徴データを、前記第1データに対応する前記特徴データと関連付けて記憶させることと、第2ライトデータに対して重複判定を行う場合に、前記第1データに対応する前記特徴データを用いて重複判定を行い、前記第1データに対応する前記特徴データとの関連付けに基づき前記第2データに対応する前記特徴データを読み出し、前記第2データに対応する前記特徴データを用いて重複判定を行うことと、を実行させる。
【発明の効果】
【0010】
本発明によれば、重複判定に用いる特徴データを特定することの負荷の低減を図ることができ、ライト性能の向上を図ることができる。
【図面の簡単な説明】
【0011】
【
図1】本発明の一実施形態による情報処理システムを示す概略構成図である。
【
図2】本発明の一実施形態によるチャンクアドレス変換テーブルの内容の一例を示す図である。
【
図3】本発明の一実施形態によるハッシュテーブルの内容の一例を示す図である。
【
図4】本発明の一実施形態によるハッシュエントリの内容の一例を示す図である。
【
図5】本発明の一実施形態によるハッシュ値判定結果情報の内容の一例を示す図である。
【
図6】本発明の一実施形態による後続ハッシュ情報の内容の一例を示す図である。
【
図7】本発明の一実施形態によるライト処理の流れを示すフローチャートである。
【
図8】本発明の一実施形態によるハッシュ値判定処理の流れの詳細を示すフローチャートである。
【
図9】本発明の一実施形態によるリード処理の流れを示すフローチャートである。
【
図10】本発明の一実施形態による最小構成のストレージ装置を示す図である。
【
図11】本発明の一実施形態による最小構成のストレージ装置における処理の流れを示すフローチャートである。
【
図12】本発明の一実施形態によるコンピュータの構成を示す概略構成図である。
【発明を実施するための形態】
【0012】
以下、本発明の一実施形態によるストレージ装置を含む情報処理システムについて図面を参照して説明する。
【0013】
<1.情報処理システムの構成>
図1は、本実施形態による情報処理システムを示す概略構成図である。情報処理システムSは、例えば、ディスクアレイ装置1と、ホスト2とを含む。ディスクアレイ装置1は、「ストレージ装置」の一例である。
【0014】
ディスクアレイ装置1は、データを不揮発に記憶可能なストレージ装置である。ディスクアレイ装置1は、ホスト2からの制御命令に基づき、データの書き込み、読み出し、または消去などの処理を実行する。例えば、ディスクアレイ装置1は、ホスト2からライト命令を受信する場合、ライト命令に対応するライトデータを、ディスクアレイ装置1の内部の記憶部Mに書き込む。ディスクアレイ装置1は、ホスト2からリード命令を受信する場合、ディスクアレイ装置1の内部の記憶部Mに記憶されているデータを読み出してホスト2へ送信する。ディスクアレイ装置1は、例えば、バックアップ環境や仮想マシン環境のように同じデータが複数コピーされるシステムで使用され得る。ディスクアレイ装置1については、詳しく後述する。
【0015】
ホスト2は、例えば通信ケーブルを介して、ディスクアレイ装置1と通信可能に接続される。ホスト2は、例えば、1つ以上のホスト装置21によって構成される。各ホスト装置21は、サーバ装置でもよく、パーソナルコンピュータやその他のコンピュータでもよい。以下の記載において特段の説明がない限り、ライト命令およびリード命令は、ホスト2からディスクアレイ装置1へ送信されるライト命令およびリード命令を意味する。
【0016】
<2.ディスクアレイ装置>
次に、ディスクアレイ装置1について説明する。
図1に示すように、ディスクアレイ装置1は、例えば、I/O処理部(入出力処理部)11と、メモリ12と、重複排除ボリューム13と、プールボリューム14と、管理ボリューム15とを備える。本実施形態では、重複排除ボリューム13と、プールボリューム14と、管理ボリューム15とにより、記憶部Mが構成されている。記憶部Mは、「記憶手段」の一例である。
【0017】
I/O処理部11は、重複排除ボリューム13およびプールボリューム14に対するデータの書き込み、読み出し、および消去などを管理する。例えば、I/O処理部11は、ホスト2からライト命令およびリード命令を受信する。I/O処理部11は、ライト命令に応じたライト処理またはリード命令に応じたリード処理が完了すると、ホスト2にレスポンスを返却する。本実施形態では、I/O処理部11は、ライト命令処理部111と、リード命令処理部112と、ハッシュ値判定処理部113と、重複排除処理部114とを備える。
【0018】
ライト命令処理部111は、I/O処理部11が重複排除ボリューム13へのライト命令を受信すると、当該ライト命令によりライト処理が要求されたライトデータを一定長のチャンクに分割する。チャンクは、「所定の管理単位のデータ」の一例である。チャンクのサイズよりも大きいサイズのライトデータは、「ひと纏まりのライトデータ」の一例である。
【0019】
本実施形態では、ライト命令処理部111は、ハッシュ値算出部1111を備える。ハッシュ値算出部1111は、ライト命令処理部111により分割された各チャンクからハッシュ値を算出し、算出したハッシュ値をメモリ12に保存する。ハッシュ値は、「特徴データ」の一例である。各チャンクからハッシュ値を算出することは、各チャンクに対して特徴データを対応付けることの一例である。ただし、特徴データは、ハッシュ値に限らず、各チャンクに応じて登録される特有の情報などでもよい。ライト命令処理部111は、「ライト命令処理手段」の一例である。
【0020】
リード命令処理部112は、I/O処理部11がリード命令を受信すると、チャンクアドレス変換テーブル151(
図2参照)に基づき、リード命令の対象となる各チャンクのデータを読み出し、ホスト2にリードデータを返却する。チャンクアドレス変換テーブル151は、各チャンクのデータの格納位置を示す情報が登録されたテーブルである。以下では、各チャンクのデータを「チャンクデータ」と称する場合があり、チャンクデータの格納位置を「チャンク格納位置」と称する場合があり、チャンク格納位置を示す情報を「チャンク格納位置情報」と称する場合がある。なお説明の便宜上、文脈の中で「チャンク格納位置」を「チャンク格納位置情報」の意味で用いている場合がある。
【0021】
図2は、チャンクアドレス変換テーブル151の内容の一例を示す図である。チャンクアドレス変換テーブル151は、例えば、後述する重複排除ボリューム13に保存されるチャンクアドレス(重複排除LDチャンクアドレス)と、当該チャンクアドレスに対応するチャンクデータが保存されるプールボリューム14の格納位置(チャンク格納位置)との対応関係の一覧を記憶するテーブルである。「LD」は、論理ディスク(Logical Disk)を意味する。チャンク格納位置は、例えば、チャンクが格納された論理ディスク番号(LDN:Logical Disk Number)を示すチャンク格納LDNと、チャンクが格納されたアドレスを示すチャンク格納アドレスとを含む。例えば、チャンク格納位置は、プールボリューム14のボリューム番号と、プールボリューム14上のアドレスとを含む。チャンクアドレス変換テーブル151は、後述する重複排除処理部114により生成される。
【0022】
ハッシュ値判定処理部113は、ライト命令が受信され、ライト命令処理部111がライトデータをチャンクに分割してハッシュ値を算出すると、ライト範囲(ライトデータ)の先頭チャンクから順に全てのチャンクについて、ハッシュ値算出部1111が算出したハッシュ値のハッシュテーブル152(
図3参照)における登録の有無の判定を行い、ハッシュ値の登録の有無と、ハッシュ値が登録されている場合にはハッシュ値が登録されているハッシュエントリ1521(
図3参照)の位置情報をメモリ12に記憶する。本実施形態では、ハッシュ値判定処理部113は、ハッシュ値の登録があるチャンクについては、後続チャンクのハッシュ値と、後続チャンクのハッシュ値の格納位置を示す情報とをメモリ12に記憶する。ハッシュ値判定処理部113は、「判定処理手段」の一例である。以下、この内容について詳しく説明する。
【0023】
ハッシュ値判定処理部113は、例えば、ハッシュ値判定方法決定部1131と、ハッシュ値検索部1132と、後続ハッシュ値比較部1133とを備える。
【0024】
ハッシュ値判定方法決定部1131は、メモリ12を参照することで、後述する後続ハッシュ値の事前取得の有無を判定する。「後続ハッシュ値」とは、あるチャンクに対して、その後続となるチャンク(例えば、次のアドレスのチャンク)に対応するハッシュ値である。本実施形態では、後続ハッシュ値は、ハッシュ値判定処理部113による処理対象のチャンク(以下「処理中チャンク」と称する場合がある)よりも前方のチャンク(例えば1つ前方のチャンク)に関して実施された処理のなかで事前に取得される。
【0025】
本実施形態では、ハッシュ値判定方法決定部1131は、後続ハッシュ値がメモリ12に格納されていない場合、後続ハッシュ値の事前取得が無いと判定する。この場合、ハッシュ値判定方法決定部1131は、ハッシュ値の判定方法として、ハッシュ値検索部1132によるハッシュ値判定を選択する。一方で、ハッシュ値判定方法決定部1131は、後続ハッシュ値がメモリ12に格納されている場合、後続ハッシュ値の事前取得があると判定する。この場合、ハッシュ値判定方法決定部1131は、ハッシュ値の判定方法として、後続ハッシュ値比較部1133によるハッシュ値判定を選択する。
【0026】
ハッシュ値検索部1132は、後述するハッシュテーブル152(
図3参照)をリードすることで、ハッシュ値判定処理部113の処理対象のチャンク(処理中チャンク)のハッシュ値が登録されているか否かを調べ、ハッシュ値の登録の有無を判定する。
【0027】
図3は、ハッシュテーブル152の内容の一例を示す図である。ハッシュテーブル152は、ディスクアレイ装置1に記憶済みのチャンクデータに対応する全てのハッシュ値を記憶するテーブルである。ハッシュテーブル152は、全てのライトデータのチャンクに対応するハッシュ値を記憶する必要があり膨大となる。一方で、ハッシュテーブル152は、できるだけテーブルサイズを抑ながら高速に所望のハッシュ値を検索できるように、階層管理を用いたアルゴリズムが採用される。ハッシュテーブル152は、「テーブル情報」の一例である。
【0028】
図3に示すように、ハッシュテーブル152は、例えば、ハッシュ値を検索するための情報(例えばツリー検索情報TS)と、ハッシュ値に関連する情報を記憶するハッシュエントリ1521とを含む。
図3に示す例では、ハッシュテーブル152は、3階層のツリー検索情報TS(TS1~TS3)を含む。
【0029】
ツリー検索情報TSには、ハッシュ値を検索する際に次にリードすべきツリー検索情報TSの位置情報が含まれており、最上位階層から順にツリー検索情報TSをリードすることでハッシュテーブル152におけるハッシュ値の登録の有無を調べることができる。最下位(最下層)のツリー検索情報TS3にはハッシュ値が登録されているハッシュエントリ1521の位置情報が格納されている。このため、ハッシュ値が登録されている場合は、ハッシュエントリ1521の位置情報も取得することができる。
【0030】
図4は、ハッシュエントリ1521の内容の一例を示す図である。ハッシュエントリ1521には、ハッシュ値、後続ハッシュ値、後続ハッシュエントリ位置、およびチャンク格納位置が登録されている。後続ハッシュエントリ位置は、後続ハッシュ値に対応するハッシュエントリ1521の位置情報である。チャンク格納位置は、例えば、チャンクが格納された論理ディスク番号を示すチャンク格納LDNと、チャンクが格納されたアドレスを示すチャンク格納アドレスとを含む。
【0031】
ハッシュ値検索部1132は、処理中チャンクのハッシュ値がハッシュテーブル152に登録されている場合、ハッシュ値の登録の有無と、ハッシュ値が登録されているハッシュエントリ1521の位置情報を、ハッシュ値判定結果情報121(
図5参照)の一部としてメモリ12に保存する。さらに、ハッシュ値検索部1132は、処理中チャンクのハッシュエントリ1521の位置情報を取得すると、ハッシュエントリ1521をリードすることで、後続ハッシュ値および後続ハッシュエントリ位置を取得する(すなわち事前に取得する)。ハッシュ値検索部1132は、処理中チャンクに関して実施された処理のなかで取得された後続ハッシュ値および後続ハッシュエントリ位置を示す情報を、後続ハッシュ情報122(
図6参照)としてメモリ12に保存する。
【0032】
図5は、1つのライトデータに対応するハッシュ値判定結果情報121の内容の一例を示す図である。ハッシュ値判定結果情報121は、ライトデータごとに生成されてメモリ12に保存される。ハッシュ値判定結果情報121では、1つのライトデータに関して、ライト範囲内のチャンク番号と、ハッシュ値と、ハッシテーブル152におけるハッシュ値の登録の有無と、ハッシュエントリ1521の位置情報とが対応付けられて登録されている。
【0033】
図6は、1つの処理中チャンクに対応する後続ハッシュ情報122の内容の一例を示す図である。後続ハッシュ情報122は、処理中チャンクごとに生成されてメモリ12に保存される。後続ハッシュ情報122では、処理中チャンクに関して実施された処理のなかで事前に取得された後続ハッシュ値と後続ハッシュエントリ位置とが対応付けられて登録されている。
【0034】
後続ハッシュ値比較部1133は、ハッシュ値判定処理部113の処理対象のチャンク(処理中チャンク)のハッシュ値と、処理中チャンクの1つ前方のチャンクに関して実施された処理のなかで事前に取得されてメモリ12に保存された後続ハッシュ値(後続ハッシュ情報122に含まれるハッシュ値)とを比較する。後続ハッシュ値比較部1133は、処理中チャンクのハッシュ値と後続ハッシュ値とが一致する場合、当該ハッシュ値のハッシュエントリ1521(後続ハッシュ情報122に含まれる後続ハッシュエントリ位置)をリードして、当該ハッシュ値のハッシュエントリ1521が有効であるか否か判定する。後続ハッシュ値比較部1133は、ハッシュエントリ1521が有効であればハッシュ値の登録がありと判定する。一方で、後続ハッシュ値比較部1133は、ハッシュエントリ1521が有効でない場合、または、上記比較した2つのハッシュ値が一致しない場合、ハッシュ値検索部1132によるハッシュ値判定を実施する。
【0035】
後続ハッシュ値比較部1133は、ハッシュエントリ1521が有効である場合、ハッシュ値検索部1132と同様に、所定の情報をメモリ12に保存する。すなわち、後続ハッシュ値比較部1133は、ハッシュ値の登録の有無と、ハッシュ値が登録されているハッシュエントリ1521の位置情報を、ハッシュ値判定結果情報121(
図5参照)の一部としてメモリ12に保存する。さらに、後続ハッシュ値比較部1133は、処理中チャンクのハッシュエントリ1521の位置情報を取得すると、ハッシュエントリ1521をリードすることで、後続ハッシュ値および後続ハッシュエントリ位置を取得する。後続ハッシュ値比較部1133は、処理中チャンクに関して実施された処理のなかで取得された後続ハッシュ値および後続ハッシュエントリ位置を示す情報を、後続ハッシュ情報122(
図6参照)としてメモリ12に保存する。
【0036】
重複排除処理部114は、ライト範囲(ライトデータ)の先頭チャンクから順に、メモリ12に記憶済みのハッシュ値判定結果情報121に基づき、重複排除を行ったライト処理を行う。例えば、重複排除処理部114は、ハッシュ値判定結果情報121にハッシュ値の登録が既にあるチャンクについては重複データと判定し、当該ハッシュ値が登録されているハッシュエントリ1521からチャンク格納位置情報を取得する。そして、重複排除処理部114は、ハッシュエントリ1521から取得したチャンク格納位置情報に基づき、チャンクアドレス変換テーブル151(
図2参照)のチャンク格納位置情報を登録する。一方で、重複排除処理部114は、ハッシュ値判定結果情報121にハッシュ値の登録がないチャンクについては非重複データと判定し、当該チャンクのデータのライト処理を実施する。そして、重複排除処理部114は、チャンクのデータを格納したチャンク格納位置に応じて、チャンクアドレス変換テーブル151のチャンク格納位置情報を登録する。
【0037】
詳しく述べると、重複排除処理部114は、ハッシュ値登録部1141と、チャンクデータライト部1142とを備える。
【0038】
ハッシュ値登録部1141は、ハッシュ値判定結果情報121にハッシュ値の登録がない非重複チャンクについて、ハッシュテーブル152の新たなハッシュエントリ1521に、ハッシュ値、後続ハッシュ値、後続ハッシュエントリ位置、およびチャンク格納位置情報を登録する。このとき、ハッシュ値登録部1141は、ハッシュ値判定処理部113がメモリ12に保存した後続ハッシュ情報122から後続ハッシュ値および後続ハッシュエントリ位置を取得する。例えば
図8に示す例では、ハッシュ値登録部1141は、チャンク番号0000のハッシュ値AAAAAAを登録するハッシュエントリ1521の後続ハッシュ値には、チャンク番号0001のハッシュ値であるBBBBBBを登録する。ハッシュ値登録部1141は、「特徴データ登録手段」の一例である。ハッシュ値が登録されるハッシュエントリ1521に、後続ハッシュ値も併せて登録することは、第2データに対応する特徴データを、第1データに対応する特徴データと関連付けて記憶部Mに記憶させることの一例である。
【0039】
チャンクデータライト部1142は、非重複と判定されたチャンクのデータをプールボリューム14にライトする。ここでのライト先が上述したチャンクアドレス変換テーブル151およびハッシュエントリ1521に登録されるチャンク格納位置となる。
【0040】
メモリ12は、各種の制御情報(例えばハッシュ値判定結果情報121および後続ハッシュ情報122)を一時的に保存する揮発性の記憶デバイスである。ライト処理にてメモリ12に保存される制御情報(例えばハッシュ値判定結果情報121および後続ハッシュ情報122)は、ライト処理が完了した時点で不要となる。この場合、ライト処理にて保存される制御情報はメモリ12から消去される。これにより、ライト処理にて保存される制御情報が保存されていたメモリ12内の領域は、他用途に使用可能な領域となる。
【0041】
重複排除ボリューム13は、ホスト2がアクセス可能な、重複排除を行う記憶領域(例えば論理ディスク)である。重複排除ボリューム13には、各ライトデータにおける各チャンクのアドレス(重複排除LDチャンクアドレス)が格納される。重複排除ボリューム13は、例えば異なるボリューム番号が割り振られた複数の重複排除ボリューム131を含む。
【0042】
プールボリューム14は、重複排除ボリューム13が保存するデータを一定長のチャンクごとに記憶する記憶領域(例えば論理ディスク)である。プールボリューム14は、I/O処理部11によって読み書きが可能である。プールボリューム14は、例えば異なるボリューム番号が割り振られた複数のプールボリューム141を含む。
【0043】
管理ボリューム15は、チャンクアドレス変換テーブル151およびハッシュテーブル152が保存される記憶領域(例えば論理ディスク)である。管理ボリューム15は、I/O処理部11によって読み書きが可能である。管理ボリューム15は、例えば異なるボリューム番号が割り振られた複数の管理ボリューム151を含む。
【0044】
<3.処理の流れ>
<3.1 ライト処理の流れ>
図7および
図8を参照し、重複排除ボリューム13のライト処理について説明する。
図7は、重複排除ボリューム13のライト処理の流れを示すフローチャートである。まず、ディスクアレイ装置1のI/O処理部11は、ホスト2からライト命令および当該ライト命令に対応するライトデータを受信する(S500)。ライト命令処理部111は、I/O処理部11がホスト2からライト命令を受信すると、当該ライト命令によりライト処理が要求されたライトデータをチャンク単位に分割する(S501)。そして、ハッシュ値算出部1111は、分割したチャンクごとにハッシュ値を算出し、算出したハッシュ値をメモリ12に保存する(S502)。
【0045】
続いて、ハッシュ値判定処理部113は、メモリ12に保存されたハッシュ値がそれぞれハッシュテーブル152に保存済みであるか否か(すなわち、ハッシュテーブル152に登録があるか否か)を判定するハッシュ値判定処理を実施する(S503)。ハッシュ値判定処理の詳細は、
図8を参照して説明する。
【0046】
図8は、ハッシュ値判定処理の流れの詳細を示すフローチャートである。ハッシュ値判定処理では、ライト範囲のチャンクに対応するハッシュ値(メモリ12に保存されたハッシュ値)について、先頭チャンクから順に1つずつハッシュ値判定が行われる。まず、ハッシュ値判定方法決定部1131は、メモリ12を参照し、ハッシュ値判定の処理対象のチャンク(処理中チャンク)の1つ前方のチャンクで実施したハッシュ値判定処理で後続ハッシュ値の取得が行われているか否かを調べる(S600)。すなわち、ハッシュ値判定方法決定部1131は、メモリ12内に、処理中チャンクに対する後続ハッシュ情報122が事前に保存されているか否かを判定する。
【0047】
ハッシュ値判定方法決定部1131は、処理中チャンクに対応する後続ハッシュ値が取得されている場合(すなわち後続ハッシュ情報122が存在する場合、S600:YES)、後続ハッシュ値によるハッシュ値判定を選択する。一方で、ハッシュ値判定方法決定部1131は、処理中チャンクに対応する後続ハッシュ値が取得されていない場合(すなわち後続ハッシュ情報122が存在しない場合、S600:NO)、ハッシュテーブル検索によるハッシュ判定を選択する。ライト範囲の最初のチャンクは、後続ハッシュ値の取得が行われていないので、必ずハッシュテーブル検索によるハッシュ値判定が選択されることになる。
【0048】
ハッシュ値判定方法決定部1131がハッシュテーブル検索によるハッシュ値判定を選択した場合(S600:NO)、ハッシュ値検索部1132は、管理ボリューム15のハッシュテーブル152を検索してハッシュ値の登録の有無を調べる。本実施形態では、ハッシュ値検索部1132は、ハッシュ値の検索として、ハッシュテーブル152の最上位階層から順にツリー検索情報TSをリードすることを行う。ツリー検索情報TSには、検索するハッシュ値に対応する次の階層のリード場所に関する情報が格納されている。このため、最下位層まで(
図3に示す例では第三階層TS3まで)リードすることでハッシュ値の登録の有無を判定し、ハッシュ値が登録されているハッシュエントリ1521の位置情報を取得することができる(S601~S603)。
【0049】
ハッシュ値検索部1132は、上述したハッシュ値の検索を行うことで、ハッシュテーブル152にハッシュ値の登録がされているか否かを判定する(S604)。ハッシュ値検索部1132は、ハッシュ値の登録がある場合(S604:YES)、ハッシュ値が登録されているハッシュエントリ1521をリードし(S605)、後続ハッシュ値および後続ハッシュエントリ位置を取得する(S606)。この場合、ハッシュ値検索部1132は、取得した後続ハッシュ値および後続ハッシュエントリ位置を、次の後続ハッシュ情報122としてメモリ12に保存する。
【0050】
一方で、ハッシュ値判定方法決定部1131が後続ハッシュ値によるハッシュ値判定を選択した場合は(S600:YES)、後続ハッシュ値比較部1133は、メモリ12に記憶されている後続ハッシュ情報122に含まれる後続ハッシュ値と、処理中チャンクのハッシュ値とを比較する(S611)。そして、後続ハッシュ値比較部1133は、比較された2つのハッシュ値が一致するか否かを判定する(S612)。
【0051】
後続ハッシュ値比較部1133は、これらハッシュ値が一致した場合(S612:YES)、メモリ12に記憶されている後続ハッシュ情報122に含まれる後続ハッシュエントリ位置に存在するハッシュエントリ1521を管理ボリューム15からリードする(S613)。そして、後続ハッシュ値比較部1133は、リードしたハッシュエントリ1521が有効であるか否かを判定する(S614)。例えば、後続ハッシュ値比較部1133は、ハッシュエントリ1521に登録されているハッシュ値が処理中チャンクのハッシュ値と一致するか否かでハッシュエントリ1521の有効性を判定することができる。
【0052】
後続ハッシュ値比較部1133は、ハッシュエントリ1521が有効である場合(S614:YES)、ハッシュ値が登録されていると判定し、ハッシュエントリ1521に登録されている後続ハッシュ値および後続ハッシュエントリ位置をメモリ12に取得する(S606)。すなわち、後続ハッシュ値比較部1133は、取得した後続ハッシュ値および後続ハッシュエントリ位置を、次の後続ハッシュ情報122としてメモリ12に保存する。
【0053】
一方で、ハッシュエントリ1521が無効である場合(S614:NO)、または、後続ハッシュ情報122に含まれる後続ハッシュ値と処理中チャンクのハッシュ値とが不一致の場合(S612:NO)、ハッシュ値検索部1132は、上述したハッシュテーブル152の検索(S601~S606)を行い、ハッシュ値の登録の有無を判定する。
【0054】
ハッシュ値判定処理部113は、処理中チャンクのハッシュ値の登録の有無が判明したら、処理中チャンクのハッシュ値の登録の有無と、登録がある場合におけるハッシュエントリ位置を示す情報とを、ハッシュ値判定結果情報121の一部としてメモリ12に記憶する(S607)。ハッシュ値判定処理部113は、ライト範囲のすべてのチャンクに対してハッシュ値の登録の有無をメモリ12に記憶させる処理が完了したら、ハッシュ値判定処理を完了する(S608:YES)。
【0055】
次に、
図5に戻り、ライト処理に関する残りの処理について説明する。
重複排除処理部114は、ハッシュ値判定処理(S503)が完了したら、ライト範囲の先頭チャンクから順にハッシュ値の登録の有無に従い処理を行う。具体的には、重複排除処理部114は、重複排除処理部114による処理対象のチャンクのハッシュ値の登録の必要性の有無を判定する(S504)。
【0056】
重複排除処理部114は、ハッシュテーブル152に処理対象のチャンクのハッシュ値の登録がある場合(S504:YES、例えば
図5のチャンク0001)、重複データと判定する。この場合、重複排除処理部114は、当該ハッシュ値のハッシュエントリ1521からチャンク格納位置情報を取得する(S505)。一方で、重複排除処理部114は、ハッシュテーブル152に処理対象のチャンクのハッシュ値の登録が無い場合(S504:NO、例えば
図5のチャンク0000)、非重複データと判定する。この場合、ハッシュ値登録部1141は、ハッシュテーブル152の新たなハッシュエントリ1521に、処理対象のチャンクのハッシュ値およびチャンク格納位置を登録する(S511)。チャンク格納位置は、例えば、プールボリューム14の未使用箇所であれば決定方法は問わない。
【0057】
本実施形態では、ハッシュ値登録部1141は、ライト範囲に後続のチャンクがある場合(
図8の例でチャンク0000の後続チャンクは0001)、後続チャンクのハッシュ値およびハッシュエントリ位置を、処理対象のチャンクのハッシュ値に関するハッシュエントリ1521の後続ハッシュ値および後続ハッシュエントリ位置に登録する。一方で、ハッシュ値登録部1141は、ライト範囲に後続チャンクが無い場合(
図8の例でチャンク0008)、処理対象のチャンクのハッシュ値に関するハッシュエントリ1521の後続ハッシュ値と後続ハッシュエントリ位置をクリアする(S512)。
【0058】
S504の処理で非重複データと判定された場合、ハッシュ値登録部1141によるハッシュエントリ1521への情報登録が完了したら、チャンクデータライト部1142は、処理対象のチャンクのチャンク格納位置に対応するプールボリューム14に、非重複データであるチャンクデータをライトする(S513)。チャンクデータライト部1142は、チャンク格納先アドレス情報が確定したら、管理ボリューム15のチャンクアドレス変換テーブル151にチャンク格納アドレス情報を登録する(S506)。
【0059】
そして、ライト命令処理部111は、ライト範囲内の全チャンクについてチャンクアドレス変換テーブル151へのチャンク格納アドレス情報の登録が完了したか否かを判定する(S507)。ライト命令処理部111は、チャンク格納アドレス情報の登録が完了していないチャンクがある場合(S507:NO)、S504に戻り上述した処理を繰り返す。一方で、ライト命令処理部111は、全チャンクについてチャンク格納アドレス情報の登録が完了した場合(S507:YES)、ホスト2にライト完了を報告する(S508)。これにより、ライト処理に関する一連の処理が完了する。
【0060】
<3.2 リード処理の流れ>
図9を参照し、重複排除ボリューム13のリード処理について説明する。
図9は、重複排除ボリューム13のリード処理の流れを示すフローチャートである。まず、ディスクアレイ装置1のI/O処理部11は、ホスト2から重複排除ボリューム13に対するリード命令を受信する(S701)。リード命令処理部112は、ディスクアレイ装置1のI/O処理部11がホスト2から重複排除ボリューム13に対するリード命令を受信すると、メモリ12にリードデータを作成するワークメモリ(ワークバッファ)を確保する(S702)。
【0061】
続いて、リード命令処理部112は、リード範囲内(リードアドレス内)の先頭チャンクから順に全てのチャンクに対して、チャンクアドレス変換テーブル151をリードし(S703)、チャンクアドレス変換テーブル151からチャンク格納位置を取得する(S704)。そして、リード命令処理部112は、チャンク格納位置に対応するプールボリューム14のデータを上記ワークメモリにリードする(S705)。
【0062】
続いて、リード命令処理部112は、リード範囲内の全チャンクについてリードが完了したか否かを判定する(S706)。リード命令処理部112は、リードが完了していないチャンクがある場合(S706:NO)、S703に戻り上述した処理を繰り返す。一方で、リード命令処理部112は、全チャンクについてリードが完了した場合(S706:YES)、ホスト2にリードデータを返却し、ワークメモリを開放する(S707)。これにより、リード処理に関する一連の処理が完了する。
【0063】
<4.利点>
重複排除を行うストレージ装置では、ライトデータが既にストレージ装置に記憶されているデータと重複しているか否かを調べる際に、ライトデータを一定長のチャンク分割し、チャンクから算出するハッシュ値などの特徴データ(ここでは便宜上「ハッシュ値」と記載)を既にストレージ記憶しているハッシュ値と比較することで判定することが行われる。ストレージ内でハッシュ値を記憶するハッシュテーブルは、全てのライトデータのチャンクに対するハッシュ値を記憶する必要があり膨大となる。一方、できるだけテーブルサイズを抑ながら高速に所望のハッシュ値を検索できるように、ハッシュテーブルは階層管理を用いたアルゴリズムが採用される。
【0064】
このためライト処理では、ライトデータをチャンクに分割し、チャンクに対するハッシュ値を算出し、算出したハッシュ値がハッシュテーブルに登録されているか否かを調べる。この際、ハッシュテーブルの階層を辿りながら検索するために複数回の内部処理が発生する。重複排除効果の高いストレージのチャンクサイズは例えば4KBや8KBであり、チャンクサイズより大きいサイズのライト要求をホストから受けるケースが多くなる。チャンクサイズより大きいサイズのライトではチャンク数分のハッシュ値検索が動作し、大量の内部処理が発生するためライト性能が低下するという場合がある。
【0065】
一方で、本実施形態では、ストレージ装置(例えばディスクアレイ装置1)は、ライト命令処理部(例えばライト命令処理部111)と、特徴データ登録部(例えばハッシュ値登録部1141)と、判定処理部(例えばハッシュ値判定処理部113)とを備える。ライト命令処理部は、ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータ(例えばチャンク)ごとに、当該データに応じた特徴データ(例えばハッシュ値)を対応付ける。特徴データ登録部は、第1ライトデータに含まれる管理単位の第1データ(例えば
図5中のチャンク番号0000のデータ)に対応する特徴データを記憶部(例えば記憶部M)に記憶させる場合、第1ライトデータに含まれて前記第1データの後続となる管理単位の第2データ(例えば
図5中のチャンク番号0001のデータ)に対応する特徴データを、第1データに対応する特徴データと関連付けて記憶部に記憶させる。判定処理部は、第2ライトデータに対して重複判定を行う場合に、第1データに対応する特徴データを用いて重複判定を行い、第1データに対応する特徴データとの関連付けに基づき第2データに対応する特徴データを読み出し、第2データに対応する特徴データを用いて重複判定を行う。このような構成によれば、第2データに対応する特徴データを特定することの負荷が低減され、ライト性能の向上を図ることができる。例えば上述した実施形態では、
図6中のS611~S613に示すように後続ハッシュ値を利用してハッシュ値の登録の有無を調べることができるため、ハッシュテーブル152の検索のためのリード(S601~S603)に関する内部処理を削減することができる。
【0066】
本実施形態では、特徴データは、管理単位のデータから算出されるハッシュ値である。このような構成によれば、管理単位のデータに応じた特徴データを比較的容易に求めることができる。これにより、ライト性能の向上を図ることができる。
【0067】
本実施形態では、特徴データ登録部は、第2データに対応する特徴データを、第1データに対応する特徴データと同じエントリに登録する。このような構成によれば、別のテーブルを作成することなく、第1データに対応する特徴データと第2データに対応する特徴データとを関連付けて記憶することができる。これにより、別のテーブルを管理する場合にと比べて管理負担を低減しつつ、ライト性能の向上を図ることができる。
【0068】
なお、第2データに対応する特徴データを、第1データに対応する特徴データと関連付けて記憶部に記憶させることは、第2データに対応する特徴データを、第1データに対応する特徴データと同じエントリに登録することに限定されず、第2データに対応する特徴データの格納位置を示す情報を、第1データに対応する特徴データと同じエントリに登録することなども含む。この場合、上記関連付けに基づいて得られる第2データに対応する特徴データの格納位置を示す情報に基づき、第2データに対応する特徴データを取得することができる。
【0069】
本実施形態では、特徴データ登録部は、第2データに対応する特徴データと、第2データに対応する特徴データの格納位置を示す情報とを、第1データに対応する特徴データと同じエントリに登録する。このような構成によれば、上記エントリをリードすることで第2データに対応する特徴データが格納される格納位置を示す情報を取得することができ、これにより、上記格納位置からリードした第2データに対応する特徴データを用いて有効性の判定を行うことができる。これにより、ライトに関する信頼性の向上を図ることができる。
【0070】
本実施形態では、特徴データ登録部は、第2データに対応する特徴データを記憶部に記憶させる場合、第1ライトデータに含まれて第2データの後続となる管理単位の第3データに対応する特徴データを、第2データに対応する特徴データと関連付けて記憶部に記憶させる。例えば、上述した実施形態では、第3データに対応するハッシュ値が、第2データに対応するハッシュ値のエントリに登録される。そして、判定処理部は、第2ライトデータに対して重複判定を行う場合に、第2データに対応する特徴データとの関連付けに基づき第3データに対応する特徴データを読み出し、第3データに対応する特徴データを用いて重複判定を行う。このような構成によれば、第3データに対応する特徴データについては、第2データに対応する特徴データとの関連付けに基づいて取得することができる。すなわち、同じ処理を繰り返すことで次々と後続データに対応する特徴データを取得することができる。これにより、ライト性能の向上をさらに図ることができる。
【0071】
<5.変形例>
上述した実施形態では、チャンクサイズよりも大きいサイズのライトデータに関するものであったが、上述した実施形態は、例えば小さいサイズのデータのライト命令が連続するシーケンシャルライトにも適用可能である。シーケンシャルライトで受信するライトデータは、「一連のライトデータ」の一例であるとともに、「第1ライトデータ」および「第2ライトデータ」のそれぞれ別の一例である。ディスクアレイ装置1がホスト2からのシーケンシャルライトを検出した場合には、ハッシュエントリ1521に後続ハッシュ値と後続ハッシュエントリ位置とを記憶することで、続くアドレスへのライト処理におけるハッシュ値判定にて、後続ハッシュ値によるハッシュ判定(
図6のS611~S612)を実施することが可能となる。これにより、ライト性能の向上を図ることができる。
【0072】
図10は、最小構成のストレージ装置を示す図である。
図11は、最小構成のストレージ装置における処理の流れを示すフローを示す図である。ストレージ装置800は、ライト命令処理部810と、特徴データ登録部820と、判定処理部830とを備える。
ライト命令処理部810は、ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付ける(S902)。
特徴データ登録部820は、第1ライトデータに含まれる管理単位の第1データに対応する特徴データを記憶部に記憶させる場合、第1ライトデータに含まれて第1データの後続となる管理単位の第2データに対応する特徴データを、第1データに対応する特徴データと関連付けて記憶部に記憶させる(S901)。
判定処理部830は、第2ライトデータに対して重複判定を行う場合に、第1データに対応する特徴データを用いて重複判定を行い、第1データに対応する特徴データとの関連付けに基づき第2データに対応する特徴データを読み出し、第2データに対応する特徴データを用いて重複判定を行う(S903)。
【0073】
図12は、少なくとも1つの実施形態に係るストレージ装置のコンピュータの構成を示す概略ブロック図である。コンピュータ5は、CPU6、メインメモリ7、ストレージ8、インターフェース9を備える。
【0074】
例えば、上述のI/O処理部11、メモリ12、重複排除ボリューム13、プールボリューム14、および管理ボリューム15のそれぞれは、コンピュータ5に実装される。そして、上述したI/O処理部11の動作は、プログラムの形式でストレージ8に記憶されている。CPU6は、プログラムをストレージ8から読み出してメインメモリ7に展開し、当該プログラムに従って上記処理を実行する。また、CPU6は、プログラムに従って、上述した重複排除ボリューム13、プールボリューム14、および管理ボリューム15に対応する記憶領域をストレージ8に確保する。メモリ12は、メインメモリ7により実現される。
【0075】
重複排除ボリューム13、プールボリューム14、および管理ボリューム15の例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、磁気ディスク、光磁気ディスク、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、半導体メモリなどが挙げられる。重複排除ボリューム13、プールボリューム14、および管理ボリューム15は、コンピュータ5のバスに直接接続された内部メディアであってもよいし、インターフェース9または通信回線を介してコンピュータ5に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ5に配信される場合、配信を受けたコンピュータ5が当該プログラムをメインメモリ7に展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、ストレージ8は、一時的でない有形の記憶媒体である。
【0076】
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル(差分プログラム)であってもよい。
【0077】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例であり、発明の範囲を限定しない。これらの実施形態は、発明の要旨を逸脱しない範囲で、種々の追加、省略、置き換え、変更を行ってよい。
【符号の説明】
【0078】
S…情報処理システム
1…ディスクアレイ装置
2…ホスト
11…I/O処理部
12…メモリ
13…重複排除ボリューム
14…プールボリューム
15…管理モジュール
111…ライト命令処理部
1111…ハッシュ値算出部
112…リード命令処理部
113…ハッシュ値判定処理部
1131…ハッシュ値判定方法決定部
1132…ハッシュ値検索部
1133…後続ハッシュ値比較部
114…重複排除処理部
1141…ハッシュ値登録部
1142…チャンクデータライト部
800…ストレージ装置
810…ライト命令処理部
820…特徴データ登録部
830…判定処理部
【手続補正書】
【提出日】2022-08-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付けるライト命令処理手段と、
第1ライトデータに含まれる前記管理単位の第1データに対応する前記特徴データである第1特徴データを記憶手段に記憶させる場合、前記第1ライトデータに含まれて前記第1データの後続となる前記管理単位の第2データに対応する前記特徴データである第2特徴データを、前記第1特徴データと関連付けて前記記憶手段に記憶させる特徴データ登録手段と、
第2ライトデータに対して重複判定を行う場合に、前記第1特徴データと、前記第2ライトデータに含まれる前記管理単位の第4データに対応する前記特徴データである第4特徴データとを比較する第1重複判定を行い、前記第1重複判定において前記第1特徴データと前記第4特徴データとが一致し、前記第1特徴データとの関連付けに基づき前記第2特徴データが読み出し可能である場合、前記第1特徴データとの関連付けに基づき前記第2特徴データを読み出し、前記第2特徴データと、前記第2ライトデータに含まれて前記第4データの後続となる前記管理単位の第5データに対応する前記特徴データである第5特徴データとを比較する第2重複判定を行う判定処理手段と、
前記第1重複判定の結果に基づき、前記第4データが重複データであるか否か判定し、前記第2重複判定の結果に基づき、前記第5データが重複データであるか否か判定する重複排除処理手段と、
を備えたストレージ装置。
【請求項2】
前記特徴データは、前記管理単位のデータから算出されるハッシュ値である、
請求項1に記載のストレージ装置。
【請求項3】
前記特徴データ登録手段は、前記第2特徴データを、前記第1特徴データと同じエントリに登録する、
請求項1または請求項2に記載のストレージ装置。
【請求項4】
前記特徴データ登録手段は、前記第2特徴データと、前記第2特徴データの格納位置を示す情報とを、前記第1特徴データと同じエントリに登録する、
請求項1から請求項3のうちいずれか1項に記載のストレージ装置。
【請求項5】
前記記憶手段は、複数階層を含むテーブル情報を記憶し、前記複数階層のうち最下層以外のテーブル情報には、前記特徴データを検索する際に次にリードすべきツリー検索情報の位置情報が格納され、前記複数階層の最下層のテーブル情報に前記エントリの位置情報が格納されている、
請求項3または請求項4に記載のストレージ装置。
【請求項6】
前記特徴データ登録手段は、前記第2特徴データを前記記憶手段に記憶させる場合、前記第1ライトデータに含まれて前記第2データの後続となる前記管理単位の第3データに対応する前記特徴データである第3特徴データを、前記第2特徴データと関連付けて前記記憶手段に記憶させ、
前記判定処理手段は、前記第2ライトデータに対して重複判定を行う場合に、前記第2重複判定において前記第2特徴データと前記第5特徴データとが一致し、前記第2特徴データとの関連付けに基づき前記第3特徴データが読み出し可能である場合、前記第2特徴データとの関連付けに基づき前記第3特徴データを読み出し、前記第3特徴データと、前記第2ライトデータに含まれて前記第5データの後続となる前記管理単位の第6データに対応する前記特徴データである第6特徴データとを比較する第3重複判定を行い、
前記重複排除処理手段は、前記第3重複判定の結果に基づき、前記第6データが重複データであるか否か判定する、
請求項1から請求項5のうちいずれか1項に記載のストレージ装置。
【請求項7】
ホストと、
前記ホストと通信可能に接続されたストレージ装置と、
を備え、
前記ストレージ装置は、
ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付けるライト命令処理手段と、
第1ライトデータに含まれる前記管理単位の第1データに対応する前記特徴データである第1特徴データを記憶手段に記憶させる場合、前記第1ライトデータに含まれて前記第1データの後続となる前記管理単位の第2データに対応する前記特徴データである第2特徴データを、前記第1特徴データと関連付けて前記記憶手段に記憶させる特徴データ登録手段と、
第2ライトデータに対して重複判定を行う場合に、前記第1特徴データと、前記第2ライトデータに含まれる前記管理単位の第4データに対応する前記特徴データである第4特徴データとを比較する第1重複判定を行い、前記第1重複判定において前記第1特徴データと前記第4特徴データとが一致し、前記第1特徴データとの関連付けに基づき前記第2特徴データが読み出し可能である場合、前記第1特徴データとの関連付けに基づき前記第2特徴データを読み出し、前記第2特徴データと、前記第2ライトデータに含まれて前記第4データの後続となる前記管理単位の第5データに対応する前記特徴データである第5特徴データとを比較する第2重複判定を行う判定処理手段と、
前記第1重複判定の結果に基づき、前記第4データが重複データであるか否か判定し、前記第2重複判定の結果に基づき、前記第5データが重複データであるか否か判定する重複排除処理手段と、
を含む、情報処理システム。
【請求項8】
ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付け、
第1ライトデータに含まれる前記管理単位の第1データに対応する前記特徴データである第1特徴データを記憶させる場合、前記第1ライトデータに含まれて前記第1データの後続となる前記管理単位の第2データに対応する前記特徴データである第2特徴データを、前記第1特徴データと関連付けて記憶させ、
第2ライトデータに対して重複判定を行う場合に、前記第1特徴データと、前記第2ライトデータに含まれる前記管理単位の第4データに対応する前記特徴データである第4特徴データとを比較する第1重複判定を行い、前記第1重複判定において前記第1特徴データと前記第4特徴データとが一致し、前記第1特徴データとの関連付けに基づき前記第2特徴データが読み出し可能である場合、前記第1特徴データとの関連付けに基づき前記第2特徴データを読み出し、前記第2特徴データと、前記第2ライトデータに含まれて前記第4データの後続となる前記管理単位の第5データに対応する前記特徴データである第5特徴データとを比較する第2重複判定を行なわせ、
前記第1重複判定の結果に基づき、前記第4データが重複データであるか否か判定させ、前記第2重複判定の結果に基づき、前記第5データが重複データであるか否か判定させる、
情報処理方法。
【請求項9】
コンピュータに、
ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付けることと、
第1ライトデータに含まれる前記管理単位の第1データに対応する前記特徴データである第1特徴データを記憶させる場合、前記第1ライトデータに含まれて前記第1データの後続となる前記管理単位の第2データに対応する前記特徴データである第2特徴データを、前記第1特徴データと関連付けて記憶させることと、
第2ライトデータに対して重複判定を行う場合に、前記第1特徴データと、前記第2ライトデータに含まれる前記管理単位の第4データに対応する前記特徴データである第4特徴データとを比較する第1重複判定を行い、前記第1重複判定において前記第1特徴データと前記第4特徴データとが一致し、前記第1特徴データとの関連付けに基づき前記第2特徴データが読み出し可能である場合、前記第1特徴データとの関連付けに基づき前記第2特徴データを読み出し、前記第2特徴データと、前記第2ライトデータに含まれて前記第4データの後続となる前記管理単位の第5データに対応する前記特徴データである第5特徴データとを比較する第2重複判定を行うことと、
前記第1重複判定の結果に基づき、前記第4データが重複データであるか否か判定し、前記第2重複判定の結果に基づき、前記第5データが重複データであるか否か判定することと、
を実行させるプログラム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0006
【補正方法】変更
【補正の内容】
【0006】
上記目的を達成するために、本発明の第1態様によれば、ストレージ装置は、ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付けるライト命令処理手段と、第1ライトデータに含まれる前記管理単位の第1データに対応する前記特徴データである第1特徴データを記憶手段に記憶させる場合、前記第1ライトデータに含まれて前記第1データの後続となる前記管理単位の第2データに対応する前記特徴データである第2特徴データを、前記第1特徴データと関連付けて前記記憶手段に記憶させる特徴データ登録手段と、第2ライトデータに対して重複判定を行う場合に、前記第1特徴データと、前記第2ライトデータに含まれる前記管理単位の第4データに対応する前記特徴データである第4特徴データとを比較する第1重複判定を行い、前記第1重複判定において前記第1特徴データと前記第4特徴データとが一致し、前記第1特徴データとの関連付けに基づき前記第2特徴データが読み出し可能である場合、前記第1特徴データとの関連付けに基づき前記第2特徴データを読み出し、前記第2特徴データと、前記第2ライトデータに含まれて前記第4データの後続となる前記管理単位の第5データに対応する前記特徴データである第5特徴データとを比較する第2重複判定を行う判定処理手段と、前記第1重複判定の結果に基づき、前記第4データが重複データであるか否か判定し、前記第2重複判定の結果に基づき、前記第5データが重複データであるか否か判定する重複排除処理手段と、を備える。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】変更
【補正の内容】
【0007】
上記目的を達成するために、本発明の第2態様によれば、情報処理システムは、ホストと、前記ホストと通信可能に接続されたストレージ装置と、を備える。前記ストレージ装置は、ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付けるライト命令処理手段と、第1ライトデータに含まれる前記管理単位の第1データに対応する前記特徴データである第1特徴データを記憶手段に記憶させる場合、前記第1ライトデータに含まれて前記第1データの後続となる前記管理単位の第2データに対応する前記特徴データである第2特徴データを、前記第1特徴データと関連付けて前記記憶手段に記憶させる特徴データ登録手段と、第2ライトデータに対して重複判定を行う場合に、前記第1特徴データと、前記第2ライトデータに含まれる前記管理単位の第4データに対応する前記特徴データである第4特徴データとを比較する第1重複判定を行い、前記第1重複判定において前記第1特徴データと前記第4特徴データとが一致し、前記第1特徴データとの関連付けに基づき前記第2特徴データが読み出し可能である場合、前記第1特徴データとの関連付けに基づき前記第2特徴データを読み出し、前記第2特徴データと、前記第2ライトデータに含まれて前記第4データの後続となる前記管理単位の第5データに対応する前記特徴データである第5特徴データとを比較する第2重複判定を行う判定処理手段と、前記第1重複判定の結果に基づき、前記第4データが重複データであるか否か判定し、前記第2重複判定の結果に基づき、前記第5データが重複データであるか否か判定する重複排除処理手段と、を含む。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0008
【補正方法】変更
【補正の内容】
【0008】
上記目的を達成するために、本発明の第3態様によれば、情報処理方法は、ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付け、第1ライトデータに含まれる前記管理単位の第1データに対応する前記特徴データである第1特徴データを記憶させる場合、前記第1ライトデータに含まれて前記第1データの後続となる前記管理単位の第2データに対応する前記特徴データである第2特徴データを、前記第1特徴データと関連付けて記憶させ、第2ライトデータに対して重複判定を行う場合に、前記第1特徴データと、前記第2ライトデータに含まれる前記管理単位の第4データに対応する前記特徴データである第4特徴データとを比較する第1重複判定を行い、前記第1重複判定において前記第1特徴データと前記第4特徴データとが一致し、前記第1特徴データとの関連付けに基づき前記第2特徴データが読み出し可能である場合、前記第1特徴データとの関連付けに基づき前記第2特徴データを読み出し、前記第2特徴データと、前記第2ライトデータに含まれて前記第4データの後続となる前記管理単位の第5データに対応する前記特徴データである第5特徴データとを比較する第2重複判定を行なわせ、前記第1重複判定の結果に基づき、前記第4データが重複データであるか否か判定させ、前記第2重複判定の結果に基づき、前記第5データが重複データであるか否か判定させる、ことを含む。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0009
【補正方法】変更
【補正の内容】
【0009】
上記目的を達成するために、本発明の第4態様によれば、プログラムは、コンピュータに、ひと纏まりまたは一連のライトデータに含まれる所定の管理単位のデータごとに、当該データに応じた特徴データを対応付けることと、第1ライトデータに含まれる前記管理単位の第1データに対応する前記特徴データである第1特徴データを記憶させる場合、前記第1ライトデータに含まれて前記第1データの後続となる前記管理単位の第2データに対応する前記特徴データである第2特徴データを、前記第1特徴データと関連付けて記憶させることと、第2ライトデータに対して重複判定を行う場合に、前記第1特徴データと、前記第2ライトデータに含まれる前記管理単位の第4データに対応する前記特徴データである第4特徴データとを比較する第1重複判定を行い、前記第1重複判定において前記第1特徴データと前記第4特徴データとが一致し、前記第1特徴データとの関連付けに基づき前記第2特徴データが読み出し可能である場合、前記第1特徴データとの関連付けに基づき前記第2特徴データを読み出し、前記第2特徴データと、前記第2ライトデータに含まれて前記第4データの後続となる前記管理単位の第5データに対応する前記特徴データである第5特徴データとを比較する第2重複判定を行うことと、前記第1重複判定の結果に基づき、前記第4データが重複データであるか否か判定し、前記第2重複判定の結果に基づき、前記第5データが重複データであるか否か判定することと、を実行させる。