(57)【要約】  仮想機械の仮想ファイルシステムを複製する方法である。方法は、ホストファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスするステップと、仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスするステップと、を含む。ホストファイルシステム使用状態マップ及び仮想ファイルシステム使用状態マップの情報から、仮想ファイルシステムと関連付けられたホストファイルシステムのアクティブなブロックを識別するマージされた使用状態マップを生成する。次に、マージされた使用状態マップに従って、複製先において仮想ファイルシステムを複製する。
2013539094.tif 000002
【特許請求の範囲】
【請求項１】
仮想機械の仮想ファイルシステムを複製する方法であって、
ホストファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスするステップと、
前記仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスするステップと、
前記ホストファイルシステム使用状態マップ及び前記仮想ファイルシステム使用状態マップの情報から、前記仮想ファイルシステムと関連付けられた前記ホストファイルシステムのアクティブなブロックを識別するマージされた使用状態マップを生成するステップと、
前記マージされた使用状態マップに従って、複製先において前記仮想ファイルシステムを複製するステップと、
を有する方法。
【請求項２】
前記仮想機械は、前記ホストファイルシステムにアクセスするために、前記ホスト機械によってマウントされる請求項１に記載の方法。
【請求項３】
前記仮想ファイルシステムは、固定された仮想ストレージ装置としてインスタンス生成される請求項１に記載の方法。
【請求項４】
前記仮想ファイルシステムは、動的に割り当てられた仮想ストレージ装置としてインスタンス生成される請求項１に記載の方法。
【請求項５】
前記仮想ファイルシステムのスナップショットは、前記仮想ファイルシステムの前記複製をサポートするために生成される請求項１に記載の方法。
【請求項６】
前記スナップショットは、前記仮想ファイルシステムの前記複製の際に、前記仮想ファイルシステムがオンライン状態に留まることができるようにする請求項５に記載の方法。
【請求項７】
前記複製先は、ＲＡＩＤ機能を実装する物理ストレージ装置である請求項１に記載の方法。
【請求項８】
前記ホストファイルシステム使用状態マップは、ファイルシステム使用状態ビットマップを有する請求項１に記載の方法。
【請求項９】
コンピュータシステムによって実行された場合に前記コンピュータシステムに方法を実施させ、コンピュータ実行可能命令を保存したコンピュータ可読ストレージ媒体であって、
前記方法は、
ホストファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスするステップと、
前記仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスするステップと、
前記ホストファイルシステム使用状態マップ及び前記仮想ファイルシステム使用状態マップの情報から、前記仮想ファイルシステムと関連付けられた前記ホストファイルシステムのアクティブなブロックを識別するマージされた使用状態マップを生成するステップと、
前記マージされた使用状態マップに従って、複製先において前記仮想ファイルシステムを複製するステップと、
を有する、コンピュータ可読ストレージ媒体。
【請求項１０】
前記仮想機械は、前記ホストファイルシステムにアクセスするために、前記ホスト機械によってマウントされる請求項９に記載のコンピュータ可読ストレージ媒体。
【請求項１１】
前記仮想ファイルシステムは、固定された仮想ストレージ装置としてインスタンス生成される請求項９に記載のコンピュータ可読ストレージ媒体。
【請求項１２】
前記仮想ファイルシステムは、動的に割り当てられた仮想ストレージ装置としてインスタンス生成される請求項９に記載のコンピュータ可読ストレージ媒体。
【請求項１３】
前記仮想ファイルシステムの前記複製をサポートするために、前記仮想ファイルシステムのスナップショットが生成される請求項９に記載のコンピュータ可読ストレージ媒体。
【請求項１４】
前記スナップショットは、前記仮想ファイルシステムの前記複製の際に、前記仮想ファイルシステムがオンライン状態に留まることができるようにする請求項１３に記載のコンピュータ可読ストレージ媒体。
【請求項１５】
前記複製先は、ＲＡＩＤ機能を実装する物理ストレージ装置である請求項９に記載のコンピュータ可読ストレージ媒体。
【請求項１６】
前記ホストファイルシステム使用状態マップは、ファイルシステム使用状態ビットマップを有する請求項９に記載のコンピュータ可読ストレージ媒体。
【請求項１７】
ボリューム複製システムであって、
プロセッサを有するコンピュータシステムであって、前記プロセッサは、コンピュータ可読ストレージ媒体に結合され、且つ、前記コンピュータシステムに複製マネージャモジュールを実装させるコンピュータ可読コードを実行する、コンピュータシステムを有し、
前記複製マネージャモジュールは、
ホストファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスし、
前記仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスし、
前記ホストファイルシステム使用状態マップ及び前記仮想ファイルシステム使用状態マップの情報から、前記仮想ファイルシステムと関連付けられた前記ホストファイルシステムのアクティブなブロックを識別するマージされた使用状態マップを生成し、且つ、
前記マージされた使用状態マップに従って、複製先において前記仮想ファイルシステムを複製する、システム。
【請求項１８】
前記仮想機械は、前記ホストファイルシステムにアクセスするために、前記ホスト機械によってマウントされる請求項１７に記載のシステム。
【請求項１９】
前記仮想ファイルシステムの前記複製をサポートするために、前記仮想ファイルシステムのスナップショットが生成される請求項１７に記載のシステム。
【請求項２０】
前記スナップショットは、前記仮想ファイルシステムの前記複製の際に、前記仮想ファイルシステムがオンライン状態に留まることができるようにする請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、デジタルコンピュータに関し、更に詳しくは、ボリューム内のデータを定期的に複製するシステム及び方法に関する。
【背景技術】
【０００２】
情報は、事業の原動力である。企業は、現在、その事業の遂行のために、頻繁にアクセスされ、絶え間なく変化しているオンラインデータに、前例がないほどに依存している。このデータの可用性を妨げる意図しないイベントが事業の遂行を深刻に損なう可能性がある。更には、自然災害やその他の原因によるなんらかの永久的なデータの損失も、事業の継続的な実行可能性に対して深刻な負の影響をもたらしやすい。従って、企業は、災害が発生した際にデータの損失を除去又は極小化するため、および使用可能なデータによって迅速に回復するため、準備しなければならない。
【０００３】
複製技術は、主には、災害の回復とデータの分散のために使用されている。連続的複製技術は、多くの場合に、ＲＡＩＤに基づいた複製方式（例えば、ディスクのミラーリング、パリティ、又は同様なもの）を含む。連続的複製は、データがアプリケーションによって書き込まれることにより、データの複写を維持する。定期的複製は、データの損失を極小化すると共にデータの可用性を改善するために利用される別の技法であり、データの特定時点における複写が、複製され、且つ、１つ又は複数のリモートサイト又はノードにおいて保存される。サイトの移動、データを保存している１つ又は複数の物理ディスクの障害、又はこのようなディスクと関連付けられたノード又はホストデータ処理システムの障害の場合には、遠隔の複製されたデータの複写を利用してもよい。連続的複製及び定期的複製のいずれにおいても、複製されたデータには、災害の回復に加えて、例えば、データマイニング、報告、試験、及び同様なものなどのいくつかのその他の使用法が可能である。従って、複製されたデータの複写は、データの完全性及び可用性を保証する。更には、複製技術は、極めて安定したデータ保存解決法を提供するために、クラスタリングなどのその他の高可用性の技法とも頻繁に結合される。
【０００４】
ファイルシステムやデータベースなどのアプリケーションに必要とされるデータストレージは、通常、「ボリューム」として維持される１つ又は複数のストレージ装置から割り当てられる。「ボリューム」は、ファイルシステムの単一のインスタンスを使用して１つ又は複数のストレージ媒体上に保存されているデータにアクセスするために、オペレーティングシステムが使用する論理的インターフェイスとして機能してもよい。従って、ボリュームは、ストレージの割当及び（任意選択により）データの保護／冗長性をアプリケーションから本質的に「隠蔽」する抽象化として機能してもよい。アプリケーションは、そのデータを複数のボリューム上に保存することができる。ボリュームの内容に対しては、ブロックと呼ばれる固定サイズのデータ単位を使用してアクセスする。
【０００５】
非常に大規模な分散型コンピュータシステムにおいては、データは、いくつかのデータサーバー内において分散されている。クライアントは、任意のメタデータサーバーとのやり取りを最小限の接点により、データをデータサーバーに直接的に書き込む。データサーバーは、通常、複数のＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）を有し、ＬＵＮは、その独自の予約済みストレージ空間を有する。それぞれのＬＵＮは、多数のパーティションを有することが可能であり、これらのパーティション内には、オブジェクトが収容される。分散型コンピュータシステムのファイルシステムのファイルは、データサーバーのいずれかのＬＵＮパーティションのオブジェクトから構成されている。様々なデータサーバーのオブジェクトを組み合わせてＲＡＩＤグループを形成する。
【０００６】
Ｈｙｐｅｒ−Ｖなどの仮想環境においては、仮想ディスクの性能は、動的ＶＨＤではなく、固定ＶＨＤを使用した際に、最良となる。固定ＶＨＤは、ＶＨＤが生成される際に、ファイルシステム内のすべてのブロックを割り当てる。従って、例えば、２４ＧＢの固定ＶＨＤは、約２４ＧＢのファイルを生成することになる。これは、例えば、ＶＨＤに実際に書き込まれるデータを保存するのに十分なストレージのみを割り当てる動的ＶＨＤとは異なる。２４ＧＢの動的ＶＨＤは、生成された際に数ＭＢを占有することだけできる。固定ＶＨＤは、性能が優れているが、新しいミラーをボリュームに追加する際にファイルシステム情報を使用して複写対象のデータ量を低減する、複製プロセスの最適化において課題をもたらす。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
固定ＶＨＤは、事前にすべてのブロックを割り当てているため、最適化された複製プロセスの従来の実装においては、すべてのブロックがＶＨＤファイルによって使用されているわけではないにも拘わらず、ＶＨＤによって使用されている任意のブロックをスキップすることができない。「最適化されたミラー／クローン生成」の従来の実装は、ＶＨＤファイル自体の外側であると共にそれらのＶＨＤファイルがホスティングしているファイルシステムの内部ではない未使用の白色空間をスキップすることができるのみである。従って、このような多数の大規模なＶＨＤファイルをホスティングしている通常のボリュームは、ボリュームに関するファイルシステム情報を単純に使用することだけでは、なんらかの性能上の利益を得ることができない。この結果、従来の最適化された方式によって実行される複製プロセスは、過大な時間を所要すると共に、過剰にリソース集約的なものになる。
【課題を解決するための手段】
【０００８】
本発明の実施形態は、１つ又は複数の仮想機械を含む分散型コンピュータシステムにおけるデータ複製のための効率的であって、高可用性であり、且つ、非常にスケーラブルなプロセスを可能にする解決策を提供する。本発明の実施形態は、ＶＨＤファイルシステムがホスティングしているファイルシステムを通じて個々のＶＨＤファイルを調査し、白色空間の複写を実際に除去することができる最適化された方式を実装する。
【０００９】
一実施形態においては、本発明は、仮想機械の仮想ファイルシステムを複製する方法として実装される。この方法は、ホストファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスするステップと、仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスするステップと、を含む。ホストファイルシステム使用状態マップ及び仮想ファイルシステム使用状態マップの情報から、仮想ファイルシステムと関連付けられたホストファイルシステムのアクティブなブロックを識別するマージされた使用状態マップを生成する。次に、マージされた使用状態マップに従って、複製先において仮想ファイルシステムを複製する。
【００１０】
一実施形態においては、仮想機械は、ホストファイルシステムにアクセスするために、ホスト機械によってマウントされる。
【００１１】
一実施形態においては、仮想ファイルシステムは、固定された仮想ストレージ装置としてインスタンス生成される。
【００１２】
一実施形態においては、仮想ファイルシステムは、動的に割り当てられた仮想ストレージ装置としてインスタンス生成される。
【００１３】
一実施形態においては、仮想ファイルシステムの複製をサポートするために、仮想ファイルシステムのスナップショットが生成される。
【００１４】
一実施形態においては、スナップショットにより、仮想ファイルシステムは、仮想ファイルシステムの複製の際にオンライン状態に留まることができる。
【００１５】
一実施形態においては、複製先は、ＲＡＩＤ機能を実装する物理ストレージ装置である。
【００１６】
一実施形態においては、ホストファイルシステム使用状態マップは、ファイルシステム使用状態ビットマップを有する。
【００１７】
一実施形態においては、本発明は、コンピュータシステムによって実行された場合にコンピュータシステムに複製方法を実施させ、コンピュータ実行可能命令を保存したコンピュータ可読ストレージ媒体として実装される。この方法は、ホストファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスするステップと、仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスするステップと、を含む。ホストファイルシステム使用状態マップ及び仮想ファイルシステム使用状態マップの情報から、仮想ファイルシステムと関連付けられたホストファイルシステムのアクティブなブロックを識別するマージされた使用状態マップを生成する。次に、マージされた使用状態マップに従って、複製先において仮想ファイルシステムを複製する。
【００１８】
一実施形態においては、本発明は、ボリューム複製システムとして実装される。このシステムは、プロセッサを有するコンピュータシステムを含み、プロセッサは、コンピュータ可読ストレージ媒体に結合され、且つ、コンピュータシステムに複製マネージャモジュールを実装させるコンピュータ可読コードを実行する。複製マネージャモジュールは、ホストファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスし、且つ、仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスする。複製マネージャモジュールは、ホストファイルシステム使用状態マップ及び仮想ファイルシステム使用状態マップの情報から、仮想ファイルシステムと関連付けられたホストファイルのアクティブなブロックを識別するマージされた使用状態マップを生成する。次に、複製マネージャモジュールは、マージされた使用状態マップに従って、複製先において仮想ファイルシステムを複製する。
【００１９】
以上の内容は、概要であり、且つ、従って、必要に応じて、詳細内容の簡易化、一般化、及び省略形態を含んでおり、従って、当業者は、この概要が、例示を目的としたものに過ぎず、且つ、決して限定を意図したものではないことを理解するであろう。請求項によってのみ規定される本発明のその他の態様、発明上の特徴、及び利点は、後述する非限定的な詳細説明から明らかとなろう。
【００２０】
本発明は、限定としてではなく、一例として、添付図面の図中に示されており、且つ、これらの図面においては、同一の参照符号によって類似の要素を示している。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態による複製システム環境における定期的複製動作を示す。
【図２】本発明の一実施形態による仮想機械ノードと冗長データサーバーノードの間において実装される定期的複製動作を示す。
【図３】本発明の一実施形態による例示用の仮想ファイルシステムボリューム及び複製ボリューム３０２を示す。
【図４】本発明の一実施形態による例示用の仮想環境のブロック図を示す。
【図５】本発明の一実施形態による個別の使用状態マップを含む例示用の仮想ファイルシステムを示す。
【図６】本発明の一実施形態による物理装置上においてインスタンス生成される複製先ボリュームの図を示す。
【図７】本発明の一実施形態による複製プロセスのステップのフローチャートを示す。
【図８】本発明の一実施形態による複製機能の特定の態様を実装する複製マネージャの図を示す。
【図９】本発明の一実施形態による例示用の複製システム環境におけるスナップショット複製動作を示す。
【図１０】本発明の一実施形態に従って特定の機能を実装するのに適したコンピュータシステムのブロック図を示す。
【図１１】本発明の一実施形態に従って特定の機能を実装するのに適した第２コンピュータシステムのブロック図を示す。
【発明を実施するための形態】
【００２２】
本発明は、一実施形態との関連において説明しているが、本発明が、本明細書に記述されている特定の形態に限定されるものと解釈してはならない。むしろ、本発明は、添付の請求項によって規定される本発明の範囲に合理的に含まれうる代替形態、変更形態、及び均等物を含むものと解釈されたい。
【００２３】
以下の詳細な説明においては、特定の方法順序、構造、要素、及び接続などの多数の特定の詳細内容が記述されている。但し、これら及びその他の特定の詳細内容の利用は、本発明の実施形態を実施するために必須ではないことを理解されたい。その他の状況においては、本説明を不必要に曖昧にすることを回避するために、周知の構造、要素、又は接続が省略されており、或いは、詳細な説明が省略されている。
【００２４】
本明細書における「一実施形態」又は「実施形態」に対する参照は、その実施形態との関連において記述されている特定の特徴、構造、又は特性が本発明の少なくとも１つの実施形態に含まれることを示すものと解釈されたい。本明細書の様々な場所における「一実施形態においては」という文言の出現は、必ずしも、そのすべてが、同一の実施形態を参照するものではなく、且つ、その他の実施形態を相互に排除する別個の又は代替の実施形態を参照するものでもない。更には、いくつかの実施形態には示されてもよいが、その他の実施形態には示されなくてもよい、様々な特徴についても記述されている。同様に、いくつかの実施形態においては、要件であってもよいが、その他の実施形態においては、要件でなくてもよい、様々な要件についても記述されている。
【００２５】
以下の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する動作の手順、ステップ、論理的ブロック、処理、及びその他のシンボリックな表現の観点において提示されている。これらの記述及び表現は、自身の研究の内容を当業者に対して最も効果的に伝達するために、データ処理分野における当業者が使用する手段である。手順、コンピュータによって実行されるステップ、論理的なブロック、プロセスなどは、本明細書において、一般には、望ましい結果をもたらすステップ又は命令の首尾一貫したシーケンスであると考えられる。これらのステップは、物理量の物理的操作を必要とするステップである。通常、これらの量は、コンピュータ可読ストレージ媒体の電気的又は磁気的な信号の形態を有し、且つ、コンピュータシステム内における保存、転送、組合せ、比較、及びその他の方法による操作が可能であるが、これらは、必須ではない。多くの場合に、主には一般的な使用法を理由として、これらの信号をビット、値、要素、シンボル、文字、項、数値、又は同様なものとして参照することが便利であることが証明されている。
【００２６】
但し、これらの及び類似の用語のすべては、適切な物理量と関連付けられること、およびこれらの量に対して適用される便利なラベルに過ぎないことに留意されたい。特記されていない限り、以下の説明から明らかとなるように、本発明の全体を通じて、「処理」又は「アクセス」又は「書込み」又は「保存」又は「複製」又は同様なものなどの用語を利用した説明は、コンピュータシステムの、又はコンピュータシステムのレジストリ及びメモリ及びその他のコンピュータ可読媒体内における物理的（電子的）な量として表されたデータを操作すると共にコンピュータシステムのメモリ又はレジストリ又はその他のこの種の情報保存、伝送、又はディスプレイ装置内における物理量として同様に表されたその他のデータに変換する類似の電子演算装置の、動作及びプロセスを参照していることを理解されたい。
【００２７】
本発明の実施形態は以下の問題の解決をすることを対象に、つまり、ホストファイルシステムにおいて且つ個別の仮想ファイルシステムにおいて使用中の実際のデータブロックのみを複写することにより、（例えば、固定タイプのＶＨＤやＶＭＤＫなどの）１つ又は複数の仮想機械に属する１つ又は複数の仮想ファイルシステムをホスティングするために（例えば、Ｈｙｐｅｒ−Ｖ、ＶＭＷａｒｅなどの）仮想化環境において使用されるデータボリュームの新規の複写、ミラー、又はクローンを効率的に生成することを対象にしている。
【００２８】
本発明の実施形態は、１つ又は複数の仮想機械を含む分散型コンピュータシステムにおけるデータ複製のための効率的且つ非常にスケーラブルなプロセスを可能にする解決策を提供する。本発明の実施形態は、データボリュームを最適に複製することができる。ボリュームは、１つ又は複数の仮想機械に属する１つ又は複数の仮想ファイルシステムを有してもよい。本発明の実施形態は、数百個以上の仮想ノード及び物理ノードを有する非常にスケーラブルな分散型コンピュータシステム（例えば、クラウド演算システムなど）で機能するように最適化されている。通常の使用法のシナリオにおいては、アプリケーションデータは、多数のデータサーバーノードに跨って存在している。これらのデータサーバーノードは、物理ノードとするか、仮想ノードとするか、又はこれら２つの組合せとすることができる。クライアントは、データを仮想／物理データサーバーノードのうちの１つ又は複数のノードに直接的に書き込むことにより、分散型コンピュータシステムとやり取りする。物理ノード（例えば、データサーバー）は、通常、複数のＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）を有し、それぞれのＬＵＮは、その独自の予約されたストレージ空間を有する。通常の実装形態は、複数のパーティションを有するように構成されたＬＵＮを有することになろう。
【００２９】
分散型コンピュータシステムのファイルは、オブジェクト（例えば、データオブジェクトなど）から構成されており、これらのオブジェクトは、データサーバーノードのうちのいずれかのノード、ＬＵＮのうちのいずれかのＬＵＮ、及び／又はパーティションのうちのいずれかのパーティションとすることができる。本発明の実施形態は、スケーラブルであると共に高可用性を提供する方式によって分散型コンピュータシステムの仮想ノードのための複製を効率的に処理する。更には、本発明の実施形態は、仮想ノードをオフライン状態にすることなしに、そのアプリケーションプロセスを実装する。
【００３０】
本発明の実施形態は、仮想機械の仮想ファイルシステム（例えば、仮想ファイルシステムを構成するデータオブジェクトなど）を複製する方法を実装する。仮想ファイルシステムのオンライン状態を維持するために、本発明の実施形態は、仮想ファイルシステムを含むホストファイルシステムのオフライン複写（例えば、ホストデータボリューム）に対するアクセスを可能にするスナップショット（例えば、ホストデータボリュームの空間最適化スナップショット）を生成する。次に、本方法は、ホスファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスし、且つ、仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスする。ホストファイルシステム使用状態マップ及び仮想ファイルシステム使用状態マップの情報から、マージされた使用状態マップを生成する。マージされた使用状態マップは、仮想ファイルシステムと関連付けられたホストファイルシステムのアクティブなブロックを識別している。次に、マージされた使用状態マップに従って、複製先において、仮想ファイルシステムを構成するデータオブジェクトなどを複製する。アプリケーションの宛先を使用することにより、いくつかの異なるＲＡＩＤプロセスのうちのいずれか（例えば、ＲＡＩＤ１やＲＡＩＤ５など）を実装することができる。まず、図１を説明することにより、通常のコンピュータシステム環境について説明する。
【００３１】
図１は、本発明の一実施形態によるネットワークアーキテクチャ１００を示すブロック図であり、クライアントシステム１１０、１２０、及び１３０並びにストレージサーバー１４０Ａ及び１４０Ｂがネットワーク１５０に結合されている。ストレージサーバー１４０Ａ及び１４０Ｂを使用し、１つ又は複数の仮想機械をインスタンス生成することができる。ストレージサーバー１４０Ａは、直接的に装着されたストレージ装置１６０Ａ（１）〜１６０Ａ（Ｎ）を有するものとして更に示されており、且つ、ストレージサーバー１４０Ｂは、直接的に装着されたストレージ装置１６０Ｂ（１）〜１６０Ｂ（Ｎ）を有するように示されている。又、ストレージサーバー１４０Ａ及び１４０Ｂは、ＳＡＮファブリック１７０にも接続されているが、ストレージエリアネットワークに対する接続は、本開示の動作のために必須ではない。ＳＡＮファブリック１７０は、ストレージサーバー１４０Ａ及び１４０Ｂによる、且つ、従って、ネットワーク１５０を介したクライアントシステム１１０、１２０、及び１３０による、ストレージ装置１８０（１）〜１８０（Ｎ）に対するアクセスをサポートしている。又、ＳＡＮファブリック１７０は、ストレージアレイ１９０に対するアクセスをもサポートしており、このストレージアレイ１９０も、特定のストレージ装置の一例として示されている。本発明の実施形態の特定の機能は、複製マネージャ１９５を介して実装され、複製マネージャ１９５は、サーバー１４０Ｂ上にインスタンス生成されるものとして示されている。
【００３２】
クライアントコンピュータシステム１１０、１２０、及び１３０は、ネットワーク１５０を介して通信可能に結合されている。クライアントシステム１１０、１２０、及び１３０は、例えば、ウェブブラウザ又はその他のクライアントソフトウェア（図示されてはいない）を使用し、データサーバー１４０Ａ又は１４０Ｂ上の情報にアクセスすることができる。このようなクライアントにより、クライアントシステム１１０、１２０、及び１３０は、ストレージサーバー１４０Ａ又は１４０Ｂ、或いは、ストレージ装置１６０Ａ（１）〜１６０Ａ（Ｎ）、１６０Ｂ（１）〜１６０Ｂ（Ｎ）、１８０（１）〜１８０（Ｎ）のうちの１つ、或いは、ストレージアレイ１９０によってホスティングされているデータに対してアクセスすることができる。更には、図１は、データ交換のためにインターネットなどのネットワークの使用を示しているが、本開示は、インターネット又は任意の特定のネットワークに基づいた環境に限定されるものではない。２つのデータサーバーノード１４０Ａ及び１４０Ｂが示されているが、本発明の実施形態は、数百個以上のノードを有する非常にスケーラブルな分散型コンピュータシステム（例えば、クラウド演算システムなど）で機能することができることに留意されたい。以下、図２を説明することにより、通常の複製プロセスについて説明する。
【００３３】
図２は、本発明の一実施形態による例示用の複製プロセスの動作を示すデータフローチャート２００を示している。図２に示されているように、仮想機械データサーバーのグループ２１０は、多数のクライアントコンピュータシステム（例えば、クライアント１１０〜１３０）によってアクセスされるデータをホスティングしている。Ｉ／Ｏデータがクライアントコンピュータシステムから到来するのに伴って（例えば、Ｉ／Ｏ書込み）、Ｉ／Ｏデータは、複製マネージャ２３０に転送され、複製マネージャ２３０は、Ｉ／Ｏデータを処理し、且つ、処理結果を複数の冗長データサーバー２２０に転送する。
【００３４】
図２の実施形態は、スケーラブルな分散型コンピュータシステム環境を示している。一実施形態においては、分散型コンピュータシステム環境は、データを複製マネージャ２３０から複数の冗長データサーバー２２０に転送することにより、異なるＲＡＩＤ冗長方式のうちのいずれかを実装している。
【００３５】
正常動作においては、クライアントのＩ／Ｏデータが、具体的には、その書込みデータが、生成又は受信され、且つ、仮想機械２１０上に保存される（同様のことが、例えば、１つ又は複数のメタデータサーバーによって書き込まれるメタデータにも当て嵌まる）。次に、仮想機械２１０は、これらのデータオブジェクトを複製マネージャ２３０に転送する。次に、複製マネージャ２３０は、これらのデータオブジェクトを、例えば、ＲＡＩＤポリシーなどの複製ポリシーに従って、宛先である冗長データサーバーに転送する。例えば、ファイルのＲＡＩＤポリシーがＲＡＩＤ−１である場合には、データを複写すればよいが、ＲＡＩＤポリシーがＲＡＩＤ−５である場合には、データを分散させ、パリティを演算しなければならず、或いは、場合によっては、しばしば、パリティを演算する前に、古いデータを読み取ると共にデータをマージしなければならない。
【００３６】
図３は、本発明の一実施形態による例示用の仮想ファイルシステムボリューム及び複製ボリューム３０２を示している。図３に示されているように、ファイルシステムボリュームは、特定量の使用済み空間３１１と残りの量の未使用空間の両方を有しており、未使用空間は、白色空間３１２として示されている。従って、動的ＶＨＤと比べて、例えば、２４ＧＢの固定容量を有する固定ＶＨＤを使用しているＨｙｐｅｒ−Ｖなどの仮想環境においては、ファイルシステムボリュームは、２４ＧＢの固定ＶＨＤを有するブロック全体のうちの補助的な部分（例えば、使用空間３１１）を使用してもよい。
【００３７】
本発明の実施形態は、有利には、新しいミラーがボリュームに追加される際にファイルシステム情報を使用して複写対象のデータの量を低減する最適化された複製プロセスを実装しつつ、高Ｉ／Ｏ性能のために固定ＶＨＤの使用を可能にしている。本発明の実施形態は、仮想ファイルシステムボリュームをオフライン状態にすることなしに、最適化された複製プロセスを実装する。この態様は、仮想ファイルシステムボリュームによってサポートされるアプリケーション／データの可用性を大幅に改善する。本発明の実施形態は、使用空間３１１のみを転送して複製ボリューム３０２を生成することにより、複製プロセスにおけるＩ／Ｏトラフィックを極小化している。複製が完了した際に、複製ボリューム３０２は、使用空間３２１及び白色領域３２２を含むことになり、且つ、仮想ファイルシステムボリューム３０１のミラーとなる。
【００３８】
図４は、本発明の一実施形態による例示用の仮想環境のブロック図を示している。例示用の仮想環境４００は、ホストファイルシステム４０５、ハイパーバイザ４０４、及び仮想機械４０８〜４１２を含む。例示用の仮想環境４００のコンポーネントは、通常、分散型演算システム（例えば、図１のサーバー１４０ａ及び１４０ｂ）上において稼働するか、或いは、別のやり方では、その一部を構成している。
【００３９】
ハイパーバイザ４０４は、ハードウェア４０２（例えば、サーバー１４０ａ及び１４０ｂの）とインターフェイスし、且つ、リソース及びサービスを仮想機械４０８〜４１２に提供している。一実施形態においては、ハイパーバイザ４０４は、ＴＣＢ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｂａｓｅ）の一部である。ハイパーバイザ４０４は、仮想機械４０８〜４１２に対して、ハードウェア４０２内のリソースのエミュレートされた装置を含む抽象化を提供している。この結果、仮想ハードドライブ４１４ａ〜４１４ｃは、物理ボリューム４２０を使用することにより、ハイパーバイザ４０４及びホストファイルシステム４０５を介してエミュレートされている。物理ボリューム４２０は、例えば、サーバー１４０Ａ又は１４０Ｂ上の１つ又は複数のＬＵＮ、又はストレージ装置１６０Ａ（１）〜１６０Ａ（Ｎ）、１６０Ｂ（１）〜１６０Ｂ（Ｎ）、１８０（１）〜１８０（Ｎ）のうちの１つ、又はストレージアレイ１９０ですることができる。
【００４０】
図５は、本発明の一実施形態による個別の使用状態マップ５１１及び５１２を含む例示用の仮想ファイルシステム５０１及び仮想ファイルシステム５０２を示している。又、図５は、個別の使用状態マップ５２１を有するホストファイルシステム５２０をも示している。
【００４１】
図５の実施形態は、２つの異なる仮想機械の仮想ファイルシステム５０１及び５０２の個別の使用状態マップ５１１及び５１２を示している。２つの仮想ファイルシステム５０１及び５０２が示されているが、ホストファイルシステムは、更に多くのファイルシステム（例えば、１０〜２０個の、場合によっては、更に多くのファイルシステム）をサポートしてもよいことに留意されたい。本発明の実施形態は、個別のホストファイルシステム使用状態マップ５２１をチェックすることにより、いくつかの仮想機械のうちのどれが最近アクティブであったのかを判定することができる。ホストファイルシステム使用状態マップ５２１は、どの仮想ファイルシステムがアクティブであったか（例えば、更新された物理ボリュームのブロック）を識別することになる。複製マネージャ５３０は、ホスト機械のホストファイルシステム使用状態マップ５２１にアクセスし、且つ、ホストファイルシステムの複数のブロックのうちのアクティブなブロックを見出すことができる。又、複製マネージャ５３０は、仮想機械の仮想ファイルシステム使用状態マップ５１１及び／又は５１２にアクセスすることもできる。仮想ファイルシステム使用状態マップ５１１及び５１２は、仮想ファイルシステムの複数のブロック全体のうちのアクティブなブロックを示している。複製マネージャは、この情報を使用し、マージされた使用状態マップ５４０を生成する。マージされた使用状態マップ５４０は、仮想ファイルシステムと関連付けられた（例えば、物理ボリューム上の）ホストファイルシステムのアクティブなブロックを識別している。
【００４２】
一実施形態においては、仮想機械は、複製マネージャが仮想ファイルシステム使用状態マップにアクセスするために、ホスト機械によってマウントされる必要がある。このような実施形態においては、仮想機械及び仮想ファイルシステム５１１は、複製マネージャ５３０が仮想ファイルシステム５０１の使用状態マップ５１１にアクセスできるようにするために、ハイパーバイザ及びホストファイルシステム５２０によってマウントされる必要がある。
【００４３】
或いは、この代わりに、一実施形態においては、仮想機械は、ホストファイルシステムにアクセスするために、ホスト機械によってマウントされる必要はない。このような実施形態においては、複製マネージャ５３０は、（例えば、ＡＰＩ呼出しなどを介して）仮想ファイルシステム５０１の使用状態マップ５１１に対して更に直接的にアクセスすることができる。
【００４４】
図６は、本発明の一実施形態による物理装置上においてインスタンス生成された複製先ボリュームの図を示している。上述のように、複製先ボリュームは、例えば、サーバー１４０Ａ又は１４０Ｂ上の１つ又は複数のＬＵＮ、或いは、ストレージ装置１６０Ａ（１）〜１６０Ａ（Ｎ）、１６０Ｂ（１）〜１６０Ｂ（Ｎ）、１８０（１）〜１８０（Ｎ）のうちの１つ、又はストレージアレイ１９０として実装することができる。マージされた使用状態マップ５４０が生成されたら、仮想ファイルシステムと関連付けられた（例えば、物理ボリューム上の）ホストファイルシステムのアクティブなブロックが、複製先に転送され、且つ、複製されたファイルシステム６０１及び６０２を生成するために使用される。複製されたファイルシステム６０１及び６０２は、仮想ファイルシステム５０１及び５０２のミラーである。上述のように、複製されたファイルシステム６０１及び６０２を生成するために、使用空間のみが転送されるため、複製プロセスにおけるＩ／Ｏトラフィックが極小化される。
【００４５】
又、一実施形態においては、マージされた使用状態マップ６４０を複製先ボリュームにおいて複製することもできる。マージされた使用状態マップ６４０は、マージされた使用状態マップ５４０の複写である。
【００４６】
図７は、本発明の一実施形態による複製プロセス７００のステップのフローチャートを示している。図７に示されているように、プロセス７００は、仮想機械の仮想ファイルシステムにおける複製を実装することに関係する、例示用の動作ステップを示しており、貴方は最初のドラフトを支援することになる。一実施形態においては、複製プロセスが複数の仮想ファイルシステムを含むデータボリュームに対して実行され、ボリューム上のすべての仮想ファイルシステムが複製される。上述のように、本発明の実施形態は、データボリュームの最適な複製を対象としている。ボリュームは、１つ又は複数の仮想機械に属するホストファイルシステム及び／又は１つ又は複数の仮想ファイルシステムを有してもよい。
【００４７】
プロセス７００は、ステップ７０１において始まり、ここで、複製マネージャは、ホストファイルシステム（例えば、ホストデータボリューム）の空間最適化スナップショットを生成している。上述のように、仮想ファイルシステムは、その個別のアプリケーションによってアクティブに使用されている状態にある。スナップショットを取得することにより、ターゲット仮想ファイルシステムのオンライン状態を妨げることなしに仮想ファイルシステムの複写に対するアクセスが可能となる。このステップにおいては、複製プロセスが空間最適化読出し専用複写を分析している最中に発生する任意の新規の書込みが適切に反映されるように、最初にターゲットミラーデータボリュームを生成している。
【００４８】
空間最適化スナップショットは、比較的小さな量のストレージ空間を使用して書込みの複写を収容することにより、新規の書込みをホストファイルシステム内において反映させていることに留意されたい。又、オンライン状態にある１つ又は複数の仮想機械を妨げることなしに、且つ、オリジナルの仮想ファイルシステムを使用することなしに、複写を使用して１つ又は複数の仮想ファイルシステムにアクセスしていることにも留意されたい。更には、複製プロセスが仮想ファイルシステムのスナップショット複写を使用している最中にホスト／仮想ファイルシステムに書き込まれている新しいデータの受信を既に開始することができるように、ターゲットミラーが、この時点において生成されている。
【００４９】
ステップ７０２において、複製マネージャは、ホストファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスしている。一実施形態においては、プライマリボリューム上における仮想ファイルシステムのアクセス性を維持するために、特定時点における「スナップショット」ボリュームが生成され、且つ、このスナップショットボリュームを使用して複製が実行される。
【００５０】
ステップ７０３において、複製マネージャは、空間最適化スナップショットを使用し、仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスしている。上述のように、仮想ファイルシステム使用状態マップに対するアクセスは、別個の仮想機械を通じて仮想ディスクファイルをスナップショット上においてマウントすることにより、或いは、仮想ファイルフォーマット（例えば、ＶＨＤ／ＶＭＤＫなどのフォーマット又は同様なもの）を理解するオフラインツール又はＡＰＩを使用することにより、実装することができる。
【００５１】
ステップ７０４において、複製マネージャは、ホストファイルシステム使用状態マップ及び仮想ファイルシステム使用状態マップの情報から、仮想ファイルシステムと関連付けられたホストファイルシステムのアクティブなブロックを識別するマージされた使用状態マップを生成している。複数の仮想ファイルシステムがボリューム上に存在している場合には、仮想ファイルシステムからの使用状態マップのすべてを使用し、マージされた使用状態マップを生成する。
【００５２】
この後に、ステップ７０５において、複製マネージャは、マージされた使用状態マップに従って、複製先において仮想ファイルシステムを複製している。例えば、一実装形態においては、複製マネージャは、ステップ７０４からのマージされた使用状態マップを使用し、ホストファイルシステム（例えば、ソースボリューム）から、ステップ７０１において生成されたターゲットミラー上に、使用中のブロックを複写することにより、複製を完了させている（例えば、ミラー／クローン生成）。
【００５３】
図８は、本発明の一実施形態による複製機能の特定の態様を実装する複製マネージャ８００の図を示している。複製マネージャ８００は、インスタンス生成された際に本発明の実施形態の複製プロセスの機能を実装するソフトウェアコンポーネント又はモジュールである。複製マネージャ８００は、ホストファイルシステムにアクセスしてホストファイルシステムの使用状態マップを読み取ることによって機能するホストファイルシステムアクセスモジュール８０１を含む。仮想ファイルシステムアクセスモジュール８０２も、含まれており、且つ、これは、仮想機械の仮想ファイルシステムにアクセスすると共に仮想ファイルシステムの使用状態マップを読み取ることによって機能する。マージされた使用状態マップ生成モジュールも、含まれており、且つ、これは、ホストファイルシステム使用状態マップの情報を仮想ファイルシステム使用状態マップの情報とマージするために使用される。ファイルシステム複製モジュールは、マージされた使用状態マップに従って、仮想ファイルシステムを構成するデータブロックを複製するために含まれている。
【００５４】
図９は、本発明の一実施形態による例示用の複製システム環境におけるスナップショットの複製動作を示している。プライマリボリューム上における仮想ファイルシステムのアクセス性を維持するために、特定時点における「スナップショット」ボリューム（ｓｖ）が生成され、且つ、このスナップショットボリュームを使用して複製が実行される。図示の実施形態においては、プライマリファイルシステムがプライマリノード９００ａ内においてその上部にマウントされるプライマリボリューム（ｖ）の増分的に変更又は変形されたデータの（図３の仮想ファイルシステム３０１の）複写が、必要に応じて、複製プロセスにより、セカンダリファイルシステムがセカンダリノード９００ｂ内においてその上部にマウントされる複製されたセカンダリボリューム（ｖｒ）に転送される。プライマリボリュームのアクセス性を維持するために、特定時点における「スナップショット」ボリューム（ｓｖ）が生成され、且つ、このスナップショットボリュームを使用して複製が実行される。同様に、セカンダリボリュームのアクセス性を維持するために、特定時点における「スナップショット」ボリューム（ｒｓｖ）が、生成され、且つ、プライマリノード９００ａから増分的な変化を受け取ると共に複製されたセカンダリボリュームを回復するために、セカンダリノード９００ｂにおいて使用される。この結果、本発明の実施形態は、複製プロセスの全体を通じて、仮想機械及び仮想ファイルシステムを、オンライン状態に、且つ、アクセス可能状態に、且つ、完全に機能可能な状態に、維持している
【００５５】
図示の実施形態の複製システムにおいては、プライマリノード９００ａは、ネットワーク９１４（例えば、ＩＰネットワーク、ＬＡＮ、ＷＡＮ、又はその他の通信リンク）を介してセカンダリノード９００ｂに結合されている。図示の実施形態のプライマリノード９００ａ及びセカンダリノード９００ｂは、図示のように、それぞれ、個別に、アプリケーション９０２、ボリュームマネージャ９０６、及び定期的複製マネージャ９０５を含む。
【００５６】
ボリューム９１０ａ、９１０ｂ、９１６、及び９２２は、プライマリノード９００ａ及びセカンダリノード９００ｂのエンクロージャ内に存在するもの（例えば、ディスクドライブ、半導体ディスク、又は同様なもの）として示されているが、これらのボリュームは、エンクロージャの外部に存在することも可能であり、且つ、（例えば、ｅｔｈｅｒｎｅｔやファイバチャネルなどの）ネットワーク及び／又はバス接続を介してアクセスすることもできることに留意されたい。
【００５７】
図１０は、一実施形態による例示用のコンピュータシステム１０００を示している。コンピュータシステム１０００は、上述した実施形態における特定のハードウェアに基づいた及びソフトウェアに基づいた機能のための実行環境を提供する基本コンピュータシステムのコンポーネントを示している。例えば、コンピュータシステム１０００は、図９の複製マネージャ９０５ａ及び１つ又は複数のソフトウェアスタックがその上部においてインスタンス生成されるシステムであってよい。コンピュータシステム１０００は、例えば、サーバーコンピュータシステム、ワークステーションコンピュータシステム、デスクトップコンピュータシステム、又はラップトップコンピュータシステムとして実装することができる。同様に、コンピュータシステム１０００は、ハンドヘルド型の装置として実装することもできる。コンピュータシステム１０００は、通常、少なくともなんらかの形態のコンピュータ可読媒体（例えば、コンピュータ可読ストレージ媒体１００１）を含む。コンピュータ可読媒体は、コンピュータシステム１０００によるアクセスが可能であると共に限定を伴うことなしにコンピュータストレージ媒体を含むことができるいくつかの異なるタイプの利用可能な媒体とすることができる。
【００５８】
その最も基本的な構成において、コンピュータシステム１０００は、通常、処理ユニット１００３と、コンピュータ可読ストレージ媒体１００１と、を含む。使用するコンピュータシステム１０００の正確な構成及びタイプに応じて、メモリ１００１は、揮発性（例えば、ＤＲＡＭなど）、不揮発性とすることができ（例えば、ＲＯＭやフラッシュメモリなど）、或いは、これら２つのなんらかの組合せとすることができる。同様に、メモリ１００１は、半導体装置に加えて、例えば、磁気ディスクに基づいた媒体、光学媒体、又は同様なものなどのその他の装置を有することもできる。
【００５９】
更には、コンピュータシステム１０００は、磁気又は光ディスク又はテープなどのその他の大容量ストレージシステム（例えば、着脱自在のストレージ１００５及び／又は非着脱自在のストレージ１００７）を含むこともできる。同様に、コンピュータシステム１０００は、入力装置１０１１及び／又は出力装置１００９（例えば、ディスプレイなど）を含むこともできる。コンピュータシステム１０００は、その他の装置、コンピュータ、ネットワーク、サーバーなどに対する有線又は無線媒体を使用する通信接続１０１３を更に含むこともできる。これらの装置は、いずれも、当技術分野において周知であることから、これらの詳細な説明は不要である。
【００６０】
更には、コンピュータシステム１０００の機能がクラウド演算環境を使用して部分的又は全体的に実行される場合など、コンピュータシステム１０００の機能の一部、大部分、又はすべてを多数の分散された演算ノードを有する分散型コンピュータシステムによって置換することもできることに更に留意されたい。
【００６１】
図１１は、本発明の一実施形態による特定の機能を実装するのに適した第２コンピュータシステム１１１０のブロック図を示している。コンピュータシステム１１１０は、バス１１１２を含み、バス１１１２は、中央プロセッサ１１１４、システムメモリ１１１７（通常は、ＲＡＭであるが、ＲＯＭ、フラッシュＲＡＭ、又は同様なものを含んでもよい）、入出力コントローラ１１１８、オーディオ出力インターフェイス１１２２を介したスピーカシステム１１２０などの外部オーディオ装置、ディスプレイアダプタ１１２６を介した表示画面１１２４などの外部装置、シリアルポート１１２８及び１１３０、（キーボードコントローラ１１３３によってインターフェイスされた）キーボード１１３２、ストレージインターフェイス１１３４、フロッピーディスク１１３８を受け入れるように動作可能なフロッピーディスクドライブ１１３７、Ｆｉｂｅｒ  Ｃｈａｎｎｅｌネットワーク１１９０と接続するように動作可能なＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）インターフェイスカード１１３５Ａ、ＳＣＳＩバス１１３９に接続するように動作可能なＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）インターフェイスカート１１３５Ｂ、及び光ディスク１１４２を受け入れるように動作可能な光ディスクドライブ１１４０などのコンピュータシステム１１１０の主要なサブシステムを相互接続している。又、マウス１１４６（或いは、シリアルポート１１２８を介してバス１１１２に結合されたその他のポインティング及びクリック装置）、（シリアルポート１１３０を介してバス１１１２に結合された）モデム１１４７、及び（バス１１１２に直接的に結合された）ネットワークインターフェイス１１４８も含まれている。
【００６２】
バス１１１２は、中央プロセッサ１１１４とシステムメモリ１１７の間のデータ通信を許容しており、システムメモリ１１１７は、上述のように、読出し専用メモリ（ＲＯＭ）又はフラッシュメモリ（いずれも図示されてはいない）及びランダムアクセスメモリ（ＲＡＭ）（図示されてはいない）を含んでもよい。ＲＡＭは、一般に、オペレーティングシステム及びアプリケーションプログラムがその内部に読み込まれるメインメモリである。図１１の実施形態においては、システムメモリ１１１７が上述の連続的複製機能を実装する複製マネージャモジュール１１５０をインスタンス生成している。ＲＯＭ又はフラッシュメモリは、その他のコードとして、周辺コンポーネントとのやり取りなどの基本的なハードウェア動作を制御するＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ−Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）を収容することができる。コンピュータシステム１１１０と共に存在しているアプリケーションは、一般に、ハードディスクドライブ（例えば、固定されたディスク１１４４）、光ドライブ（例えば、光ドライブ１１４０）、フロッピーディスクユニット１１３７、又はその他のストレージ媒体などのコンピュータ可読媒体上に保存され、且つ、これらを介してアクセスされる。更には、アプリケーションは、ネットワークモデム１１４７又はインターフェイス１１４８を介してアクセスされた際に、アプリケーション及びデータ通信技術に従って変調された電子信号の形態とすることができる。
【００６３】
ストレージインターフェイス１１３４は、コンピュータシステム１１１０のその他のストレージインターフェイスと同様に、固定ディスクドライブ１１４４などの情報の保存及び／又は取得のために、標準的なコンピュータ可読媒体に接続することができる。固定ディスクドライブ１１４４は、コンピュータシステム１１１０の一部であってもよく、或いは、別個であって、その他のインターフェイスシステムを通じてアクセスしてもよい。モデム１１４７は、電話リンクを介したリモートサーバーに対する、或いは、ＩＳＰ（Ｉｎｔｅｒｎｅｔ  Ｓｅｒｖｉｃｅ  Ｐｒｏｖｉｄｅｒ）を介したインターネットに対する、直接的な接続を提供してもよい。ネットワークインターフェイス１１４８は、ＰＯＰ（Ｐｏｉｎｔ  Ｏｆ  Ｐｒｅｓｅｎｃｅ）を介したインターネットに対する直接的なネットワークリンクを介してリモートサーバーに対する直接的な接続を提供してもよい。ネットワークインターフェイス１１４８は、デジタルセルラー電話接続、ＣＤＰＤ（Ｃｅｌｌｕｌａｒ  Ｄｉｇｉｔａｌ  Ｐａｃｋｅｔ  Ｄａｔａ）接続、デジタル衛星データ接続、又は同様なものを含む無線技法を使用してこれらの接続を提供してもよい。
【００６４】
多くのその他の装置又はサブシステム（図示されてはいない）を類似の方式によって接続してもよい（例えば、文書スキャナ、デジタルカメラなど）。逆に、図１１に示されている装置のすべてが本開示を実施するために必須であるというわけではない。装置及びサブシステムは、図１１に示されているものとは異なる方法によって相互接続することができる。図１１に示されているものなどのコンピュータシステムの動作については、当技術分野において周知であり、従って、本出願においては詳細な説明を省略する。本開示を実装するためのコードは、システムメモリ１１１７、固定ディスク１１４４、光ディスク１１４２、又はフロッピーディスク１１３８のうちの１つ又は複数のものなどのコンピュータ可読ストレージ媒体内に保存することができる。コンピュータシステム１１１０上に提供されるオペレーティングシステムは、ＭＳ−ＤＯＳ（登録商標）、ＭＳ−ＷＩＮＤＯＷＳ（登録商標）、ＯＳ／２（登録商標）、ＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標）、又は別の既知のオペレーティングシステムであってよい。
【００６５】
更には、本明細書に記述されている信号と関連し、当業者は、信号を第１ブロックから第２ブロックに直接的に送信することが可能であり、或いは、信号をブロックの間において変更（例えば、増幅、減衰、遅延、ラッチング、バッファリング、反転、フィルタリング、又はその他の方法で変更）することもできることを認識するであろう。上述の実施形態の信号は、ブロックから別のブロックへ送信されるものとして特徴付けられているが、本開示のその他の実施形態は、信号の情報的な且つ／又は機能的な側面がブロックの間において送信される限り、このような直接的に送信される信号の代わりに、変更された信号を含んでもよい。第２ブロックにおいて入力される信号は、関連する回路の物理的な制限に起因して第１ブロックから出力される第１信号から導出された第２信号として、ある程度、概念的に説明することができる（例えば、多少の減衰及び遅延が不可避に存在することになる）。従って、本明細書において使用されている第１信号から導出される第２信号は、第１信号を、或いは、回路の制限に起因した又は第１信号の情報的な且つ／又は最終的な機能的な側面を変更しないその他の回路要素の通過に起因した第１信号に対する任意の変更を、含む。
【００６６】
説明を目的とした以上の記述内容は、特定の実施形態を参照して提供されている。但し、上述の内容は、本発明を包括的に、或いは、開示された形態そのままに本発明を限定することを意図したものではない。上述の教示内容に鑑み、多数の変更形態及び変形形態が可能である。本発明の原理及びその実際的な用途を最良に説明することにより、想定される特定の使用法に適し得る様々な変更を伴って当業者が本発明及び様々な実施形態を最良に利用することができるようにするために、実施形態を選択及び説明した。
【図１】
2013539094.tif 000003
【図２】
2013539094.tif 000004
【図３】
2013539094.tif 000005
【図４】
2013539094.tif 000006
【図５】
2013539094.tif 000007
【図６】
2013539094.tif 000008
【図７】
2013539094.tif 000009
【図８】
2013539094.tif 000010
【図９】
2013539094.tif 000011
【図１０】
2013539094.tif 000012
【図１１】
2013539094.tif 000013
【国際調査報告】
2013539094.tif 000014
2013539094.tif 000015