(57)【要約】【課題】デ・デュプリケーションの適用における処理負担の軽減と高圧縮率の実現との両立が困難である。【解決手段】格納依頼に含まれていたデータ本体を識別可能なデータ本体識別値を保存するデータ本体識別値保存手段と、新たな格納依頼に含まれているデータ本体識別値と識別値保存手段に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定するデータ本体識別値判定手段と、データ本体を分割した分割データを識別可能な分割データ識別値を保存する分割データ識別値保存手段と、本体データを格納装置に格納すべきと判定した場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と分割データ識別値保存手段に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定する分割データ識別値判定手段とを備えた。【選択図】図６
2010170475.tif 000002
【特許請求の範囲】
【請求項１】
データ本体を識別可能なデータ本体識別値を含む格納依頼を受信してデータ本体を格納装置に格納するための処理を行うストレージシステムであって、
格納依頼に含まれていたデータ本体識別値を保存するデータ本体識別値保存手段と、
新たな格納依頼に含まれているデータ本体識別値と前記識別値保存手段に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定するデータ本体識別値判定手段と、
データ本体を分割した分割データを識別可能な分割データ識別値を保存する分割データ識別値保存手段と、
前記データ本体識別値判定手段が本体データを格納装置に格納すべきと判定した場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と前記分割データ識別値保存手段に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定する分割データ識別値判定手段と
を備えたことを特徴とするストレージシステム。
【請求項２】
格納依頼にはデータ本体の特徴を示す特徴データが含まれ、複数の格納装置を備えたストレージシステムであって、
格納依頼に含まれていた特徴データを保存する特徴データ保存手段と、
新たな格納依頼に含まれているデータ本体識別値がデータ本体識別値保存手段に保存されているいずれのデータ本体識別値とも合致しないとデータ本体識別値判定手段が判定した場合に、格納依頼に含まれていた特徴データと前記特徴データ保存手段に保存されている特徴データとを比較することによってデータ本体が格納される格納装置を選択する格納装置選択手段とを備えた
請求項１記載のストレージシステム。
【請求項３】
格納装置選択手段は、特徴データ保存手段に保存されている特徴データのうち、格納依頼に含まれていた特徴データと最も類似する特徴データで示される本体データが格納されている格納装置を選択する
請求項２記載のストレージシステム。
【請求項４】
特徴データは複数のメタデータを含み、
格納装置選択手段は、特徴データ保存手段に保存されている特徴データのうち、格納依頼に含まれていた特徴データに含まれるメタデータに一致するメタデータの数が最も多い特徴データで示される本体データが格納されている格納装置を選択する
請求項３記載のストレージシステム。
【請求項５】
格納装置選択手段は、特徴データ保存手段に、格納依頼に含まれていた特徴データと類似する特徴データが保存されていないと判定した場合に、空き容量が最も多い格納装置を選択する
請求項２記載のストレージシステム。
【請求項６】
特徴データは複数のメタデータを含み、
格納装置選択手段は、特徴データ保存手段に、格納依頼に含まれていた特徴データに含まれるメタデータに一致するメタデータを含む特徴データが保存されていない場合に、格納依頼に含まれていた特徴データと類似する特徴データが前記特徴データ保存手段に保存されていないと判定する
請求項５記載のストレージシステム。
【請求項７】
データ本体を識別可能なデータ本体識別値を含む格納依頼を受信してデータ本体を格納装置に格納するための処理を行うストレージシステムにおけるデータ書込方法であって、
格納依頼に含まれていたデータ本体識別値をデータ本体識別値保存手段に保存し、
データ本体を分割した分割データを識別可能な分割データ識別値を分割データ識別値保存手段に保存し、
新たな格納依頼に含まれているデータ本体識別値と前記データ本体識別値保存手段に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定し、
本体データを格納装置に格納すべきと判定された場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と前記分割データ識別値保存手段に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定する
ことを特徴とするストレージシステムにおけるデータ書込方法。
【請求項８】
格納依頼にはデータ本体の特徴を示す特徴データが含まれ、複数の格納装置を備えたストレージシステムにおけるデータ書込方法であって、
格納依頼に含まれていた特徴データを特徴データ保存手段に保存し、
新たな格納依頼に含まれているデータ本体識別値がデータ本体識別値保存手段に保存されているいずれのデータ本体識別値とも合致しないと判定された場合に、格納依頼に含まれていた特徴データと前記特徴データ保存手段に保存されている特徴データとを比較することによってデータ本体を格納する格納装置を選択する
請求項７記載のストレージシステムにおけるデータ書込方法。
【請求項９】
データ本体を識別可能なデータ本体識別値を含む格納依頼を受信してデータ本体を格納装置に格納するための処理を行うストレージシステムに搭載されるデータ書込方法プログラムであって、
コンピュータに、
格納依頼に含まれていたデータ本体識別値をデータ本体識別値保存手段に保存する処理と、
データ本体を分割した分割データを識別可能な分割データ識別値を分割データ識別値保存手段に保存する処理と、
新たな格納依頼に含まれているデータ本体識別値とデータ本体識別値保存手段に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定する処理と、
本体データを格納装置に格納すべきと判定された場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と前記分割データ識別値保存手段に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定する処理と
を実行させるためのデータ書込プログラム。
【請求項１０】
格納依頼にはデータ本体の特徴を示す特徴データが含まれ、複数の格納装置を備えたストレージシステムにおけるデータ書込プログラムであって、
コンピュータに、
格納依頼に含まれていた特徴データを特徴データ保存手段に保存する処理と、
新たな格納依頼に含まれているデータ本体識別値がデータ本体識別値保存手段に保存されているいずれのデータ本体識別値とも合致しないと判定された場合に、格納依頼に含まれていた特徴データと前記特徴データ保存手段に保存されている特徴データとを比較することによってデータ本体を格納する格納装置を選択する処理と
を実行させるための請求項９記載のデータ書込プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコンピューティング端末で生成されたデータを集中的に管理、格納するストレージシステム、ストレージシステムにおけるデータ書込方法及びデータ書込プログラムに関する。
【背景技術】
【０００２】
複数のコンピューティング端末で生成されたデータを集中的に格納するストレージシステムにおいて、ハードディスクドライブなどの物理的な記憶媒体にデータを格納する段階で、データに圧縮処理をかけることにより、物理的な記録容量を削減することが可能である。
【０００３】
このデータの圧縮処理を前提としたデータの格納手法として、デ・デュプリケーション（Ｄｅｄｕｐｌｉｃａｔｉｏｎ）と呼ばれる方法がある。この方法は、ストレージ装置に格納するデータ群の中から同一のバイト列からなる重複データ群を検出することで、物理的には１つのデータを格納するのみで、論理的には複数のデータが格納されていることを再現可能とするデータ格納手法である。
【０００４】
デ・デュプリケーションは、通常、ファイルやファイルを構成するデータブロック単位でのデータの重複の判定を行なう。そして、重複判定をする際、ディジタル認証などで用いられているＳＨＡ１やＭＤ５などのハッシュ関数により生成された数十〜数百ビットのサイズの小さいダイジェストデータを使ってデータ同士を比較判定する。そのため、重複判定にかかる処理コストを大幅に削減することが可能である。
【０００５】
この様な重複判定処理を前提とするストレージシステムの記録容量の削減手段は、ファイルやファイルを構成するデータブロック単位でのデータの重複が多数見込まれることを前提としたコンピューティング環境においては、ｇｚｉｐなどの情報源符号化に基づくデータ圧縮処理よりも処理負荷が低く、かつ一定以上のデータ削減効果も見込める。そのため、ストレージシステムにおける物理的なデータの記憶容量の削減手段の１つとして利用が進んでいる。
【０００６】
一方で、企業内ストレージの集約や、クラウドコンピューティングと呼ばれるより大規模なデータを格納するストレージシステムにおいては、大容量のストレージを集約するための基盤と、大量のＩ／Ｏ処理の実行するための基盤とのバランスを適用環境に合わせて設計可能とするストレージシステムが求められる。
【０００７】
特にファイルアクセスを提供するストレージシステムにおいては、ファイルのメタデータを操作するＩ／Ｏ処理の応答性能と、ファイルデータ本体を読み書きするＩ／Ｏ処理のスループット性能とのように異なる性質の処理性能が求められるなど、コンピューティング端末からの要求により、性質の異なる処理のバランスが取れることが基盤として求められる。
【０００８】
この様な処理のバランスを取る手段として、ｐＮＦＳに代表されるようなプロトコルをファイルアクセス処理の仲介手段として用いる、ファイルのメタデータを扱う処理と、ファイルデータ本体を扱う処理とを分離したストレージアーキテクチャの採用がある。
【０００９】
大規模なデータを管理するという観点においては、データを格納する際、データのライフサイクルを定義することにより、時系列によるデータの使用頻度やデータ廃棄時期を設定する仕組みがある。そのようにすることによって、データの配置場所やデータ削除をストレージシステム側で制御することで、大規模なデータ管理下であってもＩ／Ｏ処理のサービスレベルを一定に保つことができる。また、同様の目的において、業務種別などの外部のコンピューティング端末で実行されるアプリケーションや業務内容などに応じたデータの種別をメタデータとして付与することで、データのライフサイクルの定義を簡略化するなどの工夫が行なわれている。
【００１０】
このような、ストレージシステムとして、例えば、特許文献１に記載されたシステムでは、ストレージ装置は、ホスト装置から入出力されるデータのファイル群について、中身が同一の複数のファイルをデ・デュプリケートする処理部を備える。また、全文検索処理サーバは、ファイル群に対する全文検索処理を行うもので、全文検索処理をデ・デュプリケートに対応したものにする処理部を備える。その処理部により、ファイル群のデ・デュプリケートの状況に応じて、中身が同一の複数の対象ファイルについては、全文検索処理部によるインデックス情報作成処理を抑止する。これによりインデックス情報の量を減らすことができる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００８−１５８９９３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
大規模データを格納し、多数のＩ／Ｏ処理を実行するストレージ基盤において、データの記憶媒体への物理的な記憶容量削減のためにデータの圧縮処理を実行する際、デ・デュプリケーションを適用した場合、データの圧縮処理にかかる処理負荷の軽減と、高圧縮率の実現との両立が求められる。デ・デュプリケーションの適用においては、予めデータの重複の予測が立つようなバックアップデータの保存に用途を絞り、用途に応じたデータの重複判定単位の設定が行われている。したがって、特にファイルデータの格納を汎用的な用途でデ・デュプリケーションを適用するには、単一のデータ重複判定処理のみでは、主にメタデータを扱うＩ／Ｏ処理の応答性とデータの読み書きにおけるＩ／Ｏ処理のスループット性能とを両立しつつ、さらに高いデータ圧縮率を実現するのが難い。そのため、デ・デュプリケーションの適用効果が得られない可能性がある。
【００１３】
また、特許文献１に記載されたシステムでは、単一のデータ重複判定処理を実行しているにすぎない。そのため、メタデータのＩ／Ｏ処理の応答性とデータの読み書きにおけるＩ／Ｏ処理のスループット性能を両立しつつ、高いデータ圧縮率を実現することができない。
【００１４】
そこで、本発明は、デ・デュプリケーションの適用における処理負担の軽減と高圧縮率の実現とを両立できるストレージシステム、ストレージシステムにおけるデータ書込方法及びデータ書込プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明によるストレージシステムは、データ本体を識別可能なデータ本体識別値を含む格納依頼を受信してデータ本体を格納装置に格納するための処理を行うストレージシステムであって、格納依頼に含まれていたデータ本体識別値を保存するデータ本体識別値保存手段と、新たな格納依頼に含まれているデータ本体識別値と識別値保存手段に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定するデータ本体識別値判定手段と、データ本体を分割した分割データを識別可能な分割データ識別値を保存する分割データ識別値保存手段と、データ本体識別値判定手段が本体データを格納装置に格納すべきと判定した場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と分割データ識別値保存手段に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定する分割データ識別値判定手段とを備えたことを特徴とする。
【００１６】
本発明によるストレージシステムにおけるデータ書込方法は、データ本体を識別可能なデータ本体識別値を含む格納依頼を受信してデータ本体を格納装置に格納するための処理を行うストレージシステムにおけるデータ書込方法であって、格納依頼に含まれていたデータ本体識別値をデータ本体識別値保存手段に保存し、データ本体を分割した分割データを識別可能な分割データ識別値を分割データ識別値保存手段に保存し、新たな格納依頼に含まれているデータ本体識別値とデータ本体識別値保存手段に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定し、本体データを格納装置に格納すべきと判定された場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と分割データ識別値保存手段に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定することを特徴とする。
【００１７】
本発明によるデータ書込プログラムは、データ本体を識別可能なデータ本体識別値を含む格納依頼を受信してデータ本体を格納装置に格納するための処理を行うストレージシステムに搭載されるデータ書込方法プログラムであって、コンピュータに、格納依頼に含まれていたデータ本体識別値をデータ本体識別値保存手段に保存する処理と、データ本体を分割した分割データを識別可能な分割データ識別値を分割データ識別値保存手段に保存する処理と、新たな格納依頼に含まれているデータ本体識別値とデータ本体識別値保存手段に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定する処理と、本体データを格納装置に格納すべきと判定された場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と分割データ識別値保存手段に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定する処理とを実行させるためのものである。
【発明の効果】
【００１８】
本発明によれば、デ・デュプリケーションの適用における処理負担の軽減と高圧縮率の実現とを両立することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明によるストレージシステムの構成例を示すブロック図である。
【図２】ストレージシステムが実行する処理例を示す流れ図である。
【図３】ストレージシステムが実行する処理例を示す流れ図である。
【図４】ストレージシステムが実行する処理例を示す流れ図である。
【図５】ストレージシステムが実行するデータ読み出し処理例を示す流れ図である。
【図６】ストレージシステムの最小の構成例を示す機能ブロック図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態について図面を参照して説明する。図１は、本発明によるストレージシステムの構成例を示すブロック図である。図１に示すように、本発明によるストレージシステムは、少なくとも２台以上のクライアント１００と、少なくとも１台以上のファイルメタデータ格納装置２００と、少なくとも２台以上のファイルデータ格納装置３００とを含む。また、クライアント１００と、ファイルメタデータ格納装置２００と、ファイルデータ格納装置３００とは、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのネットワーク１を介して相互に接続されている。また、本実施形態において、ファイルデータを格納するストレージシステム４００は、ファイルメタデータ格納装置２００と、ファイルデータ格納装置３００とによって実現される。
【００２１】
なお、本実施形態では、ファイルメタデータ格納装置２００と、ファイルデータ格納装置３００とは別の装置として説明するが、複数のファイルデータ格納装置３００のうちの１つとファイルメタデータ格納装置２００とを同じ情報処理装置によって実現してもよい。また、複数のファイルデータ格納装置３００を１台の情報処理装置によって実現してもよい。
【００２２】
クライアント１００は、具体的には、プログラムに従って動作するパーソナルコンピュータなどの情報処理装置によって実現される。図１に示すように、クライアント１００は、クライアント１００においてファイルを管理するためのファイルシステム１０１と、ネットワークファイルシステム１０２とを含む。
【００２３】
ファイルシステム１０１は、具体的には、情報処理装置に搭載されたアプリケーションプログラムによって実現される。ファイルシステム１０１は、クライアント１００内部に備えられた記録媒体、及び外部の記録媒体へのデータの読み書きを行う機能を備えている。
【００２４】
ネットワークファイルシステムクライアント１０２は、具体的には、プログラムに従って動作する情報処理装置などのＣＰＵ及びネットワークインターフェース部によって実現される。ネットワークファイルシステムクライアント１０２は、外部の記録媒体へのデータの読み書き処理において、ネットワーク１を介して、ファイルメタデータ格納装置３００やファイルデータ格納装置２００に対して、ファイルアクセス処理リクエストを送信する機能を備えている。
【００２５】
図１に示すように、ファイルメタデータ格納装置２００は、ファイルメタデータ格納部２０１と、ファイルダイジェスト値格納部２０２と、リクエスト制御部２０３とを含む。
【００２６】
ファイルメタデータ格納部２０１は、クライアント１００が発行（送信）したファイルアクセス処理リクエストに基づいて作成されたファイルのメタデータと、データの記憶先となるファイルデータ格納装置３００のアドレス情報とを関連付けて格納する。
【００２７】
ファイルダイジェスト値格納部２０２は、ストレージシステム４００に格納されているファイルデータ本体からハッシュ関数を用いて算出されたダイジェスト値を格納する。
【００２８】
リクエスト制御部２０３は、具体的には、プログラムに従って動作するＣＰＵによって実現される。リクエスト制御部２０３は、クライアント１００が発行（送信）したファイルアクセス処理リクエストに基づいてファイルメタデータ格納装置２００の動作制御を行い、ネットワーク１を介して、クライアント１００にリプライを送信する機能を備えている。
【００２９】
図１に示すように、ファイルデータ格納装置３００は、ブロックデータ格納部３０１と、ブロックデータダイジェスト値格納部３０２と、ブロックアドレス管理データ格納部３０３と、リクエスト制御部３０４と、構成管理データ格納部３０５とを含む。なお、リクエスト制御部３０４は、具体的には、プログラムに従って動作するＣＰＵで実現される。リクエスト制御部３０４とファイルデータ格納装置３００におけるリクエスト制御部２０３とを一つの情報処理装置で実現してもよい。
【００３０】
ブロックデータ格納部３０１は、具体的には、磁気ディスク装置や光ディスク装置などの記憶装置によって実現される。ブロックデータ格納部３０１は、ファイルデータを所定のサイズに分割したブロックデータとして格納する。
【００３１】
ブロックデータダイジェスト値格納部３０２は、ブロックデータからハッシュ関数を用いて算出されたブロックデータダイジェスト値を格納する。
【００３２】
ブロックアドレス管理データ格納部３０３は、ファイルデータを構成するブロックデータのアドレス情報とブロックデータダイジェスト値とを関連付けて格納する。
【００３３】
リクエスト制御部３０４は、クライアント１００が発行（送信）したファイルアクセス処理リクエストに基づいてファイルデータ格納装置３００の動作制御を行ない、ネットワーク１を介して、クライアント１００にリプライを送信する機能を備えている。
【００３４】
構成管理データ格納部３０５は、ファイルデータ本体のダイジェスト値と、ファイルデータを構成するブロックデータのアドレス情報とを関連付けて格納する。
【００３５】
＜ファイルメタデータ＞
ここで、ファイルメタデータ格納装置２００が格納するメタデータについて説明する。ファイルメタデータ格納装置２００において格納管理されるメタデータは、クライアントメタデータと、システムメタデータとの２種類に分類される。クライアントメタデータは、クライアント１００で動作するアプリケーションによって生成される。また、システムメタデータは、クライアント１００が発行（送信）した処理リクエストに基づいてファイルデータをストレージシステム４００に格納する際にファイルメタデータ格納措置２００によって生成される。
【００３６】
クライアントメタデータは、さらに、アプリケーションメタデータと、ユーザメタデータとの２種類に分類される。アプリケーションメタデータは、アプリケーションがファイルの特徴を分析することによりアプリケーション主導により付与される。また、ユーザメタデータは、アプリケーションを利用して作業を行なうエンドユーザにより付与される。なお、アプリケーションメタデータは、アプリケーション上で動作するロジックに応じて、ファイルを特徴付けるデータが所定のルールに基づき付与されることを前提としている。一方、ユーザメタデータは、エンドユーザの主観に基づき付与されるメタデータであることを前提としている。
【００３７】
システムメタデータは、ファイルの生成時間や更新時間などの時間属性に加え、どのクライアント、もしくはユーザの所有権に関するユーザ属性を含む。そして、システムメタデータは、アプリケーションメタデータと同様に所定のルールに基づき付与されることを前提とする。
【００３８】
本実施形態では、メタデータに属するデータについては、種類に依らず、ファイルメタデータ格納装置２００に記録（格納）する。そして、本実施形態では、アプリケーションメタデータ及びシステムメタデータを、ファイルメタデータ格納装置２００においてデータ配置先を判断するためのデータとして活用することとする。
【００３９】
次に、ストレージシステムの動作例について説明する。図２〜４は、ストレージシステムが実行する処理例を示す流れ図である。
【００４０】
＜クライアント１００からストレージシステム４００へのデータの書き込み手順＞
クライアント１００からストレージシステム４００にデータを書き込むために、ユーザは、クライアント１００を用いて、生成したデータを書き込む操作を行う。すると、クライアント１００のファイルシステム１０１が生成したファイルが、外部のストレージシステム４００へのデータの格納を指し示していた場合、ネットワークファイルシステムクライアント１０２は、ファイルデータ本体から、他のクライアントと共通して使用されるハッシュ関数を用いてダイジェスト値を算出する（ステップＳ１）。
【００４１】
次いで、ネットワークファイルシステムクライアント１０２は、ファイルに付与されているクライアントメタデータ群と、算出したダイジェスト値とを含むファイルアクセス処理リクエストと共に、ネットワーク１を介して、ファイルメタデータ格納装置２００に送信する（ステップＳ２）。
【００４２】
なお、クライアントメタデータ群は、アプリケーションやエンドユーザが生成したメタデータの他に、ファイル名やファイルアクセス処理動作を実行したユーザ名、ファイルサイズ、ファイルデータを格納しているディレクトリの情報なども含む。
【００４３】
次いで、ファイルメタデータ格納装置２００のリクエスト制御部２０３は、クライアント１００からファイルアクセス処理リクエストを受信する（ステップＳ３）。
【００４４】
次いで、リクエスト制御部２０３は、ファイルアクセス処理リクエストに含まれるクライアントメタデータ群をファイルメタデータ格納部２０１に格納する。そして、リクエスト制御部２０３は、ファイルアクセス処理リクエストに含まれるダイジェスト値と、ファイルダイジェスト値格納部２０２が格納するダイジェスト値群とが一致するかどうかを判定する（ステップＳ４）。
【００４５】
＜ファイルメタデータ格納装置２００に一致するダイジェスト値が存在しない場合＞
ステップＳ４において、一致しないと判定した場合、リクエスト制御部２０３は、ダイジェスト値をファイルダイジェスト値格納部２０２に登録（格納）させる。そして、リクエスト制御部２０３は、クライアントメタデータ群とダイジェスト値とを関連付けて、ファイルメタデータ格納部２０１に格納させる（ステップＳ５）。
【００４６】
次いで、リクエスト制御部２０３は、クライアント１００から受信したクライアントメタデータ群と一致するデータを、ファイルメタデータ格納部２０１に格納されている他のクライアントメタデータ群の中から探索（抽出）する（ステップＳ６）。
【００４７】
ステップＳ６において、一致するファイルメタデータがある場合、リクエスト制御部２０３は、一致するメタデータの最も多いファイルのファイルデータ格納先であるファイルデータ格納装置３００のアドレス情報（例えば、ＩＰアドレスなど）を抽出する（ステップＳ７）。
【００４８】
一方、ステップＳ６において、いずれのファイルメタデータとも一致しない場合には、リクエスト制御部２０３は、最も空き容量が大きいファイルデータ格納先であるファイルデータ格納装置３００を、ファイルサイズを示すメタデータから算出（特定）する。そして、リクエスト制御部２０３は、対象となるファイルデータ格納装置３００のアドレス情報を抽出する（ステップＳ８）。
【００４９】
次いで、リクエスト制御部２０３は、ファイルメタデータ格納部２０１に登録（格納）した今回処理対象となっているファイルのメタデータのエントリに、ステップＳ７又はステップＳ８で抽出したアドレス情報を関連付けて登録（格納）する。そして、リクエスト制御部２０３は、クライアント１００に対して、抽出したアドレス情報と共に、ファイルデータ格納装置３００へのデータ書き込み処理が必要であることを示すメッセージを、ネットワーク１を介して送信する（ステップＳ９）。
【００５０】
次いで、クライアント１００は、ファイルメタデータ格納装置から、ファイルデータ格納装置３００へのデータ書き込み処理が必要なことを示すメッセージとアドレス情報とを受信する。すると、クライアント１００は、アドレス情報に基づいて、ファイルデータ本体のダイジェスト値と共に、ファイルデータ本体、及びデータ書き込み命令をファイルデータ格納装置３００にネットワーク１を介して送信する（ステップＳ１２）。
【００５１】
ファイルデータ格納装置３００のリクエスト制御部３０４は、クライアント１００が送信したデータ書き込み命令を受信する（ステップＳ１３）。
【００５２】
次いで、リクエスト制御部３０４は、データ書き込み命令と共に受信したファイルデータ本体を、固定長サイズのブロックデータに分割し、分割した各ブロックデータから所定のハッシュ関数を用いてブロックデータダイジェスト値を算出する（ステップＳ１４）。
【００５３】
次いで、リクエスト制御部３０４は、算出したブロックデータダイジェスト値と一致するデータが、ブロックデータダイジェスト値格納部３０２に登録（格納）されているブロックデータダイジェスト値群に存在するかどうかを判定する（ステップＳ１５）。
【００５４】
ステップＳ１５において、既に登録（格納）されているブロックデータダイジェスト値群と一致しないと判定した場合、リクエスト制御部３０４は、生成（算出）したブロックデータダイジェスト値をブロックデータダイジェスト値格納部３０２に登録（格納）させる。そして、リクエスト制御部３０４は、ブロックデータをブロックデータ格納部３０１に格納させる。そして、リクエスト制御部３０４は、ブロックアドレス管理データ格納部３０３にブロックデータ格納部３０１の格納先アドレスと生成（算出）したブロックデータダイジェスト値とを関連付けて格納させる。その後、リクエスト制御部３０４は、ブロックデータの格納処理を完了する（ステップＳ１６）。
【００５５】
ステップＳ１５において、既に登録（格納）されているブロックデータダイジェスト値群と一致すると判定した場合、リクエスト制御部３０４は、ブロックアドレス管理データ格納部３０３から、一致したブロックデータダイジェスト値に基づいて、対応するブロックアドレス情報を抽出する。その後、リクエスト制御部３０４は、ブロックデータの格納処理を完了する（ステップＳ１７）。この場合、ブロックデータは格納されない。
【００５６】
次いで、リクエスト制御部３０４は、書き込み対象となるファイルデータを構成するすべてのブロックデータの格納処理が完了したか否かを判定する（ステップＳ１８）。ステップＳ１８において、格納処理が完了していないと判定すると、リクエスト制御部３０４は、ステップＳ１５の処理に移行する。
【００５７】
ステップＳ１８において、格納処理が完了したと判定すると、リクエスト制御部３０４は、クライアント１００から受信したファイルデータ本体のダイジェスト値と、ファイルデータを構成する全てのブロックデータのアドレス情報とを関連付けて構成管理データ格納部３０５に登録する（格納させる）（ステップＳ１９）。
【００５８】
次いで、リクエスト制御部３０４は、書き込み処理が完了したこと示すメッセージをクライアント１００にネットワーク１を介して送信する。その後、リクエスト制御部３０４は、ファイルデータの書き込み処理を完了する（ステップＳ２０）。
【００５９】
＜ファイルメタデータ格納装置２００に一致するダイジェスト値が存在する場合＞
ステップＳ４において、クライアント１００から受信したダイジェスト値とファイルダイジェスト値格納部２０２が格納するダイジェスト値群とが一致すると判定した場合、リクエスト制御部２０３は、クライアントメタデータ群とダイジェスト値とを関連付けて、ファイルメタデータ格納部２０１に格納させる（ステップＳ１０）。
【００６０】
次いで、リクエスト制御部２０３は、クライアント１００に対して、ファイルデータ格納装置３００へのデータの書き込みが不要であることを示すメッセージを、ネットワーク１を介して送信する（ステップＳ１１）。その後、リクエスト制御部２０３は、データ書き込み処理を完了する。この場合には、ファイルアクセス処理リクエストの起因になったファイルデータ本体は格納されない。
【００６１】
＜クライアント１００によるストレージシステム４００からのデータの読み込み手順＞
以下、クライアント１００によるストレージシステム４００からのデータの読み込み処理について図５を用いて説明する。図５は、ストレージシステムが実行するデータ読み出し処理例を示す流れ図である。
【００６２】
ストレージシステム４００に格納されているファイルデータを読み出すために、ユーザは、クライアント１００を用いて読み出し対象となるファイルを特定する操作を行う。すると、クライアント１００は、ユーザの操作に従って、ファイルメタデータ格納装置２００にアクセスし、ファイルメタデータ格納部２０１が格納する各種メタデータから読み出し対象となるファイルを特定する（ステップＳ２１）。
【００６３】
そして、ファイルメタデータ格納装置２００は、特定されたファイルと関連付けて格納しているファイルデータ本体のダイジェスト値をファイルメタデータ格納部２０１から抽出し、クライアント１００に送信する（ステップＳ２２）。
【００６４】
次いで、クライアント１００のネットワークファイルシステムクライアント１０２は、ファイルメタデータ格納装置２００から取得したダイジェスト値と共にデータ読み出し命令をファイルメタデータ格納装置２００にネットワーク１を介して送信する（ステップＳ２３）。
【００６５】
すると、ファイルメタデータ格納装置２００のリクエスト制御部２０３は、クライアント１００から受信したダイジェスト値と一致するダイジェスト値をファイルメタデータ格納部２０１から探索（抽出）する。そして、リクエスト制御部２０３は、クライアント１００から受信したダイジェスト値と一致するダイジェスト値のエントリとして関連付けられたデータの格納先となるファイルデータ格納装置３００のアドレス情報を取得する（ステップＳ２４）。そして、リクエスト制御部２０３は、クライアント１００に対して、取得したアドレス情報とアドレス情報がデータ格納先であることを示すメッセージとをネットワーク１を介して送信する（ステップＳ２５）。
【００６６】
次いで、クライアント１００は、ファイルメタデータ格納装置２００から受信したアドレス情報に対応するファイルデータ格納装置３００に、読み出し対象となるファイルのファイルデータのダイジェスト値とファイルデータの読み出し命令とをネットワーク１を介して送信する（ステップＳ２６）。
【００６７】
すると、ファイルデータ格納装置３００のリクエスト制御部３０４は、受信した読み出し命令に基づいて、受信したダイジェスト値と一致するダイジェスト値を、構成管理データ格納部３０５から探索（抽出）する。そして、リクエスト制御部３０４は、一致（抽出）したダイジェスト値のエントリに関連付けられたすべてのブロックデータのアドレス情報を取得する（ステップＳ２７）。そして、リクエスト制御部３０４は、ブロックデータ格納部３０１から、取得したアドレス情報に対応するブロックデータを読み出す（抽出する）。そして、リクエスト制御部３０４は、抽出したブロックデータをクライアント１００にネットワーク１を介して送信し（ステップＳ２８）、読み出し処理を完了する。
【００６８】
以下、本実施形態における目的、課題解決手段、及び効果について説明する。本実施形態は、主にファイルデータを扱うＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）において、主にメタデータを扱う処理を実行する処理部におけるデータの重複判定処理と、主にファイルデータ本体の格納処理を実行する処理部におけるデータの重複判定処理とを別々に設けることで、データの圧縮処理にかかる負荷を分散することを目的としている。さらに、各重複判定処理にデータ判定単位の粒度が異なる判定基準を設けることや、ライフサイクル管理を実現するに当たって付与されるメタデータを活用することで、高いデータ圧縮率を実現することを目的としている。
【００６９】
本実施形態では、ｐＮＦＳに代表されるようなプロトコルを利用するファイルのメタデータを格納し処理を実行する装置と、ファイルデータ本体を格納し処理を実行する装置とを含むストレージアーキテクチャを前提としている。そして、それぞれの処理の処理実行装置は、データの重複を判定する手段を含む。また、各処理実行装置は、重複が判明した場合に物理的に記憶媒体に記録されているデータを削除、もしくはあらかじめ記録せずに、ファイルデータとして読み出し可能とするための管理を行なう手段を含む。
【００７０】
データの重複を判定する手段は、各処理実行装置によって、データの重複を判定するデータの単位が異なることを特徴とする。さらに、ファイルのメタデータを格納し処理を実行する装置は、メタデータの特徴に応じて、ファイルデータ本体の格納先となる装置を、複数の装置の中から決定する手段を含む。
【００７１】
以上のように、本実施形態では、ファイルのメタデータ格納装置とファイルデータ本体の格納装置とで、それぞれ異なるデータ単位でのデータ重複判定を行なう手段を実行する。そのため、大規模なデータを格納しなければならない環境において、データの重複の有無を判定することによる物理的な記録媒体へのデータの記録容量削減処理にかかる負荷を軽減することができ、かつ高いデータ圧縮率を実現することができる。また、ファイルシステムなどによるデータの管理を複数の装置間で賄うような手段を用いたとしても、記録容量削減処理が処理のボトルネックとならずに実現し易くすることが可能である。
【００７２】
さらに、本実施形態では、メタデータの特徴に基づいてファイルデータ本体のデータ格納先となる格納装置を選択する手段を適用することにより、データの重複の発生しうるデータ群を、特定のファイルデータ本体のデータ格納装置に集中させる。そのため、汎用的なデータ群を扱う際にも、より高いデータ圧縮率を実現し、より多くのデータ群が格納可能である。
【００７３】
また、本実施形態では、大規模なデータ格納するストレージシステムのうち、ファイルメタデータ格納装置とファイルデータ格納装置とに分離した構成をとるシステムにおいて、データの重複を排除する機構をファイルメタデータ格納装置とファイルデータ格納装置とのそれぞれに組み入れている。さらに、それぞれの装置に組み入れた重複を排除する機構は、重複排除判定において異なるデータの単位に基づいて判定する。そのため、クライアントからのファイルアクセス処理要求の最初の窓口となり、高いＩ／Ｏの応答性が求められるファイルメタデータ格納装置の負荷を軽減することができる。また、既にファイルデータ格納装置内の記憶媒体に物理的に格納されているファイルデータ自体をストレージシステム側へ送信することなくデータの書き込み処理を完了することができる。
【００７４】
さらに、ファイルメタデータ格納装置は、類似するメタデータに関連付けられたファイルを特定のファイルデータ格納装置へ配置するように制御する。そのため、ブロックデータに分割してデータを格納する際、重複するブロックデータが多数発生するように制御することが可能であり、より高いデータ圧縮率でのデータ格納を実現することができる。
【００７５】
また、本実施形態では、ファイルメタデータ格納装置において、ブロックデータ単位での管理を行なわない。そのため、複数の装置でファイルメタデータ格納装置を構成する場合においても、より高いデータ圧縮率でストレージシステムにおいて物理的に格納するデータ容量を削減しつつも、装置間で共有するファイルメタデータを減少させることができる。また、ストレージシステムにアクセスするクライアント数の増加に応じて、ファイルメタデータ格納装置を増設する環境を容易に構築することができる。
【００７６】
次に、本発明によるシステムの最小構成について説明する。図６は、ストレージシステムの最小の構成例を示すブロック図である。図６に示すように、ストレージシステムは、最小の構成要素として、格納依頼に含まれていたデータ本体識別値を保存するデータ本体識別値保存手段１０と、データ本体識別値判定手段２０と、データ本体を分割した分割データを識別可能な分割データ識別値を保存する分割データ識別値保存手段３０と、分割データ識別値判定手段４０とを含む。
【００７７】
図６に示す最小構成のストレージシステムによれば、データ本体を識別可能なデータ本体識別値を含む格納依頼を受信してデータ本体を格納装置に格納するための処理において、データ本体識別値判定手段２０は、新たな格納依頼に含まれているデータ本体識別値と識別値保存手段１０に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定する。
【００７８】
そして、分割データ識別値判定手段４０は、データ本体識別値判定手段２０が本体データを格納装置に格納すべきと判定した場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と分割データ識別値保存手段３０に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定する。
【００７９】
以上のように、データ本体識別値に基づいてデータの重複を排除する手段と、分割データ識別値に基づいてデータの重複を排除する手段とをそれぞれ組み入れることで、主にメタデータを扱うＩ／Ｏ処理の応答性とデータの読み書きにおけるＩ／Ｏ処理のスループット性能とを両立しつつ、さらに高いデータ圧縮率を実現することができる。
【００８０】
なお、本実施形態では、等価的に以下のようなストレージシステムが構築されている。すなわち、ストレージシステムは、少なくとも１つ以上のファイルメタデータ格納装置と少なくとも２つ以上のファイルデータ格納装置が構成されており、データの書き込みを行う際、ファイルメタデータ格納装置とファイルデータ格納装置の双方に格納済みのデータとのデータの重複を判定する手段と、重複が発生した場合は、格納済みのデータで書き込み対象となっているデータを置き換える手段を備えている。
【００８１】
また、ストレージシステムにおいて、データの重複を判定する手段は、ファイルメタデータ格納装置とファイルデータ格納装置との間で、重複判定のデータの単位が異なるように構成されている。
【００８２】
また、ストレージシステムにおいて、ファイルメタデータ格納装置は、複数のファイルデータ格納装置からデータ本体の格納先となるファイルデータ格納装置を選択する手段を備えており、新たな書き込み要求を受けたデータの格納先の選択する際、格納済みのデータに関連付けられたメタデータと新たに書き込み要求を受けたデータに関連付けられたメタデータとを比較し、最も類似するメタデータを持つ格納済みデータの格納先であるデータ本体格納装置を、新たな書き込み要求を受けたデータの格納先として選択するように構成されている。
【００８３】
また、本実施形態では、以下の（１）〜（６）に示すようなストレージシステムの特徴的構成が示されている。
【００８４】
（１）ストレージシステムは、データ本体を識別可能なデータ本体識別値（例えば、ダイジェスト値）を含む格納依頼を受信してデータ本体を格納装置（例えば、ファイルデータ格納装置３００）に格納するための処理を行うストレージシステムであって、格納依頼に含まれていたデータ本体識別値を保存するデータ本体識別値保存手段（例えば、ファイルダイジェスト値格納部２０１）と、新たな格納依頼に含まれているデータ本体識別値と識別値保存手段に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定するデータ本体識別値判定手段（例えば、リクエスト制御部２０３によって実現される）と、データ本体を分割した分割データを識別可能な分割データ識別値（例えば、ブロックデータダイジェスト値）を保存する分割データ識別値保存手段（例えば、ブロックデータダイジェスト値格納部３０２）と、データ本体識別値判定手段が本体データを格納装置に格納すべきと判定した場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と分割データ識別値保存手段に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定する分割データ識別値判定手段（例えば、リクエスト制御部３０４によって実現される）とを備えたことを特徴とする。
【００８５】
（２）ストレージシステムは、格納依頼にはデータ本体の特徴を示す特徴データ（例えば、メタデータ群）が含まれ、複数の格納装置を備えたストレージシステムであって、格納依頼に含まれていた特徴データを保存する特徴データ保存手段（例えば、ファイルメタデータ格納部２０１）と、新たな格納依頼に含まれているデータ本体識別値がデータ本体識別値保存手段に保存されているいずれのデータ本体識別値とも合致しないとデータ本体識別値判定手段が判定した場合に、格納依頼に含まれていた特徴データと特徴データ保存手段に保存されている特徴データとを比較することによってデータ本体が格納される格納装置を選択する格納装置選択手段（例えば、リクエスト制御部２０３によって実現される）とを備えたことを特徴とする。
【００８６】
（３）ストレージシステムにおいて、格納装置選択手段は、特徴データ保存手段に保存されている特徴データのうち、格納依頼に含まれていた特徴データと最も類似する特徴データで示される本体データが格納されている格納装置を選択するように構成されていてもよい。
【００８７】
（４）ストレージシステムにおいて、特徴データは複数のメタデータを含み、格納装置選択手段は、特徴データ保存手段に保存されている特徴データのうち、格納依頼に含まれていた特徴データに含まれるメタデータに一致するメタデータの数が最も多い特徴データで示される本体データが格納されている格納装置を選択するように構成されていてもよい。
【００８８】
（５）ストレージシステムにおいて、格納装置選択手段は、特徴データ保存手段に、格納依頼に含まれていた特徴データと類似する特徴データが保存されていないと判定した場合に、空き容量が最も多い格納装置を選択するように構成されていてもよい。
【００８９】
（６）ストレージシステムにおいて、特徴データは複数のメタデータを含み、格納装置選択手段は、特徴データ保存手段に、格納依頼に含まれていた特徴データに含まれるメタデータに一致するメタデータを含む特徴データが保存されていない場合に、格納依頼に含まれていた特徴データと類似する特徴データが特徴データ保存手段に保存されていないと判定するように構成されていてもよい。
【産業上の利用可能性】
【００９０】
本発明を、複数のコンピューティング端末で生成されたデータを集中的に管理するストレージシステム（装置）に適用できる。
【符号の説明】
【００９１】
１  ネットワーク
１０  データ本体識別値保存手段
２０  データ本体識別値判定手段、
３０  分割データ識別値保存手段、
４０  分割データ識別値判定手段
１００  クライアント
１０１  ファイルシステム
１０２  ネットワークファイルシステムクライアント
２００  ファイルメタデータ格納装置
２０１  ファイルメタデータ格納部
２０２  ファイルダイジェスト値格納部
２０３  リクエスト制御部
３００  ファイルデータ格納装置
３０１  ブロックデータ格納部
３０２  ブロックデータダイジェスト値格納部
３０３  ブロックアドレス管理データ格納部
３０４  リクエスト制御部
３０５  構成管理データ格納部
４００  ストレージシステム
【図１】
2010170475.tif 000003
【図２】
2010170475.tif 000004
【図３】
2010170475.tif 000005
【図４】
2010170475.tif 000006
【図５】
2010170475.tif 000007
【図６】
2010170475.tif 000008