JP2024506131A - 仮想マシンのメモリ共有方法および装置 - Google Patents

仮想マシンのメモリ共有方法および装置 Download PDF

Info

Publication number
JP2024506131A
JP2024506131A JP2023540882A JP2023540882A JP2024506131A JP 2024506131 A JP2024506131 A JP 2024506131A JP 2023540882 A JP2023540882 A JP 2023540882A JP 2023540882 A JP2023540882 A JP 2023540882A JP 2024506131 A JP2024506131 A JP 2024506131A
Authority
JP
Japan
Prior art keywords
memory
virtual machine
virtual machines
same
virtual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023540882A
Other languages
English (en)
Inventor
シ バイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Huijun Technology Co Ltd
Original Assignee
Beijing Huijun Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Huijun Technology Co Ltd filed Critical Beijing Huijun Technology Co Ltd
Publication of JP2024506131A publication Critical patent/JP2024506131A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Abstract

本出願は、仮想マシンのメモリ共有方法および装置を開示する。当該方法の具体的な一実施形態は、仮想マシンセット内の仮想マシンを監視し、同じメモリページを有する仮想マシンを表すための仮想マシンセット内の同種の仮想マシンを特定するステップと、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンをターゲットホストマシンに移行させるステップと、ターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する同種の仮想マシンのメモリ共有を実現するステップと、を含む。【選択図】図2

Description

