【手続補正書】
【提出日】平成18年6月28日(2006.6.28)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【書類名】        明細書
【発明の名称】    データストレージシステム及びデータ抽出方法
【特許請求の範囲】
【請求項１】
それぞれデータを記憶する第１及び第２のストレージシステムを有し、前記第１及び第２のストレージシステムがネットワークを介して互いに結合されたデータストレージシステムにおいて、
ユーザが所望のデータを抽出するために操作する端末と、
前記第２のストレージシステムが記憶するデータの複製を前記第１のストレージシステム内に作成する複製作成部と、
前記端末を介してユーザから与えられたデータ抽出要求に応じて、前記第２のストレージシステムが記憶する前記データから抽出すべきデータを、前記第１のストレージシステム内に作成された前記第２のストレージシステムが記憶する前記データの複製から抽出する情報抽出部と
を備えることを特徴とするデータストレージシステム。
【請求項２】
前記複製作成部は、
前記第１及び第２のストレージシステムにそれぞれ実装され、前記第２のストレージシステムから前記第１のストレージシステムへの前記データのコピー処理を管理するミラーリングプログラムを含む
ことを特徴とする請求項１に記載のデータストレージシステム。
【請求項３】
前記第２のストレージシステムから前記第１のストレージシステムにコピーされる前記データは、データベースのデータを含む
ことを特徴とする請求項２に記載のデータストレージシステム。
【請求項４】
データを抽出するためのストレージシステムであって、
第１のロケーションに設置された第１のストレージシステムと、
第２のロケーションに設置された第２のストレージシステムと、
前記第１及び第２のロケーションに対して遠隔地に設置され、前記第１及び第２のストレージシステムとネットワークを介して結合された第３のストレージシステムと、
前記第１のストレージシステムが記憶するデータの複製を前記第３のストレージシステム内に作成すると共に、前記第２のストレージシステムが記憶するデータの複製を前記第３のストレージシステム内に作成する複製作成部と、
ユーザから与えられるデータ抽出要求に応じて、前記第１又は第２のストレージシステムが記憶する前記データから抽出すべきデータを、前記第３のストレージシステム内に作成された前記第１のストレージシステムが記憶する前記データの複製又は前記第３のストレージシステム内に作成された前記第２のストレージシステムが記憶する前記データの複製から抽出する情報抽出部と
を備えることを特徴とするデータストレージシステム。
【請求項５】
前記第１のストレージシステムから前記第３のストレージシステムにコピーされる前記データ及び前記第２のストレージシステムから前記第３のストレージシステムにコピーされる前記データは、データベースのデータを含む
ことを特徴とする請求項４に記載のデータストレージシステム。
【請求項６】
第１のロケーションにおいて第１のデータベースを記憶し、当該第１のデータベースを、ネットワークを介して第３のストレージシステムにコピーするためのミラーリングソフトウエアが実装された第１のストレージシステムと、
第２のロケーションにおいて第２のデータベースを記憶し、当該第２のデータベースを、前記ネットワークを介して前記第３のリモートシステムにコピーするためのミラーリングソフトウエアが実装された第２のストレージシステムと、
ユーザから与えられるデータ抽出要求に応じて、前記第１又は第２のストレージシステムが記憶する前記第１又は第２のデータベースから抽出すべきデータを、前記第３のストレージシステム内にコピーされた前記第１又は第２のデータベースから抽出する情報抽出部と
を有する
ことを特徴とするデータストレージシステム。
【請求項７】
第１のストレージシステムに記憶された第１のデータベースの複製及び第２のストレージシステムに記憶された第２のデータベースの複製を記憶するストレージと、
ユーザが所望のデータを抽出するために操作する端末と、
前記端末を介してユーザから与えられたデータ抽出要求に応じて、前記第１のストレージシステムが記憶する前記第１のデータベースから抽出すべきデータ又は前記第２のストレージシステムが記憶する前記第２のデータベースから抽出すべきデータを、前記ストレージが記憶する前記第１のデータベースの複製又は前記第２のデータベースの複製から抽出する情報抽出部と
を備えることを特徴とするデータストレージシステム。
【請求項８】
複数の異なる第１のロケーションにおいてそれぞれ記憶された各データの複製を、第２のロケーションにおいて記憶する第１のステップと、
データ抽出要求に応じて、対応する前記第１のロケーションにおいて記憶された前記データから抽出すべきデータを、前記第２のロケーションにおいて記憶された対応する前記データの複製から抽出する第２のステップと
を備えることを特徴とするデータ抽出方法。
【請求項９】
それぞれ異なる第１のロケーションに設置され、それぞれ異なるデータベースを記憶する複数の第１のストレージシステムと、
各前記第１のロケーションと異なる第２のロケーションに設置された第２のストレージシステムと、
各前記第１のストレージシステムをそれぞれ前記第２のストレージシステムに結合するネットワークと、
各前記第１のストレージシステムにそれぞれ実装され、対応する第１のストレージシステムが記憶する前記データベースのデータを前記第２のストレージシステムに送信する第１の複製作成プログラムと、
前記第２のストレージシステムに実装され、各前記第２のストレージシステムからそれぞれ送信される前記データベースのデータに基づいて、各前記データベースの複製をそれぞれ作成する第２の複製作成プログラムと、
前記第２のロケーションに設置され、ユーザが所望のデータを抽出するために操作する端末と、
前記端末を介してユーザから与えられたデータ抽出要求に応じて、前記第１のストレージシステムが記憶する前記データベースから抽出すべきデータを、前記第１のストレージシステム内に作成された前記第２のストレージシステムが記憶する前記データの複製から抽出するデータ抽出部と
を備えることを特徴とするデータストレージシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータストレージシステム及びデータ抽出方法に関連し、特に、データベース情報を抽出するデータストレージシステムに関連する。
【０００２】
【従来の技術】
ハードウエア及びソフトウエアベンダは、世界中の企業及び組織と相協力して、各企業の従業員が別のオフィスにいても、従業員間で情報を共有できるイントラネットシステムを開発してきた。このようなシステムでは、各ブランチでサーバを設置して、当該オフィスの従業員に対して情報を配布している。各クライアント端末は、他のオフィスから目的の情報を得るために、他のサーバを検索することが必要である。このようなクライアント−サーバモデルでは、クライアントがリモート情報を必要とする度に、リモートサーバへのアクセスが必要になる。このことは、トランザクション発生の度に、リモートサイトからの応答を得る為にネットワーク遅延を蒙らなければならないことを意味する。リモートサイト間にしばしば見られる距離とバンド幅限界によるネットワーク遅延により、イントラネットシステムを全世界ベースで展開することが困難になっている。
【０００３】
データと知識を共有する為の異なったもう１つのアプローチは、ＸＭＬ技術を使用することである。ＸＭＬ技術は、例え、様々なデータストレージがそれぞれ別々に異なった組織やドメインで管理されていても、各種のデータストレージを統合することを原理的には可能にしている。しかしながら、これも表面上だけのことで、本レベルでデータが統合できる為には、全てのストレージを静的なＤＴＤ（Document Type Definition）でフォーマットしなければならず、柔軟性を欠いてしまっている。ストレージを構築する各サイトのオペレータは、ＤＴＤに従わなければならないため、各サイト特有のニーズに合わせてデータ構造の拡張を行うことができず、このため柔軟性を失っている。同様のアプローチはデータベースをデータレベルで統合することである。しかしながら、この方法も同様な理由で困難である事が判る。データベースが統合されるためには、互いに整合性を有する共通のテーブルスペ―スを持つことが必要である。
【０００４】
もう１つのＯＴＧ（0racle Transparent Gateway）として知られるアプローチでは、異なった場所にあるデータベースが統合されるが、これは仮想的なものである。データベースは各サイトから実際に統合されるわけでなく、データベースへのクライアントからの要求は、分割され、複数のデータベースサーバに固有のメッセージフォーマットで転送される。この方法は、クライアントが複数サーバにあるデータを恰も１つのデータベースにアクセスしている様に見せかけることができる。しかしながら、各データベースは遠隔地にあり、これまで述べてきた遅延の問題を免れることは出来ない。このような従来技術のアプローチについては、（１）“ＥｎｔｅｒｐｒｉｓｅＩｎｆｏｒｍａｔｉｏｎ Ｉｎｔｅｇｒａｔｉｏｎ”ＭｅｔａＭａｔｒｉｘ社刊，（２００１）；（２）“ＨｉｔａｃｈｉＤａｔａ Ｓｙｓｔｅｍｓ ９９００ａｎｄ ７７００Ｅ−Ｇｕｉｄｅｌｉｎｅ ｆｏｒ Ｏｒａｃｌｅ Ｄａｔａｂａｓｅｆｏｒ Ｂａｃｋｕｐ ａｎｄＲｅｃｏｖｅｒｙ”（株）日立製作所刊（Ｊａｎ． ２００１）；（３）“Ｇｕｉｄｅｌｉｎｅｓｆｏｒ Ｕｓｉｎｇ ＳｎａｐｓｈｏｔＳｔｏｒａｇｅ Ｓｙｓｔｅｍｓｆｏｒ Ｏｒａｃｌｅ Ｄａｔａｂａｓｅｓ”Ｎａｂｉｌ Ｏｓｏｒｉｏ，ｅｔ ａｌ． Ｏｒａｃｌｅ社刊（Ａｕｇ． ２０００）；及び（４）“Ｍｉｃｒｏｓｏｆｔ ＳＱＬ Ｓｅｒｖｅｒ ｏｎ Ｗｉｎｄｏｗｓ ＮＴ Ａｄｍｉｎｉｓｔｒａｔｏｒ’ｓＧｕｉｄｅ”Ｏｒａｃｌｅ社刊（Ａｐｒ． ２０００）を参照すること。
【０００５】
【発明が解決しようとする課題】
従って、データ構成を合わせる必要がなく、又、繰り返して行われる長距離に渉る問い合わせにより引き起こされる遅延に煩わされることなく、遠隔地データを共有できるデータストレージシステムが必要である。
【０００６】
【課題を解決するための手段】
本発明により、データベ―スローカライズ化データストレージシステムが可能になる。本データストレージシステムは、各サイトが独自のローカルデータベースを持つ複数のリモートサイトで構成される環境を前提としている。本発明の好適な実施形態では、データストレージシステムは、各リモートサイトからセンタサイトにデータのすべて、又はその一部を取り込む。既に述べた従来技術とは異なり、本データストレージシステムは、データベ―スをデータレベルで統合することは行わず、保存したデータ自身をリモートサイトからセンタサイトにコピー（複製）し、各リモートサイトからのデータベースのコピーは常にセンタサイトに存在するようにする。この方式により、データ統合が柔軟に出来るようになり、上記の説明で触れたシステム間の遅延の問題も解決される。
【０００７】
センタサイトでは、データベース（ＤＢ）プロキシサーバ（以下、ＤＢプロキシという）が、複数のコピー（複製）の各々に対してゲートウェイの役割を果たす。センタサイトのオペレータより発せられたデータアクセス要求は、このＤＢプロキシにより、分割され、複数の複製要求が生成され、各遠隔データベースのコピー（本コピーはこのセンタサイトにも存在する）に対して送信される。各複製からの返答は、本ＤＢプロキシによりマージされオペレータに対して返答される。本機能により、多重記憶されたデータベースに対して柔軟性と高速性がもたらされる。
【０００８】
本発明は、今やストレージシステム間で、広く普及してきた複製技術に依存している。ストレージ装置は今や、サーバＣＰＵのコントロール無しで、遠隔サイト間のミラーデータの作成を行えるのが普通である。ミラー機能を使用する事により、世界規模レベルでのデータのミラー化が可能になる。本ミラー機能を装備したストレージ装置はプライマリサイトとセカンダリサイト間での交信で、書き込み順序を保証することを可能にし、長距離間で継続的ミラーを作成することも可能にしている。
【０００９】
本発明のもう１つの機能はスナップショット制御である。スナップショットコントローラは、他サイトからミラーデータを受け取るサイトの書き込みプロセスをコントロールする。本スナップショットコントローラは、キャッシュデータが到着する度に、キャッシュデータを監視して、正しい順序で来ているかを確認する。本書き込み順序が確認できたデータは、キャッシュからディスクスペースへの書き込みが許可される。本メカニズムにより、データ再生システムに影響を与えることなく、継続的なデータ転送が可能になり、転送遅延を最小にすることが出来る。二つのサイト間のデータ転送には、同期型、非同期型、又は両者の組み合わせを用いることが可能である。
【００１０】
本発明の好ましい実施形態に於いて、それぞれデータを記憶する第１及び第２のストレージシステムを有し、前記第１及び第２のストレージシステムがネットワークを介して互いに結合されたデータストレージシステムにおいて、データの抽出を行うデータストレージシステムは、幾つかの特徴を有している。この特徴の中には、ユーザが所望のデータを抽出するために操作する端末と、前記第２のストレージシステムが記憶するデータの複製を前記第１のストレージシステム内に作成する複製作成部とが含まれる。前記端末を介してユーザから与えられたデータ抽出要求に応じて、前記第２のストレージシステムが記憶する前記データから抽出すべきデータを、前記第１のストレージシステム内に作成された前記第２のストレージシステムが記憶する前記データの複製から抽出する情報抽出部により、第２のストレージシステムから第１のストレージシステムへコピーされたデータを用いて、端末のユーザが第２のストレージシステムからデータを抽出することが出来るようになる。
【００１１】
【発明の実施の形態】
図１に広域ストレージのローカライズ化システムの全体像を説明する。図１には、１０５Ａ、１０６Ｂ及び１０７Ｃの三つのプライマリサイトと１つのセカンダリサイト１００が示されている。典型的には、プライマリサイトＡ、Ｂ及びＣは、互いに又セカンダリサイト１００からも離れて設置されている。各プライマリサイト１０５、１０６及び１０７ではデータはオペレータによりローカルに管理されている。本発明では、各プライマリサイト１０５、１０６及び１０７に保存されているデータはセカンダリサイト１００にも複製されている。典型的には、本データの複製はネットワークを通して行われ、各プライマリサイト１０５Ａ、１０６Ｂ及び１０７Ｃとの間で独立に行われる。
【００１２】
セカンダリサイト１００は、データ１０３に見られるようにプライマリサイト１０５、１０６及び１０７のデータの全部又は一部をセカンダリサイト１００に集め保存する。ＤＢプロキシ１０１は、オペレータ１０２のデータ１０３へのアクセスを可能にする。オペレータ１０２よりのデータアクセス要求は、ＤＢプロキシ１０１により分割され、ローカル複製データ１０３を管理するローカルデータベースサーバ１０４に転送される。ＤＢプロキシ１０１は、複数のローカルデータベースサーバ１０４からの応答をマージしてオペレータ１０２へ返答する。これにより、オペレータ１０２は複数データベースへのデータアクセスを単一の要求を用いて行うことが可能になる。
【００１３】
プライマリサイト１０５、１０６及び１０７とセカンダリサイト１００間のデータ複製プロセスは、ボリュームミラーリングと通称される、慣用的なデータ複製技術により好適に実行することが出来る。本ミラーリング技術はセカンダリサイトの複製を常に保持する為には理想的技術であるが、週１回実施される“ｆｔｐ”によるデータ転送もセカンダリサイトのオペレータの助けになる。このミラーリング技術は公知のものであり、ここでも既に言及されている。例えば既出の、“ＨｉｔａｃｈｉＤａｔａ Ｓｙｓｔｅｍｓ ９９００ａｎｄ ７７００Ｅ−Ｇｕｉｄｅｌｉｎｅ ｆｏｒ Ｏｒａｃｌｅ Ｄａｔａｂａｓｅｆｏｒ Ｂａｃｋｕｐ ａｎｄＲｅｃｏｖｅｒｙ”（株）日立製作所刊（２００１．１月）を参照すること。ＤＢプロキシ１０１も公知であり、例えば既出の、“ＭｉｃｒｏｓｏｆｔＳＱＬＳｅｒｖｅｒ ｏｎ Ｗｉｎｄｏｗｓ ＮＴ Ａｄｍｉｎｉｓｔｒａｔｏｒ’ｓ Ｇｕｉｄｅ”Ｏｒａｃｌｅ社刊（２０００．４月）．に記述されている。
【００１４】
図２はストレージシステムのハードウエア構成を示すブロックダイアグラムである。図２に描かれているストレージシステムは図１の各プライマリサイト１０５、１０６、１０７及びセカンダリサイト１００でデータ蓄積用として使用でき、又他の公知のシステムを用いることも可能である。図２に示す通り、本ストレージシステムのハードウエア構成では、例えば、ディスクドライブのアレイ又は他の公知メデイアを有するディスクスペース２０５を含む。本ディスクスペースは、ＣＰＵ２０２、キャッシュメモリ２０３及びネットワーク接続用のネットワークインタフェース２０４を接続するバスに接続される。本システムは更に、入出力デバイス２０６及び２０７を含む。ディスクインタフェースチップ（又はシステム）２０１はストレージスペース２０５との間の入出力を制御する。図２に描かれているストレージシステムは殆んど最小のものであり、より大型化又は詳細化することが出来る。
【００１５】
図３はストレージシステムのアーキテクチュアのより詳細な構成図を示す。図３の左側には、例えば図１のストレージシステム１０５のプライマリサイトＡに相当するプライマリストレージシステム３０１が、右側には、例えば図１のシステム１００に相当するセカンダリストレージシステム３０２が示されている。この二つのシステムは、セカンダリストレージシステム３０２がスナップショットコントローラ３０３（後に説明される）を含むことを除いて、殆ど同一の要素を含んでいる。各ストレージシステムは、ディスクアダプタ３０５Ａ，３０５Ｂでアクセス制御されるディスクスペース２０５Ａ，２０５Ｂを含む。本ディスクアダプタ３０５Ａ，３０５ＢはＩ／Ｏコントローラ３０４Ａ，３０４Ｂ及びミラーマネージャ３０６Ａ，３０６Ｂのコントロールの下で動作する。本ディスクアダプタ３０５Ａ，３０５Ｂはキャッシュメモリ２０３Ａ，２０３Ｂよりデータを受け取る。ディスクステータス初期化プログラム３０９Ａ，３０９Ｂ及びステータス情報３０８Ａ，３０８Ｂも又ミラーマネージャ３０６Ａ，３０６Ｂに結合している。ミラーマネージャ３０６Ａ，３０６Ｂは、リンクアダプタ３０７Ａ，３０７Ｂを通して稼動して、例えば図３に記される他システムのリンクアダプタ３０７Ｂ，３０７Ａとの間でデータ交換の為に交信する。ストレージシステムの制御と稼動に必要なプログラムは稼動中を通して、キャッシュメモリ２０３Ａ，２０３Ｂにロードされている。ディスクスペース２０５Ａ，２０５Ｂはディスクボリュームとして構成される。
【００１６】
ホスト３１０Ａ、３１０Ｂは、Ｉ／Ｏコントローラ３０４Ａ、３０４Ｂを通してストレージシステムを操作する。本Ｉ／Ｏコントローラ３０４Ａ、３０４Ｂは、ホストＩ／Ｏプログラム３１１Ａ、３１１Ｂより読み取り要求を受け取ると、ディスクアダプタ３０５Ａ、３０５Ｂに対して読み取り要求を発行する。本コントローラ３０４Ａ、３０４Ｂはまた、ホストＩ／Ｏプログラム３１１Ａ、３１１Ｂより書き込み要求を受け取ると、書き込み用データをキャッシュメモリ２０３Ａ、２０３Ｂに格納し、ディスクアダプタ３０５Ａ、３０５Ｂに対して書き込み要求を発行する。
【００１７】
ディスクアダプタ３０５Ａ、３０５Ｂとそのソフトウエアは、ディスクボリューム２０５Ａ、２０５Ｂからの読み出しデータ及びディスクボリューム２０５Ａ、２０５Ｂへの書き込みデータを管理する。ディスクアダプタ３０５Ａ、３０５Ｂが、読み取り要求に応じてディスクスペース２０５Ａ、２０５Ｂからデータを読み出したら、当該データをキャッシュメモリ２０３Ａ、２０３Ｂに保存する。もし、ディスクミラーリングが各サイトで設定されている場合には、ディスクアダプタ３０５Ａ、３０５Ｂはミラーマネージャ３０６Ａ、３０６Ｂから許可を得た後に、ディスクボリューム２０５Ａ、２０５Ｂへの書き込みを開始する。
【００１８】
ミラーマネージャ３０６Ａ、３０６Ｂは、プライマリストレージシステム３０１とセカンダリストレージシステム３０２間のデータ複製処理を管理する。プライマリストレージシステム３０１のミラーマネージャ３０６Ａ中のソフトウエアは、ディスクスペース２０５Ａに書き込むデータを、セカンダリストレージシステム３０２にリンクアダプタ３０７Ａを経由して送信する。この転送されたデータはセカンダリストレージシステム３０２のリンクアダプタ３０７Ｂで受け取られ、キャッシュメモリ２０３Ｂに格納される。セカンダリストレージシステム３０２のミラーマネージャ３０６Ｂは、キャッシュされたデータを受け取り、スナップショットコントローラ３０３Ｂにデータの整合性チェックを行うことを指示する。整合性があるとの前提で、セカンダリストレージシステム３０２のミラーマネージャ３０６Ｂはディスクアダプタ３０５Ｂに書き込みプロセスを開始させる。
【００１９】
リンクアダプタ３０７Ａ及び３０７Ｂは、プライマリストレージシステム３０１とセカンダリストレージシステム３０２間の交信を管理する。本ソフトウエアは、ネットワークインタフェースデバイスドライバや典型的な公知のプロトコルプログラムを有していることが好ましい。リンクアダプタ３０７Ａ及び３０７Ｂは、プライマリストレージシステム３０１のキャッシュメモリ２０３Ａよりデータをロードし、セカンダリストレージシステム３０２で当該データを受け取った時には、キャッシュメモリ２０３Ｂに格納する。ミラー動作のステータスはステータス情報３０８に格納されプログラム３０９により初期化される。
【００２０】
図４はプライマリサイト１０５、１０６及び１０７でのディスクミラーのステータス情報３０８Ａの一例を示し、図５はセカンダリサイト１００でのディスクミラーのステータス情報３０８Ｂの一例を示す。この例では、全ての複製作業はストレージスペースの単位としてディスクボリュームベースで行われているものとする。図４及び図５のテーブルは、各行単位にディスクボリューム情報をリストしている。図４のミラーディスクステータス情報はプライマリサイトの情報を示している。各ボリュームに対して、本テーブルは、ローデバイスアドレス４０１、マウントポイント４０２、ボリュームサイズ４０３、同期モード４０４及びリモートリンクアドレス４０５を定義している。ローデバイスアドレス４０１、マウントポイント４０２及びボリュームサイズ４０３はオペレーテイングシステムによる指定に従って、ボリューム識別情報を定義する。これらはＵＮＩＸベースのシステムに従い、“／ｅｔｃ／ｆｓｔａｂ”ファイル内に典型的に定義される。同期モード４０４は複製モードに従い“同期”又は“非同期”が定義される。リモートリンクアドレス４０５はセカンダリサイトの対象アドレスを示す。
【００２１】
図５のステータス情報は、セカンダリサイト１００でのディスクミラーのステータス情報の同一パラメータを示す。但し、図５ではリモートマウントポイント５０６を有している。リモートマウントポイント５０６はプライマリサイト及びセカンダリサイト間のペアボリュームを定義する。
【００２２】
図６はプライマリストレージシステム３０１からセカンダリストレージシステム３０２への転送データの一例を示す。正確なメカニズムは上記で述べたストレージシステムの機能に依存するが、図６では最小限の仕様を示す。図６では、非同期転送モードを例にしており、送信元６０３及び送信先６０４アドレスとして、ＩＰアドレスを使用している。このアドレス方式は通信方式に依存し、他のアドレス方式を使用しても良い。例えばファイバチャネル通信の場合はＷＷＮ（Worldwide Name）が使用される。図６のディスクスペース情報６０１は対象とするファイル名を指定する。書き込み順序情報６０２はデータ書き込みの順序番号を示す。書き込み順序情報は、転送データは殆ど常に、転送時に複数の部分に分割されるので必要となる。長距離通信が介在している場合には、後から送信された部分が先に送信された部分を追い越してしまうことがある。図６に示されるように、データペイロード（転送対象のデータ）が、ディスクスペース情報６０１、書き込み順序情報６０２、送信先アドレス情報６０３及び受信先アドレス情報６０４に対応するデータとして付加される。図３に関連して説明したように、データは、プライマリストレージシステム３０１及びセカンダリストレージシステム３０２のリンクアダプタ３０７Ａ及び３０７Ｂを経由して転送される。
【００２３】
図７はディスクペアを初期化する為のフローチャートを示す。本動作はミラーマネージャ３０６Ａ及び３０６Ｂにより実行される（図３を参照）。本動作に於いては、プライマリストレージシステム３０１及びセカンダリストレージシステム３０２の双方のミラーマネージャ３０６Ａ，３０６Ｂが、初期化を達成する為にリンクアダプタ３０７Ａ、３０７Ｂを通して情報交換を行う。最初に、ステップ７０１及び７０４により、これらのシステム３０１及び３０２は各ローカルリンクアドレスを設定する。例えば、システムマネージャは、各ネットワークインターフェースデバイスに固有のＩＰアドレスを割り当てる。この後、プライマリサイト３０１では、ミラー又はペア対象のディスクスペース構成を決める（ステップ７０２）。次に、プライマリストレージシステム３０１は、自分のミラーディスクのステータスをセカンダリストレージシステム３０２に通知し（ステップ７０３）、セカンダリストレージシステム３０２では、これを受信する（ステップ７０５）。セカンダリストレージシステム３０２が本情報を受け取ると（ステップ７０５）、セカンダリストレージシステム３０２は自分のディスクスペースを設定する（ステップ７０６）。次に、セカンダリストレージシステム３０２は、ローカルディスクステータスをプライマリストレージシステム３０１に送信し（ステップ７０７）、プライマリストレージシステム３０１では、本情報を受け取る（ステップ７０８）。プライマリストレージシステム３０１が本情報を受け取ると、図６で述べた様に、各ディスクスペース２０５に対して同期モードを設定する（ステップ７０９）。次いで、当該システムは設定された同期モード構成情報をセカンダリストレージシステム３０２に送信し（ステップ７１０）、セカンダリストレージシステム３０２はこれを受け取る（ステップ７１１）。セカンダリストレージシステム３０２はこの時点で自分のミラーディスクステータス情報を更新する。これらのステップを通して、プライマリ及びセカンダリの双方のストレージシステムは一貫性のあるミラーディスクステータスを確定することが出来る。
【００２４】
図８はプライマリストレージシステム３０１が、ホストより命令を受け取ったときの動作を説明するフローチャートである。ホストとプライマリストレージシステム３０１との関係は図３に説明してある。プライマリストレージシステム３０１は、図７の初期化プロセスに続いて図８に示されるように、ホストからの入力情報の受信を開始する（ステップ８０１）。ストレージシステムは、Ｉ／Ｏコントローラ３０４Ａ経由で入力情報を受け取り、キャッシュメモリ２０３Ａに格納する（図３を参照）。次にディスクアダプタ３０５Ａに知らされる。ディスクアダプタ３０５Ａはミラーマネージャ３０６Ａからの許可を待って、ローカルディスクドライブへの書き込みに進む。次に、ミラーマネージャ３０６Ａは、複製用データをセカンダリストレージシステム３０２に転送する（ステップ８０２）。
【００２５】
次に、同期モードを判定する（ステップ８０３）。同期モードの判定は、ミラーディスクステータス情報３０８Ａによる（図３を参照）。同期モードが“非同期”なら制御は直ちにステップ８０５に進む。一方、同期モードが“同期”なら、システムはセカンダリストレージシステム３０２より当該システムでの複製完了の報告がプライマリストレージシステム３０１に通知されるのを待つ（ステップ８０４）。いずれのモードでも、ステップ８０５に示される通り、最終的には完了報告がホストに返され（ステップ８０５）、データが成功裏に受信できたことが知らされる。
【００２６】
プライマリストレージシステム３０１でのストレージボリュームへの実際の情報書き込み処理は、例えば、“Ｈｉｔａｃｈｉ Ｄａｔａ Ｓｙｓｔｅｍｓ ９９００ａｎｄ ７７００Ｅ−Ｇｕｉｄｅｌｉｎｅ ｆｏｒ Ｏｒａｃｌｅ Ｄａｔａｂａｓｅｆｏｒ Ｂａｃｋｕｐ ａｎｄＲｅｃｏｖｅｒｙ”（株）日立製作所刊（２００１．１月）、等に記される公知の技術を用いて行われる。この公知技術には、キャッシュ中のデータを所定のディスクスペースに適切なタイミングで書き込む為の方法が含まれる。
【００２７】
図９は、図８のステップ８０２で実行される、プライマリストレージシステム３０１からセカンダリストレージシステム３０２へのデータ転送を示すフローチャートである。図９の最初のステップ９０１にて、ミラーマネージャ３０６Ａ（図３を参照）がリンクアダプタ３０７Ａにデータ送信を指令する。次いで、ミラーマネージャ３０６Ａは、ミラーディスクステータス情報３０８Ａに存在する対象アドレス６０４とディスクスペース６０１を通知する。リンクアダプタ３０７Ａは次いで、キャッシュメモリ２０３Ａよりデータをロードする（ステップ９０２）。更にリンクアダプタ３０７Ａは、データを図６に関連して説明したフォーマット内の対象アドレスに送信する（ステップ９０３）。リンクアダプタ３０７Ｂはプライマリリンクアダプタ３０７Ａより送られたデータを受信し（ステップ９０４）、次いで、本受信情報をキャッシュメモリ２０３Ａに格納する（ステップ９０５）。
【００２８】
図１０はセカンダリサイト１００でのローカルディスクスペースへのデータ書き込みのフローチャートを示す。本プロセスはステップ１００１に始まり、スナップショットコントローラ３０３が、キャッシュメモリ２０３Ｂに蓄積されたデータのスキャンを開始する。スナップショットコントローラ３０３は、データの整合性を保証する為、書き込み順序番号を監視する。ステップ１００２に示される如く書き込み順序番号が正しい、即ち今書きみ対象になっているデータが直前に書き込まれたデータの次の番号を持っている場合は、スナップショットコントローラはミラーマネージャ３０６Ｂにこのことを通知する（ステップ１００３）。ミラーマネージャ３０６Ｂは、これに応答して、ディスクアダプタ３０５Ｂにコマンドを発行して（ステップ１００４）、ディスクアダプタ３０５Ｂが該当ディスクスペースへの書き込み処理に入る（ステップ１００５）。これに応答して、ミラーマネージャ３０６Ｂはデータの複製が成功裏に終了したことを示す応答を返す（ステップ１００６）。
【００２９】
既に述べたように、本発明の１つのメリットは、オペレータ１０２に特定のサイトに複製されている複数データベースへのアクセスを提供できる事にある。本アクセスを提供するＤＢプロキシ１０１は、図１１にブロック形式で示される。図１１に示される通り、本ハードウエアはディスク、入出力デバイス、ＣＰＵ，キャッシュメモリ及びネットワークインタフェースを含む。本発明の幾つかの実装では、ＤＢプロキシは汎用ＰＣで構成される。
【００３０】
図１２はＤＢプロキシ１０１のアーキテクチュアの例を示す。図１２は図１で示されるダイアグラム１００の一部をより詳細化したものである。三つのストレージシステム１０３Ａ、１０３Ｂ及び１０３Ｃが図１２に示されている。各システムはそれぞれサーバ１０４Ａ，１０４Ｂ及び１０４Ｃに結合するＩ／Ｏコントローラを有する。図１２に示されるストレージシステムはリモートストレージシステム１０５Ａ〜１０７Ｃ（図１を参照）のミラーシステムである。サーバホスト１０４は、Ｉ／Ｏコマンドを受け取るホストである。クライアントホスト１２０１は、セカンダリサイト１００のオペレータ１０２に対してインタフェースを提供する。ＤＢプロキシ１０１は、複数サーバホスト１０４Ａ，１０４Ｂ及び１０４Ｃに跨る検索機能を提供する。図１２に示す通り、各サーバホスト１０４は、ホストＩ／Ｏプログラム３１１及びデータマネージメントプログラム１２０３を有する。本ホストＩ／Ｏプログラム３１１は、図３で述べたものと同じである。データマネージメントプログラム１２０３は、外部ホストより検索要求を受付これらの要求に応じてデータ検索を実行する。
【００３１】
クライアントホスト１２０１はＷＷＷクライアント１２０２を有し、本クライアントは、ｈｔｔｐ要求を発行し、ｈｔｔｐメッセージ中のＨＴＭＬコンテンツを受信する汎用ＷＥＢブラウザにより動作している。図１２では、本クライアントはｈｔｔｐで要求するように示されているが、本発明では、多数の他のタイプのクライアントが採用されても良い。例えば典型的なＳＱＬクライアントは、ＳＱＬクライアントが使用されていれば、データ検索要求をＳＱＬメッセージにてＤＢプロキシ１０１に要求することが出来る。この場合は、ＷＷＷサーバ１２０４はＷＷＷサーバインタフェースに替えて、ＳＱＬメッセージインタフェースになる。本実施形態では、ＤＢプロキシ１０１は、慣用的なＷＥＢサーバプログラムを有し、外部ホストからｈｔｔｐ要求を受け取り、ｈｔｔｐメッセージにてコンテンツを返す。このＷＷＷサーバ１２０４はホストに対してインタフェースを提供する為に使用される。
【００３２】
ＤＢプロキシ１０１中のクライアントＩ／Ｏプログラム１２０５は、プロキシサーとクライアントホスト１２０１との間の交信をコントロールするプログラムである。本Ｉ／Ｏプログラム１２０５は、ＷＷＷサーバ１２０４のバックエンド部分に典型的なＣＧＩとして実装可能である。データベース検索プログラム１２０６はクライアントホスト１２０１からの要求により、データベースよりデータの抽出を行うプログラムである。プログラム１２０６は、図１２に示す通り、クライアントからの要求を分割しそれらを複数サーバホスト１０４Ａ、１０４Ｂ，１０４Ｃに転送する公知のデータベースソフトウエアでよい。これらの要求は各種のサーバホスト１０４Ａ、１０４Ｂ，１０４ＣにサーバＩ／Ｏプログラム１２０７により転送される。
【００３３】
図１３はＤＢプロキシ１０１の動作フローチャートを示す。最初に、ＤＢプロキシオペレータは、データベースアクセス情報１２０８（図１４を参照）を設定して、プロキシ設定を初期化する（ステップ１３０１）。本ＤＢプロキシ１０１は、ホスト１２０１よりデータ検索要求を受信する（ステップ１３０２）。本要求のメッセージフォーマットは、ＳＱＬ，ｈｔｔｐ、ＬＤＡＰ等如何なるものでもかまわない。ＤＢプロキシ１０１は、要求を図１５に関連して説明されるように複数のサーバホスト１０４Ａ、１０４Ｂ，１０４Ｃに転送する（ステップ１３０３）。ＤＢプロキシ１０１は、検索結果を複数のサーバより受信してこれらをクライアントホスト１２０１に返送する（ステップ１３０４）。
【００３４】
図１４はデータベースアクセス情報１２０８を示す。これは、図１３に関連して、データベースアクセス情報１２０８として既に触れたものである。本データベースアクセス情報１２０８は、サーバ名１４０１、サーバアドレス１４０２、ポート番号１４０３及び源データロケーション１４０４を有している。サーバ名欄１４０１には、ＤＢプロキシ１０１がデータ検索要求を送信する為のターゲットとして使用するサーバ名が示されている。サーバアドレス１４０２は、各サーバに割り当てられたＩＰアドレスである。一方において、ポート番号は、サーバホスト１０４Ａ，１０４Ｂ，１０４Ｃで採用されているデータ検索サービスのタイプ、例えば、ＬＤＡＰ，ＳＱＬ等を区別する。源データロケーション１４０４は、例えば図１の通り、プライマリサイト１０５Ａ、１０５Ｂ，１０５Ｃのロケーションを意味する。
【００３５】
図１５は上述したデータベースプロキシアーキテクチャによる複数データベースの検索のフローチャートである。本図では、ＤＢプロキシ１０１の動作を左側に、サーバホスト１０４Ａ，１０４Ｂ，１０４Ｃの動作を右側に記す。最初に、ＤＢプロキシ１０１内のデータベース検索プログラム１２０６（図１２を参照）が、クライアントの要求をデータベースアクセス情報１２０８内のポート番号１４０３（図１４を参照）で定義されるメッセージタイプに変換する。例えば、クライアント１２０１からのｈｔｔｐ要求は、各実行サーバが理解できる様に、ＬＤＡＰサーバに対してはＬＤＡＰ要求フォーマットに、ＳＱＬサーバに対してはＳＱＬ要求フォーマットに変換しなければならない。この変換は、ステップ１５０１に示されており、公知のソフトウエアにより実行される。ＤＢプロキシ１０１は、変換された要求をデータベースアクセス情報１２０８内のサーバアドレスコラム１４０２で指定されたサーバに発行する（ステップ１５０２）。図１５の右側に示される通り、サーバホスト１０４は、ＤＢプロキシ１０１からの要求を自らに適合するメッセージフォーマットにて受け取る（ステップ１５０３）。各サーバホスト１０４Ａ、１０４Ｂ，１０４Ｃ内のデータマネージメントプログラム１２０３は、次に、ホストＩ／Ｏプログラム３１１を用いて、自らのストレージシステムに保存されている情報より要求データの検索を開始する（ステップ１５０４）。
【００３６】
次に、サーバホスト１０４は、検索結果をＤＢプロキシ１０１に返し（ステップ１５０５）、この結果をＤＢプロキシ１０１が受け取る（ステップ１５０６）。本ＤＢプロキシ１０１は、全てのサーバホスト１０４Ａ，１０４Ｂ，１０４Ｃからの応答を待ち（ステップ１５０７）、全結果の受領が完了したことを確かめる。全ての結果の受信が完了すると本ＤＢプロキシ１０１は、クライアントＩ／Ｏプログラム１２０５（図１２を参照）を用いて、受信結果を単一のメッセージに統合する（ステップ１５０８）。
【００３７】
図１６で１つの検索要求をサンプルとして本システムの全体的動作を説明する。本サンプルでは、クライアントがＤＢプロキシ１０１に、ファーストネームは“Ｍｃｈａｅｌ”で“ＳａｌｅｓＤｅｐａｒｔｍｅｎｔ”で働く人全てを、全ての“Ｏｆｆｉｃｅ”から検索することを要求したとする。ＤＢプロキシ１０１は、本要求を分割して三つの適切にフォーマットされた問い合わせ系列に変換して、本情報が保存されていると考えられる三つのミラーサイトにアクセスする。サーバホスト１０４ＡにはＬＤＡＰフォーｓｅマットで、サーバホスト１０４ＢにはＳＱＬフォーマットで、及びサーバホスト１０４Ｃにはｈｔｔｐフォーマットでアドレスする。各サーバホスト１０４Ａ，１０４Ｂ，１０４Ｃは各問い合わせに対応するデータマネージメントプログラム１２０３Ａ，１２０３Ｂ，１２０３Ｃを用いて、関連データベースに問い合わせを行い、結果をＤＢプロキシ１０１に返送する。図１６に示されるように、サーバホスト１０４Ａは二人の従業員名を返答し、サーバホスト１０４Ｂ，サーバホスト１０４Ｃは各々一人の従業員名を返答している。ＤＢプロキシ１０１は、表１６０１に示すように、本結果を纏めてクライアント１２０１に返答する。テーブル１６０１には、各従業員のファーストネーム、ラストネーム、部署及びＥ−Ｍａｉｌアドレスが記されている。加えて、各情報が得られた源ロケーション名が記されている。
【００３８】
本発明の好適な実施形態に付いて述べてきた。ここで述べられた技術に対しては、幾多の応用がある事は容易に理解されるところである。例えば、本発明は、互いに離れて遠隔地に存在し、各個別のストレージシステムを持ち、個別にデータを管理する、多数のブランチを持つ大企業に付いても適用可能である。ここでは、メインオフィスが分散するデータを集めて単１つの巨大ストレージシステムに纏めることが可能である。これにより、一オフィスの従業員はシステム全てのデータにアクセス可能である。
【００３９】
他の例では、１つの中央気象庁は世界中に存在する何千と言う観測所から気象情報を集めて、各サイトの気象状態に関連する情報を適切に問い合わせて、適切に取得して管理することが出来る。他の例としては、本システムはデータの冗長配置を可能にして、各サイトでのシステムクラッシュ、自然災害、その他に対してデータを保護することが出来る。このような応用では、従来技術を用いた不均一システムでも、オペレータには意識させない運用が可能である。
【００４０】
本発明の範囲に付いては、請求項で定義される。
【００４１】
【図面の簡単な説明】
【図１】図１は広域ストレージのローカライズ化システムの全体像を説明する。
【図２】図２はストレージシステムのハードウエア構成のブロックダイアグラムである。
【図３】図３はストレージシステムのアーキテクチュアのより詳細な一例を示す。
【図４】図４はプライマリサイトでのディスクミラーのステータス情報の一例を示す
【図５】図５はセカンダリサイトでのディスクミラーのステータス情報の一例を示す。
【図６】図６はプライマリからセカンダリストレージシステムへのデータ転送の状況を示す。
【図７】図７はディスクペアを初期化する為のフローチャートを示す。
【図８】図８はプライマリストレージシステムでのデータ入力の為のフローチャートを示す。
【図９】図９はミラーデータ転送の為のフローチャートを示す。
【図１０】図１０はセカンダリサイトでのローカルディスクへのデータ書き込みの為のフローチャートを示す。
【図１１】図１１はデータベースプロキシのハードウエア構成を示す。
【図１２】図１２はデータベースプロキシのアーキテクチュアのより詳細な一例を示す。
【図１３】図１３はデータベースプロキシ動作のフローチャートを示す。
【図１４】図１４はデータベースアクセス履歴情報を示す。
【図１５】図１５はデータベースプロキシサーバによる複数データベース検索の為のフローチャートを示す
【図１６】図１６は抽出された複数データがデータベースプロキシサーバにより如何にマージされるかを示す。
【符号の説明】
１０５，１０６，１０７・・・プライマリサイトＡ，Ｂ，Ｃ、オペレータ、データ、複製、１００・・・セカンダリサイト、１０１・・・ＤＢ（データベース）プロキシ、検索、検索結果、１０２・・・オペレータ、１０３・・・データ、１０４・・・サーバ、２００・・・ストレージシステム、２０１・・・ディスクＩ／Ｆ（インタフェース）チップ、２０２・・・ＣＰＵ、２０３・・・キャッシュメモリ、２０４・・・ネットワークインタフェース、２０５・・・ディスクスペース、２０６・・・入力装置、２０７・・・出力装置、３１０Ａ，Ｂ・・・ホストＡ，Ｂ、３１１Ａ，Ｂ・・・ホストＩ／Ｏプログラム、３０１・・・プライマリストレージシステム、３０２・・・セカンダリストレージシステム、３０３・・・スナップショットコントローラ、３０４Ａ，Ｂ・・・Ｉ／Ｏコントローラ、３０５Ａ，Ｂ・・・ディスクアダプタ、３０６Ａ，Ｂ・・・ミラーマネージャ。