(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5690402
(24)【登録日】2015年2月6日
(45)【発行日】2015年3月25日
(54)【発明の名称】仮想機械を意識した複製方法及びシステム
(51)【国際特許分類】
G06F 12/00 20060101AFI20150305BHJP
G06F 3/06 20060101ALI20150305BHJP
G06F 13/10 20060101ALI20150305BHJP
【FI】
G06F12/00 531M
G06F3/06 304F
G06F3/06 301Z
G06F13/10 340A
G06F12/00 514E
G06F12/00 545A
【請求項の数】20
【全頁数】23
(21)【出願番号】特願2013-519686(P2013-519686)
(86)(22)【出願日】2011年6月2日
(65)【公表番号】特表2013-539094(P2013-539094A)
(43)【公表日】2013年10月17日
(86)【国際出願番号】US2011038950
(87)【国際公開番号】WO2012009064
(87)【国際公開日】20120119
【審査請求日】2013年2月21日
(31)【優先権主張番号】12/837,445
(32)【優先日】2010年7月15日
(33)【優先権主張国】US
【前置審査】
(73)【特許権者】
【識別番号】501113353
【氏名又は名称】シマンテック コーポレーション
【氏名又は名称原語表記】Symantec Corporation
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(72)【発明者】
【氏名】リン・クリス ヂーチェン
(72)【発明者】
【氏名】ジャナキラマン・ヴィスウェスヴァラン
【審査官】
加内 慎也
(56)【参考文献】
【文献】
米国特許出願公開第2004/0158589(US,A1)
【文献】
米国特許第06618736(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 3/06
G06F 13/10
(57)【特許請求の範囲】
【請求項1】
仮想機械の仮想ファイルシステムを複製する方法であって、
ホストファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスするステップと、
前記仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスするステップと、
前記ホストファイルシステム使用状態マップ及び前記仮想ファイルシステム使用状態マップの情報から、前記仮想ファイルシステムと関連付けられた前記ホストファイルシステムのアクティブなブロックを識別するマージされた使用状態マップを生成するステップと、
前記マージされた使用状態マップに従って、複製先において前記仮想ファイルシステムを複製するステップであって、前記仮想ファイルシステムの前記複製をサポートするために、前記仮想ファイルシステムのスナップショットが生成され、前記複製が前記スナップショットを用いて実行され、前記仮想ファイルシステムが、前記仮想ファイルシステムの複製中に、オンライン状態であり続けるように構成される、前記仮想ファイルシステムを複製するステップと、
を有する方法。
【請求項2】
前記仮想機械は、前記ホストファイルシステムにアクセスするために、前記ホスト機械によってマウントされる請求項1に記載の方法。
【請求項3】
前記仮想ファイルシステムは、固定された仮想ストレージ装置としてインスタンス生成される請求項1に記載の方法。
【請求項4】
前記仮想ファイルシステムは、動的に割り当てられた仮想ストレージ装置としてインスタンス生成される請求項1に記載の方法。
【請求項5】
前記仮想ファイルシステムの前記複製をサポートするために、前記ホストファイルシステムから増分的な変化を受け取る、前記仮想ファイルシステムのスナップショットが生成される請求項1に記載の方法。
【請求項6】
前記スナップショットは、前記仮想ファイルシステムの前記複製の際に、前記仮想ファイルシステムがオンライン状態に留まることができるようにする請求項5に記載の方法。
【請求項7】
前記複製先は、RAID機能を実装する物理ストレージ装置である請求項1に記載の方法。
【請求項8】
前記ホストファイルシステム使用状態マップは、ファイルシステム使用状態ビットマップを有する請求項1に記載の方法。
【請求項9】
コンピュータシステムによって実行された場合に前記コンピュータシステムに方法を実施させ、コンピュータ実行可能命令を保存したコンピュータ可読ストレージ媒体であって、
前記方法は、
ホストファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスするステップと、
仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスするステップと、
前記ホストファイルシステム使用状態マップ及び前記仮想ファイルシステム使用状態マップの情報から、前記仮想ファイルシステムと関連付けられた前記ホストファイルシステムのアクティブなブロックを識別するマージされた使用状態マップを生成するステップと、
前記マージされた使用状態マップに従って、複製先において前記仮想ファイルシステムを複製するステップであって、前記仮想ファイルシステムの前記複製をサポートするために、前記仮想ファイルシステムのスナップショットが生成され、前記複製が前記スナップショットを用いて実行され、前記仮想ファイルシステムが、前記仮想ファイルシステムの複製中に、オンライン状態であり続けるように構成される、前記仮想ファイルシステムを複製するステップと、
を有する、コンピュータ可読ストレージ媒体。
【請求項10】
前記仮想機械は、前記ホストファイルシステムにアクセスするために、前記ホスト機械によってマウントされる請求項9に記載のコンピュータ可読ストレージ媒体。
【請求項11】
前記仮想ファイルシステムは、固定された仮想ストレージ装置としてインスタンス生成される請求項9に記載のコンピュータ可読ストレージ媒体。
【請求項12】
前記仮想ファイルシステムは、動的に割り当てられた仮想ストレージ装置としてインスタンス生成される請求項9に記載のコンピュータ可読ストレージ媒体。
【請求項13】
前記仮想ファイルシステムの前記複製をサポートするために、前記ホストファイルシステムから増分的な変化を受け取る、前記仮想ファイルシステムのスナップショットが生成される請求項9に記載のコンピュータ可読ストレージ媒体。
【請求項14】
前記スナップショットは、前記仮想ファイルシステムの前記複製の際に、前記仮想ファイルシステムがオンライン状態に留まることができるようにする請求項13に記載のコンピュータ可読ストレージ媒体。
【請求項15】
前記複製先は、RAID機能を実装する物理ストレージ装置である請求項9に記載のコンピュータ可読ストレージ媒体。
【請求項16】
前記ホストファイルシステム使用状態マップは、ファイルシステム使用状態ビットマップを有する請求項9に記載のコンピュータ可読ストレージ媒体。
【請求項17】
ボリューム複製システムであって、
プロセッサを有するコンピュータシステムであって、前記プロセッサは、コンピュータ可読ストレージ媒体に結合され、且つ、前記コンピュータシステムに複製マネージャモジュールを実装させるコンピュータ可読コードを実行する、コンピュータシステムを有し、
前記複製マネージャモジュールは、
ホストファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスし、
仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスし、
前記ホストファイルシステム使用状態マップ及び前記仮想ファイルシステム使用状態マップの情報から、前記仮想ファイルシステムと関連付けられた前記ホストファイルシステムのアクティブなブロックを識別するマージされた使用状態マップを生成し、且つ、
前記マージされた使用状態マップに従って、前記仮想ファイルシステムの複製をサポートするために生成される前記仮想ファイルシステムのスナップショットを用いて、複製先において前記仮想ファイルシステムを複製し、
前記仮想ファイルシステムが前記仮想ファイルシステムの複製中にオンライン状態であり続けるように構成される、システム。
【請求項18】
前記仮想機械は、前記ホストファイルシステムにアクセスするために、前記ホスト機械によってマウントされる請求項17に記載のシステム。
【請求項19】
前記仮想ファイルシステムの前記複製をサポートするために、前記ホストファイルシステムから増分的な変化を受け取る、前記仮想ファイルシステムのスナップショットが生成される請求項17に記載のシステム。
【請求項20】
前記スナップショットは、前記仮想ファイルシステムの前記複製の際に、前記仮想ファイルシステムがオンライン状態に留まることができるようにする請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、デジタルコンピュータに関し、更に詳しくは、ボリューム内のデータを定期的に複製するシステム及び方法に関する。
【背景技術】
【0002】
情報は、事業の原動力である。企業は、現在、その事業の遂行のために、頻繁にアクセスされ、絶え間なく変化しているオンラインデータに、前例がないほどに依存している。このデータの可用性を妨げる意図しないイベントが事業の遂行を深刻に損なう可能性がある。更には、自然災害やその他の原因によるなんらかの永久的なデータの損失も、事業の継続的な実行可能性に対して深刻な負の影響をもたらしやすい。従って、企業は、災害が発生した際にデータの損失を除去又は極小化するため、および使用可能なデータによって迅速に回復するため、準備しなければならない。
【0003】
複製技術は、主には、災害の回復とデータの分散のために使用されている。連続的複製技術は、多くの場合に、RAIDに基づいた複製方式(例えば、ディスクのミラーリング、パリティ、又は同様なもの)を含む。連続的複製は、データがアプリケーションによって書き込まれることにより、データの複写を維持する。定期的複製は、データの損失を極小化すると共にデータの可用性を改善するために利用される別の技法であり、データの特定時点における複写が、複製され、且つ、1つ又は複数のリモートサイト又はノードにおいて保存される。サイトの移動、データを保存している1つ又は複数の物理ディスクの障害、又はこのようなディスクと関連付けられたノード又はホストデータ処理システムの障害の場合には、遠隔の複製されたデータの複写を利用してもよい。連続的複製及び定期的複製のいずれにおいても、複製されたデータには、災害の回復に加えて、例えば、データマイニング、報告、試験、及び同様なものなどのいくつかのその他の使用法が可能である。従って、複製されたデータの複写は、データの完全性及び可用性を保証する。更には、複製技術は、極めて安定したデータ保存解決法を提供するために、クラスタリングなどのその他の高可用性の技法とも頻繁に結合される。
【0004】
ファイルシステムやデータベースなどのアプリケーションに必要とされるデータストレージは、通常、「ボリューム」として維持される1つ又は複数のストレージ装置から割り当てられる。「ボリューム」は、ファイルシステムの単一のインスタンスを使用して1つ又は複数のストレージ媒体上に保存されているデータにアクセスするために、オペレーティングシステムが使用する論理的インターフェイスとして機能してもよい。従って、ボリュームは、ストレージの割当及び(任意選択により)データの保護/冗長性をアプリケーションから本質的に「隠蔽」する抽象化として機能してもよい。アプリケーションは、そのデータを複数のボリューム上に保存することができる。ボリュームの内容に対しては、ブロックと呼ばれる固定サイズのデータ単位を使用してアクセスする。
【0005】
非常に大規模な分散型コンピュータシステムにおいては、データは、いくつかのデータサーバー内において分散されている。クライアントは、任意のメタデータサーバーとのやり取りを最小限の接点により、データをデータサーバーに直接的に書き込む。データサーバーは、通常、複数のLUN(Logical Unit Number)を有し、LUNは、その独自の予約済みストレージ空間を有する。それぞれのLUNは、多数のパーティションを有することが可能であり、これらのパーティション内には、オブジェクトが収容される。分散型コンピュータシステムのファイルシステムのファイルは、データサーバーのいずれかのLUNパーティションのオブジェクトから構成されている。様々なデータサーバーのオブジェクトを組み合わせてRAIDグループを形成する。
【0006】
Hyper−Vなどの仮想環境においては、仮想ディスクの性能は、動的VHDではなく、固定VHDを使用した際に、最良となる。固定VHDは、VHDが生成される際に、ファイルシステム内のすべてのブロックを割り当てる。従って、例えば、24GBの固定VHDは、約24GBのファイルを生成することになる。これは、例えば、VHDに実際に書き込まれるデータを保存するのに十分なストレージのみを割り当てる動的VHDとは異なる。24GBの動的VHDは、生成された際に数MBを占有することだけできる。固定VHDは、性能が優れているが、新しいミラーをボリュームに追加する際にファイルシステム情報を使用して複写対象のデータ量を低減する、複製プロセスの最適化において課題をもたらす。
【発明の概要】
【発明が解決しようとする課題】
【0007】
固定VHDは、事前にすべてのブロックを割り当てているため、最適化された複製プロセスの従来の実装においては、すべてのブロックがVHDファイルによって使用されているわけではないにも拘わらず、VHDによって使用されている任意のブロックをスキップすることができない。「最適化されたミラー/クローン生成」の従来の実装は、VHDファイル自体の外側であると共にそれらのVHDファイルがホスティングしているファイルシステムの内部ではない未使用の白色空間をスキップすることができるのみである。従って、このような多数の大規模なVHDファイルをホスティングしている通常のボリュームは、ボリュームに関するファイルシステム情報を単純に使用することだけでは、なんらかの性能上の利益を得ることができない。この結果、従来の最適化された方式によって実行される複製プロセスは、過大な時間を所要すると共に、過剰にリソース集約的なものになる。
【課題を解決するための手段】
【0008】
本発明の実施形態は、1つ又は複数の仮想機械を含む分散型コンピュータシステムにおけるデータ複製のための効率的であって、高可用性であり、且つ、非常にスケーラブルなプロセスを可能にする解決策を提供する。本発明の実施形態は、VHDファイルシステムがホスティングしているファイルシステムを通じて個々のVHDファイルを調査し、白色空間の複写を実際に除去することができる最適化された方式を実装する。
【0009】
一実施形態においては、本発明は、仮想機械の仮想ファイルシステムを複製する方法として実装される。この方法は、ホストファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスするステップと、仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスするステップと、を含む。ホストファイルシステム使用状態マップ及び仮想ファイルシステム使用状態マップの情報から、仮想ファイルシステムと関連付けられたホストファイルシステムのアクティブなブロックを識別するマージされた使用状態マップを生成する。次に、マージされた使用状態マップに従って、
前記仮想ファイルシステムの複製をサポートするために生成される前記仮想ファイルシステムのスナップショットを用いて、複製先において仮想ファイルシステムを複製し、仮想ファイルシステムが、仮想ファイルシステムの複製中に、オンライン状態であり続けるように構成される。
【0010】
一実施形態においては、仮想機械は、ホストファイルシステムにアクセスするために、ホスト機械によってマウントされる。
【0011】
一実施形態においては、仮想ファイルシステムは、固定された仮想ストレージ装置としてインスタンス生成される。
【0012】
一実施形態においては、仮想ファイルシステムは、動的に割り当てられた仮想ストレージ装置としてインスタンス生成される。
【0013】
一実施形態においては、仮想ファイルシステムの複製をサポートするために、
前記ホストファイルシステムから増分的な変化を受け取る、仮想ファイルシステムのスナップショットが生成される。
【0014】
一実施形態においては、スナップショットにより、仮想ファイルシステムは、仮想ファイルシステムの複製の際にオンライン状態に留まることができる。
【0015】
一実施形態においては、複製先は、RAID機能を実装する物理ストレージ装置である。
【0016】
一実施形態においては、ホストファイルシステム使用状態マップは、ファイルシステム使用状態ビットマップを有する。
【0017】
一実施形態においては、本発明は、コンピュータシステムによって実行された場合にコンピュータシステムに複製方法を実施させ、コンピュータ実行可能命令を保存したコンピュータ可読ストレージ媒体として実装される。この方法は、ホストファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスするステップと、仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスするステップと、を含む。ホストファイルシステム使用状態マップ及び仮想ファイルシステム使用状態マップの情報から、仮想ファイルシステムと関連付けられたホストファイルシステムのアクティブなブロックを識別するマージされた使用状態マップを生成する。次に、マージされた使用状態マップに従って、
前記仮想ファイルシステムの複製をサポートするために生成される前記仮想ファイルシステムのスナップショットを用いて、複製先において仮想ファイルシステムを複製し、仮想ファイルシステムが、仮想ファイルシステムの複製中に、オンライン状態であり続けるように構成される。
【0018】
一実施形態においては、本発明は、ボリューム複製システムとして実装される。このシステムは、プロセッサを有するコンピュータシステムを含み、プロセッサは、コンピュータ可読ストレージ媒体に結合され、且つ、コンピュータシステムに複製マネージャモジュールを実装させるコンピュータ可読コードを実行する。複製マネージャモジュールは、ホストファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスし、且つ、仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスする。複製マネージャモジュールは、ホストファイルシステム使用状態マップ及び仮想ファイルシステム使用状態マップの情報から、仮想ファイルシステムと関連付けられたホストファイルのアクティブなブロックを識別するマージされた使用状態マップを生成する。次に、複製マネージャモジュールは、マージされた使用状態マップに従って、
前記仮想ファイルシステムの複製をサポートするために生成される前記仮想ファイルシステムのスナップショットを用いて、複製先において仮想ファイルシステムを複製し、仮想ファイルシステムが、仮想ファイルシステムの複製中に、オンライン状態であり続けるように構成される。
【0019】
以上の内容は、概要であり、且つ、従って、必要に応じて、詳細内容の簡易化、一般化、及び省略形態を含んでおり、従って、当業者は、この概要が、例示を目的としたものに過ぎず、且つ、決して限定を意図したものではないことを理解するであろう。請求項によってのみ規定される本発明のその他の態様、発明上の特徴、及び利点は、後述する非限定的な詳細説明から明らかとなろう。
【0020】
本発明は、限定としてではなく、一例として、添付図面の図中に示されており、且つ、これらの図面においては、同一の参照符号によって類似の要素を示している。
【図面の簡単な説明】
【0021】
【
図1】本発明の一実施形態による複製システム環境における定期的複製動作を示す。
【
図2】本発明の一実施形態による仮想機械ノードと冗長データサーバーノードの間において実装される定期的複製動作を示す。
【
図3】本発明の一実施形態による例示用の仮想ファイルシステムボリューム及び複製ボリューム302を示す。
【
図4】本発明の一実施形態による例示用の仮想環境のブロック図を示す。
【
図5】本発明の一実施形態による個別の使用状態マップを含む例示用の仮想ファイルシステムを示す。
【
図6】本発明の一実施形態による物理装置上においてインスタンス生成される複製先ボリュームの図を示す。
【
図7】本発明の一実施形態による複製プロセスのステップのフローチャートを示す。
【
図8】本発明の一実施形態による複製機能の特定の態様を実装する複製マネージャの図を示す。
【
図9】本発明の一実施形態による例示用の複製システム環境におけるスナップショット複製動作を示す。
【
図10】本発明の一実施形態に従って特定の機能を実装するのに適したコンピュータシステムのブロック図を示す。
【
図11】本発明の一実施形態に従って特定の機能を実装するのに適した第2コンピュータシステムのブロック図を示す。
【発明を実施するための形態】
【0022】
本発明は、一実施形態との関連において説明しているが、本発明が、本明細書に記述されている特定の形態に限定されるものと解釈してはならない。むしろ、本発明は、添付の請求項によって規定される本発明の範囲に合理的に含まれうる代替形態、変更形態、及び均等物を含むものと解釈されたい。
【0023】
以下の詳細な説明においては、特定の方法順序、構造、要素、及び接続などの多数の特定の詳細内容が記述されている。但し、これら及びその他の特定の詳細内容の利用は、本発明の実施形態を実施するために必須ではないことを理解されたい。その他の状況においては、本説明を不必要に曖昧にすることを回避するために、周知の構造、要素、又は接続が省略されており、或いは、詳細な説明が省略されている。
【0024】
本明細書における「一実施形態」又は「実施形態」に対する参照は、その実施形態との関連において記述されている特定の特徴、構造、又は特性が本発明の少なくとも1つの実施形態に含まれることを示すものと解釈されたい。本明細書の様々な場所における「一実施形態においては」という文言の出現は、必ずしも、そのすべてが、同一の実施形態を参照するものではなく、且つ、その他の実施形態を相互に排除する別個の又は代替の実施形態を参照するものでもない。更には、いくつかの実施形態には示されてもよいが、その他の実施形態には示されなくてもよい、様々な特徴についても記述されている。同様に、いくつかの実施形態においては、要件であってもよいが、その他の実施形態においては、要件でなくてもよい、様々な要件についても記述されている。
【0025】
以下の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する動作の手順、ステップ、論理的ブロック、処理、及びその他のシンボリックな表現の観点において提示されている。これらの記述及び表現は、自身の研究の内容を当業者に対して最も効果的に伝達するために、データ処理分野における当業者が使用する手段である。手順、コンピュータによって実行されるステップ、論理的なブロック、プロセスなどは、本明細書において、一般には、望ましい結果をもたらすステップ又は命令の首尾一貫したシーケンスであると考えられる。これらのステップは、物理量の物理的操作を必要とするステップである。通常、これらの量は、コンピュータ可読ストレージ媒体の電気的又は磁気的な信号の形態を有し、且つ、コンピュータシステム内における保存、転送、組合せ、比較、及びその他の方法による操作が可能であるが、これらは、必須ではない。多くの場合に、主には一般的な使用法を理由として、これらの信号をビット、値、要素、シンボル、文字、項、数値、又は同様なものとして参照することが便利であることが証明されている。
【0026】
但し、これらの及び類似の用語のすべては、適切な物理量と関連付けられること、およびこれらの量に対して適用される便利なラベルに過ぎないことに留意されたい。特記されていない限り、以下の説明から明らかとなるように、本発明の全体を通じて、「処理」又は「アクセス」又は「書込み」又は「保存」又は「複製」又は同様なものなどの用語を利用した説明は、コンピュータシステムの、又はコンピュータシステムのレジストリ及びメモリ及びその他のコンピュータ可読媒体内における物理的(電子的)な量として表されたデータを操作すると共にコンピュータシステムのメモリ又はレジストリ又はその他のこの種の情報保存、伝送、又はディスプレイ装置内における物理量として同様に表されたその他のデータに変換する類似の電子演算装置の、動作及びプロセスを参照していることを理解されたい。
【0027】
本発明の実施形態は以下の問題の解決をすることを対象に、つまり、ホストファイルシステムにおいて且つ個別の仮想ファイルシステムにおいて使用中の実際のデータブロックのみを複写することにより、(例えば、固定タイプのVHDやVMDKなどの)1つ又は複数の仮想機械に属する1つ又は複数の仮想ファイルシステムをホスティングするために(例えば、Hyper−V、VMWareなどの)仮想化環境において使用されるデータボリュームの新規の複写、ミラー、又はクローンを効率的に生成することを対象にしている。
【0028】
本発明の実施形態は、1つ又は複数の仮想機械を含む分散型コンピュータシステムにおけるデータ複製のための効率的且つ非常にスケーラブルなプロセスを可能にする解決策を提供する。本発明の実施形態は、データボリュームを最適に複製することができる。ボリュームは、1つ又は複数の仮想機械に属する1つ又は複数の仮想ファイルシステムを有してもよい。本発明の実施形態は、数百個以上の仮想ノード及び物理ノードを有する非常にスケーラブルな分散型コンピュータシステム(例えば、クラウド演算システムなど)で機能するように最適化されている。通常の使用法のシナリオにおいては、アプリケーションデータは、多数のデータサーバーノードに跨って存在している。これらのデータサーバーノードは、物理ノードとするか、仮想ノードとするか、又はこれら2つの組合せとすることができる。クライアントは、データを仮想/物理データサーバーノードのうちの1つ又は複数のノードに直接的に書き込むことにより、分散型コンピュータシステムとやり取りする。物理ノード(例えば、データサーバー)は、通常、複数のLUN(Logical Unit Number)を有し、それぞれのLUNは、その独自の予約されたストレージ空間を有する。通常の実装形態は、複数のパーティションを有するように構成されたLUNを有することになろう。
【0029】
分散型コンピュータシステムのファイルは、オブジェクト(例えば、データオブジェクトなど)から構成されており、これらのオブジェクトは、データサーバーノードのうちのいずれかのノード、LUNのうちのいずれかのLUN、及び/又はパーティションのうちのいずれかのパーティションとすることができる。本発明の実施形態は、スケーラブルであると共に高可用性を提供する方式によって分散型コンピュータシステムの仮想ノードのための複製を効率的に処理する。更には、本発明の実施形態は、仮想ノードをオフライン状態にすることなしに、そのアプリケーションプロセスを実装する。
【0030】
本発明の実施形態は、仮想機械の仮想ファイルシステム(例えば、仮想ファイルシステムを構成するデータオブジェクトなど)を複製する方法を実装する。仮想ファイルシステムのオンライン状態を維持するために、本発明の実施形態は、仮想ファイルシステムを含むホストファイルシステムのオフライン複写(例えば、ホストデータボリューム)に対するアクセスを可能にするスナップショット(例えば、ホストデータボリュームの空間最適化スナップショット)を生成する。次に、本方法は、ホスファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスし、且つ、仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスする。ホストファイルシステム使用状態マップ及び仮想ファイルシステム使用状態マップの情報から、マージされた使用状態マップを生成する。マージされた使用状態マップは、仮想ファイルシステムと関連付けられたホストファイルシステムのアクティブなブロックを識別している。次に、マージされた使用状態マップに従って、複製先において、仮想ファイルシステムを構成するデータオブジェクトなどを複製する。アプリケーションの宛先を使用することにより、いくつかの異なるRAIDプロセスのうちのいずれか(例えば、RAID1やRAID5など)を実装することができる。まず、
図1を説明することにより、通常のコンピュータシステム環境について説明する。
【0031】
図1は、本発明の一実施形態によるネットワークアーキテクチャ100を示すブロック図であり、クライアントシステム110、120、及び130並びにストレージサーバー140A及び140Bがネットワーク150に結合されている。ストレージサーバー140A及び140Bを使用し、1つ又は複数の仮想機械をインスタンス生成することができる。ストレージサーバー140Aは、直接的に装着されたストレージ装置160A(1)〜160A(N)を有するものとして更に示されており、且つ、ストレージサーバー140Bは、直接的に装着されたストレージ装置160B(1)〜160B(N)を有するように示されている。又、ストレージサーバー140A及び140Bは、SANファブリック170にも接続されているが、ストレージエリアネットワークに対する接続は、本開示の動作のために必須ではない。SANファブリック170は、ストレージサーバー140A及び140Bによる、且つ、従って、ネットワーク150を介したクライアントシステム110、120、及び130による、ストレージ装置180(1)〜180(N)に対するアクセスをサポートしている。又、SANファブリック170は、ストレージアレイ190に対するアクセスをもサポートしており、このストレージアレイ190も、特定のストレージ装置の一例として示されている。本発明の実施形態の特定の機能は、複製マネージャ195を介して実装され、複製マネージャ195は、サーバー140B上にインスタンス生成されるものとして示されている。
【0032】
クライアントコンピュータシステム110、120、及び130は、ネットワーク150を介して通信可能に結合されている。クライアントシステム110、120、及び130は、例えば、ウェブブラウザ又はその他のクライアントソフトウェア(図示されてはいない)を使用し、データサーバー140A又は140B上の情報にアクセスすることができる。このようなクライアントにより、クライアントシステム110、120、及び130は、ストレージサーバー140A又は140B、或いは、ストレージ装置160A(1)〜160A(N)、160B(1)〜160B(N)、180(1)〜180(N)のうちの1つ、或いは、ストレージアレイ190によってホスティングされているデータに対してアクセスすることができる。更には、
図1は、データ交換のためにインターネットなどのネットワークの使用を示しているが、本開示は、インターネット又は任意の特定のネットワークに基づいた環境に限定されるものではない。2つのデータサーバーノード140A及び140Bが示されているが、本発明の実施形態は、数百個以上のノードを有する非常にスケーラブルな分散型コンピュータシステム(例えば、クラウド演算システムなど)で機能することができることに留意されたい。以下、
図2を説明することにより、通常の複製プロセスについて説明する。
【0033】
図2は、本発明の一実施形態による例示用の複製プロセスの動作を示すデータフローチャート200を示している。
図2に示されているように、仮想機械データサーバーのグループ210は、多数のクライアントコンピュータシステム(例えば、クライアント110〜130)によってアクセスされるデータをホスティングしている。I/Oデータがクライアントコンピュータシステムから到来するのに伴って(例えば、I/O書込み)、I/Oデータは、複製マネージャ230に転送され、複製マネージャ230は、I/Oデータを処理し、且つ、処理結果を複数の冗長データサーバー220に転送する。
【0034】
図2の実施形態は、スケーラブルな分散型コンピュータシステム環境を示している。一実施形態においては、分散型コンピュータシステム環境は、データを複製マネージャ230から複数の冗長データサーバー220に転送することにより、異なるRAID冗長方式のうちのいずれかを実装している。
【0035】
正常動作においては、クライアントのI/Oデータが、具体的には、その書込みデータが、生成又は受信され、且つ、仮想機械210上に保存される(同様のことが、例えば、1つ又は複数のメタデータサーバーによって書き込まれるメタデータにも当て嵌まる)。次に、仮想機械210は、これらのデータオブジェクトを複製マネージャ230に転送する。次に、複製マネージャ230は、これらのデータオブジェクトを、例えば、RAIDポリシーなどの複製ポリシーに従って、宛先である冗長データサーバーに転送する。例えば、ファイルのRAIDポリシーがRAID−1である場合には、データを複写すればよいが、RAIDポリシーがRAID−5である場合には、データを分散させ、パリティを演算しなければならず、或いは、場合によっては、しばしば、パリティを演算する前に、古いデータを読み取ると共にデータをマージしなければならない。
【0036】
図3は、本発明の一実施形態による例示用の仮想ファイルシステムボリューム及び複製ボリューム302を示している。
図3に示されているように、ファイルシステムボリュームは、特定量の使用済み空間311と残りの量の未使用空間の両方を有しており、未使用空間は、白色空間312として示されている。従って、動的VHDと比べて、例えば、24GBの固定容量を有する固定VHDを使用しているHyper−Vなどの仮想環境においては、ファイルシステムボリュームは、24GBの固定VHDを有するブロック全体のうちの補助的な部分(例えば、使用空間311)を使用してもよい。
【0037】
本発明の実施形態は、有利には、新しいミラーがボリュームに追加される際にファイルシステム情報を使用して複写対象のデータの量を低減する最適化された複製プロセスを実装しつつ、高I/O性能のために固定VHDの使用を可能にしている。本発明の実施形態は、仮想ファイルシステムボリュームをオフライン状態にすることなしに、最適化された複製プロセスを実装する。この態様は、仮想ファイルシステムボリュームによってサポートされるアプリケーション/データの可用性を大幅に改善する。本発明の実施形態は、使用空間311のみを転送して複製ボリューム302を生成することにより、複製プロセスにおけるI/Oトラフィックを極小化している。複製が完了した際に、複製ボリューム302は、使用空間321及び白色領域322を含むことになり、且つ、仮想ファイルシステムボリューム301のミラーとなる。
【0038】
図4は、本発明の一実施形態による例示用の仮想環境のブロック図を示している。例示用の仮想環境400は、ホストファイルシステム405、ハイパーバイザ404、及び仮想機械408〜412を含む。例示用の仮想環境400のコンポーネントは、通常、分散型演算システム(例えば、
図1のサーバー140a及び140b)上において稼働するか、或いは、別のやり方では、その一部を構成している。
【0039】
ハイパーバイザ404は、ハードウェア402(例えば、サーバー140a及び140bの)とインターフェイスし、且つ、リソース及びサービスを仮想機械408〜412に提供している。一実施形態においては、ハイパーバイザ404は、TCB(Trusted Computing Base)の一部である。ハイパーバイザ404は、仮想機械408〜412に対して、ハードウェア402内のリソースのエミュレートされた装置を含む抽象化を提供している。この結果、仮想ハードドライブ414a〜414cは、物理ボリューム420を使用することにより、ハイパーバイザ404及びホストファイルシステム405を介してエミュレートされている。物理ボリューム420は、例えば、サーバー140A又は140B上の1つ又は複数のLUN、又はストレージ装置160A(1)〜160A(N)、160B(1)〜160B(N)、180(1)〜180(N)のうちの1つ、又はストレージアレイ190ですることができる。
【0040】
図5は、本発明の一実施形態による個別の使用状態マップ511及び512を含む例示用の仮想ファイルシステム501及び仮想ファイルシステム502を示している。又、
図5は、個別の使用状態マップ521を有するホストファイルシステム520をも示している。
【0041】
図5の実施形態は、2つの異なる仮想機械の仮想ファイルシステム501及び502の個別の使用状態マップ511及び512を示している。2つの仮想ファイルシステム501及び502が示されているが、ホストファイルシステムは、更に多くのファイルシステム(例えば、10〜20個の、場合によっては、更に多くのファイルシステム)をサポートしてもよいことに留意されたい。本発明の実施形態は、個別のホストファイルシステム使用状態マップ521をチェックすることにより、いくつかの仮想機械のうちのどれが最近アクティブであったのかを判定することができる。ホストファイルシステム使用状態マップ521は、どの仮想ファイルシステムがアクティブであったか(例えば、更新された物理ボリュームのブロック)を識別することになる。複製マネージャ530は、ホスト機械のホストファイルシステム使用状態マップ521にアクセスし、且つ、ホストファイルシステムの複数のブロックのうちのアクティブなブロックを見出すことができる。又、複製マネージャ530は、仮想機械の仮想ファイルシステム使用状態マップ511及び/又は512にアクセスすることもできる。仮想ファイルシステム使用状態マップ511及び512は、仮想ファイルシステムの複数のブロック全体のうちのアクティブなブロックを示している。複製マネージャは、この情報を使用し、マージされた使用状態マップ540を生成する。マージされた使用状態マップ540は、仮想ファイルシステムと関連付けられた(例えば、物理ボリューム上の)ホストファイルシステムのアクティブなブロックを識別している。
【0042】
一実施形態においては、仮想機械は、複製マネージャが仮想ファイルシステム使用状態マップにアクセスするために、ホスト機械によってマウントされる必要がある。このような実施形態においては、仮想機械及び仮想ファイルシステム511は、複製マネージャ530が仮想ファイルシステム501の使用状態マップ511にアクセスできるようにするために、ハイパーバイザ及びホストファイルシステム520によってマウントされる必要がある。
【0043】
或いは、この代わりに、一実施形態においては、仮想機械は、ホストファイルシステムにアクセスするために、ホスト機械によってマウントされる必要はない。このような実施形態においては、複製マネージャ530は、(例えば、API呼出しなどを介して)仮想ファイルシステム501の使用状態マップ511に対して更に直接的にアクセスすることができる。
【0044】
図6は、本発明の一実施形態による物理装置上においてインスタンス生成された複製先ボリュームの図を示している。上述のように、複製先ボリュームは、例えば、サーバー140A又は140B上の1つ又は複数のLUN、或いは、ストレージ装置160A(1)〜160A(N)、160B(1)〜160B(N)、180(1)〜180(N)のうちの1つ、又はストレージアレイ190として実装することができる。マージされた使用状態マップ540が生成されたら、仮想ファイルシステムと関連付けられた(例えば、物理ボリューム上の)ホストファイルシステムのアクティブなブロックが、複製先に転送され、且つ、複製されたファイルシステム601及び602を生成するために使用される。複製されたファイルシステム601及び602は、仮想ファイルシステム501及び502のミラーである。上述のように、複製されたファイルシステム601及び602を生成するために、使用空間のみが転送されるため、複製プロセスにおけるI/Oトラフィックが極小化される。
【0045】
又、一実施形態においては、マージされた使用状態マップ640を複製先ボリュームにおいて複製することもできる。マージされた使用状態マップ640は、マージされた使用状態マップ540の複写である。
【0046】
図7は、本発明の一実施形態による複製プロセス700のステップのフローチャートを示している。
図7に示されているように、プロセス700は、仮想機械の仮想ファイルシステムにおける複製を実装することに関係する、例示用の動作ステップを示して
いる。一実施形態においては、複製プロセスが複数の仮想ファイルシステムを含むデータボリュームに対して実行され、ボリューム上のすべての仮想ファイルシステムが複製される。上述のように、本発明の実施形態は、データボリュームの最適な複製を対象としている。ボリュームは、1つ又は複数の仮想機械に属するホストファイルシステム及び/又は1つ又は複数の仮想ファイルシステムを有してもよい。
【0047】
プロセス700は、ステップ701において始まり、ここで、複製マネージャは、ホストファイルシステム(例えば、ホストデータボリューム)の空間最適化スナップショットを生成している。上述のように、仮想ファイルシステムは、その個別のアプリケーションによってアクティブに使用されている状態にある。スナップショットを取得することにより、ターゲット仮想ファイルシステムのオンライン状態を妨げることなしに仮想ファイルシステムの複写に対するアクセスが可能となる。このステップにおいては、複製プロセスが空間最適化読出し専用複写を分析している最中に発生する任意の新規の書込みが適切に反映されるように、最初にターゲットミラーデータボリュームを生成している。
【0048】
空間最適化スナップショットは、比較的小さな量のストレージ空間を使用して書込みの複写を収容することにより、新規の書込みをホストファイルシステム内において反映させていることに留意されたい。又、オンライン状態にある1つ又は複数の仮想機械を妨げることなしに、且つ、オリジナルの仮想ファイルシステムを使用することなしに、複写を使用して1つ又は複数の仮想ファイルシステムにアクセスしていることにも留意されたい。更には、複製プロセスが仮想ファイルシステムのスナップショット複写を使用している最中にホスト/仮想ファイルシステムに書き込まれている新しいデータの受信を既に開始することができるように、ターゲットミラーが、この時点において生成されている。
【0049】
ステップ702において、複製マネージャは、ホストファイルシステムの複数のブロックのうちのアクティブなブロックを示すホスト機械のホストファイルシステム使用状態マップにアクセスしている。一実施形態においては、プライマリボリューム上における仮想ファイルシステムのアクセス性を維持するために、特定時点における「スナップショット」ボリュームが生成され、且つ、このスナップショットボリュームを使用して複製が実行される。
【0050】
ステップ703において、複製マネージャは、空間最適化スナップショットを使用し、仮想ファイルシステムの複数のブロックのうちのアクティブなブロックを示す仮想機械の仮想ファイルシステム使用状態マップにアクセスしている。上述のように、仮想ファイルシステム使用状態マップに対するアクセスは、別個の仮想機械を通じて仮想ディスクファイルをスナップショット上においてマウントすることにより、或いは、仮想ファイルフォーマット(例えば、VHD/VMDKなどのフォーマット又は同様なもの)を理解するオフラインツール又はAPIを使用することにより、実装することができる。
【0051】
ステップ704において、複製マネージャは、ホストファイルシステム使用状態マップ及び仮想ファイルシステム使用状態マップの情報から、仮想ファイルシステムと関連付けられたホストファイルシステムのアクティブなブロックを識別するマージされた使用状態マップを生成している。複数の仮想ファイルシステムがボリューム上に存在している場合には、仮想ファイルシステムからの使用状態マップのすべてを使用し、マージされた使用状態マップを生成する。
【0052】
この後に、ステップ705において、複製マネージャは、マージされた使用状態マップに従って、複製先において仮想ファイルシステムを複製している。例えば、一実装形態においては、複製マネージャは、ステップ704からのマージされた使用状態マップを使用し、ホストファイルシステム(例えば、ソースボリューム)から、ステップ701において生成されたターゲットミラー上に、使用中のブロックを複写することにより、複製を完了させている(例えば、ミラー/クローン生成)。
【0053】
図8は、本発明の一実施形態による複製機能の特定の態様を実装する複製マネージャ800の図を示している。複製マネージャ800は、インスタンス生成された際に本発明の実施形態の複製プロセスの機能を実装するソフトウェアコンポーネント又はモジュールである。複製マネージャ800は、ホストファイルシステムにアクセスしてホストファイルシステムの使用状態マップを読み取ることによって機能するホストファイルシステムアクセスモジュール801を含む。仮想ファイルシステムアクセスモジュール802も、含まれており、且つ、これは、仮想機械の仮想ファイルシステムにアクセスすると共に仮想ファイルシステムの使用状態マップを読み取ることによって機能する。マージされた使用状態マップ生成モジュールも、含まれており、且つ、これは、ホストファイルシステム使用状態マップの情報を仮想ファイルシステム使用状態マップの情報とマージするために使用される。ファイルシステム複製モジュールは、マージされた使用状態マップに従って、仮想ファイルシステムを構成するデータブロックを複製するために含まれている。
【0054】
図9は、本発明の一実施形態による例示用の複製システム環境におけるスナップショットの複製動作を示している。プライマリボリューム上における仮想ファイルシステムのアクセス性を維持するために、特定時点における「スナップショット」ボリューム(sv)が生成され、且つ、このスナップショットボリュームを使用して複製が実行される。図示の実施形態においては、プライマリファイルシステムがプライマリノード900a内においてその上部にマウントされるプライマリボリューム(v)の増分的に変更又は変形されたデータの(
図3の仮想ファイルシステム301の)複写が、必要に応じて、複製プロセスにより、セカンダリファイルシステムがセカンダリノード900b内においてその上部にマウントされる複製されたセカンダリボリューム(vr)に転送される。プライマリボリュームのアクセス性を維持するために、特定時点における「スナップショット」ボリューム(sv)が生成され、且つ、このスナップショットボリュームを使用して複製が実行される。同様に、セカンダリボリュームのアクセス性を維持するために、特定時点における「スナップショット」ボリューム(rsv)が、生成され、且つ、プライマリノード900aから増分的な変化を受け取ると共に複製されたセカンダリボリュームを回復するために、セカンダリノード900bにおいて使用される。この結果、本発明の実施形態は、複製プロセスの全体を通じて、仮想機械及び仮想ファイルシステムを、オンライン状態に、且つ、アクセス可能状態に、且つ、完全に機能可能な状態に、維持している
【0055】
図示の実施形態の複製システムにおいては、プライマリノード900aは、ネットワーク914(例えば、IPネットワーク、LAN、WAN、又はその他の通信リンク)を介してセカンダリノード900bに結合されている。図示の実施形態のプライマリノード900a及びセカンダリノード900bは、図示のように、それぞれ、個別に、アプリケーション902、ボリュームマネージャ906、及び定期的複製マネージャ905を含む。
【0056】
ボリューム910a、910b、916、及び922は、プライマリノード900a及びセカンダリノード900bのエンクロージャ内に存在するもの(例えば、ディスクドライブ、半導体ディスク、又は同様なもの)として示されているが、これらのボリュームは、エンクロージャの外部に存在することも可能であり、且つ、(例えば、ethernetやファイバチャネルなどの)ネットワーク及び/又はバス接続を介してアクセスすることもできることに留意されたい。
【0057】
図10は、一実施形態による例示用のコンピュータシステム1000を示している。コンピュータシステム1000は、上述した実施形態における特定のハードウェアに基づいた及びソフトウェアに基づいた機能のための実行環境を提供する基本コンピュータシステムのコンポーネントを示している。例えば、コンピュータシステム1000は、
図9の複製マネージャ905a及び1つ又は複数のソフトウェアスタックがその上部においてインスタンス生成されるシステムであってよい。コンピュータシステム1000は、例えば、サーバーコンピュータシステム、ワークステーションコンピュータシステム、デスクトップコンピュータシステム、又はラップトップコンピュータシステムとして実装することができる。同様に、コンピュータシステム1000は、ハンドヘルド型の装置として実装することもできる。コンピュータシステム1000は、通常、少なくともなんらかの形態のコンピュータ可読媒体(例えば、コンピュータ可読ストレージ媒体1001)を含む。コンピュータ可読媒体は、コンピュータシステム1000によるアクセスが可能であると共に限定を伴うことなしにコンピュータストレージ媒体を含むことができるいくつかの異なるタイプの利用可能な媒体とすることができる。
【0058】
その最も基本的な構成において、コンピュータシステム1000は、通常、処理ユニット1003と、コンピュータ可読ストレージ媒体1001と、を含む。使用するコンピュータシステム1000の正確な構成及びタイプに応じて、メモリ1001は、揮発性(例えば、DRAMなど)、不揮発性とすることができ(例えば、ROMやフラッシュメモリなど)、或いは、これら2つのなんらかの組合せとすることができる。同様に、メモリ1001は、半導体装置に加えて、例えば、磁気ディスクに基づいた媒体、光学媒体、又は同様なものなどのその他の装置を有することもできる。
【0059】
更には、コンピュータシステム1000は、磁気又は光ディスク又はテープなどのその他の大容量ストレージシステム(例えば、着脱自在のストレージ1005及び/又は非着脱自在のストレージ1007)を含むこともできる。同様に、コンピュータシステム1000は、入力装置1011及び/又は出力装置1009(例えば、ディスプレイなど)を含むこともできる。コンピュータシステム1000は、その他の装置、コンピュータ、ネットワーク、サーバーなどに対する有線又は無線媒体を使用する通信接続1013を更に含むこともできる。これらの装置は、いずれも、当技術分野において周知であることから、これらの詳細な説明は不要である。
【0060】
更には、コンピュータシステム1000の機能がクラウド演算環境を使用して部分的又は全体的に実行される場合など、コンピュータシステム1000の機能の一部、大部分、又はすべてを多数の分散された演算ノードを有する分散型コンピュータシステムによって置換することもできることに更に留意されたい。
【0061】
図11は、本発明の一実施形態による特定の機能を実装するのに適した第2コンピュータシステム1110のブロック図を示している。コンピュータシステム1110は、バス1112を含み、バス1112は、中央プロセッサ1114、システムメモリ1117(通常は、RAMであるが、ROM、フラッシュRAM、又は同様なものを含んでもよい)、入出力コントローラ1118、オーディオ出力インターフェイス1122を介したスピーカシステム1120などの外部オーディオ装置、ディスプレイアダプタ1126を介した表示画面1124などの外部装置、シリアルポート1128及び1130、(キーボードコントローラ1133によってインターフェイスされた)キーボード1132、ストレージインターフェイス1134、フロッピーディスク1138を受け入れるように動作可能なフロッピーディスクドライブ1137、Fiber Channelネットワーク1190と接続するように動作可能なHBA(Host Bus Adapter)インターフェイスカード1135A、SCSIバス1139に接続するように動作可能なHBA(Host Bus Adapter)インターフェイスカート1135B、及び光ディスク1142を受け入れるように動作可能な光ディスクドライブ1140などのコンピュータシステム1110の主要なサブシステムを相互接続している。又、マウス1146(或いは、シリアルポート1128を介してバス1112に結合されたその他のポインティング及びクリック装置)、(シリアルポート1130を介してバス1112に結合された)モデム1147、及び(バス1112に直接的に結合された)ネットワークインターフェイス1148も含まれている。
【0062】
バス1112は、中央プロセッサ1114とシステムメモリ117の間のデータ通信を許容しており、システムメモリ1117は、上述のように、読出し専用メモリ(ROM)又はフラッシュメモリ(いずれも図示されてはいない)及びランダムアクセスメモリ(RAM)(図示されてはいない)を含んでもよい。RAMは、一般に、オペレーティングシステム及びアプリケーションプログラムがその内部に読み込まれるメインメモリである。
図11の実施形態においては、システムメモリ1117が上述の連続的複製機能を実装する複製マネージャモジュール1150をインスタンス生成している。ROM又はフラッシュメモリは、その他のコードとして、周辺コンポーネントとのやり取りなどの基本的なハードウェア動作を制御するBIOS(Basic Input−Output System)を収容することができる。コンピュータシステム1110と共に存在しているアプリケーションは、一般に、ハードディスクドライブ(例えば、固定されたディスク1144)、光ドライブ(例えば、光ドライブ1140)、フロッピーディスクユニット1137、又はその他のストレージ媒体などのコンピュータ可読媒体上に保存され、且つ、これらを介してアクセスされる。更には、アプリケーションは、ネットワークモデム1147又はインターフェイス1148を介してアクセスされた際に、アプリケーション及びデータ通信技術に従って変調された電子信号の形態とすることができる。
【0063】
ストレージインターフェイス1134は、コンピュータシステム1110のその他のストレージインターフェイスと同様に、固定ディスクドライブ1144などの情報の保存及び/又は取得のために、標準的なコンピュータ可読媒体に接続することができる。固定ディスクドライブ1144は、コンピュータシステム1110の一部であってもよく、或いは、別個であって、その他のインターフェイスシステムを通じてアクセスしてもよい。モデム1147は、電話リンクを介したリモートサーバーに対する、或いは、ISP(Internet Service Provider)を介したインターネットに対する、直接的な接続を提供してもよい。ネットワークインターフェイス1148は、POP(Point Of Presence)を介したインターネットに対する直接的なネットワークリンクを介してリモートサーバーに対する直接的な接続を提供してもよい。ネットワークインターフェイス1148は、デジタルセルラー電話接続、CDPD(Cellular Digital Packet Data)接続、デジタル衛星データ接続、又は同様なものを含む無線技法を使用してこれらの接続を提供してもよい。
【0064】
多くのその他の装置又はサブシステム(図示されてはいない)を類似の方式によって接続してもよい(例えば、文書スキャナ、デジタルカメラなど)。逆に、
図11に示されている装置のすべてが本開示を実施するために必須であるというわけではない。装置及びサブシステムは、
図11に示されているものとは異なる方法によって相互接続することができる。
図11に示されているものなどのコンピュータシステムの動作については、当技術分野において周知であり、従って、本出願においては詳細な説明を省略する。本開示を実装するためのコードは、システムメモリ1117、固定ディスク1144、光ディスク1142、又はフロッピーディスク1138のうちの1つ又は複数のものなどのコンピュータ可読ストレージ媒体内に保存することができる。コンピュータシステム1110上に提供されるオペレーティングシステムは、MS−DOS(登録商標)、MS−WINDOWS(登録商標)、OS/2(登録商標)、UNIX(登録商標)、Linux(登録商標)、又は別の既知のオペレーティングシステムであってよい。
【0065】
更には、本明細書に記述されている信号と関連し、当業者は、信号を第1ブロックから第2ブロックに直接的に送信することが可能であり、或いは、信号をブロックの間において変更(例えば、増幅、減衰、遅延、ラッチング、バッファリング、反転、フィルタリング、又はその他の方法で変更)することもできることを認識するであろう。上述の実施形態の信号は、ブロックから別のブロックへ送信されるものとして特徴付けられているが、本開示のその他の実施形態は、信号の情報的な且つ/又は機能的な側面がブロックの間において送信される限り、このような直接的に送信される信号の代わりに、変更された信号を含んでもよい。第2ブロックにおいて入力される信号は、関連する回路の物理的な制限に起因して第1ブロックから出力される第1信号から導出された第2信号として、ある程度、概念的に説明することができる(例えば、多少の減衰及び遅延が不可避に存在することになる)。従って、本明細書において使用されている第1信号から導出される第2信号は、第1信号を、或いは、回路の制限に起因した又は第1信号の情報的な且つ/又は最終的な機能的な側面を変更しないその他の回路要素の通過に起因した第1信号に対する任意の変更を、含む。
【0066】
説明を目的とした以上の記述内容は、特定の実施形態を参照して提供されている。但し、上述の内容は、本発明を包括的に、或いは、開示された形態そのままに本発明を限定することを意図したものではない。上述の教示内容に鑑み、多数の変更形態及び変形形態が可能である。本発明の原理及びその実際的な用途を最良に説明することにより、想定される特定の使用法に適し得る様々な変更を伴って当業者が本発明及び様々な実施形態を最良に利用することができるようにするために、実施形態を選択及び説明した。