説明

ストレージシステム、ストレージシステムにおけるデータ書込方法及びデータ書込プログラム

【課題】デ・デュプリケーションの適用における処理負担の軽減と高圧縮率の実現との両立が困難である。
【解決手段】格納依頼に含まれていたデータ本体を識別可能なデータ本体識別値を保存するデータ本体識別値保存手段と、新たな格納依頼に含まれているデータ本体識別値と識別値保存手段に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定するデータ本体識別値判定手段と、データ本体を分割した分割データを識別可能な分割データ識別値を保存する分割データ識別値保存手段と、本体データを格納装置に格納すべきと判定した場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と分割データ識別値保存手段に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定する分割データ識別値判定手段とを備えた。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のコンピューティング端末で生成されたデータを集中的に管理、格納するストレージシステム、ストレージシステムにおけるデータ書込方法及びデータ書込プログラムに関する。
【背景技術】
【0002】
複数のコンピューティング端末で生成されたデータを集中的に格納するストレージシステムにおいて、ハードディスクドライブなどの物理的な記憶媒体にデータを格納する段階で、データに圧縮処理をかけることにより、物理的な記録容量を削減することが可能である。
【0003】
このデータの圧縮処理を前提としたデータの格納手法として、デ・デュプリケーション(Deduplication)と呼ばれる方法がある。この方法は、ストレージ装置に格納するデータ群の中から同一のバイト列からなる重複データ群を検出することで、物理的には1つのデータを格納するのみで、論理的には複数のデータが格納されていることを再現可能とするデータ格納手法である。
【0004】
デ・デュプリケーションは、通常、ファイルやファイルを構成するデータブロック単位でのデータの重複の判定を行なう。そして、重複判定をする際、ディジタル認証などで用いられているSHA1やMD5などのハッシュ関数により生成された数十〜数百ビットのサイズの小さいダイジェストデータを使ってデータ同士を比較判定する。そのため、重複判定にかかる処理コストを大幅に削減することが可能である。
【0005】
この様な重複判定処理を前提とするストレージシステムの記録容量の削減手段は、ファイルやファイルを構成するデータブロック単位でのデータの重複が多数見込まれることを前提としたコンピューティング環境においては、gzipなどの情報源符号化に基づくデータ圧縮処理よりも処理負荷が低く、かつ一定以上のデータ削減効果も見込める。そのため、ストレージシステムにおける物理的なデータの記憶容量の削減手段の1つとして利用が進んでいる。
【0006】
一方で、企業内ストレージの集約や、クラウドコンピューティングと呼ばれるより大規模なデータを格納するストレージシステムにおいては、大容量のストレージを集約するための基盤と、大量のI/O処理の実行するための基盤とのバランスを適用環境に合わせて設計可能とするストレージシステムが求められる。
【0007】
特にファイルアクセスを提供するストレージシステムにおいては、ファイルのメタデータを操作するI/O処理の応答性能と、ファイルデータ本体を読み書きするI/O処理のスループット性能とのように異なる性質の処理性能が求められるなど、コンピューティング端末からの要求により、性質の異なる処理のバランスが取れることが基盤として求められる。
【0008】
この様な処理のバランスを取る手段として、pNFSに代表されるようなプロトコルをファイルアクセス処理の仲介手段として用いる、ファイルのメタデータを扱う処理と、ファイルデータ本体を扱う処理とを分離したストレージアーキテクチャの採用がある。
【0009】
大規模なデータを管理するという観点においては、データを格納する際、データのライフサイクルを定義することにより、時系列によるデータの使用頻度やデータ廃棄時期を設定する仕組みがある。そのようにすることによって、データの配置場所やデータ削除をストレージシステム側で制御することで、大規模なデータ管理下であってもI/O処理のサービスレベルを一定に保つことができる。また、同様の目的において、業務種別などの外部のコンピューティング端末で実行されるアプリケーションや業務内容などに応じたデータの種別をメタデータとして付与することで、データのライフサイクルの定義を簡略化するなどの工夫が行なわれている。
【0010】
このような、ストレージシステムとして、例えば、特許文献1に記載されたシステムでは、ストレージ装置は、ホスト装置から入出力されるデータのファイル群について、中身が同一の複数のファイルをデ・デュプリケートする処理部を備える。また、全文検索処理サーバは、ファイル群に対する全文検索処理を行うもので、全文検索処理をデ・デュプリケートに対応したものにする処理部を備える。その処理部により、ファイル群のデ・デュプリケートの状況に応じて、中身が同一の複数の対象ファイルについては、全文検索処理部によるインデックス情報作成処理を抑止する。これによりインデックス情報の量を減らすことができる。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2008−158993号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
大規模データを格納し、多数のI/O処理を実行するストレージ基盤において、データの記憶媒体への物理的な記憶容量削減のためにデータの圧縮処理を実行する際、デ・デュプリケーションを適用した場合、データの圧縮処理にかかる処理負荷の軽減と、高圧縮率の実現との両立が求められる。デ・デュプリケーションの適用においては、予めデータの重複の予測が立つようなバックアップデータの保存に用途を絞り、用途に応じたデータの重複判定単位の設定が行われている。したがって、特にファイルデータの格納を汎用的な用途でデ・デュプリケーションを適用するには、単一のデータ重複判定処理のみでは、主にメタデータを扱うI/O処理の応答性とデータの読み書きにおけるI/O処理のスループット性能とを両立しつつ、さらに高いデータ圧縮率を実現するのが難い。そのため、デ・デュプリケーションの適用効果が得られない可能性がある。
【0013】
また、特許文献1に記載されたシステムでは、単一のデータ重複判定処理を実行しているにすぎない。そのため、メタデータのI/O処理の応答性とデータの読み書きにおけるI/O処理のスループット性能を両立しつつ、高いデータ圧縮率を実現することができない。
【0014】
そこで、本発明は、デ・デュプリケーションの適用における処理負担の軽減と高圧縮率の実現とを両立できるストレージシステム、ストレージシステムにおけるデータ書込方法及びデータ書込プログラムを提供することを目的とする。
【課題を解決するための手段】
【0015】
本発明によるストレージシステムは、データ本体を識別可能なデータ本体識別値を含む格納依頼を受信してデータ本体を格納装置に格納するための処理を行うストレージシステムであって、格納依頼に含まれていたデータ本体識別値を保存するデータ本体識別値保存手段と、新たな格納依頼に含まれているデータ本体識別値と識別値保存手段に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定するデータ本体識別値判定手段と、データ本体を分割した分割データを識別可能な分割データ識別値を保存する分割データ識別値保存手段と、データ本体識別値判定手段が本体データを格納装置に格納すべきと判定した場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と分割データ識別値保存手段に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定する分割データ識別値判定手段とを備えたことを特徴とする。
【0016】
本発明によるストレージシステムにおけるデータ書込方法は、データ本体を識別可能なデータ本体識別値を含む格納依頼を受信してデータ本体を格納装置に格納するための処理を行うストレージシステムにおけるデータ書込方法であって、格納依頼に含まれていたデータ本体識別値をデータ本体識別値保存手段に保存し、データ本体を分割した分割データを識別可能な分割データ識別値を分割データ識別値保存手段に保存し、新たな格納依頼に含まれているデータ本体識別値とデータ本体識別値保存手段に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定し、本体データを格納装置に格納すべきと判定された場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と分割データ識別値保存手段に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定することを特徴とする。
【0017】
本発明によるデータ書込プログラムは、データ本体を識別可能なデータ本体識別値を含む格納依頼を受信してデータ本体を格納装置に格納するための処理を行うストレージシステムに搭載されるデータ書込方法プログラムであって、コンピュータに、格納依頼に含まれていたデータ本体識別値をデータ本体識別値保存手段に保存する処理と、データ本体を分割した分割データを識別可能な分割データ識別値を分割データ識別値保存手段に保存する処理と、新たな格納依頼に含まれているデータ本体識別値とデータ本体識別値保存手段に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定する処理と、本体データを格納装置に格納すべきと判定された場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と分割データ識別値保存手段に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定する処理とを実行させるためのものである。
【発明の効果】
【0018】
本発明によれば、デ・デュプリケーションの適用における処理負担の軽減と高圧縮率の実現とを両立することができる。
【図面の簡単な説明】
【0019】
【図1】本発明によるストレージシステムの構成例を示すブロック図である。
【図2】ストレージシステムが実行する処理例を示す流れ図である。
【図3】ストレージシステムが実行する処理例を示す流れ図である。
【図4】ストレージシステムが実行する処理例を示す流れ図である。
【図5】ストレージシステムが実行するデータ読み出し処理例を示す流れ図である。
【図6】ストレージシステムの最小の構成例を示す機能ブロック図である。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態について図面を参照して説明する。図1は、本発明によるストレージシステムの構成例を示すブロック図である。図1に示すように、本発明によるストレージシステムは、少なくとも2台以上のクライアント100と、少なくとも1台以上のファイルメタデータ格納装置200と、少なくとも2台以上のファイルデータ格納装置300とを含む。また、クライアント100と、ファイルメタデータ格納装置200と、ファイルデータ格納装置300とは、LAN(Local Area Network)などのネットワーク1を介して相互に接続されている。また、本実施形態において、ファイルデータを格納するストレージシステム400は、ファイルメタデータ格納装置200と、ファイルデータ格納装置300とによって実現される。
【0021】
なお、本実施形態では、ファイルメタデータ格納装置200と、ファイルデータ格納装置300とは別の装置として説明するが、複数のファイルデータ格納装置300のうちの1つとファイルメタデータ格納装置200とを同じ情報処理装置によって実現してもよい。また、複数のファイルデータ格納装置300を1台の情報処理装置によって実現してもよい。
【0022】
クライアント100は、具体的には、プログラムに従って動作するパーソナルコンピュータなどの情報処理装置によって実現される。図1に示すように、クライアント100は、クライアント100においてファイルを管理するためのファイルシステム101と、ネットワークファイルシステム102とを含む。
【0023】
ファイルシステム101は、具体的には、情報処理装置に搭載されたアプリケーションプログラムによって実現される。ファイルシステム101は、クライアント100内部に備えられた記録媒体、及び外部の記録媒体へのデータの読み書きを行う機能を備えている。
【0024】
ネットワークファイルシステムクライアント102は、具体的には、プログラムに従って動作する情報処理装置などのCPU及びネットワークインターフェース部によって実現される。ネットワークファイルシステムクライアント102は、外部の記録媒体へのデータの読み書き処理において、ネットワーク1を介して、ファイルメタデータ格納装置300やファイルデータ格納装置200に対して、ファイルアクセス処理リクエストを送信する機能を備えている。
【0025】
図1に示すように、ファイルメタデータ格納装置200は、ファイルメタデータ格納部201と、ファイルダイジェスト値格納部202と、リクエスト制御部203とを含む。
【0026】
ファイルメタデータ格納部201は、クライアント100が発行(送信)したファイルアクセス処理リクエストに基づいて作成されたファイルのメタデータと、データの記憶先となるファイルデータ格納装置300のアドレス情報とを関連付けて格納する。
【0027】
ファイルダイジェスト値格納部202は、ストレージシステム400に格納されているファイルデータ本体からハッシュ関数を用いて算出されたダイジェスト値を格納する。
【0028】
リクエスト制御部203は、具体的には、プログラムに従って動作するCPUによって実現される。リクエスト制御部203は、クライアント100が発行(送信)したファイルアクセス処理リクエストに基づいてファイルメタデータ格納装置200の動作制御を行い、ネットワーク1を介して、クライアント100にリプライを送信する機能を備えている。
【0029】
図1に示すように、ファイルデータ格納装置300は、ブロックデータ格納部301と、ブロックデータダイジェスト値格納部302と、ブロックアドレス管理データ格納部303と、リクエスト制御部304と、構成管理データ格納部305とを含む。なお、リクエスト制御部304は、具体的には、プログラムに従って動作するCPUで実現される。リクエスト制御部304とファイルデータ格納装置300におけるリクエスト制御部203とを一つの情報処理装置で実現してもよい。
【0030】
ブロックデータ格納部301は、具体的には、磁気ディスク装置や光ディスク装置などの記憶装置によって実現される。ブロックデータ格納部301は、ファイルデータを所定のサイズに分割したブロックデータとして格納する。
【0031】
ブロックデータダイジェスト値格納部302は、ブロックデータからハッシュ関数を用いて算出されたブロックデータダイジェスト値を格納する。
【0032】
ブロックアドレス管理データ格納部303は、ファイルデータを構成するブロックデータのアドレス情報とブロックデータダイジェスト値とを関連付けて格納する。
【0033】
リクエスト制御部304は、クライアント100が発行(送信)したファイルアクセス処理リクエストに基づいてファイルデータ格納装置300の動作制御を行ない、ネットワーク1を介して、クライアント100にリプライを送信する機能を備えている。
【0034】
構成管理データ格納部305は、ファイルデータ本体のダイジェスト値と、ファイルデータを構成するブロックデータのアドレス情報とを関連付けて格納する。
【0035】
<ファイルメタデータ>
ここで、ファイルメタデータ格納装置200が格納するメタデータについて説明する。ファイルメタデータ格納装置200において格納管理されるメタデータは、クライアントメタデータと、システムメタデータとの2種類に分類される。クライアントメタデータは、クライアント100で動作するアプリケーションによって生成される。また、システムメタデータは、クライアント100が発行(送信)した処理リクエストに基づいてファイルデータをストレージシステム400に格納する際にファイルメタデータ格納措置200によって生成される。
【0036】
クライアントメタデータは、さらに、アプリケーションメタデータと、ユーザメタデータとの2種類に分類される。アプリケーションメタデータは、アプリケーションがファイルの特徴を分析することによりアプリケーション主導により付与される。また、ユーザメタデータは、アプリケーションを利用して作業を行なうエンドユーザにより付与される。なお、アプリケーションメタデータは、アプリケーション上で動作するロジックに応じて、ファイルを特徴付けるデータが所定のルールに基づき付与されることを前提としている。一方、ユーザメタデータは、エンドユーザの主観に基づき付与されるメタデータであることを前提としている。
【0037】
システムメタデータは、ファイルの生成時間や更新時間などの時間属性に加え、どのクライアント、もしくはユーザの所有権に関するユーザ属性を含む。そして、システムメタデータは、アプリケーションメタデータと同様に所定のルールに基づき付与されることを前提とする。
【0038】
本実施形態では、メタデータに属するデータについては、種類に依らず、ファイルメタデータ格納装置200に記録(格納)する。そして、本実施形態では、アプリケーションメタデータ及びシステムメタデータを、ファイルメタデータ格納装置200においてデータ配置先を判断するためのデータとして活用することとする。
【0039】
次に、ストレージシステムの動作例について説明する。図2〜4は、ストレージシステムが実行する処理例を示す流れ図である。
【0040】
<クライアント100からストレージシステム400へのデータの書き込み手順>
クライアント100からストレージシステム400にデータを書き込むために、ユーザは、クライアント100を用いて、生成したデータを書き込む操作を行う。すると、クライアント100のファイルシステム101が生成したファイルが、外部のストレージシステム400へのデータの格納を指し示していた場合、ネットワークファイルシステムクライアント102は、ファイルデータ本体から、他のクライアントと共通して使用されるハッシュ関数を用いてダイジェスト値を算出する(ステップS1)。
【0041】
次いで、ネットワークファイルシステムクライアント102は、ファイルに付与されているクライアントメタデータ群と、算出したダイジェスト値とを含むファイルアクセス処理リクエストと共に、ネットワーク1を介して、ファイルメタデータ格納装置200に送信する(ステップS2)。
【0042】
なお、クライアントメタデータ群は、アプリケーションやエンドユーザが生成したメタデータの他に、ファイル名やファイルアクセス処理動作を実行したユーザ名、ファイルサイズ、ファイルデータを格納しているディレクトリの情報なども含む。
【0043】
次いで、ファイルメタデータ格納装置200のリクエスト制御部203は、クライアント100からファイルアクセス処理リクエストを受信する(ステップS3)。
【0044】
次いで、リクエスト制御部203は、ファイルアクセス処理リクエストに含まれるクライアントメタデータ群をファイルメタデータ格納部201に格納する。そして、リクエスト制御部203は、ファイルアクセス処理リクエストに含まれるダイジェスト値と、ファイルダイジェスト値格納部202が格納するダイジェスト値群とが一致するかどうかを判定する(ステップS4)。
【0045】
<ファイルメタデータ格納装置200に一致するダイジェスト値が存在しない場合>
ステップS4において、一致しないと判定した場合、リクエスト制御部203は、ダイジェスト値をファイルダイジェスト値格納部202に登録(格納)させる。そして、リクエスト制御部203は、クライアントメタデータ群とダイジェスト値とを関連付けて、ファイルメタデータ格納部201に格納させる(ステップS5)。
【0046】
次いで、リクエスト制御部203は、クライアント100から受信したクライアントメタデータ群と一致するデータを、ファイルメタデータ格納部201に格納されている他のクライアントメタデータ群の中から探索(抽出)する(ステップS6)。
【0047】
ステップS6において、一致するファイルメタデータがある場合、リクエスト制御部203は、一致するメタデータの最も多いファイルのファイルデータ格納先であるファイルデータ格納装置300のアドレス情報(例えば、IPアドレスなど)を抽出する(ステップS7)。
【0048】
一方、ステップS6において、いずれのファイルメタデータとも一致しない場合には、リクエスト制御部203は、最も空き容量が大きいファイルデータ格納先であるファイルデータ格納装置300を、ファイルサイズを示すメタデータから算出(特定)する。そして、リクエスト制御部203は、対象となるファイルデータ格納装置300のアドレス情報を抽出する(ステップS8)。
【0049】
次いで、リクエスト制御部203は、ファイルメタデータ格納部201に登録(格納)した今回処理対象となっているファイルのメタデータのエントリに、ステップS7又はステップS8で抽出したアドレス情報を関連付けて登録(格納)する。そして、リクエスト制御部203は、クライアント100に対して、抽出したアドレス情報と共に、ファイルデータ格納装置300へのデータ書き込み処理が必要であることを示すメッセージを、ネットワーク1を介して送信する(ステップS9)。
【0050】
次いで、クライアント100は、ファイルメタデータ格納装置から、ファイルデータ格納装置300へのデータ書き込み処理が必要なことを示すメッセージとアドレス情報とを受信する。すると、クライアント100は、アドレス情報に基づいて、ファイルデータ本体のダイジェスト値と共に、ファイルデータ本体、及びデータ書き込み命令をファイルデータ格納装置300にネットワーク1を介して送信する(ステップS12)。
【0051】
ファイルデータ格納装置300のリクエスト制御部304は、クライアント100が送信したデータ書き込み命令を受信する(ステップS13)。
【0052】
次いで、リクエスト制御部304は、データ書き込み命令と共に受信したファイルデータ本体を、固定長サイズのブロックデータに分割し、分割した各ブロックデータから所定のハッシュ関数を用いてブロックデータダイジェスト値を算出する(ステップS14)。
【0053】
次いで、リクエスト制御部304は、算出したブロックデータダイジェスト値と一致するデータが、ブロックデータダイジェスト値格納部302に登録(格納)されているブロックデータダイジェスト値群に存在するかどうかを判定する(ステップS15)。
【0054】
ステップS15において、既に登録(格納)されているブロックデータダイジェスト値群と一致しないと判定した場合、リクエスト制御部304は、生成(算出)したブロックデータダイジェスト値をブロックデータダイジェスト値格納部302に登録(格納)させる。そして、リクエスト制御部304は、ブロックデータをブロックデータ格納部301に格納させる。そして、リクエスト制御部304は、ブロックアドレス管理データ格納部303にブロックデータ格納部301の格納先アドレスと生成(算出)したブロックデータダイジェスト値とを関連付けて格納させる。その後、リクエスト制御部304は、ブロックデータの格納処理を完了する(ステップS16)。
【0055】
ステップS15において、既に登録(格納)されているブロックデータダイジェスト値群と一致すると判定した場合、リクエスト制御部304は、ブロックアドレス管理データ格納部303から、一致したブロックデータダイジェスト値に基づいて、対応するブロックアドレス情報を抽出する。その後、リクエスト制御部304は、ブロックデータの格納処理を完了する(ステップS17)。この場合、ブロックデータは格納されない。
【0056】
次いで、リクエスト制御部304は、書き込み対象となるファイルデータを構成するすべてのブロックデータの格納処理が完了したか否かを判定する(ステップS18)。ステップS18において、格納処理が完了していないと判定すると、リクエスト制御部304は、ステップS15の処理に移行する。
【0057】
ステップS18において、格納処理が完了したと判定すると、リクエスト制御部304は、クライアント100から受信したファイルデータ本体のダイジェスト値と、ファイルデータを構成する全てのブロックデータのアドレス情報とを関連付けて構成管理データ格納部305に登録する(格納させる)(ステップS19)。
【0058】
次いで、リクエスト制御部304は、書き込み処理が完了したこと示すメッセージをクライアント100にネットワーク1を介して送信する。その後、リクエスト制御部304は、ファイルデータの書き込み処理を完了する(ステップS20)。
【0059】
<ファイルメタデータ格納装置200に一致するダイジェスト値が存在する場合>
ステップS4において、クライアント100から受信したダイジェスト値とファイルダイジェスト値格納部202が格納するダイジェスト値群とが一致すると判定した場合、リクエスト制御部203は、クライアントメタデータ群とダイジェスト値とを関連付けて、ファイルメタデータ格納部201に格納させる(ステップS10)。
【0060】
次いで、リクエスト制御部203は、クライアント100に対して、ファイルデータ格納装置300へのデータの書き込みが不要であることを示すメッセージを、ネットワーク1を介して送信する(ステップS11)。その後、リクエスト制御部203は、データ書き込み処理を完了する。この場合には、ファイルアクセス処理リクエストの起因になったファイルデータ本体は格納されない。
【0061】
<クライアント100によるストレージシステム400からのデータの読み込み手順>
以下、クライアント100によるストレージシステム400からのデータの読み込み処理について図5を用いて説明する。図5は、ストレージシステムが実行するデータ読み出し処理例を示す流れ図である。
【0062】
ストレージシステム400に格納されているファイルデータを読み出すために、ユーザは、クライアント100を用いて読み出し対象となるファイルを特定する操作を行う。すると、クライアント100は、ユーザの操作に従って、ファイルメタデータ格納装置200にアクセスし、ファイルメタデータ格納部201が格納する各種メタデータから読み出し対象となるファイルを特定する(ステップS21)。
【0063】
そして、ファイルメタデータ格納装置200は、特定されたファイルと関連付けて格納しているファイルデータ本体のダイジェスト値をファイルメタデータ格納部201から抽出し、クライアント100に送信する(ステップS22)。
【0064】
次いで、クライアント100のネットワークファイルシステムクライアント102は、ファイルメタデータ格納装置200から取得したダイジェスト値と共にデータ読み出し命令をファイルメタデータ格納装置200にネットワーク1を介して送信する(ステップS23)。
【0065】
すると、ファイルメタデータ格納装置200のリクエスト制御部203は、クライアント100から受信したダイジェスト値と一致するダイジェスト値をファイルメタデータ格納部201から探索(抽出)する。そして、リクエスト制御部203は、クライアント100から受信したダイジェスト値と一致するダイジェスト値のエントリとして関連付けられたデータの格納先となるファイルデータ格納装置300のアドレス情報を取得する(ステップS24)。そして、リクエスト制御部203は、クライアント100に対して、取得したアドレス情報とアドレス情報がデータ格納先であることを示すメッセージとをネットワーク1を介して送信する(ステップS25)。
【0066】
次いで、クライアント100は、ファイルメタデータ格納装置200から受信したアドレス情報に対応するファイルデータ格納装置300に、読み出し対象となるファイルのファイルデータのダイジェスト値とファイルデータの読み出し命令とをネットワーク1を介して送信する(ステップS26)。
【0067】
すると、ファイルデータ格納装置300のリクエスト制御部304は、受信した読み出し命令に基づいて、受信したダイジェスト値と一致するダイジェスト値を、構成管理データ格納部305から探索(抽出)する。そして、リクエスト制御部304は、一致(抽出)したダイジェスト値のエントリに関連付けられたすべてのブロックデータのアドレス情報を取得する(ステップS27)。そして、リクエスト制御部304は、ブロックデータ格納部301から、取得したアドレス情報に対応するブロックデータを読み出す(抽出する)。そして、リクエスト制御部304は、抽出したブロックデータをクライアント100にネットワーク1を介して送信し(ステップS28)、読み出し処理を完了する。
【0068】
以下、本実施形態における目的、課題解決手段、及び効果について説明する。本実施形態は、主にファイルデータを扱うNAS(Network Attached Storage)において、主にメタデータを扱う処理を実行する処理部におけるデータの重複判定処理と、主にファイルデータ本体の格納処理を実行する処理部におけるデータの重複判定処理とを別々に設けることで、データの圧縮処理にかかる負荷を分散することを目的としている。さらに、各重複判定処理にデータ判定単位の粒度が異なる判定基準を設けることや、ライフサイクル管理を実現するに当たって付与されるメタデータを活用することで、高いデータ圧縮率を実現することを目的としている。
【0069】
本実施形態では、pNFSに代表されるようなプロトコルを利用するファイルのメタデータを格納し処理を実行する装置と、ファイルデータ本体を格納し処理を実行する装置とを含むストレージアーキテクチャを前提としている。そして、それぞれの処理の処理実行装置は、データの重複を判定する手段を含む。また、各処理実行装置は、重複が判明した場合に物理的に記憶媒体に記録されているデータを削除、もしくはあらかじめ記録せずに、ファイルデータとして読み出し可能とするための管理を行なう手段を含む。
【0070】
データの重複を判定する手段は、各処理実行装置によって、データの重複を判定するデータの単位が異なることを特徴とする。さらに、ファイルのメタデータを格納し処理を実行する装置は、メタデータの特徴に応じて、ファイルデータ本体の格納先となる装置を、複数の装置の中から決定する手段を含む。
【0071】
以上のように、本実施形態では、ファイルのメタデータ格納装置とファイルデータ本体の格納装置とで、それぞれ異なるデータ単位でのデータ重複判定を行なう手段を実行する。そのため、大規模なデータを格納しなければならない環境において、データの重複の有無を判定することによる物理的な記録媒体へのデータの記録容量削減処理にかかる負荷を軽減することができ、かつ高いデータ圧縮率を実現することができる。また、ファイルシステムなどによるデータの管理を複数の装置間で賄うような手段を用いたとしても、記録容量削減処理が処理のボトルネックとならずに実現し易くすることが可能である。
【0072】
さらに、本実施形態では、メタデータの特徴に基づいてファイルデータ本体のデータ格納先となる格納装置を選択する手段を適用することにより、データの重複の発生しうるデータ群を、特定のファイルデータ本体のデータ格納装置に集中させる。そのため、汎用的なデータ群を扱う際にも、より高いデータ圧縮率を実現し、より多くのデータ群が格納可能である。
【0073】
また、本実施形態では、大規模なデータ格納するストレージシステムのうち、ファイルメタデータ格納装置とファイルデータ格納装置とに分離した構成をとるシステムにおいて、データの重複を排除する機構をファイルメタデータ格納装置とファイルデータ格納装置とのそれぞれに組み入れている。さらに、それぞれの装置に組み入れた重複を排除する機構は、重複排除判定において異なるデータの単位に基づいて判定する。そのため、クライアントからのファイルアクセス処理要求の最初の窓口となり、高いI/Oの応答性が求められるファイルメタデータ格納装置の負荷を軽減することができる。また、既にファイルデータ格納装置内の記憶媒体に物理的に格納されているファイルデータ自体をストレージシステム側へ送信することなくデータの書き込み処理を完了することができる。
【0074】
さらに、ファイルメタデータ格納装置は、類似するメタデータに関連付けられたファイルを特定のファイルデータ格納装置へ配置するように制御する。そのため、ブロックデータに分割してデータを格納する際、重複するブロックデータが多数発生するように制御することが可能であり、より高いデータ圧縮率でのデータ格納を実現することができる。
【0075】
また、本実施形態では、ファイルメタデータ格納装置において、ブロックデータ単位での管理を行なわない。そのため、複数の装置でファイルメタデータ格納装置を構成する場合においても、より高いデータ圧縮率でストレージシステムにおいて物理的に格納するデータ容量を削減しつつも、装置間で共有するファイルメタデータを減少させることができる。また、ストレージシステムにアクセスするクライアント数の増加に応じて、ファイルメタデータ格納装置を増設する環境を容易に構築することができる。
【0076】
次に、本発明によるシステムの最小構成について説明する。図6は、ストレージシステムの最小の構成例を示すブロック図である。図6に示すように、ストレージシステムは、最小の構成要素として、格納依頼に含まれていたデータ本体識別値を保存するデータ本体識別値保存手段10と、データ本体識別値判定手段20と、データ本体を分割した分割データを識別可能な分割データ識別値を保存する分割データ識別値保存手段30と、分割データ識別値判定手段40とを含む。
【0077】
図6に示す最小構成のストレージシステムによれば、データ本体を識別可能なデータ本体識別値を含む格納依頼を受信してデータ本体を格納装置に格納するための処理において、データ本体識別値判定手段20は、新たな格納依頼に含まれているデータ本体識別値と識別値保存手段10に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定する。
【0078】
そして、分割データ識別値判定手段40は、データ本体識別値判定手段20が本体データを格納装置に格納すべきと判定した場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と分割データ識別値保存手段30に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定する。
【0079】
以上のように、データ本体識別値に基づいてデータの重複を排除する手段と、分割データ識別値に基づいてデータの重複を排除する手段とをそれぞれ組み入れることで、主にメタデータを扱うI/O処理の応答性とデータの読み書きにおけるI/O処理のスループット性能とを両立しつつ、さらに高いデータ圧縮率を実現することができる。
【0080】
なお、本実施形態では、等価的に以下のようなストレージシステムが構築されている。すなわち、ストレージシステムは、少なくとも1つ以上のファイルメタデータ格納装置と少なくとも2つ以上のファイルデータ格納装置が構成されており、データの書き込みを行う際、ファイルメタデータ格納装置とファイルデータ格納装置の双方に格納済みのデータとのデータの重複を判定する手段と、重複が発生した場合は、格納済みのデータで書き込み対象となっているデータを置き換える手段を備えている。
【0081】
また、ストレージシステムにおいて、データの重複を判定する手段は、ファイルメタデータ格納装置とファイルデータ格納装置との間で、重複判定のデータの単位が異なるように構成されている。
【0082】
また、ストレージシステムにおいて、ファイルメタデータ格納装置は、複数のファイルデータ格納装置からデータ本体の格納先となるファイルデータ格納装置を選択する手段を備えており、新たな書き込み要求を受けたデータの格納先の選択する際、格納済みのデータに関連付けられたメタデータと新たに書き込み要求を受けたデータに関連付けられたメタデータとを比較し、最も類似するメタデータを持つ格納済みデータの格納先であるデータ本体格納装置を、新たな書き込み要求を受けたデータの格納先として選択するように構成されている。
【0083】
また、本実施形態では、以下の(1)〜(6)に示すようなストレージシステムの特徴的構成が示されている。
【0084】
(1)ストレージシステムは、データ本体を識別可能なデータ本体識別値(例えば、ダイジェスト値)を含む格納依頼を受信してデータ本体を格納装置(例えば、ファイルデータ格納装置300)に格納するための処理を行うストレージシステムであって、格納依頼に含まれていたデータ本体識別値を保存するデータ本体識別値保存手段(例えば、ファイルダイジェスト値格納部201)と、新たな格納依頼に含まれているデータ本体識別値と識別値保存手段に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定するデータ本体識別値判定手段(例えば、リクエスト制御部203によって実現される)と、データ本体を分割した分割データを識別可能な分割データ識別値(例えば、ブロックデータダイジェスト値)を保存する分割データ識別値保存手段(例えば、ブロックデータダイジェスト値格納部302)と、データ本体識別値判定手段が本体データを格納装置に格納すべきと判定した場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と分割データ識別値保存手段に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定する分割データ識別値判定手段(例えば、リクエスト制御部304によって実現される)とを備えたことを特徴とする。
【0085】
(2)ストレージシステムは、格納依頼にはデータ本体の特徴を示す特徴データ(例えば、メタデータ群)が含まれ、複数の格納装置を備えたストレージシステムであって、格納依頼に含まれていた特徴データを保存する特徴データ保存手段(例えば、ファイルメタデータ格納部201)と、新たな格納依頼に含まれているデータ本体識別値がデータ本体識別値保存手段に保存されているいずれのデータ本体識別値とも合致しないとデータ本体識別値判定手段が判定した場合に、格納依頼に含まれていた特徴データと特徴データ保存手段に保存されている特徴データとを比較することによってデータ本体が格納される格納装置を選択する格納装置選択手段(例えば、リクエスト制御部203によって実現される)とを備えたことを特徴とする。
【0086】
(3)ストレージシステムにおいて、格納装置選択手段は、特徴データ保存手段に保存されている特徴データのうち、格納依頼に含まれていた特徴データと最も類似する特徴データで示される本体データが格納されている格納装置を選択するように構成されていてもよい。
【0087】
(4)ストレージシステムにおいて、特徴データは複数のメタデータを含み、格納装置選択手段は、特徴データ保存手段に保存されている特徴データのうち、格納依頼に含まれていた特徴データに含まれるメタデータに一致するメタデータの数が最も多い特徴データで示される本体データが格納されている格納装置を選択するように構成されていてもよい。
【0088】
(5)ストレージシステムにおいて、格納装置選択手段は、特徴データ保存手段に、格納依頼に含まれていた特徴データと類似する特徴データが保存されていないと判定した場合に、空き容量が最も多い格納装置を選択するように構成されていてもよい。
【0089】
(6)ストレージシステムにおいて、特徴データは複数のメタデータを含み、格納装置選択手段は、特徴データ保存手段に、格納依頼に含まれていた特徴データに含まれるメタデータに一致するメタデータを含む特徴データが保存されていない場合に、格納依頼に含まれていた特徴データと類似する特徴データが特徴データ保存手段に保存されていないと判定するように構成されていてもよい。
【産業上の利用可能性】
【0090】
本発明を、複数のコンピューティング端末で生成されたデータを集中的に管理するストレージシステム(装置)に適用できる。
【符号の説明】
【0091】
1 ネットワーク
10 データ本体識別値保存手段
20 データ本体識別値判定手段、
30 分割データ識別値保存手段、
40 分割データ識別値判定手段
100 クライアント
101 ファイルシステム
102 ネットワークファイルシステムクライアント
200 ファイルメタデータ格納装置
201 ファイルメタデータ格納部
202 ファイルダイジェスト値格納部
203 リクエスト制御部
300 ファイルデータ格納装置
301 ブロックデータ格納部
302 ブロックデータダイジェスト値格納部
303 ブロックアドレス管理データ格納部
304 リクエスト制御部
305 構成管理データ格納部
400 ストレージシステム

