(57)【要約】【解決手段】データ編成手段およびデータストレージ資源を有するデータストレージシステムの機能を拡張する方法およびシステムであって、方法は、データストレージシステムのデータストレージ機能を、データストレージシステムのその他の機能から分離する段階と、データストレージ機能の少なくとも一部をインターセプトシステムに移行する段階とを備える。【選択図】図３
2013536514.tif 000002
【特許請求の範囲】
【請求項１】
データ編成手段とデータストレージ資源とを有するデータストレージシステムの機能を拡張する方法であって、
前記データストレージシステムのデータストレージ機能を前記データストレージシステムのその他の機能から分離する段階と、
前記データストレージ機能の少なくとも一部をインターセプトシステムに移行する段階と
を備える方法。
【請求項２】
前記インターセプトシステムは、相補的ストレージ資源を有する請求項１に記載の方法。
【請求項３】
前記分離する段階は、前記データ編成手段、前記データストレージ資源、および前記インターセプトシステムと通信するインターセプト手段を設けることにより実行され、
前記インターセプト手段は、ファイルシステムのオペレーションをインターセプトして、前記オペレーションの機能が、前記データストレージ資源によって取り扱われるべきか、または前記インターセプトシステムによって取り扱われるべきかを判断する
請求項１または２に記載の方法。
【請求項４】
前記インターセプト手段は、ファイルシステムのオペレーションを、前記オペレーションがコンテキストを保持しているうちに、かつ、前記オペレーションが前記データストレージ資源に適した独立した複数のオペレーションに分解される前に、インターセプトする請求項３に記載の方法。
【請求項５】
前記データストレージ機能の少なくとも別の一部は前記データストレージシステムに維持される請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記データストレージ機能の全てが、前記インターセプトシステムに移行される請求項１から４のいずれか１項に記載の方法。
【請求項７】
前記データストレージシステムは、ファイルシステム、キー値ストア、オブジェクトストア、およびネットワークプロトコルからなる群から選択される請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記データストレージシステムは、複数の外部インターフェース間で共有される請求項１から７のいずれか１項に記載の方法。
【請求項９】
前記インターセプト手段は、オペレーティングシステムのファシリティまたはファイルシステムのファシリティと協働するユーザスペースアプリケーションプログラムを含む請求項３または４に記載の方法。
【請求項１０】
前記インターセプト手段は、ネットワーク上で実行されるファイルシステムプロトコルプロキシアプリケーションを含む請求項３または４に記載の方法。
【請求項１１】
前記インターセプト手段は、オペレーティングシステムカーネルにおいてファイルシステムのオペレーションをインターセプトするミニフィルタードライバを含む請求項３または４に記載の方法。
【請求項１２】
前記インターセプトシステムは、自身の機能を実行するべく１つ以上の相補的ストレージ資源を使用し、前記１つ以上の相補的ストレージ資源は、前記データストレージ資源から独立している請求項３に記載の方法。
【請求項１３】
前記インターセプトシステムは、前記データストレージシステムの容量拡大を実行する請求項１から１２のいずれか１項に記載の方法。
【請求項１４】
前記インターセプトシステムは、前記データストレージ資源上のデータの１つ以上の特性を変更することにより、または、相補的ストレージ資源を使用することにより、前記データストレージシステムの性能を向上させる請求項１から１３のいずれか１項に記載の方法。
【請求項１５】
前記１つ以上の特性は、格納フォーマット、格納位置、および格納順序からなる群から選択される請求項１４に記載の方法。
【請求項１６】
前記インターセプトシステムにより重複排除（ｄｅ−ｄｕｐｌｉｃａｔｉｏｎ）を実行する段階をさらに備える請求項１から１５のいずれか１項に記載の方法。
【請求項１７】
前記インターセプトシステムによりデータポリモーフィズムを実行する段階をさらに備える請求項１から１６のいずれか１項に記載の方法。
【請求項１８】
前記インターセプトシステムによりデータのための独立アクセス制御メカニズムを実行する段階をさらに備える請求項１から１７のいずれか１項に記載の方法。
【請求項１９】
前記インターセプトシステムによりデータをバージョン化する段階をさらに備える請求項１から１８のいずれか１項に記載の方法。
【請求項２０】
前記データストレージシステムのキャッシングをシングルレベルまたはマルチレベルの一方で実行する段階をさらに備え、
前記実行する段階は、前記インターセプト手段によって実行される
請求項１２項に記載の方法。
【請求項２１】
前記相補的ストレージ資源は、データをキャッシュするべ通常使用されるオペレーティングシステムメモリキャッシュである請求項１２に記載の方法。
【請求項２２】
頻繁に使用されないデータを遠隔のデータストレージシステムにプッシュし、頻繁に使用されるデータを近傍のストレージ資源もしくはデータストレージシステムにプルすることにより、局所性最適化（ｌｏｃａｌｉｔｙ  ｏｐｔｉｍｉｚａｔｉｏｎ）を実行する段階をさらに備え、前記実行する段階は、前記インターセプト手段によって実行される請求項１２項に記載の方法。
【請求項２３】
前記遠隔のデータストレージシステムは、物理的に遠隔であるか、またはアクセスするのに時間がかかるか、のいずれかのデータストレージシステムを含む請求項２２に記載の方法。
【請求項２４】
現在のデータストレージシステムでは有効でないファイル名を、その他のデータストレージシステム上のデータを参照することにより、有効であるように見せるネームベースの仮想化（ｎａｍｅ  ｂａｓｅｄ  ｖｉｒｔｕａｌｉｚａｔｉｏｎ）を実行する段階をさらに備え、前記実行する段階は、前記インターセプト手段によって実行される請求項１２に記載の方法。
【請求項２５】
データバックアップおよびデータ複製の一方を実行する段階をさらに備え、前記実行する段階は、前記インターセプト手段によって実行される請求項１２に記載の方法。
【請求項２６】
データを同じ名前で異なるデータストレージシステムに物理的に配置できるようにすることを含むデータ仮想化（ｄａｔａ  ｖｉｒｔｕａｌｉｚａｔｉｏｎ）を実行する段階をさらに備え、前記実行する段階は、前記インターセプト手段によって実行される請求項１２に記載の方法。
【請求項２７】
前記データストレージ資源ではなく前記インターセプトシステムで、選択データに対する独特な機能を設ける段階をさらに備え、前記独特な機能は、性能特性、重複排除、データポリモーフィズム、独立アクセス制御メカニズム、バージョン化、キャッシング、ローカリティ、複製、およびデータ仮想化からなる群から選択される請求項１から２６のいずれか１項に記載の方法。
【請求項２８】
前記選択データは、ネーム、タイムスタンプ、サイズ、履歴情報、物理的情報、および文脈情報からなる群から選択される一つ以上とのメタデータパターンマッチングを採用する選択機構を用いて特定される請求項２７に記載の方法。
【請求項２９】
前記データ編成手段は、ファイルシステム、キー値ストア、およびデータベースからなる群から選択される請求項１から２８のいずれか１項に記載の方法。
【請求項３０】
前記相補的ストレージ資源は、スパースファイルである請求項１２に記載の方法。
【請求項３１】
データ編成手段およびデータストレージ資源を有するデータストレージシステムの機能を拡張するシステムであって、
前記データストレージシステムのデータストレージ機能を前記データストレージシステムのその他の機能から分離する分離手段と、
前記データストレージ機能の少なくとも一部をインターセプトシステムに移行する手段と
を備えるシステム。
【請求項３２】
前記インターセプトシステムは、相補的ストレージ資源を有する請求項３１に記載のシステム。
【請求項３３】
前記分離手段は、前記データ編成手段、前記データストレージ資源、および前記インターセプトシステムと通信するインターセプタを有し、
前記インターセプタは、ファイルシステムのオペレーションをインターセプトして、前記オペレーションの機能が、前記データストレージ資源によって取り扱われるべきか、または前記インターセプトシステムによって取り扱われるべきかを判断する
請求項３１または３２に記載のシステム。
【請求項３４】
前記インターセプタは、ファイルシステムのオペレーションを、前記オペレーションがコンテキストを保持しているうちに、かつ、前記オペレーションが前記データストレージ資源に適した独立した複数のオペレーションに分解される前に、インターセプトする請求項３３に記載のシステム。
【請求項３５】
前記データストレージ機能の少なくとも別の一部は、前記データストレージシステムに維持される請求項３１から３４のいずれか１項に記載のシステム。
【請求項３６】
前記データストレージ機能の全てが、前記インターセプトシステムに移行される請求項３１から３４のいずれか１項に記載のシステム。
【請求項３７】
前記データストレージシステムは、ファイルシステム、キー値ストア、オブジェクトストア、およびネットワークプロトコルからなる群から選択される請求項３１から３６のいずれか１項に記載のシステム。
【請求項３８】
前記データストレージシステムは、複数の外部インターフェース間で共有される請求項３１から３７のいずれか１項に記載のシステム。
【請求項３９】
前記インターセプタは、オペレーティングシステムのファシリティまたはファイルシステムのファシリティと協働するユーザスペースアプリケーションプログラムを含む請求項３３または３４に記載のシステム。
【請求項４０】
前記インターセプタは、ネットワーク上で実行されるファイルシステムプロトコルプロキシアプリケーションを含む請求項３３または３４に記載のシステム。
【請求項４１】
前記インターセプタは、オペレーティングシステムカーネルにおいてファイルシステムのオペレーションをインターセプトするミニフィルターまたはレガシーフィルターのドライバを含む請求項３３または３４に記載のシステム。
【請求項４２】
前記インターセプトシステムは、自身の機能を実行するべく一つ以上の相補的ストレージ資源を使用し、
前記一つ以上の相補的ストレージ資源は、前記データストレージ資源から独立している
請求項３３に記載のシステム。
【請求項４３】
前記インターセプトシステムは、前記データストレージシステムの容量拡大を実行する請求項３３に記載のシステム。
【請求項４４】
前記インターセプトシステムは、前記データストレージ資源上のデータの一つ以上の特性を変更することにより、前記データストレージシステムの性能を向上させる請求項３３に記載のシステム。
【請求項４５】
前記一つ以上の特性は、格納フォーマット、格納位置、および格納順序からなる群から選択される請求項４４に記載のシステム。
【請求項４６】
前記インターセプトシステムは、データの重複排除を実行する請求項３１から４５のいずれか１項に記載のシステム。
【請求項４７】
前記インターセプトシステムは、データのポリモーフィズムを実行する請求項３１から４６のいずれか１項に記載のシステム。
【請求項４８】
前記インターセプトシステムは、データのための独立アクセス制御メカニズムを実行する請求項３１から４７のいずれか１項に記載のシステム。
【請求項４９】
前記インターセプトシステムは、データのバージョン化を実行する請求項３１から４８のいずれか１項に記載のシステム。
【請求項５０】
前記インターセプタは、前記データストレージシステムのキャッシングをシングルレベルまたはマルチレベルの一方で実行する請求項３３または３４に記載のシステム。
【請求項５１】
前記相補的ストレージ資源は、データをキャッシュするべく通常使用されるオペレーティングシステムメモリキャッシュである請求項４２に記載のシステム。
【請求項５２】
前記インターセプタは、頻繁に使用されないデータを遠隔のデータストレージシステムにプッシュし、頻繁に使用されるデータを近傍のストレージ資源もしくはデータストレージシステムにプルすることにより、局所性最適化を実行する請求項３３または３４に記載のシステム。
【請求項５３】
前記遠隔のデータストレージシステムは、物理的に遠隔であるか、またはアクセスするのに時間がかかるか、のいずれかのデータストレージシステムを含む請求項５２に記載のシステム。
【請求項５４】
前記インターセプタは、現在のデータストレージシステムでは有効でないファイル名を、その他のデータストレージシステム上のデータを参照することにより、有効であるように見せるネームベースの仮想化を実行する請求項３３または３４に記載のシステム。
【請求項５５】
前記インターセプタは、データバックアップおよびデータ複製の一方を実行する請求項３３または３４に記載のシステム。
【請求項５６】
前記インターセプタは、データを同じ名前で異なるデータストレージシステムに物理的に配置できるようにすることを含むデータ仮想化を実行する請求項３３または３４に記載のシステム。
【請求項５７】
前記インターセプトシステムは、性能特性の向上、重複排除、データポリモーフィズム、独立アクセス制御メカニズム、バージョン化、キャッシング、ローカリティ、複製、およびデータ仮想化からなる群から選択される一つ以上を実行する請求項３１から５６のいずれか１項に記載のシステム。
【請求項５８】
前記データ編成手段は、ファイルシステム、キー値ストア、およびデータベースからなる群から選択される請求項３１から５７のいずれか１項に記載のシステム。
【請求項５９】
前記相補的ストレージ資源は、スパースファイルである請求項４２に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、データストレージシステムに関し、特に、データストレージシステムの機能を拡張する方法およびシステムに関する。
【０００２】
本願は、２０１０年８月２５日出願の米国仮出願第６１／３７６，９０５号の優先権を主張し、その内容の全体を、本明細書に、参照として組み込むものとする。
【背景技術】
【０００３】
コンピュータ上のファイルシステムによって、コンピュータのオペレーティングシステムは、通信し合う複数のプロセス間に、たとえこれらのプロセスが同時にアクティブ状態になくても、セキュリティプロトコルおよびネーミングプロトコルを強制する信頼された第三者として動作することが可能になる。ファイルシステムの機能の一つは、供給されたデータを、後に検索できるように分類・編成することである。この機能を実行するためには、ファイルシステムはストレージ資源を管理しなければならない。通常のストレージ資源は、連続的なバイトシーケンス、連続的なブロックシーケンス、または、オブジェクトストレージシステムではキー値ストアとして、ファイルシステムに現れる。
【０００４】
ファイルシステムは、通常、コンピュータ上のオペレーティングシステムの一部であるが、アプリケーションにおけるオペレーティングシステムの拡張として、または、クライアントファイルシステムプロトコルを用いてネットワーク接続によりアクセスされる純粋なアプリケーションとして存在する場合もある。本技術分野では、これらについての多様な例が知られている。いずれの場合も、ファイルシステムは、たとえばディスク等の特定の種類のストレージ資源を用いるよう設計され、そのストレージ資源に関連する制約を受ける。これらの制約は、たとえば、性能、容量、並列性、拡張性、物理的位置等に関わる。さらに、ファイルシステムは、格納するデータに対して、たとえば、暗号化、圧縮、複製、もしくは、文脈依存的処理（データポリモーフィズム）を含むその他の変換等の操作を適用するための機能を予め備えていない場合、ファイルシステム自身の機能という観点での制約も有する。本技術分野では、文脈依存的という用語は、一般的に、プログラムにおいて行っている操作により変化するプログラム特性を意味する。たとえば、文脈依存性によって、使用中の特定の特性についてのドキュメンテーションが促進され、データの文脈処理もしくは文脈依存的処理では、データの使用法もしくはデータの使用位置によって異なる処理がデータに実行されるようにすることができる。
【０００５】
これらの制約のいくつかに対処する従来のシステムおよび方法は、ファイルシステムによって使用される仮想ストレージ資源を生成する仮想装置を用いるものであった。ファイルシステムに存在し、かつ、ストレージ資源に渡されない利用可能な文脈（コンテキスト）が不足していることにより、このアプローチでは、データの文脈依存的処理を提供できず、また、実際にストレージ資源上に存在するデータに対してファイルシステムが行うデータのマッピングが１：１であること起因する制約、たとえば、全データストレージ容量の制約を取り除くことができない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
したがって、本発明の目的は、データストレージシステムの機能を拡張して、たとえば、データストレージシステムの機能を、文脈依存的データ処理を実行できるように拡張するための新規なシステムおよび方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明の一実施形態によると、データ編成手段とデータストレージ資源とを有するデータストレージシステムの機能を拡張する方法であって、データストレージシステムのデータストレージ機能をデータストレージシステムのその他の機能から分離する段階と、データストレージ機能の少なくとも一部をインターセプトシステムに移行する段階とを備える方法が提供される。
【０００８】
本発明の一つの観点によると、インターセプトシステムは、相補的ストレージ資源である。データ編成手段は、ファイルシステム、キー値ストア、およびデータベースからなる群から選択してよい。
【０００９】
本発明の別の観点によると、分離する段階は、データ編成手段、データストレージ資源、およびインターセプトシステムと通信するインターセプト手段を設けることにより実行され、インターセプト手段は、ファイルシステムのオペレーションをインターセプトして、オペレーションの機能が、データストレージ資源によって取り扱われるべきか、またはインターセプトシステムによって取り扱われるべきかを判断する。
【００１０】
本発明の別の観点によると、インターセプト手段は、ファイルシステムのオペレーションを、オペレーションがコンテキストを保持しているうちに、かつ、オペレーションがデータストレージ資源に適した独立した複数のオペレーションに分解される前に、インターセプトする。
【００１１】
本発明の別の観点によると、データストレージ機能の少なくとも別の一部はデータストレージシステムに維持される。本発明の別の観点によると、データストレージ機能の全てが、インターセプトシステムに移行される。
【００１２】
本発明の別の観点によると、データストレージシステムは、ファイルシステム、キー値ストア、オブジェクトストア、およびネットワークプロトコルからなる群から選択される。
【００１３】
本発明の別の観点によると、データストレージシステムは、複数の外部インターフェース間で共有される。
【００１４】
本発明の別の観点によると、インターセプト手段は、オペレーティングシステムのファシリティまたはファイルシステムのファシリティと協働するユーザスペースアプリケーションプログラムを含む。本発明の別の観点によると、インターセプト手段は、ネットワーク上で実行されるファイルシステムプロトコルプロキシアプリケーションを含む。本発明の別の観点によると、インターセプト手段は、オペレーティングシステムカーネルにおいてファイルシステムのオペレーションをインターセプトするミニフィルタードライバを含む。
【００１５】
本発明の別の観点によると、インターセプトシステムは、自身の機能を実行するべく１つ以上の相補的ストレージ資源を使用し、１つ以上の相補的ストレージ資源は、データストレージ資源から独立している。
【００１６】
本発明の別の観点によると、インターセプトシステムは、データストレージシステムの容量拡大を実行する。本発明の別の観点によると、インターセプトシステムは、データストレージ資源上のデータの１つ以上の特性を変更することにより、データストレージシステムの性能を向上させる。１つ以上の特性は、格納フォーマット、格納位置、および格納順序からなる群から好ましくは選択される。
【００１７】
本発明の別の観点によると、本方法は、インターセプトシステムにより重複排除（ｄｅ−ｄｕｐｌｉｃａｔｉｏｎ）を実行する段階をさらに備える。本発明の別の観点によると、本方法は、インターセプトシステムによりデータポリモーフィズムを実行する段階をさらに備える。本発明の別の観点によると、本方法は、インターセプトシステムによりデータのための独立アクセス制御メカニズムを実行する段階をさらに備える。本発明の別の観点によると、本方法は、インターセプトシステムによりデータをバージョン化する段階をさらに備える。
【００１８】
本発明の別の観点によると、本方法は、データストレージシステムのキャッシングをシングルレベルまたはマルチレベルの一方で実行する段階をさらに備え、実行する段階は、インターセプト手段によって実行される。本発明の別の観点によると、頻繁に使用されないデータを遠隔のデータストレージシステムにプッシュし、頻繁に使用されるデータを近傍のデータストレージシステムにプルすることにより、局所性最適化を実行する段階をさらに備え、実行する段階は、インターセプト手段によって実行される。遠隔のデータストレージシステムは、物理的に遠隔であるか、またはアクセスするのに時間がかかるか、のいずれかのデータストレージシステムを含む。
【００１９】
本発明の別の観点によると、本方法は、現在のデータストレージシステムでは有効でないファイル名を、その他のデータストレージシステム上のデータを参照することにより、有効であるように見せるネームベースの仮想化を実行する段階をさらに備え、実行する段階は、インターセプト手段によって実行される。
【００２０】
本発明の別の観点によると、本方法は、データバックアップおよびデータ複製を実行する段階をさらに備え、実行する段階は、インターセプト手段によって実行される。
【００２１】
本発明の別の観点によると、本方法は、データを同じ名前で異なるデータストレージシステムに物理的に配置できるようにすることを含むデータ仮想化を実行する段階をさらに備え、実行する段階は、インターセプト手段によって実行される。
【００２２】
本発明の別の観点によると、本方法は、データストレージ資源ではなくインターセプトシステムで、選択データに対する独特な機能を設ける段階をさらに備え、独特な機能は、性能特性、重複排除、データポリモーフィズム、独立アクセス制御メカニズム、バージョン化、キャッシング、ローカリティ、複製、およびデータ仮想化からなる群から選択される。選択データは、ネーム、タイムスタンプ、サイズ、履歴情報、物理的情報、および文脈情報からなる群から選択される一つ以上とのメタデータパターンマッチングを採用する選択機構を用いて特定される。
【００２３】
本発明の別の実施形態によると、データ編成手段およびデータストレージ資源を有するデータストレージシステムの機能を拡張するシステムであって、データストレージシステムのデータストレージ機能をデータストレージシステムのその他の機能から分離する分離手段と、データストレージ機能の少なくとも一部をインターセプトシステムに移行する手段とを備えるシステムが提供される。
【００２４】
本実施形態の別の観点によると、インターセプトシステムは、相補的ストレージ資源であってよい。
【００２５】
本実施形態の別の観点によると、分離手段は、データ編成手段、データストレージ資源、およびインターセプトシステムと通信するインターセプタを有し、インターセプタは、ファイルシステムのオペレーションをインターセプトして、オペレーションの機能が、データストレージ資源によって取り扱われるべきか、またはインターセプトシステムによって取り扱われるべきかを判断する。
【００２６】
本実施形態の別の観点によると、インターセプタは、ファイルシステムのオペレーションを、オペレーションがコンテキストを保持しているうちに、かつ、オペレーションがデータストレージ資源に適した独立した複数のオペレーションに分解される前に、インターセプトする。
【００２７】
本実施形態の別の観点によると、データストレージ機能の少なくとも別の一部は、データストレージシステムに維持される。または、データストレージ機能の全てが、インターセプトシステムに移行される。
【００２８】
本実施形態の別の観点によると、データストレージシステムは、ファイルシステム、キー値ストア、オブジェクトストア、およびネットワークプロトコルからなる群から選択される。
【００２９】
本実施形態の別の観点によると、データストレージシステムは、複数の外部インターフェース間で共有される。
【００３０】
本実施形態の別の観点によると、インターセプタは、オペレーティングシステムのファシリティまたはファイルシステムのファシリティと協働するユーザスペースアプリケーションプログラムを含む。
【００３１】
本実施形態の別の観点によると、インターセプタは、ネットワーク上で実行されるファイルシステムプロトコルプロキシアプリケーションを含む。
【００３２】
本実施形態の別の観点によると、インターセプタは、オペレーティングシステムカーネルにおいてファイルシステムのオペレーションをインターセプトするミニフィルタードライバを含む。
【００３３】
本実施形態の別の観点によると、インターセプトシステムは、自身の機能を実行するべく一つ以上の相補的ストレージ資源を使用し、相補的ストレージ資源は、データストレージ資源から独立している。
【００３４】
本実施形態の別の観点によると、インターセプトシステムは、データストレージシステムの容量拡大を実行する。
【００３５】
本実施形態の別の観点によると、インターセプトシステムは、データストレージ資源上のデータの一つ以上の特性を変更することにより、データストレージシステムの性能を向上させる。
【００３６】
本実施形態の別の観点によると、一つ以上の特性は、格納フォーマット、格納位置、および格納順序からなる群から選択される。
【００３７】
本実施形態の別の観点によると、インターセプトシステムは、データの重複排除を実行する。
【００３８】
本実施形態の別の観点によると、インターセプトシステムは、データのポリモーフィズムを実行する。
【００３９】
本実施形態の別の観点によると、インターセプトシステムは、データのための独立アクセス制御メカニズムを実行する。
【００４０】
本実施形態の別の観点によると、インターセプトシステムは、データのバージョン化を実行する。
【００４１】
本実施形態の別の観点によると、インターセプタは、データストレージシステムのキャッシングをシングルレベルまたはマルチレベルの一方で実行する。
【００４２】
本実施形態の別の観点によると、インターセプタは、頻繁に使用されないデータを遠隔のデータストレージシステムにプッシュし、頻繁に使用されるデータを近傍のデータストレージシステムにプルすることにより、局所性最適化を実行する。
【００４３】
本実施形態の別の観点によると、遠隔のデータストレージシステムは、物理的に遠隔であるか、またはアクセスするのに時間がかかるか、のいずれかのデータストレージシステムを含む。
【００４４】
本実施形態の別の観点によると、インターセプタは、現在のデータストレージシステムでは有効でないファイル名を、その他のデータストレージシステム上のデータを参照することにより、有効であるように見せるネームベースの仮想化を実行する。
【００４５】
本実施形態の別の観点によると、インターセプタは、データバックアップおよびデータ複製の一方を実行する。
【００４６】
本実施形態の別の観点によると、インターセプタは、データを同じ名前で異なるデータストレージシステムに物理的に配置できるようにすることを含むデータ仮想化を実行する。
【００４７】
本実施形態の別の観点によると、インターセプトシステムは、性能特性の向上、重複排除、データポリモーフィズム、独立アクセス制御メカニズム、バージョン化、キャッシング、ローカリティ、複製、およびデータ仮想化からなる群から選択される一つ以上を実行する。
【００４８】
本実施形態の別の観点によると、データ編成手段は、ファイルシステム、キー値ストア、およびデータベースからなる群から選択される。
【図面の簡単な説明】
【００４９】
添付の図面を参照して、実施形態を例示としてのみ記載する。
【００５０】
【図１】本発明に係るシステムのハイレベルアーキテクチャを示す。
【００５１】
【図２】本発明を用いてよい、および／または、実装してよいコンピュータシステムを示す。
【００５２】
【図３】本発明に係る方法の実施形態を示す。
【発明を実施するための形態】
【００５３】
本発明は、データに関連するあらゆる制約を変化させる新規なシステムおよび方法を提供し、これらの制約には、仮想ストレージ資源を用いて変化させることができる制約が含まれるが、これらに限定されない。本発明は、ファイルシステム以外の、提供する抽象化のレベルが主要インターフェースとしての実際のストレージ資源よりも高いデータストレージシステム、たとえば、データベースおよび特定オブジェクトデータベース、キー値ストア、所定のネットワークプロトコル、ならびに所定の共有データシステム等に、この機能を持たせることができる。
【００５４】
さらに、本発明では、データストレージシステムの従来の制約の全てを、ファイルシステム自身の協働なく、もしくは、ファイルシステム自身を変更することなく、変化させることができる。したがって、本発明では、新しいファイルシステムに完全にオーバーホールすることも、新しいファイルシステムを実装することも要求されず、新しいファイルシステムを開発することなく、既存のシステム、新旧システム間のインターフェース、および開発途中の新しいシステムで、本明細書に記載される利点および拡張機能が実装できるようになる。大まかに、本発明では、ファイルシステムのオペレーションを、文脈情報を含んだまま、ストレージ資源に適したオペレーションに分解される前に、選択的にインターセプトすることができるインターセプトシステムがファイルシステムに取り付けられる。つまり、ファイルシステムは、文脈的オペレーションと、コンピュータのオペレーティングシステムから供給される、それらを実行するための命令とを有する。ファイルシステムがストレージ資源とやり取りするとき、これらの文脈的オペレーションおよび命令は失われるが、それは、ファイルシステムとストレージ資源とのやり取りは、データの検索、格納、および分類（ｃａｔａｌｏｇｕｉｎｇ）に関するものだけであるからである。本発明に係るインターセプトシステムは、インターセプトシステムのオペレーションがファイルシステムに対して透明となるインターセプトポイントにおいて、ファイルシステムが必要とする機能を提供する。したがって、本発明では、データストレージシステムのストレージ機能をその他の機能（たとえば、ファイルネーミング、ロック、供給、セキュリティ等）から分離し、任意に別のコンポーネントに実際のストレージ機能を担わせることにより、データストレージ資源およびシステムの機能を拡張する方法およびシステムを提供する。
【００５５】
図１を参照すると、本発明の一実施形態が示されており、データストレージシステム１００、インターセプタ２００、およびインターセプトシステム３００が示されている。従来のデータストレージシステムにおいて様々に分布している機能をデータストレージシステム自身から分離し、データストレージシステムまたはインターセプトシステムによって実行されるように分割する好適な実施形態の詳細を以下に記載する。機能を分離し、その後にデータストレージシステム１００とインターセプトシステム３００との間で分散すること、特に、非協働環境におけるデータストレージシステム１００とインターセプトシステム３００との間で機能を分散することは、本技術分野では新規であると考えられる。しかし、本発明の好適な実施形態は、既存の非協働的データストレージシステムに対するアドオンメカニズムに関するが、協働的データストレージシステムに拡張性を持たせ、拡張強化された機能を提供するアーキテクチャ上の特性であってもよく、その例は、以下により詳細に記載される。
【００５６】
図３を参照すると、本発明の別の実施形態が示されており、データストレージシステムの機能を拡張するべく、ファイルシステムオペレーションをインターセプト３１５して、オペレーションの機能が、インターセプトシステムのデータストレージ資源により取り扱われるべきであるかを判断することにより、データストレージシステムのデータストレージ機能３１０をデータストレージシステムのその他の機能から分離する段階と、データストレージ機能の少なくとも一部をインターセプトシステムに移行３２０する段階とを備える方法が示されている。または、インターセプトされたデータストレージ機能は、データストレージ資源に存続３２５する。
【００５７】
本発明は、一般的に、コンピュータシステムのコンテキスト内で動作し、図２に模範的例を示す一般的なコンピュータシステムに対応付けられたデータストレージ機能の拡張を可能にする。図に示されるように、コンピュータシステム２０は、中央演算処理装置（「ＣＰＵ」）２４、ランダムアクセスメモリ（「ＲＡＭ」）２８、入出力（「Ｉ／Ｏ」）インターフェース３２、ネットワークインターフェース３６、不揮発性ストレージ４０、およびＣＰＵ２４をその他のコンポーネントと通信可能にするローカルバス４４を含む数多くの物理的および論理的なコンポーネントを備える。ＣＰＵ２４は、オペレーティングシステムおよび数多くのソフトウェアシステムを実行する。ＲＡＭ２８は、ＣＰＵ２４に対して比較的に応答性が良好な揮発性ストレージである。Ｉ／Ｏインターフェース３２は、キーボード、マウス等の１つ以上の装置からの入力を受信可能にし、ディスプレイおよび／またはスピーカ等の出力装置に情報を出力する。ネットワークインターフェース３６は、その他のシステムとの通信を可能にする。不揮発性ストレージ４０は、オペレーティングシステムおよびプログラムを格納する。コンピュータシステム２０の動作中、プログラムおよびデータは、不揮発性ストレージ４０から読み出され、実行が容易となるようにＲＡＭ２８に置かれる。
【００５８】
データストレージシステム１００は、本技術分野で一般的に知られており、本発明の目的においては、任意のマシン、デバイス、もしくは装置であって、所定の識別子（たとえば、ファイルネーム）を用いてデータを格納し、後に、その識別子を用いたデマンドに基づいて、データの少なくとも一部を読み出すことができる。データストレージシステム１００は、データ編成手段１０５を有しており、本明細書ではストレージ資源１１０と呼ばれる（図２では、不揮発性ストレージ４０として示される）、オペレーションから独立した、任意に物理的に組み込まれるマシンもしくはモジュールを用いて、ストレージ資源の特性に従った基本的（ｐｒｉｍｉｔｉｖｅ）な形態でデータを格納するが、データストレージシステムは、後に、ストレージ資源から格納されたデータを自身で読み出すことができる。データストレージシステム１００は、複数の外部インターフェース間で共有してよい。
【００５９】
データ編成手段１０５の代表的例としては、ファイルシステム、キー値ストア、データベース、ならびに、これらの上に組み合わせて階層化されるウェブキャッシュおよびページファイル等のその他のマシンが挙げられる。ストレージ資源１１０の代表的例としては、物理的なディスク、ＲＡＭ等のメモリ、ＲＡＩＤアレイ、穿孔テープ（ｐａｐｅｒ  ｔａｐｅ）、ドキュメント等が挙げられる。好適な実施形態の代表的例では、ストレージシステム１００は、Ｗｉｎｄｏｗｓ（登録商標）ＮＴＦＳファイルシステムであってよく、ストレージ資源は、ハードディスクドライブであってよい。
【００６０】
インターセプト手段２００は、ファイルシステムオペレーション等のデータオペレーションをインターセプトして処理するシステムである。本発明によると、インターセプト手段２００は、実質的に全てのストレージ資源と同様に、データオペレーションがコンテキストを利用可能であるうちに、しかし、オペレーションが、コンテキストを含まない、ストレージ資源に対してより特定的である適切なオペレーションに分解される前に、オペレーションをインターセプトする。コンテキストは、たとえば、データ要求のソースを含むアプリケーション情報、要求されているデータについての詳細、データの使用目的についての詳細、現在のデータオペレーションについての情報を必要とするその他の情報であってよい。
【００６１】
上記の代表的例によると、インターセプト手段２００は、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムカーネルの適切なレベルでファイルシステムオペレーションをインターセプトするよう設計もしくは構成されたミニフィルターもしくはレガシーフィルターのドライバである。このドライバは、別に実装してよく、もしくは、市販品を調達してよい。他の例では、インターセプト機構は、他のオペレーティング環境に構築された、ＦＵＳＥ（ユーザスペースのファイルシステム）等のアプリケーションレベルファイルシステムプロバイダを用いたファイルシステムスタック、ネットワークインターセプト用のＳＴＲＥＡＭＳドライバ、もしくは透明な物理的プロキシマシン等のファシリティ（これらに限定されない）によって設けることができる。インターセプト手段は、本明細書に記載される機能を組み込んだカスタム設計のソフトウェアモジュールであってもよい。インターセプタとも呼ばれるインターセプト手段２００は、ファイルシステムプロトコルプロキシアプリケーションであってもよい。
【００６２】
インターセプト手段２００は、データストレージシステム１００とインターセプトシステム３０との接点を管理する。インターセプトシステム３００は、データストレージシステムの所定のオペレーションに利害を有する。代表的例では、所定のオペレーションは、データを別のストレージ装置にリダイレクトするためのあらゆるデータ入出力であってよい。インターセプトシステム３００は、従来行われていたように、全入出力オペレーションを、データストレージシステム１００におけるより低い階層に渡すのではなく、水平にインターセプトシステム３００に渡すようインターセプト機構を設定する。
【００６３】
インターセプトされたオペレーションを受信した場合、インターセプトシステム３００は、多数の選択肢を有する。（ａ）インターセプトシステム３００は、自身でこのオペレーションを処理しない判断を下し、インターセプトがなかったものとして続行するようインターセプト手段２００に命令し、インターセプト手段がオペレーションをデータストレージシステム１００の低階層に渡すようにする。（ｂ）インターセプトシステム３００は、オペレーションは、データストレージシステム１００の低階層に渡す前に、修正する必要があると判断する。または、（ｃ）インターセプトシステム３００は、オペレーションは自身で処理するべきであると判断し、オペレーションに対する責任を引き継ぐ。この場合、インターセプト機構２００は、このオペレーションについて、エラー処理を含み、データストレージシステムの高階層および低階層に適切に応答しなければならない。
【００６４】
インターセプトシステム３００は、相補的ストレージ資源、マルチメディア拡張装置、マルチメディアサーバ、ホームサーバ、特定アプリケーション向けコントローラ、または、通常ストレージ資源により実行されるタスクを含む多様なタスクを実行可能な任意の同様なシステム等のハードウェア装置を任意の数だけ用いたものであってよい。
【００６５】
本発明によると、透明に、つまり、データストレージシステムによって認識されないように、インターセプトされたオペレーションをインターセプトシステムに引き継がせることができるインターセプト手段２００が提供される。これにより、既存のファイルシステムからデータストレージシステムを分離したとき、ファイルシステムを新しい機能で拡張することができるようになる。対照的に、ウィルス検査ソフトウェア、暗号化シム（ｅｎｃｒｙｐｔｉｏｎ  ｓｈｉｍ）等のなんらかのデータインターセプト機能を実行する従来の中間的プログラムは、機能を実行するべく元のデータストレージシステムを利用する。
【００６６】
さらに、本発明では、既存のデータストレージシステムにおいて、格納されたデータもしくはメタデータの位置をデータストレージシステムから分離しつつ、そのデータストレージシステムの元のセマンティクスが維持されるようにする。したがって、データストレージシステムは、すでに格納している既存のデータもしくはメタデータについての責任主体であり続けるが、インターセプトシステムは、既存のデータストレージシステムの外部セマンティクスが変更されない限り、自身のポリシーに従って、新データもしくはメタデータ、または修正データもしくはメタデータに対する責任を引き継ぐことができる。
【００６７】
本明細書の全体を通して記載される代表的例では、元のファイルシステムは、全メタデータの責任主体であり続け、インターセプトシステムは、いくつかまたは全部のデータに対する責任を引き継ぐ。具体的には、本発明では、ディレクトリを含むＮＴＦＳファイルシステムメタデータ、マスターファイルテーブル（ＭＦＴ）、および各ＭＦＴエントリの内容は、通常そうであるように、ファイルシステムのストレージ資源上で保持されるが、データ自体は、別個に操作して、元のデータストレージシステムの構成からは独立して格納することができる。
【００６８】
本発明では、たとえば、更新されないレガシーＮＴＦＳ実装品において、複製、重複排除、キャッシング、プーリング等の最新のファイルシステム機能、およびストレージ資源（ＲＡＩＤレベルの）によって通常提供される機能、ならびに新しい特殊な機能をサポートする手段等の数多くの利点が提供される。ファイルシステムの外部アプリケーションインターフェースでは、更新されていないセマンティクスが提示されるので、本発明では、既存のアプリケーションにとって互換的に、これらの機能を可能にする。つまり、ファイルシステムは、更新されないまま残り、更新されないままオペレーティングシステムにより利用可能である。
【００６９】
本発明の課題と同様の課題を解決しようとする従来の試みの例として、ホームユーザを対象とした簡易な拡張性を持つデータストレージシステムであるマイクロソフト（登録商標）社のＷｉｎｄｏｗｓ（登録商標）ホームサーバ（ＷＨＳ）プロジェクトがある。ＷＨＳは、当初、ファイルベースのパラダイムを用いてＷｉｎｄｏｗｓ（登録商標）システム上のＮＴＦＳを拡張するドライブエクステンダと呼ばれる機能を含んでおり、それは、つまり、全ファイルを別の目的地にあるＮＴＦＳファイルシステムに置いて、参照情報（「トゥームストーン」）を元のＮＴＦＳファイルシステムに残すことができる機能であった。このアプローチは、アプリケーションに対して完全に透明でなかった（残された参照情報が元のファイルと異なる挙動を示した）ので失敗し、事実、ドライブエクステンダが提供しようとした機能は、当初、仮想ブロックストレージ資源モデルを用いて、つまり、ファイルシステムに対してストレージ資源として現れるようにして、実装し直された。その後、この機能は、ＷＨＳから完全に取り除かれた。当初のドライブエクステンダアプローチのその他の例が本技術分野において、たとえば、階層的ストレージ管理システムにおいて知られている。他方、本発明では、ファイルシステムセマンティクスおよびメタデータは元のストレージ資源に残して、必要に応じて参照できるようにしつつ、データ自体は、元のデータストレージシステムの構成における制約を受けずに、独自に操作および格納できるようにする。
【００７０】
前段落の例は、ディスクストレージシステムに関して提示したものであるが、本発明のアプローチは、非協働的ファイルシステムを、キー値ストア、オブジェクトストア、多様なキャッシュ、データベース等のその他の非協働的データストレージシステムに拡張することにも適用してよい。データを分離して別々に配置する機能があると、もしくは、単に、元のデータストレージシステム設計に対する付加的処理としてであっても、既存のデータストレージシステムを用いて、数多くの新しい機能および対応する機能特性をアプリケーションに提供することができるようになる。本出願人の信ずるところでは、データストレージ機能をデータストレージシステムのその他の機能から分離することで、ファイルシステムおよびデータストレージシステム自体の制約を超えてデータストレージシステムの機能を拡張する方法およびシステムは従来技術によって開示されていない。
【００７１】
本発明に係るシステムおよび方法を組み込む利点の一つとして、性能が向上する可能性が挙げられる。リダイレクトデータは、元のデータストレージシステムが使用するものよりも高速なストレージ資源に格納することができ、もしくは、高速の読み出しおよび／または書き込みを可能にする方法で格納することができ、もしくはこれら両方の仕組みを同時に利用してよい。たとえば、ストレージシステムのメタデータは元のストレージ資源に保持し、データ自体は高速のストレージ資源に格納できるようにしてよい。この例では、インターセプト手段は、元のストレージ資源からメタデータを取得し、高速のストレージシステムからデータを取得するようファイルシステムに指示する。そして、情報およびデータがオペレーティングシステムによって処理されるべくファイルシステムに渡されると、あたかも元のストレージ資源から直接取得されたかのように、しかしより高速にデータは現れる。たとえば、高速性またはその他の改善特性を有する二次的ストレージ資源にデータをキャッシュすることによっても性能は向上され得る。
【００７２】
本発明の一実施形態では、リダイレクトデータは、高速なストレージ資源上でスパースファイルに格納される。スパースファイルとは、ストレージ資源においてデータが割り当てられない穴を含むファイルであって、データは仮想的に表現される。ファイルキャッシングシステムの問題の一つは、キャッシュされるファイルを空間効率的なフォーマットで表現することであり、通常、実際のデータを格納し、内部ファイル位置と、これらの位置についてのデータが格納される位置との間で変換を行うデータパッキングモジュールの生成が必要となる。必要に応じてデータをサブファイルレベルでキャッシュするべく、元のファイルからまだ取得されていないデータは、物理的にではなく、仮想的に表現する必要がある。スパースファイルを用いることで、スパースファイルをサポートするいかなるファイルシステムでもこの機能を提供することができるようになり、本発明においてこの機能を開発して提供する必要が免除される。本出願人の信ずるところでは、実ファイルのデータをキャッシュする目的でのスパースファイルの使用は新規であり、サブファイルキャッシュのこの内部機能を提供する目的での既存の機能の利用可能性の価値は、当業者には理解されるであろう。
【００７３】
本発明は、データ圧縮コンテキストで用いてもよく、元のデータストレージシステムの特性によって制限されない多様な方法でデータを圧縮することができる。たとえば、通常のストリーム圧縮または重複排除圧縮では、データは、システムのどこかにすでに存在している場合は、再び格納されない。この種類のデータ圧縮は、通常、従来技術の教示に基づくデータストレージシステムのレベルでは、直接的には可能でない。用いられるファイルシステムおよびデータストレージ資源システムに依らず、いかなるファイルシステムおよびデータストレージ資源システムにおいてもデータ圧縮を提供できることの際立った利点は、当業者には理解されるであろう。
【００７４】
別の可能な用途としては、データポリモーフィズムがあり、データは、それが使用されることとなっているコンテキストによって異なる表現で表すことができる。本技術分野では、多様なデータポリモーフィズムアプリケーションが知られているが、これらは、通常アプリケーションレベルで実行され、データストレージシステムによって制約される。本発明の方法によると、データは、インターセプトシステムで、つまり、データストレージシステムレベルで操作することができ、コンテキストを変更してファイルシステムに提示することができるので、オペレーティングシステムおよびアプリケーション資源、または変更は要求されない。
【００７５】
ドキュメント管理システムのコンテキストでは、本発明により、データストレージシステムのセマンティクスが維持され、かつ、古いバージョンのデータの取得を可能にする拡張セマンティクスが提供されるように、リダイレクトデータをバージョン化することができる。現在のシステムでは、古いバージョンのデータは、拡張セマンティクスを組み込むように更新されるか、古いデータが新しいデータから区別されるような方法で読み出される必要がある。
【００７６】
リダイレクトデータの入出力は、ソースデータの配置場所を、自身にとってのそのデータの時間関連的な有用性に基づいて管理する分散データストレージシステムへの入力であってもよい。繰り返すが、この点に関して、これらの特性は、データストレージシステムレベルで実装することができ、ファイルシステムにアクセスしているアプリケーションに対しては全く変更されずに提示される。
【００７７】
ネーム仮想化のコンテキストでは、データは、もはや、元のデータストレージシステムのストレージ資源に存在する必要はなく、ファイルシステムに対して適合させることなく、まったく異なる場所に配置することができる。データ仮想化も可能になり、一つのネーミングされたデータは、もはや、同一のストレージ資源に存在する必要はなく、複数のデータストレージシステムおよび／またはストレージ資源に分散させることができる。データ複製のコンテキストでは、リダイレクトデータの入出力によって、データの冗長性を保証するよう複製プロセスを追い込むことができる。
【００７８】
上記したデータおよびデータに対するオペレーションには、たとえば、仮想マシン実装の使用等の周知の実装例が、主にアプリケーションレベルで存在するが、これらの実装例の不利点を発明の背景の項で記載した。本発明は、これらの特性および機能をデータストレージシステムレベルで設けることを可能にし、したがって、これらの特性および機能をファイルシステムもしくはオペレーティングシステムに依存しないものにした。
【００７９】
以下の特許請求の範囲の趣旨から逸脱することなく、本発明の多様な改変および実装を行ってよく、たとえば、データストレージシステムのシングルレベルもしくはマルチレベルのキャッシングをインターセプタによって実行してよく、実行段階はインターセプト手段によって実行され、局所性最適化（ｌｏｃａｌｉｔｙ  ｏｐｔｉｍｉｚａｔｉｏｎ）は、頻繁に使用されないデータを遠隔のデータストレージシステムにプッシュし、頻繁に使用されるデータを近傍のデータストレージシステムにプルすることにより実行される。遠隔のデータストレージシステムは、物理的に遠隔であるか、アクセスするのに時間がかかるか、のいずれかのデータストレージシステムである。さらに、インターセプタによってネームベースの仮想化を実行することができ、他のデータストレージシステム上のデータを参照することにより、現在のデータストレージシステムでは有効でないファイル名を、有効であるように見せることができる。データのバックアップおよび複製も、インターセプタをファイルシステムと直接的に通信させることにより、可能である。データ仮想化もデータストレージシステムレベルで可能となり、データを同じ名前で、異なるデータストレージシステムに物理的に配置させることができ、実行段階は、インターセプタ手段により実行される。
【００８０】
本発明の別の観点によると、方法は、ストレージ資源ではなくインターセプトシステムにおいて、選択データに対する独特な機能を設ける段階を備える。独特な機能は、性能特性、重複排除、データポリモーフィズム、独立アクセス制御メカニズム、バージョン化、キャッシング、ローカリティ、複製、およびデータ仮想化からなる群から選択される。選択データは、好ましくは、ネーム、タイムスタンプ、サイズ、履歴情報、物理的情報、およびコンテキスト情報からなる群から選択される一つ以上とのメタデータパターンマッチングを採用する選択機構を用いて特定される。
【００８１】
上記の実施形態は、本発明の例として意図されており、上記の実施形態には、本明細書に添付される特許請求の範囲によってだけ規定される本発明の範囲から逸脱することなく、当業者によって、変更もしくは改変が付加されうる。
【図１】
2013536514.tif 000003
【図２】
2013536514.tif 000004
【図３】
2013536514.tif 000005
【国際調査報告】
2013536514.tif 000006
2013536514.tif 000007
2013536514.tif 000008
2013536514.tif 000009