<関連出願の相互参照>
本出願は、2021年03月26日に提出した、出願番号が202110324549.6、発明の名称が「仮想マシンのメモリ共有方法および装置」である中国特許出願の優先権を主張するものであり、当該出願のすべての内容が援用により本出願に組み込まれる。
本出願の実施形態は、コンピュータ技術分野に関し、詳しくは、仮想マシンのメモリ共有方法および装置に関する。
仮想マシンのメモリオーバーコミット(Over-Commit)テクノロジは、主に、メモリスワッピング(Swapping)、バルーニング(Ballooning)およびページ共有(Page Sharing)の3つに分類される。従来のページ共有(Page Sharing)メカニズムでは、KSM(Kernel Samepage Merging,カーネル同じページのマージ)によってカーネルがプロセス実行中のメモリをスキャンする。完全に同じメモリページが見つかった場合、それらを1つのメモリページにマージし、複数の仮想マシンが同じOS(Operating System,オペレーティングシステム)またはアプリケーションを実行し、頻繁に更新されていない場合、KSMを使用すれば、メモリの使用効率およびパフォーマンスを大幅に向上させることができる。
本出願の実施形態は、仮想マシンのメモリ共有方法および装置を提出する。
第1の態様において、本出願の実施形態は仮想マシンのメモリ共有方法を提供し、仮想マシンセット内の仮想マシンを監視し、同じメモリページを有する仮想マシンを表すための前記仮想マシンセット内の同種の仮想マシン(homogeneous virtual machine)を特定するステップと、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンをターゲットホストマシンに移行(migrate)させるステップと、ターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する同種の仮想マシンのメモリ共有を実現するステップと、を含む。
いくつかの実施形態において、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンをターゲットホストマシンに移行させるステップは、同種の仮想マシンのアプリケーションに高可用性要件(high availability requirement)があるか否かを判断するステップと、同種の仮想マシンのアプリケーションに高可用性要件があると判定されたことに応じて、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンを異なるターゲットホストマシンに移行させるステップと、を含む。
いくつかの実施形態において、同種の仮想マシンのアプリケーションに高可用性要件があると判定されたことに応じて、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンを異なるターゲットホストマシンに移行させるステップは、同種の仮想マシンのアプリケーションに高可用性要件があると判定されたことに応じて、高可用性要件の高可用性レベルを確定するステップと、高可用性レベルに基づいて、ターゲットホストマシンの数を決定するステップと、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンを、前記数のターゲットホストマシンに移行させるステップと、を含む。
いくつかの実施形態において、ターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する同種の仮想マシンのメモリ共有を実現するステップは、同じターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する同種の仮想マシンのメモリ共有を実現するステップを含む。
いくつかの実施形態において、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンをターゲットホストマシンに移行させるステップは、同じメモリページの数が所定の閾値を超えた仮想マシンにおいて、第1の所定属性に適合する同じメモリページに対するメモリ圧縮動作によって圧縮されたメモリが圧縮閾値を超えたか否かを判断するステップと、超えたと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、第1の所定属性に適合する同じメモリページに対応する仮想マシンをターゲットホストマシンに移行させるステップと、を含む。
いくつかの実施形態において、上記方法は、超えていないと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、第1の所定属性に適合する同じメモリページに対応する仮想マシン、および第2の所定属性に適合する同じメモリページに対応する仮想マシンをターゲットホストマシンに移行させるステップをさらに含む。
いくつかの実施形態において、仮想マシンセット内の仮想マシンを監視し、仮想マシンセット内の同種の仮想マシンを特定するステップは、ハッシュ値比較アルゴリズムにより、仮想マシンセットにおける同じメモリページが含まれる同種の仮想マシンと、同種の仮想マシンにおける同じメモリページの数とを確定するステップを含む。
いくつかの実施形態において、仮想マシンセット内の仮想マシンを監視し、仮想マシンセット内の同種の仮想マシンを特定するステップの前に、メモリ共有を行うか否かを表すコンフィギュレーションスイッチの状態を確定するステップをさらに含み、仮想マシンセット内の仮想マシンを監視し、仮想マシンセット内の同種の仮想マシンを特定するステップは、コンフィギュレーションスイッチがオン状態であると判定されたことに応じて、仮想マシンセット内の仮想マシンを監視し、仮想マシンセット内の同種の仮想マシンを特定するステップを含む。
第2の態様において、本出願の実施形態は、仮想マシンのメモリ共有装置を提供し、仮想マシンセット内の仮想マシンを監視し、同じメモリページを有する仮想マシンを表すための前記仮想マシンセット内の同種の仮想マシンを特定するように構成される第1確定ユニットと、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンをターゲットホストマシンに移行させるように構成される移行ユニットと、ターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する同種の仮想マシンのメモリ共有を実現するように構成される共有ユニットと、を備える。
いくつかの実施形態において、移行ユニットは、さらに、同種の仮想マシンのアプリケーションに高可用性要件があるか否かを判断し、同種の仮想マシンのアプリケーションに高可用性要件があると判定されたことに応じて、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンを異なるターゲットホストマシンに移行させるように構成される。
いくつかの実施形態において、移行ユニットは、さらに、同種の仮想マシンのアプリケーションに高可用性要件があると判定されたことに応じて、高可用性要件の高可用性レベルを確定し、高可用性レベルに基づいて、ターゲットホストマシンの数を決定し、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンを前記数のターゲットホストマシンに移行させるように構成される。
いくつかの実施形態において、共有ユニットは、さらに、同じターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する同種の仮想マシンのメモリ共有を実現するように構成される。
いくつかの実施形態において、移行ユニットは、さらに、同じメモリページの数が所定の閾値を超えた仮想マシンにおいて、第1の所定属性に適合する同じメモリページに対するメモリ圧縮動作によって圧縮されたメモリが圧縮閾値を超えたか否かを判断し、超えたと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、第1の所定属性に適合する同じメモリページに対応する仮想マシンをターゲットホストマシンに移行させるように構成される。
いくつかの実施形態において、移行ユニットは、さらに、超えていないと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、第1の所定属性に適合する同じメモリページに対応する仮想マシン、および第2の所定属性に適合する同じメモリページに対応する仮想マシンをターゲットホストマシンに移行させるように構成される。
いくつかの実施形態において、第1確定ユニットは、さらに、ハッシュ値比較アルゴリズムにより、仮想マシンセットにおける同じメモリページが含まれる同種の仮想マシンと、同種の仮想マシンにおける同じメモリページの数とを確定するように構成される。
いくつかの実施形態において、上記装置は、メモリ共有を行うか否かを表すコンフィギュレーションスイッチの状態を確定するように構成される第2確定ユニットをさらに備え、第1確定ユニットは、さらに、コンフィギュレーションスイッチがオン状態であると判定されたことに応じて、仮想マシンセット内の仮想マシンを監視し、仮想マシンセット内の同種の仮想マシンを特定するように構成される。
第3の態様において、本出願の実施形態は、プロセッサによって実行される場合、第1の態様におけるいずれかの実施形態に記載の仮想マシンのメモリ共有方法を実現するコンピュータプログラムが格納されたコンピュータ可読媒体を提供する。
第4の態様において、本出願の実施形態は、少なくとも一つのプロセッサと、少なくとも一つのプログラムが格納されているメモリと、を備え、少なくとも一つのプログラムが少なくとも一つのプロセッサによって実行される場合、少なくとも一つのプロセッサに第1の態様におけるいずれかの実施形態に記載の仮想マシンのメモリ共有方法を実現させる電子機器を提供する。
以下、添付図面を参照して行われる非限定的な実施形態に対する詳細な説明を閲読することにより、本出願のその他の特徴、目的および利点がより明確になる。
本出願の一実施形態を適用できる例示的なシステムアーキテクチャである。 本出願による仮想マシンのメモリ共有方法の一実施形態のフローチャートである。 本実施形態による仮想マシンのメモリ共有方法の応用シーンの概略図である。 本出願による仮想マシンのメモリ共有方法の別の一実施形態のフローチャートである。 本出願による仮想マシンのメモリ共有装置の一実施形態の構造図である。 本出願の実施形態を実現するためのコンピュータシステムの構造概略図である。
以下、図面および実施形態を組み合わせて、本出願をさらに詳細に説明する。本明細書に記載される特定の実施形態は本発明を限定するものではなく、関連発明を説明するためのものであることを理解されたい。また、説明の便宜上、図面には関連発明に関連する部分のみが示されている。
また、本出願における実施形態および実施形態における特徴は、矛盾が生じない限り、互いに組み合わせ可能であることを理解すべきである。以下、図面を参照し、実施形態に組み合わせて、本出願を詳細に説明する。
図1は、本出願の仮想マシンのメモリ共有方法および装置を適用できる例示的なシステムアーキテクチャ100を示す。
図1に示すように、システムアーキテクチャ100は、端末装置101、102、103、ネットワーク104、およびサーバ105を備えてもよい。端末装置101、102、および103間が通信可能に接続されてトポロジカルネットワークを構成し、ネットワーク104は、端末装置101、102、103とサーバ105との間に通信リンクを提供するための媒体として使用される。ネットワーク104は、例えば、有線、無線通信リンク、または光ファイバケーブルなどの様々な接続タイプを含んでもよい。
端末装置101、102、および103は、データインタラクションおよびデータ処理のためのネットワーク接続をサポートするハードウェアまたはソフトウェアであってもよい。端末装置101、102、103がハードウェアである場合、それらは、スマートフォン、タブレットコンピュータ、電子書籍リーダー、ラップトップコンピュータおよびデスクトップコンピュータなどを含むがこれらに限定されない、ネットワーク接続、情報取得、インタラクション、表示、および処理などの機能をサポートする様々な電子機器であってもよい。端末装置101、102、103がソフトウェアである場合、上記に挙げられた電子機器にインストールされてもよい。それは、例えば、分散サービスを提供するための複数のソフトウェアまたはソフトウェアモジュールとして実装されてもよいし、または単一のソフトウェアまたはソフトウェアモジュールとして実装されてもよい。ここでは、特に限定されない。
サーバ105は、ユーザが端末装置101、102、および103を介して送信した動作情報を取得し、動作要求に従って情報を処理するバックエンド処理サーバなど、仮想マシンをデプロイするホストマシンとして、様々なサービスを提供することができる。サーバ105はまた、仮想マシンセット内の同種の仮想マシンを特定するとともに、同種の仮想マシンに対してメモリ圧縮を行うことで、同種の仮想マシン間のメモリ共有を実現することができる。一例として、サーバ105はクラウドサーバであってもよい。
なお、サーバは、ハードウェアであってもよいし、ソフトウェアであってもよい。サーバがハードウェアである場合、複数のサーバから構成される分散サーバクラスターとして実装されてもよいし、単一のサーバとして実装されてもよい。サーバがソフトウェアである場合、複数のソフトウェアまたはソフトウェアモジュール(例えば、分散サービスを提供するためのソフトウェアまたはソフトウェアモジュール)として実装されてもよいし、単一のソフトウェアまたはソフトウェアモジュールとして実装されてもよい。ここでは特に限定されない。
なお、本出願の実施形態によって提供される仮想マシンのメモリ共有方法は、サーバによって実行されてもよく、端末装置によって実行されてもよく、また、サーバおよび端末装置の協働によって実行されてもよい。従って、仮想マシンのメモリ共有装置に含まれる各部分(例えば、各ユニット)は、すべてサーバに設置されてもよく、すべて端末装置に設置されてもよく、また、サーバおよび端末装置にそれぞれ設置されてもよい。
図1における端末装置、ネットワークおよびサーバの数は単なる例示であることを理解されたい。実際のニーズに応じて、端末装置、ネットワークおよびサーバの数は任意に設定されてもよい。仮想マシンのメモリ共有方法が実行される電子機器が他の電子機器とデータを伝送する必要がない場合、該システムアーキテクチャは、仮想マシンのメモリ共有方法が実行される電子機器(例えば、サーバまたは端末装置)のみを含んでもよい。
引き続き、図2を参照し、仮想マシンのメモリ共有方法の一実施形態のフロー200を示し、以下のステップを含む。
ステップ201では、仮想マシンセット内の仮想マシンを監視し、仮想マシンセット内の同種の仮想マシンを特定する。
本実施形態において、仮想マシンのメモリ共有方法の実行主体(例えば、図1のサーバ)は、仮想マシンセット内の仮想マシンを監視し、仮想マシンセット内の同種の仮想マシンを特定することができる。同種の仮想マシンは、同じメモリページを有する仮想マシンを表す。
仮想マシンセットには、メモリ共有を実現するためにメモリ圧縮が必要なすべての仮想マシンが含まれる。仮想マシンの稼働中に、メモリはメモリページ単位で管理される。異なる仮想マシンに同じメモリページが存在する場合、同種の仮想マシンとして見なすことができる。
大規模な仮想マシンが稼働するクラウドプラットフォームのシーンでは、上記実行主体は、クラウドプラットフォームで稼働するすべての仮想マシンを仮想マシンセットとして監視することができる。
一例として、上記実行主体は、クラウドプラットフォーム上で実行および作成された仮想マシンを監視し、予め設定されたテナントが予め設定された時間範囲内で集中的に作成および構成した仮想マシンを重点的に識別および記録し、取得した監視情報をメタデータ管理モジュールに記録することができる。同時期に集中的に作成された仮想マシンが同種の仮想マシンである可能性が高いことが理解できる。
本実施形態のいくつかのオプション的な実施形態では、上記実行主体は、ハッシュ値比較アルゴリズムにより、仮想マシンセットにおける同じメモリページが含まれる同種の仮想マシンと、同種の仮想マシンにおける同じメモリページの数とを確定することができる。
一例として、上記実行主体は、仮想マシンセット内の仮想マシンのメモリページを同じハッシュ関数によってハッシュ演算してハッシュコードを取得し、同じハッシュコードを有するメモリページを同じメモリページとすることができる。よって、上記実行主体は、仮想マシンセットにおける同種の仮想マシンと、同種の仮想マシンにおける同じメモリページの数とを確定することができる。
ステップ202では、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンをターゲットホストマシンに移行させる。
本実施形態において、上記実行主体は、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンをターゲットホストマシンに移行させることができる。
ここで、所定の閾値は実際の状況に応じて具体的に設定することができ、ここでは限定されない。一例として、所定の閾値は5である。
上記実行主体は、同じメモリページの数が所定の閾値を超えた同種の仮想マシンをターゲットホストマシンに移行させ、後続のステップによって同種の仮想マシン間のメモリ圧縮および共有を行う。なお、現在の仮想マシンの移行テクノロジは比較的成熟したテクノロジであるため、ここではその説明を省略する。
本実施形態のいくつかのオプション的な実施形態において、上記実行主体は、次の方法によって上記ステップ202を実行することができる。
第1、同種の仮想マシンのアプリケーションに高可用性要件があるか否かを判断する。
高可用性は、設計によりシステムのサービス提供不可時間を短縮することを表す。高可用性を確保する原則は「冗長性」であり、冗長バックアップにより、シングルポイントシステムの高可用性が確保できないという問題を回避できる。
本実施形態において、上記実行主体は、同種の仮想マシンのアプリケーションに高可用性要件があるか否かを判断することができる。
第2、同種の仮想マシンのアプリケーションに高可用性要件があると判定されたことに応じて、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンを異なるターゲットホストマシンに移行させる。
本実施形態において、同種の仮想マシンのアプリケーションの高可用性要件を満たすために、同じメモリページの数が所定の閾値を超えた同種の仮想マシンを異なるターゲットホストマシンに移行させ、バックアップする。
本実施形態のいくつかのオプション的な実施形態において、上記実行主体は、次の方法によって上記第2ステップを実行することができる。
まず、同種の仮想マシンのアプリケーションに高可用性要件があると判定されたことに応じて、高可用性要件の高可用性レベルを確定する。
一例として、高可用性レベルを予め等級付けし、等級情報をターゲットホストマシンの数に関連付けることができる。例えば、高可用性レベルには、高、中、低の3つのレベルが含まれ、対応するターゲットホストマシンの数は順番に3、2、1である。
次に、高可用性レベルに基づいて、ターゲットホストマシンの数を決定する。
最後に、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンを上記数のターゲットホストマシンに移行させる。
本実施形態では、上記実行主体は、異なるターゲットホストマシンにおける仮想マシンの数を柔軟に決定することができる。一例として、上記実行主体は、数の平均数に基づいて、同種の仮想マシンを上記数のターゲットホストマシンに移行させることができる。
本実施形態のいくつかのオプション的な実施形態において、上記実行主体は、次の方法によって上記ステップ202を実行することができる。
第1、同じメモリページの数が所定の閾値を超えた仮想マシンにおいて、第1の所定属性に適合する同じメモリページに対するメモリ圧縮動作によって圧縮されたメモリが圧縮閾値を超えたか否かを判断する。
本実施形態では、上記実行主体は、同種の仮想マシンを移行させる前に、まず、メモリ圧縮動作によって圧縮されたメモリが圧縮閾値を超えたか否かを予測する。ここで、メモリ圧縮動作は、第1の所定属性に適合する同じメモリページに対するメモリ圧縮動作である。第1の所定属性は、例えば、読み取り可能な属性であってもよい。
圧縮閾値は、メモリ圧縮の最小期待値を表し、実際の状況に応じて具体的に設定されてもよく、ここでは特に限定しない。
第2、同じメモリページの数が所定の閾値を超えたと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、第1の所定属性に適合する同じメモリページに対応する仮想マシンをターゲットホストマシンに移行させる。
本実施形態では、第1の所定属性に適合する同じメモリページに対するメモリ圧縮動作によって圧縮されたメモリが圧縮閾値を満たすことができる場合、上記実行主体は、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、第1の所定属性に適合する同じメモリページに対応する仮想マシンのみをターゲットホストマシンに移行させてもよい。
本実施形態のいくつかのオプション的な実施形態において、上記実行主体は、同じメモリページの数が所定の閾値を超えていないと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、第1の所定属性に適合する同じメモリページに対応する仮想マシンと、第2の所定属性に適合する同じメモリページに対応する仮想マシンとをターゲットホストマシンに移行させる。第2の所定属性は、例えば、書き込み可能な属性であってもよい。
本実施形態において、第1の所定属性および第2の所定属性が同じのメモリページに対して、上記実行主体は、圧縮閾値によって表される圧縮要件を満たすために、後続のステップ203を通じて2段階圧縮を行うことができる。
なお、上記の各実施形態を互いに組み合わせて新しい実施形態を得ることができる。一例として、上記実行主体は、同じメモリページの数が所定の閾値を超えた仮想マシンにおいて、第1の所定属性に適合する同じメモリページに対するメモリ圧縮動作によって圧縮されたメモリが圧縮閾値を超えたか否かを判断し、同種の仮想マシンのアプリケーションに高可用性要件があるか否かを判断し、同種の仮想マシンのアプリケーションに高可用性要件があると判定されるとともに、第1の所定属性に適合する同じメモリページに対するメモリ圧縮動作によって圧縮されたメモリが圧縮閾値を超えたと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、第1の所定属性に適合する同じメモリページに対応する仮想マシンを異なるターゲットホストマシンに移行させるという方法によって上記ステップ202を実行することができる。
ステップ203では、ターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する同種の仮想マシンのメモリ共有を実現する。
本実施形態において、上記実行主体は、ターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行って、同じメモリページに対する同種の仮想マシンのメモリ共有を実現することができる。
一例として、上記実行主体は、各種類の内容が同じメモリページに対して、当該同じメモリページを含む複数の仮想マシンにおける当該同じメモリページをKSM技術によって単一のメモリページにマージし、マージされたメモリページを当該同じメモリページを含む複数の仮想マシンで共有する。
本実施形態のいくつかのオプション的な実施形態では、同種の仮想マシンにおけるアプリケーションに高可用性要件を有する状況に対して、上記実行主体は、同じターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行って、同じメモリページに対する同種の仮想マシンのメモリ共有を実現することができる。
引き続き、図3を参照し、図3は本実施形態による仮想マシンのメモリ共有方法の応用シーンの概略図300である。図3の応用シーンでは、サーバ301は、仮想マシンセット302内の仮想マシンを監視し、仮想マシンセット302に仮想マシン3021、3022、3023、3024、3025、3026、3027、および3028の同種の仮想マシンが含まれると特定する。同種の仮想マシンは、同じメモリページを有する仮想マシンを表す。仮想マシンセット内の同種の仮想マシンを特定した後、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシン3021、3022、3023、3024をターゲットホストマシン303に移行させる。さらに、ターゲットホストマシン303における同種の仮想マシン3021、3022、3023、3024に対して、同じメモリページに対するメモリ圧縮を行って、同じメモリページに対する同種の仮想マシンのメモリ共有を実現する。
本出願の上記実施形態による方法は、仮想マシンセット内の仮想マシンを監視することにより、仮想マシンセットにおける、同じメモリページを有する仮想マシンを表す同種の仮想マシンを特定し、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンをターゲットホストマシンに移行させ、ターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行いって同じメモリページに対する同種の仮想マシンのメモリ共有を実現することにより、仮想マシンのメモリ共有方法を提供し、リソースの運用コストを削減しながら、システムのより効率的な運用を確保する。
本実施形態のいくつかのオプション的な実施形態では、上記ステップ201を実行する前に、上記実行主体は、まず、メモリ共有を実行するか否かを表すコンフィギュレーションスイッチの状態を判断することができる。上記実行主体は、コンフィギュレーションスイッチがオン状態であると判定されたことに応じて、仮想マシンセット内の仮想マシンを監視し、仮想マシンセット内の同種の仮想マシンを特定する方法によって上記ステップ201を実行することができる。
一例として、電子商取引分野において、電子商取引プラットフォームは販促期間中に商品の消費が急増し、これはショッピングプラットフォームの運用にとって大きな試練となる。このとき、コンフィギュレーションスイッチをオンにして、上記ステップで表したメモリ共有方法を実行して、効率的なオペレーティングプラットフォームを提供することができる。
引き続き、図4を参照し、本出願による仮想マシンのメモリ共有方法の一実施形態の概略的なフロー400を示し、以下のステップを含む。
ステップ401では、メモリ共有を行うか否かを表すコンフィギュレーションスイッチの状態を判断する。
ステップ402では、コンフィギュレーションスイッチがオン状態であると判定されたことに応じて、仮想マシンセット内の仮想マシンを監視し、仮想マシンセット内の同種の仮想マシンを特定する。
ここで、同種の仮想マシンは、同じメモリページを有する仮想マシンを表す。
ステップ403では、同種の仮想マシンのアプリケーションに高可用性要件があるか否かを判断し、同じメモリページの数が所定の閾値を超えた仮想マシンにおいて、第1の所定属性に適合する同じメモリページに対するメモリ圧縮動作によって圧縮されたメモリが圧縮閾値を超えたか否かを判断する。
ステップ404では、同種の仮想マシンのアプリケーションに高可用性要件があると判定され、且つ第1の所定属性に適合する同じメモリページに対するメモリ圧縮動作によって圧縮されたメモリが圧縮閾値を超えたと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、第1の所定属性に適合する同じメモリページに対応する仮想マシンを異なるターゲットホストマシンに移行させる。
ステップ405では、同種の仮想マシンのアプリケーションに高可用性要件があると判定され、且つ第1の所定属性に適合する同じメモリページに対するメモリ圧縮動作によって圧縮されたメモリが圧縮閾値を超えていないと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、第1の所定属性に適合する同じメモリページに対応する仮想マシンと、第2の所定属性に適合する同じメモリページに対応する仮想マシンとを異なるターゲットホストマシンに順次移行させる。
ステップ406では、同種の仮想マシンのアプリケーションに高可用性要件がないと判定され、且つ第1の所定属性に適合する同じメモリページに対するメモリ圧縮動作によって圧縮されたメモリが圧縮閾値を超えていないと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、第1の所定属性に適合する同じメモリページに対応する仮想マシンと、第2の所定属性に適合する同じメモリページに対応する仮想マシンとをターゲットホストマシンに移行させる。
ステップ407では、同種の仮想マシンのアプリケーションに高可用性要件がないと判定され、且つ第1の所定属性に適合する同じメモリページに対するメモリ圧縮動作によって圧縮されたメモリが圧縮閾値を超えたと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、第1の所定属性に適合する同じメモリページに対応する仮想マシンをターゲットホストマシンに移行させる。
ステップ408では、ターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する同種の仮想マシンのメモリ共有を実現する。
本実施形態から分かるように、図2に対応する実施形態と比較して、本実施形態における仮想マシンのメモリ共有方法のフロー400は、コンフィギュレーションスイッチの判定プロセス、同種の仮想マシンの移行プロセスを具体的に説明し、高可用性戦略とメモリ共有メカニズムを組み合わせることにより、システムのメモリの圧縮率を確保するだけでなく、上位のビジネスアプリケーションの高可用性も確保した。
引き続き、図5を参照し、上記の各図に示される方法の実現として、本出願は、仮想マシンのメモリ共有装置の一実施形態を提供し、当該装置の実施形態は図2に示された方法の実施形態に対応しており、当該装置は様々な電子機器に具体的に適用することができる。
図5に示されるように、仮想マシンのメモリ共有装置は、仮想マシンセット内の仮想マシンを監視し、仮想マシンセットにおける、同じメモリページを有する仮想マシンを表すための同種の仮想マシンを特定するように構成される第1確定ユニット501と、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンをターゲットホストマシンに移行させるように構成される移行ユニット502と、ターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する同種の仮想マシンのメモリ共有を実現するように構成される共有ユニット503と、を備える。
本実施形態のいくつかのオプション的な実施形態において、移行ユニット502は、さらに、同種の仮想マシンのアプリケーションに高可用性要件があるか否かを判断し、同種の仮想マシンのアプリケーションに高可用性要件があると判定されたことに応じて、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンを異なるターゲットホストマシンに移行させるように構成される。
本実施形態のいくつかのオプション的な実施形態において、移行ユニット502は、さらに、同種の仮想マシンのアプリケーションに高可用性要件があると判定されたことに応じて、高可用性要件の高可用性レベルを確定し、高可用性レベルに基づいて、ターゲットホストマシンの数を決定し、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンを、前記数のターゲットホストマシンに移行させるように構成される。
本実施形態のいくつかのオプション的な実施形態において、共有ユニット503は、さらに、同じターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する同種の仮想マシンのメモリ共有を実現するように構成される。
本実施形態のいくつかのオプション的な実施形態において、移行ユニット502は、さらに、同じメモリページの数が所定の閾値を超えた仮想マシンにおいて、第1の所定属性に適合する同じメモリページに対するメモリ圧縮動作によって圧縮されたメモリが圧縮閾値を超えたか否かを判断し、超えたと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、第1の所定属性に適合する同じメモリページに対応する仮想マシンをターゲットホストマシンに移行させるように構成される。
本実施形態のいくつかのオプション的な実施形態において、移行ユニット502は、さらに、超えていないと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、第1の所定属性に適合する同じメモリページに対応する仮想マシンと、第2の所定属性に適合する同じメモリページに対応する仮想マシンとをターゲットホストマシンに移行させるように構成される。
本実施形態のいくつかのオプション的な実施形態において、第1確定ユニット501は、さらに、ハッシュ値比較アルゴリズムにより、仮想マシンセットにおける同じメモリページが含まれる同種の仮想マシンと、同種の仮想マシンにおける同じメモリページの数とを確定するように構成される。
本実施形態のいくつかのオプション的な実施形態において、上記装置は、メモリ共有を行うか否かを表すコンフィギュレーションスイッチの状態を確定するように構成される第2確定ユニット(未図示)をさらに備え、第1確定ユニット501は、さらに、コンフィギュレーションスイッチがオン状態であると判定されたことに応じて、仮想マシンセット内の仮想マシンを監視し、仮想マシンセット内の同種の仮想マシンを特定するように構成される。
本実施形態において、仮想マシンのメモリ共有装置における第1確定ユニットは、仮想マシンセット内の仮想マシンを監視し、仮想マシンセットにおける、同じメモリページを有する仮想マシンを表す同種の仮想マシンを特定し、移行ユニットは、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンをターゲットホストマシンに移行させ、共有ユニットは、ターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する同種の仮想マシンのメモリ共有を実現することにより、仮想マシンのメモリ共有装置を提供し、リソースの運用コストを削減しながら、システムのより効率的な稼働を確保できる。
次に、図6を参照し、本出願の実施形態を実現するために適した機器(例えば、図1に示されている機器101、102、103、105)のコンピュータシステム600の構造概略図を示す。図6に示される機器は一例に過ぎず、本出願の実施形態の機能および使用範囲に対していかなる限定を構成するものではない。
図6に示すように、コンピュータシステム600は、読み取り専用メモリ(ROM)602に記憶されるプログラムまたは記憶部608からランダムアクセスメモリ(RAM)603にロードされるプログラムに基づいて、様々な適切な動作および処理を実行できるプロセッサ(例えば、CPU、中央処理装置)601を含む。RAM603には、システム600の動作に必要な様々なプログラムおよびデータが記憶されてもよい。プロセッサ601、ROM602およびRAM603は、バス604を介して互いに接続されている。入力/出力(I/O)インターフェース605もバス604に接続されている。
I/Oインターフェース605には、キーボード、マウスなどの入力部606と、陰極線管(CRT)、液晶ディスプレイ(LCD)、スピーカなどの出力部607と、ハードディスクなどの記憶部608と、LANカード、モデムなどのネットワークインターフェースカードの通信部609とを含む複数のコンポーネントが接続されている。通信部609は、インターネットなどのネットワークを介して通信処理を行う。ドライブ610も必要に応じてI/Oインターフェース605に接続される。ドライブ610には、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどのリムーバブルメディア611が必要に応じてインストールされ、そこから読み出されたコンピュータプログラムが必要に応じて記憶部608にインストールされる。
特に、本開示の実施形態によれば、上記のフローを参照しながら説明したプロセスをコンピュータソフトウェアプログラムとして実装することができる。例えば、本開示の実施形態はコンピュータプログラム製品を含み、それは、コンピュータ可読媒体に記憶されるコンピュータプログラムを含み、当該コンピュータプログラムはフローに示す方法を実行するためのプログラムコードを含む。このような実施形態において、当該コンピュータプログラムは通信部609によってネットワークからダウンロードおよびインストールされ、および/またはリムーバブルメディア611からインストールされることができる。当該コンピュータプログラムはプロセッサ601によって実行される場合、本出願の方法に限定された上記機能を実行する。
本出願のコンピュータ可読媒体は、コンピュータ可読信号媒体、またはコンピュータ可読記憶媒体であってもよいし、または上記両者の任意の組み合わせであってもよいことを理解されたい。コンピュータ可読記憶媒体は、例えば、電気、磁気、光、電磁、赤外線または半導体のシステム、装置、またはデバイス、またはそれらの任意の組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例は、一つ以上の導線を有する電気コネクタ、ポータブルコンピュータ磁気ディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROMまたはフラッシュメモリ)、光ファイバ、ポータブルコンパクトリードオンリーメモリ(CD-ROM)、光学記憶部品、磁気記憶部品、または上記の任意の適当な組み合わせを含むことができるが、これらに限定されない。本出願において、コンピュータ可読記憶媒体はプログラムを含むか記憶する任意の有形媒体であってもよく、当該プログラムはコマンド実行システム、装置、または部品によって使用し、またはそれらと組み合わせて使用することができる。本出願において、コンピュータ可読信号媒体は、ベースバンドにおいて、またはキャリアの一部として伝播されるデータ信号を含むことができ、その中にコンピュータが可読なプログラムコードが保持される。このような伝播されるデータ信号は複数種の形態を用いることができ、電磁気信号、光信号、または上記の任意の適当な組み合わせを含むが、これらに限定されない。コンピュータ可読信号媒体は、さらにコンピュータ可読記憶媒体以外の任意のコンピュータ可読媒体であってもよく、当該コンピュータ可読媒体は、コマンド実行システム、装置、または部品によって使用し、またはそれらと組み合わせて使用されるプログラムを送信、伝播または伝送することができる。コンピュータ可読媒体に含まれるプログラムコードは任意の適当な媒体によって伝送でき、無線、電線、光ファイバーケーブル、RFなど、または上記の任意の適当な組み合わせを含むが、これらに限定されない。
一つ以上のプログラミング言語またはそれらの組み合わせによって本出願の動作を実行するためのコンピュータプログラムコードを書き、プログラミング言語はJava、Smalltalk、C++などのオブジェクト指向のプログラミング言語を含み、さらに「C」プログラミング言語または類似のプログラミング言語などの通常の手続き型プログラミング言語を含む。プログラムコードはユーザのコンピュータ上で完全に実行され、ユーザのコンピュータ上で部分的に実行され、独立するパッケージとして実行され、一部がユーザのコンピュータ上で実行され一部がリモートコンピュータ上で実行され、またはリモートコンピュータやサーバ上で完全に実行されることができる。リモートコンピュータに関する場合に、リモートコンピュータはローカルエリアネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークによってユーザのコンピュータに接続されてよく、或いは、外部のコンピュータに接続されてよい(例えば、インターネットサービスプロバイダを利用してインターネットによって接続される)。
図面におけるフローチャートとブロック図は、本出願の各実施形態による装置、方法およびコンピュータプログラム製品の実現可能なアーキテクチャ、機能および動作を図示する。この点に関して、フローチャートまたはブロック図内の各ブロックはモジュール、プログラムセグメント、またはコードの一部を表してよく、当該モジュール、プログラムセグメント、またはコードの一部は一つ以上の規定する論理機能を実現するために用いられる実行可能なコマンドを含む。いくつかの代替としての実現において、ブロックに付けられる機能は、図面に付けられる順番と違う順番に従って実現されることも注意すべきである。例えば、二つの連続的に示されるブロックは、実際には、基本的に並列的に実行してもよいし、時には逆の順で実行させてもよいし、それは係る機能によって確定する。注意すべきことは、ブロック図および/または流れ図内の各ブロック、およびブロック図および/または流れ図内のブロックの組み合わせは、規定する機能または動作を実行する専用のハードウェアに基づくシステムによって実現でき、専用のハードウェアとコンピュータコマンドとの組み合わせによって実現できることである。
本出願の実施形態に記載されたユニットはソフトウェアによって実現可能であり、ハードウェアによって実現可能である。記載されたユニットはプロセッサ内に設置されてもよいし、例えば、第1確定ユニット、移行ユニットおよび共有ユニットを含むプロセッサであると記載されてもよい。それらのユニットの名称は、ある状況で、当該ユニットそのものに対する制限を構成するものではなく、例えば、共有ユニットは、さらに、「ターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する同種の仮想マシンのメモリ共有を実現するユニットである」のように記載することもできる。
別の態様として、本出願はまたコンピュータ可読媒体を提供し、当該コンピュータ可読媒体は上記実施形態に記載されたデバイスに含まれるものであってもよく、単独に存在し、当該デバイスに組み立てられていないものであってもよい。上記コンピュータ可読媒体には一つまたは複数のプログラムが格納され、上記一つまたは複数のプログラムが当該装置によって実行される場合、当該デバイスは、仮想マシンセット内の仮想マシンを監視し、仮想マシンセットにおける、同じメモリページを有する仮想マシンを表す同種の仮想マシンを特定し、同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンをターゲットホストマシンに移行させ、ターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行って、同じメモリページに対する同種の仮想マシンのメモリ共有を実現する。
上述の記載は本出願の好ましい実施形態および運用する技術原理についての説明に過ぎない。当業者であれば、本出願に係る発明の範囲は、上述の技術的特徴の特定の組み合わせによって形成された技術的解決手段に限定されず、また、上述の発明の構想から逸脱せず、上述の技術的特徴またはその同等特徴の任意の組み合わせによって形成された他の技術的解決手段も含むものであることを理解すべきである。例えば、上述の特徴を本出願により開示された(これに限定されない)類似する機能を有する技術的特徴と互いに置き換えることによって形成された技術的解決手段が挙げられる。
第5の態様において、本出願の実施形態は、第1の態様におけるいずれかの実施形態に記載の仮想マシンのメモリ共有方法をプロセッサに実行させるコンピュータプログラムを提供する。

