(57)【特許請求の範囲】
【請求項１】
ファイルを分割したブロックデータが格納される記憶装置と、
前記記憶装置に対してファイルを新たに格納する際に、当該新たに格納するファイルを分割した前記ブロックデータが前記記憶装置に既に記憶されているデータと同一のデータ内容であり、かつ、新たに格納するファイルの属性が前記記憶装置に既に記憶されているデータにて構成されるファイルの属性と同一である場合に、新たに格納する前記ブロックデータが重複すると判定する重複判定手段と、
前記重複判定手段にて新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納し、前記重複判定手段にて新たに格納する前記ブロックデータが重複すると判定された場合に、前記記憶装置に既に記憶されているデータを新たに格納する前記ブロックデータとして参照させる、データ格納制御手段と、
を備え、
前記重複判定手段は、前記ブロックデータと、当該ブロックデータの分割元となるファイルの予め設定された属性を識別する属性識別データと、を結合した結合データを生成し、当該結合データに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行い、
前記データ格納制御手段は、前記記憶装置に格納した前記ブロックデータを参照する参照データに、当該ブロックデータの分割元となるファイルの属性を表す前記属性識別データを関連付けると共に、当該参照データが参照する前記ブロックデータのデータサイズを表すサイズ情報を含めて前記記憶装置に格納し、
さらに、
前記参照データに関連付けられた前記属性識別データと、前記参照データに含まれる前記サイズ情報と、に基づいて、前記記憶装置内における前記属性毎の使用記憶容量を算出する記憶容量管理手段を備えた、
ストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、
前記データ格納制御手段は、前記重複判定手段にて新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納すると共に、当該格納したブロックデータに対応して生成された前記結合データに基づく情報を前記記憶装置に格納し、
前記重複判定手段は、新たに格納する前記ブロックデータに対応して生成された前記結合データに基づく情報と前記記憶装置に記憶されている情報とに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
ストレージシステム。
【請求項３】
請求項２に記載のストレージシステムであって、
前記データ格納制御手段は、前記重複判定手段にて新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納すると共に、当該格納したブロックデータに対応して生成された前記結合データのデータ内容の特徴を表す特徴データを生成して前記記憶装置に格納し、
前記重複判定手段は、新たに格納する前記ブロックデータに対応して生成された前記結合データのデータ内容の特徴を表す特徴データを生成して、当該特徴データが前記記憶装置に記憶されているか否かに応じて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
ストレージシステム。
【請求項４】
請求項１乃至３のいずれかに記載のストレージシステムであって、
前記データ格納制御手段は、前記参照データに、当該参照データが参照する前記ブロックデータが他のブロックデータとして参照されている数を表す被参照数を含めて前記記憶装置に格納し、
前記記憶容量管理手段は、前記参照データに含まれる前記被参照数に基づいて、前記記憶装置内における前記属性毎の使用記憶容量を算出する、
ストレージシステム。
【請求項５】
請求項１乃至４のいずれかに記載のストレージシステムであって、
前記データ格納制御手段は、ファイルの前記属性として、ファイルを使用するユーザ、ファイルを使用するユーザが属する予め設定されたグループ、ファイルの管理を行うファイルシステム、ファイルの管理を行うファイルシステムが属する予め設定されたグループ、のうち、いずれかを用いる、
ストレージシステム。
【請求項６】
ファイルを分割したブロックデータが格納される記憶装置に接続された情報処理装置に、
前記記憶装置に対してファイルを新たに格納する際に、当該新たに格納するファイルを分割した前記ブロックデータが前記記憶装置に既に記憶されているデータと同一のデータ内容であり、かつ、新たに格納するファイルの属性が前記記憶装置に既に記憶されているデータにて構成されるファイルの属性と同一である場合に、新たに格納する前記ブロックデータが重複すると判定する重複判定手段と、
前記重複判定手段にて新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納し、前記重複判定手段にて新たに格納する前記ブロックデータが重複すると判定された場合に、前記記憶装置に既に記憶されているデータを新たに格納する前記ブロックデータとして参照させる、データ格納制御手段と、
を実現させると共に、
前記重複判定手段は、前記ブロックデータと、当該ブロックデータの分割元となるファイルの予め設定された属性を識別する属性識別データと、を結合した結合データを生成し、当該結合データに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行い、
前記データ格納制御手段は、前記記憶装置に格納した前記ブロックデータを参照する参照データに、当該ブロックデータの分割元となるファイルの属性を表す前記属性識別データを関連付けると共に、当該参照データが参照する前記ブロックデータのデータサイズを表すサイズ情報を含めて前記記憶装置に格納し、
さらに、前記情報処理装置に、
前記参照データに関連付けられた前記属性識別データと、前記参照データに含まれる前記サイズ情報と、に基づいて、前記記憶装置内における前記属性毎の使用記憶容量を算出する記憶容量管理手段を実現させるためのプログラム。
【請求項７】
記憶装置に対してファイルを新たに格納する際に、当該新たに格納するファイルを分割したブロックデータが前記記憶装置に既に記憶されているデータと同一のデータ内容であり、かつ、新たに格納するファイルの属性が前記記憶装置に既に記憶されているデータにて構成されるファイルの属性と同一である場合に、新たに格納する前記ブロックデータが重複すると判定し、
新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納し、新たに格納する前記ブロックデータが重複すると判定された場合に、前記記憶装置に既に記憶されているデータを新たに格納する前記ブロックデータとして参照させると共に、
前記ブロックデータの重複判定の際に、前記ブロックデータと、当該ブロックデータの分割元となるファイルの予め設定された属性を識別する属性識別データと、を結合した結合データを生成し、当該結合データに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行い、
さらに、
前記記憶装置に格納した前記ブロックデータを参照する参照データに、当該ブロックデータの分割元となるファイルの属性を表す前記属性識別データを関連付けると共に、当該参照データが参照する前記ブロックデータのデータサイズを表すサイズ情報を含めて前記記憶装置に格納し、
前記参照データに関連付けられた前記属性識別データと、前記参照データに含まれる前記サイズ情報と、に基づいて、前記記憶装置内における前記属性毎の使用記憶容量を算出する、
データ格納方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムにかかり、特に、重複記憶排除機能を有するストレージシステムに関する。
【背景技術】
【０００２】
近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。
【０００３】
このような状況に応じて、近年では、特許文献１に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。
【０００４】
具体的に、コンテンツアドレスストレージシステムでは、所定のデータを分割したブロックデータを複数のフラグメントデータにさらに分割すると共に、冗長データ（パリティデータ）となるフラグメントデータを付加して、これら複数のフラグメントデータを複数の記憶装置に分散して格納している。そして、後に、コンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているデータつまりフラグメントデータを読み出し、複数のフラグメントデータから分割前の所定のデータを復元することができる。
【０００５】
また、上記コンテンツアドレスは、データの内容に応じて固有となるよう生成される。このため、重複データであれば同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除し、データ容量の削減を図ることができる。
【０００６】
そして、複数のユーザで上述した重複記憶排除機能を有するストレージシステムを使用する場合には、異なるユーザ間におけるデータに対しても重複記憶を排除することで、さらにストレージシステムの記憶容量を効率的に使用することができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−２３５１７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
一方で、上述したように異なるユーザのデータに対しても重複排除する場合には、不都合が生じることもある。例えば、ファイルをブロックデータに分割して格納する場合には、あるユーザＡの格納したファイルのデータが、部分的に他のユーザＢのファイルのデータと重複していると、そのユーザＡのファイルのデータは物理的に離れた位置に格納されてしまう可能性がある。すると、ユーザＡがファイルを読み出す際には、そのファイルの読み出し性能が低下する、という問題が生じる。また、同じブロックデータを異なるユーザが共有することで、ユーザごとのブロックデータの参照状態や記憶装置の使用物理容量を把握することが困難となる。なお、上記でいう「ユーザ」は、必ずしも一人の使用者と対応する必要はなく、「部署」「企業」など使用者の集合や、あるいはデータの用途などと対応するものであってもよい。
【０００９】
このため、本発明の目的は、上述した課題である、重複記憶排除機能を有するストレージシステムの読み出し性能が低下することと、ユーザ毎の使用記憶容量の把握が困難であることを、解決することができるストレージシステムを提供することにある。
【課題を解決するための手段】
【００１０】
本発明の一形態であるストレージシステムは、
ファイルを分割したブロックデータが格納される記憶装置と、
前記記憶装置に対してファイルを新たに格納する際に、当該新たに格納するファイルを分割した前記ブロックデータが前記記憶装置に既に記憶されているデータと同一のデータ内容であり、かつ、新たに格納するファイルの属性が前記記憶装置に既に記憶されているデータにて構成されるファイルの属性と同一である場合に、新たに格納する前記ブロックデータが重複すると判定する重複判定手段と、
前記重複判定手段にて新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納し、前記重複判定手段にて新たに格納する前記ブロックデータが重複すると判定された場合に、前記記憶装置に既に記憶されているデータを新たに格納する前記ブロックデータとして参照させる、データ格納制御手段と、
を備え、
前記重複判定手段は、前記ブロックデータと、当該ブロックデータの分割元となるファイルの予め設定された属性を識別する属性識別データと、を結合した結合データを生成し、当該結合データに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
という構成をとる。
【００１１】
また、本発明の他の形態であるストレージシステムは、
ファイルを分割したブロックデータが格納される記憶装置と、
前記記憶装置に対してファイルを新たに格納する際に、当該新たに格納するファイルを分割した前記ブロックデータが前記記憶装置に既に記憶されているデータと同一のデータ内容であり、かつ、新たに格納するファイルの属性が前記記憶装置に既に記憶されているデータにて構成されるファイルの属性と同一である場合に、新たに格納する前記ブロックデータが重複すると判定する重複判定手段と、
前記重複判定手段にて新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納し、前記重複判定手段にて新たに格納する前記ブロックデータが重複すると判定された場合に、前記記憶装置に既に記憶されているデータを新たに格納する前記ブロックデータとして参照させる、データ格納制御手段と、
を備え、
前記データ格納制御手段は、前記記憶装置に格納された前記ブロックデータを参照すると共に当該ブロックデータを識別するブロック識別データと、当該ブロックデータの分割元であるファイルの属性を表す属性識別データと、を関連付けて前記記憶装置に記憶し、
前記重複判定手段は、前記記憶装置に格納された前記ブロックデータを参照する前記ブロック識別データに関連付けられた前記属性識別データに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
という構成をとる。
【００１２】
また、本発明の他の形態であるプログラムは、
ファイルを分割したブロックデータが格納される記憶装置に接続された情報処理装置に、
前記記憶装置に対してファイルを新たに格納する際に、当該新たに格納するファイルを分割した前記ブロックデータが前記記憶装置に既に記憶されているデータと同一のデータ内容であり、かつ、新たに格納するファイルの属性が前記記憶装置に既に記憶されているデータにて構成されるファイルの属性と同一である場合に、新たに格納する前記ブロックデータが重複すると判定する重複判定手段と、
前記重複判定手段にて新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納し、前記重複判定手段にて新たに格納する前記ブロックデータが重複すると判定された場合に、前記記憶装置に既に記憶されているデータを新たに格納する前記ブロックデータとして参照させる、データ格納制御手段と、
を実現させると共に、
前記重複判定手段は、前記ブロックデータと、当該ブロックデータの分割元となるファイルの予め設定された属性を識別する属性識別データと、を結合した結合データを生成し、当該結合データに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
ことを実現させるためのプログラムである。
【００１３】
また、本発明の他の形態であるプログラムは、
ファイルを分割したブロックデータが格納される記憶装置に接続された情報処理装置に、
前記記憶装置に対してファイルを新たに格納する際に、当該新たに格納するファイルを分割した前記ブロックデータが前記記憶装置に既に記憶されているデータと同一のデータ内容であり、かつ、新たに格納するファイルの属性が前記記憶装置に既に記憶されているデータにて構成されるファイルの属性と同一である場合に、新たに格納する前記ブロックデータが重複すると判定する重複判定手段と、
前記重複判定手段にて新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納し、前記重複判定手段にて新たに格納する前記ブロックデータが重複すると判定された場合に、前記記憶装置に既に記憶されているデータを新たに格納する前記ブロックデータとして参照させる、データ格納制御手段と、
を実現させると共に、
前記データ格納制御手段は、前記記憶装置に格納された前記ブロックデータを参照すると共に当該ブロックデータを識別するブロック識別データと、当該ブロックデータの分割元であるファイルの属性を表す属性識別データと、を関連付けて前記記憶装置に記憶し、
前記重複判定手段は、前記記憶装置に格納された前記ブロックデータを参照する前記ブロック識別データに関連付けられた前記属性識別データに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
ことを実現させるためのプログラムである。
【００１４】
また、本発明の他の形態であるデータ格納方法は、
記憶装置に対してファイルを新たに格納する際に、当該新たに格納するファイルを分割したブロックデータが前記記憶装置に既に記憶されているデータと同一のデータ内容であり、かつ、新たに格納するファイルの属性が前記記憶装置に既に記憶されているデータにて構成されるファイルの属性と同一である場合に、新たに格納する前記ブロックデータが重複すると判定し、
新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納し、新たに格納する前記ブロックデータが重複すると判定された場合に、前記記憶装置に既に記憶されているデータを新たに格納する前記ブロックデータとして参照させると共に、
前記ブロックデータの重複判定の際に、前記ブロックデータと、当該ブロックデータの分割元となるファイルの予め設定された属性を識別する属性識別データと、を結合した結合データを生成し、当該結合データに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
という構成をとる。
【００１５】
また、本発明の他の形態であるデータ格納方法は、
記憶装置に対してファイルを新たに格納する際に、当該新たに格納するファイルを分割したブロックデータが前記記憶装置に既に記憶されているデータと同一のデータ内容であり、かつ、新たに格納するファイルの属性が前記記憶装置に既に記憶されているデータにて構成されるファイルの属性と同一である場合に、新たに格納する前記ブロックデータが重複すると判定し、
新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納し、新たに格納する前記ブロックデータが重複すると判定された場合に、前記記憶装置に既に記憶されているデータを新たに格納する前記ブロックデータとして参照させると共に、
新たに格納する前記ブロックデータが重複しないと判定され、当該新たに格納する前記ブロックデータを前記記憶装置に格納した際に、当該記憶装置に格納された前記ブロックデータを参照すると共に当該ブロックデータを識別するブロック識別データと、当該ブロックデータの分割元であるファイルの属性を表す属性識別データと、を関連付けて前記記憶装置に記憶し、
前記ブロックデータの重複判定の際に、前記記憶装置に格納された前記ブロックデータを参照する前記ブロック識別データに関連付けられた前記属性識別データに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
という構成をとる。
【発明の効果】
【００１６】
本発明は、以上のように構成されることにより、重複記憶排除機能を有するストレージシステムの読み出し性能の向上を図ることができると共に、ユーザ毎の使用記憶容量の把握が容易であるストレージシステムを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態１におけるシステム全体の構成を示すブロック図である。
【図２】図１に開示したストレージシステムの構成の概略を示すブロック図である。
【図３】図２に開示したストレージシステムの構成を示すブロック図である。
【図４】図２に開示したストレージシステムの動作を説明するための説明図である。
【図５】図２に開示したストレージシステムの動作を説明するための説明図である。
【図６】図２に開示したストレージシステムに記憶されているデータの一例を示す図である。
【図７】本発明に関連するストレージシステムの動作の一例を示す図である。
【図８】図２に開示したストレージシステムの動作の一例を示す図である。
【図９】図２に開示したストレージシステムに記憶されているデータの一例を示す図である。
【図１０】図２に開示したストレージシステムに記憶されているデータの一例を示す図である。
【図１１】図２に開示したストレージシステムの動作を示すフローチャートである。
【図１２】本発明の実施形態２におけるストレージシステムの構成を示すブロック図である。
【図１３】図１２に開示したストレージシステムに記憶されているデータの一例を示す図である。
【図１４】図１２に開示したストレージシステムに記憶されているデータの一例を示す図である。
【図１５】本発明の実施形態３におけるストレージシステムに記憶されているデータの一例を示す図である。
【図１６】本発明の付記１におけるストレージシステムの構成を示す機能ブロック図である。
【発明を実施するための形態】
【００１８】
＜実施形態１＞
本発明の第１の実施形態を、図１乃至図１１を参照して説明する。図１は、システム全体の構成を示すブロック図である。図２は、ストレージシステムの概略を示すブロック図であり、図３は、ストレージシステムの詳細な構成を示すブロック図である。図４乃至図８は、ストレージシステムの動作を説明するための説明図であり、図９乃至図１０は、ストレージシステムに記憶されているデータの一例を示す図である。図１１は、ストレージシステムの動作を示すフローチャートである。
【００１９】
ここで、本実施形態では、ストレージシステムが、複数台のサーバコンピュータが接続されて構成されている場合を説明する。但し、本発明におけるストレージシステムは、複数台のコンピュータにて構成されることに限定されず、１台のコンピュータ（情報処理装置）で構成されていてもよい。
【００２０】
図１に示すように、本発明におけるストレージシステム１０は、ネットワークＮを介してバックアップ処理を制御するバックアップシステム１１に接続している。そして、バックアップシステム１１は、ネットワークＮを介して接続されたバックアップ対象装置１２に格納されているバックアップ対象データを取得し、ストレージシステム１０に対して記憶するよう要求する。これにより、ストレージシステム１０は、記憶要求されたバックアップ対象データをバックアップ用に記憶する。なお、本実施形態におけるストレージシステム１０は、バックアップ対象データを記憶する場合を例示して説明するが、それは一例であって、いかなるデータを記憶してもよい。
【００２１】
そして、図２に示すように、本実施形態におけるストレージシステム１０は、複数のサーバコンピュータが接続された構成を採っている。具体的に、ストレージシステム１０は、ストレージシステム１０自体における記憶再生動作を制御するサーバコンピュータであるアクセラレータノード２０と、データを格納する記憶装置を備えたサーバコンピュータであるストレージノード３０と、を備えている。なお、アクセラレータノード２０の数とストレージノード３０の数は、図２に示したものに限定されず、さらに多くの各ノード２０，３０が接続されて構成されていてもよい。
【００２２】
さらに、本実施形態におけるストレージシステム１０は、データを分割及び冗長化し、分散して複数の記憶装置に記憶すると共に、記憶するデータの内容に応じて設定される固有のコンテンツアドレスによって、当該データを格納した格納位置を特定するコンテンツアドレスストレージシステムである。このコンテンツアドレスストレージシステムについては、後に詳述する。
【００２３】
図３に、本実施形態におけるストレージシステム１０の詳細な構成を示す。ここでは、上述したアクセラレータノード２０とストレージノード３０とを区別せずに、ストレージシステム１０が１つのシステムとして構成されていることとして説明する。
【００２４】
まず、ストレージシステム１０は、図３に示すように、まず、ネットワークインターフェースなどで構成されるファイル操作入力部１と、アクセラレータノード２０やストレージノード３０に装備されたＣＰＵ（Central Processing Unit）などの演算装置にプログラムが組み込まれることによって構築されたデータ処理装置２と、を備えている。そして、データ処理装置２は、ファイル操作実行部２１を備えている。
【００２５】
また、ストレージシステム１０は、主にストレージノード３０が装備する記憶装置３内に構成された、ＦＳ構造記憶部３１と、ブロックＩＤリスト記憶部３２と、ブロック関連データ記憶部３３と、ブロックデータ記憶部３４と、ブロックＩＤマッピング記憶部３５と、を備えている。以下、ストレージシステム１０の各構成と動作について詳述する。
【００２６】
上記ファイル操作入力部１は、バックアップ対象装置１２などからバックアップシステム１１を介して送信されたバックアップ対象データを受信して、ファイル操作実行部２１に渡す。
【００２７】
上記ファイル操作実行部２１（データ格納制御手段、重複判定手段）は、上述したようにファイル操作入力部１を介してバックアップ対象装置１２から送信されたバックアップ対象データの入力を受け、当該データを記憶装置３内に格納するよう制御する。具体的に、ファイル操作実行部２１は、バックアップ対象データを、複数のストレージノード３０やディスクによって構成される記憶装置に対して分散すると共に、重複を排除して記憶する。また、ファイル操作実行部２１は、分散記憶したデータを読み出す処理を行う。以下、上記ファイル操作実行部２１による分散記憶処理の一例を、図４乃至図８及び図１１のフローチャートを参照して説明する。
【００２８】
はじめに、ファイル操作実行部２１による基本的な分散記憶処理の動作について、図４及び図５を参照して説明する。まず、ファイル操作実行部２１は、バックアップ対象データであるファイルを構成するデータＡの入力を受けると（図４、図５の矢印Ｙ１）、図４及び図５の矢印Ｙ２に示すように、当該データＡを所定容量（例えば、６４ＫＢ）のブロックデータＤに分割する。そして、このブロックデータＤのデータ内容に基づいて、当該データ内容を代表する固有のハッシュ値Ｈを算出する（図５の矢印Ｙ３）。例えば、ハッシュ値Ｈは、予め設定されたハッシュ関数を用いて、ブロックデータＤのデータ内容から算出する。なお、本実施形態においては、単にブロックデータＤからハッシュ値Ｈを算出するのではなく、ブロックデータＤにファイルの属性を表すグループＩＤ（ＧＩＤ）を付加したデータ（結合データ）のハッシュ値Ｈを算出する。かかる処理については後述する。
【００２９】
続いて、ファイル操作実行部２１は、同じ内容のブロックデータＤの重複記録を排除するために、ブロックデータＤのハッシュ値Ｈを用いて、重複排除処理を行う。具体的には、まず、既に格納されているブロックデータＤは、後述するように、当該ブロックデータＤのハッシュ値Ｈと格納位置を表すコンテンツアドレスＣＡとが関連付けられて登録されているため、算出したブロックデータＤのハッシュ値Ｈが既に存在している場合には、既に同一内容のブロックデータＤが格納されていると判断できる。この場合には、格納前のブロックデータＤのハッシュ値Ｈと一致した登録されているハッシュ値Ｈに関連付けられているコンテンツアドレスＣＡを取得する。そして、このコンテンツアドレスＣＡを、書き込み要求されたブロックデータＤのコンテンツアドレスＣＡとして参照する。これにより、このコンテンツアドレスＣＡにて参照される既に格納されているデータが、書き込み要求されたブロックデータＤとして使用されることとなり、当該書き込み要求にかかるブロックデータＤを記憶する必要がなくなる。
【００３０】
また、ファイル操作実行部２１は、書き込み要求にかかるブロックデータＤがまだ記憶されていないと判断された場合には、かかるブロックデータＤを格納する処理を行う。具体的には、まず、ブロックデータＤを複数の所定の容量のフラグメントデータ（分割データ）に分割する。例えば、図４の符号Ｄ１〜Ｄ９に示すように、９つのフラグメントデータ（分割データ４１）に分割する。さらに、ストレージシステム１０は、分割したフラグメントデータのうちいくつかが欠けた場合であっても、元となるブロックデータＤを復元可能なよう冗長データを生成し、上記分割したフラグメントデータ４１に追加する。例えば、図４の符号Ｄ１０〜Ｄ１２に示すように、３つのフラグメントデータ（冗長データ４２）を追加する。これにより、９つの分割データ４１と、３つの冗長データ４２とにより構成される１２個のフラグメントデータからなるデータセット４０を生成する（図５の矢印Ｙ４）。
【００３１】
そして、ファイル操作実行部２１は、上述したように生成された各フラグメントデータを、ブロックデータ記憶部３４内に記憶する。例えば、図４に示すように、１２個のフラグメントデータＤ１〜Ｄ１２を生成した場合には、複数のストレージノード３０にて構成されたブロックデータ記憶部３４内に形成されたデータ格納領域である各コンポーネントＣに、各フラグメントデータＤ１〜Ｄ１２を１つずつそれぞれ格納して、分散記憶する（図５の矢印Ｙ５参照）。
【００３２】
ここで、上述したようにフラグメントデータが格納されると、ストレージシステム１０では、当該フラグメントデータＤ１〜Ｄ１２の格納位置、つまり、当該フラグメントデータＤ１〜Ｄ１２にて復元されるブロックデータＤの格納位置を表すコンテンツアドレスＣＡを生成する。このとき、コンテンツアドレスＣＡは、例えば、格納したブロックデータＤの内容に基づいて算出したハッシュ値Ｈの一部（ショートハッシュ）（例えば、ハッシュ値Ｈの先頭８Ｂ（バイト））と、論理格納位置を表す情報と、を組み合わせて、生成される。そして、このコンテンツアドレスＣＡは、ストレージシステム１０内のファイルシステムを管理するアクセラレータノード２０にて、バックアップ対象データであるファイルを構成する各ブロックデータの識別情報と、コンテンツアドレスＣＡとが関連付けられて、ファイル操作実行部２１にてファイルシステムとして管理される。なお、ブロックデータの識別情報自体が、当該ブロックデータを参照するコンテンツアドレスＣＡとなっていてもよい。
【００３３】
また、ファイル操作実行部２１は、ファイルの読み出し要求を受けると、要求されたファイルに対応するコンテンツアドレスＣＡにて指定される格納位置を特定し、この特定された格納位置に格納されている各フラグメントデータを、読み出し要求されたデータとして読み出すことができる。以上のように、ストレージシステム１０は、データを読み書きする機能を有する。
【００３４】
ここで、本実施形態におけるファイル操作実行部２１による、記憶装置３内にデータを記憶してファイルシステムを管理する処理について、図６乃至図８、及び、図１１を参照してさらに詳述する。
【００３５】
ファイル操作実行部２１は、ファイルが新規に作成された場合には、図６に示すように、まずＦＳ構造記憶部３１に、ファイルシステム内におけるファイル３１ａの存在を表すディレクトリ構造を記憶する。これに伴い、ファイル３１ａを複数に分割した場合における各ブロックデータを識別する各ブロックＩＤ３２ａ（ブロック識別データ）を格納する領域（ブロックＩＤエントリ）が形成されたブロックＩＤリストを作成してブロックＩＤリスト記憶部３２に記憶し、当該ブロックＩＤリストをＦＳ構造記憶部３１に記憶されたファイル３１ａに関連付ける。
【００３６】
続いて、ファイル操作実行部２１は、ファイル３１ａのデータを複数のブロックデータに分割し（図１１のステップＳ１）、各ブロックデータを識別するブロックＩＤを算出する。このとき、ブロックＩＤは、例えば、ブロックデータのハッシュ値を用いる。ここで、本実施形態におけるブロックＩＤとなるハッシュ値の作成方法について、図７乃至図８を参照して説明する。
【００３７】
本実施形態におけるファイル操作実行部２１は、まず、ファイル３１ａのデータを分割したブロックデータに、当該ブロックデータの分割元となるファイル３１ａに設定された属性であるグループを識別するグループＩＤ（以下、「ＧＩＤ」と記す）（属性識別データ）を付加した結合データを生成する。図８の例では、ファイルがblock 1, block 2, ・・・などに分割された各ブロックデータに対して、分割元となるファイルのＧＩＤをそれぞれ付加した各結合データＤ’を生成する。そして、ブロックデータにＧＩＤを付加した結合データＤ’に基づく情報として、当該結合データＤ’のデータ内容の特徴を表すハッシュ値Ｈ（特徴データ）を算出する（図１１のステップＳ２）。
【００３８】
これにより、上記ハッシュ値Ｈは、仮にデータ内容が同一のブロックデータから算出した場合であっても、異なるＧＩＤが付加されたもの同士は異なる値となる。なお、図７は、既存のストレージシステムにおけるハッシュ値Ｈの算出方法の一例を示しており、かかる例では、ブロックデータのみからハッシュ値を算出している。
【００３９】
ここで、上述した図８の例では、ブロックデータの先頭にＧＩＤを付加して結合データＤ’を生成するよう図示しているが、ＧＩＤをブロックデータに付加する位置は、ブロックデータの先頭、末尾など、いずれの位置であってもよい。
【００４０】
続いて、ファイル操作実行部２１は、ブロックデータにＧＩＤを付加した結合データＤ’のハッシュ値Ｈを用いて、同一のグループＩＤが有するファイルから分割され、同一のデータ内容であるブロックデータが、既にブロックデータ記憶部３４内に記憶されているか否かを調べる（図１１のステップＳ３）。ここで、既にブロックデータ記憶部３４内にブロックデータが格納されている場合には、後述するようにブロックデータと共に結合データＤ’のハッシュ値Ｈもブロック関連データ記憶部３３内などの記憶装置３内に記憶されていることとなる。このことを利用して、ファイル操作実行部２１は、新たに格納しようとする結合データＤ’のハッシュ値Ｈが、既に記憶装置３内に記憶されているか否かを調べる。
【００４１】
そして、ファイル操作実行部２１は、同一のグループＩＤが有するファイルから分割され、同一のデータ内容であるブロックデータが、まだストレージシステム１０内に記憶されていない場合には（図１１のステップＳ４でＮｏ）、かかるブロックデータ３４ａをブロックデータ記憶部３４に格納すると共に（図１１のステップＳ６）、このブロックデータ３４ａを参照して関連付けられるブロック関連データ３３ａを、ブロック関連データ記憶部３３に格納する。このブロック関連データ３３ａには、関連付けられたブロックデータ３４ａの情報、例えば、ブロックデータ３４ａのデータサイズを表すサイズ情報と、上述したようにブロックデータ３４ａにＧＩＤを付加した結合データＤ’のデータ内容を表すハッシュ値Ｈと、が格納される（図１１のステップＳ６）。
【００４２】
そして、ファイル操作実行部２１は、上述したように算出したハッシュ値ＨからなるブロックＩＤ３２ａを、新たに格納するファイル３１ａに対応するブロックＩＤリスト記憶部３２内のブロックＩＤリストに格納する。このとき、ブロックＩＤ３２ａは、対応する格納したブロックデータ３４ａに関連付けられたブロック関連データ３３ａを参照するよう、当該ブロック関連データ３３ａにマッピング情報を用いて関連付けて記憶する。なお、ブロックＩＤ３２ａとブロック関連データ３３ａとの関連付けは、ブロックＩＤ３２ａにブロック関連データ３３ａを参照するコンテンツアドレスを、マッピング情報３５ａとして用いて関連付けることで行う。なお、マッピング情報は、ブロックＩＤマッピング記憶部３５に記憶される。
【００４３】
これにより、ファイル３１ａを読み出す際には、ＦＳ構造記憶部３１を参照してファイル３１ａのブロックＩＤリストを読み出すことで、当該リストに含まれるブロックＩＤ３２ａが参照するブロック関連データ３３ａをマッピング情報３５ａに基づいて参照して、ファイル３１ａを構成するブロックデータ３４ａを読み出すことができる。このように、上記ブロックＩＤ３２ａ（ブロック識別データ）とブロック関連データ３３ａとは、格納されたブロックデータ３４ａを参照する参照データとして機能している。なお、上記ブロックＩＤ３２ａとブロック関連データ３３ａとは、１つのデータ（参照データ）にて構成されていてもよい。
【００４４】
なお、上述したようにブロックデータをブロックデータ記憶部３４に格納する際に、ブロックデータ自体にＧＩＤを付加して格納してもよい。この場合には、ファイルの読み出し時においては、読み出したデータ内からＧＩＤの部分を削除して使用する。
【００４５】
また、ファイル操作実行部２１は、上述したように、新たに格納するファイル３４ａを分割したブロックデータにＧＩＤを付加した結合データＤ’からハッシュ値Ｈを算出し（図１１のステップＳ１，Ｓ２）、このハッシュ値つまり結合データＤ’が既にブロック関連データ記憶部３３など記憶装置３内に記憶されていると判断された場合には（図１１のステップＳ３，ステップＳ４でＹｅｓ）、既に記憶されたブロックデータ３４ａを参照させる処理を行う（図１１のステップＳ５）。つまり、新たに格納するブロックデータのブロックＩＤ３２ａを算出してブロックＩＤリストに格納すると共に、当該ブロックＩＤ３２ａが既に記憶されているブロックデータ３４ａに関連付けられたブロック関連データ３３ａを参照するよう、マッピング情報３５ａを用いて当該ブロック関連データ３３ａに関連付けて記憶する。これにより、ブロックデータが、例えば図６に示すように異なるファイルから参照されることとなり、同一のブロックデータ３４ａを重複して記憶することを排除することができる。
【００４６】
このとき、本実施形態では、ブロックデータ３４ａの重複排除は、同一のＧＩＤ（グループＩＤ）が付加されたもの同士に限られる。つまり、同一のグループ（属性）に属するファイルにおいて、ブロックデータのデータ内容が同一のものだけが重複排除される。逆に言うと、ブロックデータのデータ内容が同一であっても、当該ブロックデータの分割元となるファイルのグループ（属性）が異なる場合には、重複排除されないこととなる。
【００４７】
以上のように、本実施形態によると、異なるグループ（例えば、ユーザ）のファイルを構成するブロックデータに対しては重複排除しないため、グループごとのファイルのブロックデータが記憶装置３内において物理的に離れた位置に格納されることを抑制できる。このため、ファイルを読み出す際における読み出し性能の向上を図ることができる。特に、既存の技術に対して、ＧＩＤをブロックデータに付加してハッシュ値を算出する機能を付加することで実現できるため、簡易な改良で実現でき、コストの低減を図ることができる。
【００４８】
また、同じブロックデータを異なるグループで共有することを抑制できるため、グループごとのブロックデータの参照状態や記憶装置内における使用物理容量を把握することが容易となり、データ管理が容易となる。
【００４９】
ここで、上述したファイルの属性としてのＧＩＤ（グループＩＤ）は、予め設定され、当該ファイルに関連付けられて記憶されている。そして、ＧＩＤとしては、以下の基準によるものが考えられる。
【００５０】
まず、ファイルを作成（所有）するユーザごとに、ＧＩＤを分けることが考えられる。この場合、ファイルの所有ユーザあるいは作成ユーザ毎に設定された識別情報であるユーザＩＤを、ＧＩＤとして用いる。
【００５１】
また、ファイルを作成（所有）するユーザが属する予め設定された集合（グループ）ごとに、ＧＩＤを分けることが考えられる。この場合、ユーザＩＤとＧＩＤとの対応関係を図９に示すようにストレージシステム内や他の記憶装置に記憶しておき、ファイルの所有ユーザあるいは作成ユーザに対応するＧＩＤを取得して、そのＧＩＤを用いる。図９の例では、ユーザＩＤがuser1, user2,user3は同じグループに属すると設定されており、同じＧＩＤが設定されている。これにより、例えば、企業内の部署ごとや、同じストレージを異なる企業が使う場合に企業ごとに、グループ分けすることができる。
【００５２】
また、ファイルを管理するファイルシステムごとに、ＧＩＤを分けることが考えられる。これにより、例えばファイルシステムごとに当該ファイルシステムで管理するファイルの使用者や用途を分け、当該ファイルシステムごとにグループ分けすることができる。この場合、ファイルシステムを識別するファイルシステムＩＤ（ＦＳＩＤ）をＧＩＤとして用いる。
【００５３】
また、上記ファイルシステムが属する集合（グループ）ごとに、ＧＩＤを分けることも考えられる。この場合、ファイルシステムとＧＩＤとの対応関係を図１０に示すように記憶しておき、ファイルシステムのファイルシステムＩＤから対応するＧＩＤを取得して、そのＧＩＤを用いる。例えば、図１０の例では、ファイルシステムＩＤ（ＦＳＩＤ）がfs1, fs2, fs3は同じグループに属すると設定されており、同じＧＩＤが設定されている。
【００５４】
なお、上記ＧＩＤによりファイルのグループを分ける基準は、上述したものであることに限定されない。ファイルを識別することができる属性であれば、いかなる属性を上述したグループとして用いてもよく、かかる属性を識別する情報（属性識別データ）をＧＩＤとして設定してもよい。
【００５５】
なお、上記では、ハッシュ値Ｈを用いて結合データＤ’の重複判定を行っているが、かかる重複判定においては必ずしもハッシュ値Ｈを用いることに限定されない。ブロックデータにグループを識別する情報を付加した結合データから、他のデータを算出してかかるデータに基づいて重複判定を行ってもよく、結合データに基づいて行われればよい。
【００５６】
＜実施形態２＞
次に、本発明の第２の実施形態を、図１２乃至図１４を参照して説明する。図１２は、本実施形態におけるストレージシステムの構成を示すブロック図であり、図１３乃至図１４は、ストレージシステムに記憶されるデータの一例を示す図である。
【００５７】
本実施形態におけるストレージシステムは、上述した実施形態１のものとほぼ同様の構成である。これに加え、本実施形態では、図１２に示すように、ストレージシステムを構成するデータ処理装置２が使用物理容量管理部２２を備え、また、ストレージシステムを構成する記憶装置３が使用物理容量記憶部３６を備える。また、上記構成に伴い、本実施形態におけるファイル操作実行部２１は、以下の機能を有する。
【００５８】
まず、本実施形態におけるファイル操作実行部２１は、上述したようにブロックデータ３４ａをブロックデータ記憶部３４に格納すると共に、このブロックデータ３４ａを参照して関連付けられるブロック関連データ３３ａをブロック関連データ記憶部３３に格納する。このとき、ファイル操作実行部２１は、図１３に示すように、ブロック関連データ３３ａ内に、ブロックデータ３４ａのデータサイズを表すサイズ情報（「size」）と、ブロックデータ３４ａが参照されている数を表す被参照数（「ref count」）と、を記憶する。なお、被参照数は、初めてブロックデータが格納された際にはその値「１」となり、他のファイルから参照されるとその値が加算され、参照しているファイルの削除によってその値が減算される。従って、どのファイルからも参照されていないブロックデータの被参照数の値は「０」となる。
【００５９】
さらに、ファイル操作実行部２１は、図１３に示すように、ブロック関連データ記憶部３３内において、各ブロック関連データ３３ａに、当該ブロック関連データ３３ａが参照するブロックデータの分割元とのなるファイルのグループ（属性）を識別するＧＩＤを関連付けて記憶する。
【００６０】
そして、上記使用物理容量管理部２２（記憶容量管理手段）は、上述したブロック関連データ記憶部３３内の各ブロック関連データ３３ａに含まれるサイズ情報や被参照数、さらには、ブロック関連データ３３ａが関連付けられているＧＩＤに基づいて、グループ（ＧＩＤ）ごとに記憶装置３が物理的に使用されている記憶容量（使用物理使用量）を算出する。具体的に、使用物理容量管理部２２は、新たなブロックデータが格納される毎に、当該ブロックデータを参照するブロック関連データ３３ａに関連付けられたＧＩＤについての使用物理容量に、当該ブロック関連データ３３ａに含まれるサイズ情報の値を加算する。また、使用物理容量管理部２２は、ファイルの削除時など任意のタイミングで、ブロック関連データ３３ａの被参照数が「０」となったものを調べ、当該ブロック関連データ３３ａに関連付けられたＧＩＤについての使用物理容量から、当該ブロック関連データ３３ａに含まれるサイズ情報の値を減算する。このようにして、グループ（ＧＩＤ）ごとの使用物理容量を算出する。
【００６１】
そして、使用物理容量管理部２２は、図１４に示すように、算出したグループ（ＧＩＤ）ごとの使用物理容量を使用物理容量記憶部３６に記憶する。
【００６２】
以上のように、本実施形態によると、ブロックデータをグループ間で重複記憶排除しないことによって、グループごとのブロックの参照状態および記憶装置３内における使用物理容量を容易に把握することができる。特に、グループごとにブロックデータを記憶しているため、上述した被参照数を各ブロックデータ毎に１つ保持すればよいため、簡易な構成で実現することができる。
【００６３】
なお、使用物理容量管理部２２は、グループ（ＧＩＤ）ごとの使用物理容量の算出を上述した方法にて行うことに限定されない。例えば、任意のタイミングで、ブロック関連データ記憶部３３内の全てのブロック関連データ３３ａを調べ、当該ブロック関連データ３３ａに関連付けられたＧＩＤやサイズ情報、被参照数を調べることで、グループ（ＧＩＤ）ごとの使用物理容量を算出してもよい。
【００６４】
ここで、上述した実施形態１，２において、グループ分けにファイルの所有ユーザを用いる場合には、ファイルの所有ユーザを変更するとＧＩＤが変わる場合がある。これに対処する１つの方法としては、ストレージシステムにおいてＧＩＤが変わるような所有ユーザの変更を禁止することである。もう１つの方法としては、ＧＩＤが変わった場合に、そのファイルの全ブロックについて、ブロックＩＤマッピング記憶部３５（及び、必要ならばブロックＩＤリスト記憶部３２、ブロックデータ記憶部３４）内のＧＩＤに関連する情報を、新しいＧＩＤを使った場合の情報に更新する。また、実施形態２のように、ブロック関連データで被参照数を管理している場合は、さらにブロック関連データ記憶部３３内の古いＧＩＤで参照していたブロック関連データの被参照数を減らし、新しいＧＩＤで参照するブロック関連データの被参照数を増やす（必要ならば、新規のブロック関連データを作成する）処理を行うとよい。
【００６５】
＜実施形態３＞
次に、本発明の第３の実施形態を、図１５を参照して説明する。本実施形態におけるストレージシステムは、上述した実施形態１，２とほぼ同様の構成をとっているが、以下の点でその構成が異なる。
【００６６】
本実施形態におけるファイル操作実行部２１は、ファイルが新規に作成された場合には、まず、上述同様図１５に示すように、ファイルシステム内におけるファイル３１ａの存在を表すディレクトリ構造を記憶し、当該ファイル３１ａに関連付けて、ファイル３１ａを複数に分割した場合における各ブロックデータを識別する各ブロックＩＤ３２ａを格納するブロックＩＤリストを作成する。
【００６７】
続いて、ファイル操作実行部２１は、ファイル３１ａのデータを複数のブロックデータに分割し、各ブロックデータを識別するブロックＩＤを算出する。このとき、ブロックＩＤとして、例えば、ブロックデータのハッシュ値を用いる場合には、上述した図７に示すように、ブロックデータのみからハッシュ値を算出してもよい。
【００６８】
続いて、ファイル操作実行部２１は、ブロックデータのハッシュ値を用いて、同一のデータ内容となるブロックデータが既にブロックデータ記憶部３４内に記憶されていないか否かを調べる。ここで、ブロックデータのハッシュ値は、後述するように、ブロックデータと共に記憶装置３内に記憶されていることとなるため、同一のハッシュ値が既に記憶されている場合には、同一のブロックデータが記憶されていることとなる。但し、本実施形態では、後述するように、ブロックデータを識別するブロックＩＤと共に、当該ブロックデータの分割元となるファイルの属性を表すＧＩＤ（グループＩＤ）が関連付けられて記憶されている。このことを利用して、ファイル操作実行部２１は、新たに記憶するブロックデータの分割元となるファイルのＧＩＤと、既にブロックＩＤと共に記憶されているＧＩＤとを比較して、これらが同一である既に記憶されているブロックデータだけを、重複判定の対象とする。
【００６９】
そして、ファイル操作実行部２１は、ＧＩＤが同一であり、データ内容が同一のブロックデータがまだストレージシステム１０内に記憶されていない場合には、かかるブロックデータ３４ａをブロックデータ記憶部３４に格納すると共に、このブロックデータ３４ａを参照して関連付けられるブロック関連データ３３ａを、ブロック関連データ記憶部３３に格納する。このブロック関連データ３３ａには、関連付けられたブロックデータ３４ａの情報、例えば、ブロックデータ３４ａのデータサイズを表すサイズ情報と、ブロックデータ３４ａのデータ内容を表すハッシュ値Ｈと、が格納される。
【００７０】
そして、ファイル操作実行部２１は、上述したように算出したハッシュ値ＨからなるブロックＩＤ３２ａを、新たに格納するファイル３１ａに対応するブロックＩＤリスト記憶部３２内のブロックＩＤリストに格納する。このとき、ブロックＩＤ３２ａには、対応する格納したブロックデータ３４ａの分割元となるファイルのＧＩＤ（グループＩＤ）を関連付けて記憶する。そして、ファイル操作実行部２１は、ＧＩＤとブロックＩＤとを組み合わせた組み合わせデータから、格納したブロックデータに関連付けられたブロック関連データ３３ａを参照するマッピング情報を生成して、当該マッピング情報をブロックＩＤマッピング記憶部３５に記憶する。
【００７１】
これにより、ファイル３１ａを読み出す際には、ＦＳ構造記憶部３１を参照してファイル３１ａのブロックＩＤリストを読み出すことで、当該リストに含まれるブロックＩＤ３２ａが参照するブロック関連データ３３ａをマッピング情報３５ａに基づいて参照して、ファイル３１ａを構成するブロックデータ３４ａを読み出すことができる。
【００７２】
以上のように、本実施形態では、ファイルの属性を表すＧＩＤとブロックＩＤとの組み合わせデータから、格納されたブロックデータに関連付けられたブロック関連データを参照するマッピング情報を記憶しているため、ＧＩＤ毎にブロックデータが記憶されることとなる。従って、異なるＧＩＤ間でブロックデータが重複排除されることがないため、グループごとのファイルのブロックデータが記憶装置３内において物理的に離れた位置に格納されることを抑制できる。このため、ファイルを読み出す際における読み出し性能の向上を図ることができる。また、ブロックＩＤに関連付けられたＧＩＤを参照することで、グループごとの使用記憶容量も容易に把握することができる。
【００７３】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージシステム（図１６参照）、プログラム、データ格納方法の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
【００７４】
（付記１）
ファイルを分割したブロックデータが格納される記憶装置１１０と、
前記記憶装置に対してファイルを新たに格納する際に、当該新たに格納するファイルを分割した前記ブロックデータが前記記憶装置に既に記憶されているデータと同一のデータ内容であり、かつ、新たに格納するファイルの属性が前記記憶装置に既に記憶されているデータにて構成されるファイルの属性と同一である場合に、新たに格納する前記ブロックデータが重複すると判定する重複判定手段１０１と、
前記重複判定手段にて新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納し、前記重複判定手段にて新たに格納する前記ブロックデータが重複すると判定された場合に、前記記憶装置に既に記憶されているデータを新たに格納する前記ブロックデータとして参照させる、データ格納制御手段１０２と、
を備え、
前記重複判定手段１０１は、前記ブロックデータと、当該ブロックデータの分割元となるファイルの予め設定された属性を識別する属性識別データと、を結合した結合データを生成し、当該結合データに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
ストレージシステム１００。
【００７５】
（付記２）
付記１に記載のストレージシステムであって、
前記データ格納制御手段は、前記重複判定手段にて新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納すると共に、当該格納したブロックデータに対応して生成された前記結合データに基づく情報を前記記憶装置に格納し、
前記重複判定手段は、新たに格納する前記ブロックデータに対応して生成された前記結合データに基づく情報と前記記憶装置に記憶されている情報とに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
ストレージシステム。
【００７６】
（付記３）
付記２に記載のストレージシステムであって、
前記データ格納制御手段は、前記重複判定手段にて新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納すると共に、当該格納したブロックデータに対応して生成された前記結合データのデータ内容の特徴を表す特徴データを生成して前記記憶装置に格納し、
前記重複判定手段は、新たに格納する前記ブロックデータに対応して生成された前記結合データのデータ内容の特徴を表す特徴データを生成して、当該特徴データが前記記憶装置に記憶されているか否かに応じて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
ストレージシステム。
【００７７】
（付記４）
付記１乃至３のいずれかに記載のストレージシステムであって、
前記データ格納制御手段は、前記記憶装置に格納した前記ブロックデータを参照する参照データに、当該ブロックデータの分割元となるファイルの属性を表す前記属性識別データを関連付けると共に、当該参照データが参照する前記ブロックデータのデータサイズを表すサイズ情報を含めて前記記憶装置に格納し、
前記参照データに関連付けられた前記属性識別データと、前記参照データに含まれる前記サイズ情報と、に基づいて、前記記憶装置内における前記属性毎の使用記憶容量を算出する記憶容量管理手段を備えた、
ストレージシステム。
【００７８】
（付記５）
付記４に記載のストレージシステムであって、
前記データ格納制御手段は、前記参照データに、当該参照データが参照する前記ブロックデータが他のブロックデータとして参照されている数を表す被参照数を含めて前記記憶装置に格納し、
前記記憶容量管理手段は、前記参照データに含まれる前記被参照数に基づいて、前記記憶装置内における前記属性毎の使用記憶容量を算出する、
ストレージシステム。
【００７９】
（付記６）
ファイルを分割したブロックデータが格納される記憶装置と、
前記記憶装置に対してファイルを新たに格納する際に、当該新たに格納するファイルを分割した前記ブロックデータが前記記憶装置に既に記憶されているデータと同一のデータ内容であり、かつ、新たに格納するファイルの属性が前記記憶装置に既に記憶されているデータにて構成されるファイルの属性と同一である場合に、新たに格納する前記ブロックデータが重複すると判定する重複判定手段と、
前記重複判定手段にて新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納し、前記重複判定手段にて新たに格納する前記ブロックデータが重複すると判定された場合に、前記記憶装置に既に記憶されているデータを新たに格納する前記ブロックデータとして参照させる、データ格納制御手段と、
を備え、
前記データ格納制御手段は、前記記憶装置に格納された前記ブロックデータを参照すると共に当該ブロックデータを識別するブロック識別データと、当該ブロックデータの分割元であるファイルの属性を表す属性識別データと、を関連付けて前記記憶装置に記憶し、
前記重複判定手段は、前記記憶装置に格納された前記ブロックデータを参照する前記ブロック識別データに関連付けられた前記属性識別データに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
ストレージシステム。
【００８０】
（付記７）
付記１乃至６のいずれかに記載のストレージシステムであって、
前記データ格納制御手段は、ファイルの前記属性として、ファイルを使用するユーザ、ファイルを使用するユーザが属する予め設定されたグループ、ファイルの管理を行うファイルシステム、ファイルの管理を行うファイルシステムが属する予め設定されたグループ、のうち、いずれかを用いる、
ストレージシステム。
【００８１】
（付記８）
ファイルを分割したブロックデータが格納される記憶装置に接続された情報処理装置に、
前記記憶装置に対してファイルを新たに格納する際に、当該新たに格納するファイルを分割した前記ブロックデータが前記記憶装置に既に記憶されているデータと同一のデータ内容であり、かつ、新たに格納するファイルの属性が前記記憶装置に既に記憶されているデータにて構成されるファイルの属性と同一である場合に、新たに格納する前記ブロックデータが重複すると判定する重複判定手段と、
前記重複判定手段にて新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納し、前記重複判定手段にて新たに格納する前記ブロックデータが重複すると判定された場合に、前記記憶装置に既に記憶されているデータを新たに格納する前記ブロックデータとして参照させる、データ格納制御手段と、
を実現させると共に、
前記重複判定手段は、前記ブロックデータと、当該ブロックデータの分割元となるファイルの予め設定された属性を識別する属性識別データと、を結合した結合データを生成し、当該結合データに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
ことを実現させるためのプログラム。
【００８２】
（付記９）
付記８に記載のプログラムであって、
前記データ格納制御手段は、前記重複判定手段にて新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納すると共に、当該格納したブロックデータに対応して生成された前記結合データに基づく情報を前記記憶装置に格納し、
前記重複判定手段は、新たに格納する前記ブロックデータに対応して生成された前記結合データに基づく情報と前記記憶装置に記憶されている情報とに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
プログラム。
【００８３】
（付記１０）
ファイルを分割したブロックデータが格納される記憶装置に接続された情報処理装置に、
前記記憶装置に対してファイルを新たに格納する際に、当該新たに格納するファイルを分割した前記ブロックデータが前記記憶装置に既に記憶されているデータと同一のデータ内容であり、かつ、新たに格納するファイルの属性が前記記憶装置に既に記憶されているデータにて構成されるファイルの属性と同一である場合に、新たに格納する前記ブロックデータが重複すると判定する重複判定手段と、
前記重複判定手段にて新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納し、前記重複判定手段にて新たに格納する前記ブロックデータが重複すると判定された場合に、前記記憶装置に既に記憶されているデータを新たに格納する前記ブロックデータとして参照させる、データ格納制御手段と、
を実現させると共に、
前記データ格納制御手段は、前記記憶装置に格納された前記ブロックデータを参照すると共に当該ブロックデータを識別するブロック識別データと、当該ブロックデータの分割元であるファイルの属性を表す属性識別データと、を関連付けて前記記憶装置に記憶し、
前記重複判定手段は、前記記憶装置に格納された前記ブロックデータを参照する前記ブロック識別データに関連付けられた前記属性識別データに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
ことを実現させるためのプログラム。
【００８４】
（付記１１）
記憶装置に対してファイルを新たに格納する際に、当該新たに格納するファイルを分割したブロックデータが前記記憶装置に既に記憶されているデータと同一のデータ内容であり、かつ、新たに格納するファイルの属性が前記記憶装置に既に記憶されているデータにて構成されるファイルの属性と同一である場合に、新たに格納する前記ブロックデータが重複すると判定し、
新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納し、新たに格納する前記ブロックデータが重複すると判定された場合に、前記記憶装置に既に記憶されているデータを新たに格納する前記ブロックデータとして参照させると共に、
前記ブロックデータの重複判定の際に、前記ブロックデータと、当該ブロックデータの分割元となるファイルの予め設定された属性を識別する属性識別データと、を結合した結合データを生成し、当該結合データに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
データ格納方法。
【００８５】
（付記１２）
付記１１に記載のデータ格納方法であって、
新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納すると共に、当該格納したブロックデータに対応して生成された前記結合データに基づく情報を前記記憶装置に格納し、
前記ブロックデータの重複判定の際に、新たに格納する前記ブロックデータに対応して生成された前記結合データに基づく情報と前記記憶装置に記憶されている情報とに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
情報処理方法。
【００８６】
（付記１３）
記憶装置に対してファイルを新たに格納する際に、当該新たに格納するファイルを分割したブロックデータが前記記憶装置に既に記憶されているデータと同一のデータ内容であり、かつ、新たに格納するファイルの属性が前記記憶装置に既に記憶されているデータにて構成されるファイルの属性と同一である場合に、新たに格納する前記ブロックデータが重複すると判定し、
新たに格納する前記ブロックデータが重複しないと判定された場合に、当該新たに格納する前記ブロックデータを前記記憶装置に格納し、新たに格納する前記ブロックデータが重複すると判定された場合に、前記記憶装置に既に記憶されているデータを新たに格納する前記ブロックデータとして参照させると共に、
新たに格納する前記ブロックデータが重複しないと判定され、当該新たに格納する前記ブロックデータを前記記憶装置に格納した際に、当該記憶装置に格納された前記ブロックデータを参照すると共に当該ブロックデータを識別するブロック識別データと、当該ブロックデータの分割元であるファイルの属性を表す属性識別データと、を関連付けて前記記憶装置に記憶し、
前記ブロックデータの重複判定の際に、前記記憶装置に格納された前記ブロックデータを参照する前記ブロック識別データに関連付けられた前記属性識別データに基づいて、新たに格納する前記ブロックデータが重複するか否かの判定を行う、
データ格納方法。
【００８７】
なお、上述したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【００８８】
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【００８９】
１０  ストレージシステム
１１  バックアップシステム
１２  バックアップ対象装置
２０  アクセラレータノード
３０  ストレージノード
１  ファイル操作入力部
２  データ処理装置
２１  ファイル操作実行部
２２  使用物理容量管理部
３  記憶装置
３１  ＦＳ構造記憶部
３２  ブロックＩＤリスト記憶部
３３  ブロック関連データ記憶部
３４  ブロックデータ記憶部
３５  ブロックＩＤマッピング記憶部
３６  使用物理容量記憶部
３１ａ  ファイル
３２ａ  ブロックＩＤ
３３ａ  ブロック関連データ
３４ａ  ブロックデータ
３５ａ  マッピング情報
【図１】
0005929326.tif 000002
【図２】
0005929326.tif 000003
【図３】
0005929326.tif 000004
【図４】
0005929326.tif 000005
【図５】
0005929326.tif 000006
【図６】
0005929326.tif 000007
【図７】
0005929326.tif 000008
【図８】
0005929326.tif 000009
【図９】
0005929326.tif 000010
【図１０】
0005929326.tif 000011
【図１１】
0005929326.tif 000012
【図１２】
0005929326.tif 000013
【図１３】
0005929326.tif 000014
【図１４】
0005929326.tif 000015
【図１５】
0005929326.tif 000016
【図１６】
0005929326.tif 000017