(57)【要約】      （修正有）【課題】仮想マシンを起動させるための方法、装置、デバイス及び媒体を提供する。【解決手段】仮想マシンを起動させるための方法は、第１の仮想マシンの仮想ディスクにおける第１のデータに対してディスクスナップショットを生成するステップと、第１の仮想マシンの識別子情報及びディスクスナップショットのアドレス情報に基づき第２の仮想マシンを稼動させることによって第１のデータを第２の仮想マシンの仮想ディスクに複写するステップと、を含む。起動された第２の仮想マシンにおけるオペレーティングシステムの初期化の完了に応じて、第２の仮想マシンの稼動を一時停止することによって、第１の仮想マシンが使用不能な時に第１の仮想マシンを復元させる。【選択図】図２
2020194521.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンを起動させるための方法であって、
前記第１の仮想マシンの仮想ディスクにおける第１のデータに対してディスクスナップショットを生成するステップと、
前記第１の仮想マシンの識別子情報および前記ディスクスナップショットのアドレス情報に基づき、第２の仮想マシンを稼動させることによって、前記第１のデータを前記第２の仮想マシンの仮想ディスクに複写するステップと、
起動された前記第２の仮想マシンにおけるオペレーティングシステムの初期化の完了に応じて、前記第２の仮想マシンの稼動を一時停止させることによって、前記第１の仮想マシンが使用不能な時に前記第１の仮想マシンを復元させるステップと、を含む方法。
【請求項２】
前記第１の仮想マシンの第１のメモリの第１の記憶容量が、前記第２の仮想マシンの第２のメモリの第２の記憶容量より大きい請求項１に記載の方法。
【請求項３】
前記第１の仮想マシンを復元させるための、前記第１の仮想マシンの識別子情報を含むリクエストを受信するステップと、
前記識別子情報に基づき、前記第２の仮想マシンおよび前記第１の記憶容量を確定するステップと、
前記第２の仮想マシンの前記第２のメモリの記憶容量を、前記第２の記憶容量から前記第１の記憶容量に調整するステップと、
前記第２の仮想マシンを引き続き稼動させることで前記第１の仮想マシンとするステップと、をさらに含む請求項２に記載の方法。
【請求項４】
前記の第１の仮想マシンに対してディスクスナップショットを生成するステップは、
ディスクスナップショットを生成するためのリクエストの受信に応じて前記ディスクスナップショットを生成するステップと、
前記第１の仮想マシンが使用可能な時に前記ディスクスナップショットを生成するステップと、のうち、少なくとも一方を含む請求項１に記載の方法。
【請求項５】
前記第２の仮想マシンを一時停止させるステップは、
前記オペレーティングシステムの初期化の完了を示す指示情報が前記第２の仮想マシンから受信されたことに応じて、前記第２の仮想マシンを一時停止させるステップを含む請求項１に記載の方法。
【請求項６】
前記第２の仮想マシンを一時停止させるステップは、
前記第２の仮想マシンが所定のアクセス動作を実行したことがモニタリングされたことに応じて、前記オペレーティングシステムの初期化の完了を確定するステップを含む請求項１に記載の方法。
【請求項７】
仮想マシンを起動させるための装置であって、
前記第１の仮想マシンの仮想ディスクにおける第１のデータに対してディスクスナップショットを生成するように構成される第１のディスクスナップショット生成モジュールと、
前記第１の仮想マシンの識別子情報および前記ディスクスナップショットのアドレス情報に基づき、第２の仮想マシンを稼動させることによって、前記第１のデータを前記第２の仮想マシンの仮想ディスクに複写するように構成される仮想マシン起動モジュールと、
起動された前記第２の仮想マシンにおけるオペレーティングシステムの初期化の完了に応じて、前記第２の仮想マシンの稼動を一時停止させることによって、前記第１の仮想マシンが使用不能な時に前記第１の仮想マシンを復元させるように構成される第１の一時停止モジュールと、を備える装置。
【請求項８】
前記第１の仮想マシンの第１のメモリの第１の記憶容量が、前記第２の仮想マシンの第２のメモリの第２の記憶容量より大きい請求項７に記載の装置。
【請求項９】
前記第１の仮想マシンを復元させるための、前記第１の仮想マシンの識別子情報を含むリクエストを受信するように構成されるリクエスト受信モジュールと、
前記識別子情報に基づき、前記第２の仮想マシンと前記第１の記憶容量を確定するように構成される記憶容量確定モジュールと、
前記第２の仮想マシンの前記第２のメモリの記憶容量を、前記第２の記憶容量から前記第１の記憶容量に調整するように構成される記憶容量調整モジュールと、
前記第２の仮想マシンを引き続き稼動させることによって前記第１の仮想マシンとするように構成される仮想マシン稼動モジュールと、をさらに備える請求項８に記載の装置。
【請求項１０】
第１のディスクスナップショット生成モジュールは、
ディスクスナップショットを生成するためのリクエストの受信に応じて、前記ディスクスナップショットを生成するように構成される第２のディスクスナップショット生成モジュールと、
前記第１の仮想マシンの使用可能な時に前記ディスクスナップショットを生成するように構成される第３のディスクスナップショット生成モジュールとのうち、少なくとも一方を備える請求項７に記載の装置。
【請求項１１】
前記第１の一時停止モジュールは、
前記オペレーティングシステムの初期化の完了を示す指示情報が前記第２の仮想マシンから受信されたことに応じて、前記第２の仮想マシンを一時停止させるように構成される第２の一時停止モジュールを備える請求項７に記載の装置。
【請求項１２】
前記第１の一時停止モジュールは、
前記第２の仮想マシンによる所定のアクセス動作の実行がモニタリングされたことに応じて、前記オペレーティングシステムの初期化の完了を確定するように構成される初期化モジュールを備える請求項７に記載の装置。
【請求項１３】
１つまたは複数のプロセッサと、
１つまたは複数のプログラムを記憶するための記憶装置であって、前記１つまたは複数のプログラムが前記１つ又は複数のプロセッサにより実行されると、前記１つまたは複数のプロセッサに請求項１〜６のいずれか１項に記載の方法を実行させる記憶装置と、を備える電子デバイス。
【請求項１４】
コンピュータプログラムが記憶されるコンピュータ読取可能な記憶媒体であって、
前記プログラムがプロセッサにより実行されると、請求項１〜６のいずれか１項に記載の方法を実現するコンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の実施形態は主にコンピュータ分野に関し、更に具体的に、仮想マシンを起動させるための方法、装置、デバイス及びコンピュータ読取可能な記憶媒体に関している。
【背景技術】
【０００２】
クラウド・コンピューティングの発展に従い、クラウドにデプロイするよう選択するインターネットサービスはますます多くなる。サービスをクラウドにデプロイすることによって、ユーザは多くのデバイスの配置を必要としなく、コストを低減できる。なお、クラウド上の仮想マシンを用いてこれらのサービスを稼働させることによってサービスの稼動効率を向上できる。しかしながら、これらのサービスは、クラウド上にデプロイされるので、コストを考慮すると、クラウド上の仮想マシンとともに起動されることが一般的である。
【０００３】
しかしながら、クラウドプラットフォームで稼動されている一部のサービスは、性能パラメータに対する要求が厳しい。したがって、クラウドプラットフォームにおけるサーバでこれらのサービスを稼動させることも、クラウドプラットフォームサーバに対し厳しく要求している。従来の仮想マシン稼動機構はこれらの要求を満たすことができないので、サービスの提供時の効率が低く、速度が遅くなり、ひいては、対応するサービスを提供できない虞がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本開示の例示的な実施形態により、仮想マシンを起動させるため技術案が提供される。
【課題を解決するための手段】
【０００５】
本開示の第１態様において、仮想マシンを起動させるための方法を提供する。該方法は、第１の仮想マシンの仮想ディスクにおける第１のデータに対してディスクスナップショットを生成するステップと、第１の仮想マシンの識別子情報およびディスクスナップショットのアドレス情報に基づき、第２の仮想マシンを稼動させることによって、第１のデータを第２の仮想マシンの仮想ディスクに複写するステップと、起動された第２の仮想マシンにおけるオペレーティングシステムの初期化の完了に応じて、第２の仮想マシンの稼動を一時停止させることによって、第１の仮想マシンが使用不能な時に第１の仮想マシンを復元させるステップと、を含む。
【０００６】
本開示の第２態様において、仮想マシンを起動させるための装置を提供する。該装置は、第１の仮想マシンの仮想ディスクにおける第１のデータに対してディスクスナップショットを生成するように構成されている第１のディスクスナップショット生成モジュールと、第１の仮想マシンの識別子情報およびディスクスナップショットのアドレス情報に基づき、第２の仮想マシンを稼動させることによって、第１のデータを第２の仮想マシンの仮想ディスクに複写するように構成されている起動仮想マシンモジュールと、起動された第２の仮想マシンにおけるオペレーティングシステムの初期化の完了に応じて、第２の仮想マシンの稼動を一時停止させることによって、第１の仮想マシンが使用不能な時に第１の仮想マシンを復元させるように構成されている第１の一時停止モジュールと、を備える装置。
【０００７】
本開示の第３態様において、１つのまたは複数のプロセッサと、１つのまたは複数のプログラムを記憶するための記憶装置であって、１つまたは複数のプログラムが１つ又は複数のプロセッサにより実行されると、１つまたは複数のプロセッサに本開示の第１態様に記載の方法を実行させる記憶装置と、を備える電子デバイスを提供する。
【０００８】
本開示の第４態様において、コンピュータプログラムが記憶されるコンピュータ読取可能な記憶媒体であって、該プログラムがプロセッサにより実行されると、本開示の第１態様に記載の方法を実現するコンピュータ読取可能な記憶媒体を提供する。
【０００９】
発明の概要部分に記載の内容は本開示の実施形態の肝心の、又は重要の特徴を限定することを主旨としなく、本開示の範囲を限定することを目的としていないことを理解すべきである。本開示におけるその他の特徴は下記の記載により容易に理解され得る。
【図面の簡単な説明】
【００１０】
図面を参照するとともに下記の詳細の説明を参照して、本開示の各実施形態の上記の、及びその他の特徴、利点や態様はより明らかになる。図面における同一又は類似の図面の符号は同一又は類似の部材を示す。
【００１１】
【図１】本開示の実施形態に係る仮想マシンを起動させる例示的な環境１００を示す模式図である。
【００１２】
【図２】本開示の実施形態に係る仮想マシンを起動させるための方法２００を示すフローチャートである。
【００１３】
【図３】本開示の実施形態に係る仮想マシンを復元させるための方法３００を示すフローチャートである。
【００１４】
【図４】本開示の実施形態に係る仮想マシンを起動させるための装置４００を示す概略ブロック図である。
【００１５】
【図５】本開示の複数の実施形態を実施可能なコンピューティングデバイス５００を示すブロック図である。
【発明を実施するための形態】
【００１６】
図面を参照して本開示の実施形態を更に詳細に説明する。図面は本開示の一部の実施形態を示しているが、本開示は様々の形式にて実現され得、且つ、本明細書に記載の実施形態に限定されないものであると理解すべきであり、ただし、これらの実施形態は本開示を更に詳細且つ完備に理解するために提示されるものである。本開示の図面及び実施形態は本開示の保護範囲を限定するものでなく例示的なものであると理解すべきである。
【００１７】
本開示の実施形態の記載における用語である「含む」及びその類似の用語は、非限定の表現、即ち、「含むがそれに限定されない」と理解すべきである。用語である「基づく」は、「少なくとも一部が…に基づき」と理解すべきである。用語である「一実施形態」又は「該実施形態」は、「少なくとも一実施形態」と理解すべきである。用語である「第１の」、「第２の」などは、異なるか、または、同一の対象を指すことができる。下記の記載は明示的及び暗黙的な他の定義を含む可能性もある。
【００１８】
通常に、仮想マシンは主にスナップショットにて１つの仮想マシンのミラーファイルを生成することによって高速起動される。通常に、該スナップショットは、仮想マシンの仮想メモリ及び／又は仮想ディスクにおけるデータに対して生成されるもの、例えば、仮想マシンディスクに基づき生成されるディスクスナップショット、仮想メモリに基づき生成されるメモリスナップショット等である。そして、ミラーファイルは仮想マシンの起動毎に直接的にローディングされる。このようにして、仮想マシンはスナップショット作成時の状態に直接復元され、仮想マシンＢＩＯＳ及びカーネルの起動プロセスをスキップして起動速度を加速できる。しかしながら、スナップショットファイルをローディングして仮想マシンを起動させる方式は、仮想マシンが起動時に磁気ディスクにおけるスナップショットファイルを読み書きする必要があるので、仮想マシンのメモリが比較的大きいか、又は、磁気ディスクの速度が比較的遅いとき、スナップショットファイルの読取時間が起動時間の更なるボトルネックとなるという欠点がある。
【００１９】
本開示の実施形態によれば、仮想マシンの起動のための、改良された技術案は提供される。該技術案においては、第１の仮想マシンのディスクスナップショットを生成することによって、第１の仮想マシンに対応する第２の仮想マシン（テンプレート仮想マシンとも称され得る）を自動的に生成する。そして、該第２の仮想マシンを稼動させる。該第２の仮想マシンのオペレーティングシステムの初期化が完了された後に、該第２の仮想マシンの稼動を一時停止させる。このようにして得られる第２の仮想マシンは、第１の仮想マシンの復元中に、復元されるべき第１の仮想マシンとして直接利用され得る。この場合には、仮想マシンのプリロードにて該第２の仮想マシンを起動させるので、ディスクデータ及びメモリデータを改めてローディングする必要はない。したがって、仮想マシンの復元速度が高まれ、仮想マシンの復元に要する時間が短縮され、仮想マシンの利用効率が向上された。
【００２０】
図１は本開示の実施形態に係る仮想マシンを起動させる例示的な環境１００を示す模式図である。例示的な環境１００はマネージャ１０２を備える。マネージャ１０２は仮想マシンの稼動を管理するためのものである。マネージャ１０２は記憶システムのコントローラであってもよいし、独立したコンピューティングデバイスのプロセッサであってもよいし、更に、仮想マシンの稼動を管理可能な任意の他の適宜のデバイスであってもよい。上記の例は本開示に対し具体的に限定するものでなく、本開示を記述するための実施形態に過ぎない。
【００２１】
図１はマネージャ１０２によって第１の仮想マシン１０４及び第２の仮想マシン１０６を管理することを示す。当業者は、図１に示す仮想マシン１０４及び仮想マシン１０６は本開示に対し具体的に限定するものでなく、例示的なものに過ぎないことを理解されたい。マネージャ１０２は必要に応じて任意の数の仮想マシンを管理できる。
【００２２】
仮想マシン１０４とは、特定のアプリケーションによって物理的機械のハードウェアプラットフォームにおいて作成されるアプリケーション実行環境を指しており、ユーザは、物理的機械の使用の如く、該環境によってアプリケーションを実行させて対話をすることができる。通常に、１つの仮想マシンを作成する場合には、仮想マシン１０４の動作中の使用のために、マネージャ１０２によって該仮想マシンを収容するマスターシステムから所定数のリソースを割り当てる必要がある。該リソースは仮想マシンを稼動させるための任意の利用可能なリソース、例えば、コンピューティングリソース（例えば、ＣＰＵ、ＧＰＵ、ＦＰＧＡなど）、記憶リソース（例えば、メモリ、記憶ディスクなど）、ネットワークリソース（例えば、ネットワークカードなど）などであり得る。マネージャ１０２は仮想マシン１０４に各種のリソース、例えば、メモリ及びディスクを割り当てる。
【００２３】
仮想マシン１０６は、仮想マシン１０４に対するディスクスナップショットの生成時に、マネージャ１０２により該ディスクスナップショットに基づき生成されるものである。該ディスクスナップショットは仮想マシンの磁気ディスクにおけるデータに対するミラーファイルである。生成されるディスクスナップショットは所定の記憶位置、例えば、仮想マシンを稼動させるマスターの記憶ディスクに保存される。仮想マシン１０６は仮想マシン１０４のテンプレート仮想マシンとも称され得る。仮想マシン１０４に対するディスクスナップショットの生成時に、マネージャ１０２は仮想マシン１０４の識別子情報及びディスクスナップショットのアドレス情報を取得する。そして、識別子情報に基づき、仮想マシン１０４の配置情報を取得できる。該識別子情報及びアドレス情報によって仮想マシン１０６を起動させる。起動された仮想マシン１０６はディスクスナップショットに関わるディスクデータを仮想マシンのディスクに記憶する。
【００２４】
一部の実施形態において、仮想マシン１０６と仮想マシン１０４とはメモリの記憶容量が異なる。一部の実施形態において、仮想マシン１０６のメモリの記憶容量が仮想マシン１０４のメモリの記憶容量より小さい。一例において、仮想マシン１０６のメモリの記憶容量の大きさがそのオペレーティングシステムの起動のみに適する。一例において、仮想マシン１０６のメモリの大きさが５１２Ｍである。上記の例は本開示に対する具体的な限定ではなく、本開示を説明するためのものに過ぎない。当業者は必要に応じて仮想マシン１０６のメモリの大きさを任意の適当な値に設定することができる。
【００２５】
仮想マシン１０６は、マネージャ１０２によって、生成された仮想マシン１０４のディスクスナップショットに基づき起動され得る。仮想マシン１０６のオペレーティングシステムが稼動された後、マネージャ１０２は仮想マシン１０６の稼動を一時停止させる。仮想マシン１０６の稼動を一時停止させることによって、仮想マシン１０６の持続稼動に用いられるコンピューティングリソースを低減することができる。仮想マシン１０４の復元リクエストが受信された場合、一時停止の仮想マシン１０６を改めて起動させることによって仮想マシン１０４を高速に復元させ得る。例えば、仮想マシン１０４が停止された後、マネージャ１０２は仮想マシン１０４の復元リクエストを受信した後、復元の仮想マシン１０４として仮想マシン１０６を改めて稼動させる。
【００２６】
一部の実施形態において、仮想マシン１０４の数回のスナップショットを生成する時に、その前のスナップショットに対して生成される仮想マシンを停止させて、最終回のスナップショットに対して生成される仮想マシンだけを保留する。
【００２７】
上記の図１は、本開示の実施形態に係る仮想マシンを起動させる例示的な環境１００を示す模式図である。次に、図２を参照して、本開示の実施形態に係る仮想マシンを起動させるための方法２００のフローチャートを説明する。方法２００は図１におけるマネージャ１０２により実現され得る。説明の便宜上、図１を参照しながら方法２００を説明する。特別な順序で示されているが、方法２００における一部のステップは、示される順序と異なる順序、又は、並行方式にて実行され得ると理解すべきである。この面において本開示の実施形態は限定されるものではない。なお、図１を参照して方法２００を説明するのは、方法２００に対する具体的な限定ではなく、あくまでも例示的なものである。
【００２８】
ブロック２０２において、マネージャ１０２は仮想マシン１０４（説明の便宜上、次に、第１の仮想マシンとも称される）の仮想ディスクにおける第１のデータに対してディスクスナップショットを生成する。該ディスクスナップショットは仮想マシンの磁気ディスクにおけるデータに対するミラーファイルである。生成されたディスクスナップショットは所定の記憶位置、例えば、仮想マシンを稼動させるマスターの記憶ディスクに保存される。一部の実施形態において、マネージャ１０２は、第１の仮想マシンの仮想ディスクにおける第１のデータのみに対してディスクスナップショットを生成する。その代わりにまたは付加的には、マネージャ１０２は第１の仮想マシンのメモリにおけるデータに対して対応するスナップショットを生成しない。
【００２９】
マネージャ１０２が第１の仮想マシンの仮想ディスクにおけるデータに対してディスクスナップショットを生成するタイミングも必要に応じて設定される。一部の実施形態において、マネージャ１０２はユーザから第１の仮想マシンに対するディスクスナップショットを生成するリクエストを受信すると該ディスクスナップショットを生成する。一部の実施形態において、第１の仮想マシンが使用可能な時に、仮想マシンのディスクにおけるデータに対するディスクスナップショットを生成し得る。一例において、マネージャ１０２は、第１の仮想マシンが停止されるべきであることを検出すると、第１の仮想マシンの仮想ディスクに対するディスクスナップショットを生成する。上記の例は本開示に対する具体的な限定ではなく、本開示を記述するためのものに過ぎない。
【００３０】
ブロック２０４において、マネージャ１０２は第１の仮想マシンの識別子情報及びディスクスナップショットのアドレス情報に基づき、仮想マシン１０６（説明の便宜上、次に、第２の仮想マシンとも称され得る）を稼動させることによって、第１のデータを第２の仮想マシンの仮想ディスクに複写する。ディスクスナップショットのアドレス情報は、生成されたディスクスナップショットの記憶位置を指示する。マネージャ１０２は、第１の仮想マシンのディスクスナップショットが生成されたことを確定すると、該ディスクスナップショットに基づき第２の仮想マシンを起動させる。該プロセスにおいて、マネージャ１０２は第１の仮想マシンの識別子及び生成されたディスクスナップショットのアドレスを確定する。次に、これらの２つのデータを仮想マシン起動プログラムに送信し、第１の仮想マシンに対応する第２の仮想マシンを生成することができる。メモリを除き、第２の仮想マシンの配置は第１の仮想マシンの配置と同じである。
【００３１】
一部の実施形態において、第１の仮想マシンの第１のメモリの第１の記憶容量が第２の仮想マシンの第２のメモリの第２の記憶容量より大きい。一例において、第２の仮想マシンのメモリの記憶容量の大きさが、そのオペレーティングシステムの起動のみに適する。一例において、第２の仮想マシンのメモリの大きさが５１２Ｍである。上記の例は本開示に対する具体的な限定ではなく、本開示を記述するためのものに過ぎない。該仮想マシンがメモリに常置されるものであるので、そのメモリを最小化に配置することによって、メモリリソースへの占有を低減できる。当業者は必要に応じて第２の仮想マシンのメモリの大きさを任意の適当な値に設定することができる。
【００３２】
さらに、第２の仮想マシンは取得したディスクスナップショットのアドレス情報に基づき第１の仮想マシンの仮想ディスクに記憶されているデータを第２の仮想マシンの記憶ディスクに記憶する。これにより、生成された第２の仮想マシンのディスクデータを、スナップショットの生成時の第１の仮想マシンにおけるディスクデータと一致させる。したがって、この時の第２の仮想マシンのディスクデータは、第１の仮想マシンがディスクスナップショットを生成する時の状態に復元される。
【００３３】
ブロック２０６において、マネージャ１０２は既に起動された第２の仮想マシンにおけるオペレーティングシステムの初期化が完成されたか否かを確定する。既に起動された第２の仮想マシンにおけるオペレーティングシステムの初期化が既に完成されたと確定された場合、ブロック２０８において、マネージャ１０２は第２の仮想マシンの稼動を一時停止させることで、第１の仮想マシンが使用不能な時に、第１の仮想マシンを復元させる。マネージャ１０２は、第２の仮想マシンを起動させた後、第２の仮想マシンによるオペレーティングシステムの初期化を待つ。初期化が完了した後に、第２の仮想マシンの稼動を一時停止させる。該一時停止された第２の仮想マシンは、第１の仮想マシンが利用不能となった後、第１の仮想マシンを復元させるためのリクエストが受信されると、第１の仮想マシンとしてデプロイされる各種のサービスを稼動させることができる。
【００３４】
一部の実施形態において、マネージャ１０２は、第２の仮想マシンからのオペレーティングシステムの初期化完了を示す指示情報の受信に応じて、第２の仮想マシンを一時停止させる。一例において、マネージャ１０２は、第２の仮想マシンにおいて所定のサービスをデプロイする。該サービスは、第２の仮想マシンにおけるオペレーティングシステムの初期化が完了した時に、自動的に稼動し始まる。該サービスは、稼動している時にオペレーティングシステムの初期化完了を示す指示情報をマネージャ１０２に送信することができる。この場合、マネージャ１０２は該指示情報に基づきオペレーティングシステムの初期化の完了を確定できる。
【００３５】
一部の実施形態において、マネージャ１０２は、起動された第２の仮想マシンをモニタリングすることができる。第２の仮想マシンが所定のアクセス動作を実行したことがモニタリングされると、オペレーティングシステムの初期化が既に完了したことを意味する。所定のアクセス動作は、予め定義された１種又は数種のアクセス動作、例えば、ネットワークアダプタ、メモリ等に対する読み書き動作等であり得る。一例において、マネージャ１０２によって第２の仮想マシンがネットワークアダプタ（例えば、ネットワークカード）にアクセスしたことがモニタリングされると、初期化プロセスが完成されたことを意味する。他の一例において、マネージャ１０２は、第２の仮想マシンによる所定の記憶位置へのアクセス動作をモニタリングした。上記の例は本開示に対する具体的な限定ではなく、本開示を記述するためのものに過ぎない。当業者は必要に応じて、マネージャによりモニタリング可能な、第２の仮想マシンのオペレーティングシステムの初期化完了を示すための任意の適当なアクセス動作を設置することができる。第２の仮想マシにより特定の部材又は記憶位置にアクセスしたことがモニタリングされることが確定された後に、第２の仮想マシンの稼動を一時停止できる。上記の例は本開示に対する具体的な限定ではなく、本開示を記述するための実施形態だけである。
【００３６】
第１の仮想マシンのディスクスナップショットを生成する時に、ディスクスナップショットによって第１の仮想マシンに対応する第２の仮想マシン（テンプレート仮想マシンとも称され得る）を自動的に生成する。そして、該第２の仮想マシンを一時停止させるとともに、第２の仮想マシンをメモリに常置させることによって、第１の仮想マシンを新たに復元させる時に、復元されるべき第１の仮想マシンとして第２の仮想マシンの稼動を直接復元させることができる。このような仮想マシンプリロードの方式にて、仮想マシンを復元させることは、ディスクデータ及びメモリデータを改めてローディングする必要はない。したがって、仮想マシンの復元速度が高まれ、仮想マシンの復元に要する時間が短縮され、仮想マシンの利用効率が向上された。
【００３７】
上記のように、図２を参照して、本開示の実施形態に係る仮想マシンを起動するための方法２００のフローチャートを説明した。次に、図３を参照して、本開示の実施形態に係る仮想マシンを復元させるための方法３００のフローチャートを説明する。方法３００は、方法２００において第２の仮想マシンを起動させて一時停止させた後に行なわれ、図１に示すマネージャ１０２により実現される方法である。説明の便宜上、図１を参照しながら方法３００を説明する。特別な順序で示されるが、方法３００における一部のステップは、示される順序と異なる順序又は並行方式にて実行され得ると理解すべきである。この面において、本開示の実施形態は限定されない。なお、図１を参照して方法３００を説明することは、方法３００に対する具体的な限定ではなく、例示的なものだけである。
【００３８】
ブロック３０２において、マネージャ１０２は、第１の仮想マシンを復元させるための、第１の仮想マシンの識別子情報を含むリクエストを受信する。第１の仮想マシンの操作中において、第１の仮想マシンを停止することは常にあることである。第１の仮想マシンが停止された後に、第１の仮想マシンを再度利用するために、ユーザは第１の仮想マシンを復元させるリクエストを出すことがある。一部の実施形態において、該リクエストは第１の仮想マシンの識別子情報を含む。その代わりにまたは付加的に、該リクエストはユーザの識別子情報を更に含み得る。上記の例は本開示に対する具体的な限定ではなく、本開示を記述するためのものに過ぎない。
【００３９】
ブロック３０４において、マネージャ１０２は識別子情報に基づき第２の仮想マシン及び第１の仮想マシンの第１のメモリの第１の記憶容量を確定する。マネージャ１０２は、リクエストを受信した後に、リクエストに含まれる仮想マシンの識別子情報を確定する。該識別子情報に基づき、マネージャ１０２は該識別子情報に対応する第２の仮想マシンを検索でき、且つ、マネージャ１０２は該識別子情報に基づき該識別子情報に対応する第１の仮想マシンの配置情報、例えば、第１の仮想マシンの第１のメモリの第１の記憶容量を確定することができる。
【００４０】
ブロック３０６において、マネージャ１０２は、第２の仮想マシンの第２のメモリの記憶容量を、第２の記憶容量から第１の記憶容量に調整する。一部の実施形態において、該記憶容量の調整プロセスは、仮想マシンのメモリのホットスワップ技術によって実現される。メモリのホットスワップ技術によって、第２のメモリの記憶容量を第１の記憶容量に調整できる。
【００４１】
一部の実施形態において、第１の仮想マシンの第１のメモリの第１の記憶容量が、第２の仮想マシンの第２のメモリの第２の記憶容量より大きい。第１の仮想マシンの記憶容量は、ユーザによって設置される記憶容量であるが、第２の仮想マシンの記憶容量は、第１の仮想マシンを復元させるための予め生成されたものである。したがって、第２の仮想マシンのメモリの記憶容量は小さく設置されている。したがって、第１の仮想マシンとして第２の仮想マシンを用いるために、第２の仮想マシンのメモリの記憶容量を第１の記憶容量に復元しなければならない。上記の例は本開示に対する具体的な限定ではなく、本開示を記述するためのものに過ぎない。
【００４２】
ブロック３０８において、マネージャ１０２は、第２の仮想マシンを引き続き稼動させることにより第１の仮想マシンとする。第２の仮想マシンのメモリの記憶容量が第１の仮想マシンの記憶容量と同じように復元された後、第２の仮想マシンの状態は第１の仮想マシンのスナップショット時の状態と同じとなる。したがって、第１の仮想マシンの復元は高速に実現された。
【００４３】
第１の仮想マシンを復元させるリクエストを受信した後に、一時停止された第２の仮想マシンを用いて、そのメモリの大きさを調整することによって、第１の仮想マシンを高速に復元させることが実現された。メモリの大きさ及び仮想マシンのプリロード方式を調整することによって、仮想マシンを復元させ、仮想マシンのグローバルミラースナップショット（例えば、メモリ、システムディスクデータを保存することなど）を生成する必要がなく、システムディスクのスナップショットファイルだけを生成すればよい。且つ、このような操作は磁気ディスクスナップショットファイルへの読み書きステップを完全に回避し、仮想マシンの復元速度を加速できる。
【００４４】
図４は本開示の実施形態に係る仮想マシンを起動するための装置４００を示す概略ブロック図である。装置４００は、図１に示すマネージャ１０２に含まれ得るか、または、マネージャ１０２として実現され得る。図４に示すように、装置４００は、第１の仮想マシンの仮想ディスクにおける第１のデータに対しディスクスナップショットを生成するように構成されている第１のディスクスナップショット生成モジュール４０２を備える。装置４００は、第１の仮想マシンの識別子情報及びディスクスナップショットのアドレス情報に基づき、第２の仮想マシンを稼動させることで、第１のデータを第２の仮想マシンの仮想ディスクに複製するように構成されている仮想マシン起動モジュール４０４を更に備える。装置４００は、第１の仮想マシンの利用不能のときに第１の仮想マシンを復元させるために、既に起動された第２の仮想マシンにおけるオペレーティングシステムの初期化の完了に応じて、第２の仮想マシンの稼動を一時停止させるように構成されている第１の一時停止モジュールを更に備える。
【００４５】
一部の実施形態において、第１の仮想マシンの第１のメモリの第１の記憶容量が第２の仮想マシンの第２のメモリの第２の記憶容量より大きい。
【００４６】
一部の実施形態において、該装置４００は、第１の仮想マシンの識別子情報を含む、第１の仮想マシンを復元させるためのリクエストを受信するように構成されるリクエスト受信モジュールを更に備える。該装置４００は、識別子情報に基づき第２の仮想マシンと第１の記憶容量を確定するように構成されている記憶容量確定モジュールを更に備える。該装置４００は、第２の仮想マシンの第２のメモリの記憶容量を第２の記憶容量から第１の記憶容量に調整するように構成されている記憶容量調整モジュールを更に備える。該装置４００は、第２の仮想マシンを引き続き稼動させることにより第１の仮想マシンとするように構成されている仮想マシン稼動モジュールを更に備える。
【００４７】
一部の実施形態において、第１のディスクスナップショット生成モジュールは、ディスクスナップショットの生成のためのリクエストの受信に応じて、ディスクスナップショットを生成するように構成されている第２のディスクスナップショット生成モジュールと、第１の仮想マシンの利用可能なときにディスクスナップショットを自動的に生成するように構成されている第３のディスクスナップショット生成モジュールとのうち、少なくとも一方を備える。
【００４８】
一部の実施形態において、第１の一時停止モジュールは、オペレーティングシステムの初期化の完了を示す指示情報が第２の仮想マシンから受信されたことに応じて第２の仮想マシンを一時停止させるように構成されている第２の一時停止モジュールを備える。
【００４９】
一部の実施形態において、第１の一時停止モジュールは、第２の仮想マシンによる所定のアクセス動作の実行がモニタリングされたことに応じて、オペレーティングシステムの初期化の完了を確定するように構成されている初期化モジュールを備える。
【００５０】
図５は本開示の実施形態を実現できる電子デバイス５００を示す概略ブロック図である。デバイス５００は図１に示すマネージャ１０２を実現するために用いられる。図に示すように、デバイス５００は、読み出し専用メモリ（ＲＯＭ）５０２に記憶されているコンピュータプログラム指令、または、記憶手段５０８からランダム・アクセス・メモリ（ＲＡＭ）５０３にローディングされたコンピュータプログラム指令に応じて、各種の適宜の動作及び処理を行うことができるコンピューティングデバイス５０１を備える。ＲＡＭ  ５０３には、デバイス５００の動作に必要な各種のプログラム及びデータも記憶され得る。コンピューティングデバイス５０１、ＲＯＭ  ５０２、及びＲＡＭ  ５０３は、バス５０４を介して互いに接続されている。入力／出力（Ｉ／Ｏ）インターフェース５０５もバス５０４に接続されている。
【００５１】
デバイス５００における複数の部材はＩ／Ｏインターフェース５０５に接続されており、キーボード、マウスなどのような入力手段５０６、各種類のディスプレイ、スピーカなどのような出力手段５０７、磁気ディスク、光ディスクなどのような記憶手段５０８、及びネットワークカード、モデム、無線通信送受信機などのような通信手段５０９を備える。通信手段５０９は、デバイス５００がインターネットのようなコンピュータネットワーク、及び／又は、各種の電信ネットワークを介して他のデバイスと情報／データを交換することを可能にする。
【００５２】
コンピューティングデバイス５０１は、処理及び演算能力を有する汎用の、及び／又は、専用の各種の処理コンポーネントであり得る。コンピューティングデバイス５０１の一部の例は、中央処理装置（ＣＰＵ）、グラフィックスプロセシングユニット（ＧＰＵ）、各種の専用の人工知能（ＡＩ）コンピューティングチップ、機械学習モデルアルゴリズムを実行する各種のコンピューティングデバイス、デジタル信号プロセッサ（ＤＳＰ）、及び任意の適当なプロセッサ、コントローラ、マイクロコントローラなどを含むがこれらに限らない。コンピューティングデバイス５０１は、上記のように記載された各方法及び処理、例えば、方法２００及び３００を実行する。例えば、一部の実施形態において、方法２００及び３００は、記憶手段５０８などの機械読取可能な媒体に有形に具現化されるコンピュータソフトウェアプログラムとして実現され得る。一部の実施形態において、コンピュータプログラムの一部又は全部は、ＲＯＭ  ５０２、及び／又は、通信手段５０９を介して、デバイス５００にロード、及び／又は、インストールされ得る。コンピュータプログラムがＲＡＭ  ５０３にローディングされるとともにコンピューティングデバイス５０１により実行されるとき、上記の方法２００と方法３００の１つまたは複数のステップを実行することができる。任意選択で、他の実施形態において、コンピューティングデバイス５０１は他の任意の適当な方式（例えば、ファームウェアを用いる）にて方法５００を実行するように設置され得る。
【００５３】
本明細書において、上記のように記載されている機能は少なくとも一部が１つ又は複数のハードウェアロジック部材により実行され得る。例えば、非制限的には、使用可能な例示的なハードウェアロジック部材は、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、特定用途向け標準製品（ＡＳＳＰ）、システム・オン・チップ（ＳＯＣ）、複雑なプログラマブルロジックデバイス（ＣＰＬＤ）などを含む。
【００５４】
本開示の方法を実施するためのプログラムコードは１つ又は複数のプログラミング言語の任意の組み合わせによって作成され得る。これらのプログラムコードは汎用コンピュータ、専用コンピュータ、或いは、他のプログラマブルデータ処理装置のプロセッサ又はコントローラに提供され得る。これにより、プログラムコードがプロセッサまたはコントローラにより実行される時に、フローチャート及び／又はブロック図に示す機能／動作は実施される。プログラムコードは、全部が機械で実行されてもよいし、一部が機械で実行されてもよい。スタンドアロンソフトウェアパッケージとして、プログラムコードは、一部が機械で実行されるとともに一部がリモートマシンで実行されてもよいし、全部がリモートマシン又はサーバで実行されてもよい。
【００５５】
本開示の全文において、機械読取可能な媒体は有形媒体であり得、指令実行システム、装置又はデバイスの使用、或いは、指令実行システム、装置またはデバイスに組み合わせて使用するためのプログラムを含むか、又は、記憶することができる。機械読取可能な媒体は、機械読取可能な信号媒体又は機械読取可能な記憶媒体であり得る。機械読取可能な媒体は、電子的、磁気的、光学的、電磁気的、赤外の、あるいは、半導体システム、装置またはデバイス、あるいは、これらの如何なる適当な組み合わせを含むがこれらに限られない。機械読取可能な記憶媒体としては、更に具体的には、１本または複数本の導線に基づく電気的接続、携帯式コンピュータディスク、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、光ファイバー、シーディーロム（ＣＤ−ＲＯＭ）、光学記憶デバイス、磁気記憶デバイス、又は、これらのあらゆる適当な組み合わせは挙げられる。
【００５６】
なお、各動作は特定な順序で記載されているが、このような動作が示された特別な順序又は順位で実行されるよう要求されること、又は、所望の結果を取得できるように図示されたあらゆる動作が実行されるよう要求されることと理解すべきである。一定の条件下で、マルチタスク及び並行処理は有利である可能性がある。同様に、上記の記載には実現のための若干の具体的な内容は含まれるが、これらは本開示の範囲を限定するものでないと解釈すべきである。単一の実施形態に記載されている一部の特徴を組み合わせて単一の実施で具現化され得る。これに対して、単一の実施に記載されている各種の特徴も独立に又は如何なる適切なサブセットにて複数の実施で具現化され得る。
【００５７】
構造特徴及び／又は方法ロジック動作に対して特別な言語で本主題を記載しているが、特許請求の範囲に限定されている主題は必ずしも上記のように記載されている特定な特徴又は動作に限定されることではない。逆に、上記のように記載されている特定な特徴及び動作は特許請求の範囲を実現するための例示的なものに過ぎない。
【図１】
2020194521.tif 000003
【図２】
2020194521.tif 000004
【図３】
2020194521.tif 000005
【図４】
2020194521.tif 000006
【図５】
2020194521.tif 000007
【手続補正書】
【提出日】令和2年1月8日(2020.1.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想マシンを起動させるための方法であって、
第１の仮想マシンの仮想ディスクにおける第１のデータに対してディスクスナップショットを生成するステップと、
前記第１の仮想マシンの識別子情報および前記ディスクスナップショットのアドレス情報に基づき、第２の仮想マシンを稼動させることによって、前記第１のデータを前記第２の仮想マシンの仮想ディスクに複写するステップと、
起動された前記第２の仮想マシンにおけるオペレーティングシステムの初期化の完了に応じて、前記第２の仮想マシンの稼動を一時停止させることによって、前記第１の仮想マシンが使用不能な時に前記第１の仮想マシンを復元させるステップと、を含む方法。
【請求項２】
前記第１の仮想マシンの第１のメモリの第１の記憶容量が、前記第２の仮想マシンの第２のメモリの第２の記憶容量より大きい請求項１に記載の方法。
【請求項３】
前記第１の仮想マシンを復元させるための、前記第１の仮想マシンの識別子情報を含むリクエストを受信するステップと、
前記識別子情報に基づき、前記第２の仮想マシンおよび前記第１の記憶容量を確定するステップと、
前記第２の仮想マシンの前記第２のメモリの記憶容量を、前記第２の記憶容量から前記第１の記憶容量に調整するステップと、
前記第２の仮想マシンを引き続き稼動させることで前記第１の仮想マシンとするステップと、をさらに含む請求項２に記載の方法。
【請求項４】
前記の第１の仮想マシンに対してディスクスナップショットを生成するステップは、
ディスクスナップショットを生成するためのリクエストの受信に応じて前記ディスクスナップショットを生成するステップと、
前記第１の仮想マシンが使用可能な時に前記ディスクスナップショットを生成するステップと、のうち、少なくとも一方を含む請求項１に記載の方法。
【請求項５】
前記第２の仮想マシンを一時停止させるステップは、
前記オペレーティングシステムの初期化の完了を示す指示情報が前記第２の仮想マシンから受信されたことに応じて、前記第２の仮想マシンを一時停止させるステップを含む請求項１に記載の方法。
【請求項６】
前記第２の仮想マシンを一時停止させるステップは、
前記第２の仮想マシンが所定のアクセス動作を実行したことがモニタリングされたことに応じて、前記オペレーティングシステムの初期化の完了を確定するステップを含む請求項１に記載の方法。
【請求項７】
仮想マシンを起動させるための装置であって、
第１の仮想マシンの仮想ディスクにおける第１のデータに対してディスクスナップショットを生成するように構成される第１のディスクスナップショット生成モジュールと、
前記第１の仮想マシンの識別子情報および前記ディスクスナップショットのアドレス情報に基づき、第２の仮想マシンを稼動させることによって、前記第１のデータを前記第２の仮想マシンの仮想ディスクに複写するように構成される仮想マシン起動モジュールと、
起動された前記第２の仮想マシンにおけるオペレーティングシステムの初期化の完了に応じて、前記第２の仮想マシンの稼動を一時停止させることによって、前記第１の仮想マシンが使用不能な時に前記第１の仮想マシンを復元させるように構成される第１の一時停止モジュールと、を備える装置。
【請求項８】
前記第１の仮想マシンの第１のメモリの第１の記憶容量が、前記第２の仮想マシンの第２のメモリの第２の記憶容量より大きい請求項７に記載の装置。
【請求項９】
前記第１の仮想マシンを復元させるための、前記第１の仮想マシンの識別子情報を含むリクエストを受信するように構成されるリクエスト受信モジュールと、
前記識別子情報に基づき、前記第２の仮想マシンと前記第１の記憶容量を確定するように構成される記憶容量確定モジュールと、
前記第２の仮想マシンの前記第２のメモリの記憶容量を、前記第２の記憶容量から前記第１の記憶容量に調整するように構成される記憶容量調整モジュールと、
前記第２の仮想マシンを引き続き稼動させることによって前記第１の仮想マシンとするように構成される仮想マシン稼動モジュールと、をさらに備える請求項８に記載の装置。
【請求項１０】
第１のディスクスナップショット生成モジュールは、
ディスクスナップショットを生成するためのリクエストの受信に応じて、前記ディスクスナップショットを生成するように構成される第２のディスクスナップショット生成モジュールと、
前記第１の仮想マシンの使用可能な時に前記ディスクスナップショットを生成するように構成される第３のディスクスナップショット生成モジュールとのうち、少なくとも一方を備える請求項７に記載の装置。
【請求項１１】
前記第１の一時停止モジュールは、
前記オペレーティングシステムの初期化の完了を示す指示情報が前記第２の仮想マシンから受信されたことに応じて、前記第２の仮想マシンを一時停止させるように構成される第２の一時停止モジュールを備える請求項７に記載の装置。
【請求項１２】
前記第１の一時停止モジュールは、
前記第２の仮想マシンによる所定のアクセス動作の実行がモニタリングされたことに応じて、前記オペレーティングシステムの初期化の完了を確定するように構成される初期化モジュールを備える請求項７に記載の装置。
【請求項１３】
１つまたは複数のプロセッサと、
１つまたは複数のプログラムを記憶するための記憶装置であって、前記１つまたは複数のプログラムが前記１つ又は複数のプロセッサにより実行されると、前記１つまたは複数のプロセッサに請求項１〜６のいずれか１項に記載の方法を実行させる記憶装置と、を備える電子デバイス。
【請求項１４】
コンピュータプログラムが記憶されるコンピュータ読取可能な記憶媒体であって、
前記プログラムがプロセッサにより実行されると、請求項１〜６のいずれか１項に記載の方法を実現するコンピュータ読取可能な記憶媒体。
【請求項１５】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサにより実行されると、請求項１〜６のいずれか１項に記載の方法を実現する、コンピュータプログラム。
【外国語明細書】
2020194521000001.pdf