(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-04
(54)【発明の名称】アプリケーション整合性ポイントインタイムをマークするためのシステム及び方法
(51)【国際特許分類】
G06F 3/06 20060101AFI20221027BHJP
G06F 11/14 20060101ALI20221027BHJP
G06F 9/455 20060101ALI20221027BHJP
【FI】
G06F3/06 304F
G06F11/14 646
G06F9/455 150
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022514255
(86)(22)【出願日】2020-09-02
(85)【翻訳文提出日】2022-03-02
(86)【国際出願番号】 US2020049020
(87)【国際公開番号】W WO2021046098
(87)【国際公開日】2021-03-11
(32)【優先日】2019-09-06
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】516222277
【氏名又は名称】ベリタス テクノロジーズ エルエルシー
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(72)【発明者】
【氏名】ダラル、チラグ
(72)【発明者】
【氏名】バラドワジ、ヴァイジャヤンティ
(72)【発明者】
【氏名】クルカルニ、プラディップ
(57)【要約】
アプリケーション整合性ポイントインタイムをマークするための開示されたコンピュータ実装方法は、I/Oフィルタによって、ゲスト仮想マシンからの仮想マシンディスクへの書き込み要求をインターセプトし、書き込み要求をI/Oフィルタキューでキューイングすることを含み得る。この方法は、書き込み要求を仮想マシンディスクに送信し、仮想マシンディスクから書き込み完了メッセージを受信することを含み得る。この方法はまた、書き込み完了メッセージに応じて、書き込み要求をI/Oデーモンに送信し、書き込み要求をI/Oデーモンキューでキューイングすることを含み得る。この方法は、書き込み完了メッセージをゲスト仮想マシンに送信し、バックアップゲートウェイが仮想マシンディスクへの書き込みを模倣するように書き込み要求をバックアップゲートウェイに送信することを更に含み得る。様々な他の方法、システム、及びコンピュータ可読媒体もまた開示される。
【選択図】
図3
【特許請求の範囲】
【請求項1】
アプリケーション整合性ポイントインタイムをマークするためのコンピュータ実装方法であって、前記方法の少なくとも一部は、少なくとも1つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
入力/出力(I/O)フィルタによって、ゲスト仮想マシンからの仮想マシンディスクへの書き込み要求をインターセプトすることと、
前記書き込み要求をI/Oフィルタキューでキューイングすることと、
前記I/Oフィルタキューに基づいて、前記書き込み要求を前記仮想マシンディスクに送信することと、
前記I/Oフィルタによって、前記仮想マシンディスクからの書き込み完了メッセージを受信することと、
前記書き込み完了メッセージに応じて前記I/Oフィルタによって、前記書き込み要求をI/Oデーモンに送信することと、
前記書き込み要求をI/Oデーモンキューでキューイングすることと、
前記書き込み完了メッセージを前記ゲスト仮想マシンに送信することと、
前記I/Oデーモンキューに基づいて、バックアップゲートウェイが前記仮想マシンディスクへの書き込みを模倣するように前記書き込み要求を前記バックアップゲートウェイに送信することと、を含む、方法。
【請求項2】
前記ゲスト仮想マシン上のバックアップ要求者から、前記仮想マシンディスクに対するアプリケーション整合性ポイントインタイムをマークするメッセージを受信することと、
前記仮想マシンディスクに対する新規の書き込み要求を一時停止することと、
前記I/Oフィルタ内の前記仮想マシンディスクに対する保留中の書き込み要求を完了することと、
前記I/Oフィルタによって、保留中の前記書き込み要求を完了したことに応じてフラッシュ完了メッセージを受信することと、
I/Oデーモンによって、前記アプリケーション整合性ポイントインタイムをマークするために前記I/Oデーモンキュー内にマーカーを設定することと、
前記マーカーを設定したことに応じて、前記ゲスト仮想マシンからの新規の書き込み要求を許可することと、を更に含む、請求項1に記載の方法。
【請求項3】
前記メッセージを受信したことに応じて前記バックアップゲートウェイから前記バックアップ要求者に、前記ゲスト仮想マシンに対する仮想マシン識別子を送信することと、
前記バックアップ要求者から前記I/Oデーモンに、前記仮想マシン識別子を送信することと、
前記ゲスト仮想マシンによる新規の書き込み要求を一時停止することと、を更に含む、請求項2に記載の方法。
【請求項4】
前記アプリケーション整合性ポイントインタイムの前の全ての書き込み要求の後、かつ前記新規の書き込み要求の前に、前記マーカーを前記バックアップゲートウェイに送信することを更に含む、請求項2に記載の方法。
【請求項5】
前記バックアップゲートウェイが、前記仮想マシンディスクの模倣されたコピーを維持する、請求項1に記載の方法。
【請求項6】
前記書き込み要求を前記I/Oデーモンキューでキューイングすることが、前記書き込み要求をシーケンス識別子と共にキューイングすることを含む、請求項1に記載の方法。
【請求項7】
前記バックアップゲートウェイに前記書き込み要求を送信することが、前記シーケンス識別子に基づいて前記書き込み要求を送信して、前記ゲスト仮想マシンからの書き込み要求の順序付けられたシーケンスを維持することを更に含む、請求項6に記載の方法。
【請求項8】
前記バックアップゲートウェイが、前記仮想マシンディスクへの前記書き込みを非同期的に模倣する、請求項1に記載の方法。
【請求項9】
アプリケーション整合性ポイントインタイムをマークするためのシステムであって、
少なくとも1つの物理プロセッサと、
コンピュータ実行可能命令を含む物理メモリであって、前記命令は、前記物理プロセッサによって実行されると、前記物理プロセッサに、
入力/出力(I/O)フィルタによって、ゲスト仮想マシンからの仮想マシンディスクへの書き込み要求をインターセプトさせ、
前記書き込み要求をI/Oフィルタキューでキューイングさせ、
前記I/Oフィルタキューに基づいて、前記書き込み要求を前記仮想マシンディスクに送信させ、
前記I/Oフィルタによって、前記仮想マシンディスクからの書き込み完了メッセージを受信させ、
前記書き込み完了メッセージに応じて前記I/Oフィルタによって、前記書き込み要求をI/Oデーモンに送信させ、
前記書き込み要求をI/Oデーモンキューでキューイングさせ、
前記書き込み完了メッセージを前記ゲスト仮想マシンに送信させ、
前記I/Oデーモンキューに基づいて、バックアップゲートウェイが前記仮想マシンディスクへの書き込みを模倣するように前記書き込み要求を前記バックアップゲートウェイに送信させる、物理メモリと、を備える、システム。
【請求項10】
前記命令が、
前記ゲスト仮想マシン上のバックアップ要求者から、前記仮想マシンディスクに対するアプリケーション整合性ポイントインタイムをマークするメッセージを受信し、
前記仮想マシンディスクに対する新規の書き込み要求を一時停止し、
前記I/Oフィルタ内の前記仮想マシンディスクに対する保留中の書き込み要求を完了し、
前記I/Oフィルタによって、前記保留中の書き込み要求を完了したことに応じてフラッシュ完了メッセージを受信し、
I/Oデーモンによって、前記アプリケーション整合性ポイントインタイムをマークするために前記I/Oデーモンキュー内にマーカーを設定し、
前記マーカーを設定したことに応じて、前記ゲスト仮想マシンからの新規の書き込み要求を許可する、ための命令を更に含む、請求項9に記載のシステム。
【請求項11】
前記命令が、
前記メッセージを受信したことに応じて前記バックアップゲートウェイから前記バックアップ要求者に、前記ゲスト仮想マシンに対する仮想マシン識別子を送信し、
前記バックアップ要求者から前記I/Oデーモンに、前記仮想マシン識別子を送信し、
前記ゲスト仮想マシンによる新規の書き込み要求を一時停止する、ための命令を更に含む、請求項10に記載のシステム。
【請求項12】
前記命令が、前記アプリケーション整合性ポイントインタイムの前の全ての書き込み要求の後、かつ前記新規の書き込み要求の前に、前記マーカーを前記バックアップゲートウェイに送信するための命令を更に含む、請求項10に記載のシステム。
【請求項13】
前記バックアップゲートウェイが、前記仮想マシンディスクの模倣されたコピーを維持する、請求項9に記載のシステム。
【請求項14】
前記書き込み要求を前記I/Oデーモンキューでキューイングするための前記命令が、前記書き込み要求をシーケンス識別子と共にキューイングするための命令を含む、請求項9に記載のシステム。
【請求項15】
前記バックアップゲートウェイに前記書き込み要求を送信するための前記命令が、前記シーケンス識別子に基づいて前記書き込み要求を送信して、前記ゲスト仮想マシンからの書き込み要求の順序付けられたシーケンスを維持するための命令を更に含む、請求項14に記載のシステム。
【請求項16】
前記バックアップゲートウェイが、前記仮想マシンディスクへの前記書き込みを非同期的に模倣する、請求項9に記載のシステム。
【請求項17】
1つ以上のコンピュータ実行可能命令を含む非一過性コンピュータ可読媒体であって、前記命令は、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
入力/出力(I/O)フィルタによって、ゲスト仮想マシンからの仮想マシンディスクへの書き込み要求をインターセプトさせ、
前記書き込み要求をI/Oフィルタキューでキューイングさせ、
前記I/Oフィルタキューに基づいて、前記書き込み要求を前記仮想マシンディスクに送信させ、
前記I/Oフィルタによって、前記仮想マシンディスクからの書き込み完了メッセージを受信させ、
前記書き込み完了メッセージに応じて前記I/Oフィルタによって、前記書き込み要求をI/Oデーモンに送信させ、
前記書き込み要求をI/Oデーモンキューでキューイングさせ、
前記書き込み完了メッセージを前記ゲスト仮想マシンに送信させ、
前記I/Oデーモンキューに基づいて、バックアップゲートウェイが前記仮想マシンディスクへの書き込みを模倣するように前記書き込み要求を前記バックアップゲートウェイに送信させる、非一過性コンピュータ可読媒体。
【請求項18】
前記命令が、
前記ゲスト仮想マシン上のバックアップ要求者から、前記仮想マシンディスクに対するアプリケーション整合性ポイントインタイムをマークするメッセージを受信し、
前記仮想マシンディスクに対する新規の書き込み要求を一時停止し、
前記I/Oフィルタ内の前記仮想マシンディスクに対する保留中の書き込み要求を完了し、
前記I/Oフィルタによって、保留中の前記書き込み要求を完了したことに応じてフラッシュ完了メッセージを受信し、
I/Oデーモンによって、前記アプリケーション整合性ポイントインタイムをマークするために前記I/Oデーモンキュー内にマーカーを設定し、
前記マーカーを設定したことに応じて、前記ゲスト仮想マシンからの新規の書き込み要求を許可する、ための命令を更に含む、請求項17に記載の非一過性コンピュータ可読媒体。
【請求項19】
前記命令が、
前記メッセージを受信したことに応じて前記バックアップゲートウェイから前記バックアップ要求者に、前記ゲスト仮想マシンに対する仮想マシン識別子を送信し、
前記バックアップ要求者から前記I/Oデーモンに、前記仮想マシン識別子を送信し、
前記ゲスト仮想マシンによる新規の書き込み要求を一時停止する、ための命令を更に含む、請求項18に記載の非一過性コンピュータ可読媒体。
【請求項20】
前記命令が、前記アプリケーション整合性ポイントインタイムの前の全ての書き込み要求の後、かつ前記新規の書き込み要求の前に、前記マーカーを前記バックアップゲートウェイに送信するための命令を更に含む、請求項18に記載の非一過性コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【0001】
企業コンピューティング環境は、多くの場合、様々なコンピューティング環境を展開及び維持するために仮想マシンサービスを利用する。仮想マシンサービスは、コンピュータシステムをエミュレートするための専用のハードウェア及び/又はソフトウェアを含み得る。エミュレートされたコンピュータシステムがより堅牢かつ複雑になるにつれ、それらは、データを記憶及び処理することがより可能になっている。組織は、データを管理するために仮想マシンサービスにますます頼るようになってきている。
【0002】
従来の仮想マシンサービスは、管理機能を提供し得る。例えば、従来の仮想マシンサービスは、コンピューティング環境のスナップショットを取ることなど、組み込みのデータバックアップ機能を提供し得る。しかしながら、スナップショットを取ることは、性能に悪影響を及ぼし得る。スナップショットが解放された後でも、性能への影響は残り得る。
【0003】
したがって、本開示は、アプリケーション整合性ポイントインタイムをマークするためのシステム及び方法の必要性を特定し、それに対処する。
【発明の概要】
【0004】
以下でより詳細に説明するように、本開示は、アプリケーション整合性ポイントインタイムをマークするための様々なシステム及び方法を記載する。
【0005】
一実施形態では、アプリケーション整合性ポイントインタイムをマークするための方法は、(a)入力/出力(I/O)フィルタによって、ゲスト仮想マシンからの仮想マシンディスクへの書き込み要求をインターセプトすることと、(b)書き込み要求をI/Oフィルタキューでキューイングすることと、(c)I/Oフィルタキューに基づいて、書き込み要求を仮想マシンディスクに送信することと、(d)I/Oフィルタによって、仮想マシンディスクからの書き込み完了メッセージを受信することと、(e)書き込み完了メッセージに応じてI/Oフィルタによって、書き込み要求をI/Oデーモンに送信することと、(f)書き込み要求をI/Oデーモンキューでキューイングすることと、(g)書き込み完了メッセージをゲスト仮想マシンに送信することと、(h)I/Oデーモンキューに基づいて、バックアップゲートウェイが仮想マシンディスクへの書き込みを模倣するように書き込み要求をバックアップゲートウェイに送信することと、を含み得る。
【0006】
いくつかの実施形態では、方法は、(i)ゲスト仮想マシン上のバックアップ要求者から、仮想マシンディスクに対するアプリケーション整合性ポイントインタイムをマークするメッセージを受信することと、(ii)仮想マシンディスクに対する新規の書き込み要求を一時停止することと、(iii)I/Oフィルタ内の仮想マシンディスクに対する保留中の書き込み要求を完了することと、(iv)I/Oフィルタによって、保留中の書き込み要求を完了したことに応じてフラッシュ完了メッセージを受信することと、(v)I/Oデーモンによって、アプリケーション整合性ポイントインタイムをマークするためにI/Oデーモンキュー内にマーカーを設定することと、(vi)マーカーを設定したことに応じて、ゲスト仮想マシンからの新規の書き込み要求を許可することと、を更に含み得る。
【0007】
いくつかの実施形態では、方法は、メッセージを受信したことに応じてバックアップゲートウェイからバックアップ要求者に、ゲスト仮想マシンに対する仮想マシン識別子を送信することと、バックアップ要求者からI/Oデーモンに、仮想マシン識別子を送信することと、ゲスト仮想マシンによる新規の書き込み要求を一時停止することと、を更に含み得る。
【0008】
いくつかの実施形態では、方法は、アプリケーション整合性ポイントインタイムの前の全ての書き込み要求の後、かつ新規の書き込み要求の前に、マーカーをバックアップゲートウェイに送信することを更に含み得る。
【0009】
いくつかの実施形態では、バックアップゲートウェイは、仮想マシンディスクの模倣されたコピーを維持し得る。いくつかの実施形態では、書き込み要求をI/Oデーモンキューでキューイングすることは、書き込み要求をシーケンス識別子と共にキューイングすることを含み得る。いくつかの実施形態では、バックアップゲートウェイは、仮想マシンディスクへの書き込みを非同期的に模倣し得る。
【0010】
いくつかの実施形態では、バックアップゲートウェイに書き込み要求を送信することは、シーケンス識別子に基づいて書き込み要求を送信して、ゲスト仮想マシンからの書き込み要求の順序付けられたシーケンスを維持することを更に含み得る。
【0011】
一例では、アプリケーション整合性ポイントインタイムをマークするためのシステムは、少なくとも1つの物理プロセッサと、コンピュータ実行可能命令を含む物理メモリであって、これらの命令は、物理プロセッサによって実行されると、物理プロセッサに、(a)入力/出力(I/O)フィルタによって、ゲスト仮想マシンからの仮想マシンディスクへの書き込み要求をインターセプトさせ、(b)書き込み要求をI/Oフィルタキューでキューイングさせ、(c)I/Oフィルタキューに基づいて、書き込み要求を仮想マシンディスクに送信させ、(d)I/Oフィルタによって、仮想マシンディスクからの書き込み完了メッセージを受信させ、(e)書き込み完了メッセージに応じてI/Oフィルタによって、書き込み要求をI/Oデーモンに送信させ、(f)書き込み要求をI/Oデーモンキューでキューイングさせ、(g)書き込み完了メッセージをゲスト仮想マシンに送信させ、(h)I/Oデーモンキューに基づいて、バックアップゲートウェイが仮想マシンディスクへの書き込みを模倣するように書き込み要求をバックアップゲートウェイに送信させる、物理メモリと、を備え得る。
【0012】
いくつかの実施形態では、命令は、(i)ゲスト仮想マシン上のバックアップ要求者から、仮想マシンディスクに対するアプリケーション整合性ポイントインタイムをマークするメッセージを受信し、(ii)仮想マシンディスクに対する新規の書き込み要求を一時停止し、(iii)I/Oフィルタ内の仮想マシンディスクに対する保留中の書き込み要求を完了し、(iv)I/Oフィルタによって、保留中の書き込み要求を完了したことに応じてフラッシュ完了メッセージを受信し、(v)I/Oデーモンによって、アプリケーション整合性ポイントインタイムをマークするためにI/Oデーモンキュー内にマーカーを設定し、(vi)マーカーを設定したことに応じて、ゲスト仮想マシンからの新規の書き込み要求を許可する、ための命令を更に含み得る。
【0013】
いくつかの実施形態では、命令は、メッセージを受信したことに応じてバックアップゲートウェイからバックアップ要求者に、ゲスト仮想マシンに対する仮想マシン識別子を送信し、バックアップ要求者からI/Oデーモンに、仮想マシン識別子を送信し、ゲスト仮想マシンによる新規の書き込み要求を一時停止する、ための命令を更に含み得る。
【0014】
いくつかの実施形態では、命令は、アプリケーション整合性ポイントインタイムの前の全ての書き込み要求の後、かつ新規の書き込み要求の前に、マーカーをバックアップゲートウェイに送信するための命令を更に含み得る。
【0015】
いくつかの実施形態では、書き込み要求をI/Oデーモンキューでキューイングするための命令は、書き込み要求をシーケンス識別子と共にキューイングするための命令を含み得る。いくつかの実施形態では、バックアップゲートウェイに書き込み要求を送信するための命令は、シーケンス識別子に基づいて書き込み要求を送信して、ゲスト仮想マシンからの書き込み要求の順序付けられたシーケンスを維持するための命令を更に含み得る。
【0016】
いくつかの実施形態では、バックアップゲートウェイは、仮想マシンディスクの模倣されたコピーを維持し得る。いくつかの実施形態では、バックアップゲートウェイは、仮想マシンディスクへの書き込みを非同期的に模倣し得る。
【0017】
いくつかの例では、上記の方法は、非一過性コンピュータ可読媒体上にコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、1つ以上のコンピュータ実行可能命令を含み得、この1つ以上のコンピュータ実行可能命令は、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されるとき、コンピューティングデバイスに、(a)入力/出力(I/O)フィルタによって、ゲスト仮想マシンからの仮想マシンディスクへの書き込み要求をインターセプトさせ、(b)書き込み要求をI/Oフィルタキューでキューイングさせ、(c)I/Oフィルタキューに基づいて、書き込み要求を仮想マシンディスクに送信させ、(d)I/Oフィルタによって、仮想マシンディスクからの書き込み完了メッセージを受信させ、(e)書き込み完了メッセージに応じてI/Oフィルタによって、書き込み要求をI/Oデーモンに送信させ、(f)書き込み要求をI/Oデーモンキューでキューイングさせ、(g)書き込み完了メッセージをゲスト仮想マシンに送信させ、(h)I/Oデーモンキューに基づいて、バックアップゲートウェイが仮想マシンディスクへの書き込みを模倣するように書き込み要求をバックアップゲートウェイに送信させ得る。
【0018】
いくつかの実施形態では、命令は、(i)ゲスト仮想マシン上のバックアップ要求者から、仮想マシンディスクに対するアプリケーション整合性ポイントインタイムをマークするメッセージを受信し、(ii)仮想マシンディスクに対する新規の書き込み要求を一時停止し、(iii)I/Oフィルタ内の仮想マシンディスクに対する保留中の書き込み要求を完了し、(iv)I/Oフィルタによって、保留中の書き込み要求を完了したことに応じてフラッシュ完了メッセージを受信し、(v)I/Oデーモンによって、アプリケーション整合性ポイントインタイムをマークするためにI/Oデーモンキュー内にマーカーを設定し、(vi)マーカーを設定したことに応じて、ゲスト仮想マシンからの新規の書き込み要求を許可する、ための命令を更に含み得る。
【0019】
いくつかの実施形態では、命令は、メッセージを受信したことに応じてバックアップゲートウェイからバックアップ要求者に、ゲスト仮想マシンに対する仮想マシン識別子を送信し、バックアップ要求者からI/Oデーモンに、仮想マシン識別子を送信し、ゲスト仮想マシンによる新規の書き込み要求を一時停止する、ための命令を更に含み得る。
【0020】
いくつかの実施形態では、命令は、アプリケーション整合性ポイントインタイムの前の全ての書き込み要求の後、かつ新規の書き込み要求の前に、マーカーをバックアップゲートウェイに送信するための命令を更に含み得る。
【0021】
本明細書で述べた実施形態のうちのいずれかからの特性は、本明細書で説明する一般原理に従って互いと組み合わせて使用されてもよい。これらの及び他の実施形態、特性、及び利点は、添付の図面及び請求項と併せて、以下の詳細な説明を一読することで、より完全に理解されよう。
【図面の簡単な説明】
【0022】
添付の図面は、いくつかの例示的な実施形態を例解し、かつ本明細書の一部である。以下の説明と共に、これらの図面は、本開示の種々の原理を実証及び説明する。
【
図1】アプリケーション整合性ポイントインタイムをマークするための例示的なシステムのブロック図である。
【
図2】アプリケーション整合性ポイントインタイムをマークするための追加の例示的なシステムのブロック図である。
【
図3】アプリケーション整合性ポイントインタイムをマークするための例示的な方法のフロー図である。
【
図4】アプリケーション整合性ポイントインタイムをマークするための例示的なシステムのブロック図である。
【
図5】アプリケーション整合性ポイントインタイムをマークするための例示的な方法のフロー図である。
【
図6】アプリケーション整合性ポイントインタイムをマークするための例示的なデータフローの図である。
【0023】
図面を通じて、同一の参照文字及び説明は、類似であるが、必ずしも同一ではない要素を示す。本明細書において説明される例示的な実施形態は、種々の修正及び代替的な形態が可能であるが、具体的な実施形態が、図面において、例として示されており、かつ本明細書において詳細に説明される。しかしながら、本明細書において説明される例示的な実施形態は、開示される特定の形態に限定されることを意図しない。むしろ、本開示は、添付の請求項の範囲内にある全ての修正物、同等物、及び代替物を網羅する。
【発明を実施するための形態】
【0024】
本開示は、概して、アプリケーション整合性ポイントインタイムをマークするためのシステム及び方法を対象とする。以下でより詳細に説明するように、本明細書に記載の様々なシステム及び方法は、仮想マシンサービスで提供される従来の仮想マシンスナップショット機能を使用することなく、アプリケーション整合性ポイントインタイムを生成することができ得る。仮想マシンディスクに対する書き込み要求をインターセプト及び複製することにより、本明細書に記載のシステム及び方法は、仮想ディスクのバックアップを維持し得る。本明細書に記載のシステム及び方法は更に、書き込み要求の順序付けられたシーケンスを保存するために、書き込み要求をキューイングし得る。書き込み要求をキューイングすることにより、本明細書に記載のシステム及び方法は、仮想マシンディスク上の書き込み動作を正確に模倣し得る。加えて、本明細書に記載のシステム及び方法は、バックアップ動作が必ずしも他の動作より優先されるとは限らないように、仮想マシンディスクを非同期的に模倣し得る。したがって、本明細書に記載のシステム及び方法は、より速いバックアップ動作を容易にし得る。本明細書に記載のシステム及び方法は、組織が従来のバックアップ動作に関連した性能の持続的な低下を伴わずにバックアップ動作を実施することを可能にし得る。
【0025】
更に、本明細書に記載のシステム及び方法はまた、仮想マシンディスクを非同期的にバックアップすることによって、仮想マシンホストデバイスの機能及び/又は性能を改善し得る。加えて、本明細書に記載のシステム及び方法は、従来のバックアップ動作中に示される性能低下を低減することによって、バックアップシステム及び仮想マシンモニタの分野を改善し得る。
【0026】
本明細書において使用される際、「仮想マシン」(「VM」)という用語は、概して、仮想マシンマネージャ(例えば、ハイパーバイザ)によって、コンピューティングハードウェアから抽象化される任意のオペレーティングシステム環境を指す。本明細書において使用される際、「ハイパーバイザ」という用語は、概して、仮想マシンを作成及び実行するソフトウェア、ファームウェア、及び/又はハードウェアを指す。ハイパーバイザが1つ以上の仮想マシンを実行するコンピューティングデバイスは、ホストマシンであり得、ホストマシン上の各仮想マシンは、ゲスト仮想マシンであり得る。
【0027】
本明細書において使用される際、「アプリケーション整合性」という用語は、概して、メモリ内のデータ及び保留中のI/O動作のデータを含む、ディスク上のファイルのバックアップを指す。保留中のI/O動作は、バックアップが矛盾のないトランザクション情報を含み得るように、正しいトランザクション順序又はシーケンシャル順序でディスクにフラッシュされ得る。
【0028】
本明細書において使用される際、「ポイントインタイム」という用語は、概して、ゲスト仮想マシン上で動作しているアプリケーションなど、1つ以上のアプリケーションの安定したメモリ状態を指す。ポイントインタイムの例としては、バックアップデータ、保存された状態、スナップショットなどが挙げられるが、これらに限定されない。
【0029】
下記において、
図1、
図2及び
図4を参照して、アプリケーション整合性ポイントインタイムをマークするための例示的なシステムについての詳細な説明を提供する。対応するコンピュータ実装方法の詳細な説明もまた、
図3~
図5に関連して提供する。加えて、例示的なデータフローの詳細な説明を、
図6に関連して提供する。
【0030】
図1は、アプリケーション整合性ポイントインタイムをマークするための例示的なシステム100のブロック図である。この図に示されているように、例示的なシステム100は、1つ以上のタスクを実施するための1つ以上のモジュール102を含んでもよい。以下でより詳細に説明するように、モジュール102は、I/Oフィルタモジュール104、I/Oデーモンモジュール106、バックアップゲートウェイモジュール108、及び仮想マシンモジュール110を含んでもよい。別個の要素として示されるが、
図1のモジュール102のうちの1つ以上は、単一のモジュール又はアプリケーションの一部分を表し得る。
【0031】
I/Oフィルタモジュール104は、入力/出力要求をインターセプトするように構成され得る。I/Oデーモンモジュール106は、入力/出力要求を管理するためのバックグラウンドプロセスとして構成され得る。バックアップゲートウェイモジュール108は、仮想マシンモジュール110によって管理される仮想マシンにバックアップサービスを提供するように構成され得る。仮想マシンモジュール110は、ゲスト仮想マシン122など、1つ以上の仮想マシンを監視及び/又は管理するように構成され得る。仮想マシンモジュール110は、ハイパーバイザ又は他の仮想マシンモニタであり得る。バックアップゲートウェイモジュール108は、仮想マシンモジュール110とは別個に実装され得る。
【0032】
特定の実施形態では、
図1のモジュール102のうちの1つ以上は、コンピューティングデバイスによって実行されるとき、コンピューティングデバイスに、1つ以上のタスクを実施させてもよい1つ以上のソフトウェアアプリケーション又はプログラムを表してもよい。例えば、以下でより詳細に説明するように、1つ以上のモジュール102は、
図2内に例解されたデバイス(例えば、コンピューティングデバイス202及び/又はサーバ206)などの、1つ以上のコンピューティングデバイス上で記憶され、動作するように構成されたモジュールを表現し得る。
図1のモジュール102のうちの1つ以上はまた、1つ以上のタスクを実施するように構成された1つ以上の特殊目的のコンピュータの全て又は一部分を表してもよい。
【0033】
図1に示されているように、例示的なシステム100はまた、メモリ140など、1つ以上のメモリデバイスも含み得る。メモリ140は、概して、データ及び/又はコンピュータ可読命令を記憶できる、任意の種類又は形式の揮発性又は不揮発性の記憶デバイス又は媒体を表す。一例では、メモリ140は、モジュール102のうちの1つ以上を記憶、ロード、及び/又は維持し得る。メモリ140の例としては、限定することなく、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、フラッシュメモリ、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、光ディスクドライブ、キャッシュ、これらのうちの1つ以上の変形若しくは組み合わせ、又は任意の他の好適なストレージメモリが挙げられる。
【0034】
図1に示されているように、例示的なシステム100はまた、物理的プロセッサ130など、1つ以上の物理的プロセッサも含み得る。物理プロセッサ130は、概して、コンピュータ可読命令を解釈でき、かつ/又は実行できる任意のタイプ又は形式のハードウェア実装処理ユニットを表す。一例では、物理プロセッサ130は、メモリ140に記憶されたモジュール102のうちの1つ以上にアクセスし得、かつ/又はこれらを修正し得る。追加的に又は代替的に、物理プロセッサ130は、モジュール102のうちの1つ以上を実行して、アプリケーション整合性ポイントインタイムをマークすることを容易にし得る。物理的プロセッサ130の例としては、マイクロプロセッサ、マイクロコントローラ、中央処理ユニット(Central Processing Unit、CPU)、ソフトコアプロセッサを実装しているフィールドプログラマブルゲートアレイ(Field-Programmable Gate Array、FPGA)、特定用途向け集積回路(Application-Specific Integrated Circuit、ASIC)、これらのうちの1つ以上の部分、これらのうちの1つ以上の変形若しくは組み合わせ、又は任意の他の好適な物理的プロセッサが挙げられるが、これらに限定されない。
【0035】
図1に示されているように、例示的なシステム100はまた、ゲスト仮想マシン122及び仮想マシンディスク124など、1つ以上の追加の要素120も含み得る。ゲスト仮想マシン122は、仮想マシンモジュール110によって実行及び管理される仮想マシンであり得る。仮想マシンディスク124は、仮想マシンモジュール110によって維持され、かつゲスト仮想マシン122によってアクセス可能なストレージであり得、ハードウェア及び/又はソフトウェアで実装され得る。例えば、ゲスト仮想マシン122上で動作しているアプリケーションは、仮想マシンディスク124に記憶されたデータを読み取り、及び/又は修正し得る。
【0036】
図1の例示的なシステム100は、様々な態様で実装され得る。例えば、例示的なシステム100の全て又は一部分は、
図2の例示的なシステム200の部分を表し得る。
図2に示されるように、システム200は、ネットワーク204を介してサーバ206と通信するコンピューティングデバイス202を含み得る。一例では、モジュール102の機能性の全て又は一部分は、コンピューティングデバイス202、サーバ206、及び/又は任意の他の好適なコンピューティングシステムによって実施され得る。以下でより詳細に説明するように、
図1のモジュール102のうちの1つ以上は、コンピューティングデバイス202及び/又はサーバ206の少なくとも1つのプロセッサによって実行されるとき、コンピューティングデバイス202及び/又はサーバ206がアプリケーション整合性ポイントインタイムを作成することを可能にし得る。
【0037】
コンピューティングデバイス202は、コンピュータ実行可能命令を読み出すことができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。コンピューティングデバイス202は、仮想マシンに接続するエンドポイントデバイスであり得る。コンピューティングデバイス202の追加例としては、ノートブック、タブレット、デスクトップ、サーバ、携帯電話、パーソナルデジタルアシスタント(PDA)、マルチメディアプレイヤー、組み込みシステム、ウェアラブルデバイス(例えば、スマートウォッチ、スマートグラスなど)、スマートビークル、いわゆるIoTデバイス(例えば、スマート家電など)、ゲーム機、これらのうちの1つ以上の変形若しくは組み合わせ、又は任意の他の好適なコンピューティングデバイスが挙げられるが、これらに限定されない。
【0038】
サーバ206は、一般に、仮想マシンを実行することができる任意のタイプ又は形式のコンピューティングデバイスを表す。サーバ206は、仮想マシンをデータバックアップサービスと共に実行するサーバであり得る。サーバ206の付加的な例としては、特定のソフトウェアアプリケーションを動作させ、かつ/又は様々なストレージ、データベース、及び/若しくはウェブサービスを提供するように構成された、ストレージサーバ、データベースサーバ、アプリケーションサーバ、及び/又はウェブサーバが挙げられるが、これらに限定されない。
図2において単一体として例解されるが、サーバ206は、互いに連動して働き、かつ/又は動作する複数のサーバを含み、かつ/又は表してもよい。
【0039】
ネットワーク204は、通信又はデータ転送を容易にすることができる任意の媒体又はアーキテクチャを概して表す。一例において、ネットワーク204は、コンピューティングデバイス202とサーバ206との間の通信を容易にし得る。この例では、ネットワーク204は、無線及び/又は有線接続を使用して、通信又はデータ転送を容易にし得る。ネットワーク204の例としては、限定するものではないが、イントラネット、ワイドエリアネットワーク(Wide Area Network、WAN)、ローカルエリアネットワーク(Local Area Network、LAN)、パーソナルエリアネットワーク(Personal Area Network、PAN)、インターネット、電力線通信(Power Line Communication、PLC)、セルラネットワーク(例えば、汎欧州デジタル移動電話方式(Global System for Mobile Communication、GSM)ネットワーク)、1つ以上の上記の部分、上記のうちの1つ以上の変形若しくは組み合わせ、又は任意の他の好適なネットワークを含む。
【0040】
多くの他のデバイス又はサブシステムは、
図1のシステム100及び/又は
図2のシステム200に接続され得る。逆に、
図1及び
図2に示す構成要素及びデバイスの全てが、本明細書において説明及び/又は例示される実施形態を実践するために存在する必要があるわけではない。上記で述べたデバイス及びサブシステムはまた、
図2に示すものとは異なる様式で相互接続されてもよい。システム100及び200はまた、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を採用してもよい。例えば、本明細書において開示される例示的な実施形態のうちの1つ以上は、コンピュータ可読媒体上に、コンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、及び/又はコンピュータ制御論理とも称される)としてコード化され得る。
【0041】
「コンピュータ可読媒体」という用語は、本明細書において使用される際、概して、コンピュータ可読命令を記憶又は担持することが可能な任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、限定することなく、搬送波などの伝送タイプ媒体、並びに磁気記憶媒体(例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク)、光記憶媒体(例えば、コンパクトディスク(Compact Disk、CD)、デジタルビデオディスク(Digital Video Disk、DVD)、及びBLU-RAYディスク)、電子記憶媒体(例えば、ソリッドステートドライブ及びフラッシュ媒体)などの非一時的タイプ媒体、並びに他の分散システムが挙げられる。
【0042】
図3は、アプリケーション整合性ポイントインタイムをマークするための例示的なコンピュータ実装方法300のフロー図である。
図3に示されている工程は、
図1のシステム100、
図2のシステム200、及び/又はこれらのうちの1つ以上の変形若しくは組み合わせを含む、任意の好適なコンピュータ実行可能コード及び/又はコンピューティングシステムによって実施され得る。一例では、
図3に示されている工程のそれぞれは、複数の副工程を含む及び/又はそれらによって表される構造を有するアルゴリズムを表すものであり得、これらの例を以下に詳細に示す。
【0043】
図3に示されるように、工程302において、本明細書に記載されるシステムのうちの1つ以上は、入力/出力(I/O)フィルタによって、ゲスト仮想マシンからの仮想マシンディスクへの書き込み要求をインターセプトし得る。例えば、I/Oフィルタモジュール104は、
図2のコンピューティングデバイス202の一部として、ゲスト仮想マシン122からの仮想マシンディスク124への書き込み要求をインターセプトし得る。
【0044】
本明細書において使用される際、「書き込み要求」という用語は、概して、データをメモリ及び/又はストレージバイスに書き込むか、又は他の方法で修正するコマンドを指す。ソフトウェア、ファームウェア、ハードウェアなどが、書き込み要求を生成し得る。書き込み要求の例としては、新しいデータを書き込むこと、記憶されたデータを修正すること、記憶されたデータを消去することなどが挙げられるが、これらに限定されない。
【0045】
本明細書に記載のシステムは、様々な方法で工程302を実施し得る。
図4に示される例示的なシステム400など、一例では、I/Oフィルタ404は、ゲスト仮想マシン422からの仮想マシンディスク424への書き込み要求をインターセプトし得る。システム400は、バックアップゲートウェイ408及びハイパーバイザ410を含み得る。
【0046】
バックアップゲートウェイ408は、バックアップゲートウェイモジュール108に対応し得る。本明細書において使用される際、「バックアップゲートウェイ」という用語は、概して、仮想マシンからデータをバックアップすることができるデータバックアップサービスを指す。
【0047】
仮想マシンモジュール110に対応し得る、ハイパーバイザ410は、ゲスト仮想マシン422、I/O API 403、及び仮想マシンディスク424を含み得る。ゲスト仮想マシン122に対応し得る、ゲスト仮想マシン422は、ハイパーバイザ410によって監視されるゲスト仮想マシンであり得る。I/O API 403は、ハイパーバイザ410の入力及び出力(例えば、データを読み取る、書き込む、修正する、及び/又は消去する)動作のためのアプリケーションプログラミングインターフェース(「API」)であり得る。
【0048】
本明細書において使用される際、「API」という用語は、構成要素間の通信のための通信プロトコル及び/又はサブルーチン定義を指し得る。I/O API 403は、I/Oフィルタモジュール104に対応し得る、I/Oフィルタ404と、I/Oデーモンモジュール106に対応し得る、I/Oデーモン406とを含み得る。I/Oフィルタ404は、書き込み要求をキューイングするためのキュー405を含み得る。I/Oデーモン406は、書き込み要求をキューイングするためのキュー407を含み得る。仮想マシンディスク425は、仮想マシンディスク124に対応し得る。
【0049】
図3に戻ると、工程304において、本明細書に記載されるシステムのうちの1つ以上は、書き込み要求をI/Oフィルタキューでキューイングし得る。例えば、I/Oフィルタモジュール104は、
図2のコンピューティングデバイス202の一部として、I/Oフィルタモジュール104に関連付けられたキューで書き込み要求をキューイングし得る。
【0050】
本明細書に記載のシステムは、様々な方法で工程304を実施し得る。一例では、I/Oフィルタ404は、キュー405で、仮想マシンディスク424に対するゲスト仮想マシン422からの書き込み要求をキューイングし得る。キュー405は、書き込み要求の順序付けられたシーケンスを、ゲスト仮想マシン422によって発行された順序に維持するように構成され得る。例えば、キュー405は、要素がキューに入れられたのと同じ順序でキューから取り出される先入れ先出し(「FIFO」)キューであり得る。あるいは、各書き込み要求は、ゲスト仮想マシン422による発行の順序に基づいたシーケンス識別子と関連付けられ得る。いくつかの例では、書き込み要求は、ゲスト仮想マシン422によって発行されたのと同じ順序でキュー405にキューイングされなくてもよい。シーケンス識別子は、同じ順序を維持するために使用され得る。
【0051】
工程306において、本明細書に記載されるシステムのうちの1つ以上は、I/Oフィルタキューに基づいて、書き込み要求を仮想マシンディスクに送信し得る。例えば、I/Oフィルタモジュール104は、
図2のコンピューティングデバイス202の一部として、書き込み要求を仮想マシンディスク124に送信し得る。
【0052】
本明細書に記載のシステムは、様々な方法で工程306を実施し得る。一例では、I/Oフィルタ404は、キュー405内の次の書き込み要求を仮想マシンディスク424に送信し得る。I/Oフィルタ404は、例えば、キュー405内の順序、シーケンス識別子などに基づいて、次の書き込み要求を決定し得る。
【0053】
工程308において、本明細書に記載されるシステムのうちの1つ以上は、I/Oフィルタによって、仮想マシンディスクからの書き込み完了メッセージを受信し得る。例えば、I/Oフィルタモジュール104は、
図2のコンピューティングデバイス202の一部として、仮想マシンディスク124からの書き込み完了メッセージを受信し得る。
【0054】
本明細書に記載のシステムは、様々な方法で工程308を実施し得る。一例では、I/Oフィルタ404は、仮想マシンディスク424からの書き込み完了メッセージを受信し得る。書き込み完了メッセージは、工程306で送信された書き込み要求を仮想マシンディスク424が正常に完了したことを示し得る。書き込み要求の完了は、仮想マシンディスク424の状態を更新するか、又は別の方法で変更し得る。いくつかの実装形態では、仮想マシンディスク424が、例えば、タイムアウト期間内に、書き込み完了メッセージを送信しないと、又は仮想マシンディスク424が書き込み失敗メッセージを送信すると、I/O API 403は、仮想マシンディスク424に、書き込み要求を再試行するか、又は書き込み失敗メッセージをゲスト仮想マシン422に送信するように命令し得る。I/Oフィルタ404は、書き込み要求が失敗すると、キュー405から書き込み要求を破棄し得る。
【0055】
工程310において、本明細書に記載されるシステムのうちの1つ以上は、書き込み完了メッセージに応じてI/Oフィルタによって、書き込み要求をI/Oデーモンに送信し得る。例えば、I/Oフィルタモジュール104は、
図2のコンピューティングデバイス202の一部として、書き込み完了メッセージに応じて、書き込み要求をI/Oデーモンモジュール106に送信し得る。
【0056】
本明細書に記載のシステムは、様々な方法で工程310を実施し得る。一例では、I/Oフィルタ404は、書き込み完了メッセージに応じて、書き込み要求をI/Oデーモン406に送信し得る。I/Oフィルタ404は、仮想マシンディスク424からの書き込み完了メッセージを受信した実質的にすぐ後に、書き込み要求を送信し得る。あるいは、I/Oフィルタ404は、遅れて、例えば、複数の書き込み要求を送信するバッチプロセスの一部として、書き込み要求を送信し得る。
【0057】
工程312において、本明細書に記載されるシステムのうちの1つ以上は、書き込み要求をI/Oデーモンキューでキューイングし得る。例えば、I/Oデーモンモジュール106は、
図2のコンピューティングデバイス202の一部として、I/Oデーモンモジュール106に関連付けられたキューで書き込み要求をキューイングし得る。
【0058】
本明細書に記載のシステムは、様々な方法で工程312を実施し得る。一例では、I/Oデーモン406は、書き込み要求をキュー407でキューイングし得る。いくつかの実装形態では、I/Oフィルタ404及びI/Oデーモン406は、キュー405及びキュー407が同じキューであり得るように、キューを共有し得る。いくつかの実装形態では、各書き込み要求は、例えば、書き込み要求が仮想マシンディスク424によって送信及び/又は完了されたかどうかを示す、ステータスフラグと共に記憶され得る。いくつかの実装形態では、I/Oデーモン406は、書き込み要求をキュー407でシーケンス識別子と共にキューイングし得る。いくつかの実装形態では、I/Oデーモン406は、仮想ディスク424が書き込み要求を正常に完了すると、書き込み要求をキュー407でキューイングし得る。
【0059】
工程314において、本明細書に記載されるシステムのうちの1つ以上は、書き込み完了メッセージをゲスト仮想マシンに送信し得る。例えば、I/Oフィルタモジュール104は、
図2のコンピューティングデバイス202の一部として、書き込み完了メッセージをゲスト仮想マシン122に送信し得る。
【0060】
本明細書に記載のシステムは、様々な方法で工程314を実施し得る。一例では、I/Oフィルタ404は、書き込み要求をゲスト仮想マシン422に送信し得る。次いで、ゲスト仮想マシン422、及びそのユーザは、書き込み要求の成功に関して通知され得る。いくつかの実装形態では、書き込み要求が失敗した場合、ゲスト仮想マシン422及び/又はI/O API 403は、仮想マシンディスク424で書き込み要求を再試行し得る。
【0061】
工程316において、本明細書に記載されるシステムのうちの1つ以上は、I/Oデーモンキューに基づいて、バックアップゲートウェイが仮想マシンディスクへの書き込みを模倣するように書き込み要求をバックアップゲートウェイに送信し得る。例えば、I/Oデーモンモジュール106は、
図2のコンピューティングデバイス202の一部として、書き込み要求をバックアップゲートウェイモジュール108に送信し得る。
【0062】
本明細書に記載のシステムは、様々な方法で工程316を実施し得る。一例では、I/Oデーモン406は、キュー407に基づいて書き込み要求をバックアップゲートウェイ408に送信し得る。例えば、I/Oデーモン406は、シーケンス識別子に基づいて書き込み要求を送信して、ゲスト仮想マシン422からの書き込み要求の順序付けられたシーケンスを維持し得る。
【0063】
バックアップゲートウェイ408は、仮想マシンディスク424に対応する独自のストレージを維持し得る。バックアップゲートウェイ408が、仮想マシンディスク424によって実行されたのと同じ順序で同じ書き込み要求を実施することから、バックアップゲートウェイ408は、仮想マシンディスクの模倣されたコピーを維持し得る。いくつかの実装形態では、バックアップゲートウェイ408は、仮想マシンディスク424への書き込みを非同期的に模倣し得る。例えば、バックアップゲートウェイ408は、仮想マシンディスク424による完了の成功後に書き込み要求を実施する際に遅延を示し得る。
【0064】
図5は、アプリケーション整合性ポイントインタイムをマークするための例示的なコンピュータ実装方法500のフロー図である。
図5に示されている工程は、
図1のシステム100、
図2のシステム200、及び/又はこれらのうちの1つ以上の変形若しくは組み合わせを含む、任意の好適なコンピュータ実行可能コード及び/又はコンピューティングシステムによって実施され得る。一例では、
図5に示されている工程のそれぞれは、複数の副工程を含む及び/又はそれらによって表される構造を有するアルゴリズムを表すものであり得、これらの例を以下に詳細に示す。
【0065】
図5に示されるように、工程502において、本明細書に記載されるシステムのうちの1つ以上は、ゲスト仮想マシン上のバックアップ要求者から、仮想マシンディスクに対するアプリケーション整合性ポイントインタイムをマークするメッセージを受信し得る。例えば、バックアップゲートウェイモジュール108は、
図2のコンピューティングデバイス202の一部として、ゲスト仮想マシン122から、仮想マシンディスク124に対するアプリケーション整合性ポイントインタイムをマークするメッセージを受信し得る。
【0066】
本明細書に記載のシステムは、様々な方法で工程502を実施し得る。一例では、バックアップゲートウェイ408は、ゲスト仮想マシン422からメッセージを受信して、仮想マシンディスク424に対するアプリケーション整合性ポイントインタイムをマークし得る。
図6は、バックアップ要求者622、バックアップゲートウェイ608、VMプロバイダ610、及びアプリケーション623のための例示的なデータフロー600を示す。
【0067】
バックアップ要求者622は、ゲスト仮想マシン122及び/又はゲスト仮想マシン422など、ゲスト仮想マシンに対応し得る。バックアップゲートウェイ608は、バックアップゲートウェイモジュール108及び/又はバックアップゲートウェイ408など、バックアップゲートウェイサービスに対応し得る。VMプロバイダ610は、I/Oフィルタモジュール104、I/Oデーモンモジュール106、仮想マシンモジュール110、仮想マシンディスク124、I/O API 403、及び/又は仮想マシンディスク424など、仮想マシンモニタ及び他の構成要素に対応し得る。アプリケーション623は、ライターなど、仮想マシンディスク624にアクセスし、これを修正し得るアプリケーション、プロセス、又は他のソフトウェアに対応し得る。
【0068】
図6に示されるように、602において、バックアップ要求者622は、アプリケーション整合性ポイントインタイムをマークするために、メッセージをバックアップゲートウェイ608に送信し得る。次いで、バックアップゲートウェイ608は、ゲスト仮想マシン、I/Oデーモンなどに対する属性/識別子などのパラメータを通信するために、バックアップ要求者622に接続し得る。例えば、メッセージを受信したことに応じて、バックアップゲートウェイ608は、要求されたバックアップ622に、ゲスト仮想マシンに対する仮想マシン識別子を送信し得る。
【0069】
図5に戻ると、工程504において、本明細書に記載されるシステムのうちの1つ以上は、仮想マシンディスクに対する新規の書き込み要求を一時停止し得る。例えば、I/Oデーモンモジュール106は、
図2のコンピューティングデバイス202の一部として、仮想マシンディスク124に対する新規の書き込み要求を一時停止し得る。
【0070】
本明細書に記載のシステムは、様々な方法で工程504を実施し得る。一例では、ゲスト仮想マシン422は、仮想マシンディスク424に対する新規の書き込み要求を一時停止するためにI/O API 403をエンゲージし得る。より具体的には、I/Oデーモン406が、新規の書き込み要求を一時停止し得る。
【0071】
図6の604において、バックアップ要求者622は、任意のライター(例えば、アプリケーション)を静止させるために、VMプロバイダ610に要求を送信し得る。本明細書において使用される際、「静止させる」という用語は、概して、例えば、整合状態を達成するために、アプリケーション及び/又はデバイスを一時停止させる、休止させる、又は他の方法で変更することを指す。アプリケーションを静止させることは、新規の書き込みを一時停止し、任意の未処理の書き込みをフラッシュすることを含み得る。
【0072】
バックアップ要求者622は、仮想マシン識別子を含む、バックアップゲートウェイ608から受信したパラメータをI/Oデーモンに送信し得る。606において、VMプロバイダ610のI/Oデーモンは、アプリケーション623を静止させ得る。例えば、
図4では、I/Oデーモン406は、ゲスト仮想マシン422による新規の書き込み要求を一時停止するために、ゲスト仮想マシン422上で動作しているアプリケーションを静止させ得る。アプリケーションを静止させることはまた、未処理の書き込み及びメモリ内の任意のデータを仮想マシンディスクにフラッシュすることも含み得る。608において、アプリケーション623は、保留中の書き込みをI/Oフィルタにフラッシュし得る。例えば、I/Oフィルタ404は、保留中の書き込みをキュー405にキューイングし得る。
【0073】
図5に戻ると、工程506において、本明細書に記載されるシステムのうちの1つ以上は、I/Oフィルタ内の仮想マシンディスクに対する保留中の書き込み要求を完了し得る。例えば、I/Oフィルタモジュール104は、
図2のコンピューティングデバイス202の一部として、仮想マシンディスク124に対する保留中の書き込み要求を完了し得る。
【0074】
本明細書に記載のシステムは、様々な方法で工程506を実施し得る。一例では、I/Oフィルタ404は、キュー405でキューイングされている保留中の書き込み要求を完了し得る。I/Oデーモン406がアプリケーションを静止させているため、キュー405は、アプリケーション整合性ポイントインタイムをマークするメッセージの後に生成された新規の書き込みを含み得ない。
【0075】
工程508において、本明細書に記載されるシステムのうちの1つ以上は、I/Oフィルタによって、保留中の書き込み要求を完了したことに応じてフラッシュ完了メッセージを受信し得る。例えば、I/Oフィルタモジュール104は、
図2のコンピューティングデバイス202の一部として、保留中の書き込み要求の完了を示すフラッシュ完了メッセージを仮想ディスク124から受信し得る。
【0076】
本明細書に記載のシステムは、様々な方法で工程508を実施し得る。一例では、仮想マシンディスク424は、保留中の書き込みを完了した後、フラッシュ完了メッセージをI/Oフィルタ404に送信し得る。この時点で、仮想マシンディスク424は、アプリケーション整合性ポイントインタイムをマークするメッセージが送信されたときに対応する安定した整合状態にあり得る。
【0077】
工程510において、本明細書に記載されるシステムのうちの1つ以上は、I/Oデーモンによって、アプリケーション整合性ポイントインタイムをマークするためにI/Oデーモンキュー内にマーカーを設定し得る。例えば、I/Oデーモンモジュール106は、
図2のコンピューティングデバイス202の一部として、I/Oデーモンモジュール106に関連付けられたキュー内にマーカーを設定し得る。
【0078】
本明細書に記載のシステムは、様々な方法で工程510を実施し得る。一例では、I/Oデーモン406は、アプリケーション整合性ポイントインタイムをマークするためにキュー407内にマーカーを設定し得る。このマーカーは、このマーカーより前の仮想マシンディスク424に対する全てのI/O要求が、アプリケーション整合性データセットを形成し得ることを示し得る。このマーカーは、アプリケーション整合性ポイントインタイムの一部であるI/O要求をそうでないもの(例えば、新規の書き込み要求)から分離するI/Oバリアとして更に役立ち得る。バックアップゲートウェイ408は仮想マシンディスク424への書き込みを非同期的に模倣し得るため、バックアップゲートウェイ408は、仮想マシンディスク424の状態をすぐには反映しない場合がある。しかしながら、このマーカーは、バックアップゲートウェイ408がキュー407内の、このマーカーまでの全ての書き込み要求を実施すれば、バックアップゲートウェイ408が、仮想マシンディスク424と同じアプリケーション整合性ポイントインタイムを確立することを確実にし得る。
【0079】
例えば、
図6の610において、VMプロバイド(VM provide)610は、I/Oデーモンキューからのキューイングされた書き込み要求をバックアップゲートウェイ608に提供し得る。書き込み要求が完了すると、バックアップゲートウェイ608は、612において、完了メッセージをVMプロバイダ610に送信し得る。612において、バックアップゲートウェイ608は、アプリケーション整合性ポイントインタイムを完了し得る。
図6は、610及び612が614の前に発生することを示しているが、以下で更に説明されるように、他の実装形態では、610及び612は、614の後に発生し得る。
【0080】
図5に戻ると、工程512において、本明細書に記載されるシステムのうちの1つ以上は、マーカーを設定したことに応じて、ゲスト仮想マシンからの新規の書き込み要求を許可し得る。例えば、I/Oデーモンモジュール106は、
図2のコンピューティングデバイス202の一部として、ゲスト仮想マシン122からの仮想マシンディスク124に対する新規の書き込み要求を許可し得る。
【0081】
本明細書に記載のシステムは、様々な方法で工程512を実施し得る。一例では、I/O API 403及び/又はI/Oデーモン406は、ゲスト仮想マシン422上のアプリケーションが仮想ディスク424に書き込むことを許可し得る。新規の書き込み要求を許可することは、アプリケーションを静止解除することを含み得る。
【0082】
いくつかの実装形態では、I/Oデーモン406は、アプリケーションを静止解除するためにハイパーバイザ410をエンゲージし得る。例えば、
図6に示すように、614において、VMプロバイダ610は、アプリケーション623を静止解除し得る。アプリケーション623は、その動作を継続し得る。
【0083】
いくつかの実装形態では、I/Oデーモン406は、アプリケーション整合性ポイントインタイムの前の全ての書き込み要求の後、かつ新規の書き込み要求の前に、マーカーをバックアップゲートウェイ408に送信し得る。例えば、
図6では、614において、VMプロバイダ610は、アプリケーション623を静止解除する前にマーカーをバックアップゲートウェイ608に送信し得る。
【0084】
図1~
図6に関連して上で説明したように、バックアップゲートウェイは、VMを非同期的にバックアップし得る。例示的なシステムは、3つのサブシステム、すなわち、バックアップ要求者と共に構成されたゲストVM、ハイパーバイザ上に実装されたI/Oフィルタ又はタップ、及びI/Oタップによってインターセプトされた書き込みストリームを受信するためのバックアップゲートウェイを含み得る。I/Oタップは、仮想マシンディスクに向けられたI/O動作(例えば、書き込みストリーム)をインターセプトし得る。次いで、I/Oタップは、書き込みストリームを仮想マシンディスクに送信し、複製の書き込みストリームをバックアップゲートウェイに非同期的に送信し得る。アプリケーション整合性ポイントインタイムが必要とされるとき、バックアップゲートウェイは、ゲストVM上のバックアップ要求者に接続し得る。バックアップ要求者は、アプリケーションを静止させ、全ての保留中の書き込みを仮想マシンディスクにフラッシュするように、ハイパーバイザをエンゲージし得る。保留中の書き込みがなくなると、I/Oタップは、ポイントインタイムをマークするための特別なイベントを送信し得る。これに応じて、ハイパーバイザは、アプリケーションを静止解除し、通常の動作を再開し得る。
【0085】
バックアップゲートウェイが書き込みストリームを非同期的に複製するため、バックアップ動作が要求されたとき、仮想マシンホストは、バックアップが完了するまで他の動作が待つことを必要とせずに、仮想マシンディスクをバックアップし得る。したがって、本明細書に記載のシステム及び方法は、バックアップ動作中の潜在的な性能ボトルネックを低減し得る。
【0086】
上述の開示は、具体的なブロック図、フローチャート、及び実施例を使用して、種々の実施形態を記載するが、本明細書において説明及び/又は例解される各ブロック図の構成要素、フローチャートの工程、動作、及び/又は構成要素は、広範なハードウェア、ソフトウェア、又はファームウェア(又はこれらの任意の組み合わせ)構成を使用して、個々に、かつ/又は集合的に実装され得る。加えて、他の構成要素内に含まれる構成要素のいずれの開示も、多くの他のアーキテクチャを実装して、同じ機能性を達成することができるため、事実上、例としてみなされるべきである。
【0087】
いくつかの例では、
図1の例示的なシステム100の全て又は一部分は、クラウドコンピューティング又はネットワークベース環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、種々のサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてプラットフォーム、サービスとしてのインフラストラクチャなど)は、ウェブブラウザ又は他のリモートインターフェースを通じて、アクセス可能であり得る。本明細書において説明される種々の機能は、リモートデスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通じて提供され得る。
【0088】
種々の実施形態において、
図1の例示的なシステム100の全て又は一部分は、クラウドベースのコンピューティング環境内のマルチテナンシーを容易にし得る。換言すると、本明細書において説明されるモジュールは、本明細書において説明される機能のうちの1つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム(例えば、サーバ)を構成し得る。例えば、本明細書において説明されるモジュールのうちの1つ以上は、2つ以上のクライアント(例えば、顧客)が、サーバ上で実行されているアプリケーションを共有することを可能にするように、サーバをプログラムし得る。このようにプログラムされたサーバは、複数の顧客(すなわち、テナント)間でアプリケーション、オペレーティングシステム、処理システム、及び/又は記憶システムを共有し得る。本明細書において説明されるモジュールのうちの1つ以上はまた、ある顧客が別の顧客のデータ及び/又は構成情報にアクセスすることができないように、各顧客に対して、マルチテナントアプリケーションのデータ及び/又は構成情報を分割し得る。
【0089】
種々の実施形態によれば、
図1の例示的なシステム100の全て又は一部分は、仮想環境内で実装され得る。例えば、本明細書において説明されるモジュール及び/又はデータは、仮想マシン内に存在し得る、かつ/又はそこで実行し得る。本明細書において使用される際、「仮想マシン」という用語は、概して、仮想マシンマネージャ(例えば、ハイパーバイザ)によって、コンピューティングハードウェアから抽象化される任意のオペレーティングシステム環境を指す。
【0090】
いくつかの例では、
図1の例示的なシステム100の全て又は一部分は、モバイルコンピューティング環境の部分を表し得る。モバイルコンピューティング環境は、モバイル電話、タブレットコンピュータ、電子書籍リーダ、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス(例えば、頭部装着型ディスプレイ、スマートウォッチなどを有するコンピューティングデバイス)、これらのうちの1つ以上の変形若しくは組み合わせ、又は任意の他の好適なモバイルコンピューティングデバイスを含む、広範なモバイルコンピューティングデバイスによって実装され得る。いくつかの例において、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間に1つのフォアグラウンドアプリケーションのみを提示すること、遠隔管理特性、タッチスクリーン特性、場所及び移動データ(例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される)、システムレベルの構成への修正を制限する、かつ/又は第3者のソフトウェアが他のアプリケーションの挙動を検査する能力を制限する、制限されたプラットフォーム、アプリケーションのインストールを制限する(例えば、承認されたアプリケーションストアのみから得る)管理などを含む、1つ以上の異なる特性を含み得る。本明細書において説明される種々の機能は、モバイルコンピューティング環境に対して提供され得る、かつ/又はモバイルコンピューティング環境と相互作用し得る。
【0091】
本明細書において説明及び/又は例解される工程のプロセスパラメータ及び順序は、例として示されるに過ぎず、所望に応じて変化させることができる。例えば、本明細書において例解及び/又は説明される工程は、特定の順序で図示又は考察されるが、これらの工程は、必ずしも例解又は考察される順序で実施される必要はない。本明細書において説明及び/又は例解される種々の例示的な方法もまた、本明細書において説明若しくは例解される工程のうちの1つ以上を省略し得るか、又は開示されるものに加えて追加の工程を含み得る。
【0092】
種々の実施形態が、完全に機能的なコンピューティングシステムの文脈で、本明細書において説明及び/又は例解されているが、これらの例示的な実施形態のうちの1つ以上は、分散を実際に行うために使用される特定のタイプのコンピュータ可読媒体にかかわらず、様々な形態のプログラム製品として分散され得る。本明細書において開示される実施形態はまた、あるタスクを実施するモジュールを使用して、実装され得る。これらのモジュールは、コンピュータ可読記憶憶媒体上に、又はコンピューティングシステム内に記憶され得る、スクリプト、バッチ、又は他の実行可能なファイルを含み得る。いくつかの実施形態では、これらのモジュールは、本明細書において開示される例示的な実施形態のうちの1つ以上を実施するように、コンピューティングシステムを構成し得る。
【0093】
先述の説明は、当業者が、本明細書において開示される例示的な実施形態の種々の態様を最良に利用することを可能にするために提供されている。この例示的な説明は、網羅的であることを意図するものでも、開示されたいずれかの正確な形態に限定されることを意図するものでもない。多くの修正及び改変が、本開示の趣旨及び範囲から逸脱することなく、可能である。本明細書において開示される実施形態は、全ての点において、例解的であり、制限的ではないとみなされるべきである。本開示の範囲を判定する上では、添付の請求項及びそれらの同等物を参照するべきである。
【0094】
別途記載されない限り、「~に接続される(connected to)」及び「~に連結される(coupled to)」という用語(及びそれらの派生語)は、本明細書及び請求項において使用される際、直接的及び間接的(すなわち、他の要素又は構成要素を介した)接続の両方を許容するとして解釈されるものとする。加えて、「a」又は「an」という用語は、本明細書及び請求項において使用される際、「~のうちの少なくとも1つ(at least one of)」を意味するとして解釈されるものとする。最後に、使用を容易にするために、「含む(including)」及び「有する(having)」という用語(及びそれらの派生語)は、本明細書及び請求項において使用される際、「備える(comprising)」という語と同義的であり、かつ同じ意味を有する。
【手続補正書】
【提出日】2022-03-02
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
アプリケーション整合性ポイントインタイムをマークするためのコンピュータ実装方法であって、前記方法の少なくとも一部は、少なくとも1つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
入力/出力(I/O)フィルタによって、ゲスト仮想マシンからの仮想マシンディスクへの書き込み要求をインターセプトすることと、
前記書き込み要求をI/Oフィルタキューでキューイングすることと、
前記I/Oフィルタキューに基づいて、前記書き込み要求を前記仮想マシンディスクに送信することと、
前記I/Oフィルタによって、前記仮想マシンディスクからの書き込み完了メッセージを受信することと、
前記書き込み完了メッセージに応じて前記I/Oフィルタによって、前記書き込み要求をI/Oデーモンに送信することと、
前記書き込み要求をI/Oデーモンキューでキューイングすることと、
前記書き込み完了メッセージを前記ゲスト仮想マシンに送信することと、
前記I/Oデーモンキューに基づいて、バックアップゲートウェイが前記仮想マシンディスクへの書き込みを模倣するように前記書き込み要求を前記バックアップゲートウェイに送信することと、を含む、方法。
【請求項2】
前記ゲスト仮想マシン上のバックアップ要求者から、前記仮想マシンディスクに対するアプリケーション整合性ポイントインタイムをマークするメッセージを受信することと、
前記仮想マシンディスクに対する新規の書き込み要求を一時停止することと、
前記I/Oフィルタ内の前記仮想マシンディスクに対する保留中の書き込み要求を完了することと、
前記I/Oフィルタによって、保留中の前記書き込み要求を完了したことに応じてフラッシュ完了メッセージを受信することと、
I/Oデーモンによって、前記アプリケーション整合性ポイントインタイムをマークするために前記I/Oデーモンキュー内にマーカーを設定することと、
前記マーカーを設定したことに応じて、前記ゲスト仮想マシンからの新規の書き込み要求を許可することと、を更に含む、請求項1に記載の方法。
【請求項3】
前記メッセージを受信したことに応じて前記バックアップゲートウェイから前記バックアップ要求者に、前記ゲスト仮想マシンに対する仮想マシン識別子を送信することと、
前記バックアップ要求者から前記I/Oデーモンに、前記仮想マシン識別子を送信することと、
前記ゲスト仮想マシンによる新規の書き込み要求を一時停止することと、を更に含む、請求項2に記載の方法。
【請求項4】
前記アプリケーション整合性ポイントインタイムの前の全ての書き込み要求の後、かつ前記新規の書き込み要求の前に、前記マーカーを前記バックアップゲートウェイに送信することを更に含む、請求項2又は3に記載の方法。
【請求項5】
前記バックアップゲートウェイが、前記仮想マシンディスクの模倣されたコピーを維持する、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記書き込み要求を前記I/Oデーモンキューでキューイングすることが、前記書き込み要求をシーケンス識別子と共にキューイングすることを含む、請求項1~5のいずれか一項に記載の方法。
【請求項7】
前記バックアップゲートウェイに前記書き込み要求を送信することが、前記シーケンス識別子に基づいて前記書き込み要求を送信して、前記ゲスト仮想マシンからの書き込み要求の順序付けられたシーケンスを維持することを更に含む、請求項6に記載の方法。
【請求項8】
前記バックアップゲートウェイが、前記仮想マシンディスクへの前記書き込みを非同期的に模倣する、請求項1~7のいずれか一項に記載の方法。
【請求項9】
アプリケーション整合性ポイントインタイムをマークするためのシステムであって、
少なくとも1つの物理プロセッサと、
コンピュータ実行可能命令を含む物理メモリであって、前記命令は、前記物理プロセッサによって実行されると、前記物理プロセッサに、
入力/出力(I/O)フィルタによって、ゲスト仮想マシンからの仮想マシンディスクへの書き込み要求をインターセプトさせ、
前記書き込み要求をI/Oフィルタキューでキューイングさせ、
前記I/Oフィルタキューに基づいて、前記書き込み要求を前記仮想マシンディスクに送信させ、
前記I/Oフィルタによって、前記仮想マシンディスクからの書き込み完了メッセージを受信させ、
前記書き込み完了メッセージに応じて前記I/Oフィルタによって、前記書き込み要求をI/Oデーモンに送信させ、
前記書き込み要求をI/Oデーモンキューでキューイングさせ、
前記書き込み完了メッセージを前記ゲスト仮想マシンに送信させ、
前記I/Oデーモンキューに基づいて、バックアップゲートウェイが前記仮想マシンディスクへの書き込みを模倣するように前記書き込み要求を前記バックアップゲートウェイに送信させる、物理メモリと、を備える、システム。
【請求項10】
前記命令が、
前記ゲスト仮想マシン上のバックアップ要求者から、前記仮想マシンディスクに対するアプリケーション整合性ポイントインタイムをマークするメッセージを受信し、
前記仮想マシンディスクに対する新規の書き込み要求を一時停止し、
前記I/Oフィルタ内の前記仮想マシンディスクに対する保留中の書き込み要求を完了し、
前記I/Oフィルタによって、保留中の前記書き込み要求を完了したことに応じてフラッシュ完了メッセージを受信し、
I/Oデーモンによって、前記アプリケーション整合性ポイントインタイムをマークするために前記I/Oデーモンキュー内にマーカーを設定し、
前記マーカーを設定したことに応じて、前記ゲスト仮想マシンからの新規の書き込み要求を許可する、ための命令を更に含む、請求項9に記載のシステム。
【請求項11】
前記命令が、
前記メッセージを受信したことに応じて前記バックアップゲートウェイから前記バックアップ要求者に、前記ゲスト仮想マシンに対する仮想マシン識別子を送信し、
前記バックアップ要求者から前記I/Oデーモンに、前記仮想マシン識別子を送信し、
前記ゲスト仮想マシンによる新規の書き込み要求を一時停止する、ための命令を更に含む、請求項10に記載のシステム。
【請求項12】
前記命令が、前記アプリケーション整合性ポイントインタイムの前の全ての書き込み要求の後、かつ前記新規の書き込み要求の前に、前記マーカーを前記バックアップゲートウェイに送信するための命令を更に含む、請求項10又は11に記載のシステム。
【請求項13】
前記バックアップゲートウェイが、前記仮想マシンディスクの模倣されたコピーを維持する、請求項9~12のいずれか一項に記載のシステム。
【請求項14】
前記書き込み要求を前記I/Oデーモンキューでキューイングするための前記命令が、前記書き込み要求をシーケンス識別子と共にキューイングするための命令を含む、請求項9~12のいずれか一項に記載のシステム。
【請求項15】
前記バックアップゲートウェイに前記書き込み要求を送信するための前記命令が、前記シーケンス識別子に基づいて前記書き込み要求を送信して、前記ゲスト仮想マシンからの書き込み要求の順序付けられたシーケンスを維持するための命令を更に含む、請求項14に記載のシステム。
【国際調査報告】