JP5571544B2 - データ記憶リソース上のクライアント・データを管理するストレージ・マネージャにおけるデータ・フィルタリング方法およびコンピュータ・プログラム - Google Patents

データ記憶リソース上のクライアント・データを管理するストレージ・マネージャにおけるデータ・フィルタリング方法およびコンピュータ・プログラム Download PDF

Info

Publication number
JP5571544B2
JP5571544B2 JP2010500199A JP2010500199A JP5571544B2 JP 5571544 B2 JP5571544 B2 JP 5571544B2 JP 2010500199 A JP2010500199 A JP 2010500199A JP 2010500199 A JP2010500199 A JP 2010500199A JP 5571544 B2 JP5571544 B2 JP 5571544B2
Authority
JP
Japan
Prior art keywords
filter
data
data stream
storage manager
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010500199A
Other languages
English (en)
Other versions
JP2010522915A (ja
Inventor
チェルカール、ケヴィン、ジェームズ
レフラー、ジョナサン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010522915A publication Critical patent/JP2010522915A/ja
Application granted granted Critical
Publication of JP5571544B2 publication Critical patent/JP5571544B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • G11B20/0021Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier
    • G11B20/00485Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier
    • G11B20/00492Circuits for prevention of unauthorised reproduction or copying, e.g. piracy involving encryption or decryption of contents recorded on or reproduced from a record carrier characterised by a specific kind of data which is encrypted and recorded on and/or reproduced from the record carrier wherein content or user data is encrypted

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

本発明は、ソフトウェア・アプリケーションにデータ記憶サービスを提供するストレージ・マネージャに関する。詳細には、本発明は、ストレージ・マネージャ操作の一部として、暗号化、圧縮、その他のデータ変換などのフィルタリング機能を提供することに関する。
背景として説明すると、ストレージ・マネージャは、ソフトウェア・アプリケーション(バックアップ/リストア・プログラムまたはWebサーバなど)とデータ記憶リソース(磁気テープ・ドライブ、ディスク・ドライブ、記憶サブシステムなど)との間の仲介として動作するシステムである。ストレージ・マネージャは、アプリケーション・プログラムと統合するかまたはそれとは別に実現することができ、記憶のためのオブジェクトを受け入れ、その後、要求に応じてそのオブジェクトを取り出すインターフェースを提供する。ストレージ・マネージャが使用されたアプリケーションは、データベース・インストール、エンタープライズ・アプリケーション・データ、個別ワークステーション、Webコンテンツなどのバックアップ・イメージの管理を含む。
多くの場合、ストレージ・マネージャは、物理記憶装置に書き込み中またはそこから読み取り中のデータを圧縮または暗号化することにより、そのデータをフィルタリングする必要がある。圧縮または暗号化あるいはその両方のサポートを行う既存のストレージ・マネージャは、2通りの方法の1つでそれを実行する。最も一般的なものとしては、このようなフィルタリングは、ストレージ・マネージャ・プロダクト(product)自体に埋め込まれたアルゴリズムによって提供される。あまり一般的ではないものとしては、このようなフィルタリングは、それ自体のアルゴリズム(複数も可)を作成するオプションをストレージ・マネージャ・ユーザに与えるプログラミング・フック(programming hook)を提供することによってサポートされる。このオプションにより、ユーザは、それ自体でストレージ・マネージャの機能の多くを再実現することも必要になる。
第1の手法の欠点としては以下のものを含む。
●ユーザは、ストレージ・マネージャ・プロダクト内に構築される圧縮アルゴリズムまたは暗号化アルゴリズムあるいはその両方に限定される。
●一部のプロダクトは、暗号化をサポートするが、圧縮をサポートしないか、またはその逆である。
●一部のプロダクトは、弱い暗号化または不十分な圧縮のみをサポートする。
●ストレージ・マネージャ・ベンダは、組み込まれる圧縮アルゴリズムまたは暗号化アルゴリズムあるいはその両方を使用可能にするために顧客に余分に課金する場合がある。
●組み込みアルゴリズムにセキュリティ欠陥または有害なバグがあると判明した場合、顧客は、リスクに曝されることを回避するために直ちに異なる既製のアルゴリズムにスワップインすることができない。
●最新技術がすでに既製のスタンドアロン・プログラム内に存在している可能性がある場合でも、ストレージ・マネージャの顧客は、より良いアルゴリズムが発明されたときにベンダがその最新技術で埋め込みアルゴリズムを更新するのを待たなければならない。
●ベンダは、顧客が要望する特定の圧縮アルゴリズムまたは暗号化アルゴリズムを実現できない場合がある。
第2の手法の欠点としては以下のものを含む。
●ストレージ・マネージャ・プログラミング・フックは、ストレージ・マネージャが本来提供する機能の多くを再実現するために、顧客に対し負担を掛ける。ユーザは、典型的に、記憶のためのオブジェクトを受け入れ、これらのオブジェクトの位置を追跡し、それを物理記憶装置に書き込むかまたはそこから読み取るかあるいはその両方を行い、ストレージ・マネージャがどのような照会プロトコルを必要とする場合でも、その照会プロトコルに基づく要求に応じてそのオブジェクトを取り出すことができるプログラムを作成するとともに、所望の圧縮アルゴリズムまたは暗号化アルゴリズムあるいはその両方を作成しなければならない。この解決策では、ストレージ・マネージャは、本質的に、すべての作業をユーザに委任し、それ自体の機能はまったく提供しない。ストレージ・マネージャは、たいていは、処理のためにすべての記憶および取り出し要求をユーザ作成外部プログラムに転送する中空シェル(hollow shell)または「スタブ(stub)」として動作する。ストレージ・マネージャ自体は単に、それとそれを呼び出すアプリケーションとの間で渡される情報のバッファをアセンブルし、それを逆アセンブルするだけであり、インターフェースAPI(アプリケーション・プログラミング・インターフェース)用のスタブを提供するが、作業のほとんどをユーザのプログラムに委任する。
●この手法は、圧縮および暗号化をほとんどサポートしない。プログラミング・フックは存在するが、顧客はそれ自身に対し多大な追加の費用および努力を払って必要なサポートを作成する必要がある。
●プログラミング・フックを使用するが、自分の外部プログラムを十分にテストおよびデバッグしない顧客は、自分のデータが自分自身のカスタム・プログラムによって破損されていることまたはダウン・システムを復元するためにそれを必要とする場合などの臨界時にプログラム内のバグが記憶オブジェクトの取り出しを妨げることに気付く可能性がある。
●前の段落に記載したイベントが発生した場合、ストレージ・マネージャ・ベンダは、顧客自身のプログラミング・ミスに関する責任に曝されていることに気付く可能性がある。
したがって、上記の不利点を克服するストレージ・マネージャ・フィルタリング技法が必要である。必要とされているのは、ストレージ・マネージャを再設計したり、その機能をカスタム・プログラムに複写する必要なしに、ストレージ・マネージャ・フィルタを容易に実現することができる解決策である。新しく異なるフィルタを実現する機能を提供することは、さらに望ましいであろう。現在、ストレージ・マネージャ・フィルタリングについて最も一般的な要求は圧縮と暗号化である。しかし、可能性はより広範囲であることが提起され、状況によっては、英国単位とメートル単位との変換あるいはASCII(情報交換用米国標準コード)、EBCDIC(拡張2進化10進コード)、およびユニコードのような異なるコード・ページ間または文字セット間の変換など、他のデータ変換を提供することが有利である可能性もある。例として説明すると、この機能は、バックアップ・データが第1の文字フォーマットの第1のシステム(たとえば、EBCDIC文字を使用するメインフレーム・コンピュータ)によって生成され、そのデータが第2の文字フォーマットを使用する第2のシステム(たとえば、ASCII文字符号化を使用するワークステーション)に復元する必要がある場合に有用になるであるだろう。ストレージ・マネージャ・フィルタリングを使用できるもう1つの分野は監査証跡の生成である。このようなフィルタは、保管中または取り出し中のデータを点検し、管理のために監査情報を生成するために使用できるであろう。
データ記憶リソース上のクライアント・データを管理するストレージ・マネージャが、ストレージ・マネージャに組み込まれておらず、カスタム・プログラミング努力も必要としない多種多様なタイプのデータ・ストリーム・フィルタを利用する能力を有するという方法、システム、およびコンピュータ・プログラム(computer program product)により、上記の問題が解決され、当技術分野の進歩が得られる。ストレージ・マネージャ・ユーザは、ユーザのデータをフィルタリングするためにストレージ・マネージャに使用して欲しいデータ・ストリーム・フィルタを単に識別することにより、容易にフィルタリングを実現することができる。このフィルタは、ストレージ・マネージャの一部ではなく、クライアント・アプリケーションまたはストレージ・マネージャ・ドメイン知識(たとえば、クライアント・アプリケーションまたはストレージ・マネージャによって使用されるプロトコルまたはデータ・タイプの知識)を必要としない既製のプログラムにすることができる。ストレージ・マネージャは、要求されたデータ・ストリーム操作の一部として識別されたフィルタを呼び出し、データ・ストリーム・ソースからデータ・ストリームを受信する。データ・ストリームはフィルタに提供され、そのフィルタがデータ・ストリームをフィルタリングする。フィルタリング後、ストレージ・マネージャは、フィルタからデータ・ストリームを受信し、それをデータ・ストリーム宛先に送信する。
本明細書に開示された模範的な諸実施形態により、ストレージ・マネージャ・トランザクション要求、記憶リソース、アプリケーション、ホスト、ユーザ、記憶オブジェクト・カテゴリなどの属性の1つとして、フィルタ識別コードを受信することができる。フィルタリングの結果、データ・ストリームの変換が行われる場合もあれば、行われない場合もある。フィルタがデータ・ストリームを変換する場合、データ・ストリームに対して変換を実行する書き込みフィルタと、その変換を逆にする場合もあれば、逆にしない場合もある読み取りフィルタとを含むフィルタ対の一部としてフィルタを実現することができる。このような変換は、圧縮/圧縮解除フィルタリング、暗号化/暗号化解除フィルタリング、文字セット変換フィルタリングなどを含むことができる。フィルタがデータ・ストリームを変換しない場合、その代わりに、監査証跡など、データ・ストリームに関する情報を生成するように設計することができる。
フィルタはそれ自体の実行コンテキストで呼び出すことができ、データ・ストリームはプロセス間通信メカニズムを介してフィルタと交換することができる。このメカニズムは第1のパイプと第2のパイプを含むことができ、一方はデータ・ストリームをフィルタに提供するためのものであり、もう一方はフィルタリングされたデータ・ストリームをフィルタから受信するためのものである。フィルタは、そのフィルタが引数を処理するように適合されている場合に渡され、そうではない場合に抑制されるフィルタ引数によって呼び出すことができる。例として説明すると、フィルタは暗号化フィルタまたは暗号化解除フィルタにすることができ、フィルタ引数は暗号鍵の識別に関係する可能性がある。
他の一態様では、ストレージ・マネージャは、リモート・クライアントに代わる1つのサービスとしてデータ・ストリーム・フィルタリングによりデータ記憶リソース上のクライアント・データを管理するように適合される。フィルタリングを実現するために、ストレージ・マネージャは、リモート・クライアントまたは信頼された権限などのリモート・クライアントによって指定された位置から、クライアント選択フィルタのコピーまたはこのようなフィルタの識別コードを受信する。
さらに他の一態様では、ストレージ・マネージャは、必ずしもデータ・ストリーム・フィルタではないプラグインを利用するように適合される。このようなプラグインは、それが真のデータ・ストリーム・フィルタにならないように、クライアント・アプリケーション・データ・フォーマットまたはストレージ・マネージャのドメイン知識を有するカスタム・プログラムにすることができる。
本発明の上記その他の特徴および利点は、添付図面に例示される本発明の模範的な諸実施形態について以下に示すより詳細な説明から明らかになるであろう。
模範的なストレージ・マネージャ、クライアント・アプリケーション、およびデータ記憶リソースを示す機能ブロック図である。 図1に示されているコンポーネントについて可能な1つの実現例を示す機能ブロック図である。 図1のストレージ・マネージャの模範的な詳細を示す機能ブロック図である。 図3のストレージ・マネージャとフィルタとの間のプロセス間通信のための模範的なメカニズムを示す機能ブロック図である。 データ・ストリーム・フィルタリングを実行するために図1のストレージ・マネージャによって実現可能な模範的な諸ステップを示す流れ図である。 読み取りフィルタと書き込みフィルタの対と組み合わせて、図1のストレージ・マネージャを示す機能ブロック図である。 フィルタを呼び出すためにストレージ・マネージャ親プロセスによって実現可能な模範的な諸ステップを示す流れ図である。 ストレージ・マネージャ親プロセスによって作成されたフィルタ・クライアント・プロセスによって実現可能な模範的な諸ステップを示す流れ図である。 リモート・ストレージ・マネージャ・サービス環境における図1のストレージ・マネージャの模範的な実現例を示す機能ブロック図である。 図1のストレージ・マネージャのソフトウェア・バージョンを実現するためのシステムを提供するために使用可能な模範的なデータ処理ハードウェアを示す機能ブロック図である。 図1のストレージ・マネージャのコンピュータ・プログラム実現例で使用可能な模範的な記憶媒体の図表現である。
次に図面を参照すると、同様の参照番号は複数の図面のすべてにおいて同様の要素を示し、図1は、クライアント・アプリケーション4によって生成されたデータを保管し取り出すストレージ・マネージャ2を例示している。データ記憶モードでは、ストレージ・マネージャ2は、アプリケーション4からデータ・オブジェクトのストリーム(データ・ストリーム)を受信し、典型的には(必ずではないが)アーカイブ目的で、そのオブジェクトをデータ記憶リソース6に保管する。データ取り出しモードでは、ストレージ・マネージャ2は、前に保管したオブジェクトをデータ記憶リソース6から取り出し、それをアプリケーション4に返す。ストレージ・マネージャ・ロジックは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせで実現することができる。アプリケーション4は、そのデータがデータ記憶リソース6に置かれることを希望する任意のソフトウェア・アプリケーションを表すことができる。データ記憶リソース6は、1つまたは複数の磁気テープ・ドライブ、ディスク・ドライブ、記憶サブシステムなどを含む、任意の物理記憶装置またはシステムとして実現することができる。
次に図2を参照すると、本発明の範囲を制限せずに、データベース・システム8は、図1のコンポーネントを使用のために適合可能な1つの可能な環境を表している。システム8では、ストレージ・マネージャ2は磁気テープおよびディスク・ストレージ・マネージャ10によって例示され、アプリケーション4はデータベース・バックアップ/リストア・システム12によって例示され、データ記憶リソース6は磁気テープ・ドライブ・システム(図示せず)で動作可能な1組の磁気テープ記憶ボリューム14と、ディスク記憶ボリューム15によって例示される。バックアップ/リストア・システム12は、その記憶空間および論理ログ18を定期的にバックアップしリストアする必要があるデータベース・サーバ16に代わってデータ・バックアップおよびリストア・サービスを提供する。例としてのみ説明すると、バックアップ/リストア・システム12は、IBM(R)Informix(R)ONバー・バックアップおよびリストア・システムなどのプロダクト(product)を使用して、図2の環境で実現できるであろう。このプロダクトは、データベース・サーバ16を実現するために使用可能なIBM(R)Informix(R)ダイナミック・サーバ(IDS)などのデータベース・サーバに磁気テープおよびディスク・バックアップおよびリストア・サービスを提供する。データベース・サーバ16は、Informix(R)プロダクトの一部であるアーカイブAPI(アプリケーション・プログラミング・インターフェース)を介してバックアップおよびリストア要求をバックアップ/リストア・システム12に伝達することができる。これらの要求に応答して、バックアップ/リストア・システム12は、XBSA(X/オープン・バックアップ・サービスAPI)などのプロトコルを介して記憶および取り出し操作を実現するためにストレージ・マネージャ10を呼び出すであろう。ストレージ・マネージャ10は、IBM(R)Informix(R)ストレージ・マネージャ(ISM)などのプロダクトを使用して(本明細書に記載したフィルタリングをサポートするための適切な変更とともに)実現することができる。ストレージ・マネージャ10は、磁気テープ記憶ボリューム14およびディスク記憶ボリューム15を管理する。また、ストレージ・マネージャ10は、保管されたデータ・オブジェクトと、対応する磁気テープ記憶ボリューム14およびディスク記憶ボリューム15を相関させるバックアップおよびリストア操作のカタログ20をディスク記憶ボリューム15内に維持する。ストレージ・マネージャ10の諸機能としては、実際の磁気テープおよびディスク上のデータの書き込みおよび読み取り、どのデータがどの磁気テープまたはディスク上にあるかの追跡、カテゴリへのデータの割り当てがある。
データ・バックアップ操作は、データベース・サーバ16の管理者がバックアップ/リストア・システム12にバックアップ要求を発行することによって開始することができる。バックアップ/リストア・システム12は、どのデータをバックアップする必要があるかを判断し、ストレージ・マネージャ10に接続する。次にバックアップ/リストア・システム12は、記憶空間および論理ログ18から適切なデータを取り出し、バックアップ・オブジェクトのリストを構築し、それをストレージ・マネージャ10に渡す。ストレージ・マネージャ10は、データ・オブジェクト・リストから保存セットを作成し、その保存セット(1つまたは複数のデータ・オブジェクトを含む)を適切な磁気テープ記憶ボリューム14またはディスク記憶ボリューム15あるいはその両方に書き込む。次にストレージ・マネージャ10は、保存セットおよび記憶ボリュームのレコードをカタログ20に入力する。ストレージ・マネージャ10は、カタログ20を使用して、保存セットと、それらがバックアップされるボリュームを追跡する。
データ・リストア操作は、データベース・サーバ16の管理者がバックアップ/リストア・システム12にリストア要求を発行することによって開始することができる。バックアップ/リストア・システム12は、どのデータをリストアする必要があるかを判断し、ストレージ・マネージャ10に接続する。ストレージ・マネージャ10は、バックアップ/リストア・システム12によって要求された特定のリストア・オブジェクトを求めてカタログ20をサーチし、保存セット内のそのオフセットにそれぞれのリストア・オブジェクトをマッピングする。次にバックアップ/リストア・システム12は、ストレージ・マネージャからそのデータを取り出し、それをオブジェクトごとにデータベース・サーバ16に渡す。データベース・サーバ16は、そのデータを記憶空間および論理ログ18内の適切な位置(複数も可)に書き込む。
背景として上述したように、データ記憶リソースに保管中またはそこから取り出し中のデータをストレージ・マネージャがフィルタリングすることが望ましい場合がある。従来のストレージ・マネージャは、圧縮/圧縮解除および暗号化/暗号化解除など、限られたフィルタリング・オプションを提供する。同じく前述したように、このようなフィルタはストレージ・マネージャ・ロジックに埋め込まれていて変更または更新が難しいか、あるいはプログラミング・フックを使用してこのようなフィルタを作成し実現するには複雑なプログラミング努力が必要である。ストレージ・マネージャ2は、データ記憶リソース6に書き込み中またはそこから読み取り中のデータに適用可能な既製の圧縮、暗号化、またはその他のデータ変換プログラムを、ユーザが容易にかつ率直にプラグインできるメカニズムを提供することにより、この状況に改良を加えるものである。
図3は、この機能を実現するために使用可能なストレージ・マネージャ2の模範的な実現例を例示している。図示の通り、ストレージ・マネージャ2は、フィルタ321、322、・・・32nのグループから指定可能なフィルタ32を呼び出す役割を担うフィルタ呼び出しサブシステム30を実現する。これらのフィルタはストレージ・マネージャ2の一部ではない。その代わりに、これらのフィルタは、典型的に(個別の実行コンテキスト内にもかかわらず)ストレージ・マネージャも実現することになる、データ処理システムに常駐するスタンドアロン・プログラム(またはライブラリ)である。代わって、ストレージ・マネージャ2およびフィルタ32は、別々のシステム上で実行することができる。フィルタ識別インターフェース34は、要求されたデータ・ストリーム操作の一部として使用すべきフィルタ32をユーザが指定できるようにするものである。インターフェース34は、ストレージ・マネージャのユーザまたは管理者によって操作されるコマンド行またはグラフィカル・ユーザ・インターフェースなどを介して、ストレージ・マネージャ2へのローカルまたはリモート・アクセスをサポートするように実現することができる。記憶ファイル、メモリなどのフィルタ識別ストア36は、ストレージ・マネージャ2にフィルタ識別コードを保持するために使用することができる。以下に詳述するように、これは、記憶リソース6(図1を参照)、アプリケーション、ホスト、ユーザ、またはデータ・オブジェクト・カテゴリの属性などのオブジェクト属性としてフィルタ32を識別する能力をサポートする。このようなオブジェクトに関するその他の属性はストレージ・マネージャ2によって従来通り維持されるので(たとえば、データ・リソース属性)、フィルタ属性の追加は容易に実現することができる。このようにして、異なるフィルタ32を異なる記憶リソース6(図1を参照)、アプリケーション、ホスト、ユーザ、または記憶オブジェクト・カテゴリに関連付けることができる。この機能がない場合、ユーザまたはアプリケーションは、各データ・ストリーム・コマンドのパラメータとしてフィルタを識別しなければならないであろう。
データ・ストレージ・マネージャ2は、データ・ストリーム・レシーバ38とデータ・ストリーム・センダ40、ならびにフィルタ・ライタ42とフィルタ・リーダ44をさらに含む。第1の従来の通信インターフェース46はアプリケーション4(図1を参照)と通信する(たとえば、XBSAプロトコルを実現する)ために提供され、第2の従来の通信インターフェース48はデータ記憶リソース6(図1を参照)と通信する(たとえば、記憶装置固有プロトコルを実現する)ために提供される。
データ・ストリーム・レシーバ38、データ・ストリーム・センダ40、フィルタ・ライタ42、およびフィルタ・リーダ44の配置は、フィルタ32に対するデータ・ストリーム・ライタとデータ・ストリーム・リーダとの関係のように、図4に示されている。次に、上記のコンポーネントのアクションを含む、ストレージ・マネージャ2の動作について、図5の流れ図にさらに関連して説明する。図5のステップ50に示されているように、フィルタ32を利用するストレージ・マネージャ2の能力は、ユーザがフィルタ識別インターフェース34を介してストレージ・マネージャに対してフィルタを識別することから始まる。図5のステップ52では、ストレージ・マネージャ2はフィルタ識別コードをフィルタ識別ストア36に保管する。フィルタ識別の後またはフィルタ識別と同時に、ストレージ・マネージャ2は、バックアップまたはリストアなどのデータ・ストリーム操作を実行するよう要求されることになる。図5のステップ54では、フィルタ呼び出しサブシステム30はフィルタ識別ストア36を調べ、そこに識別されているフィルタ32を呼び出す。図5のステップ56では、データ・ストリーム・レシーバ38はデータ・ストリーム・ソースからデータ・ストリームを受信する。一部の操作(たとえば、データ・バックアップ)の場合、データ・ストリーム・ソースはアプリケーション4(図1を参照)になる。他の操作(たとえば、データ・リストア)の場合、データ・ストリーム・ソースはデータ記憶リソース6(図1を参照)になる。図5のステップ58では、データ・ストリーム・レシーバ38は着信データ・ストリームをフィルタ・ライタ42に渡す。フィルタ・ライタ42の機能は、フィルタリングのために識別されたフィルタ32にデータ・ストリームを提供することである。フィルタ32は個別の実行コンテキストで(または個別システム上で)実行されるので、フィルタ・ライタ42は、フィルタと通信するために、パイプP1およびP2の対(図4を参照)などの適切なプロセス間通信(IPC)メカニズムを使用することになる。ソケット(たとえば、フィルタ32が個別のデータ処理システム上で実行される場合)などの他のIPCメカニズムも使用できるであろう。図5のステップ60では、フィルタ・リーダ44は、フィルタリングを実行したフィルタ32からフィルタリングされたデータ・ストリームを受信する。フィルタ・リーダ44は、図5のステップ62でフィルタリングされたデータ・ストリームをデータ・ストリーム・センダ40に渡し、データ・ストリーム・センダ40はデータ・ストリームをデータ・ストリーム宛先に送信する。一部の操作(たとえば、データ・バックアップ)の場合、データ・ストリーム宛先はデータ記憶リソース6(図1を参照)になる。他の操作(たとえば、データ・リストア)の場合、データ・ストリーム宛先はアプリケーション4(図1を参照)になる。
多くの場合、フィルタ32を含むフィルタ・プログラムは、ストレージ・マネージャ2またはアプリケーション4によって使用されるプロトコルまたはデータ・タイプに対する意識(以下「ドメイン知識」という)を必要としないが、stdin(標準入力)からの読み取りおよびstdout(標準出力)への書き込みのみを必要とする。このようなプログラムは、UNIXオペレーティング・システムの出現以来周知のものになっている「フィルタ」の標準定義により生のデータ・ストリームを処理できる、真の「フィルタ」である。UNIXの「compress」および「uncompress」プログラムは、このタイプの操作をサポートする既製のプログラムの多くの例のうちの2つに過ぎない。ユーザは、暗号化および暗号化解除、異なる文字セットまたはコード・ページ間の変換、英国単位とメートル単位との変換など、他の所望のデータ変換を実現するフィルタ32を指定することもできる。監査などのタスクを実行するフィルタ32など、非データ変換フィルタ32も指定できるであろう。たとえば、このようなフィルタは、ユーザおよびユーザがアクセスしたデータを後で識別できるようにする個別ログに、ユーザのデータの一部および現行ユーザ名をコピーすることができるであろう。代わって、このようなフィルタは、ストレージ・マネージャ2によって処理中のデータ・ストリームを点検し、トランザクションに関するログ情報を作成できるであろう。多くのフィルタ・プログラムは既製のソフトウェアになるが、カスタム・フィルタ・プログラムを作成することもできる。このようなフィルタ・プログラムはUNIXの意味で真のデータ・ストリーム・フィルタになる可能性があるか、ストレージ・マネージャのプロトコルあるいはアプリケーションのデータ・タイプまたはフォーマットのドメイン知識を必要とするプラグインの性質の点ではそれ以上のものになる可能性があり、単なる入力ストリーム以外の引数を受け入れるかまたは必要とする場合もある。たとえば、一部のフィルタ・プログラムは引数によって呼び出すことができる。このような引数の1つは、保管中または取り出し中のオブジェクトの固有のID(オブジェクトID)になるであろう。フィルタ・プログラムは、この引数を無視することを選択する可能性もあれば、適合すると見なした引数を使用する可能性もある。顧客は、複数の鍵でデータを暗号化することを要求するポリシーを持っている可能性があるので、この機能は暗号化フィルタには有用なものになるであろう。このような場合、オブジェクトIDを使用して、問題のオブジェクトを暗号化(書き込みフィルタ)または暗号化解除(読み取りフィルタ)するための鍵を選択することができる。たとえば、モジュロnの演算を使用して、n通りの鍵から選択することができるであろう(key_id = object_id MOD n)。すべての暗号化フィルタ・プログラムが鍵選択のために必ずしもこのような引数を必要とするわけではないことに留意されたい。たとえば、暗号化フィルタは、それが必ず使用する単一鍵をハードコード化する可能性がある(しかし、これにより、そのフィルタ自体の保護が一般的な暗号鍵の保護と同じ程度に重要なものになる)。
データ変換に使用可能な2つのタイプのフィルタ・プログラムは、書き込みフィルタと読み取りフィルタである。書き込みフィルタは、ストレージ・マネージャ2がデータ記憶リソース6に書き込むデータに適用される。ユーザが書き込みを要求したデータは入力として書き込みフィルタに渡され、その後、書き込みフィルタの出力は物理記憶域に書き込まれる。読み取りフィルタは、ストレージ・マネージャ2がデータ記憶リソース6から読み取るデータに適用される。データは物理記憶域から読み取られ、入力として読み取りフィルタに渡され、その後、読み取りフィルタの出力はこのデータの取り出しを要求したユーザに返される。
望ましい場合、ある方向にデータを変換する書き込みフィルタ(たとえば、UNIXの「compress」)と、元の変換を逆にする読み取りフィルタ(たとえば、UNIXの「uncompress」)という2つのフィルタ32を対として定義することができる。このようなフィルタ対の一例は図6に示されているが、同図は読み取りフィルタ32Rと対になっている書き込みフィルタ32Wを例示している。変更せずにデータを通過させるだけのフィルタ32も定義できることに留意されたい。したがって、EBCDICデータをASCIIに変換する書き込みフィルタと、変換をまったく行わない読み取りフィルタとを対にすることも可能であるだろう。この結果、EBCDICのソース・データがASCIIで保管され、その後、変換でEBCDICに戻されるのではなく、ASCIIで取り出されることになるであろう。
上述の通り、ストレージ・マネージャ2の一実現例では、(たとえば、データ記憶リソース6の一部を表す)物理記憶装置の属性としてフィルタ32を定義することもできる。多くのストレージ・マネージャでは、データを保管し取り出すために使用する前に物理記憶装置の属性を記述しなければならないので、これは都合の良いものである。このような属性としては、(1)装置へのパス、(2)それがディスク装置であるか磁気テープ装置であるか、(3)装置内に保管する最大バイト数を含むことができる。ストレージ・マネージャ2は、2通りの新しい装置属性、すなわち、読み取りフィルタと書き込みフィルタを実現することができる。これらの属性は、以下のように、装置定義コマンド上のフラグとして指定することができる。
Figure 0005571544

このステートメントは、ストレージ・マネージャ10に対して物理記憶装置を定義するために使用することができ、装置およびその様々な属性を識別し、この装置に使用するための読み取りフィルタ・プログラムへのパスが続く−Frフラグと、書き込みフィルタ・プログラムへのパスが続く−Fwフラグとを含む。このステートメントは、ストレージ・マネージャを意味するための識別子「sm」から始まる。「p」フラグは記憶装置パス指定を意味する。「/disk1/ids/logbu」フィールドは記憶装置への実際のパスを識別する。「-tDISK」属性は、装置タイプがディスクであることを意味する。「-s 1000M」属性は装置のサイズを識別する。例としてのみ説明すると、−Frフラグによって識別された読み取りフィルタ・プログラムはUNIXの「uncompress」プログラムであると示されており、−Fwフラグによって識別された書き込みフィルタ・プログラムはUNIXの「compress」プログラムであると示されている。どちらのプログラムも通常は、UNIXファイル・システムの/usr/binディレクトリ内に位置する。ストレージ・マネージャ2は、上記のコマンドを受信すると、その装置属性を装置属性ファイルまたはメモリあるいはその両方に保管することができる。このファイルまたはメモリのうち、読み取りおよび書き込みフィルタ属性を保持する部分は、図3のフィルタ識別ストア36を表すことができる。したがって、ストレージ・マネージャ操作中にフィルタ呼び出しサブシステム30がフィルタ識別ストア36を調べ、データ記憶リソース6の特定の物理装置に書き込み中またはそこから読み取り中のデータにどのフィルタ(複数も可)が適用されるかを判断することができる。
上述の通り、フィルタ指定は物理装置レベルに限定されない。また、仮想デバイス・レベル、アプリケーション・レベル、ホスト・レベルなど、種々の細分性で指定することもできるであろう。フィルタ32は、ログ・ファイル、データ・ファイルなど、種々のカテゴリの記憶オブジェクトについて指定することもできる。同様に、フィルタ32は、種々のユーザまたはグループについて、あるいは任意の他のカテゴリ化方式に応じて、指定することができる。代わって、望ましい場合、フィルタ32は、ストレージ・マネージャ2がアプリケーション4によって呼び出されるたびに、データ保管または取り出しコマンドのパラメータとして指定できるであろう。
ストレージ・マネージャ2が、暗号化/暗号化回路フィルタに対し、暗号鍵を決定するための「-id <object_id>」引数などのフィルタ引数を渡すように設計される場合、この機能をサポートするフィルタ32を処理するための技法が必要になる可能性がある。理想的には、フィルタ32は、この引数を使用するかまたは無視することができるであろう。しかし、多くの既製のフィルタは、stdinから読み取り、stdoutに書き込むことが必要であり、その引数を認識しないという苦情を示す可能性がある。この問題を解決するための方法の1つは、この引数を処理するために既製のフィルタ・コンポーネントの周りに非常に小さいラッパ・スクリプトを作成することである。たとえば、データ・オブジェクトIDに基づく鍵選択を実現するために、暗号化フィルタについてこれを実行できるであろう。UNIXの「compress」および「uncompress」プログラムなどの他の既製のフィルタ・プログラムの場合、引数を無視し、単にデータをプログラムに渡すだけのラッパを作成することができる。このようなラッパ・スクリプトは、ストレージ・マネージャに対し、対応する既製のフィルタ・プログラムを直接定義するのではなく、ストレージ・マネージャ2に対しフィルタ32として定義され、実行可能なものになるであろう。
以下の例では、myCompress(UNIXのcompressをラップする)とmyUncompress(UNIXのuncompressをラップする)という1対の2行ラッパ・スクリプトにより、ストレージ・マネージャ2が渡すことができる引数を認識しない場合でも、UNIXコマンドをフィルタ32として使用することができる。これらのラッパは、引数を渡さずにUNIXフィルタ・プログラムを呼び出すだけである。
Figure 0005571544

上記のラッパは、以下のように記憶装置フィルタ構成で使用できるであろう(myCompressとmyUncompressが/usr/local/binにインストールされていると想定する)。
Figure 0005571544
フィルタ引数を処理しないフィルタ・プログラムを処理するためのもう1つの手法は、フィルタ呼び出しサブシステム30に対し、任意の引数をフィルタに渡すべきかどうかを示すフィルタを定義することになるであろう。所与のフィルタ定義について使用不可である場合、フィルタ呼び出しサブシステム30は、どの引数もフィルタ32に渡さず、それにより、いずれのラッパ・スクリプトもなしに使用すべき余分な引数(compress−uncompressの対など)を認識しないかまたは必要としない純粋な既製のフィルタを使用可能にするであろう。一例を以下に示す。
Figure 0005571544

この場合、-Fr_noargフラグは、これがどの引数も渡されない読み取りフィルタであることを示し、-Fw_noargフラグは、これがどの引数も渡されない書き込みフィルタであることを示す。次に、いかなるラッパも必要とせずに、既製のUNIX「compress」および「uncompress」コマンドが指定される。引数をフィルタに渡すべきかどうかを示すために、依然として上述の元の-Frおよび-Fwフラグをサポートできることに留意されたい。
もう1つの手法は任意の引数列を各フィルタ32に渡すことをサポートする。一例を以下に示す。
Figure 0005571544

この場合、-Fr フラグは読み取りフィルタを示し、-Fr_argフラグは、それが呼び出された場合に読み取りフィルタに渡すべき引数列を提供する。-Fwフラグは書き込みフィルタを示し、-Fw_argフラグは、それが呼び出された場合に書き込みフィルタに渡すべき引数列を提供する。
外部フィルタを呼び出すためにフィルタ呼び出しサブシステム30が使用可能な実現メカニズムとしては様々なものがある。次に、子プロセスを作成し、その入力ストリームおよび出力ストリームをリダイレクトするためにUNIXオペレーティング・システム機能を利用する一例について説明する。この例は本発明の範囲(または特許請求の範囲)を任意の特定の実現例に限定するためのものではなく、単にストレージ・マネージャ2を設計できる方法の1つを例示するためのものであることを理解されたい。また、この例は、本発明の範囲(または特許請求の範囲)をUNIXオペレーティング・システムに限定するためのものでもない。他のオペレーティング・システムは、子プロセスまたはスレッドを作成し、その入力ストリームおよび出力ストリームをリダイレクトするための同様の機能を有する。たとえば、Linuxは、以下に示す模範的な実現例も使用できるUNIXのフレーバ(flavor)である。移植(porting)すれば、同じ手法をWindowsオペレーティング・システム環境などで使用できるであろう。
模範的な実現例により、物理記憶域に書き込むためのデータを有するストレージ・マネージャ2のUNIXバージョン内のプロセスは、以下のように、まずそれを書き込みフィルタを通過させることができる。
●in_pipeおよびout_pipe(たとえば、図4のパイプP1およびP2)という2つのパイプを作成する。
●子フィルタを実行するために子プロセスをフォークする。
●アプリケーション4からデータを受信する。
●in_pipe(P1)の入力端にデータを書き込む。
●out_pipe(P2)の出力端からフィルタリング結果を読み取る。
●データ記憶リソース6にフィルタリング結果を書き込む。
子プロセスは、以下のように、フィルタならびにサービスin_pipeおよびout_pipeを実行する。
●stdinを閉じ、それをin_pipe(P1)の出力端で置き換える。
●stdoutを閉じ、それをout_pipe(P2)の入力端で置き換える。
●(UNIXでは、execvp()などを使用して)フィルタ・コマンドを実行する。
●ファイルの終わりに達したときに終了する(入力ストリームの終わり)。
上記の実現例では、親ストレージ・マネージャ・プロセスがin_pipe(P1)の入力端に未処理データを書き込み、これを子フィルタ・プロセスはin_pipeの出力端から読み取る(フィルタは必ずstdinから読み取るからであり、子はin_pipeの出力端になるようにこれをリダイレクトしている)。子フィルタ・プロセスはout_pipe(P2)の入力端に処理結果を書き込む(フィルタは必ずstdoutに書き込むからであり、子はout_pipeの入力端になるようにこれをリダイレクトしている)。最後に、親ストレージ・マネージャ・プロセスは、out_pipeの出力端から処理済みデータを取り出し、それを物理記憶域に書き込む。
読み取り処理は、逆のやり方で実行することができる。したがって、物理記憶域からデータを読み取らなければならないストレージ・マネージャ2のUNIXバージョン内のプロセスは、以下のように、まずそれを読み取りフィルタを通過させることができる。
●in_pipeおよびout_pipe(たとえば、図4のパイプP1およびP2)という2つのパイプを作成する。
●子フィルタを実行するために子プロセスをフォークする。
●データ記憶リソース6からデータを読み取る。
●in_pipe(P1)の入力端にデータを書き込む。
●out_pipe(P2)の出力端からフィルタリング結果を読み取る。
●アプリケーション4にフィルタリングされたデータを渡す。
子プロセスは、以下のように、フィルタならびにサービスin_pipeおよびout_pipeを実行する。
●stdinを閉じ、それをin_pipe(P1)の出力端で置き換える。
●stdoutを閉じ、それをout_pipe(P2)の入力端で置き換える。
●(UNIXでは、execvp()などを使用して)フィルタ・コマンドを実行する。
●ファイルの終わりに達したときに終了する(入力ストリームの終わり)。
上記の実現例では、親ストレージ・マネージャ・プロセスが物理記憶域から未処理データを読み取り、それをin_pipe(P1)の入力端に書き込み、これを子フィルタ・プロセスはin_pipeの出力端から読み取る(フィルタは必ずstdinから読み取るからであり、子はin_pipeの出力端になるようにこれをリダイレクトしている)。子フィルタ・プロセスはout_pipe(P2)の入力端に処理結果を書き込む(フィルタは必ずstdoutに書き込むからであり、子はout_pipeの入力端になるようにこれをリダイレクトしている)。最後に、親ストレージ・マネージャ・プロセスは、out_pipeの出力端から処理済みデータを取り出す。
図7および図8は、上記のアクションが実行されるときのストレージ・マネージャ親プロセスおよび子フィルタ・プロセスの動作をそれぞれ表す流れ図である。図7のステップ70は、親プロセスがin_pipe(P1)およびout_pipe(P2)を作成することを表している。図7のステップ72は、親プロセスが子フィルタを実行するために子プロセスをフォークすることを表している。図7のステップ74は、親プロセスがin_pipeの入力端にデータを書き込むことを表している。図7のステップ76は、親プロセスがout_pipeの出力端からデータを読み取ることを表している。図8のステップ78は、子プロセスがstdinを閉じ、それをin_pipe(P1)の出力端で置き換えることを表している。図8のステップ80は、子プロセスがstdoutを閉じ、それをout_pipe(P2)の入力端で置き換えることを表している。図8のステップ82は、子プロセスがフィルタ・コマンドを実行することを表している。図8のステップ84は、入力ストリームの終わりに達したときに子プロセスが終了することを表している。
次に図9を参照すると、ネットワーク94を介してリモート・クライアント92に代わってストレージ・マネージャ・サービスを提供するためにストレージ・マネージャがサーバ・サイト90で動作する、ストレージ・マネージャ2の他の模範的な実現例が示されている。アプリケーション4およびデータ記憶リソース6は、サーバ・サイト90に位置することもできる。代わって、これらのコンポーネントは、他の場所の構外に位置することもできるであろう。クライアント92は、(たとえば、フィルタ受信インターフェース97を介して)クライアントのデータをフィルタリングする際に使用するためにそれがストレージ・マネージャ2に提供するフィルタ96を維持できるであろう。したがって、ストレージ・マネージャ2は、サーバ・サイト90でローカルにフィルタ96のコピーを実現することになるであろう。代わって、望ましい場合、クライアント92は、フィルタ96の唯一のコピーを維持し、(たとえば、フィルタ識別インターフェース34を介して)それをストレージ・マネージャ2に対して識別するだけであろう。その場合、ストレージ・マネージャ2は、リモート・プロシージャ・コールを使用してフィルタ96を呼び出し、好ましくはセキュア接続(たとえば、SSL(セキュア・ソケット・レイヤ))を使用して、ネットワーク94を越えてフィルタにデータを渡すことができるであろう。信頼できないサード・パーティ・フィルタの使用を禁止するポリシーをサーバ・サイト90が持っている場合、クライアント92は、信頼できるフィルタ権限によって維持されたリポジトリ98に常駐するフィルタを(ストレージ・マネージャ2に対して)指定できるであろう。
したがって、ストレージ・マネージャにより、データ・ストリームを処理するためのフィルタを実現できる技法が開示されている。開示された技法は、以下のものを含み、従来のストレージ・マネージャでは見られないいくつかの利点を提供することが認識されるであろう。
●ユーザは、ストレージ・マネージャ・ベンダによって提供される圧縮、暗号化、またはその他のフィルタに限定されない。
●ユーザは、組み込まれた圧縮アルゴリズムまたは暗号化アルゴリズムあるいはその両方を使用可能にするために余分な料金をストレージ・マネージャ・ベンダに支払う必要がない。
●ユーザは、ストレージ・マネージャ・ベンダがパッチ・リリースを発行するのを待つ必要なしに、セキュリティ欠陥または有害なバグがあると判明したフィルタから迅速にスワップアウトし、同様の機能を提供する他の既製のコンポーネントにスワップインすることができる。
●ユーザは、ストレージ・マネージャ・ベンダからの次のリリースを待たずに、最新のフィルタリング技術にアップグレードすることができる。
●ユーザは、自分自身の長いプログラムを作成したり、フィルタを使用していない場合にストレージ・マネージャが提供する機能を再実現する必要がない。
●この手法は、顧客にとって、プログラミング・フックよりかなり安全である。というのは、顧客は自分自身で大きい記憶管理ソフトウェアを作成する必要がないからであり、これは、生産に展開される前にソフトウェアが適切にテストされデバッグされることを保証するために所定の位置にプロセスを備えていない可能性がある。
●プログラミング・フック手法を実現するストレージ・マネージャ・ベンダの潜在的な責任を回避することができる。
●顧客は、フィルタが総称的にプラグ可能であるために、より創造的になることができ、これにより監査証跡生成など、単なる圧縮または暗号化あるいはその両方以上に多くの問題を解決できることに気付く可能性がある。
上記の概念は、必要な機能を実行するようデータ処理システムを制御する際に使用するために1つまたは複数の機械使用可能媒体によってプログラミング・ロジックが提供される、データ処理システム、機械で実現される方法、コンピュータ・プログラムのいずれかで様々に実施可能であることが認識されるであろう。データ処理システムおよび機械で実現される方法に関して説明すると、図10は、ストレージ・マネージャ2がソフトウェアとして実現された場合に使用可能な模範的なハードウェア環境100を例示している。ハードウェア環境100は、データ処理コアを提供するCPUまたはその他のデータ処理リソース102およびメイン・メモリ104と、表示モニタ107に視覚出力情報を生成するためのグラフィックス・カード106と、周辺記憶装置108と、その他の周辺装置110と、上記の諸要素を相互接続するバス・インフラストラクチャ112とを含む。ストレージ・マネージャ2は、メイン・メモリ104にロードすることができる。アプリケーション4(図1を参照)も、同じハードウェア・プラットフォーム上で実行される場合、メモリ104にロードすることができるであろう。記憶装置108は、フィルタ識別ストア36用の持続記憶域として使用することができる。フィルタ情報のコピーもメモリ104に維持できるであろう。その他のデータ・ソースは、周辺装置110によって提供されるI/O(入出力)リソースを介してアクセスすることができ、その周辺装置は、USBバス・コントローラ、SCSIディスク・コントローラ、ネットワーク・インターフェース・カードを含むことができる。モニタ107は、管理情報を提示するために使用することができる。
機械可読媒体およびプログラミング・ロジックを有するコンピュータ・プログラムに関して説明すると、プログラミング・ロジックを保管するための模範的なデータ記憶媒体は図11の参照番号200によって示されている。媒体200は、コンパクト・ディスク読み取り専用メモリ(CD−ROM)ディスク、書き換え可能コンパクト・ディスク(CD−R/W)ディスク、およびデジタル多用途ディスク(DVD)など、従来通り商用ソフトウェア販売に使用されるタイプのポータブル光学記憶ディスクとして示されている。このような媒体は、単独で、または必要な機能を取り入れた他のソフトウェア・プログラムとともに、本発明のプログラミング・ロジックを保管することができる。プログラミング・ロジックは、ポータブル磁気媒体(フレキシブル・ディスク、フラッシュ・メモリ・スティックなど)、あるいはドライブ・システムと結合された磁気媒体(たとえば、ディスク・ドライブ)、あるいはランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、またはその他の半導体もしくはソリッド・ステート・メモリなど、データ処理プラットフォームに取り入れられた媒体によって提供することもできるであろう。より大まかにいえば、この媒体は、任意の電子、磁気、光学、電磁、赤外線、半導体のシステムまたは装置またはデバイス、伝送または伝搬媒体(ネットワークなど)または信号、あるいはデータ処理システム、コンピュータ、またはその他の命令実行システム、装置、もしくはデバイスによって使用するためにあるいはそれらに関連して使用するためにプログラミング・ロジックを収容、保管、伝達、伝搬、または伝送することができるその他のエンティティを含むことができるであろう。
本発明の様々な実施形態について説明してきたが、本発明により多くの変形および代替実施形態を実現できることは明らかになるはずである。したがって、本発明は、特許請求の範囲の精神によるものおよびそれと同等のものを除き、けっして限定されないことは言うまでもない。

Claims (6)

  1. データ記憶リソース上のクライアント・データを管理するように適合されたストレージ・マネージャにおけるデータ・フィルタリング方法であって、
    データ・ストリーム・フィルタの識別コードを受信するステップであって、前記フィルタが前記ストレージ・マネージャの一部ではない、スタンドアロン・プログラムまたはライブラリであるステップと、
    記憶リソース、アプリケーション、ホスト、またはデータ・オブジェクト・カテゴリのうちの1つまたは複数のオブジェクト属性として前記フィルタの識別コードを保管するステップと、
    前記フィルタの識別コードと関連付けられた前記オブジェクト属性である前記記憶リソース、前記アプリケーション、前記ホスト、または前記データ・オブジェクト・カテゴリのうちの1つまたは複数を指定することにより、要求されたデータ・ストリーム操作の一部として、当該指定された前記オブジェクト属性に関連付けられた前記フィルタを呼び出すステップと、
    データ・ストリーム・ソースからデータ・ストリームを受信するステップと、
    呼び出された前記フィルタに受信された前記データ・ストリームを提供するステップと、
    データ・ストリーム宛先に前記フィルタによってフィルタリングされた前記データ・ストリームを送信するステップと、を含み、
    前記フィルタリングの結果、前記データ・ストリームの変換が行われ、前記フィルタが、前記データ・ストリームに対して変換を実行する書き込みフィルタと、前記変換を逆にする場合もあれば、逆にしない場合もある読み取りフィルタとを含むフィルタ対からなる、データ・フィルタリング方法。
  2. 前記フィルタがそれ自体の実行コンテキストで呼び出され、前記データ・ストリームがプロセス間通信メカニズムを介して前記フィルタに提供され、そこから受信され、
    前記プロセス間通信メカニズムが、前記データ・ストリームを前記フィルタに提供するための第1のパイプと、前記データ・ストリームを前記フィルタから受信するための第2のパイプとを含む、請求項1記載の方法。
  3. 前記フィルタがフィルタ引数を処理するように適合されている場合に前記フィルタに渡され、前記フィルタが前記フィルタ引数を処理するように適合されていない場合に抑制され、前記フィルタ引数によって前記フィルタが呼び出され、
    前記フィルタが暗号化フィルタまたは暗号化解除フィルタのうちの1つであり、前記フィルタ引数が暗号鍵の識別に関係する、請求項1記載の方法。
  4. 前記フィルタリングの結果、前記データ・ストリームを変換せずに、前記データ・ストリームに関する情報が生成され、前記フィルタリングが監査証跡の生成を含む、請求項1記載の方法。
  5. 請求項1ないしのいずれかに記載の方法のすべてのステップを実行するために適合された手段を含むシステム。
  6. コンピュータ・システムに、請求項1ないしのいずれかに記載の方法のすべてのステップを実行させるコンピュータ・プログラム。
JP2010500199A 2007-03-26 2008-03-17 データ記憶リソース上のクライアント・データを管理するストレージ・マネージャにおけるデータ・フィルタリング方法およびコンピュータ・プログラム Active JP5571544B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/690,943 US7962638B2 (en) 2007-03-26 2007-03-26 Data stream filters and plug-ins for storage managers
US11/690,943 2007-03-26
PCT/EP2008/053144 WO2008116771A1 (en) 2007-03-26 2008-03-17 Data stream filters and plug-ins for storage managers

Publications (2)

Publication Number Publication Date
JP2010522915A JP2010522915A (ja) 2010-07-08
JP5571544B2 true JP5571544B2 (ja) 2014-08-13

Family

ID=39361461

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010500199A Active JP5571544B2 (ja) 2007-03-26 2008-03-17 データ記憶リソース上のクライアント・データを管理するストレージ・マネージャにおけるデータ・フィルタリング方法およびコンピュータ・プログラム

Country Status (7)

Country Link
US (2) US7962638B2 (ja)
EP (1) EP2145247A1 (ja)
JP (1) JP5571544B2 (ja)
KR (1) KR20090106476A (ja)
CN (1) CN101646995B (ja)
CA (1) CA2669896C (ja)
WO (1) WO2008116771A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7962638B2 (en) * 2007-03-26 2011-06-14 International Business Machines Corporation Data stream filters and plug-ins for storage managers
EP2156271A4 (en) 2007-05-09 2011-09-07 Lexisnexis Group SYSTEMS AND METHODS FOR ANALYZING DOCUMENTS
US20090109031A1 (en) 2007-10-25 2009-04-30 Calvin Duane A Method of and System for Finding Physical Locations of Servers
US8458232B1 (en) * 2009-03-31 2013-06-04 Symantec Corporation Systems and methods for identifying data files based on community data
US20100293283A1 (en) * 2009-05-12 2010-11-18 Henrique Andrade On-demand marshalling and de-marshalling of network messages
US9836460B2 (en) 2010-06-11 2017-12-05 Lexisnexis, A Division Of Reed Elsevier Inc. Systems and methods for analyzing patent-related documents
US9558247B2 (en) 2010-08-31 2017-01-31 Samsung Electronics Co., Ltd. Storage device and stream filtering method thereof
US20120054420A1 (en) 2010-08-31 2012-03-01 Jeonguk Kang Storage device and stream filtering method thereof
CN102279711B (zh) * 2011-08-09 2014-01-01 青岛海信网络科技股份有限公司 基于插件的实时数据存储方法及装置
GB2495558A (en) * 2011-10-14 2013-04-17 Saas Document Solutions Ltd Access policy for stored content
US9201739B1 (en) * 2012-12-10 2015-12-01 Emc Corporation Method and system for a database management system add-in for third party backup and restore applications
JP5674974B2 (ja) * 2013-07-08 2015-02-25 株式会社エクサ 圧縮データ処理プログラム、圧縮データ編集プログラム
US9397832B2 (en) * 2014-08-27 2016-07-19 International Business Machines Corporation Shared data encryption and confidentiality
US11461010B2 (en) * 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device
KR102381343B1 (ko) 2015-07-27 2022-03-31 삼성전자주식회사 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US10565209B2 (en) * 2015-12-01 2020-02-18 International Business Machines Corporation Injecting outlier values
JP2017174111A (ja) * 2016-03-23 2017-09-28 株式会社東芝 車載ゲートウェイ装置、蓄積制御方法およびプログラム
US10212120B2 (en) 2016-04-21 2019-02-19 Confluent, Inc. Distributed message queue stream verification
US10547672B2 (en) 2017-04-27 2020-01-28 Microsoft Technology Licensing, Llc Anti-flapping system for autoscaling resources in cloud networks
US10540198B2 (en) * 2017-07-01 2020-01-21 Intel Corporation Technologies for memory replay prevention using compressive encryption
US11042366B2 (en) * 2019-05-14 2021-06-22 International Business Machines Corporation Managing software programs
CN112988274B (zh) * 2021-03-25 2023-01-31 北京滴普科技有限公司 微服务网关插件动态加载方法、装置、系统及其存储介质
CN113595887B (zh) * 2021-09-09 2023-03-24 北京天空卫士网络安全技术有限公司 一种邮件系统中的流量控制方法和装置
CN115563634B (zh) * 2022-09-29 2023-08-15 北京海泰方圆科技股份有限公司 一种检索方法、装置、设备及介质

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418478B1 (en) * 1997-10-30 2002-07-09 Commvault Systems, Inc. Pipelined high speed data transfer mechanism
US6292844B1 (en) * 1998-02-12 2001-09-18 Sony Corporation Media storage device with embedded data filter for dynamically processing data during read and write operations
US6615166B1 (en) * 1999-05-27 2003-09-02 Accenture Llp Prioritizing components of a network framework required for implementation of technology
US6536037B1 (en) * 1999-05-27 2003-03-18 Accenture Llp Identification of redundancies and omissions among components of a web based architecture
US6735310B1 (en) * 1999-09-17 2004-05-11 International Business Machines Corporation Technique of password encryption and decryption for user authentication in a federated content management system
AU2001243218A1 (en) * 2000-02-24 2001-09-03 Shin-Ping Liu Content distribution system
US20020049812A1 (en) * 2000-09-05 2002-04-25 Yuval Nahon System and method for directing shared data
US20020107962A1 (en) * 2000-11-07 2002-08-08 Richter Roger K. Single chassis network endpoint system with network processor for load balancing
US20020107971A1 (en) * 2000-11-07 2002-08-08 Bailey Brian W. Network transport accelerator
CN1355654A (zh) * 2000-11-28 2002-06-26 北京华诺信息技术有限公司 有线电视网的加密系统
CA2364645A1 (en) * 2001-03-07 2002-09-07 Spektor Leonid Query filter for querying a multitude of databases
EP1244310A1 (en) * 2001-03-21 2002-09-25 Canal+ Technologies Société Anonyme Data referencing system
JP3683839B2 (ja) * 2001-08-27 2005-08-17 株式会社東京三菱銀行 情報中継装置、情報処理システム及び記録媒体
US6946715B2 (en) * 2003-02-19 2005-09-20 Micron Technology, Inc. CMOS image sensor and method of fabrication
NO20023860D0 (no) 2002-08-14 2002-08-14 Sospita As Fremgangsmåte for å generere og prosessere dataströmmer som inneholder krypterte og dekrypterte data
EP1546822A4 (en) * 2002-09-18 2008-07-02 Netezza Corp ASYMMETRIC DATA STREAMING ARCHITECTURE WITH AN AUTONOMOUS AND ASYNCHRONOUS JOB PROCESSING UNIT
US8292811B2 (en) * 2003-03-20 2012-10-23 Siemens Medical Solutions Usa, Inc. Advanced application framework system and method for use with a diagnostic medical ultrasound streaming application
US20050049924A1 (en) * 2003-08-27 2005-03-03 Debettencourt Jason Techniques for use with application monitoring to obtain transaction data
US8528003B2 (en) * 2003-10-27 2013-09-03 Yahoo! Inc. Communication among browser windows
US7287048B2 (en) * 2004-01-07 2007-10-23 International Business Machines Corporation Transparent archiving
US20050172143A1 (en) * 2004-01-30 2005-08-04 Fearnley Daniel P. Method and apparatus for secure data storage
JP4205603B2 (ja) * 2004-02-02 2009-01-07 日本電気株式会社 可変長マルチフォーマット変換装置及び方法並びにこれを用いたファイル転送システム
JP4164467B2 (ja) * 2004-03-26 2008-10-15 キヤノン株式会社 画像処理装置、画像処理制御方法、及びプログラム
US20080176209A1 (en) * 2004-04-08 2008-07-24 Biomatrica, Inc. Integration of sample storage and sample management for life science
US20060099567A1 (en) * 2004-04-08 2006-05-11 Biomatrica, Inc. Integration of sample storage and sample management for life science
US7493349B2 (en) * 2004-07-09 2009-02-17 International Business Machines Corporation Method and system for performing a backup by querying a backup infrastructure
US20060047713A1 (en) * 2004-08-03 2006-03-02 Wisdomforce Technologies, Inc. System and method for database replication by interception of in memory transactional change records
JP4403940B2 (ja) 2004-10-04 2010-01-27 株式会社日立製作所 ネットワーク機能を備えたハードディスク装置
US20060089967A1 (en) * 2004-10-26 2006-04-27 Zend Technologies Ltd. Secure multi-user web hosting
US7536291B1 (en) * 2004-11-08 2009-05-19 Commvault Systems, Inc. System and method to support simulated storage operations
JP4389772B2 (ja) * 2004-12-03 2009-12-24 日本電気株式会社 計算機システムおよびバックアップ方法
WO2006063057A2 (en) * 2004-12-06 2006-06-15 Agilix Labs Applying multiple compression algorithms in a database system
US20060190616A1 (en) * 2005-02-04 2006-08-24 John Mayerhofer System and method for aggregating, delivering and sharing audio content
US7937579B2 (en) * 2005-03-16 2011-05-03 Dt Labs, Llc System, method and apparatus for electronically protecting data and digital content
US7801871B2 (en) * 2005-08-09 2010-09-21 Nexsan Technologies Canada Inc. Data archiving system
US8112396B2 (en) * 2006-06-07 2012-02-07 Emc Corporation Backup and recovery of integrated linked databases
US7877603B2 (en) * 2006-09-07 2011-01-25 International Business Machines Corporation Configuring a storage drive to communicate with encryption and key managers
US7882354B2 (en) * 2006-09-07 2011-02-01 International Business Machines Corporation Use of device driver to function as a proxy between an encryption capable tape drive and a key manager
US7660959B2 (en) * 2006-09-28 2010-02-09 International Business Machines Corporation Managing encryption for volumes in storage pools
US7962638B2 (en) * 2007-03-26 2011-06-14 International Business Machines Corporation Data stream filters and plug-ins for storage managers

Also Published As

Publication number Publication date
CA2669896A1 (en) 2008-10-02
US20110145599A1 (en) 2011-06-16
WO2008116771A1 (en) 2008-10-02
US9152345B2 (en) 2015-10-06
US7962638B2 (en) 2011-06-14
CN101646995B (zh) 2011-06-29
US20080243979A1 (en) 2008-10-02
KR20090106476A (ko) 2009-10-09
JP2010522915A (ja) 2010-07-08
EP2145247A1 (en) 2010-01-20
CN101646995A (zh) 2010-02-10
CA2669896C (en) 2016-10-11

Similar Documents

Publication Publication Date Title
JP5571544B2 (ja) データ記憶リソース上のクライアント・データを管理するストレージ・マネージャにおけるデータ・フィルタリング方法およびコンピュータ・プログラム
JP7388803B2 (ja) セキュア・ゲストのセキュア鍵をハードウェア・セキュリティ・モジュールに結びつけること
US8620817B2 (en) Method and system for creating license management in software applications
US10613938B2 (en) Data virtualization using copy data tokens
US7974985B1 (en) System and method for duplication of virtual server files
US20130332901A1 (en) Designing and cross-configuring software
US8327096B2 (en) Method and system for efficient image customization for mass deployment
JP5483116B2 (ja) メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム
JP2005535019A (ja) ストレージ管理ブリッジ
JP2011076605A (ja) 仮想マシン・イメージの実行方法及びシステム
JP2005004778A (ja) ネットワーク化環境においてシャドウコピーを開示する機構
US10691659B2 (en) Integrating copy data tokens with source code repositories
US20180129665A1 (en) Storing and retrieving restricted datasets to and from a cloud network with non-restricted datasets
CN111090498B (zh) 虚拟机启动方法、装置、计算机可读存储介质及电子设备
US10089166B2 (en) Configuring and utilizing call-home systems
WO2010052999A1 (ja) メンテナンスシステム、メンテナンス方法、及びメンテナンス用プログラム
US9317538B1 (en) Methods for generating data sets using catalog entries
US20230325095A1 (en) Cloud Based Interface for Protecting and Managing Data Stored in Networked Storage Systems
JP2023500813A (ja) 構成を使用したコンピューティング環境内のソフトウェア・アプリケーションの検出のための自動的な技術
US11150992B2 (en) File entity relationship management and source product backup
US11495262B1 (en) Duplexing data from multiple file systems onto a shared tape
US11836545B1 (en) Integration of cloud entities in an event architecture
US10824748B2 (en) Method and system for low overhead control/status handshake for remote shared file server
US20240061725A1 (en) Regeneration audit log
US20220214946A1 (en) Provider-agnostic management of backup data stored on a cloud-based object storage

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130108

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20130328

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130401

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131119

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140317

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140324

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140610

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20140610

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140626

R150 Certificate of patent or registration of utility model

Ref document number: 5571544

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150