説明

ストレージ装置、ストレージ方法およびプログラム

【課題】重複排除型ストレージ装置において、装置を大幅に改修することなく新たなデータフォーマットを追加できるようにするとともに、単一故障点が生じないようにすること。
【解決手段】ストレージ装置は、ファイルデータのデータフォーマットに応じてファイルデータから少なくとも一部のデータを実データとして抽出し、ファイルデータのうちの実データの部分をストレージデバイスにおける実データの格納先アドレスに置き換えるとともにデータフォーマットを示す識別子をファイルデータに追加したスタブファイルを生成してストレージデバイスに格納する重複排除制御部と、ストレージデバイスに格納されたデータのダイジェスト値および該データのストレージデバイスにおける格納先アドレスを保持し、実データのダイジェスト値に一致するダイジェスト値を保持しているか否かを判定する重複データ管理部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージ装置、ストレージ方法およびプログラムに関し、特に、ファイルを重複して格納することを排除する重複排除方式のストレージ装置、ストレージ方法およびプログラムに関する。
【背景技術】
【0002】
複数のコンピューティング端末で生成されたデータを集中的に格納するストレージ装置において、ハードディスクドライブなどの物理的な記憶媒体にデータを格納する段階で、既に格納されているデータとの重複を判定し、重複しているデータについては記憶媒体にデータを格納せず、既に格納済みの重複データへのポインタ情報のみを記録することによって、物理的な記録容量を削減するデデュプリケーション(Deduplication)と呼ばれる手法が知られている。
【0003】
デデュプリケーションは、ファイル単位、または、ファイルシステム上で記憶媒体にデータを格納する際に固定的に割り振られる物理データブロック単位で、既に格納済みのデータとの重複を判定する。重複判定の際、ディジタル認証等で用いられているSHA1(Secure Hash Algorithm 1)、MD5(Message Digest 5)等のハッシュ関数により生成された数十〜数百ビットのサイズの小さいダイジェストデータ同士を比較することにより、同一のバイト列で構成されたファイルまたはデータブロックであるか否かを判定する。
【0004】
このような、ダイジェストデータを用いた重複判定手法を採用することにより、ストレージ装置上で実行される重複判定に要する処理コストを低減することが可能となる。特に、高速なI/O処理の実行が見込まれるストレージ処理において、I/O処理と同時に重複判定を行うことで、I/O処理の性能の劣化を抑えることができる。
【0005】
このように、ダイジェストデータを重複判定手段として持つ重複排除型ストレージ装置は、特に、同一のバイト列により構成されるファイルやデータブロックが多数見込まれるコンピューティング環境として、データ格納コストを下げる目的で広く採用されている。例えば、重複排除型ストレージ装置は、例えば、バックアップデータの格納を目的とするストレージ装置や、複数の仮想OSのシステム部分のイメージデータの格納を目的とするストレージ装置において用いられている。
【0006】
重複排除型ストレージ装置の例として、特許文献1には、重複記憶を排除してデータ容量を削減したストレージシステムが記載されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2010−204970号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
以下の分析は、本発明者によってなされたものである。
【0009】
上述の重複排除型ストレージ装置では、格納するデータの重複判定を行う際における、データの重複判定単位が単一である。すなわち、ファイル単位、固定ブロック単位等の固定された単一のデータ単位ごとに重複判定が実施される。
【0010】
一方、ファイル単位、固定ブロック単位等の固定された単位で重複判定を行う代わりに、特定のファイルやデータフォーマットの種別に応じて重複判定に用いるデータの分割方法を変更することで、潜在的に重複しているデータをより多く抽出する方法が知られている。
【0011】
重複排除ストレージでは、以上のように、様々な重複判定単位を用いることで、潜在的に重複している可能性の高いデータを漏れなく検出することが可能となる。
【0012】
ところで、データフォーマットの種別に応じて、重複判定に用いるデータの分割方法を変更するシステムの場合には、重複排除後のデータの復元に用いる、データの分割方法、データの構成情報、分割したデータの格納先情報の管理の仕組みをデータフォーマットごとに用意して集中管理しなければならない。したがって、新たに重複排除対象とするデータフォーマットを追加する際に、既存のデータ管理の仕組みに組み込むことができず、複数の管理機構を設ける必要があるという問題がある。また、このようにデータを集中管理する場合、管理データの消失により重複排除後のすべてのデータが復元不可能となり、データ管理部分が単一故障点(SPOF:Single Point of Failure、単一障害点ともいう。)となるという問題もある。例えば、特許文献1に記載されたストレージシステムによると、分割後のデータはメタデータ格納部によって集中して管理されており、メタデータ格納部が単一故障点となる。
【0013】
そこで、重複排除型ストレージ装置において、装置を大幅に改修することなく新たなデータフォーマットを追加できるようにするとともに、単一故障点が生じないようにすることが課題となる。本発明の目的は、かかる課題を解決するストレージ装置、ストレージ方法およびプログラムを提供することにある。
【課題を解決するための手段】
【0014】
本発明の第1の視点に係るストレージ装置は、
ストレージデバイスに格納すべきファイルデータを入力とし、該ファイルデータのデータフォーマットに応じて該ファイルデータから少なくとも一部のデータを実データとして抽出し、該ファイルデータのうちの該実データの部分を該ストレージデバイスにおける該実データの格納先アドレスに置き換えるとともに該データフォーマットを示す識別子を該ファイルデータに追加したスタブファイルを生成し、生成したスタブファイルを該ストレージデバイスに格納する重複排除制御部と、
前記ストレージデバイスに格納されたデータのダイジェスト値および該データの前記ストレージデバイスにおける格納先アドレスを保持するとともに、前記実データのダイジェスト値に一致するダイジェスト値を保持しているか否かを判定する重複データ管理部と、を備える。
【0015】
本発明の第2の視点に係るストレージ方法は、
ストレージデバイスに格納すべきファイルデータを入力とし、該ファイルデータのデータフォーマットに応じて該ファイルデータから少なくとも一部のデータを実データとして抽出する工程と、
前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致するか否かを判定する工程と、
前記ファイルデータのうちの前記実データの部分を前記ストレージデバイスにおける前記実データの格納先アドレスに置き換えるとともに前記データフォーマットを示す識別子を前記ファイルデータに追加したスタブファイルを生成する工程と、
前記スタブファイルを前記ストレージデバイスに格納する工程と、を含む。
【0016】
本発明の第3の視点に係るプログラムは、
ストレージデバイスに格納すべきファイルデータを入力とし、該ファイルデータのデータフォーマットに応じて該ファイルデータから少なくとも一部のデータを実データとして抽出する処理と、
前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致するか否かを判定する処理と、
前記ファイルデータのうちの前記実データの部分を前記ストレージデバイスにおける前記実データの格納先アドレスに置き換えるとともに前記データフォーマットを示す識別子を前記ファイルデータに追加したスタブファイルを生成する処理と、
前記スタブファイルを前記ストレージデバイスに格納する処理と、をコンピュータに実行させる。
なお、プログラムは、コンピュータ読み取り可能な記憶媒体に記録でき、プログラム製品とすることができる。また、記憶媒体として、非トランジエントなものを用いることができる。
【発明の効果】
【0017】
本発明に係るストレージ装置、ストレージ方法およびプログラムによると、重複排除型ストレージ装置において、装置を大幅に改修することなく新たなデータフォーマットを追加できるようにするとともに、単一故障点が生じないようにすることができる。
【図面の簡単な説明】
【0018】
【図1】一実施形態に係るストレージ装置を備えたストレージシステムの構成を一例として示すブロック図である。
【図2】一実施形態に係るストレージ装置における重複排除管理部の構成を一例として示すブロック図である。
【図3】重複排除処理対象となるファイルデータの内部のデータ構成例を示す図である。
【図4】スタブファイルの内部のデータ構成例を示す図である。
【図5】重複排除処理対象となるファイルデータの分割例を示す図である。
【図6】スタブファイルの内部のデータ構成例を示す図である。
【発明を実施するための形態】
【0019】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【0020】
本発明に係るストレージ装置は、重複排除後のデータ復元に用いられる情報、すなわち、データの分割方法、データの構成情報、分割したデータの格納先情報を、システムで集中管理するのではなく、ファイル単位で分散管理する手段を備えた重複排除格納対応型のストレージ装置である。
【0021】
また、本発明のストレージ装置は、データフォーマットに応じてデータの分割手法を変更するような場合においても、単一の枠組みの範囲で上述の情報を管理することができる。
【0022】
さらに、本発明のストレージ装置は、重複排除格納対象となるファイルデータの重複判定を行う際、ファイルフォーマットごとにデータの分割方法を変更するデータ分割手段と、
分割後のデータをファイルデータとして復元する際に必要となるファイル構成管理情報、分割後のデータの格納先アドレス情報、ファイルがどのように分割されたかを示す識別子を含む情報を、ファイルごとに、ファイルデータ本体の代わりに後述のスタブファイルとして記憶するデータ管理手段と、
重複排除格納されたファイルデータの読み出し時に、前記スタブファイルのデータから、ファイル構成管理情報、分割後のデータの格納先アドレス情報、ファイルがどのように分割されたかを示す識別子を読み出し、読み出し対象とされたファイルデータを構成するデータをストレージから読み出し、ファイルデータとして復元するデータ復元手段と、を備えている。
【0023】
また、本発明のストレージ装置は、データを格納する際、すでに格納済みのデータとのデータの重複が発生しているかを確認するための重複判定手段と、データの重複未発生時にのみデータを格納する重複排除格納手段とを、備えている。なお、スタブファイルとは、ファイルデータ本体ではなく、ファイルデータ本体を復元するためのメタデータ群を格納したファイルをいう。
【0024】
図1ないし図4を参照すると、本発明のストレージ装置(20)は、ストレージデバイス(25)に格納すべきファイルデータを入力とし、該ファイルデータのデータフォーマットに応じて該ファイルデータから少なくとも一部のデータを実データ(図3参照)として抽出し、該ファイルデータのうちの該実データの部分を該ストレージデバイスにおける該実データの格納先アドレスに置き換えるとともに、該データフォーマットを示す識別子(重複排除方式識別子)を該ファイルデータに追加したスタブファイル(図4参照)を生成し、生成したスタブファイルをストレージデバイス(25)に格納する重複排除制御部(103)と、ストレージデバイス(25)に格納されたデータのダイジェスト値および該データのストレージデバイス(25)における格納先アドレスを保持するとともに、前記実データのダイジェスト値に一致するダイジェスト値を保持しているか否かを判定する重複データ管理部(104)と、を備える。
【0025】
また、重複データ管理部(104)は、前記実データのダイジェスト値に一致するダイジェスト値を保持している場合には、一致したダイジェスト値に相当するデータのストレージデバイス(25)における格納先アドレスを重複排除制御部(103)に通知し、重複排除制御部(103)は、前記ファイルデータのうちの前記実データの部分を、通知された格納先アドレスに置き換えて前記スタブファイルを生成するようにしてもよい。
【0026】
さらに、重複データ管理部(104)は、前記実データのダイジェスト値に一致するダイジェスト値を保持していない場合には、その旨を重複排除制御部(103)に通知し、通知を受けた重複排除制御部(103)は、前記実データをストレージデバイス(25)に格納し、前記ファイルデータのうちの前記実データの部分を該格納先アドレスに置き換えて前記スタブファイルを生成するとともに、該格納先アドレスを重複データ管理部(104)に通知し、重複データ管理部(104)は、該格納先アドレスを前記実データのストレージデバイス(25)における格納先アドレスとして保持するようにしてもよい。
【0027】
また、重複排除制御部(103)は、スタブファイルの読み出し要求を受けると、該スタブファイルに含まれる格納先アドレスを参照して、ストレージデバイス(25)から実データを読み出し、該スタブファイルにおける該格納先アドレスの部分を該実データに置き換えるとともに、該スタブファイルに含まれる識別子を削除して、該スタブファイルをもとのデータフォーマットのファイルデータに復元し、復元したファイルデータを要求元に送出するようにしてもよい。
【0028】
本発明によると、複数のデータフォーマットに対応したデータ分割方法を採用した場合においても、ファイルデータ本体の代わりに保存するスタブファイルを用いた単一のデータ管理手法を用いることで、重複排除によって分割されたデータの基本的な管理手法を変更する必要がなくなる。したがって、対応するデータフォーマットを新たに拡充する場合にも、スタブファイルを用いた単一のデータ管理の枠組みの中で拡充することが可能となり、システムを大規模に改修する必要性がなくなる。
【0029】
また、本発明によると、復元時に必要となる各種の情報をファイルごとにスタブファイルとして分散して管理することが可能となる。したがって、各種情報を集中管理した場合と異なり、集中管理を行う部分が単一故障点となり、すべてのデータが復元できなくなるような事態を回避することができる。また、分散管理により、データ読み出し時の負荷を軽減することも可能となる。
【0030】
本発明において、下記の形態が可能である。
[形態1]
上記第1の視点に係るストレージ装置のとおりである。
[形態2]
前記重複データ管理部は、前記実データのダイジェスト値に一致するダイジェスト値を保持している場合には、一致したダイジェスト値に相当するデータの前記ストレージデバイスにおける格納先アドレスを前記重複排除制御部に通知し、前記重複排除制御部は、前記ファイルデータのうちの前記実データの部分を、通知された格納先アドレスに置き換えて前記スタブファイルを生成するようにしてもよい。
[形態3]
前記重複データ管理部は、前記実データのダイジェスト値に一致するダイジェスト値を保持していない場合には、その旨を前記重複排除制御部に通知し、前記重複排除制御部は、前記実データを前記ストレージデバイスに格納し、前記ファイルデータのうちの前記実データの部分を該格納先アドレスに置き換えて前記スタブファイルを生成するとともに、該格納先アドレスを前記重複データ管理部に通知し、前記重複データ管理部は、該格納先アドレスを前記実データの前記ストレージデバイスにおける格納先アドレスとして保持するようにしてもよい。
[形態4]
前記重複排除制御部は、スタブファイルの読み出し要求を受けると、該スタブファイルに含まれる格納先アドレスを参照して、前記ストレージデバイスから実データを読み出し、該スタブファイルにおける該格納先アドレスの部分を該実データに置き換えるとともに、該スタブファイルに含まれる識別子を削除して、該スタブファイルをもとのデータフォーマットのファイルデータに復元し、復元したファイルデータを要求元に送出するようにしてもよい。
[形態5]
上記のストレージ装置は、前記ストレージデバイスをさらに備えていてもよい。
[形態6]
上記第2の視点に係るストレージ方法のとおりである。
[形態7]
上記のストレージ方法において、前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致した場合には、前記スタブファイル生成工程において、前記ファイルデータのうちの前記実データの部分を、一致したダイジェスト値に相当するデータの前記ストレージデバイスにおける格納先アドレスに置き換えるようにしてもよい。
[形態8]
上記のストレージ方法において、前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致しない場合には、前記実データを前記ストレージデバイスに格納する工程と、
前記ファイルデータのうちの前記実データの部分を、前記実データの前記ストレージデバイスにおける格納先アドレスに置き換える工程と、を含んでいてもよい。
[形態9]
上記のストレージ方法において、スタブファイルの読み出し要求を受けると、該スタブファイルに含まれる格納先アドレスを参照して、前記ストレージデバイスから実データを読み出す工程と、
前記スタブファイルにおける前記格納先アドレスの部分を前記実データに置き換えるとともに、前記スタブファイルに含まれる識別子を削除して、前記スタブファイルをもとのデータフォーマットのファイルデータに復元する工程と、
復元したファイルデータを要求元に送出する工程と、を含んでいてもよい。
[形態10]
上記第3の視点に係るプログラムのとおりである。
[形態11]
上記プログラムにおいて、前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致した場合には、前記スタブファイル生成処理において、前記ファイルデータのうちの前記実データの部分を、一致したダイジェスト値に相当するデータの前記ストレージデバイスにおける格納先アドレスに置き換えるようにしてもよい。
[形態12]
上記プログラムにおいて、前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致しない場合には、前記実データを前記ストレージデバイスに格納する処理と、
前記ファイルデータのうちの前記実データの部分を、前記実データの前記ストレージデバイスにおける格納先アドレスに置き換える処理と、をコンピュータに実行させるようにしてもよい。
[形態13]
上記プログラムにおいて、スタブファイルの読み出し要求を受けると、該スタブファイルに含まれる格納先アドレスを参照して、前記ストレージデバイスから実データを読み出す処理と、
前記スタブファイルにおける前記格納先アドレスの部分を前記実データに置き換えるとともに、前記スタブファイルに含まれる識別子を削除して、前記スタブファイルをもとのデータフォーマットのファイルデータに復元する処理と、
復元したファイルデータを要求元に送出する処理と、をコンピュータに実行させるようにしてもよい。
【0031】
(実施形態)
本発明の一実施形態に係るストレージ装置について、図面を参照して説明する。図1は、本実施形態のストレージ装置を備えたストレージシステムの構成を一例として示すブロック図である。図1を参照すると、ストレージシステムは、クライアント1、ストレージ装置20、および、管理クライアント30を備えている。また、これらの装置は、ネットワーク10を介して相互に接続されている。
【0032】
クライアント1は、ネットワークファイルシステムクライアント2を備えている。クライアント1からストレージ装置20へのネットワーク10を介したデータアクセスは、ネットワークファイルシステムクライアント2を介して実行される。データアクセスは、例えば、NFS(Network File System)、CIFS(Common Internet File System)等の業界標準のプロトコルを用いて実行される。
【0033】
図1を参照すると、ストレージ装置20は、ネットワークファイルシステムサーバ21、フィルタ部22、重複排除管理部23、ファイルシステム24、ストレージデバイス25、および、管理コンソール26を備えている。
【0034】
ネットワークファイルシステムサーバ21は、クライアント1のネットワークファイルシステムクライアント2からのデータアクセスリクエストに基づいて、ストレージ装置20におけるデータの書き込み、読み出し等のデータ処理を仲介する。
【0035】
フィルタ部22は、データアクセスリクエストに含まれるデータの読み出しリクエストのうちの、重複排除格納されたファイルデータを対象とするリクエストを重複排除管理部23へ転送する。フィルタ部22は、重複排除格納されたファイルデータのリストを保持している。フィルタ部22は、リクエストで指定された読み出し対象のファイルデータのエントリがリスト内に存在する場合には、重複排除管理部23へリクエストを転送する。一方、読み出し処理以外のリクエスト、または、エントリがリスト内に存在しないファイルデータに対する読み出し処理のリクエストである場合には、フィルタ部22は、リクエストをファイルシステム24へ転送する。
【0036】
重複排除管理部23は、重複排除格納の管理および制御を行う。
【0037】
ファイルシステム24は、ストレージデバイス25へのデータの格納管理、データの読み出し、書き込みを行う。
【0038】
ストレージデバイス25は、HDD(ハードディスクドライブ)等の複数の物理ストレージメディアを備え、データを永続的に記憶する。
【0039】
管理コンソール26は、ストレージ装置20の外部からコマンド命令を受け、重複排除管理部23へ転送する。
【0040】
管理クライアント30は、ネットワーク10を介してストレージ装置20の管理コンソール26にアクセスし、各種のコマンド実行命令を重複排除管理部23へ送信する。
【0041】
図2は、本実施形態に係るストレージ装置20における重複排除管理部23の構成を一例として示すブロック図である。図2を参照すると、重複排除管理部23は、ファイルアクセス部101、コマンド実行部102、重複排除制御部103、および、重複データ管理部104を備えている。また、重複排除制御部103は、複数の(例えばN個の)重複排除部を備えている。
【0042】
ファイルアクセス部101は、重複排除制御部103からの要求により、ファイルシステム24からのファイルデータの読み出し、および、ファイルシステム24へのファイルデータの書き込みを行う。
【0043】
重複排除制御部103は、複数の重複排除制御部1〜Nを備え、各重複排除制御部は担当するファイルフォーマットに対してデータの重複排除処理とデータの復元処理を実行する。
【0044】
重複データ管理部104は、ファイルシステム24を介してストレージデバイス25に格納されているデータのダイジェスト値と、データの格納先のアドレス情報と、データの重複回数をテーブル化して保存する。また、重複データ管理部104は、テーブル化されたデータを元に、重複排除格納処理対象のデータが、ファイルシステム24を介してストレージデバイス25に格納されているデータと重複しているか否かを判定する。
【0045】
<重複排除格納>
まず、ストレージ装置20が重複するデータを排除しつつデータ格納する手順について、図1ないし図6を参照して説明する。ここでは、一例として、重複排除することなくストレージデバイス25に通常格納済みのデータを、管理クライアント30からの管理コンソール26を介した命令により、重複排除格納対象のファイルデータ群として指定するとともに、指定されたファイルを重複排除格納する場合について説明する。
【0046】
管理クライアント30は、管理コンソール26を介して、重複排除格納対象となるファイルデータのデータ格納先パスが記載されたリストを、重複排除管理部23のコマンド実行部102に登録し、重複排除格納の命令を発行する。コマンド実行部102は、重複排除格納の命令を受けて、登録されたファイルデータのリストを走査し、リストに登録されているファイルデータのエントリを順番に重複排除格納する。
【0047】
コマンド実行部102は、ファイルデータのエントリに登録されている格納パスから、ファイル名に付与された拡張子を抽出し、重複排除制御部103に設けられたN個の重複排除部の中から、拡張子に対応した重複排除部を選択し、パス情報と重複排除格納命令を出す。
【0048】
重複排除制御部103は、パス情報と重複排除命令に基づき、パス情報から、ファイルアクセス部101を介して、ファイルシステム24で管理されているストレージデバイス25に記憶されている該当ファイルデータを読み出す。
【0049】
図3は、重複排除処理対象となるファイルデータの内部のデータ構成例を示す図である。ファイルデータは、図3に示すように、テキストデータ、画像データ、映像データのように、そのデータ単独で他のファイルデータにコピー可能なデータ、または、単独のファイルデータとして抽出可能なデータ(以下「実データ」という。)と、ファイル生成時にアプリケーションにより付与された、ファイルの表示制御等をコントロールするメタデータとを含む。重複排除制御部103は、このファイル内部の構成情報を拡張子ごとに解析するために、拡張子にそれぞれ対応するN個の重複排除部を備えている。
【0050】
重複排除制御部103は、ファイルデータの構造を解析し、ファイルデータの中から実データのみをすべて抽出する。重複しているかどうかの判定は、実データに対して行われる。
【0051】
重複排除制御部103は、データのダイジェスト値を算出する共通のハッシュ関数(SHA−1、HD5等)を用いて、実データのダイジェスト値を算出し、ダイジェスト値を重複データ管理部104へ送信する。
【0052】
重複データ管理部104は、重複データ管理部104で管理されているテーブルのエントリを走査し、ダイジェスト値と合致するエントリが存在するかどうかを確認する。
【0053】
「ダイジェスト値と合致するエントリが存在しない場合」
合致するエントリが存在しない場合には、重複データ管理部104は、データの重複が存在しないとして前記テーブルに、前記ダイジェスト値を新しいエントリとして登録し、重複排除制御部103へ重複なしと応答する。
【0054】
重複排除制御部103は、重複なしとの応答を受けた後、ダイジェスト値に相当する実データを、ファイルアクセス部101を介して、ファイルシステム24へファイルデータとして新規作成し、実データをストレージデバイス25へ格納する。
【0055】
実データの格納後、重複排除制御部103は、ダイジェスト値とともに、ファイルシステム24の格納先アドレス情報を重複データ管理部104へ送信する。
【0056】
重複データ管理部104は、前記データを元に、対応するダイジェスト値のエントリへ格納先アドレス情報を登録し、重複回数を1に設定して、重複排除制御部103へエントリへの登録が完了したことを通知する。
【0057】
「ダイジェスト値と合致するエントリが存在する場合」
一方、重複排除制御部103から送信されたダイジェスト値と合致するエントリが存在する場合には、重複データ管理部104は、データの重複が存在するとして、エントリに登録されているデータ格納先のアドレス情報を重複排除制御部103へ送信し、エントリの重複回数を1だけ増やす。
【0058】
図4は、スタブファイルの内部のデータ構成例を示す図である。図4を参照すると、ファイルデータから抽出されたすべての実データについて、重複データ管理部104でのダイジェスト値の合致確認処理が終了した後、重複排除制御部103は、図3に示した構成のファイルデータの中から、実データ部分をファイルシステム24の格納先アドレス情報に置き換えるとともに、ファイルデータの先頭に、対応する重複排除制御部103の重複排除部の識別子(例えば番号)を重複排除方式識別子として組み込み、この加工されたファイルデータ(すなわち、スタブファイル)をファイルシステム24に格納されている重複排除対象となったファイルデータに上書きする。
【0059】
また、重複排除制御部103は、スタブファイルのファイル識別子をフィルタ部22へ登録する。ここで、ファイル識別子は、ストレージ装置20のファイルシステム24において、ファイルを一意に特定できる識別子とする。
【0060】
以上の処理を、コマンド実行部102にリストとして登録されているすべてのファイルデータについて実行することで、重複排除格納処理が完了する。
【0061】
「構造の解析ができないファイルデータを重複排除格納処理する場合」
重複排除制御部103が有するN個の重複排除部が構造を解析できないファイルデータである場合、例えば、対応する拡張子と合致していない場合、または、拡張子を持たないファイルデータである場合には、図5に示すように、データを先頭から固定長または可変長のブロックで分割して、重複排除格納する。この場合には、スタブデータは、図6に示すように、重複排除方式識別子と、データ格納先アドレス情報の集合とで構成される。
【0062】
<データ読み出し>
次に、重複排除格納されたファイルデータを、クライアント1からの読み出しリクエストによって読み出す場合の手順について説明する。
【0063】
まず、クライアント1は、ネットワークファイルシステムクライアント2を介して、ストレージ装置20へ読み出し対象となるファイルの識別子と、読み出し要求を送信する。
【0064】
ストレージ装置20のネットワークファイルシステムサーバ21は、ファイル識別子および読み出し要求に基づいて、フィルタ部22を介して、ファイルシステム24へファイル識別子とデータ読み出し要求を送信する。
【0065】
フィルタ部22は、ファイル識別子が重複排除格納されたファイルデータのリストに登録されているかどうかを走査する。
【0066】
ファイル識別子がリストに登録されていない場合には、フィルタ部22は、データ読み出し要求とファイル識別子をファイルシステム24へ送信する。以降、一般的なファイルシステムからのデータ読み出し手続きを経て、ファイルデータが、クライアント1へ返送される。
【0067】
一方、ファイル識別子がリストに登録されている場合には、フィルタ部22は、データ読み出し要求とファイル識別子を重複排除管理部23へ送信する。
【0068】
重複排除管理部23の重複排除制御部103は、データ読み出し要求とファイル識別子に基づいて、ファイルアクセス部101を介して、ファイルシステム24から該当するファイルデータ(この場合には、重複排除格納対象であるためスタブファイルのデータに相当)を読み出す。
【0069】
重複排除制御部103は、スタブファイルデータ内の重複排除方式識別子に応じて、N個の重複排除部の中から、対応する重複排除部を選択する。
【0070】
重複排除制御部103は、図4または図6に相当するスタブファイル内のデータ構造を解析し、データ格納先アドレスを元に、スタブファイル内に記録されているすべてのファイルデータを、ファイルアクセス部101を介してファイルシステム24から読み出す。
【0071】
重複排除制御部103は、読み出したファイルデータを実データとして、スタブファイル内のデータ格納先アドレス部分のデータと置き換え、重複排除方式識別子を削除して、重複排除格納処理前のファイルデータとして復元する。また、重複排除制御部103は、復元したファイルデータをフィルタ部22へ送信する。
【0072】
フィルタ部22は、ネットワークファイルシステムサーバ21へファイルデータを送信する。ファイルデータは、ネットワーク10を介してクライアント1へ送信される。以上により、ファイルデータの読み出し処理が完了する。
【0073】
以上、図面を参照して、本発明の一実施形態について詳しく説明した。しかしながら、本発明を実施するための具体的な構成は上述の構成に限られることはなく、本発明の要旨を逸脱しない範囲内で様々な設計変更等が可能である。
【0074】
例えば、ストレージ装置20が内部にコンピュータシステムを有し、上述の各処理部の動作がプログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されている場合には、このプログラムをコンピュータが読み出して実行することによって、上記の処理を行うようにしてもよい。ここで、コンピュータ読み取り可能な記録媒体として、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等が挙げられる。また、ンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
【0075】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、プログラムは、コンピュータシステムにすでに記録されているプログラムとの組み合わせで上述の機能を実現する、いわゆる差分ファイル(差分プログラム)であってもよい。
【0076】
なお、上記の特許文献等の先行技術文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【0077】
1 クライアント
2 ネットワークファイルシステムクライアント
10 ネットワーク
20 ストレージ装置
21 ネットワークファイルシステムサーバ
22 フィルタ部
23 重複排除管理部
24 ファイルシステム
25 ストレージデバイス
26 管理コンソール
30 管理クライアント
101 ファイルアクセス部
102 コマンド実行部
103 重複排除制御部
104 重複データ管理部

【特許請求の範囲】
【請求項1】
ストレージデバイスに格納すべきファイルデータを入力とし、該ファイルデータのデータフォーマットに応じて該ファイルデータから少なくとも一部のデータを実データとして抽出し、該ファイルデータのうちの該実データの部分を該ストレージデバイスにおける該実データの格納先アドレスに置き換えるとともに該データフォーマットを示す識別子を該ファイルデータに追加したスタブファイルを生成し、生成したスタブファイルを該ストレージデバイスに格納する重複排除制御部と、
前記ストレージデバイスに格納されたデータのダイジェスト値および該データの前記ストレージデバイスにおける格納先アドレスを保持するとともに、前記実データのダイジェスト値に一致するダイジェスト値を保持しているか否かを判定する重複データ管理部と、を備えることを特徴とするストレージ装置。
【請求項2】
前記重複データ管理部は、前記実データのダイジェスト値に一致するダイジェスト値を保持している場合には、一致したダイジェスト値に相当するデータの前記ストレージデバイスにおける格納先アドレスを前記重複排除制御部に通知し、前記重複排除制御部は、前記ファイルデータのうちの前記実データの部分を、通知された格納先アドレスに置き換えて前記スタブファイルを生成することを特徴とする、請求項1に記載のストレージ装置。
【請求項3】
前記重複データ管理部は、前記実データのダイジェスト値に一致するダイジェスト値を保持していない場合には、その旨を前記重複排除制御部に通知し、前記重複排除制御部は、前記実データを前記ストレージデバイスに格納し、前記ファイルデータのうちの前記実データの部分を該格納先アドレスに置き換えて前記スタブファイルを生成するとともに、該格納先アドレスを前記重複データ管理部に通知し、前記重複データ管理部は、該格納先アドレスを前記実データの前記ストレージデバイスにおける格納先アドレスとして保持することを特徴とする、請求項1または2に記載のストレージ装置。
【請求項4】
前記重複排除制御部は、スタブファイルの読み出し要求を受けると、該スタブファイルに含まれる格納先アドレスを参照して、前記ストレージデバイスから実データを読み出し、該スタブファイルにおける該格納先アドレスの部分を該実データに置き換えるとともに、該スタブファイルに含まれる識別子を削除して、該スタブファイルをもとのデータフォーマットのファイルデータに復元し、復元したファイルデータを要求元に送出することを特徴とする、請求項1ないし3のいずれか1項に記載のストレージ装置。
【請求項5】
前記ストレージデバイスをさらに備えていることを特徴とする、請求項1ないし4のいずれか1項に記載のストレージ装置。
【請求項6】
ストレージデバイスに格納すべきファイルデータを入力とし、該ファイルデータのデータフォーマットに応じて該ファイルデータから少なくとも一部のデータを実データとして抽出する工程と、
前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致するか否かを判定する工程と、
前記ファイルデータのうちの前記実データの部分を前記ストレージデバイスにおける前記実データの格納先アドレスに置き換えるとともに前記データフォーマットを示す識別子を前記ファイルデータに追加したスタブファイルを生成する工程と、
前記スタブファイルを前記ストレージデバイスに格納する工程と、を含むことを特徴とするストレージ方法。
【請求項7】
前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致した場合には、前記スタブファイル生成工程において、前記ファイルデータのうちの前記実データの部分を、一致したダイジェスト値に相当するデータの前記ストレージデバイスにおける格納先アドレスに置き換えることを特徴とする、請求項6に記載のストレージ方法。
【請求項8】
前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致しない場合には、前記実データを前記ストレージデバイスに格納する工程と、
前記ファイルデータのうちの前記実データの部分を、前記実データの前記ストレージデバイスにおける格納先アドレスに置き換える工程と、を含むことを特徴とする、請求項6または7に記載のストレージ方法。
【請求項9】
スタブファイルの読み出し要求を受けると、該スタブファイルに含まれる格納先アドレスを参照して、前記ストレージデバイスから実データを読み出す工程と、
前記スタブファイルにおける前記格納先アドレスの部分を前記実データに置き換えるとともに、前記スタブファイルに含まれる識別子を削除して、前記スタブファイルをもとのデータフォーマットのファイルデータに復元する工程と、
復元したファイルデータを要求元に送出する工程と、を含むことを特徴とする、請求項6ないし8のいずれか1項に記載のストレージ方法。
【請求項10】
ストレージデバイスに格納すべきファイルデータを入力とし、該ファイルデータのデータフォーマットに応じて該ファイルデータから少なくとも一部のデータを実データとして抽出する処理と、
前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致するか否かを判定する処理と、
前記ファイルデータのうちの前記実データの部分を前記ストレージデバイスにおける前記実データの格納先アドレスに置き換えるとともに前記データフォーマットを示す識別子を前記ファイルデータに追加したスタブファイルを生成する処理と、
前記スタブファイルを前記ストレージデバイスに格納する処理と、をコンピュータに実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−3883(P2013−3883A)
【公開日】平成25年1月7日(2013.1.7)
【国際特許分類】
【出願番号】特願2011−134994(P2011−134994)
【出願日】平成23年6月17日(2011.6.17)
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究の成果に係る特許出願(独立行政法人新エネルギー・産業技術総合開発機構「グリーンネットワーク・システム技術研究開発プロジェクト(グリーンITプロジェクト)/エネルギー利用最適化データセンタ基盤技術の研究開発/サーバの最適構成とクラウド・コンピューティング環境における進化するアーキテクチャーの開発/クラウド・コンピューティング技術」委託研究、産業技術力強化法第19条の適用を受ける特許出願)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】