Claims (18)

  1. 仮想マシンのメモリ共有方法であって、
    仮想マシンセット内の仮想マシンを監視し、同じメモリページを有する仮想マシンを表すための前記仮想マシンセット内の同種の仮想マシンを特定するステップと、
    前記同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンをターゲットホストマシンに移行させるステップと、
    前記ターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する前記同種の仮想マシンのメモリ共有を実現するステップと、を含む仮想マシンのメモリ共有方法。
  2. 前記同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンをターゲットホストマシンに移行させるステップは、
    前記同種の仮想マシンのアプリケーションに高可用性要件があるか否かを判断するステップと、
    前記同種の仮想マシンのアプリケーションに高可用性要件があると判定されたことに応じて、前記同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンを異なるターゲットホストマシンに移行させるステップと、を含む請求項1に記載の仮想マシンのメモリ共有方法。
  3. 前記同種の仮想マシンのアプリケーションに高可用性要件があると判定されたことに応じて、前記同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンを異なるターゲットホストマシンに移行させるステップは、
    前記同種の仮想マシンのアプリケーションに高可用性要件があると判定されたことに応じて、前記高可用性要件の高可用性レベルを確定するステップと、
    前記高可用性レベルに基づいて、ターゲットホストマシンの数を決定するステップと、
    前記同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンを、前記数のターゲットホストマシンに移行させるステップと、を含む請求項2に記載の仮想マシンのメモリ共有方法。
  4. 前記ターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する前記同種の仮想マシンのメモリ共有を実現するステップは、
    同じターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する前記同種の仮想マシンのメモリ共有を実現するステップを含む、請求項2に記載の仮想マシンのメモリ共有方法。
  5. 前記同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンをターゲットホストマシンに移行させるステップは、
    同じメモリページの数が所定の閾値を超えた仮想マシンにおいて、第1の所定属性に適合する同じメモリページに対するメモリ圧縮動作によって圧縮されたメモリが圧縮閾値を超えたか否かを判断するステップと、
    前記メモリ圧縮動作によって圧縮されたメモリが前記圧縮閾値を超えたと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、前記第1の所定属性に適合する同じメモリページに対応する仮想マシンを前記ターゲットホストマシンに移行させるステップと、を含む請求項1に記載の仮想マシンのメモリ共有方法。
  6. 前記メモリ圧縮動作によって圧縮されたメモリが前記圧縮閾値を超えていないと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、前記第1の所定属性に適合する同じメモリページに対応する仮想マシンと、第2の所定属性に適合する同じメモリページに対応する仮想マシンとを前記ターゲットホストマシンに移行させるステップをさらに含む請求項5に記載の仮想マシンのメモリ共有方法。
  7. 仮想マシンセット内の仮想マシンを監視し、前記仮想マシンセット内の同種の仮想マシンを特定するステップは、
    ハッシュ値比較アルゴリズムにより、前記仮想マシンセットにおける同じメモリページが含まれる同種の仮想マシンと、前記同種の仮想マシンにおける同じメモリページの数とを確定するステップを含む請求項1に記載の仮想マシンのメモリ共有方法。
  8. 仮想マシンセット内の仮想マシンを監視し、前記仮想マシンセット内の同種の仮想マシンを特定するステップの前に、
    メモリ共有を行うか否かを表すコンフィギュレーションスイッチの状態を確定するステップをさらに含み、
    仮想マシンセット内の仮想マシンを監視し、前記仮想マシンセット内の同種の仮想マシンを特定するステップは、
    前記コンフィギュレーションスイッチがオン状態であると判定されたことに応じて、前記仮想マシンセット内の仮想マシンを監視し、前記仮想マシンセット内の同種の仮想マシンを特定するステップを含む請求項1に記載の仮想マシンのメモリ共有方法。
  9. 仮想マシンセット内の仮想マシンを監視し、同じメモリページを有する仮想マシンを表すための前記仮想マシンセット内の同種の仮想マシンを特定するように構成される第1確定ユニットと、
    前記同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンをターゲットホストマシンに移行させるように構成される移行ユニットと、
    前記ターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する前記同種の仮想マシンのメモリ共有を実現するように構成される共有ユニットと、を備える仮想マシンのメモリ共有装置。
  10. 前記移行ユニットは、さらに、
    前記同種の仮想マシンのアプリケーションに高可用性要件があるか否かを判断し、前記同種の仮想マシンのアプリケーションに高可用性要件があると判定されたことに応じて、前記同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンを異なるターゲットホストマシンに移行させるように構成される請求項9に記載の仮想マシンのメモリ共有装置。
  11. 前記移行ユニットは、さらに、
    前記同種の仮想マシンのアプリケーションに高可用性要件があると判定されたことに応じて、前記高可用性要件の高可用性レベルを確定し、前記高可用性レベルに基づいて、ターゲットホストマシンの数を決定し、前記同種の仮想マシンのうちの同じメモリページの数が所定の閾値を超えた仮想マシンを前記数のターゲットホストマシンに移行させるように構成される請求項10に記載の仮想マシンのメモリ共有装置。
  12. 前記共有ユニットは、さらに、
    同じターゲットホストマシンにおける同種の仮想マシンに対してメモリ圧縮を行い、同じメモリページに対する前記同種の仮想マシンのメモリ共有を実現するように構成される請求項10に記載の仮想マシンのメモリ共有装置。
  13. 前記移行ユニットは、さらに、
    同じメモリページの数が所定の閾値を超えた仮想マシンにおいて、第1の所定属性に適合する同じメモリページに対するメモリ圧縮動作によって圧縮されたメモリが圧縮閾値を超えたか否かを判断し、前記メモリ圧縮動作によって圧縮されたメモリが前記圧縮閾値を超えたと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、前記第1の所定属性に適合する同じメモリページに対応する仮想マシンを前記ターゲットホストマシンに移行させるように構成される請求項9に記載の仮想マシンのメモリ共有装置。
  14. 前記移行ユニットは、さらに、
    前記メモリ圧縮動作によって圧縮されたメモリが前記圧縮閾値を超えていないと判定されたことに応じて、同じメモリページの数が所定の閾値を超えた仮想マシンのうち、前記第1の所定属性に適合する同じメモリページに対応する仮想マシンと、第2の所定属性に適合する同じメモリページに対応する仮想マシンとを前記ターゲットホストマシンに移行させるように構成される請求項13に記載の仮想マシンのメモリ共有装置。
  15. 前記第1確定ユニットは、さらに、
    ハッシュ値比較アルゴリズムにより、前記仮想マシンセットにおける同じメモリページが含まれる同種の仮想マシンと、前記同種の仮想マシンにおける同じメモリページの数とを確定するように構成される請求項9に記載の仮想マシンのメモリ共有装置。
  16. メモリ共有を行うか否かを表すコンフィギュレーションスイッチの状態を確定するように構成される第2確定ユニットをさらに備え、
    前記第1確定ユニットは、さらに、
    前記コンフィギュレーションスイッチがオン状態であると判定されたことに応じて、前記仮想マシンセット内の仮想マシンを監視し、前記仮想マシンセット内の同種の仮想マシンを特定するように構成される請求項9に記載の仮想マシンのメモリ共有装置。
  17. プロセッサによって実行される場合、請求項1~8のいずれか1項に記載の仮想マシンのメモリ共有方法を実現するコンピュータプログラムが格納されているコンピュータ可読媒体。
  18. 少なくとも一つのプロセッサと、少なくとも一つのプログラムが格納されているメモリと、を備える電子機器であって、
    前記少なくとも一つのプログラムが前記少なくとも一つのプロセッサによって実行される場合、前記少なくとも一つのプロセッサに請求項1~8のいずれか1項に記載の仮想マシンのメモリ共有方法を実行させる電子機器。
