(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6974510
(24)【登録日】2021年11月8日
(45)【発行日】2021年12月1日
(54)【発明の名称】データを処理するための方法、装置、デバイス及び媒体
(51)【国際特許分類】
G06F 13/14 20060101AFI20211118BHJP
G06F 13/10 20060101ALI20211118BHJP
【FI】
G06F13/14 320A
G06F13/10 340A
G06F13/14 320H
G06F13/10 330C
【請求項の数】22
【外国語出願】
【全頁数】18
(21)【出願番号】特願2020-1153(P2020-1153)
(22)【出願日】2020年1月8日
(65)【公開番号】特開2020-194522(P2020-194522A)
(43)【公開日】2020年12月3日
【審査請求日】2020年6月8日
(31)【優先権主張番号】201910438970.2
(32)【優先日】2019年5月24日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
(74)【代理人】
【識別番号】110000729
【氏名又は名称】特許業務法人 ユニアス国際特許事務所
(72)【発明者】
【氏名】シエ、ヨンチー
(72)【発明者】
【氏名】チャイ、ウェン
(72)【発明者】
【氏名】チャン、ユイ
【審査官】
田名網 忠雄
(56)【参考文献】
【文献】
特開2011−198280(JP,A)
【文献】
米国特許出願公開第2010/0299667(US,A1)
【文献】
特開2003−248626(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/10−13/14
G06F 3/06−3/08
G06F 9/455
(57)【特許請求の範囲】
【請求項1】
コンピュータにより実行される、データを処理するための方法であって、
仮想マシンの仮想メモリから前記仮想マシンの仮想ディスクにデータブロックを記憶するための要求であって、前記仮想メモリにおいて前記データブロックを記憶するための仮想メモリアドレス及び前記仮想ディスクにおいて前記データブロックを記憶するための仮想ディスクアドレスを示す要求を受信することと、
前記仮想メモリアドレスに基づいて、前記仮想マシンに関連する物理メモリ内の、前記データブロックが記憶されている物理メモリアドレスを決定することと、
仮想的な資源と物理的な資源のマッピングを管理するマッピングテーブルに、前記仮想ディスクアドレスと前記物理メモリアドレスとを関連付けて記憶することとを含む方法。
【請求項2】
前記仮想ディスクアドレスに基づいて、前記物理メモリに、前記仮想ディスクにおいて前記データブロックを記憶するための仮想ディスクメモリブロックに対応する第1物理メモリブロックが存在するか否かを判定することと、
前記第1物理メモリブロックが存在することに応じて、前記第1物理メモリブロックを解放することとをさらに含む請求項1に記載の方法。
【請求項3】
前記物理メモリにおいて前記仮想メモリに対して第2物理メモリブロックを割り当てることと、
仮想的な資源と物理的な資源のマッピングを管理するマッピングテーブルに、割り当てられた前記第2物理メモリブロックのアドレスと前記仮想メモリアドレスとを関連付けて記憶することをさらに含む請求項1に記載の方法。
【請求項4】
前記要求に対する応答を前記仮想マシンに送信して、前記データブロックが前記仮想ディスクに記憶されていることを示すことをさらに含む請求項1に記載の方法。
【請求項5】
コンピュータにより実行される、データを処理するための方法であって、
仮想マシンの仮想ディスクから前記仮想マシンの仮想メモリにデータブロックを記憶するための要求であって、前記仮想メモリにおいて前記データブロックを記憶するための仮想メモリアドレス及び前記仮想ディスクにおいて前記データブロックを記憶するための仮想ディスクアドレスを示す要求を受信することと、
前記仮想ディスクアドレスに基づいて、前記仮想マシンに関連する物理メモリ内の、前記データブロックが記憶されている物理メモリアドレスを決定することと、
仮想的な資源と物理的な資源のマッピングを管理するマッピングテーブルに、前記仮想メモリアドレスと前記物理メモリアドレスとを関連付けて記憶することとを含む方法。
【請求項6】
前記仮想マシンに関連する物理メモリ内の前記データブロックを記憶するための物理メモリアドレスを決定することは、
前記仮想ディスクアドレスに基づいて、前記物理メモリアドレスが存在するか否かを判定することと、
前記物理メモリアドレスが存在しないことに応じて、前記物理メモリから第1物理メモリブロックを割り当てることと、
前記データブロックを前記仮想ディスクに関連する物理ディスクから前記第1物理メモリブロックに記憶することと、
第1物理ブロックのアドレスを前記物理メモリアドレスとして決定することを含む請求項5に記載の方法。
【請求項7】
前記仮想メモリアドレスに基づいて、前記物理メモリ内の、前記仮想メモリにおいて前記データブロックを記憶するための仮想メモリブロックに対応する第2物理メモリブロックを決定することと、
前記第2物理メモリブロックを解放することをさらに含む請求項5に記載の方法。
【請求項8】
前記要求に対する応答を前記仮想マシンに送信して、前記データブロックが前記仮想メモリに記憶されていることを示すことをさらに含む請求項5に記載の方法。
【請求項9】
データを処理するための装置であって、
仮想マシンの仮想メモリから前記仮想マシンの仮想ディスクにデータブロックを記憶するための要求であって、前記仮想メモリにおいて前記データブロックを記憶するための仮想メモリアドレス及び前記仮想ディスクにおいて前記データブロックを記憶するための仮想ディスクアドレスを示す要求を受信するように構成される第1受信モジュールと、
前記仮想メモリアドレスに基づいて、前記仮想マシンに関連する物理メモリ内の、前記データブロックが記憶されている物理メモリアドレスを決定するように構成される第1物理メモリアドレス決定モジュールと、
仮想的な資源と物理的な資源のマッピングを管理するマッピングテーブルに、前記仮想ディスクアドレスと前記物理メモリアドレスとを関連付けて記憶するように構成される第1アドレス記憶モジュールとを備える装置。
【請求項10】
前記仮想ディスクアドレスに基づいて、前記物理メモリに、前記仮想ディスクにおいて前記データブロックを記憶するための仮想ディスクメモリブロックに対応する第1物理メモリブロックが存在するか否かを判定するように構成される第1物理メモリブロック判定モジュールと、
前記第1物理メモリブロックが存在することに応じて、前記第1物理メモリブロックを解放するように構成される第1解放モジュールとをさらに備える請求項9に記載の装置。
【請求項11】
前記物理メモリにおいて前記仮想メモリに対して第2物理メモリブロックを割り当てるように構成される第1割り当てモジュールと、
仮想的な資源と物理的な資源のマッピングを管理するマッピングテーブルに、割り当てられた前記第2物理メモリブロックのアドレスと前記仮想メモリアドレスとを関連付けて記憶するように構成される仮想メモリアドレス記憶モジュールとをさらに備える請求項9に記載の装置。
【請求項12】
前記要求に対する応答を前記仮想マシンに送信して、前記データブロックが前記仮想ディスクに記憶されていることを示すように構成される第1送信モジュールをさらに備える請求項9に記載の装置。
【請求項13】
データを処理するための装置であって、
仮想マシンの仮想ディスクから前記仮想マシンの仮想メモリにデータブロックを記憶するための要求であって、前記仮想メモリにおいて前記データブロックを記憶するための仮想メモリアドレス及び前記仮想ディスクにおいて前記データブロックを記憶するための仮想ディスクアドレスを示す要求を受信するように構成される第2受信モジュールと、
前記仮想ディスクアドレスに基づいて、前記仮想マシンに関連する物理メモリ内の、前記データブロックが記憶されている物理メモリアドレスを決定するように構成される第2物理メモリアドレス決定モジュールと、
仮想的な資源と物理的な資源のマッピングを管理するマッピングテーブルに、前記仮想メモリアドレスと前記物理メモリアドレスとを関連付けて記憶するように構成される第2アドレス記憶モジュールとを備える装置。
【請求項14】
前記第2物理メモリアドレス決定モジュールは、
前記仮想ディスクアドレスに基づいて、前記物理メモリアドレスが存在するか否かを判定するように構成される判定モジュールと、
前記物理メモリアドレスが存在しないことに応じて、前記物理メモリから第1物理メモリブロックを割り当てるように構成される第2割り当てモジュールと、
前記データブロックを前記仮想ディスクに関連する物理ディスクから前記第1物理メモリブロックに記憶するように構成されるデータブロック記憶モジュールと、
第1物理ブロックのアドレスを前記物理メモリアドレスとして決定するように構成される第3物理メモリアドレス決定モジュールとを含む請求項13に記載の装置。
【請求項15】
前記仮想メモリアドレスに基づいて、前記物理メモリ内の、前記仮想メモリにおいて前記データブロックを記憶するための仮想メモリブロックに対応する第2物理メモリブロックを決定するように構成される第2物理メモリブロック決定モジュールと、
前記第2物理メモリブロックを解放するように構成される第2解放モジュールとをさらに備える請求項13に記載の装置。
【請求項16】
前記要求に対する応答を前記仮想マシンに送信して、前記データブロックが前記仮想メモリに記憶されていることを示すように構成される第2送信モジュールとをさらに備える請求項13に記載の装置。
【請求項17】
1つ又は複数のプロセッサと、
1つまたは複数のプログラムを記憶する記憶装置と、を備える電子デバイスであって、
前記1つまたは複数のプログラムを前記1つまたは複数のプロセッサに実行させることにより、請求項1〜4のいずれか1項に記載の方法を前記1つまたは複数のプロセッサに実現させる、電子デバイス。
【請求項18】
1つ又は複数のプロセッサと、
1つまたは複数のプログラムを記憶する記憶装置と、を備える電子デバイスであって、
前記1つまたは複数のプログラムを前記1つまたは複数のプロセッサに実行させることにより、請求項5〜8のいずれか1項に記載の方法を前記1つまたは複数のプロセッサに実現させる、電子デバイス。
【請求項19】
コンピュータプログラムが記憶されているコンピュータ可読記憶媒体であって、前記プログラムがプロセッサにより実行されると、請求項1〜4のいずれか1項に記載の方法を実現させる、コンピュータ可読記憶媒体。
【請求項20】
コンピュータプログラムが記憶されているコンピュータ可読記憶媒体であって、前記プログラムがプロセッサにより実行されると、請求項5〜8のいずれか1項に記載の方法を実現させる、コンピュータ可読記憶媒体。
【請求項21】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサにより実行されると、請求項1〜4のいずれか1項に記載の方法を実現させるコンピュータプログラム。
【請求項22】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサにより実行されると、請求項5〜8のいずれか1項に記載の方法を実現させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施例は、主としてコンピュータ分野に関し、より具体的には、データを処理するための方法、装置、デバイスおよびコンピュータ可読記憶媒体に関する。
【背景技術】
【0002】
コンピュータの発展に伴い、仮想マシンの応用範囲もますます大きくなってきている。例えば、ますます多くのインターネットサービスがクラウドに展開されるように選択されている。クラウドにサービスを展開した後、ユーザがクラウドで動作する仮想マシンによりこれらの展開されたサービスを実行する。仮想マシンを利用することにより、ユーザがサービスを処理する効率を大幅に向上させることができる。
【0003】
また、仮想マシンにより様々なサービスを実行する際には、仮想マシンで様々な異なるデータを処理することができる。サービスの実行中において、仮想マシンがその処理するデータを保存する場合もある。仮想マシンによりサービスを実行することで、同一プラットフォーム又は同一ホストで異なるオペレーティングシステムを実行し、ホストデバイスと異なるオペレーティングシステムとの互換性を向上させることができる。しかしながら、仮想マシンの使用中、解決しようとする様々な問題が存在する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の例示的な実施例によれば、データを処理するための方法が提供される。
【課題を解決するための手段】
【0005】
本開示の第1態様では、データを処理するための方法が提供される。該方法は、仮想マシンの仮想メモリから仮想マシンの仮想ディスクにデータブロックを記憶するための要求(リクエスト)であって、仮想メモリにおいてデータブロックを記憶するための仮想メモリアドレス及び仮想ディスクにおいてデータブロックを記憶するための仮想ディスクアドレスを示す要求を受信することと、仮想メモリアドレスに基づいて、仮想マシンに関連する物理メモリ内のデータブロックを記憶するための物理メモリアドレスを決定することと、仮想ディスクアドレスと物理メモリアドレスとを関連付けて記憶することとを含む。
【0006】
本開示の第2態様では、データを処理するための方法が提供される。該方法は、仮想マシンの仮想ディスクから仮想マシンの仮想メモリにデータブロックを記憶するための要求であって、仮想メモリにおいてデータブロックを記憶するための仮想メモリアドレス及び仮想ディスクにおいてデータブロックを記憶するための仮想ディスクアドレスを示す要求を受信することと、仮想ディスクアドレスに基づいて、仮想マシンに関連する物理メモリ内のデータブロックを記憶するための物理メモリアドレスを決定することと、仮想メモリアドレスと物理メモリアドレスとを関連付けて記憶することとを含む。
【0007】
本開示の第3態様では、データを処理するための装置が提供される。該装置は、仮想マシンの仮想メモリから仮想マシンの仮想ディスクにデータブロックを記憶するための要求であって、仮想メモリにおいてデータブロックを記憶するための仮想メモリアドレス及び仮想ディスクにおいてデータブロックを記憶するための仮想ディスクアドレスを示す要求を受信するように構成される第1受信モジュールと、仮想メモリアドレスに基づいて、仮想マシンに関連する物理メモリ内のデータブロックを記憶するための物理メモリアドレスを決定するように構成される第1物理メモリアドレス決定モジュールと、仮想ディスクアドレスと物理メモリアドレスとを関連付けて記憶するように構成される第1アドレス記憶モジュールとを備える。
【0008】
本開示の第4態様では、データを処理するための装置が提供される。該装置は、仮想マシンの仮想ディスクから仮想マシンの仮想メモリにデータブロックを記憶するための要求であって、仮想メモリにおいてデータブロックを記憶するための仮想メモリアドレス及び仮想ディスクにおいてデータブロックを記憶するための仮想ディスクアドレスを示す要求を受信するように構成される第2受信モジュールと、仮想ディスクアドレスに基づいて、仮想マシンに関連する物理メモリ内のデータブロックを記憶するための物理メモリアドレスを決定するように構成される第2物理メモリアドレス決定モジュールと、仮想メモリアドレスと物理メモリアドレスとを関連付けて記憶するように構成される第2アドレス記憶モジュールとを備える。
【0009】
本開示の第5態様では、1つ又は複数のプロセッサと、1つまたは複数のプログラムを記憶する記憶装置と、を備える電子デバイスであって、1つまたは複数のプログラムを1つまたは複数のプロセッサに実行させることにより、本開示の第1態様にかかる方法を1つまたは複数のプロセッサに実現させる、電子デバイスが提供される。
【0010】
本開示の第6態様では、1つ又は複数のプロセッサと、1つまたは複数のプログラムを記憶する記憶装置と、を備える電子デバイスであって、1つまたは複数のプログラムを1つまたは複数のプロセッサに実行させることにより、本開示の第2態様にかかる方法を1つまたは複数のプロセッサに実現させる、電子デバイスが提供される。
【0011】
本開示の第7態様では、コンピュータプログラムが記憶されているコンピュータ可読記憶媒体であって、このコンピュータプログラムがプロセッサにより実行されると、本開示の第1態様にかかる方法を実現させる、コンピュータ可読記憶媒体が提供される。
【0012】
本開示の第8態様では、コンピュータプログラムが記憶されているコンピュータ可読記憶媒体であって、このコンピュータプログラムがプロセッサにより実行されると、本開示の第2態様にかかる方法を実現させる、コンピュータ可読記憶媒体が提供される。
【0013】
発明の概要に記載された内容は、本開示の実施例の主な又は重要な特徴を限定することを意図するものではなく、本開示の範囲を限定するものでもないことが理解されるべきである。本開示の他の特徴は、以下の説明により容易に理解されるようになる。
【図面の簡単な説明】
【0014】
本開示の各実施例の上記および他の特徴、利点および態様は、添付の図面と共に以下の詳細な説明を参照することによって、より明確になる。図面において、同一又は類似の参照符号は同一又は類似の要素を示す。
【
図1】本開示の実施例によるデータを処理するための例示的な環境100の模式図を示す。
【
図2】本開示の実施例によるデータを処理する方法200のフローチャートを示す。
【
図3】本開示の実施例によるデータを処理する方法300のフローチャートを示す。
【
図4】本開示の実施例によるデータを処理するための例示的な環境400の模式図を示す。
【
図5】本開示の実施例によるデータを処理するための装置500の模式ブロック図を示す。
【
図6】本開示の実施例によるデータを処理するための装置600の模式ブロック図を示す。
【
図7】本開示の様々な実施例を実施可能なコンピューティングデバイス700のブロック図を示す。
【発明を実施するための形態】
【0015】
以下、本開示の実施例について図面を参照して詳細に説明する。本開示のいくつかの実施例が図面に示されているが、本開示は、様々な形態で実施することができ、本明細書で説明される実施形態に限定されると解釈されるべきではなく、むしろ、本開示をより完全に理解するために、これらの実施例が提供されることが理解されるべきである。本開示の図面及び実施例は、例示的なものに過ぎず、本開示の請求の範囲を限定するものではないことが理解されるべきである。
【0016】
本開示の実施例の説明では、「含む」という用語およびそれに類似する用語は、開放性に含む、すなわち「含むが、これに限定されない」を意味すると理解されるべきである。「基づく」という用語は、「少なくとも部分的に基づく」を意味すると理解されるべきである。「一実施例」または「この実施例」という用語は、「少なくとも1つの実施例」を意味すると理解されるべきである。「第1」や「第2」などの用語は、異なるまたは同一のオブジェクトを指すことができる。以下、他の明確かつ暗示的な定義がさらに含まれることができる。
【0017】
一般的には、コンピューティングデバイスにおいて、メモリが不十分である場合に、プロセッサはスワップアウト動作を実行し、メモリ内の一部のあまり使用されないデータをディスクに記憶することにより、メモリの負担を緩和する。これらのデータが必要とされると、プロセッサは、スワップイン動作を実行し、データをディスクからメモリに読み返す。クラウドコンピューティングの普及に伴い、仮想マシンシステムもしばしばこのようなスワップイン/スワップアウトメカニズムを使用する。仮想マシンが実行するスワップアウト動作は、仮想メモリ内のデータを仮想ディスクに記憶することである。仮想ディスクは実際に物理マシンでのディスクファイルによってシミュレートされるものであり、即ち、仮想ディスクは物理マシンの物理ディスクでの所定の記憶空間に対応する。したがって、スワップアウト動作は、実際に仮想メモリのデータを物理ディスクに書き込むことである。これに対応して、スワップイン動作は、必要なデータを仮想ディスクから仮想メモリに読み返し、実際には物理ディスクから対応するデータを読み出して仮想メモリに書き戻す。
【0018】
仮想マシンにおいてスワップアウト又はスワップイン動作が実行されると、物理ディスクへのアクセスはデータ処理効率に影響を与える。物理ディスクへのアクセス動作には、バッファI/O方式とダイレクトI/O方式という2つの方式がある。バッファI/O方式は、メモリ内の、適切なタイミングでディスクファイルと同期するキャッシュページに直接アクセスすることである。ダイレクトI/O方式は、ディスクに対して直接アクセス動作を行うことである。しかしながら、ダイレクトI/O方式では、ディスクに対してI/O動作を行うため、速度が遅く、効率が比較的低い。バッファI/O方式については、仮想メモリに対応する物理メモリ内のデータをキャッシュページに直接コピーするため、メモリ内でのデータコピーであり、スワップアウトの場合にダイレクトI/O方式よりも優れる。しかしながら、スワップイン動作について、キャッシュページが既に破棄されていれば、バッファI/O方式では、まずデータを物理ディスクからキャッシュページに読み出し、次にキャッシュページ内のデータを仮想メモリに対応する物理メモリ内にコピーする必要がある。この場合、バッファI/O方式の性能は、ダイレクトI/O方式よりも劣る。また、スワップイン動作又はスワップアウト動作において、2つの方式はいずれもメモリ内でデータコピー動作を行う必要があり、大量の時間を消費し、データ処理の効率を低下させる。
【0019】
本開示の実施例によれば、データを処理するための改良された方法が提供される。この態様では、仮想メモリから仮想ディスクにデータブロックを記憶するための要求を取得し、この要求で示される仮想メモリアドレスに基づいて対応する物理メモリアドレスを決定し、その後、関連付けられた物理メモリアドレスおよび要求で示される仮想ディスクにおいてデータブロックを記憶するための仮想ディスクアドレスによって、データブロックの仮想ディスクへの記憶が実現される。仮想ディスクから仮想メモリにデータを記憶する場合にも同様の動作が行われる。データブロックのメモリアドレスのマッピング関係を変更することによってデータブロックの移動を実現し、データブロックを仮想ディスクに記憶するか又は仮想メモリに記憶する過程におけるデータのコピーを減少させ、データ処理の効率を向上させる。
【0020】
図1は、本開示の実施例によるデータを処理するための例示的な環境100の模式図を示す。例示的な環境100は、例えば、仮想マシン102の動作を管理するためのマネージャ101などのコンピューティングデバイスを含む。マネージャ101は、データブロックが仮想マシン102の仮想メモリ104から仮想マシン102の仮想ディスク105に記憶され、又はデータブロックが仮想ディスク105から仮想メモリ104に記憶されるように、仮想マシン102を管理することができる。マネージャ101は、個別のコンピューティングデバイスであってもよく、この仮想マシン102に関連するストレージシステム内のコントローラであってもよく、仮想マシン102の動作を管理可能な任意の他の適切なデバイスであってもよい。上記の例は、本開示の実施例を説明するためのものに過ぎず、本開示を限定するものではない。
【0021】
図1の仮想マシン102は例示的なものであり、本開示を限定するものではないことが理解されるべきである。当業者は、必要に応じて、マネージャ101が任意の適切な数の仮想マシンを管理するようにすることができる。
【0022】
仮想マシン102とは、物理マシンのハードウェアプラットフォームで特定のアプリケーションによって作成されたアプリケーション実行環境を指し、物理マシンを使用することのように、ユーザが、その環境によりアプリケーションを実行し、それと対話することができる。1つの仮想マシンを作成する際には、一般的に、仮想マシン102が動作中に使用するために、マネージャ101を介して仮想マシンをホスティングするホストシステムからいくつかのリソースを割り当てる必要がある。該リソースは、例えば、コンピューティングリソース(例えばCPU、GPU、FPGAなど)、ストレージリソース(例えばメモリ、ストレージディスクなど)、ネットワークリソース(例えばネットワークカードなど)などの仮想マシンを実行するための任意の利用可能なリソースとすることができる。
【0023】
仮想マシン102は、仮想メモリ104と仮想ディスク105とを含む。仮想メモリ104に記憶されたデータブロックは、仮想メモリ104に対応する物理メモリ103に記憶される。いくつかの実施例では、データブロックの仮想メモリ104でのメモリアドレスと、該データブロックの物理メモリ103でのメモリアドレスとの間にはマッピング関係がある。代替的または付加的に、それらのマッピング関係はデータ項目としてマッピングテーブルに記憶される。例えば、該マッピングテーブルは、シャドウページテーブルまたは拡張ページテーブルであってもよい。マネージャ102は、データブロックの仮想メモリ104でのメモリアドレスに基づいて、マッピングテーブルを介して対応する物理メモリ内のメモリアドレスを見つけることができる。上記の例は、本開示の実施例を説明するためのものに過ぎず、本開示を限定するものではない。
【0024】
仮想ディスク105に記憶されたデータブロックは、仮想ディスク105に対応する物理メモリ103又はホストの物理ディスクに記憶される。仮想ディスク105でのデータブロックが物理メモリ103に存在すれば、データブロックの仮想ディスク105でのアドレスとデータブロックの物理メモリ103でのアドレスとの間にマッピング関係がある。いくつかの実施例では、該マッピング関係はデータ項目としてホストページテーブルに記憶される。仮想ディスク105でのデータブロックが物理メモリに存在しなければ、仮想ディスク105でのデータブロックは物理ディスクに記憶される。付加的に、データブロックの仮想ディスク105でのアドレスとデータブロックの物理ディスクでのアドレスとの間にはマッピング関係がある。このマッピング関係は、例えば、仮想ディスクと物理ディスクとのマッピング関係を実現するためのホストファイルなどの予め定められたファイルによって実現される。上記の例は、本開示の実施例を説明するためのものに過ぎず、本開示を限定するものではない。
【0025】
物理メモリ103は、仮想メモリ104でのデータ及び仮想ディスク105内のデータの一部を記憶するために使用される。いくつかの実施例では、物理メモリ103に記憶された仮想ディスク105内のデータブロックは、物理ディスクに定期的にフラッシュされる。いくつかの実施例では、物理メモリ103に記憶された仮想ディスク105のデータ量が所定量よりも大きくなると、物理メモリ103内の仮想ディスク105に関連するデータブロックが物理ディスクにフラッシュされる。上記の例は、本開示の実施例を説明するためのものに過ぎず、本開示を限定するものではない。
【0026】
上述した
図1は、本開示の実施例によるデータを処理するための例示的な環境100の模式図を示す。次に、
図2を参照して本開示の実施例によるデータを処理するための方法200のフローチャートを説明する。方法200は、
図1のマネージャ101によって実現されることができる。説明を容易にするために、
図1を参照して方法200について説明する。特定の順序で示されているが、方法200のいくつかのステップは、示されているのとは異なる順序でまたは並列に実行されてもよいことが理解されるべきである。本開示の実施例は、この点に関して限定されない。また、
図1を参照して方法200について説明することは、一例に過ぎず、方法200を限定するものではない。
【0027】
ブロック202において、マネージャ101は、仮想マシン102の仮想メモリ104から仮想マシン102の仮想ディスク105にデータブロックを記憶するための要求であって、仮想メモリ104においてデータブロックを記憶するための仮想メモリアドレスおよび仮想ディスク105においてデータブロックを記憶するための仮想ディスクアドレスを示す要求を受信する。仮想マシン102が仮想メモリ104内のデータに対してスワップアウト動作を行うと、仮想ストレージ104内のデータが仮想ディスク105に記憶される。したがって、仮想マシン102は、スワップアウトすべきデータブロックの仮想メモリ104でのメモリアドレス及び仮想ディスク105でのデータブロックを記憶するために使用されるべきメモリアドレスを含むデータのスワップアウトの要求をマネージャ101に送信する。
【0028】
ブロック204において、マネージャ101は、仮想メモリアドレスに基づいて、仮想マシン102に関連する物理メモリ103内のデータブロックを記憶するための物理メモリアドレスを決定する。マネージャ101が仮想マシン102から送信されたデータのスワップアウトの要求を受信したら、要求における仮想メモリアドレスによって該データブロックの実際に位置する物理メモリでのアドレスを決定する。いくつかの実施例では、仮想メモリ104内のデータブロックのメモリアドレスは、データブロックの位置する物理メモリ103でのメモリアドレスとマッピング関係を有する。いくつかの実施例では、該マッピング関係は、データ項目として第1マッピングテーブルに記憶され、該第1マッピングテーブルは、例えばシャドウページテーブルまたは拡張ページテーブルであってもよい。したがって、マネージャ101は、仮想メモリ104内のデータブロックが位置する物理メモリアドレスを第1マッピングテーブルを介して見つけることができる。
【0029】
ブロック206において、マネージャ101は、仮想ディスクアドレスと物理メモリアドレスとを関連付けて記憶する。いくつかの実施例では、マネージャ101は、取得されたデータブロックが位置する物理メモリアドレスとデータブロックを記憶するための仮想ディスクアドレスとを関連付けて記憶する。例えば、物理メモリアドレスと仮想ディスクアドレスとのマッピング関係をデータ項目として、データブロックの仮想ディスク105でのアドレスとデータブロックの物理メモリ103でのアドレスとのマッピング関係を記憶するための第2マッピングテーブルに記憶する。例えば、該第2マッピングテーブルはホストページテーブルであってもよい。データブロックが位置する物理メモリアドレスが仮想ディスク105のアドレスとマッピング関係を有するため、データブロックが仮想ディスク105に記憶されていることを示す。
【0030】
仮想メモリ内のデータを仮想ディスクに記憶する過程において、データブロックが位置する物理メモリと仮想ディスクとのマッピング関係を変更するだけで、データのスワップアウト動作を実現し、データブロックのコピー量を減少させ、スワップアウト効率を向上させる。
【0031】
また、仮想メモリ104内のデータブロックを仮想ディスク105にスワップアウトした後に、仮想メモリブロックが新しいデータを記憶することができるようにするために、仮想メモリ104内の該データブロックを記憶する仮想メモリブロックを物理メモリ103内の新しい物理メモリブロックにマッピングする必要がある。この場合、マネージャ101は、物理メモリ103内で仮想メモリ104に対して新しい物理メモリブロックを割り当てる。そして、マネージャ101は、割り当てられた新しい物理メモリブロックのアドレスを仮想メモリアドレスに関連付けて記憶し、例えば仮想メモリ104と物理メモリ103とのマッピングテーブルに記憶する。
【0032】
マネージャ101は、仮想ディスクアドレスと物理メモリアドレスとを関連付けて記憶する際に、仮想ディスクアドレスに基づいて、データブロックを記憶するための仮想ディスクメモリブロックに対応する第1物理メモリブロックが物理メモリ103に存在するかどうかを判定する必要がある。第1物理メモリブロックが存在すれば、第1物理メモリブロックを解放する。
【0033】
上記の動作が完了すると、マネージャ101は、仮想マシン102へ応答を送信し、データブロックが仮想ディスク105に記憶されていることを示す。
【0034】
第1物理メモリブロックが存在すると判定した場合に、該第1物理メモリブロックを解放することにより、物理メモリのメモリ空間が他のデータを記憶することに早速に用いられ、物理メモリの使用効率を向上させることができる。
【0035】
以上本開示の実施例によるデータを処理するための方法200のフローチャートを、
図2を参照して説明したが、以下、本開示の実施例によるデータを処理するための方法300のフローチャートを
図3を参照して説明する。方法300は、仮想ディスクから仮想メモリにデータブロックを記憶するために使用され、
図1のマネージャ101によって実現されることができる。説明を容易にするために、
図1を参照して方法300について説明する。特定の順序で示されているが、方法300のいくつかのステップは、示されているのとは異なる順序でまたは並列に実行されてもよいことが理解されるべきである。本開示の実施例は、この点に関して限定されない。また、
図1を参照して方法300について説明することは、一例に過ぎず、方法300を限定するものではない。
【0036】
ブロック302において、マネージャ101は、仮想マシン102の仮想ディスク105から仮想マシン102の仮想メモリ104にデータブロックを記憶するための要求であって、仮想メモリ104においてデータブロックを記憶するための仮想メモリアドレスおよび仮想ディスク105においてデータブロックを記憶するための仮想ディスクアドレスを示す要求を受信する。仮想マシン102が仮想ディスク105のデータを読み込むと、仮想ディスク105内のデータが仮想メモリ104に記憶される。したがって、仮想マシン102は、データブロックの仮想ディスク105でのメモリアドレス及び仮想メモリ104でのデータブロックを記憶するために使用されるべきメモリアドレスを含む要求をマネージャ101に送信する。
【0037】
ブロック304において、マネージャ101は、仮想ディスクアドレスに基づいて、仮想マシン102に関連する物理メモリ103内のデータブロックを記憶するための物理メモリアドレスを決定する。
【0038】
いくつかの実施例では、マネージャ101は、仮想ディスクアドレスに基づいて物理メモリアドレスが存在するかどうかを判定する。物理メモリアドレスが存在しない場合に、マネージャ101は、物理メモリ103から新しい物理メモリブロックを割り当てる。そして、マネージャ101は、仮想ディスク105に関連する物理ディスクからこの新しく割り当てられた物理メモリブロックにデータブロックを読み取る。マネージャ101は、この新しっく割り当てられた物理メモリブロックのアドレスを物理メモリアドレスとして決定する。
【0039】
ブロック306において、マネージャ101は、仮想メモリアドレスと物理メモリアドレスとを関連付けて記憶する。記憶が完了すると、仮想マシン102は、仮想メモリアドレスに基づいて、対応するデータブロックを見つけることができる。よって、データブロックは仮想メモリ104に記憶される。
【0040】
仮想ディスク内のデータを仮想メモリに記憶する過程において、データブロックが位置する物理メモリアドレスと仮想メモリアドレスとのマッピング関係を変更するだけで、データブロックを仮想ディスクから仮想メモリに記憶することを実現し、データブロックのコピー量を減少させ、データ移動の効率を向上させる。
【0041】
また、仮想ディスク105内のデータブロックを仮想メモリ104に記憶する際に、マネージャ101は、仮想メモリアドレスに基づいて、仮想メモリ内のメモリブロックに対応する物理メモリ103内の以前の物理メモリブロックを決定する。マネージャ101は、この以前の物理メモリブロックを決定した後に、この以前の物理メモリブロックを解放する。いくつかの実施例では、マネージャ101は、仮想メモリ104と物理メモリ103とのマッピングテーブルに基づいて、仮想メモリアドレスに対応する物理メモリブロックを検索し、その後、この物理メモリブロックによって占有されるメモリ空間を解放する。上記の例は、本開示の実施例を説明するためのものに過ぎず、本開示を限定するものではない。
【0042】
上記の動作が完了すると、マネージャ101は、仮想マシン102へ応答を送信し、データブロックが仮想メモリ104に記憶されていることを示す。
【0043】
仮想メモリのメモリブロックに対応する物理メモリ内の物理メモリブロックを決定し、その対応するメモリ空間を解放することによって、物理メモリの記憶空間を他のデータに使用して、物理メモリの使用効率を向上させることができる。
【0044】
図4は、本開示の実施例による仮想マシンを起動するための例示的な環境400の模式図を示す。例示的な環境400は、物理メモリ103と、仮想マシン102と、物理ディスク403とを含む。仮想マシン102は、仮想メモリ104と仮想ディスク105とを含む。物理メモリ103は、仮想メモリ104内のデータブロックを記憶するために使用される。したがって、第1マッピングテーブル404には、物理メモリ103内においてデータブロックを記憶するための物理ブロックのアドレス又はデータブロックのアドレスと、仮想メモリ104においてデータブロックを記憶するためのメモリブロックのアドレス又はデータブロックのアドレスとのマッピング関係が記憶されている。例えば、第1マッピングテーブル404は、シャドウページテーブルまたは拡張ページテーブルであってもよい。第1メモリブロック401と第2メモリブロック406とのマッピング関係は、第1マッピングテーブル404に記憶される。
【0045】
仮想ディスク105と物理メモリ103との間には、第2マッピングテーブル405がある。第2マッピングテーブル405には、仮想ディスク105内のデータブロックが位置するメモリブロックのアドレス又はデータブロックのアドレスと、物理メモリ103内のデータブロックが位置するメモリブロックのアドレス又はデータブロックのアドレスとのマッピング関係が記憶されている。仮想ディスク105内の第4メモリブロック407のアドレスと物理メモリ103内の第3メモリブロック402のアドレスとのマッピング関係は、第2マッピングテーブル405に記憶される。一例では、第2マッピングテーブル405は、ホストページテーブルである。また、仮想ディスク105のデータブロックのアドレス又はデータブロックが位置するメモリブロックのアドレスが第2マッピングテーブル405において対応するマッピング関係がなければ、仮想ディスク105内の該データブロックが物理ディスク403に存在することを示す。付加的に、仮想ディスク105と物理ディスク403との間に、データブロックまたはメモリブロックの対応関係を反映するファイルが存在する。一例では、該ファイルはホストファイルである。
【0046】
いくつかの実施例では、マネージャ101は、仮想メモリ104の第2メモリブロック406内のデータブロックを仮想ディスク105の第4メモリブロック407に記憶する際に、第2メモリブロック406および第4メモリブロック407のアドレスを受信する。マネージャ101は、第2メモリブロック406内のアドレスに基づいて、第1マッピングテーブル404で第1メモリブロック401のアドレスを見つける。そして、マネージャ101は、第2マッピングテーブル405で第4メモリブロック407のマッピング関係を検索し、マッピング関係がなければ、第2マッピングテーブル405に第1メモリブロック401のアドレス及び第4メモリブロック407のアドレスを記憶する。したがって、仮想ディスク105内のアドレスによって該データブロックを見つけることができ、その結果、データブロックが仮想ディスク105に記憶されていることを示す。第2マッピングテーブル405に第4メモリブロック407のアドレスに関連するマッピング関係が存在すれば、該マッピング関係は第1メモリブロック401のアドレスと第4メモリブロック407のアドレスとのマッピング関係に変更される。また、マネージャ101は、第4メモリブロック407に対応する第3メモリブロック402が占有するメモリ空間を解放する。
【0047】
また、第1メモリブロック401が仮想ディスク105内のアドレスに対応するため、物理メモリ103で第2メモリブロック406に対応するメモリブロックをさらに割り当て、それらのマッピング関係を第1マッピングテーブル404に記憶する必要がある。上記の動作が完了すると、マネージャ101は、仮想マシン102へデータのスワップアウト動作が完了するという応答を送信する。
【0048】
いくつかの実施例では、マネージャ101は、仮想メモリ105の第4メモリブロック407内のデータブロックを仮想ディスク104の第2メモリブロック406に記憶する際に、第4メモリブロック407のアドレスおよび第2メモリブロック406のアドレスを受信する。マネージャ101は、第2メモリブロック407のアドレスに基づいて、第4マッピングテーブル405で対応するマッピング関係があるかどうかを判定する。対応するマッピング関係があれば、物理メモリ103に第4メモリブロック407に対応する第3メモリブロック402が存在することを示す。第2マッピングテーブル405に対応するマッピング関係がなければ、第4メモリブロック407内のデータが物理ディスク403に記憶されていることを示す。そして、マネージャ101は、仮想ディスク105と物理ディスク403とのマッピング関係によって、物理ディスク403で第4メモリブロック407に対応するデータブロックを見つけてから、物理メモリ103に第3のメモリブロック402を割り当て、データブロックを第3メモリブロック402に読み取る。そして、マネージャ101は、第3メモリブロック402のアドレスと第2メモリブロック406のアドレスとのマッピング関係を第1マッピングテーブル404に記憶する。したがって、仮想マシン102は、仮想メモリ104内のアドレスによって該データブロックを見つけることができ、該データブロックが仮想メモリ104に記憶されていることを示す。
【0049】
また、第2メモリブロック406に対応する第1メモリブロック401を解放する必要がある。上記の動作が完了すると、マネージャ110は仮想マシン102へ仮想ストレージ104へのデータの記憶が完了するという応答を送信する。
【0050】
図5は本開示の実施例によるデータを処理するための装置500の模式ブロック図を示す。装置500は、
図1のマネージャ101に含まれてもよく、またはマネージャ101として実現されてもよい。
図5に示すように、装置500は、仮想マシンの仮想メモリから仮想マシンの仮想ディスクにデータブロックを記憶するための要求であって、仮想メモリにおいてデータブロックを記憶するための仮想メモリアドレス及び仮想ディスクにおいてデータブロックを記憶するための仮想ディスクアドレスを示す要求を受信するように構成される第1受信モジュール502を備える。装置500は、仮想メモリアドレスに基づいて、仮想マシンに関連する物理メモリ内のデータブロックを記憶するための物理メモリアドレスを決定するように構成される第1物理メモリアドレス決定モジュール504をさらに備える。装置500は、仮想ディスクアドレスと物理メモリアドレスとを関連付けて記憶するように構成される第1アドレス記憶モジュール506をさらに備える。
【0051】
いくつかの実施例では、装置500は、仮想ディスクアドレスに基づいて、物理メモリに、仮想ディスクにおいてデータブロックを記憶するための仮想ディスクメモリブロックに対応する第1物理メモリブロックが存在するか否かを判定するように構成される第1物理メモリブロック判定モジュールと、第1物理メモリブロックが存在することに応じて、第1物理メモリブロックを解放するように構成される第1解放モジュールとをさらに備える。
【0052】
いくつかの実施例では、装置500は、物理メモリにおいて仮想メモリに対して第2物理メモリブロックを割り当てるように構成される第1割り当てモジュールと、割り当てられた第2物理メモリブロックのアドレスと仮想メモリアドレスとを関連付けて記憶するように構成される仮想メモリアドレス記憶モジュールとをさらに備える。
【0053】
いくつかの実施例では、デバイス500は、要求に対する応答を仮想マシンに送信して、データブロックが仮想ディスクに記憶されていることを示すように構成される第1送信モジュールをさらに備える。
【0054】
図6は本開示の実施例によるデータを処理するための装置600の模式ブロック図を示す。装置600は、
図1のマネージャ101に含まれてもよく、またはマネージャ101として実現されてもよい。
図6に示すように、装置600は、仮想マシンの仮想ディスクから仮想マシンの仮想メモリにデータブロックを記憶するための要求であって、仮想メモリにおいてデータブロックを記憶するための仮想メモリアドレス及び仮想ディスクにおいてデータブロックを記憶するための仮想ディスクアドレスを示す要求を受信するように構成される第2受信モジュール602を備える。装置600は、仮想ディスクアドレスに基づいて、仮想マシンに関連する物理メモリ内のデータブロックを記憶するための物理メモリアドレスを決定するように構成される第2物理メモリアドレス決定モジュールをさらに備える。装置600は、仮想メモリアドレスと物理メモリアドレスとを関連付けて記憶するように構成される第2アドレス記憶モジュール606をさらに備える。
【0055】
いくつかの実施例では、第2物理メモリアドレス決定モジュール604は、仮想ディスクアドレスに基づいて、物理メモリアドレスが存在するか否かを判定するように構成される判定モジュールと、物理メモリアドレスが存在しないことに応じて、物理メモリから第1物理メモリブロックを割り当てるように構成される第2割り当てモジュールと、データブロックを仮想ディスクに関連する物理ディスクから第1物理メモリブロックに記憶するように構成されるデータブロック記憶モジュールと、第1物理ブロックのアドレスを物理メモリアドレスとして決定するように構成される第3物理メモリアドレス決定モジュールとを含む。
【0056】
いくつかの実施例では、装置600は、仮想メモリアドレスに基づいて、物理メモリ内の、仮想メモリにおいてデータブロックを記憶するための仮想メモリブロックに対応する第2物理メモリブロックを決定するように構成される第2物理メモリブロック決定モジュールと、第2物理メモリブロックを解放するように構成される第2解放モジュールとをさらに備える。
【0057】
いくつかの実施例では、装置600は、要求に対する応答を仮想マシンに送信して、データブロックが仮想メモリに記憶されていることを示すように構成される第2送信モジュールをさらに備える。
【0058】
図7は、本開示の実施例を実施可能な電子デバイス700の模式ブロック図を示す。デバイス700は、
図1のマネージャ101を実装するために使用されることができる。図面に示すように、デバイス700は、ROM(Read Only Memory)702に記憶されているコンピュータプログラムコマンド、または記憶手段708からRAM(Random Access Memory)703にロードされたコンピュータプログラムコマンドに従って各種の適切な動作および処理を実行するコンピューティングユニット701を備える。RAM703には、デバイス700が操作するために必要な各種プログラムやデータも記憶されることができる。コンピューティングユニット701、ROM702及びRAM703は、バス704を介して相互に接続されている。また、バス704には、入出力(I/O)インタフェース705も接続されている。
【0059】
キーボードやマウスなどの入力手段706と、様々なタイプのディスプレイやスピーカなどの出力手段707と、磁気ディスクや光ディスクなどの記憶手段708と、ネットワークカードやモデム、無線通信送受信機などの通信手段709を含むデバイス700の複数の構成要素は、I/Oインターフェース705に接続されている。通信手段709は、デバイス700がインターネットなどのコンピュータネットワークおよび/または様々な電気通信ネットワークを介して他のデバイスと情報/データを交換することを許容する。
【0060】
コンピューティングユニット701は、処理およびコンピューティング能力を有する様々な汎用および/または専用の処理コンポーネントとすることができる。コンピューティングユニット701のいくつかの例は、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、様々な専用の人工知能(AI)コンピューティングチップ、機械学習モデルアルゴリズムを実行する様々なコンピューティングユニット、デジタル信号プロセッサ(DSP)、および任意の適切なプロセッサ、コントローラ、マイクロコントローラなどを含むが、これらに限定されない。コンピューティングユニット701は、方法200および300などの上述の方法および処理のそれぞれを実行する。例えば、いくつかの実施例では、方法200および300は、機械可読媒体、例えば記憶手段708に有形に含まれるコンピュータソフトウェアプログラムとして実施されることができる。いくつかの実施例では、コンピュータプログラムの一部または全部が、ROM702および/または通信手段709を介してデバイス700にロードおよび/またはインストールされることができる。コンピュータプログラムがRAM703にロードされコンピューティングユニット701によって実行されると、上述の方法200および300の1つまたは複数のステップが実行されることが可能である。代替として、他の実施例では、コンピューティングユニット701は、他の任意の適切な形態(例えばファームウェア)によって方法200および300を実行するように構成されてもよい。
【0061】
本明細書では、上述した機能は、少なくとも部分的に1つ又は複数のハードウェアロジックコンポーネントによって実行されることができる。例えば、限定するものではないが、使用することができる例示的なハードウェア論理構成要素は、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、オンチップシステム(SOC)、負荷プログラマブルロジックデバイス(CPLD)などを含む。
【0062】
本開示の方法を実施するためのプログラムコードは、1つまたは複数のプログラミング言語の任意の組み合わせにより記述されることができる。それらのプログラムコードは、プログラムコードがプロセッサやコントローラによって実行されると、フローチャートおよび/またはブロック図に示された機能/動作を実行させるように、汎用コンピュータ、専用コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサやコントローラに提供されることができる。プログラムコードは、完全に機械で実行されてもよく、部分的に機械で実行されてもよく、スタンドアロンソフトウェアパッケージとして機械で部分的に実行されてもよく、リモート機械で部分的に実行されてもよく、またはリモート機械またはサーバで完全に実行されてもよい。
【0063】
本開示のコンテキストにおいて、機械可読媒体は、命令実行システム、装置やデバイスが使用する、または命令実行システム、装置やデバイスと組み合わせて使用するためのプログラムを含むまたは記憶することができる有形媒体であってもよい。機械可読媒体は、機械可読信号媒体であってもよく、機械可読記憶媒体であってもよい。機械可読媒体は、電子式、磁気式、光学式、電磁式、赤外線式、または半導体システム、装置やデバイス、またはそれらの任意の適切な組み合わせを含むことができるが、これらに限定されない。機械可読記憶媒体のさらなる具体的な例は、1つ又は複数のラインによる電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、コンパクトコンパクトディスク読み取り専用メモリ(CD−ROM)、光記憶デバイス、磁気記憶デバイス、またはそれらの任意の適切な組み合わせを含む。
【0064】
また、各動作は特定の順序で記載されているが、これは、各動作が図示された特定の手順や順序で順次に実行されるように要求される、または所望の結果を得るために図示された動作のすべてが実行されるように要求されることと理解されるべきである。特定の環境下で、マルチタスクおよび並列処理が有利であり得る。同様に、上述したように、いくつかの具体的な実施の詳細が説明されるが、これらは本開示の範囲を限定するものと解釈されるべきではない。別個の実施例のコンテキストで説明されたいくつかの特徴は、単一の実施において組み合わされて実施されてもよい。逆に、単一の実施のコンテキストで説明された各特徴も、複数の実施において、個別または任意の適切なサブコンビネーションの形態で実施されてもよい。
【0065】
本テーマは、構造的特徴および/または方法論理的動作に特定される言語で説明されたが、添付の特許請求の範囲で限定されるテーマは、必ずしも上述した特定の特徴または動作に限定されないことが理解されるべきである。逆に、上述した特定の特徴および動作は、特許請求の範囲を実施するための例示的な形態に過ぎない。