【特許請求の範囲】
【請求項1】
データ本体を識別可能なデータ本体識別値を含む格納依頼を受信してデータ本体を格納装置に格納するための処理を行うストレージシステムであって、
格納依頼に含まれていたデータ本体識別値を保存するデータ本体識別値保存手段と、
新たな格納依頼に含まれているデータ本体識別値と前記識別値保存手段に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定するデータ本体識別値判定手段と、
データ本体を分割した分割データを識別可能な分割データ識別値を保存する分割データ識別値保存手段と、
前記データ本体識別値判定手段が本体データを格納装置に格納すべきと判定した場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と前記分割データ識別値保存手段に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定する分割データ識別値判定手段と
を備えたことを特徴とするストレージシステム。
【請求項2】
格納依頼にはデータ本体の特徴を示す特徴データが含まれ、複数の格納装置を備えたストレージシステムであって、
格納依頼に含まれていた特徴データを保存する特徴データ保存手段と、
新たな格納依頼に含まれているデータ本体識別値がデータ本体識別値保存手段に保存されているいずれのデータ本体識別値とも合致しないとデータ本体識別値判定手段が判定した場合に、格納依頼に含まれていた特徴データと前記特徴データ保存手段に保存されている特徴データとを比較することによってデータ本体が格納される格納装置を選択する格納装置選択手段とを備えた
請求項1記載のストレージシステム。
【請求項3】
格納装置選択手段は、特徴データ保存手段に保存されている特徴データのうち、格納依頼に含まれていた特徴データと最も類似する特徴データで示される本体データが格納されている格納装置を選択する
請求項2記載のストレージシステム。
【請求項4】
特徴データは複数のメタデータを含み、
格納装置選択手段は、特徴データ保存手段に保存されている特徴データのうち、格納依頼に含まれていた特徴データに含まれるメタデータに一致するメタデータの数が最も多い特徴データで示される本体データが格納されている格納装置を選択する
請求項3記載のストレージシステム。
【請求項5】
格納装置選択手段は、特徴データ保存手段に、格納依頼に含まれていた特徴データと類似する特徴データが保存されていないと判定した場合に、空き容量が最も多い格納装置を選択する
請求項2記載のストレージシステム。
【請求項6】
特徴データは複数のメタデータを含み、
格納装置選択手段は、特徴データ保存手段に、格納依頼に含まれていた特徴データに含まれるメタデータに一致するメタデータを含む特徴データが保存されていない場合に、格納依頼に含まれていた特徴データと類似する特徴データが前記特徴データ保存手段に保存されていないと判定する
請求項5記載のストレージシステム。
【請求項7】
データ本体を識別可能なデータ本体識別値を含む格納依頼を受信してデータ本体を格納装置に格納するための処理を行うストレージシステムにおけるデータ書込方法であって、
格納依頼に含まれていたデータ本体識別値をデータ本体識別値保存手段に保存し、
データ本体を分割した分割データを識別可能な分割データ識別値を分割データ識別値保存手段に保存し、
新たな格納依頼に含まれているデータ本体識別値と前記データ本体識別値保存手段に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定し、
本体データを格納装置に格納すべきと判定された場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と前記分割データ識別値保存手段に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定する
ことを特徴とするストレージシステムにおけるデータ書込方法。
【請求項8】
格納依頼にはデータ本体の特徴を示す特徴データが含まれ、複数の格納装置を備えたストレージシステムにおけるデータ書込方法であって、
格納依頼に含まれていた特徴データを特徴データ保存手段に保存し、
新たな格納依頼に含まれているデータ本体識別値がデータ本体識別値保存手段に保存されているいずれのデータ本体識別値とも合致しないと判定された場合に、格納依頼に含まれていた特徴データと前記特徴データ保存手段に保存されている特徴データとを比較することによってデータ本体を格納する格納装置を選択する
請求項7記載のストレージシステムにおけるデータ書込方法。
【請求項9】
データ本体を識別可能なデータ本体識別値を含む格納依頼を受信してデータ本体を格納装置に格納するための処理を行うストレージシステムに搭載されるデータ書込方法プログラムであって、
コンピュータに、
格納依頼に含まれていたデータ本体識別値をデータ本体識別値保存手段に保存する処理と、
データ本体を分割した分割データを識別可能な分割データ識別値を分割データ識別値保存手段に保存する処理と、
新たな格納依頼に含まれているデータ本体識別値とデータ本体識別値保存手段に保存されているデータ本体識別値とを比較することによってデータ本体を格納装置に格納すべきか否か判定する処理と、
本体データを格納装置に格納すべきと判定された場合に、データ本体に対する分割データ識別値を生成して、生成した分割データ識別値と前記分割データ識別値保存手段に保存されている分割データ識別値とを比較することによってデータ本体の分割データを格納装置に格納すべきか否か判定する処理と
を実行させるためのデータ書込プログラム。
【請求項10】
格納依頼にはデータ本体の特徴を示す特徴データが含まれ、複数の格納装置を備えたストレージシステムにおけるデータ書込プログラムであって、
コンピュータに、
格納依頼に含まれていた特徴データを特徴データ保存手段に保存する処理と、
新たな格納依頼に含まれているデータ本体識別値がデータ本体識別値保存手段に保存されているいずれのデータ本体識別値とも合致しないと判定された場合に、格納依頼に含まれていた特徴データと前記特徴データ保存手段に保存されている特徴データとを比較することによってデータ本体を格納する格納装置を選択する処理と
を実行させるための請求項9記載のデータ書込プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate