(57)【特許請求の範囲】
【請求項１】
ストレージデバイスに格納すべきファイルデータを入力とし、該ファイルデータのデータフォーマットに応じて該ファイルデータの構造を解析することにより該ファイルデータからメタデータを除外した実データを抽出し、該ファイルデータのうちの該実データの部分を該ストレージデバイスにおける該実データの格納先アドレスに置き換えるとともに該データフォーマットを示す識別子を該ファイルデータに追加したスタブファイルを生成し、生成したスタブファイルを該ストレージデバイスに格納する重複排除制御部と、
前記ストレージデバイスに格納されたデータのダイジェスト値および該データの前記ストレージデバイスにおける格納先アドレスを保持するとともに、前記実データのダイジェスト値に一致するダイジェスト値を保持しているか否かを判定する重複データ管理部と、を備えることを特徴とするストレージ装置。
【請求項２】
前記重複データ管理部は、前記実データのダイジェスト値に一致するダイジェスト値を保持している場合には、一致したダイジェスト値に相当するデータの前記ストレージデバイスにおける格納先アドレスを前記重複排除制御部に通知し、前記重複排除制御部は、前記ファイルデータのうちの前記実データの部分を、通知された格納先アドレスに置き換えて前記スタブファイルを生成することを特徴とする、請求項１に記載のストレージ装置。
【請求項３】
前記重複データ管理部は、前記実データのダイジェスト値に一致するダイジェスト値を保持していない場合には、その旨を前記重複排除制御部に通知し、前記重複排除制御部は、前記実データを前記ストレージデバイスに格納し、前記ファイルデータのうちの前記実データの部分を該格納先アドレスに置き換えて前記スタブファイルを生成するとともに、該格納先アドレスを前記重複データ管理部に通知し、前記重複データ管理部は、該格納先アドレスを前記実データの前記ストレージデバイスにおける格納先アドレスとして保持することを特徴とする、請求項１または２に記載のストレージ装置。
【請求項４】
前記重複排除制御部は、スタブファイルの読み出し要求を受けると、該スタブファイルに含まれる格納先アドレスを参照して、前記ストレージデバイスから実データを読み出し、該スタブファイルにおける該格納先アドレスの部分を該実データに置き換えるとともに、該スタブファイルに含まれる識別子を削除して、該スタブファイルをもとのデータフォーマットのファイルデータに復元し、復元したファイルデータを要求元に送出することを特徴とする、請求項１ないし３のいずれか１項に記載のストレージ装置。
【請求項５】
前記ストレージデバイスをさらに備えていることを特徴とする、請求項１ないし４のいずれか１項に記載のストレージ装置。
【請求項６】
ストレージデバイスに格納すべきファイルデータを入力とし、該ファイルデータのデータフォーマットに応じて該ファイルデータの構造を解析することにより該ファイルデータからメタデータを除外した実データを抽出する工程と、
前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致するか否かを判定する工程と、
前記ファイルデータのうちの前記実データの部分を前記ストレージデバイスにおける前記実データの格納先アドレスに置き換えるとともに前記データフォーマットを示す識別子を前記ファイルデータに追加したスタブファイルを生成する工程と、
前記スタブファイルを前記ストレージデバイスに格納する工程と、を含むことを特徴とするストレージ方法。
【請求項７】
前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致した場合には、前記スタブファイル生成工程において、前記ファイルデータのうちの前記実データの部分を、一致したダイジェスト値に相当するデータの前記ストレージデバイスにおける格納先アドレスに置き換えることを特徴とする、請求項６に記載のストレージ方法。
【請求項８】
前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致しない場合には、前記実データを前記ストレージデバイスに格納する工程と、
前記ファイルデータのうちの前記実データの部分を、前記実データの前記ストレージデバイスにおける格納先アドレスに置き換える工程と、を含むことを特徴とする、請求項６または７に記載のストレージ方法。
【請求項９】
スタブファイルの読み出し要求を受けると、該スタブファイルに含まれる格納先アドレスを参照して、前記ストレージデバイスから実データを読み出す工程と、
前記スタブファイルにおける前記格納先アドレスの部分を前記実データに置き換えるとともに、前記スタブファイルに含まれる識別子を削除して、前記スタブファイルをもとのデータフォーマットのファイルデータに復元する工程と、
復元したファイルデータを要求元に送出する工程と、を含むことを特徴とする、請求項６ないし８のいずれか１項に記載のストレージ方法。
【請求項１０】
ストレージデバイスに格納すべきファイルデータを入力とし、該ファイルデータのデータフォーマットに応じて該ファイルデータの構造を解析することにより該ファイルデータからメタデータを除外した実データを抽出する処理と、
前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致するか否かを判定する処理と、
前記ファイルデータのうちの前記実データの部分を前記ストレージデバイスにおける前記実データの格納先アドレスに置き換えるとともに前記データフォーマットを示す識別子を前記ファイルデータに追加したスタブファイルを生成する処理と、
前記スタブファイルを前記ストレージデバイスに格納する処理と、をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、ストレージ方法およびプログラムに関し、特に、ファイルを重複して格納することを排除する重複排除方式のストレージ装置、ストレージ方法およびプログラムに関する。
【背景技術】
【０００２】
複数のコンピューティング端末で生成されたデータを集中的に格納するストレージ装置において、ハードディスクドライブなどの物理的な記憶媒体にデータを格納する段階で、既に格納されているデータとの重複を判定し、重複しているデータについては記憶媒体にデータを格納せず、既に格納済みの重複データへのポインタ情報のみを記録することによって、物理的な記録容量を削減するデデュプリケーション（Ｄｅｄｕｐｌｉｃａｔｉｏｎ）と呼ばれる手法が知られている。
【０００３】
デデュプリケーションは、ファイル単位、または、ファイルシステム上で記憶媒体にデータを格納する際に固定的に割り振られる物理データブロック単位で、既に格納済みのデータとの重複を判定する。重複判定の際、ディジタル認証等で用いられているＳＨＡ１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ  １）、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ５）等のハッシュ関数により生成された数十〜数百ビットのサイズの小さいダイジェストデータ同士を比較することにより、同一のバイト列で構成されたファイルまたはデータブロックであるか否かを判定する。
【０００４】
このような、ダイジェストデータを用いた重複判定手法を採用することにより、ストレージ装置上で実行される重複判定に要する処理コストを低減することが可能となる。特に、高速なＩ／Ｏ処理の実行が見込まれるストレージ処理において、Ｉ／Ｏ処理と同時に重複判定を行うことで、Ｉ／Ｏ処理の性能の劣化を抑えることができる。
【０００５】
このように、ダイジェストデータを重複判定手段として持つ重複排除型ストレージ装置は、特に、同一のバイト列により構成されるファイルやデータブロックが多数見込まれるコンピューティング環境として、データ格納コストを下げる目的で広く採用されている。例えば、重複排除型ストレージ装置は、例えば、バックアップデータの格納を目的とするストレージ装置や、複数の仮想ＯＳのシステム部分のイメージデータの格納を目的とするストレージ装置において用いられている。
【０００６】
重複排除型ストレージ装置の例として、特許文献１には、重複記憶を排除してデータ容量を削減したストレージシステムが記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−２０４９７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
以下の分析は、本発明者によってなされたものである。
【０００９】
上述の重複排除型ストレージ装置では、格納するデータの重複判定を行う際における、データの重複判定単位が単一である。すなわち、ファイル単位、固定ブロック単位等の固定された単一のデータ単位ごとに重複判定が実施される。
【００１０】
一方、ファイル単位、固定ブロック単位等の固定された単位で重複判定を行う代わりに、特定のファイルやデータフォーマットの種別に応じて重複判定に用いるデータの分割方法を変更することで、潜在的に重複しているデータをより多く抽出する方法が知られている。
【００１１】
重複排除ストレージでは、以上のように、様々な重複判定単位を用いることで、潜在的に重複している可能性の高いデータを漏れなく検出することが可能となる。
【００１２】
ところで、データフォーマットの種別に応じて、重複判定に用いるデータの分割方法を変更するシステムの場合には、重複排除後のデータの復元に用いる、データの分割方法、データの構成情報、分割したデータの格納先情報の管理の仕組みをデータフォーマットごとに用意して集中管理しなければならない。したがって、新たに重複排除対象とするデータフォーマットを追加する際に、既存のデータ管理の仕組みに組み込むことができず、複数の管理機構を設ける必要があるという問題がある。また、このようにデータを集中管理する場合、管理データの消失により重複排除後のすべてのデータが復元不可能となり、データ管理部分が単一故障点（ＳＰＯＦ：Ｓｉｎｇｌｅ  Ｐｏｉｎｔ  ｏｆ  Ｆａｉｌｕｒｅ、単一障害点ともいう。）となるという問題もある。例えば、特許文献１に記載されたストレージシステムによると、分割後のデータはメタデータ格納部によって集中して管理されており、メタデータ格納部が単一故障点となる。
【００１３】
そこで、重複排除型ストレージ装置において、装置を大幅に改修することなく新たなデータフォーマットを追加できるようにするとともに、単一故障点が生じないようにすることが課題となる。本発明の目的は、かかる課題を解決するストレージ装置、ストレージ方法およびプログラムを提供することにある。
【課題を解決するための手段】
【００１４】
本発明の第１の視点に係るストレージ装置は、
ストレージデバイスに格納すべきファイルデータを入力とし、該ファイルデータのデータフォーマットに応じて該ファイルデータの構造を解析することにより該ファイルデータからメタデータを除外した実データを抽出し、該ファイルデータのうちの該実データの部分を該ストレージデバイスにおける該実データの格納先アドレスに置き換えるとともに該データフォーマットを示す識別子を該ファイルデータに追加したスタブファイルを生成し、生成したスタブファイルを該ストレージデバイスに格納する重複排除制御部と、
前記ストレージデバイスに格納されたデータのダイジェスト値および該データの前記ストレージデバイスにおける格納先アドレスを保持するとともに、前記実データのダイジェスト値に一致するダイジェスト値を保持しているか否かを判定する重複データ管理部と、を備える。
【００１５】
本発明の第２の視点に係るストレージ方法は、
ストレージデバイスに格納すべきファイルデータを入力とし、該ファイルデータのデータフォーマットに応じて該ファイルデータの構造を解析することにより該ファイルデータからメタデータを除外した実データを抽出する工程と、
前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致するか否かを判定する工程と、
前記ファイルデータのうちの前記実データの部分を前記ストレージデバイスにおける前記実データの格納先アドレスに置き換えるとともに前記データフォーマットを示す識別子を前記ファイルデータに追加したスタブファイルを生成する工程と、
前記スタブファイルを前記ストレージデバイスに格納する工程と、を含む。
【００１６】
本発明の第３の視点に係るプログラムは、
ストレージデバイスに格納すべきファイルデータを入力とし、該ファイルデータのデータフォーマットに応じて該ファイルデータの構造を解析することにより該ファイルデータからメタデータを除外した実データを抽出する処理と、
前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致するか否かを判定する処理と、
前記ファイルデータのうちの前記実データの部分を前記ストレージデバイスにおける前記実データの格納先アドレスに置き換えるとともに前記データフォーマットを示す識別子を前記ファイルデータに追加したスタブファイルを生成する処理と、
前記スタブファイルを前記ストレージデバイスに格納する処理と、をコンピュータに実行させる。
なお、プログラムは、コンピュータ読み取り可能な記憶媒体に記録でき、プログラム製品とすることができる。また、記憶媒体として、非トランジエントなものを用いることができる。
【発明の効果】
【００１７】
本発明に係るストレージ装置、ストレージ方法およびプログラムによると、重複排除型ストレージ装置において、装置を大幅に改修することなく新たなデータフォーマットを追加できるようにするとともに、単一故障点が生じないようにすることができる。
【図面の簡単な説明】
【００１８】
【図１】一実施形態に係るストレージ装置を備えたストレージシステムの構成を一例として示すブロック図である。
【図２】一実施形態に係るストレージ装置における重複排除管理部の構成を一例として示すブロック図である。
【図３】重複排除処理対象となるファイルデータの内部のデータ構成例を示す図である。
【図４】スタブファイルの内部のデータ構成例を示す図である。
【図５】重複排除処理対象となるファイルデータの分割例を示す図である。
【図６】スタブファイルの内部のデータ構成例を示す図である。
【発明を実施するための形態】
【００１９】
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
【００２０】
本発明に係るストレージ装置は、重複排除後のデータ復元に用いられる情報、すなわち、データの分割方法、データの構成情報、分割したデータの格納先情報を、システムで集中管理するのではなく、ファイル単位で分散管理する手段を備えた重複排除格納対応型のストレージ装置である。
【００２１】
また、本発明のストレージ装置は、データフォーマットに応じてデータの分割手法を変更するような場合においても、単一の枠組みの範囲で上述の情報を管理することができる。
【００２２】
さらに、本発明のストレージ装置は、重複排除格納対象となるファイルデータの重複判定を行う際、ファイルフォーマットごとにデータの分割方法を変更するデータ分割手段と、
分割後のデータをファイルデータとして復元する際に必要となるファイル構成管理情報、分割後のデータの格納先アドレス情報、ファイルがどのように分割されたかを示す識別子を含む情報を、ファイルごとに、ファイルデータ本体の代わりに後述のスタブファイルとして記憶するデータ管理手段と、
重複排除格納されたファイルデータの読み出し時に、前記スタブファイルのデータから、ファイル構成管理情報、分割後のデータの格納先アドレス情報、ファイルがどのように分割されたかを示す識別子を読み出し、読み出し対象とされたファイルデータを構成するデータをストレージから読み出し、ファイルデータとして復元するデータ復元手段と、を備えている。
【００２３】
また、本発明のストレージ装置は、データを格納する際、すでに格納済みのデータとのデータの重複が発生しているかを確認するための重複判定手段と、データの重複未発生時にのみデータを格納する重複排除格納手段とを、備えている。なお、スタブファイルとは、ファイルデータ本体ではなく、ファイルデータ本体を復元するためのメタデータ群を格納したファイルをいう。
【００２４】
図１ないし図４を参照すると、本発明のストレージ装置（２０）は、ストレージデバイス（２５）に格納すべきファイルデータを入力とし、該ファイルデータのデータフォーマットに応じて該ファイルデータから少なくとも一部のデータを実データ（図３参照）として抽出し、該ファイルデータのうちの該実データの部分を該ストレージデバイスにおける該実データの格納先アドレスに置き換えるとともに、該データフォーマットを示す識別子（重複排除方式識別子）を該ファイルデータに追加したスタブファイル（図４参照）を生成し、生成したスタブファイルをストレージデバイス（２５）に格納する重複排除制御部（１０３）と、ストレージデバイス（２５）に格納されたデータのダイジェスト値および該データのストレージデバイス（２５）における格納先アドレスを保持するとともに、前記実データのダイジェスト値に一致するダイジェスト値を保持しているか否かを判定する重複データ管理部（１０４）と、を備える。
【００２５】
また、重複データ管理部（１０４）は、前記実データのダイジェスト値に一致するダイジェスト値を保持している場合には、一致したダイジェスト値に相当するデータのストレージデバイス（２５）における格納先アドレスを重複排除制御部（１０３）に通知し、重複排除制御部（１０３）は、前記ファイルデータのうちの前記実データの部分を、通知された格納先アドレスに置き換えて前記スタブファイルを生成するようにしてもよい。
【００２６】
さらに、重複データ管理部（１０４）は、前記実データのダイジェスト値に一致するダイジェスト値を保持していない場合には、その旨を重複排除制御部（１０３）に通知し、通知を受けた重複排除制御部（１０３）は、前記実データをストレージデバイス（２５）に格納し、前記ファイルデータのうちの前記実データの部分を該格納先アドレスに置き換えて前記スタブファイルを生成するとともに、該格納先アドレスを重複データ管理部（１０４）に通知し、重複データ管理部（１０４）は、該格納先アドレスを前記実データのストレージデバイス（２５）における格納先アドレスとして保持するようにしてもよい。
【００２７】
また、重複排除制御部（１０３）は、スタブファイルの読み出し要求を受けると、該スタブファイルに含まれる格納先アドレスを参照して、ストレージデバイス（２５）から実データを読み出し、該スタブファイルにおける該格納先アドレスの部分を該実データに置き換えるとともに、該スタブファイルに含まれる識別子を削除して、該スタブファイルをもとのデータフォーマットのファイルデータに復元し、復元したファイルデータを要求元に送出するようにしてもよい。
【００２８】
本発明によると、複数のデータフォーマットに対応したデータ分割方法を採用した場合においても、ファイルデータ本体の代わりに保存するスタブファイルを用いた単一のデータ管理手法を用いることで、重複排除によって分割されたデータの基本的な管理手法を変更する必要がなくなる。したがって、対応するデータフォーマットを新たに拡充する場合にも、スタブファイルを用いた単一のデータ管理の枠組みの中で拡充することが可能となり、システムを大規模に改修する必要性がなくなる。
【００２９】
また、本発明によると、復元時に必要となる各種の情報をファイルごとにスタブファイルとして分散して管理することが可能となる。したがって、各種情報を集中管理した場合と異なり、集中管理を行う部分が単一故障点となり、すべてのデータが復元できなくなるような事態を回避することができる。また、分散管理により、データ読み出し時の負荷を軽減することも可能となる。
【００３０】
本発明において、下記の形態が可能である。
［形態１］
上記第１の視点に係るストレージ装置のとおりである。
［形態２］
前記重複データ管理部は、前記実データのダイジェスト値に一致するダイジェスト値を保持している場合には、一致したダイジェスト値に相当するデータの前記ストレージデバイスにおける格納先アドレスを前記重複排除制御部に通知し、前記重複排除制御部は、前記ファイルデータのうちの前記実データの部分を、通知された格納先アドレスに置き換えて前記スタブファイルを生成するようにしてもよい。
［形態３］
前記重複データ管理部は、前記実データのダイジェスト値に一致するダイジェスト値を保持していない場合には、その旨を前記重複排除制御部に通知し、前記重複排除制御部は、前記実データを前記ストレージデバイスに格納し、前記ファイルデータのうちの前記実データの部分を該格納先アドレスに置き換えて前記スタブファイルを生成するとともに、該格納先アドレスを前記重複データ管理部に通知し、前記重複データ管理部は、該格納先アドレスを前記実データの前記ストレージデバイスにおける格納先アドレスとして保持するようにしてもよい。
［形態４］
前記重複排除制御部は、スタブファイルの読み出し要求を受けると、該スタブファイルに含まれる格納先アドレスを参照して、前記ストレージデバイスから実データを読み出し、該スタブファイルにおける該格納先アドレスの部分を該実データに置き換えるとともに、該スタブファイルに含まれる識別子を削除して、該スタブファイルをもとのデータフォーマットのファイルデータに復元し、復元したファイルデータを要求元に送出するようにしてもよい。
［形態５］
上記のストレージ装置は、前記ストレージデバイスをさらに備えていてもよい。
［形態６］
上記第２の視点に係るストレージ方法のとおりである。
［形態７］
上記のストレージ方法において、前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致した場合には、前記スタブファイル生成工程において、前記ファイルデータのうちの前記実データの部分を、一致したダイジェスト値に相当するデータの前記ストレージデバイスにおける格納先アドレスに置き換えるようにしてもよい。
［形態８］
上記のストレージ方法において、前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致しない場合には、前記実データを前記ストレージデバイスに格納する工程と、
前記ファイルデータのうちの前記実データの部分を、前記実データの前記ストレージデバイスにおける格納先アドレスに置き換える工程と、を含んでいてもよい。
［形態９］
上記のストレージ方法において、スタブファイルの読み出し要求を受けると、該スタブファイルに含まれる格納先アドレスを参照して、前記ストレージデバイスから実データを読み出す工程と、
前記スタブファイルにおける前記格納先アドレスの部分を前記実データに置き換えるとともに、前記スタブファイルに含まれる識別子を削除して、前記スタブファイルをもとのデータフォーマットのファイルデータに復元する工程と、
復元したファイルデータを要求元に送出する工程と、を含んでいてもよい。
［形態１０］
上記第３の視点に係るプログラムのとおりである。
［形態１１］
上記プログラムにおいて、前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致した場合には、前記スタブファイル生成処理において、前記ファイルデータのうちの前記実データの部分を、一致したダイジェスト値に相当するデータの前記ストレージデバイスにおける格納先アドレスに置き換えるようにしてもよい。
［形態１２］
上記プログラムにおいて、前記実データのダイジェスト値と前記ストレージデバイスに格納されたデータのダイジェスト値とが一致しない場合には、前記実データを前記ストレージデバイスに格納する処理と、
前記ファイルデータのうちの前記実データの部分を、前記実データの前記ストレージデバイスにおける格納先アドレスに置き換える処理と、をコンピュータに実行させるようにしてもよい。
［形態１３］
上記プログラムにおいて、スタブファイルの読み出し要求を受けると、該スタブファイルに含まれる格納先アドレスを参照して、前記ストレージデバイスから実データを読み出す処理と、
前記スタブファイルにおける前記格納先アドレスの部分を前記実データに置き換えるとともに、前記スタブファイルに含まれる識別子を削除して、前記スタブファイルをもとのデータフォーマットのファイルデータに復元する処理と、
復元したファイルデータを要求元に送出する処理と、をコンピュータに実行させるようにしてもよい。
【００３１】
（実施形態）
本発明の一実施形態に係るストレージ装置について、図面を参照して説明する。図１は、本実施形態のストレージ装置を備えたストレージシステムの構成を一例として示すブロック図である。図１を参照すると、ストレージシステムは、クライアント１、ストレージ装置２０、および、管理クライアント３０を備えている。また、これらの装置は、ネットワーク１０を介して相互に接続されている。
【００３２】
クライアント１は、ネットワークファイルシステムクライアント２を備えている。クライアント１からストレージ装置２０へのネットワーク１０を介したデータアクセスは、ネットワークファイルシステムクライアント２を介して実行される。データアクセスは、例えば、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）、ＣＩＦＳ（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）等の業界標準のプロトコルを用いて実行される。
【００３３】
図１を参照すると、ストレージ装置２０は、ネットワークファイルシステムサーバ２１、フィルタ部２２、重複排除管理部２３、ファイルシステム２４、ストレージデバイス２５、および、管理コンソール２６を備えている。
【００３４】
ネットワークファイルシステムサーバ２１は、クライアント１のネットワークファイルシステムクライアント２からのデータアクセスリクエストに基づいて、ストレージ装置２０におけるデータの書き込み、読み出し等のデータ処理を仲介する。
【００３５】
フィルタ部２２は、データアクセスリクエストに含まれるデータの読み出しリクエストのうちの、重複排除格納されたファイルデータを対象とするリクエストを重複排除管理部２３へ転送する。フィルタ部２２は、重複排除格納されたファイルデータのリストを保持している。フィルタ部２２は、リクエストで指定された読み出し対象のファイルデータのエントリがリスト内に存在する場合には、重複排除管理部２３へリクエストを転送する。一方、読み出し処理以外のリクエスト、または、エントリがリスト内に存在しないファイルデータに対する読み出し処理のリクエストである場合には、フィルタ部２２は、リクエストをファイルシステム２４へ転送する。
【００３６】
重複排除管理部２３は、重複排除格納の管理および制御を行う。
【００３７】
ファイルシステム２４は、ストレージデバイス２５へのデータの格納管理、データの読み出し、書き込みを行う。
【００３８】
ストレージデバイス２５は、ＨＤＤ（ハードディスクドライブ）等の複数の物理ストレージメディアを備え、データを永続的に記憶する。
【００３９】
管理コンソール２６は、ストレージ装置２０の外部からコマンド命令を受け、重複排除管理部２３へ転送する。
【００４０】
管理クライアント３０は、ネットワーク１０を介してストレージ装置２０の管理コンソール２６にアクセスし、各種のコマンド実行命令を重複排除管理部２３へ送信する。
【００４１】
図２は、本実施形態に係るストレージ装置２０における重複排除管理部２３の構成を一例として示すブロック図である。図２を参照すると、重複排除管理部２３は、ファイルアクセス部１０１、コマンド実行部１０２、重複排除制御部１０３、および、重複データ管理部１０４を備えている。また、重複排除制御部１０３は、複数の（例えばＮ個の）重複排除部を備えている。
【００４２】
ファイルアクセス部１０１は、重複排除制御部１０３からの要求により、ファイルシステム２４からのファイルデータの読み出し、および、ファイルシステム２４へのファイルデータの書き込みを行う。
【００４３】
重複排除制御部１０３は、複数の重複排除制御部１〜Ｎを備え、各重複排除制御部は担当するファイルフォーマットに対してデータの重複排除処理とデータの復元処理を実行する。
【００４４】
重複データ管理部１０４は、ファイルシステム２４を介してストレージデバイス２５に格納されているデータのダイジェスト値と、データの格納先のアドレス情報と、データの重複回数をテーブル化して保存する。また、重複データ管理部１０４は、テーブル化されたデータを元に、重複排除格納処理対象のデータが、ファイルシステム２４を介してストレージデバイス２５に格納されているデータと重複しているか否かを判定する。
【００４５】
＜重複排除格納＞
まず、ストレージ装置２０が重複するデータを排除しつつデータ格納する手順について、図１ないし図６を参照して説明する。ここでは、一例として、重複排除することなくストレージデバイス２５に通常格納済みのデータを、管理クライアント３０からの管理コンソール２６を介した命令により、重複排除格納対象のファイルデータ群として指定するとともに、指定されたファイルを重複排除格納する場合について説明する。
【００４６】
管理クライアント３０は、管理コンソール２６を介して、重複排除格納対象となるファイルデータのデータ格納先パスが記載されたリストを、重複排除管理部２３のコマンド実行部１０２に登録し、重複排除格納の命令を発行する。コマンド実行部１０２は、重複排除格納の命令を受けて、登録されたファイルデータのリストを走査し、リストに登録されているファイルデータのエントリを順番に重複排除格納する。
【００４７】
コマンド実行部１０２は、ファイルデータのエントリに登録されている格納パスから、ファイル名に付与された拡張子を抽出し、重複排除制御部１０３に設けられたＮ個の重複排除部の中から、拡張子に対応した重複排除部を選択し、パス情報と重複排除格納命令を出す。
【００４８】
重複排除制御部１０３は、パス情報と重複排除命令に基づき、パス情報から、ファイルアクセス部１０１を介して、ファイルシステム２４で管理されているストレージデバイス２５に記憶されている該当ファイルデータを読み出す。
【００４９】
図３は、重複排除処理対象となるファイルデータの内部のデータ構成例を示す図である。ファイルデータは、図３に示すように、テキストデータ、画像データ、映像データのように、そのデータ単独で他のファイルデータにコピー可能なデータ、または、単独のファイルデータとして抽出可能なデータ（以下「実データ」という。）と、ファイル生成時にアプリケーションにより付与された、ファイルの表示制御等をコントロールするメタデータとを含む。重複排除制御部１０３は、このファイル内部の構成情報を拡張子ごとに解析するために、拡張子にそれぞれ対応するＮ個の重複排除部を備えている。
【００５０】
重複排除制御部１０３は、ファイルデータの構造を解析し、ファイルデータの中から実データのみをすべて抽出する。重複しているかどうかの判定は、実データに対して行われる。
【００５１】
重複排除制御部１０３は、データのダイジェスト値を算出する共通のハッシュ関数（ＳＨＡ−１、ＨＤ５等）を用いて、実データのダイジェスト値を算出し、ダイジェスト値を重複データ管理部１０４へ送信する。
【００５２】
重複データ管理部１０４は、重複データ管理部１０４で管理されているテーブルのエントリを走査し、ダイジェスト値と合致するエントリが存在するかどうかを確認する。
【００５３】
「ダイジェスト値と合致するエントリが存在しない場合」
合致するエントリが存在しない場合には、重複データ管理部１０４は、データの重複が存在しないとして前記テーブルに、前記ダイジェスト値を新しいエントリとして登録し、重複排除制御部１０３へ重複なしと応答する。
【００５４】
重複排除制御部１０３は、重複なしとの応答を受けた後、ダイジェスト値に相当する実データを、ファイルアクセス部１０１を介して、ファイルシステム２４へファイルデータとして新規作成し、実データをストレージデバイス２５へ格納する。
【００５５】
実データの格納後、重複排除制御部１０３は、ダイジェスト値とともに、ファイルシステム２４の格納先アドレス情報を重複データ管理部１０４へ送信する。
【００５６】
重複データ管理部１０４は、前記データを元に、対応するダイジェスト値のエントリへ格納先アドレス情報を登録し、重複回数を１に設定して、重複排除制御部１０３へエントリへの登録が完了したことを通知する。
【００５７】
「ダイジェスト値と合致するエントリが存在する場合」
一方、重複排除制御部１０３から送信されたダイジェスト値と合致するエントリが存在する場合には、重複データ管理部１０４は、データの重複が存在するとして、エントリに登録されているデータ格納先のアドレス情報を重複排除制御部１０３へ送信し、エントリの重複回数を１だけ増やす。
【００５８】
図４は、スタブファイルの内部のデータ構成例を示す図である。図４を参照すると、ファイルデータから抽出されたすべての実データについて、重複データ管理部１０４でのダイジェスト値の合致確認処理が終了した後、重複排除制御部１０３は、図３に示した構成のファイルデータの中から、実データ部分をファイルシステム２４の格納先アドレス情報に置き換えるとともに、ファイルデータの先頭に、対応する重複排除制御部１０３の重複排除部の識別子（例えば番号）を重複排除方式識別子として組み込み、この加工されたファイルデータ（すなわち、スタブファイル）をファイルシステム２４に格納されている重複排除対象となったファイルデータに上書きする。
【００５９】
また、重複排除制御部１０３は、スタブファイルのファイル識別子をフィルタ部２２へ登録する。ここで、ファイル識別子は、ストレージ装置２０のファイルシステム２４において、ファイルを一意に特定できる識別子とする。
【００６０】
以上の処理を、コマンド実行部１０２にリストとして登録されているすべてのファイルデータについて実行することで、重複排除格納処理が完了する。
【００６１】
「構造の解析ができないファイルデータを重複排除格納処理する場合」
重複排除制御部１０３が有するＮ個の重複排除部が構造を解析できないファイルデータである場合、例えば、対応する拡張子と合致していない場合、または、拡張子を持たないファイルデータである場合には、図５に示すように、データを先頭から固定長または可変長のブロックで分割して、重複排除格納する。この場合には、スタブデータは、図６に示すように、重複排除方式識別子と、データ格納先アドレス情報の集合とで構成される。
【００６２】
＜データ読み出し＞
次に、重複排除格納されたファイルデータを、クライアント１からの読み出しリクエストによって読み出す場合の手順について説明する。
【００６３】
まず、クライアント１は、ネットワークファイルシステムクライアント２を介して、ストレージ装置２０へ読み出し対象となるファイルの識別子と、読み出し要求を送信する。
【００６４】
ストレージ装置２０のネットワークファイルシステムサーバ２１は、ファイル識別子および読み出し要求に基づいて、フィルタ部２２を介して、ファイルシステム２４へファイル識別子とデータ読み出し要求を送信する。
【００６５】
フィルタ部２２は、ファイル識別子が重複排除格納されたファイルデータのリストに登録されているかどうかを走査する。
【００６６】
ファイル識別子がリストに登録されていない場合には、フィルタ部２２は、データ読み出し要求とファイル識別子をファイルシステム２４へ送信する。以降、一般的なファイルシステムからのデータ読み出し手続きを経て、ファイルデータが、クライアント１へ返送される。
【００６７】
一方、ファイル識別子がリストに登録されている場合には、フィルタ部２２は、データ読み出し要求とファイル識別子を重複排除管理部２３へ送信する。
【００６８】
重複排除管理部２３の重複排除制御部１０３は、データ読み出し要求とファイル識別子に基づいて、ファイルアクセス部１０１を介して、ファイルシステム２４から該当するファイルデータ（この場合には、重複排除格納対象であるためスタブファイルのデータに相当）を読み出す。
【００６９】
重複排除制御部１０３は、スタブファイルデータ内の重複排除方式識別子に応じて、Ｎ個の重複排除部の中から、対応する重複排除部を選択する。
【００７０】
重複排除制御部１０３は、図４または図６に相当するスタブファイル内のデータ構造を解析し、データ格納先アドレスを元に、スタブファイル内に記録されているすべてのファイルデータを、ファイルアクセス部１０１を介してファイルシステム２４から読み出す。
【００７１】
重複排除制御部１０３は、読み出したファイルデータを実データとして、スタブファイル内のデータ格納先アドレス部分のデータと置き換え、重複排除方式識別子を削除して、重複排除格納処理前のファイルデータとして復元する。また、重複排除制御部１０３は、復元したファイルデータをフィルタ部２２へ送信する。
【００７２】
フィルタ部２２は、ネットワークファイルシステムサーバ２１へファイルデータを送信する。ファイルデータは、ネットワーク１０を介してクライアント１へ送信される。以上により、ファイルデータの読み出し処理が完了する。
【００７３】
以上、図面を参照して、本発明の一実施形態について詳しく説明した。しかしながら、本発明を実施するための具体的な構成は上述の構成に限られることはなく、本発明の要旨を逸脱しない範囲内で様々な設計変更等が可能である。
【００７４】
例えば、ストレージ装置２０が内部にコンピュータシステムを有し、上述の各処理部の動作がプログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されている場合には、このプログラムをコンピュータが読み出して実行することによって、上記の処理を行うようにしてもよい。ここで、コンピュータ読み取り可能な記録媒体として、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等が挙げられる。また、ンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
【００７５】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、プログラムは、コンピュータシステムにすでに記録されているプログラムとの組み合わせで上述の機能を実現する、いわゆる差分ファイル（差分プログラム）であってもよい。
【００７６】
なお、上記の特許文献等の先行技術文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００７７】
１    クライアント
２    ネットワークファイルシステムクライアント
１０    ネットワーク
２０    ストレージ装置
２１    ネットワークファイルシステムサーバ
２２    フィルタ部
２３    重複排除管理部
２４    ファイルシステム
２５    ストレージデバイス
２６    管理コンソール
３０    管理クライアント
１０１    ファイルアクセス部
１０２    コマンド実行部
１０３    重複排除制御部
１０４    重複データ管理部
【図１】
0005751041.tif 000002
【図２】
0005751041.tif 000003
【図３】
0005751041.tif 000004
【図４】
0005751041.tif 000005
【図５】
0005751041.tif 000006
【図６】
0005751041.tif 000007