(57)【要約】【課題】重複排除ストレージにおけるファイル削除による空き容量の把握が困難である。【解決手段】本発明の重複排除記憶制御装置１００は、記憶対象となるファイルを複数のデータブロックに分割し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照する処理を行うデータ書き込み部１２１と、記憶装置に記憶されているデータブロックに関連付けて当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶するデータ更新部１２２と、を備えた。【選択図】図１３
2020190812.tif 000002
【特許請求の範囲】
【請求項１】
記憶対象となるファイルを複数のデータブロックに分割し、
分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、
分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照し、
さらに、記憶装置に記憶されているデータブロックに関連付けて当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックに関連付けられて記憶されている前記ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶する、
重複排除記憶方法。
【請求項２】
請求項１に記載の重複排除記憶方法であって、
記憶装置に記憶されているデータブロックを分割したデータブロックとして参照する処理とは非同期に、前記ファイル情報を記憶する処理と前記参照率を算出して記憶する処理とを行う、
重複排除記憶方法。
【請求項３】
請求項１又は２に記載の重複排除記憶方法であって、
記憶装置に記憶されているデータブロックのメタデータに含まれるポインタが参照する所定の記憶領域に前記ファイル情報を記憶する、
重複排除記憶方法。
【請求項４】
請求項３に記載の重複排除記憶方法であって、
データブロックのデータ内容の特徴を表し当該データブロックの重複判定に用いられる特徴情報を含む前記メタデータに前記ポインタが含まれている、
重複排除記憶方法。
【請求項５】
請求項１乃至３のいずれかに記載の重複排除記憶方法であって、
データブロックに関連付けられて記憶されている前記ファイル情報に基づいて、所定のファイルを構成するデータブロックのうち他のファイルから参照されているデータブロックのデータサイズを算出し、当該データサイズに基づいて前記参照率を算出してファイルに関連付けて記憶する、
重複排除記憶方法。
【請求項６】
請求項５に記載の重複排除記憶方法であって、
ファイルの前記ファイル情報と、当該ファイルを構成するデータブロックの記憶装置内における格納先を表す格納先情報と、を含む当該ファイルのメタデータに、前記参照率を記憶する、
重複排除記憶方法。
【請求項７】
記憶対象となるファイルを複数のデータブロックに分割し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照する処理を行うデータ書き込み部と、
記憶装置に記憶されているデータブロックに関連付けて当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックに関連付けられて記憶されている前記ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶するデータ更新部と、
を備えた重複排除記憶制御装置。
【請求項８】
複数の記憶装置と、当該複数の記憶装置に対して記憶対象となるファイルを分散して重複排除して記憶するよう制御する重複排除記憶制御装置と、を備え、
前記重複排除記憶制御装置は、
記憶対象となるファイルを複数のデータブロックに分割し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照する処理を行うデータ書き込み部と、
記憶装置に記憶されているデータブロックに関連付けて当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックに関連付けられて記憶されている前記ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶するデータ更新部と、
を備えた、
重複排除ストレージシステム。
【請求項９】
情報処理装置に、
記憶対象となるファイルを複数のデータブロックに分割し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照する処理を行うデータ書き込み部と、
記憶装置に記憶されているデータブロックに関連付けて当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックに関連付けられて記憶されている前記ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶するデータ更新部と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、重複排除記憶方法、重複排除記憶制御装置、重複排除ストレージシステム、プログラムに関する。
【背景技術】
【０００２】
近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。
【０００３】
このような状況に応じて、近年では、特許文献１に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。また、コンテンツアドレスストレージシステムの中には、所定のデータを複数のフラグメントに分割すると共に、冗長データとなるフラグメントをさらに付加して、これら複数のフラグメントをそれぞれ複数の記憶装置にそれぞれ格納する、というものもある。
【０００４】
そして、上述したようなコンテンツアドレスストレージシステムでは、後に、コンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているデータつまりフラグメントを読み出し、複数のフラグメントから分割前の所定のデータを復元することができる。
【０００５】
また、上記コンテンツアドレスは、データの内容に応じて固有となるよう生成される値、例えばデータのハッシュ値、に基づいて生成される。このため、重複データであれば同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除して、データ容量の削減を図ることができる。
【０００６】
特に、上述したような重複記憶を排除する機能を有するストレージシステムでは、ファイルなど書き込み対象となるデータを所定容量の複数のデータブロックに分割して圧縮し、記憶装置に書き込む。このように、ファイルを分割したデータブロック単位で重複記憶を排除することで、重複率が増大し、データ容量の削減を図っている。そして、バックアップを行うストレージシステムに提供することで、バックアップの容量を節約したり、レプリケーション時の帯域の節約を図っている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−２３５１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ここで、図１乃至図３を参照して、ファイルが重複排除されて記憶されるときの一例を説明する。まず、図１では、ファイル１とファイル２とが、それぞれデータブロックに分割されてディスクに格納されており、相互に３０％のデータが共通（重複）し、重複排除によりファイル２がファイル１の３０％のデータを参照している場合を示している。なお、ファイルｎの参照率は、「ファイルｎの参照されているデータサイズ／ファイルｎの合計データサイズ」で算出できる。そして、図１のケースでは、いずれかのファイルを削除しても、重複したデータを除くデータ量（約２／３（７０％））しか削除されないこととなる。
【０００９】
図１の状況において、さらに図２に示すように新規にファイルを書き込むと、新規ファイルが既存のファイル１，２のデータブロックを参照することとなる。すると、図３に示すように、ファイル間の参照関係が複雑となり、いずれかのファイルを削除した場合に、どれだけの空き容量を得るか把握しにくくなっている。
【００１０】
このように、重複排除技術でデータを圧縮するストレージシステムの場合、ディスク上の保存した特定のデータブロックが多数の任意のファイルから参照される可能性があるため、特定のブロックとファイルとの間に１：ｎ関係が存在することとなる。このため、特定のファイルを削除、または移動（ティアリング）しても、当該ファイルのデータが異なるファイルと重複する、つまり、異なるファイルから参照されている割合が多い場合、ファイル削除による空き容量確保やティアリング操作の効果を把握することが困難である、という課題がある。
【００１１】
このため、本発明の目的は、上述した課題である、重複排除ストレージにおけるファイル削除による空き容量の確保やティアリング操作の効果の把握が困難である、ことを解決することにある。
【課題を解決するための手段】
【００１２】
本発明の一形態である重複排除記憶方法は、
記憶対象となるファイルを複数のデータブロックに分割し、
分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、
分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照し、
さらに、記憶装置に記憶されているデータブロックに関連付けて当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックに関連付けられて記憶されている前記ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶する、
という構成をとる。
【００１３】
また、本発明の一形態である重複排除記憶装置は、
記憶対象となるファイルを複数のデータブロックに分割し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照する処理を行うデータ書き込み部と、
記憶装置に記憶されているデータブロックに関連付けて当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックに関連付けられて記憶されている前記ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶するデータ更新部と、
を備えた、
という構成をとる。
【００１４】
また、本発明の一形態である重複排除ストレージシステムは、
複数の記憶装置と、当該複数の記憶装置に対して記憶対象となるファイルを分散して重複排除して記憶するよう制御する重複排除記憶制御装置と、を備え、
前記重複排除記憶制御装置は、
記憶対象となるファイルを複数のデータブロックに分割し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照する処理を行うデータ書き込み部と、
記憶装置に記憶されているデータブロックに関連付けて当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックに関連付けられて記憶されている前記ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶するデータ更新部と、
を備えた、
という構成をとる。
【００１５】
また、本発明の一形態であるプログラムは、
情報処理装置に、
記憶対象となるファイルを複数のデータブロックに分割し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照する処理を行うデータ書き込み部と、
記憶装置に記憶されているデータブロックに関連付けて当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックに関連付けられて記憶されている前記ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶するデータ更新部と、
を実現させる、
という構成をとる。
【発明の効果】
【００１６】
本発明は、以上のように構成されることにより、重複排除ストレージにおけるファイル削除による空き容量の確保やティアリング操作の効果を容易に把握することができる。
【図面の簡単な説明】
【００１７】
【図１】ファイルを重複排除して記憶したときの様子を示す図である。
【図２】ファイルを重複排除して記憶したときの様子を示す図である。
【図３】ファイルを重複排除して記憶したときの様子を示す図である。
【図４】本発明の実施形態１におけるストレージシステムの構成の概略を示すブロック図である。
【図５】本発明の実施形態１におけるストレージシステムの構成を示す機能ブロック図である。
【図６】図５に開示したストレージシステムにおけるデータ書き込み処理の様子を説明するための説明図である。
【図７】図５に開示したストレージシステムにおけるデータ書き込み処理の様子を説明する説明図である。
【図８】図５に開示したストレージシステムにおけるデータ書き込み処理の動作を示すフローチャートである。
【図９】図５に開示したストレージシステムにおけるデータ書き込み処理の動作を示すフローチャートである。
【図１０】図５に開示したストレージシステムにおけるデータ書き込み処理の動作を示すフローチャートである。
【図１１】図５に開示したストレージシステムにおけるデータ書き込み処理の動作を示すフローチャートである。
【図１２】本発明の実施形態２における重複排除記憶制御装置のハードウェア構成を示すブロック図である。
【図１３】本発明の実施形態２における重複排除記憶制御装置の構成を示すブロック図である。
【図１４】本発明の実施形態２における重複排除記憶制御装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００１８】
＜実施形態１＞
本発明の第１の実施形態を、図４乃至図１１を参照して説明する。図４乃至図５は、ストレージシステムの構成を説明するための図であり、図６乃至図１１は、ストレージシステムの処理動作を説明するための図である。
【００１９】
本実施形態におけるストレージシステム１は、図４に示すようにバックアップシステム４に接続されており、バックアップシステム４に記憶されているバックアップ対象データ記憶対象データとして、重複排除して記憶するものである。但し、本発明におけるストレージシステムは、必ずしもバックアップシステム４に接続されていることに限らず、記憶対象とするデータはバックアップ対象データであることに限定されず、いかなるデータであってもよい。
【００２０】
そして、本実施形態におけるストレージシステム１は、図４に示すように、複数のサーバコンピュータが接続されて構成されている。具体的に、ストレージシステム１は、ストレージシステム１自体における記憶再生動作を制御するサーバコンピュータであるアクセラレータノード２と、データを格納する記憶装置を備えたサーバコンピュータであるストレージノード３と、を備えている。なお、アクセラレータノード２の数とストレージノード３の数は、図４に示したものに限定されず、さらに多くの各ノード２，３が接続されて構成されていてもよい。但し、本発明におけるストレージシステムは、必ずしも複数台のコンピュータにて構成されることに限定されず、１台のコンピュータで構成されていてもよい。
【００２１】
なお、以下では、ストレージシステム１が１つのシステムであることとし、当該ストレージシステム１が備えている構成及び機能を説明する。つまり、以下に説明するストレージシステム１が有する構成及び機能は、アクセラレータノード２あるいはストレージノード３のいずれに備えられていてもよい。なお、ストレージシステム１は、図４に示すように、必ずしもアクセラレータノード２とストレージノード３とを備えていることに限定されず、いかなる構成であってもよく、例えば、１台のコンピュータにて構成されていてもよい。
【００２２】
図５に、本実施形態におけるストレージシステム１の構成を示す。ストレージシステム１は、上述したアクセラレータノード２やストレージノード３といったサーバコンピュータにて構成され、所定の演算処理を行う演算装置（図示せず）と、複数の記憶装置１５と、を備える。そして、ストレージシステム１は、上記演算装置にプログラムが組み込まれることで構築された、重複チェック部１１、分散書き込み部１２、メタデータ更新部１３、を備えている。そして、重複チェック部１１、分散書き込み部１２、メタデータ更新部１３は、以下に説明するように、記憶対象となるファイルを複数のデータブロックに分割して冗長化し、分散して複数の記憶装置１５に記憶し、さらに、記憶するデータブロックの内容に応じて設定される固有のコンテンツアドレスによって当該データブロックを格納した格納位置を特定する重複排除機能を有する。以下、重複チェック部１１、分散書き込み部１２、メタデータ更新部１３が有する機能を、その動作説明と併せて詳述する。
【００２３】
はじめに、重複チェック部１１、分散書き込み部１２、メタデータ更新部１３による重複排除書き込み処理の概要を、図６及び図８を参照して説明する。
【００２４】
まず、重複チェック部１１（データ書き込み部）は、上位から入力される記憶対象となるファイルを受信し（図８のステップＳ１）、図６の矢印Ｙ１に示すように、ファイルをサイズが可変の複数のデータブロックに分割する（図６参照、図８のステップＳ２）。続いて、重複チェック部１１は、分割したデータブロックが、記憶装置１５内に既に記憶されているデータブロックと重複するか否かを調べる（図８のステップＳ３）。なお、重複チェック処理の詳細については後述する。
【００２５】
そして、分割したデータブロックが、記憶装置１５内に記憶されているデータブロックと重複しない場合には（図８のステップＳ４でＮｏ）、分散書き込み部１２（データ書き込み部）にて分割したデータブロックをノード間に分散して書き込む（ステップＳ５）。なお、分散書き込み部１２の処理の詳細については後述する。
【００２６】
一方、分割したデータブロックが、記憶装置１５内に記憶されているデータブロックと重複する場合には（図８のステップＳ４でＹｅｓ）、メタデータ更新部１３（データ書き込み部、データ更新部）にてファイルメタデータやブロックメタデータを更新して、記憶されているデータブロックを分割したデータブロックとして参照させる（図８のステップＳ７）。つまり、記憶しようとしている分割したデータブロックの実データを記憶装置１５に記憶することなく、既に記憶されているデータブロックを分割したデータブロックとして参照し、重複記憶を排除する。なお、メタデータ更新部１３の処理の詳細については後述する。
【００２７】
以上のようにして、ファイルを構成する全てのデータブロックの書き込みが終了すると（図８のステップＳ８）、ストレージシステム１は、上位に書き込み完了を示すＡＣＫを返却する。
【００２８】
次に、図９を参照して、重複チェック部１１による重複チェック処理の詳細を説明する。重複チェック部１１は、ファイルを分割したデータブロックのフルハッシュ値（２０バイト）を算出する（図９のステップＳ１１）。なお、ハッシュ値は、データブロックのデータ内容に基づいて、当該データ内容を代表する固有の値であり、例えば、予め設定されたハッシュ関数を用いてデータブロックのデータ内容から算出される値である。
【００２９】
そして、重複チェック部１１は、データブロックのフルハッシュ値のうち、先頭の８バイトであるショートハッシュ値を取り出し、かかるショートハッシュ値と同一の値が存在するかメモリ上のショートハッシュテーブルを検索する（図９のステップＳ１２）。なお、ショートハッシュテーブルは、後述するように既に記憶装置１５に記憶されているデータブロックから算出されて記憶装置１５に記憶されているハッシュ値を、ストレージシステム１の起動時にメモリに読み込んだものである。
【００３０】
重複チェック部１１は、分割したデータブロックのショートハッシュ値がショートハッシュテーブルに存在しない場合には（図９のステップＳ１３でＮｏ）、分割したデータブロックは記憶装置１５に存在せず、重複しないと判定し（図９のステップＳ１８）、後述する分散書き込み部１２による分散書き込みを行う。一方、分割したデータブロックのショートハッシュ値がショートハッシュテーブルに存在する場合には（図９のステップＳ１３でＹｅｓ）、分割したデータブロックは記憶装置１５に存在する可能性がある。このため、重複チェック部１１は、さらに分割したデータブロックのフルハッシュ値と同一の値が存在するかメモリ上のフルハッシュテーブルを検索する（図９のステップＳ１４）。なお、フルハッシュテーブルは、後述するように、既に記憶装置１５に記憶されているデータブロックから算出されて記憶装置１５に記憶されているハッシュ値を、ストレージシステム１の起動時にメモリに読み込んだものであるか、あるいは、記憶装置１５に記憶されたままのハッシュ値そのものである。
【００３１】
重複チェック部１１は、分割したデータブロックのフルハッシュ値がフルハッシュテーブルに存在しない場合には（図９のステップＳ１５でＮｏ）、分割したデータブロックは記憶装置１５に存在せず、重複しないと判定し（図９のステップＳ１８）、後述する分散書き込み部１２による分散書き込みを行う。一方、分割したデータブロックのフルハッシュ値がフルハッシュテーブルに存在する場合には（図９のステップＳ１５でＹｅｓ）、分割したデータブロックは記憶装置１５に既に存在し、重複していると判定する。そして、重複チェック部１１は、記憶装置１５に記憶されているデータブロックに関連付けて記憶されているブロックメタデータを読み出して（図９のステップＳ１６）、データブロックとブロックメタデータの正常性を確認し（図９のステップＳ１７）、既存のデータブロックが読込可能であることを確認する。そして、その後は、後述するメタデータ更新部１３による処理が行われる。
【００３２】
次に、図６，７及び１０を参照して、分散書き込み部１２による分散書き込み処理の詳細を説明する。分散書き込み部１２は、図６の矢印Ｙ１に示すようにファイルから分割されたデータブロックに、パリティ設定に応じてパリティを追加する（図１０のステップＳ２１）。そして、データブロックのブロックメタデータ（図６及び図７の斜線図形を参照）に保持する情報を生成する（図１０のステップＳ２２）。このとき、ブロックメタデータに保持する情報としては、図７に示すように、データブロックの「フルハッシュ値」、「構成」、「保存位置」、「ｉｎｏｄｅリストへのポインタ」、がある。ここで、「フルハッシュ値」は、上述したように、データブロックのデータ内容に基づいてハッシュ関数を用いて算出される値である。また、「構成」は、例えば、データブロックのデータサイズなどの構成情報である。また、「保存位置」は、例えば、記憶装置１５内におけるデータブロックの保存位置を表す情報である。また、「ｉｎｏｄｅリストへのポインタ」は、データブロックの分割元となるファイルを特定する「ｉｎｏｄｅ番号」（ファイル情報）が格納される記憶領域を参照する参照情報である。
【００３３】
そして、分散書き込み部１２は、図６の矢印Ｙ２に示すように、データブロックを９個のフラグメントＤに分割し、さらに、図６の矢印Ｙ３二示すように、３個のパリティＰからなるフラグメントデータを追加し、合計１２個のフラグメントデータを生成する（図１０のステップＳ２３）。分散書き込み部１２は、１２個のフラグメントデータＤ，Ｐ及びブロックメタデータ（斜線）を、図６の矢印Ｙ４に示すように、各ストレージノードが備える各記憶装置１５に分散して書き込む（図１０のステップＳ２４）。なお、ブロックメタデータは、１２個に複製されて各フラグメントデータと共に各記憶装置１５に分散記憶される。
【００３４】
また、分散書き込み部１２は、分散して書き込んだデータブロックのブロックメタデータに記憶されているハッシュ値や保存位置から、データブロックを参照する情報であるコンテンツアドレス（ＣＡ（Content Address））を生成する。そして、図７に示すように、生成したコンテンツアドレスＣＡを、分割元となるファイルのファイルメタデータに含める。このとき、ファイルメタデータには、ファイルを識別するｉｎｏｄｅ番号やファイル名を含め、ファイルシステムで管理することで、ファイルを分割した各データブロックを読み出すことができ、ファイルを復元することができる。なお、ファイルメタデータも、上述同様に各記憶装置１５に分散されて記憶されてもよい。
【００３５】
次に、図７及び図１１を参照して、メタデータ更新部１３による処理の詳細を説明する。メタデータ更新部１３は、上述したように、分割したデータブロックが記憶装置１５に既に存在し、重複していると判定されたときに以下の処理を行う。具体的に、メタデータ更新部１３は、分割したデータブロックと重複している記憶装置１５に記憶されているデータブロックのブロックメタデータを読み出して、かかるブロックメタデータに含まれるフルハッシュ値や保存位置から、データブロックのコンテンツアドレス（ＣＡ）を計算する。そして、生成したコンテンツアドレスＣＡを、分割元となるファイルのファイルメタデータに含め、かかるファイルメタデータを保存する（図１１のステップＳ３１）。なお、重複するデータブロックのコンテンツアドレスは、既に算出されているものを用いてもよい。
【００３６】
また、メタデータ更新部１３は、上述した分割したデータブロックをコンテンツアドレスＣＡで参照させる処理とは非同期に、以下の処理を行う。まず、メタデータ更新部１３は、図７に示すように、重複すると判定されたデータブロックの分割元となるファイルのｉｎｏｄｅ番号をｉｎｏｄｅリストに追加する（図１１のステップＳ４１）。このとき、メタデータ更新部１３は、重複するデータブロックのブロックメタデータに含まれるポインタにて参照される記憶領域内のｉｎｏｄｅリストに、ｉｎｏｄｅ番号を追加する。
【００３７】
そして、メタデータ更新部１３は、重複すると判定されたデータブロックのブロックメタデータに含まれるポインタにて参照されるｉｎｏｄｅリストを読み出し、かかるｉｎｏｄｅリスト内のｉｎｏｄｅ番号を読み出す（図１１のステップＳ４２）。つまり、データブロックを参照している全てのファイルを特定するｉｎｏｄｅ番号を順に読み込む。
【００３８】
続いて、メタデータ更新部１３は、ｉｎｏｄｅリストのｉｎｏｄｅ番号で特定される各ファイルについて、データブロックのデータサイズを「参照データサイズ」として加算する（図１１のステップＳ４３）。ここで、「参照データサイズ」は、図７に示すように、各ファイルのファイルメタデータ内に含まれる情報であり、ファイルを構成するデータブロックのうち、他のファイルから参照されているデータブロックの合計データサイズを表す情報である。このため、ファイルを構成するデータブロックのうち、他のファイルから参照されているデータブロックの容量が多いほど、「参照データサイズ」が大きくなるよう算出される。そして、メタデータ更新部１３は、「参照データサイズ」を、ファイルメタデータに含まれるファイルの「合計データサイズ」で除算した「参照率」を計算し（図１１のステップＳ４４）、かかる参照率をファイルメタデータに含めて、当該ファイルメタデータを更新する（図１１のステップＳ４５）。つまり、ファイルの参照率＝（ファイルの参照されているデータサイズ）／（ファイルの合計データサイズ）を算出する。メタデータ更新部１３は、ｉｎｏｄｅリスト内の全てのｉｎｏｄｅ番号のファイルに対する処理が完了するまで、上述したよりを繰り返す（図１１のステップＳ４６）。
【００３９】
以上のように、本発明のストレージシステム１では、ブロックメタデータにデータブロックを参照するファイルを特定するｉｎｏｄｅリストへのポインタを含め、また、各ファイルの参照率をファイルメタデータに含めている。これにより、各ファイルの参照状況を常にトレースすることができ、ファイル間の重複／参照状況を迅速かつ正確に把握することができる。その結果、重複排除ストレージシステムにおけるファイル削除による空き容量の確保やティアリング操作の効果を容易に把握することができる。
【００４０】
また、ｉｎｏｄｅリストへの書き込みや参照率の算出を、バックグラウンド処理としてデータ書き込みのＩ／Ｏ処理とは非同期に実施するによって、オーバヘッドを抑え、Ｉ／Ｏ処理性能の低下を抑制することができる。なお、仮に非同期書き込みにより障害発生などで一時的に不整合が発生しても、データの安全性に影響を与えることはない。そのような不整合の発生に備え、バックグラウンドで定期的にチェックして整合性を整えることができる。また、ｉｎｏｄｅリストをメモリではなく記憶装置１５に記憶しておくことで、メモリ使用量を抑制することができる。
【００４１】
＜実施形態２＞
次に、本発明の第２の実施形態を、図１２乃至図１４を参照して説明する。図１２乃至図１３は、実施形態２における重複排除記憶制御装置の構成を示すブロック図であり、図１４は、重複排除記憶制御装置の動作を示すフローチャートである。なお、本実施形態では、実施形態１で説明した重複排除ストレージシステム及び重複排除ストレージシステムによる処理方法の構成の概略を示している。
【００４２】
まず、図１２を参照して、本実施形態における重複排除記憶制御装置１００のハードウェア構成を説明する。重複排除記憶制御装置１００は、一般的な情報処理装置にて構成されており、一例として、以下のようなハードウェア構成を装備している。
・ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１（演算装置）
・ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２（記憶装置）
・ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３（記憶装置）
・ＲＡＭ１０３にロードされるプログラム群１０４
・プログラム群１０４を格納する記憶装置１０５
・情報処理装置外部の記憶媒体１１０の読み書きを行うドライブ装置１０６
・情報処理装置外部の通信ネットワーク１１１と接続する通信インタフェース１０７
・データの入出力を行う入出力インタフェース１０８
・各構成要素を接続するバス１０９
【００４３】
そして、重複排除記憶制御装置１００は、プログラム群１０４をＣＰＵ１０１が取得して当該ＣＰＵ１０１が実行することで、図１３に示すデータ書き込み部１２１とデータ更新部１２２とを構築して装備することができる。なお、プログラム群１０４は、例えば、予め記憶装置１０５やＲＯＭ１０２に格納されており、必要に応じてＣＰＵ１０１がＲＡＭ１０３にロードして実行する。また、プログラム群１０４は、通信ネットワーク１１１を介してＣＰＵ１０１に供給されてもよいし、予め記憶媒体１１０に格納されており、ドライブ装置１０６が該プログラムを読み出してＣＰＵ１０１に供給してもよい。但し、上述したデータ書き込み部１２１とデータ更新部１２２とは、電子回路で構築されるものであってもよい。
【００４４】
なお、図１２は、重複排除記憶制御装置１００である情報処理装置のハードウェア構成の一例を示しており、情報処理装置のハードウェア構成は上述した場合に限定されない。例えば、情報処理装置は、ドライブ装置１０６を有さないなど、上述した構成の一部から構成されてもよい。
【００４５】
そして、重複排除記憶制御装置１００は、上述したようにプログラムによって構築されたデータ書き込み部１２１とデータ更新部１２２との機能により、図１４のフローチャートに示す重複排除記憶方法を実行する。
【００４６】
図１４に示すように、重複排除記憶制御装置１００は、
記憶対象となるファイルを複数のデータブロックに分割し（ステップＳ１０１）、
分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には（ステップＳ１０２でＮｏ）、分割したデータブロックを記憶装置に記憶し（ステップＳ１０３）、
分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には（ステップＳ１０２でＹｅｓ）、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照し（ステップＳ１０４）、
さらに、記憶装置に記憶されているデータブロックに関連付けて当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックに関連付けられて記憶されている前記ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶する（ステップＳ１０５）。
【００４７】
以上のように、本発明では、データブロックに関連付けて分割元のファイル情報を記憶すると共に、ファイルが参照されている割合を表す参照率を算出してファイルに関連付けて記憶している。これにより、各ファイルの参照状況を常にトレースすることができ、ファイル間の重複／参照状況を迅速かつ正確に把握することができる。その結果、重複排除機能を有する装置において、ファイル削除による空き容量の確保やティアリング操作の効果を容易に把握することができる。
【００４８】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における重複排除記憶方法、重複排除記憶装置、重複排除ストレージシステム、プログラムの構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
【００４９】
（付記１）
記憶対象となるファイルを複数のデータブロックに分割し、
分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、
分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照し、
さらに、記憶装置に記憶されているデータブロックに関連付けて当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックに関連付けられて記憶されている前記ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶する、
重複排除記憶方法。
【００５０】
（付記２）
付記１に記載の重複排除記憶方法であって、
記憶装置に記憶されているデータブロックを分割したデータブロックとして参照する処理とは非同期に、前記ファイル情報を記憶する処理と前記参照率を算出して記憶する処理とを行う、
重複排除記憶方法。
【００５１】
（付記３）
付記１又は２に記載の重複排除記憶方法であって、
記憶装置に記憶されているデータブロックのメタデータに含まれるポインタが参照する所定の記憶領域に前記ファイル情報を記憶する、
重複排除記憶方法。
【００５２】
（付記４）
付記３に記載の重複排除記憶方法であって、
データブロックのデータ内容の特徴を表し当該データブロックの重複判定に用いられる特徴情報を含む前記メタデータに前記ポインタが含まれている、
重複排除記憶方法。
【００５３】
（付記５）
付記１乃至３のいずれかに記載の重複排除記憶方法であって、
データブロックに関連付けられて記憶されている前記ファイル情報に基づいて、所定のファイルを構成するデータブロックのうち他のファイルから参照されているデータブロックのデータサイズを算出し、当該データサイズに基づいて前記参照率を算出してファイルに関連付けて記憶する、
重複排除記憶方法。
【００５４】
（付記６）
付記５に記載の重複排除記憶方法であって、
ファイルの前記ファイル情報と、当該ファイルを構成するデータブロックの記憶装置内における格納先を表す格納先情報と、を含む当該ファイルのメタデータに、前記参照率を記憶する、
重複排除記憶方法。
【００５５】
（付記７）
記憶対象となるファイルを複数のデータブロックに分割し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照する処理を行うデータ書き込み部と、
記憶装置に記憶されているデータブロックに関連付けて当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックに関連付けられて記憶されている前記ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶するデータ更新部と、
を備えた重複排除記憶制御装置。
【００５６】
（付記８）
複数の記憶装置と、当該複数の記憶装置に対して記憶対象となるファイルを分散して重複排除して記憶するよう制御する重複排除記憶制御装置と、を備え、
前記重複排除記憶制御装置は、
記憶対象となるファイルを複数のデータブロックに分割し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照する処理を行うデータ書き込み部と、
記憶装置に記憶されているデータブロックに関連付けて当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックに関連付けられて記憶されている前記ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶するデータ更新部と、
を備えた、
重複排除ストレージシステム。
【００５７】
（付記９）
情報処理装置に、
記憶対象となるファイルを複数のデータブロックに分割し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照する処理を行うデータ書き込み部と、
記憶装置に記憶されているデータブロックに関連付けて当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックに関連付けられて記憶されている前記ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶するデータ更新部と、
を実現させるためのプログラム。
【００５８】
なお、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００５９】
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【００６０】
１  ストレージシステム
２  アクセラレータノード
３  ストレージノード
４  バックアップシステム
１１  重複チェック部
１２  分散書き込み部
１３  メタデータ更新部
１５  記憶装置
１００  重複排除記憶制御装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  プログラム群
１０５  記憶装置
１０６  ドライブ装置
１０７  通信インタフェース
１０８  入出力インタフェース
１０９  バス
１１０  記憶媒体
１１１  通信ネットワーク
１２１  データ書き込み部
１２２  データ更新部
【図１】
2020190812.tif 000003
【図２】
2020190812.tif 000004
【図３】
2020190812.tif 000005
【図４】
2020190812.tif 000006
【図５】
2020190812.tif 000007
【図６】
2020190812.tif 000008
【図７】
2020190812.tif 000009
【図８】
2020190812.tif 000010
【図９】
2020190812.tif 000011
【図１０】
2020190812.tif 000012
【図１１】
2020190812.tif 000013
【図１２】
2020190812.tif 000014
【図１３】
2020190812.tif 000015
【図１４】
2020190812.tif 000016
【手続補正書】
【提出日】令和2年7月20日(2020.7.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
記憶対象となるファイルを複数のデータブロックに分割し、
分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、
分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照し、
さらに、記憶装置に記憶されているデータブロックのメタデータに含まれるポインタが参照する所定の記憶領域内のリストに、当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックのメタデータに含まれるポインタにて参照される前記リスト内の前記ファイル情報を読み出して、当該ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶する、
重複排除記憶方法。
【請求項２】
請求項１に記載の重複排除記憶方法であって、
記憶装置に記憶されているデータブロックを分割したデータブロックとして参照する処理とは非同期に、前記ファイル情報を記憶する処理と前記参照率を算出して記憶する処理とを行う、
重複排除記憶方法。
【請求項３】
請求項１又は２に記載の重複排除記憶方法であって、
データブロックのデータ内容の特徴を表し当該データブロックの重複判定に用いられる特徴情報を含む前記メタデータに前記ポインタが含まれている、
重複排除記憶方法。
【請求項４】
請求項１乃至３のいずれかに記載の重複排除記憶方法であって、
データブロックに関連付けられて記憶されている前記ファイル情報に基づいて、所定のファイルを構成するデータブロックのうち他のファイルから参照されているデータブロックのデータサイズを算出し、当該データサイズに基づいて前記参照率を算出してファイルに関連付けて記憶する、
重複排除記憶方法。
【請求項５】
請求項４に記載の重複排除記憶方法であって、
ファイルの前記ファイル情報と、当該ファイルを構成するデータブロックの記憶装置内における格納先を表す格納先情報と、を含む当該ファイルのメタデータに、前記参照率を記憶する、
重複排除記憶方法。
【請求項６】
記憶対象となるファイルを複数のデータブロックに分割し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照する処理を行うデータ書き込み部と、
記憶装置に記憶されているデータブロックのメタデータに含まれるポインタが参照する所定の記憶領域内のリストに、当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックのメタデータに含まれるポインタにて参照される前記リスト内の前記ファイル情報を読み出して、当該ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶するデータ更新部と、
を備えた重複排除記憶制御装置。
【請求項７】
複数の記憶装置と、当該複数の記憶装置に対して記憶対象となるファイルを分散して重複排除して記憶するよう制御する重複排除記憶制御装置と、を備え、
前記重複排除記憶制御装置は、
記憶対象となるファイルを複数のデータブロックに分割し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照する処理を行うデータ書き込み部と、
記憶装置に記憶されているデータブロックのメタデータに含まれるポインタが参照する所定の記憶領域内のリストに、当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックのメタデータに含まれるポインタにて参照される前記リスト内の前記ファイル情報を読み出して、当該ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶するデータ更新部と、
を備えた、
重複排除ストレージシステム。
【請求項８】
情報処理装置に、
記憶対象となるファイルを複数のデータブロックに分割し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複していない場合には、分割したデータブロックを記憶装置に記憶し、分割したデータブロックが記憶装置に記憶されているデータブロックと重複する場合には、当該記憶装置に記憶されているデータブロックを分割したデータブロックとして参照する処理を行うデータ書き込み部と、
記憶装置に記憶されているデータブロックのメタデータに含まれるポインタが参照する所定の記憶領域内のリストに、当該データブロックの分割元となるファイルを特定するファイル情報を記憶すると共に、データブロックのメタデータに含まれるポインタにて参照される前記リスト内の前記ファイル情報を読み出して、当該ファイル情報に基づいて所定のファイルが他のファイルから参照されている割合を表す参照率を算出して所定のファイルに関連付けて記憶するデータ更新部と、
を実現させるためのプログラム。