(57)【要約】【課題】ストレージを復旧する際にホストに過度の負担がかかるおそれがある。【解決手段】ストレージ装置は、要約情報取得部と、データ取得部と、を有する。要約情報取得部は、自装置と同一内容のデータを記憶する外部装置から当該外部装置が重複排除処理を行う際に算出した要約値を示す他装置要約情報を取得する。データ取得部は、前記要約情報取得部が取得した前記他装置要約情報に基づいて外部装置から復旧対象のデータを取得する。【選択図】図１
2019212081.tif 000002
【特許請求の範囲】
【請求項１】
自装置と同一内容のデータを記憶する外部装置から当該外部装置が重複排除処理を行う際に算出した要約値を示す他装置要約情報を取得する要約情報取得部と、
前記要約情報取得部が取得した前記他装置要約情報に基づいて外部装置から復旧対象のデータを取得するデータ取得部と、
を有する
ストレージ装置。
【請求項２】
請求項１に記載のストレージ装置であって、
前記要約情報取得部が取得した前記他装置要約情報と、自装置が算出した要約値を示す自装置要約情報と、を比較する比較部を有し、
前記データ取得部は、前記比較部による比較の結果に基づいて外部装置から復旧対象のデータを取得する
ストレージ装置。
【請求項３】
請求項２に記載のストレージ装置であって、
前記比較部は、前記他装置要約情報と前記自装置要約情報とを比較することで、前記他装置要約情報に含まれるものの前記自装置要約情報に含まれない要約値を特定し、
前記データ取得部は、前記比較部が特定した要約値が示すデータを外部装置から取得する
ストレージ装置。
【請求項４】
請求項２又は請求項３に記載のストレージ装置であって、
前記比較部は、前記他装置要約情報と、自装置が重複排除処理を行う際に算出した要約値を示す前記自装置要約情報と、を比較する
ストレージ装置。
【請求項５】
請求項２又は請求項３に記載のストレージ装置であって、
前記比較部は、前記他装置要約情報と、記憶装置に障害が発生した後に当該記憶装置が記憶するデータに基づいて算出した要約値を示す前記自装置要約情報と、を比較する
ストレージ装置。
【請求項６】
請求項２から請求項５までのいずれか１項に記載のストレージ装置であって、
前記データ取得部は、前記比較部による比較の結果に基づいて、復旧対象のデータを取得する外部装置を選択する
ストレージ装置。
【請求項７】
請求項６に記載のストレージ装置であって、
前記データ取得部は、前記他装置要約情報に含まれている要約値に対する、前記自装置要約情報に含まれている要約値の割合が予め定められた閾値以下であるか否かに応じて、復旧対象のデータを取得する外部装置を選択する
ストレージ装置。
【請求項８】
請求項７に記載のストレージ装置であって、
前記データ取得部は、前記他装置要約情報に含まれている要約値に対する、前記自装置要約情報に含まれている要約値の割合が予め定められた閾値より大きい場合、自装置と同一内容のデータを記憶する第１外部装置からデータを取得する
ストレージ装置。
【請求項９】
請求項７または請求項８に記載のストレージ装置であって、
前記データ取得部は、前記他装置要約情報に含まれている要約値に対する、前記自装置要約情報に含まれている要約値の割合が予め定められた閾値以下である場合、データを重複排除した状態で記憶する重複排除ストレージである第２外部装置から復旧対象のデータを取得する
ストレージ装置。
【請求項１０】
請求項１から請求項５までのいずれか１項に記載のストレージ装置であって、
ストレージ装置は、データを重複排除した状態で記憶する重複排除ストレージである第２外部装置と接続され、前記第２外部装置に対してデータを送信するよう構成され、
前記データ取得部は、前記第２外部装置から復旧対象のデータを取得する
ストレージ装置。
【請求項１１】
請求項１から請求項１０までのいずれか１項に記載のストレージ装置であって、
ストレージ装置は、ホストが記憶するデータと同一内容のデータを記憶するとともに、当該ストレージ装置と接続された第１外部装置も当該同一内容のデータを記憶するよう構成されており、
前記要約情報取得部は、前記第１外部装置から前記他装置要約情報を取得する
ストレージ装置。
【請求項１２】
請求項１から請求項１１までのいずれか１項に記載のストレージ装置であって、
ストレージ装置は、データを重複排除した状態で記憶する重複排除ストレージである第２外部装置と接続されており、
前記要約情報取得部は、前記第２外部装置から前記他装置要約情報を取得する
ストレージ装置。
【請求項１３】
情報処理装置が、
自装置と同一内容のデータを記憶する外部装置から当該外部装置が重複排除処理を行う際に算出した要約値を示す他装置要約情報を取得し、
取得した前記他装置要約情報に基づいて外部装置から復旧対象のデータを取得する
復旧方法。
【請求項１４】
情報処理装置に、
自装置と同一内容のデータを記憶する外部装置から当該外部装置が重複排除処理を行う際に算出した要約値を示す他装置要約情報を取得する要約情報取得部と、
前記要約情報取得部が取得した前記他装置要約情報に基づいて外部装置から復旧対象のデータを取得するデータ取得部と、
を実現するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、復旧方法、プログラムに関する。
【背景技術】
【０００２】
ハードディスクドライブなどの障害の対策として、複数のディスクドライブに同一のデータを記憶するミラーリングという技術が知られている。ミラーリングを行うシステムの場合、例えば、ホストが記憶するデータと同一のデータが他のストレージなどに記憶される。
【０００３】
また、上記のような構成を有するシステムにおいて、ミラーリング先のストレージ障害に対する耐障害性を向上させることなどを目的として、ストレージに重複排除ストレージを接続することがある。このような技術の一例として、例えば、特許文献１がある。特許文献１には、ストレージコントローラと、正ボリューム及び正ボリュームを共有する複数の副ボリュームと、それぞれが外部ボリュームを有する複数の外部装置と、を有するストレージシステムが記載されている。特許文献１によると、ストレージコントローラは、複数の副ボリュームの一つから取得される正ボリュームに関連するデータを複数の外部装置の内の一つの外部ボリュームに格納する。また、副ボリューム及び外部ボリュームそれぞれは複数のページに分割されており、複数の副ボリュームの同一アドレスのページを外部ボリュームの内の一つのボリュームの複数のページに割り当てる。そして、外部装置は、一つの外部ボリュームに格納された関連するデータを重複排除する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５９８０５８８号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載されているようなストレージに重複排除ストレージを接続した構成において、ストレージが故障することがある。このような故障が発生した場合、復旧処理はホストが行っていた。具体的には、例えば、ホストが正常なボリュームのイメージを読み込み、障害が発生したボリュームに書き込んでいた。その結果、復旧時にホストに過度な負担がかかるおそれがある、という問題が生じていた。
【０００６】
そこで、本発明の目的は、ストレージを復旧する際にホストに過度の負担がかかるおそれがある、という課題を解決するストレージ装置、復旧方法、プログラムを提供することにある。
【課題を解決するための手段】
【０００７】
かかる目的を達成するため本発明の一形態であるストレージ装置は、
自装置と同一内容のデータを記憶する外部装置から当該外部装置が重複排除処理を行う際に算出した要約値を示す他装置要約情報を取得する要約情報取得部と、
前記要約情報取得部が取得した前記他装置要約情報に基づいて外部装置から復旧対象のデータを取得するデータ取得部と、
を有する
という構成をとる。
【０００８】
また、本発明の他の形態である復旧方法は、
情報処理装置が、
自装置と同一内容のデータを記憶する外部装置から当該外部装置が重複排除処理を行う際に算出した要約値を示す他装置要約情報を取得し、
取得した前記他装置要約情報に基づいて外部装置から復旧対象のデータを取得する
という構成をとる。
【０００９】
また、本発明の他の形態であるプログラムは、
情報処理装置に、
自装置と同一内容のデータを記憶する外部装置から当該外部装置が重複排除処理を行う際に算出した要約値を示す他装置要約情報を取得する要約情報取得部と、
前記要約情報取得部が取得した前記他装置要約情報に基づいて外部装置から復旧対象のデータを取得するデータ取得部と、
を実現するためのプログラムである。
【発明の効果】
【００１０】
本発明は、以上のように構成されることにより、ストレージを復旧する際にホストに過度の負担がかかるおそれがある、という課題を解決するストレージ装置、復旧方法、プログラムを提供することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態におけるストレージシステムの構成の一例を示すブロック図である。
【図２】図１で示すホストの構成の一例を示すブロック図である。
【図３】図１で示すストレージの構成の一例を示すブロック図である。
【図４】ストレージシステムにおける復旧処理の一例を示す図である。
【図５】ストレージシステムにおける復旧処理の一例を示すシーケンス図である。
【図６】ストレージシステムにおける復旧処理の他の一例を示すシーケンス図である。
【図７】ストレージシステムにおける復旧処理の他の一例を示すシーケンス図である。
【図８】本発明の第２の実施形態におけるストレージシステムの構成の一例を示すブロック図である。
【図９】第２の実施形態のストレージシステムにおける復旧処理の一例を示すシーケンス図である。
【図１０】本発明の第３の実施形態におけるストレージ装置の構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１２】
［第１の実施形態］
本発明の第１の実施形態を図１から図７までを参照して説明する。図１は、ストレージシステムの構成の一例を示すブロック図である。図２は、ホスト１の構成の一例を示すブロック図である。図３は、ストレージ２の構成の一例を示すブロック図である。図４は、ストレージシステムにおける復旧処理の一例を示す図である。図５は、ストレージシステムにおける復旧処理の一例を示すシーケンス図である。図６、図７は、ストレージシステムにおける復旧処理の他の一例を示すシーケンス図である。
【００１３】
本発明の第１の実施形態では、重複排除処理を行う際などに算出するブロックデータの要約値であるハッシュ値を障害からの復旧時に利用するストレージ２を有するストレージシステムについて説明する。本実施形態におけるストレージシステムは、冗長性確保などを目的としてミラーリングを行っており、ストレージ２−１とストレージ２−２が同一のデータを記憶するよう構成されている。また、ストレージ２−１とストレージ２−２とは、重複排除処理を行う際、同一のハッシュ関数に基づいてハッシュ値を算出するよう構成されている。後述するように、２つのストレージ２のうちのいずれか一方に障害が発生した場合、ホスト１は２台のストレージ２それぞれに対して復旧を指示する。上記指示を受信すると、障害が生じていないストレージ２は、障害が生じているストレージ２に対して、自身が記憶するハッシュ情報２２１（要約情報）を送信する。そして、障害が生じているストレージ２は、受信したハッシュ情報２２１と、自身のハッシュ情報２２１と、に基づいて、重複排除ストレージ３などから復旧に必要となるデータを取得する。
【００１４】
図１は、第１の実施形態におけるストレージシステムの構成の一例を示している。図１を参照すると、ストレージシステムは、例えば、ホスト１と、２台のストレージ２（ストレージ装置）と、重複排除ストレージ３と、を有している。
【００１５】
図１で示すように、ホスト１は、ストレージ２−１と互いに通信可能なよう接続されているとともに、ストレージ２−２と互いに通信可能なよう接続されている。また、重複排除ストレージ３は、ストレージ２−１と互いに通信可能なよう接続されているとともに、ストレージ２−２と互いに通信可能なよう接続されている。また、ストレージ２−１とストレージ２−２とも、互いに通信可能なよう接続されている。
【００１６】
ホスト１は、ストレージ２に障害が発生した場合などにおいて、障害からの復旧をストレージ２に対して指示する情報処理装置である。後述するように、ホスト１は、障害の発生したストレージ２に対して復旧を指示するとともに、障害の発生していないストレージ２に対しても復旧を指示する。
【００１７】
図２は、ホスト１の構成の一例を示している。図２を参照すると、ホスト１は、記憶装置１１を有するとともに、ミラーリング部１２と、障害検知部１３と、復旧指示部１４と、を有している。
【００１８】
例えば、ホスト１は、図示しない演算装置と図示しない記憶装置（または、記憶装置１１）とを有している。ホスト１は、例えば、図示しない記憶装置に格納されたプログラムを図示しない演算装置が実行することで、上記各処理部を実現する。
【００１９】
記憶装置１１は、ハードディスクなどの記憶装置である。記憶装置１１は、例えば、ミラーリング・バックアップ対象のデータ（例えば、ファイルなど）を記憶している。
【００２０】
ミラーリング部１２は、記憶装置１１が記憶するデータと同一内容のデータをストレージ２の記憶装置２１に記憶させる。例えば、ミラーリング部１２は、ストレージ２−１に対して記憶装置１１が記憶するデータを記憶するよう指示するとともに、ストレージ２−２に対して記憶装置１１が記憶するデータを記憶するよう指示する。このように、ミラーリング部１２は、例えば、接続された２台のストレージ２に対して、記憶装置１１が記憶するデータと同一内容のデータを記憶するよう指示する。
【００２１】
障害検知部１３は、ストレージ２に障害が発生した旨を検知する。例えば、障害検知部１３は、ストレージ２から障害が発生した旨を示す障害検知情報を受信することで、当該障害検知情報の送信元であるストレージ２に障害が発生した旨を検知する。なお、障害検知部１３は、例えば、定期的にストレージ２に対して問い合わせを行い、問い合わせ結果に基づいて障害を検知するなど、上記例示した以外の方法を用いて障害を検知しても構わない。
【００２２】
復旧指示部１４は、ストレージ２に対して復旧を指示する。例えば、復旧指示部１４は、障害検知部１３が障害の発生を検知した場合に、ホスト１を操作する操作者からの入力などに応じて、ストレージ２に対して障害からの復旧を指示する。復旧指示部１４は、障害検知部１３による検知に応じて、自動的に復旧を指示するよう構成しても構わない。
【００２３】
本実施形態の場合、復旧指示部１４は、ストレージ２−１に対して復旧を指示するとともに、ストレージ２−２に対して復旧を指示する。換言すると、復旧指示部１４は、障害の発生したストレージ２に対して復旧を指示するとともに、障害の発生したストレージ２と同一内容のデータを記憶する障害の発生していないストレージ２に対しても復旧を指示する。
【００２４】
以上のように、ホスト１は、ストレージ２に対して、障害からの復旧を指示する。後述するように、本実施形態の場合、上記指示に応じた復旧処理にホスト１はかかわらない。
【００２５】
なお、ホスト１が有する記憶装置１１は、仮想的な記憶装置であっても構わない。つまり、ホスト１が有する記憶装置１１は、物理的な紐づけをもたない仮想的なデバイスであっても構わない。このように構成する場合、ホスト１で実行するアプリケーションが記憶装置１１にアクセスすると、ソフトミラー（ミラーリング部１２）がその内容をストレージ２−１の記憶装置２１−１とストレージ２−２の記憶装置２１−２とに振り分けることになる。
【００２６】
ストレージ２は、ホスト１の記憶装置１１が記憶するデータと同一内容のデータを記憶する情報処理装置である。また、本実施形態におけるストレージ２は、重複排除機能を有しており、重複排除後のブロックデータを重複排除ストレージ３に対して送信することが出来るよう構成されている。
【００２７】
図３は、ストレージ２の構成の一例を示している。図３を参照すると、ストレージ２は、記憶装置２１を有するとともに、重複排除部２２と、障害通知部２３と、ハッシュ情報通知部２４と、復旧部２５と、を有している。また、復旧部２５は、ハッシュ情報取得部２５１と、比較部２５２と、データ取得部２５３と、を含んでいる。
【００２８】
例えば、ストレージ２は、図示しない演算装置と図示しない記憶装置（または、記憶装置２１）とを有している。ストレージ２は、例えば、図示しない記憶装置に格納されたプログラムを図示しない演算装置が実行することで、上記各処理部を実現する。
【００２９】
記憶装置２１は、ハードディスクなどの記憶装置である。上述したように、ストレージ２−１が有する記憶装置２１−１と、ストレージ２−２が有する記憶装置２１−２とには、同一内容のデータが格納される。
【００３０】
重複排除部２２は、記憶装置２１に格納されたデータに対して重複の有無を確認する。ストレージ２は、重複排除部２２による確認の結果重複していないブロックデータを重複排除ストレージ３に対して送信することが出来る。
【００３１】
例えば、重複排除部２２は、重複排除対象のデータを固定長または可変長のブロックデータへと分割する。そして、重複排除部２２は、ブロックデータのデータ内容に基づいて、当該データ内容を代表するハッシュ値を算出する。つまり、重複排除部２２は、ブロックデータのデータ内容に基づいて、当該データ内容を要約した要約値であるハッシュ値を算出する。具体的には、例えば、重複排除部２２は、予め設定されたハッシュ関数（例えば、SHA-2などの暗号学的ハッシュ関数）を用いて、ブロックデータのデータ内容からハッシュ値を算出する。なお、重複排除部２２−１と重複排除部２２−２とは、同一のハッシュ関数を用いてハッシュ値を算出する。
【００３２】
続いて、重複排除部２２は、算出したハッシュ値を用いて、ブロックデータを既に重複排除ストレージ３に対して送信したか否か調べる。例えば、重複排除部２２は、既に重複排除ストレージ３に対して送信した（つまり、重複する）ブロックデータに応じたハッシュ値を示すハッシュ情報２２１を図示しない記憶装置（又は、記憶装置２１）などに有している。重複排除部２２は、ハッシュ情報２２１を参照することで、同一内容のブロックデータを既に重複排除ストレージ３に対して送信しているか否か判断する。例えば、重複排除部２２は、ブロックデータに基づいて算出したハッシュ値がハッシュ情報２２１に含まれる場合、同一内容のブロックデータを既に重複排除ストレージ３に送信している（つまり、重複している）と判断する。この場合、重複排除部２２は、同一内容が既に送信されているブロックデータを送信の対象から外す。つまり、重複排除部２２による重複排除の結果、既に重複排除ストレージ３に対して送信されているブロックデータは、新たに重複排除ストレージ３に対して送信されない。一方、ブロックデータに基づいて算出したハッシュ値がハッシュ情報２２１に含まれない場合、重複排除部２２は、同一内容のブロックデータが重複排除ストレージ３に対して送信されていない（つまり、重複していない）と判断する。この場合、ストレージ２は、重複していないブロックデータを重複排除ストレージ３に対して送信する。なお、ハッシュ情報２２１には、上記のように、ブロックデータのデータ内容の要約値であるハッシュ値が含まれている。そのため、ハッシュ情報２２１は、要約値を含む要約情報である、ということも出来る。
【００３３】
以上のように、重複排除部２２は、重複排除処理を行って重複排除ストレージ３に対して送信するブロックデータを選別する。また、重複排除部２２は、重複排除処理を行う際に算出した、重複しているブロックデータに応じたハッシュ値を示すハッシュ情報２２１を取得・更新する。換言すると、重複排除部２２は、重複排除処理を行うことで、記憶装置２１に格納されているデータに応じたハッシュ情報２２１を取得・更新する。
【００３４】
なお、本実施形態においては、重複排除部２２が重複排除処理を行うタイミングについては特に限定しない。例えば、重複排除部２２は、予め定められた時間ごとに静止点をとって重複排除処理を行うよう構成しても構わないし、ホスト１から新たなデータを取得して記憶装置２１が新たなデータを記憶するごとに重複排除処理を行うよう構成しても構わない。
【００３５】
また、ハッシュ情報２２１は、例えば、ブロックデータに基づいて算出されるハッシュ値と、当該ブロックデータの格納先を示す情報と、を対応づけた情報などであっても構わない。
【００３６】
障害通知部２３は、記憶装置２１を監視するとともに、記憶装置２１に障害が発生すると、記憶装置２１に障害が発生した旨をホスト１に対して通知する。例えば、障害通知部２３は、記憶装置２１に対する問い合わせに対して応答がない場合などにおいて、障害の発生を検知する。すると、障害通知部２３は、記憶装置２１に障害が発生した旨を示す障害検知情報をホスト１に対して送信することで、記憶装置２１に障害が発生した旨をホスト１に対して通知する。なお、障害通知部２３は、上記例示した以外の方法を用いて障害の発生を検知しても構わない。
【００３７】
ハッシュ情報通知部２４は、ハッシュ情報２２１を他のストレージ２に対して送信する。
【００３８】
上述したように、ホスト１は、障害の発生したストレージ２と同一内容のデータを記憶する障害の発生していないストレージ２に対しても復旧を指示する。上記復旧の指示を受けた、障害の発生していないストレージ２のハッシュ情報通知部２４は、障害の発生したストレージ２に対してハッシュ情報２２１を送信する。このように、ハッシュ情報通知部２４は、自身の記憶装置２１に障害の発生していない状態でホスト１から復旧の指示を受信した場合、障害が発生しているストレージ２に対してハッシュ情報２２１を送信する。
【００３９】
なお、ハッシュ情報通知部２４により送信されたハッシュ情報２２１は、当該ハッシュ情報２２１の受取先のストレージ２からみると、外部装置（第１外部装置）である他装置において重複排除処理を行う際に算出したハッシュ値を示している。そのため、受取先のストレージ２からみると、ハッシュ情報通知部２４が送信するハッシュ情報２２１は、他装置要約情報である、ということも出来る。
【００４０】
復旧部２５は、ホスト１から受信した復旧の指示に応じて、障害からの復旧処理を行う。図３で示すように、復旧部２５は、例えば、ハッシュ情報取得部２５１と、比較部２５２と、データ取得部２５３と、を有している。
【００４１】
ハッシュ情報取得部２５１は、障害が発生していないストレージ２からハッシュ情報２２１を取得する。上述したように、障害の発生していない状態でホスト１から復旧の指示を受信したストレージ２のハッシュ情報通知部２４は、障害が発生しているストレージ２に対してハッシュ情報２２１を送信する。ハッシュ情報取得部２５１は、上記ハッシュ情報通知部２４が送信したハッシュ情報２２１を取得する。
【００４２】
比較部２５２は、障害が発生していないストレージ２からハッシュ情報取得部２５１が受信したハッシュ情報２２１と、自身のハッシュ情報２２１と、の比較を行う。つまり、比較部２５２は、障害が発生していない他装置であるストレージ２から受信したハッシュ情報２２１（他装置要約情報）と、自身のハッシュ情報２２１（自装置要約情報）との比較を行う。そして、比較部２５２は、上記比較の結果、障害が発生していないストレージ２から受信したハッシュ情報２２１と、自身のハッシュ情報２２１と、の差分を把握する。換言すると、比較部２５２は、上記比較を行うことで、障害が発生していないストレージ２から受信したハッシュ情報２２１に含まれているものの自身のハッシュ情報２２１に含まれていないハッシュ値を特定する。
【００４３】
なお、比較部２５２は、自身のハッシュ情報２２１として、障害発生後に重複排除部２２により算出しなおしたハッシュ値を示すハッシュ情報２２１を用いることが出来る。換言すると、比較部２５２は、障害が発生していないストレージ２から受信したハッシュ情報２２１と、自身の記憶装置２１に格納された読み取り可能なデータに基づくハッシュ値を示すハッシュ情報２２１と、を比較するよう構成しても構わない。
【００４４】
データ取得部２５３は、比較部２５２による比較の結果特定したハッシュ値に応じたブロックデータを重複排除ストレージ３から取得する。例えば、データ取得部２５３は、上記ハッシュ値を示す情報を含む差分送信要求を重複排除ストレージ３に対して送信する。そして、データ取得部２５３は、上記差分送信要求に応じて重複排除ストレージ３から送信されたブロックデータを取得する。このように、データ取得部２５３は、ハッシュ情報２２１の比較結果に基づいて重複排除ストレージ３からブロックデータを取得する。これにより、データ取得部２５３は、障害が発生していなければ記憶できていたブロックデータ（つまり、復旧対象のデータ）を重複排除ストレージ３から取得する。
【００４５】
以上のように、ストレージ２は、ホスト１から受信した復旧の指示に応じて、障害からの復旧処理を行う。例えば、障害の発生していないストレージ２は、障害の発生したストレージ２に対してハッシュ情報２２１を送信する。また、障害の発生したストレージ２は、受信したハッシュ情報２２１と自信のハッシュ情報２２１との比較を行い、比較の結果特定されるブロックデータ（復旧対象のデータ）を重複排除ストレージ３から取得する。
【００４６】
重複排除ストレージ３は、重複排除後のブロックデータを記憶する情報処理装置である。重複排除ストレージ３は、ストレージ２からみると外部装置（第２外部装置）となる。重複排除ストレージ３は、例えば、通常時において、運用に関与しない。上述したように、重複排除ストレージ３は、ストレージ２から重複排除後のブロックデータを受信する。すると、重複排除ストレージ３は、受信したブロックデータを重複排除データ３１として記憶する。また、重複排除ストレージ３は、ストレージ２から差分送信要求を受信すると、当該差分送信要求が要求するブロックデータをストレージ２に対して返送する。
【００４７】
なお、重複排除ストレージ３は、受信したブロックデータをそのまま記憶しても構わないし、冗長性確保のための所定の前処理などを行った上で記憶しても構わない。例えば、重複排除ストレージ３は、受信したブロックデータを圧縮して複数の所定の容量のフラグメントデータに分割する。具体的には、例えば、重複排除ストレージ３は、９つのフラグメントデータに分割する。また、重複排除ストレージ３は、分割したフラグメントデータのうちいくつかが欠けた場合であっても元となるブロックデータを復元可能なよう冗長データを作成し、分割したフラグメントデータに付与する。これにより、例えば、重複排除ストレージ３は、９つのフラグメントデータと３つの冗長データとにより構成されるデータセットを生成する。そして、重複排除ストレージ３は、データセットを構成する各データ（フラグメントデータ、冗長データ）を、重複排除ストレージ３が有する記憶装置に形態された各記憶領域に分散して格納する。例えば、このように、重複排除ストレージ３は、冗長データを付与したうえでブロックデータを記憶するよう構成しても構わない。
【００４８】
以上が、ストレージシステムの構成の一例である。続いて、図４、図５を参照して、ストレージシステムにおいて行われる復旧処理の一例について説明する。なお、図４、図５では、ストレージ２−１に障害が発生した場合について例示している。図４、図５で示す場合、ストレージ２−１が自装置となり、ストレージ２−２が外部装置である第１外部装置、重複排除ストレージ３が外部装置である第２外部装置となる。
【００４９】
図４は、ストレージシステムにおける復旧処理の一例を示す図である。また、図５は、ストレージシステムにおける復旧処理の一例を示すシーケンス図である。図５を参照すると、ストレージ２−１の障害通知部２３は、記憶装置２１に障害が発生した旨を検知すると、ホスト１に対して記憶装置２１に障害が発生した旨を示す障害検知情報を送信する（ステップS101）。例えば、このような処理により、ストレージ２−１は、ホスト１に対して障害発生を通知する。
【００５０】
ホスト１の障害検知部１３は、ストレージ２から障害が発生した旨を示す障害検知情報を受信することで、当該障害検知情報の送信元であるストレージ２に障害が発生した旨を検知する。また、復旧指示部１４は、ホスト１を操作する操作者からの入力などに応じて、ストレージ２に対して障害からの復旧を指示する。具体的には、図４の丸１で示すように、復旧指示部１４は、ストレージ２−１に対して復旧を指示する（ステップS103）とともに、ストレージ２−２に対して復旧を指示する（ステップS102）。
【００５１】
図４、図５で示すように、ストレージ２−２には、障害は発生していない。そのため、ストレージ２−２のハッシュ情報通知部２４は、図４の丸２で示すように、ストレージ２−１に対してハッシュ情報２２１を送信する（ステップS104）。
【００５２】
ストレージ２−１のハッシュ情報取得部２５１がストレージ２−２からハッシュ情報２２１を受信する。比較部２５２は、ストレージ２−２から受信したハッシュ情報２２１（他装置要約情報）と、自身のハッシュ情報２２１（自装置要約情報）と、の比較を行う（ステップS105）。上記比較を行うことで、比較部２５２は、ストレージ２−２から受信したハッシュ情報２２１に含まれているもののストレージ２−１自身のハッシュ情報２２１に含まれていないハッシュ値を特定する。
【００５３】
データ取得部２５３は、比較部２５２による比較の結果特定したハッシュ値を示す情報を含む差分送信要求を重複排除ストレージ３に対して送信する（ステップS106）。これを受けて、重複排除ストレージ３は、図４の丸３で示すように、差分送信要求で要求されるブロックデータをストレージ２−１に対して送信する（ステップS107）。例えば、このような処理により、データ取得部２５３は、障害が発生していなければ記憶できていた、復旧対象のデータであるブロックデータを重複排除ストレージ３から取得する。その結果、ストレージ２−１は、ストレージ２−２と同様のデータを復旧することが可能となる。
【００５４】
以上のように、本実施形態におけるストレージ２は、重複排除部２２と、ハッシュ情報通知部２４と、復旧部２５と、を有している。このような構成により、ハッシュ情報通知部２４は、必要に応じて、予め算出したハッシュ値を示すハッシュ情報２２１を障害の発生したストレージ２に対して送信することが出来る。これにより、障害の発生していないストレージ２が記憶しているデータ内容を迅速に障害の発生したストレージ２に通知することが可能となる。また、復旧部２５は、受信したハッシュ情報２２１と、自身のハッシュ情報２２１との比較結果に基づいて、重複排除ストレージ３から必要なブロックデータを取得することが出来る。これにより、復旧に必要なブロックデータのみを重複排除ストレージ３から過不足なく取得することが可能となり、不必要なデータの送受信によるストレージ２・重複排除ストレージ３間のスループット低下などを抑制することが可能となる。
【００５５】
また、上述した構成によると、ストレージ２と重複排除ストレージ３との間の処理により、復旧処理を完了することが出来る。その結果、復旧処理を行う際にホスト１がデータの吸出しなどを行う必要がなくなり、ホスト１に過度な負担をかけることなく復旧処理を行うことが可能となる。
【００５６】
なお、ストレージシステムの構成は、本実施形態で例示した場合に限定されない。例えば、ストレージシステムは、３つ以上のストレージ２を含んでいても構わないし、２つ以上の重複排除ストレージ３を含んでいても構わない。
【００５７】
また、図６で示すように、ストレージ２は、ハッシュ値の比較を行わずに、取得したハッシュ情報２２１（他装置要約情報）に基づいて重複排除ストレージ３からデータを取得するよう構成しても構わない。この場合、ストレージ２は、図３で示す比較部２５２を有していなくても構わない。
【００５８】
例えば、図６を参照すると、ストレージ２−１のハッシュ情報取得部２５１は、障害の発生していないストレージ２−２からハッシュ情報２２１を受信する。すると、ストレージ２−１のハッシュ情報取得部２５１は、受信したハッシュ情報２２１を重複排除ストレージ３に対して送信する（ステップS201）。
【００５９】
重複排除ストレージ３は、受信したハッシュ情報２２１に含まれるハッシュ値と対応するブロックデータをすべてストレージ２−１に対して送信する（ステップS202）。
【００６０】
このように、ストレージ２は、受信したハッシュ情報２２１をそのまま重複排除ストレージ３に対して送信するよう構成しても構わない。このような構成の場合、重複排除ストレージ３は、障害の発生していないストレージ２から受信したハッシュ情報２２１に基づいて、復旧に必要となるボリュームを構成するデータのすべて（つまり、復旧対象のデータを含むすべてのデータ）をストレージ２に対して送信する。このような構成であっても、復旧処理を行う際にホスト１がデータの吸出しなどを行う必要がなくなり、ホスト１に過度な負担をかけることなく復旧処理を行うことが可能となる。
【００６１】
また、図７で示すように、ストレージ２は、ハッシュ値の比較結果と、予め定められた閾値（例えば、５０％。任意の値で構わない）との比較結果に基づいて、データの取得先を選択したり復旧処理の仕方を変更したりするよう構成することが出来る。
【００６２】
例えば、図７で示す場合、ストレージ２−２から受信したハッシュ情報２２１に含まれているハッシュ値に対する、ストレージ２−１自身のハッシュ情報２２１に含まれているハッシュ値の割合が閾値以下であるか否かで処理を変更している。例えば、図７で示す場合、ハッシュ値の割合が閾値以下である場合、データ取得部２５３は、比較部２５２による比較の結果特定したハッシュ値を示す情報を含む差分送信要求を重複排除ストレージ３に対して送信する（ステップS106）。これを受けて、重複排除ストレージ３は、差分送信要求で要求されるブロックデータをストレージ２−１に対して送信する（ステップS107）。このように、上述した場合と同様の動作を行う。一方、ハッシュ値の割合が閾値より大きい場合、データ取得部２５３は、ストレージ２−２に対して全イメージをコピーするよう要求して（ステップS301）、ストレージ２−２から全イメージをコピーする（ステップS302）。
【００６３】
例えば、このように、比較結果に基づいて複数の処理を行うよう構成しても構わない。また、所定の条件を満たす場合などにおいて、重複排除ストレージ３から復旧に必要なデータを取得する代わりに障害の生じていないストレージ２からデータを取得するよう構成しても構わない。
【００６４】
また、ストレージ２は、ストレージ２間のスループットやストレージ２と重複排除ストレージ３間のスループットなどを示す統計情報に基づいて、上述した各処理を選択したり組み合わせたりするよう構成しても構わない。例えば、ストレージ２は、スループットの低下していない外部装置（障害の生じていないストレージ２、または、重複排除ストレージ３）から復旧に必要なデータを取得するよう構成しても構わない。
【００６５】
［第２の実施形態］
次に、本発明の第２の実施形態を図８、図９を参照して説明する。図８は、第２の実施形態におけるストレージシステムの構成の一例を示すブロック図である。図９は、第２の実施形態のストレージシステムにおける復旧処理の一例を示すシーケンス図である。
【００６６】
第２の実施形態では、第１の実施形態で説明したストレージシステムの変形例について説明する。後述するように、本実施形態の場合、重複排除ストレージ３が重複排除部３２を有している。また、本実施形態の場合、ストレージ２は、例えば、重複排除ストレージ３に対してデータを送信する段階では重複排除を行わないように構成されている。なお、本実施形態の場合、重複排除ストレージ３は、ストレージ２と同一のハッシュ関数を用いてハッシュ値を算出する。
【００６７】
図８は、第２の実施形態におけるストレージシステムの構成の一例を示している。図８を参照すると、本実施形態におけるストレージシステムは、ホスト１と、２台のストレージ２と、重複排除ストレージ３と、を有している。このように、第２の実施形態で説明するストレージシステムは、第１の実施形態で説明した構成と概ね同様の構成を有している。以下、本実施形態に特徴的な構成について説明する。
【００６８】
本実施形態における重複排除部２２は、重複排除ストレージ３に対してデータを送信する段階では重複排除を行わない。そのため、ストレージ２は、記憶装置２１にデータが格納されると、当該データを重複排除せずにそのまま重複排除ストレージ３に対して送信する。このような構成のため、障害の発生前において、ストレージ２にはハッシュ情報２２１は存在しない。
【００６９】
また、重複排除部２２は、記憶装置２１に障害が発生してホスト１から復旧の指示を受信すると、記憶装置２１に格納されているデータ（読み取り可能なデータ）に対する重複排除を行う。これにより、重複排除部２２は、ハッシュ情報２２１を生成する。換言すると、第２の実施形態の場合、重複排除部２２は、障害が生じた後に、記憶装置２１が記憶しているデータに基づいてハッシュ値を算出してハッシュ情報２２１を生成する。
【００７０】
本実施形態における比較部２５２は、ホスト１から復旧の指示を受信すると、重複排除ストレージ３に対してハッシュ情報送信要求を送信することで、重複排除ストレージ３に対してハッシュ情報３２１を送信するよう要求する。また、比較部２５２は、重複排除ストレージ３からハッシュ情報３２１を受信すると、重複排除部２２が障害発生後に生成したハッシュ情報２２１と、重複排除ストレージ３から受信したハッシュ情報３２１と、の比較を行う。そして、比較部２５２は、重複排除ストレージ３から受信したハッシュ情報３２１に含まれているものの自身のハッシュ情報２２１に含まれていないハッシュ値を特定する。その後の処理は、第１の実施形態と同様である。そのため、説明は省略する。
【００７１】
本実施形態における重複排除ストレージ３は、第１の実施形態で説明した場合と比較して、重複排除部３２を有している。また、重複排除ストレージ３は、ストレージ２−１からの指示に応じて、ストレージ２−１に対してハッシュ情報３２１を送信する。なお、重複排除部３２は、例えば、図示しない記憶装置に格納されたプログラムを図示しない演算装置が実行することで実現される。
【００７２】
重複排除部３２は、ストレージ２からデータを受信すると、当該受信したデータに対して重複排除処理を行う。重複排除処理を行うことで、上記データを分割したブロックデータに基づいてハッシュ値が算出され、ハッシュ情報３２１として管理される。上述したように、重複排除部３２がハッシュ値を算出する際に用いるハッシュ関数は、重複排除部２２がハッシュ値を算出する際に用いるハッシュ関数と同一である。ハッシュ情報３２１は、第１の実施形態で説明したハッシュ情報２２１と同様にハッシュ値を含む情報である。ハッシュ情報３２１は、ハッシュ情報２２１と同様に、要約情報ということも出来る。なお、重複排除処理の詳細は、第１の実施形態で説明した重複排除部２２が行う処理と同様である。そのため、説明は省略する。その後、重複排除ストレージ３は、重複排除部３２による重複排除後のブロックデータを重複排除データ３１として記憶する。
【００７３】
以上が、本実施形態に特徴的な構成の一例である。続いて、図９を参照して、第２の実施形態におけるストレージシステムにおいて行われる復旧処理の一例について説明する。なお、図９では、ストレージ２−１に障害が発生した場合について例示している。
【００７４】
図９は、ストレージシステムにおける復旧処理の一例を示すシーケンス図である。図９を参照すると、ストレージ２−１の障害通知部２３は、記憶装置２１に障害が発生した旨を検知すると、ホスト１に対して記憶装置２１に障害が発生した旨を示す障害検知情報を送信する（ステップS101）。また、ホスト１の復旧指示部１４は、ホスト１を操作する操作者からの入力などに応じて、ストレージ２に対して障害からの復旧を指示する。具体的には、復旧指示部１４は、ストレージ２−１に対して復旧を指示する（ステップS103）とともに、ストレージ２−２に対して復旧を指示する（ステップS102）。
【００７５】
ストレージ２−１の比較部２５２は、ホスト１から復旧の指示を受信すると、重複排除ストレージ３に対してハッシュ情報送信要求を送信する（ステップS401）。これを受けて、重複排除ストレージ３は、ハッシュ情報３２１をストレージ２−１に対して送信する（ステップS402）。
【００７６】
また、重複排除部２２は、ホスト１から復旧の指示を受信すると、記憶装置２１に格納されているデータに対する重複排除を行う。これにより、重複排除部２２は、ハッシュ情報３２１を生成する（ステップS403）。
【００７７】
ステップS401、ステップS402の処理とステップS403の処理はどちらが先に行っても構わないし、並行して行っても構わない。
【００７８】
比較部２５２は、ステップS403の処理で生成したハッシュ情報２２１と、ステップS402で受信したハッシュ情報４３１と、の比較を行う（ステップS105）。以降の処理は、第１の実施形態と同様である。そのため、説明を省略する。
【００７９】
なお、第２の実施形態で説明した構成の場合、ストレージ２−２からストレージ２−１に対するハッシュ情報２２１の送信は行われない。そのため、ホスト１は、ストレージ２−２に対して復旧を通知しなくても構わない。
【００８０】
このように、本実施形態における重複排除ストレージ３は重複排除部３２を有しており、重複排除処理をストレージ２の代わりに行うよう構成されている。このような構成であっても、第１の実施形態と同様に、復旧処理を行う際にホスト１がデータの吸出しなどを行う必要がなくなり、ホスト１に過度な負担をかけることなく復旧処理を行うことが可能となる。
【００８１】
なお、第２の実施形態で説明したストレージシステムにも、第１の実施形態と同様の変形例を適用可能である。また、障害の発生前からストレージ２が重複排除を行うとともに、重複排除ストレージ３においても重複排除を行うよう構成しても構わない。この場合、障害の発生していないストレージ２と重複排除ストレージ３の両方が障害の発生したストレージ２に対してハッシュ情報（ハッシュ情報２２１、ハッシュ情報３２１）を送信するよう構成しても構わない。
【００８２】
［第３の実施形態］
次に、図１０を参照して、本発明の第３の実施形態について説明する。第３の実施形態では、ストレージ装置４の構成の概要について説明する。
【００８３】
図１０は、ストレージ装置４の構成の一例を示している。図１０を参照すると、ストレージ装置４は、要約情報取得部４１と、データ取得部４２と、を有している。なお、ストレージ装置４は、例えば、図示しない演算装置と図示しない記憶装置とを有している。ストレージ装置４は、例えば、図示しない記憶装置に格納されたプログラムを図示しない演算装置が実行することで、上記各処理部を実現する。
【００８４】
要約情報取得部４１は、自装置と同一内容のデータを記憶する外部装置から当該外部装置が重複排除処理を行う際に算出した要約値を示す他装置要約情報を取得する。
【００８５】
データ取得部４２は、要約情報取得部４１が取得した他装置要約情報に基づいて外部装置から復旧対象のデータを取得する。
【００８６】
このように、ストレージ装置４は、要約情報取得部４１と、データ取得部４２と、を有している。このような構成により、ストレージ装置４のデータ取得部４２は、要約情報取得部４１が取得した他装置要約情報に基づいて外部装置から復旧対象のデータを取得することが出来る。その結果、ホストが介入することなくデータの復旧を行うことが可能となり、復旧処理を行う際にホストに過度な負担をかけるおそれを低減させることが可能となる。
【００８７】
また、上述したストレージ装置４は、当該ストレージ装置４に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、情報処理装置に、自装置と同一内容のデータを記憶する外部装置から当該外部装置が重複排除処理を行う際に算出した要約値を示す他装置要約情報を取得する要約情報取得部４１と、要約情報取得部４１が取得した他装置要約情報に基づいて外部装置から復旧対象のデータを取得するデータ取得部４２と、を実現するためのプログラムである。
【００８８】
また、上述したストレージ装置４により実行される復旧方法は、情報処理装置が、自装置と同一内容のデータを記憶する外部装置から当該外部装置が重複排除処理を行う際に算出した要約値を示す他装置要約情報を取得し、取得した前記他装置要約情報に基づいて外部装置から復旧対象のデータを取得する、という方法である。
【００８９】
上述した構成を有する、プログラム、又は、復旧方法、の発明であっても、上記ストレージ装置４と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
【００９０】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージ装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【００９１】
（付記１）
自装置と同一内容のデータを記憶する外部装置から当該外部装置が重複排除処理を行う際に算出した要約値を示す他装置要約情報を取得する要約情報取得部と、
前記要約情報取得部が取得した前記他装置要約情報に基づいて外部装置から復旧対象のデータを取得するデータ取得部と、
を有する
ストレージ装置。
（付記２）
付記１に記載のストレージ装置であって、
前記要約情報取得部が取得した前記他装置要約情報と、自装置が算出した要約値を示す自装置要約情報と、を比較する比較部を有し、
前記データ取得部は、前記比較部による比較の結果に基づいて外部装置から復旧対象のデータを取得する
ストレージ装置。
（付記３）
付記２に記載のストレージ装置であって、
前記比較部は、前記他装置要約情報と前記自装置要約情報とを比較することで、前記他装置要約情報に含まれるものの前記自装置要約情報に含まれない要約値を特定し、
前記データ取得部は、前記比較部が特定した要約値が示すデータを外部装置から取得する
ストレージ装置。
（付記４）
付記２又は付記３に記載のストレージ装置であって、
前記比較部は、前記他装置要約情報と、自装置が重複排除処理を行う際に算出した要約値を示す前記自装置要約情報と、を比較する
ストレージ装置。
（付記５）
付記２又は付記３に記載のストレージ装置であって、
前記比較部は、前記他装置要約情報と、記憶装置に障害が発生した後に当該記憶装置が記憶するデータに基づいて算出した要約値を示す前記自装置要約情報と、を比較する
ストレージ装置。
（付記６）
付記２から付記５までのいずれか１項に記載のストレージ装置であって、
前記データ取得部は、前記比較部による比較の結果に基づいて、復旧対象のデータを取得する外部装置を選択する
ストレージ装置。
（付記７）
付記６に記載のストレージ装置であって、
前記データ取得部は、前記他装置要約情報に含まれている要約値に対する、前記自装置要約情報に含まれている要約値の割合が予め定められた閾値以下であるか否かに応じて、復旧対象のデータを取得する外部装置を選択する
ストレージ装置。
（付記８）
付記７に記載のストレージ装置であって、
前記データ取得部は、前記他装置要約情報に含まれている要約値に対する、前記自装置要約情報に含まれている要約値の割合が予め定められた閾値より大きい場合、自装置と同一内容のデータを記憶する第１外部装置からデータを取得する
ストレージ装置。
（付記９）
付記７または付記８に記載のストレージ装置であって、
前記データ取得部は、前記他装置要約情報に含まれている要約値に対する、前記自装置要約情報に含まれている要約値の割合が予め定められた閾値以下である場合、データを重複排除した状態で記憶する重複排除ストレージである第２外部装置から復旧対象のデータを取得する
ストレージ装置。
（付記１０）
付記１から付記５までのいずれか１項に記載のストレージ装置であって、
ストレージ装置は、データを重複排除した状態で記憶する重複排除ストレージである第２外部装置と接続され、前記第２外部装置に対してデータを送信するよう構成され、
前記データ取得部は、前記第２外部装置から復旧対象のデータを取得する
ストレージ装置。
（付記１１）
付記１から付記１０までのいずれか１項に記載のストレージ装置であって、
ストレージ装置は、ホストが記憶するデータと同一内容のデータを記憶するとともに、当該ストレージ装置と接続された第１外部装置も当該同一内容のデータを記憶するよう構成されており、
前記要約情報取得部は、前記第１外部装置から前記他装置要約情報を取得する
ストレージ装置。
（付記１２）
付記１から付記１１までのいずれか１項に記載のストレージ装置であって、
ストレージ装置は、データを重複排除した状態で記憶する重複排除ストレージである第２外部装置と接続されており、
前記要約情報取得部は、前記第２外部装置から前記他装置要約情報を取得する
ストレージ装置。
（付記１３）
情報処理装置が、
自装置と同一内容のデータを記憶する外部装置から当該外部装置が重複排除処理を行う際に算出した要約値を示す他装置要約情報を取得し、
取得した前記他装置要約情報に基づいて外部装置から復旧対象のデータを取得する
復旧方法。
（付記１４）
情報処理装置に、
自装置と同一内容のデータを記憶する外部装置から当該外部装置が重複排除処理を行う際に算出した要約値を示す他装置要約情報を取得する要約情報取得部と、
前記要約情報取得部が取得した前記他装置要約情報に基づいて外部装置から復旧対象のデータを取得するデータ取得部と、
を実現するためのプログラム。
【００９２】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【００９３】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【００９４】
１  ホスト
１１  記憶装置
１２  ミラーリング部
１３  障害検知部
１４  復旧指示部
２  ストレージ
２１  記憶装置
２２  重複排除部
２２１  ハッシュ情報
２３  障害通知部
２４  ハッシュ情報通知部
２５  復旧部
２５１  ハッシュ情報取得部
２５２  比較部
２５３  データ取得部
３  重複排除ストレージ
３１  重複排除データ
３２  重複排除部
３２１  ハッシュ情報
４  ストレージ装置
４１  要約情報取得部
４２  データ取得部
【図１】
2019212081.tif 000003
【図２】
2019212081.tif 000004
【図３】
2019212081.tif 000005
【図４】
2019212081.tif 000006
【図５】
2019212081.tif 000007
【図６】
2019212081.tif 000008
【図７】
2019212081.tif 000009
【図８】
2019212081.tif 000010
【図９】
2019212081.tif 000011
【図１０】
2019212081.tif 000012