JP2023540882A 2021-03-26 2022-01-05 仮想マシンのメモリ共有方法および装置 Pending JP2024506131A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202110324549.6A CN113076175B (zh) 2021-03-26 2021-03-26 用于虚拟机的内存共享方法及装置
CN202110324549.6 2021-03-26
PCT/CN2022/070263 WO2022199206A1 (zh) 2021-03-26 2022-01-05 用于虚拟机的内存共享方法及装置

Publications (1)

Publication Number Publication Date
JP2024506131A true JP2024506131A (ja) 2024-02-09

Family

ID=76610391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023540882A Pending JP2024506131A (ja) 2021-03-26 2022-01-05 仮想マシンのメモリ共有方法および装置

Country Status (4)

Country Link
US (1) US20240061701A1 (ja)
JP (1) JP2024506131A (ja)
CN (1) CN113076175B (ja)
WO (1) WO2022199206A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113076175B (zh) * 2021-03-26 2022-09-30 北京汇钧科技有限公司 用于虚拟机的内存共享方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8631405B2 (en) * 2010-02-26 2014-01-14 Red Hat Israel, Ltd. Identification and placement of new virtual machines based on similarity of software configurations with hosted virtual machines
US9317314B2 (en) * 2010-06-29 2016-04-19 Microsoft Techology Licensing, Llc Techniques for migrating a virtual machine using shared storage
CN103019884B (zh) * 2012-11-21 2015-07-01 北京航空航天大学 基于虚拟机快照的内存页去重方法及装置
CN104050008B (zh) * 2013-03-15 2018-01-23 中兴通讯股份有限公司 一种内存超分配管理系统及方法
CN105786585B (zh) * 2014-12-15 2019-01-29 中国电信股份有限公司 在线迁移内存数据的系统和方法
CN108399101B (zh) * 2017-02-06 2021-03-16 腾讯科技(深圳)有限公司 资源调度的方法、装置和系统
CN111651236A (zh) * 2020-05-11 2020-09-11 腾讯科技(深圳)有限公司 虚拟机内存优化处理方法及相关装置
CN111708653B (zh) * 2020-05-29 2023-08-08 北京百度网讯科技有限公司 内存故障处理方法、装置、电子设备和存储介质
CN113076175B (zh) * 2021-03-26 2022-09-30 北京汇钧科技有限公司 用于虚拟机的内存共享方法及装置

Also Published As

Publication number Publication date
CN113076175A (zh) 2021-07-06
WO2022199206A1 (zh) 2022-09-29
WO2022199206A9 (zh) 2023-08-17
CN113076175B (zh) 2022-09-30
US20240061701A1 (en) 2024-02-22

Similar Documents

Publication Publication Date Title
US10735509B2 (en) Systems and methods for synchronizing microservice data stores
US9075856B2 (en) Systems and methods for distributing replication tasks within computing clusters
US20190235979A1 (en) Systems and methods for performing computing cluster node switchover
US10834226B2 (en) Live migration of containers based on geo-location
CN105872016B (zh) 一种桌面云中虚拟机的运行方法
US8375200B2 (en) Embedded device and file change notification method of the embedded device
US10983822B2 (en) Volume management by virtual machine affiliation auto-detection
CN102938784A (zh) 应用于分布式存储系统中的数据存储方法和系统
US11797494B2 (en) Snapshot management in distributed file systems
CN110781159B (zh) Ceph目录文件信息读取方法、装置、服务器及存储介质
US10326826B1 (en) Migrating an on premises workload to a web services platform
CN111309443A (zh) 物联网设备系统的虚拟化方法、装置、设备及存储介质
CN111338834A (zh) 数据存储方法和装置
CN109254873B (zh) 数据备份方法、相关装置及系统
CN111225003B (zh) 一种nfs节点配置方法和装置
US8621260B1 (en) Site-level sub-cluster dependencies
WO2017083313A1 (en) Systems and methods for coordinating data caching on virtual storage appliances
JP2024506131A (ja) 仮想マシンのメモリ共有方法および装置
US8874628B1 (en) Systems and methods for projecting hierarchical storage management functions
US11275518B2 (en) System and method for implementing heterogeneous media types with raid
CN111767169A (zh) 数据处理方法、装置、电子设备及存储介质
US10705752B2 (en) Efficient data migration in hierarchical storage management system
US11188393B1 (en) Systems and methods for performing load balancing and distributed high-availability
US11321205B2 (en) Enterprise-scale time series graphite backend infrastructure
CN114661420A (zh) 基于Kubernetes容器平台的应用保护方法、装置及系统

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230704

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230704

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20231127