(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-29
(45)【発行日】2023-07-07
(54)【発明の名称】仮想マシンスケジューリング方法および装置
(51)【国際特許分類】
G06F 11/34 20060101AFI20230630BHJP
G06F 9/455 20180101ALI20230630BHJP
G06F 9/50 20060101ALI20230630BHJP
【FI】
G06F11/34 142
G06F9/455 150
G06F9/50 120A
(21)【出願番号】P 2020555183
(86)(22)【出願日】2019-04-01
(86)【国際出願番号】 CN2019080803
(87)【国際公開番号】W WO2019196692
(87)【国際公開日】2019-10-17
【審査請求日】2022-03-15
(31)【優先権主張番号】201810312074.7
(32)【優先日】2018-04-09
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】510330264
【氏名又は名称】アリババ・グループ・ホールディング・リミテッド
【氏名又は名称原語表記】ALIBABA GROUP HOLDING LIMITED
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ジョンシオン ティエン
(72)【発明者】
【氏名】ハイホン シュー
(72)【発明者】
【氏名】ボー ジュー
(72)【発明者】
【氏名】ジュンジエ ツァイ
【審査官】佐々木 洋
(56)【参考文献】
【文献】米国特許出願公開第2016/0162308(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
G06F 11/28-11/36
G06F 9/455
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
仮想マシンスケジューリング方法であって、
予測結果を取得するために、次の期間に仮想マシンが必要とするリソースデータを予測することであって、前記リソースデータは、プロセッサリソース、プロセッサ競合の回数、キャッシュミスの数、および消費電力量の使用率のうちの少なくとも1つを含む、予測することと、
候補ホストマシンの使用済みリソースデータおよび使用可能なリソースデータを取得することと、
各候補ホストマシンの重ね合わせ結果を取得するために、前記予測結果を各候補ホストマシンの使用済みリソースデータに追加することと、
各候補ホストマシンの前記重ね合わせ結果を各ホストマシンの使用可能なリソースデータと個別に比較し、前記候補ホストマシンから前記仮想マシンに対応するターゲットホストマシンを選択することと、を含
み、
前記期間は複数の時間セグメントを含み、前記予測結果を取得するために、前記次の期間に前記仮想マシンが必要とする前記リソースデータを予測することは、
予測モデルを取得することであって、前記予測モデルは、異なる属性パラメータを有する仮想マシンの予測結果とプリセット時間セグメントとの対応関係を表すために使用され、前記属性パラメータは、前記仮想マシンのID、仕様、およびアプリケーションタイプを含む、ことと、
前記仮想マシンの属性パラメータを前記予測モデルに入力することと、
前記予測モデルから出力された前記仮想マシンの予測結果を受信することと、を含む、方法。
【請求項2】
前記仮想マシンの前記属性パラメータを前記予測モデルに入力する前に、前記方法は、
前記予測モデルの信頼度およびプリセット信頼閾値を取得することと、
前記予測モデルの前記信頼度が前記信頼閾値以上である場合に、前記仮想マシンの前記属性パラメータを前記予測モデルに入力する
ことを開始することと、
前記予測モデルの前記信頼度が前記信頼閾値未満である場合に、前記仮想マシンの仮想プロセッサリソースおよび仮想プロセッサ使用率に基づいて、前記次の期間に前記仮想マシンが必要とするリソースデータを予測することと、をさらに含む、請求項
1に記載の方法。
【請求項3】
前記予測モデルを取得することは、
サンプルデータを取得することであって、前記サンプルデータは、複数のサンプル仮想マシンの属性情報およびプリセット時間セグメントにおける前記サンプル仮想マシンの過去リソースデータを含む、取得することと、
モデルトレーニングを通じて前記予測モデルを取得することと、を含む、請求項
1に記載の方法。
【請求項4】
前記プリセット時間セグメントにおける前記サンプル仮想マシンの前記リソースデータを取得することは、
プリセットサンプリング時間に従って、前記仮想マシンの複数の仮想プロセッサの平均リソースデータを収集することであって、前記プリセット時間セグメントは、複数のサンプリング時間を含む、収集することと、
前記プリセット時間セグメントにおいて最大である平均リソースデータを、前記プリセット時間セグメントの前記過去リソースデータとして決定することと、を含む、請求項
3に記載の方法。
【請求項5】
前記期間は複数の時間セグメントを含み、前記リソースデータが前記プロセッサリソースであるとき、前記候補ホストマシンの前記使用済みリソースデータを取得することは、
プリセット時間セグメントにおいて候補ホストマシン上で実行されている各仮想マシンが使用するリソースを取得することと、
前記プリセット時間セグメントにおいて各仮想マシンが使用する前記リソースの合計を、前記プリセット時間セグメントにおける前記ホストマシンの使用済みプロセッサリソースとして決定することと、を含む、請求項1に記載の方法。
【請求項6】
前記候補ホストマシンの前記使用可能なリソースデータを取得することは、
ホストマシンの全プロセッサリソースおよびプリセット使用閾値を取得することであって、前記ホストマシンの前記全プロセッサリソースは、前記ホストマシンの物理コアの数とプリセット定数との積である、取得することと、
前記ホストマシンの前記全プロセッサリソースと前記プリセット使用閾値との前記積を、前記候補ホストマシンの前記使用可能なリソースデータとして決定することと、を含む、請求項
5に記載の方法。
【請求項7】
前記プリセット時間セグメントにおいて前記候補ホストマシン上で実行されている各仮想マシンが使用する前記リソースを取得することは、
それぞれの仮想マシンの仮想プロセッサの数および前記候補ホストマシンによって作成された仮想プロセッサの総数、各プリセット時間セグメントにおける仮想プロセッサの平均使用率、および前記候補ホストマシンの物理コアの数を取得することと、
前記それぞれの仮想マシンの仮想プロセッサの前記数と前記候補ホストマシンによって作成された仮想プロセッサの前記総数との比率を取得することと、
前記候補ホストマシンの物理コアの前記数と前記候補ホストマシンによって作成された仮想プロセッサの前記総数との間の最小値を取得することと、
前記比率、仮想プロセッサの前記平均使用率、および前記最小
値の積を計算することと、
前記積を、前記プリセット時間セグメントでの前記それぞれの仮想マシンの前記プロセッサリソースとして決定することと、を含む、請求項
5に記載の方法。
【請求項8】
前記期間は複数のプリセット時間セグメントを含み、各候補ホストマシンの前記重ね合わせ結果を各ホストマシンの前記使用可能なリソースデータと個別に比較し、前記候補ホストマシンから前記仮想マシンに対応する前記ターゲットホストマシンを選択することは、
前記候補ホストマシンから条件(複数可)を満たす候補ホストマシン(複数可)をフィルタリングおよび選択することであって、前記条件(複数可)は、各プリセット時間セグメントの重ね合わせ結果が前記ホストマシン(複数可)の使用可能なリソースデータを超えないことを含む、フィルタリングおよび選択することと、
条件(複数可)を満たす前記候補ホストマシン(複数可)を、前記仮想マシンに対応する前記ターゲットホストマシンとして決定することと、を含む、請求項1に記載の方法。
【請求項9】
条件(複数可)を満たす候補ホストマシンが複数存在するとき、前記条件(複数可)を満たす前記候補ホストマシン(複数可)を、前記仮想マシンに対応する前記ホストマシンとして決定することは、
各リソースデータに対応する重み値を取得することと、前記条件(複数可)を満たす前記候補ホストマシン(複数可)に対応するそれぞれの重み付け結果(複数可)を取得するために、重み値(複数可)で重ね合わせ結果(複数可)に重み付けすることと、
重み付け結果が最小である候補ホストマシンを、前記仮想マシンに対応する前記ターゲットホストマシンとして決定することと、を含む、請求項
8に記載の方法。
【請求項10】
各候補ホストマシンの前記重ね合わせ結果を各ホストマシンの前記使用可能なリソースデータと個別に比較し、前記候補ホストマシンから前記仮想マシンに対応する前記ターゲットホストマシンを選択した後、前記方法は、
前記仮想マシンを、前記仮想マシンに対応する前記ターゲットホストマシンに移行することをさらに含む、請求項1に記載の方法。
【請求項11】
前記仮想マシンが新しく作成された仮想マシンであるとき、前記予測結果を取得するために、前記次の期間に前記仮想マシンが必要とする前記リソースデータを予測することは、
前記新しく作成された仮想マシンの識別子および仕様を取得することと、
前記新しく作成された仮想マシンの同じ識別子および/または同じ仕様を有するターゲット仮想マシンを検索することと、
前記ターゲット仮想マシンの予測結果が、前記新しく作成された仮想マシンの予測結果であると決定することと、を含む、請求項
1に記載の方法。
【請求項12】
仮想マシンスケジューリング装置であって、
次の期間に仮想マシンが必要とするリソースデータを予測して予測結果を取得するように構成された予測モジュールであって、前記リソースデータは、プロセッサリソース、プロセッサ競合の回数、キャッシュミスの数、および消費電力量の使用率のうちの少なくとも1つを含む、予測モジュールと、
候補ホストマシンの使用済みリソースデータおよび使用可能なリソースデータを取得するように構成された取得モジュールと、
前記予測結果を各候補ホストマシンの
使用済みリソースデータに追加して、各候補ホストマシンの重ね合わせ結果を取得するように構成された重ね合わせモジュールと、
各候補ホストマシンの前記重ね合わせ結果を各ホストマシンの使用可能なリソースデータと個別に比較し、前記候補ホストマシンから前記仮想マシンに対応するターゲットホストマシンを選択するように構成された比較モジュールと、を含
み、
前記期間は複数の時間セグメントを含み、前記次の期間に前記仮想マシンが必要とする前記リソースデータを予測して前記予測結果を取得することは、
予測モデルを取得することであって、前記予測モデルは、異なる属性パラメータを有する仮想マシンの予測結果とプリセット時間セグメントとの対応関係を表すために使用され、前記属性パラメータは、前記仮想マシンのID、仕様、およびアプリケーションタイプを含む、取得することと、
前記仮想マシンの属性パラメータを前記予測モデルに入力することと、
前記予測モデルから出力された前記仮想マシンの予測結果を受信することと、を含む、仮想マシンスケジューリング装置。
【請求項13】
記憶されたプログラムを含む記憶媒体であって、前記記憶媒体が配置されているデバイスが、前記プログラムが実行されているとき、
予測結果を取得するために、次の期間に仮想マシンが必要とするリソースデータを予測するステップであって、前記リソースデータは、プロセッサリソース、プロセッサ競合の回数、キャッシュミスの数、および消費電力量の使用率のうちの少なくとも1つを含む
、ステップと、
候補ホストマシンの使用済みリソースデータおよび使用可能なリソースデータを取得するステップと、
各候補ホストマシンの重ね合わせ結果を取得するために、前記予測結果を各候補ホストマシンの使用済みリソースデータに追加するステップと、
各候補ホストマシンの前記重ね合わせ結果を各ホストマシンの使用可能なリソースデータと個別に比較し、前記候補ホストマシンから前記仮想マシンに対応するターゲットホストマシンを選択するステップと、を行うように制御され
、
前記期間は複数の時間セグメントを含み、前記予測結果を取得するために、前記次の期間に前記仮想マシンが必要とする前記リソースデータを予測するステップは、
予測モデルを取得するステップであって、前記予測モデルは、異なる属性パラメータを有する仮想マシンの予測結果とプリセット時間セグメントとの対応関係を表すために使用され、前記属性パラメータは、前記仮想マシンのID、仕様、およびアプリケーションタイプを含む、ステップと、
前記仮想マシンの属性パラメータを前記予測モデルに入力するステップと、
前記予測モデルから出力された前記仮想マシンの予測結果を受信するステップと、を含む、記憶媒体。
【請求項14】
プロセッサと、
前記プロセッサに結合され、
予測結果を取得するために、次の期間に仮想マシンが必要とするリソースデータを予測する処理ステップであって、前記リソースデータは、プロセッサリソース、プロセッサ競合の回数、キャッシュミスの数、および消費電力量の使用率のうちの少なくとも1つを含む、予測する処理ステップと、
候補ホストマシンの使用済みリソースデータおよび使用可能なリソースデータを取得する処理ステップと、
各候補ホストマシンの重ね合わせ結果を取得するために、前記予測結果を各候補ホストマシンの使用済みリソースデータに追加する処理ステップと、
各候補ホストマシンの前記重ね合わせ結果を各ホストマシンの使用可能なリソースデータと個別に比較し、前記候補ホストマシンから前記仮想マシンに対応するターゲットホストマシンを選択する処理ステップと、を処理するための命令を前記プロセッサに提供するように構成されたメモリと、を含
み、
前記期間は複数の時間セグメントを含み、前記予測結果を取得するために、前記次の期間に前記仮想マシンが必要とする前記リソースデータを予測する前記処理ステップは、
予測モデルを取得する処理ステップであって、前記予測モデルは、異なる属性パラメータを有する仮想マシンの予測結果とプリセット時間セグメントとの対応関係を表すために使用され、前記属性パラメータは、前記仮想マシンのID、仕様、およびアプリケーションタイプを含む、処理ステップと、
前記仮想マシンの属性パラメータを前記予測モデルに入力する処理ステップと、
前記予測モデルから出力された前記仮想マシンの予測結果を受信する処理ステップと、を含む、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2018年4月9日に出願され、「Virtual Machine Scheduling Method and Apparatus」と題された中国出願番号201810312074.7の優先権を主張し、参照によりその全体が本明細書に組み込まれる。
【0002】
本出願は、クラウドコンピューティングの分野に関し、特に、仮想マシンスケジューリング方法および装置に関する。
【背景技術】
【0003】
仮想マシンとは、ソフトウェアによってシミュレートされ、完全に分離された環境で実行される、完全なハードウェアシステム機能を有する完全なコンピュータシステムを指す。仮想マシンを作成するとき、スケジューリングシステムが、仮想マシンのホストマシンを分類する必要がある。仮想マシンが作成された後、仮想マシンがその上で実行されるホストマシンを変更することができる。このようなホストマシンの割り当てプロセスおよびホストマシンの変更プロセスは、仮想マシンのスケジューリングプロセスである。
【0004】
現在、業界におけるクラウドコンピューティングスケジューリングは、通常、機密性の高いサービスおよびバッチジョブのハイブリッドスケジューリングを行う様々な方法を使用して、相互の影響を低減している。アプリケーションが属するカテゴリ、すなわち、計算集約型、キャッシュ集約型、およびメモリ集約型は、ユーザーの画像を使用して分類され、これにより、異なるタイプの仮想マシンに異なるスケジューリング戦略が策定される。
【0005】
しかし、既存のハイブリッドスケジューリングスキームは、バッチ処理アプリケーションが優先レベルを下げる可能性があるという前提に基づいており、問題が発生するとレベルがダウングレードされる。しかし、仮想マシンスケジューリングには優先レベルがない。仮想マシンは同じ優先レベルで作成される。どのマイグレーションもユーザーに特定の影響を与えるため、ホストマシンは、各仮想マシンのそれぞれのピークのためにリソースをリザーブする必要があり、必然的に多くのリソースが無駄になる。
【0006】
既存技術のホストマシンは、各仮想マシンのそれぞれのピークのためにリソースをリザーブする必要があり、多くのリソースが無駄になるという問題につながる。現在、効果的な解決策は提案されていない。
【発明の概要】
【0007】
本発明の実施形態は、仮想マシンをスケジューリングする方法および装置を提供し、既存技術においてホストマシンが各仮想マシンのそれぞれのピークのためにリソースをリザーブする必要があることによって引き起こされるリソースの大きな無駄という技術的問題を少なくとも解決する。
【0008】
本発明の実施形態の一態様によれば、仮想マシンスケジューリング方法が提供され、これは、予測結果を取得するために、次の期間に仮想マシンが必要とするリソースデータを予測することであって、リソースデータは、プロセッサリソース、プロセッサ競合の回数、キャッシュミスの数の数、および消費電力量の使用率のうちの少なくとも1つを含む、予測することと、候補ホストマシンの使用済みリソースデータおよび使用可能なリソースデータを取得することと、各候補ホストマシンの重ね合わせ結果を取得するために、予測結果を各候補ホストマシンの使用済みリソースデータに追加することと、各候補ホストマシンの重ね合わせ結果を各ホストマシンの使用可能なリソースデータと個別に比較し、候補ホストマシンから仮想マシンに対応するターゲットホストマシンを選択することとを含む。
【0009】
本発明の実施形態の別の態様によれば、仮想マシンスケジューリング方法も提供され、これは、予測結果を取得するために、次の期間に仮想マシンが必要とするプロセッサリソースを予測することと、候補ホストマシンの使用済みプロセッサリソースおよび使用可能なプロセッサリソースを取得することと、各候補ホストマシンの重ね合わせ結果を取得するために、予測結果を各候補ホストマシンの使用済みプロセッサリソースに追加することと、各候補ホストマシンの重ね合わせ結果を各候補ホストマシンの使用可能なプロセッサリソースと個別に比較し、候補ホストマシンから仮想マシンに対応するターゲットホストマシンを選択することとを含む。
【0010】
本発明の実施形態の別の態様によれば、仮想マシンスケジューリング装置も提供され、これは、次の期間に仮想マシンが必要とするリソースデータを予測して予測結果を取得するように構成された予測モジュールであって、リソースデータは、プロセッサリソース、プロセッサ競合の回数、キャッシュミスの数、および消費電力量の使用率のうちの少なくとも1つを含む、予測モジュールと、候補ホストマシンの使用済みリソースデータおよび使用可能なリソースデータを取得するように構成された取得モジュールと、予測結果を各候補ホストマシンのリソースデータに追加して、各候補ホストマシンの重ね合わせ結果を取得するように構成された重ね合わせモジュールと、各候補ホストマシンの重ね合わせ結果を各ホストマシンの使用可能なリソースデータと個別に比較し、候補ホストマシンから仮想マシンに対応するターゲットホストマシンを選択するように構成された比較モジュールとを含む。
【0011】
本発明の実施形態の別の態様によれば、仮想マシンスケジューリング装置も提供され、これは、次の期間に仮想マシンが必要とするプロセッサリソースを予測して予測結果を取得するように構成された予測モジュールと、候補ホストマシンの使用済みプロセッサリソースおよび使用可能なプロセッサリソースを取得するように構成された取得モジュールと、予測結果を各候補ホストマシンの使用済みプロセッサリソースに追加して、各候補ホストマシンの重ね合わせ結果を取得するように構成された重ね合わせモジュールと、各候補ホストマシンの重ね合わせ結果を各候補ホストマシンの使用可能なプロセッサリソースと比較し、候補ホストマシンから仮想マシンに対応するターゲットホストマシンを選択するように構成された比較モジュールとを含む。
【0012】
本発明の実施形態の別の態様によれば、記憶媒体も提供される。記憶媒体は、記憶されたプログラムを含み、記憶媒体が配置されているデバイスが、プログラムが実行されているとき、予測結果を取得するために、次の期間に仮想マシンが必要とするリソースデータを予測するステップであって、リソースデータは、プロセッサリソース、プロセッサ競合の回数、キャッシュミスの数、および消費電力量の使用率のうちの少なくとも1つを含む、予測するステップと、候補ホストマシンの使用済みリソースデータおよび使用可能なリソースデータを取得するステップと、各候補ホストマシンの重ね合わせ結果を取得するために、予測結果を各候補ホストマシンの使用済みリソースデータに追加するステップと、各候補ホストマシンの重ね合わせ結果を各ホストマシンの使用可能なリソースデータと個別に比較し、候補ホストマシンから仮想マシンに対応するターゲットホストマシンを選択するステップとを行うように制御される。
【0013】
本発明の実施形態の別の態様によれば、プロセッサも提供される。プロセッサは、プログラムを実行するために使用され、プログラムが実行されているとき、予測結果を取得するために、次の期間に仮想マシンが必要とするリソースデータを予測するステップであって、リソースデータは、プロセッサリソース、プロセッサ競合の回数、キャッシュミスの数、および消費電力量の使用率のうちの少なくとも1つを含む、予測するステップと、候補ホストマシンの使用済みリソースデータおよび使用可能なリソースデータを取得するステップと、各候補ホストマシンの重ね合わせ結果を取得するために、予測結果を各候補ホストマシンの使用済みリソースデータに追加するステップと、各候補ホストマシンの重ね合わせ結果を各ホストマシンの使用可能なリソースデータと個別に比較し、候補ホストマシンから仮想マシンに対応するターゲットホストマシンを選択するステップとが実行される。
【0014】
本発明の実施形態の別の態様によれば、システムも提供され、これは、プロセッサと、プロセッサに結合され、予測結果を取得するために、次の期間に仮想マシンが必要とするリソースデータを予測する処理ステップであって、リソースデータは、プロセッサリソース、プロセッサ競合の回数、キャッシュミスの数、および消費電力量の使用率のうちの少なくとも1つを含む、予測する処理ステップと、候補ホストマシンの使用済みリソースデータおよび使用可能なリソースデータを取得する処理ステップと、各候補ホストマシンの重ね合わせ結果を取得するために、予測結果を各候補ホストマシンの使用済みリソースデータに追加する処理ステップと、各候補ホストマシンの重ね合わせ結果を各ホストマシンの使用可能なリソースデータと個別に比較し、候補ホストマシンから仮想マシンに対応するターゲットホストマシンを選択する処理ステップとを処理するための命令をプロセッサに提供するように構成されたメモリと、を含む。
【0015】
本発明の実施形態では、将来のサイクルにおいて仮想マシンが使用するリソースデータが予測を通じてスケジューリングされる。また、取得された候補ホストマシンの現在使用されているリソースデータおよび使用可能なリソースデータを使用することによって、仮想マシンのどの候補ホストマシンに移行する必要があるか、つまりターゲットホストマシンが決定される。このため、各ホストマシンが各仮想マシンのそれぞれのピークのためにリソースをリザーブする必要なく、仮想マシンのホストマシンをより正確に選択することができ、したがって、リソースの無駄が減り、仮想マシンを異なるホストマシンにできるだけ均等に分散して、物理マシンの安定した負荷バランスが達成される。
【0016】
したがって、本出願の上述の実施形態は、既存技術においてホストマシンが各仮想マシンのそれぞれのピークのためにリソースをリザーブする必要があり、リソースの大きな無駄になるという技術的問題を解決する。
【図面の簡単な説明】
【0017】
本明細書に説明される図面は、本発明のさらなる理解を提供するために使用され、本出願の一部を構成する。本発明の例示的な実施形態およびその説明は、本発明を説明するために使用され、本発明に対する不適切な限定を構成するものではない。
【
図1】仮想マシンスケジューリング方法を実施するために使用されるコンピュータ端末(またはモバイルデバイス)のハードウェア構成を示すブロック図を示す。
【
図2】本出願の第1の実施形態による仮想マシンをスケジューリングする方法のフローチャートである。
【
図3】本出願の第1の実施形態による仮想マシンのマイグレーションの概略図である。
【
図4】本出願の第1の実施形態による仮想マシンの移行前後におけるホストマシンの使用済みリソースの任意選択の変更の概略図である。
【
図5】本出願の第2の実施形態による仮想マシンをスケジューリングする方法のフローチャートである。
【
図6】本出願の第3の実施形態による仮想マシンスケジューリング装置の概略図である。
【
図7】本出願の第4の実施形態による仮想マシンスケジューリング装置の概略図である。
【
図8】本出願の第6の実施形態によるコンピュータ端末の構造ブロック図である。
【発明を実施するための形態】
【0018】
当業者が本発明の解決策をよりよく理解することを可能にするために、本発明の実施形態における技術的解決策を、本発明の実施形態における添付図面を参照して、以下に明確かつ完全に説明する。明らかに、記載される実施形態は、本発明の実施形態の全部ではなく、一部のみを表す。本発明の実施形態に基づいて、当業者によって独創的な努力なしに取得される他のすべての実施形態は、本発明の保護の範囲内にあるものとする。
【0019】
本発明の説明および上記の図面における「第1の」および「第2の」という用語は、類似の対象を区別するために使用され、特定の順番または順序を説明するために使用されるのではないことに留意されたい。このように使用されるデータは、適宜交換可能であり、したがって、本明細書に説明される本発明の実施形態は、本明細書に例示または説明されるもの以外の順番で実装され得ることを理解されたい。加えて、「含む」、「有する」という用語、およびそれらの任意の変形は、非排他的な包括をカバーすることを意図している。例えば、一連のステップまたはユニットを含むプロセス、方法、システム、製品、またはデバイスは、明示的にリストされたステップまたはユニットに必ずしも限定されず、明示的にリストされていないか、またはそのようなプロセス、方法、システム、製品、またはデバイスに固有の他のステップまたはユニットを含んでもよい。
【0020】
まず、本出願の実施形態を説明するプロセスに登場する幾つかの名詞または用語は、以下の解釈に適している。
【0021】
仮想マシン:ソフトウェアによってシミュレートされ、完全に分離された環境で実行される完全なハードウェアシステム機能を有する完全なコンピュータシステムを指す。
【0022】
仮想マシン(VM)スケジューリング:仮想マシンを作成するとき、スケジューリングシステムは、仮想マシンのホストマシンを分類する必要があり、仮想マシンが実行されるホストマシンは、仮想マシンの作成後に変更することができる。ホストマシンを割り当てるプロセスとホストマシンを変更するプロセスとは、仮想マシンをスケジューリングするプロセスである。
【0023】
第1の実施形態
本発明の実施形態によれば、仮想マシンをスケジューリングする方法の一実施形態も提供される。添付図面のフローチャートに示されるステップは、コンピュータ実行可能命令のセットといったコンピュータシステムで実行することができることに留意する必要がある。また、論理的順序がフローチャートに示されているが、場合によっては、ステップは、本明細書に示されるかまたは説明されるものとは異なる順序で行われてもよい。
【0024】
本出願の第1の実施形態において提供される方法の実施形態は、モバイル端末、コンピュータ端末、または同様のコンピューティングデバイス内で実行することができる。
図1は、仮想マシンスケジューリング方法を実施するために使用されるコンピュータ端末(またはモバイルデバイス)のハードウェア構造のブロック図を示す。
図1に示されるように、コンピュータ端末10(またはモバイルデバイス10)は、1つ以上のプロセッサ102(図では102a、102b、…、102nとして示される)(プロセッサ102は、マイクロプロセッサMCUまたはプログラマブルロジックデバイスFPGAなどの処理デバイスを含んでよいが、これらに限定されない)、データを記憶するために使用されるメモリ104、および通信機能のために使用される
伝送デバイス106を含むことができる。さらに、ディスプレイ、入力/出力インターフェース(I/Oインターフェース)、ユニバーサルシリアルバス(USB)ポート(I/Oインターフェースのポートの1つとして含めることができる)、ネットワークインターフェース、電源、および/またはカメラを含むこともできる。当業者は、
図1に示される構造は、例示のみを意図しており、上記の電子デバイスの構造に対する制限として解釈されないことを理解することができる。例えば、コンピュータ端末10はまた、
図1に示されるものよりも多いか、または少ない構成要素を含んでもよく、または
図1に示されるものとは異なる構成を有してもよい。
【0025】
1つ以上のプロセッサ102および/または他のデータ処理回路は、本明細書では一般に「データ処理回路」と呼ばれる場合があることに留意する必要がある。データ処理回路は、全体的または部分的に、ソフトウェア、ハードウェア、ファームウェア、または任意の他の組み合わせとして具体化することができる。さらに、データ処理回路は、単一の独立した処理モジュールであってもよく、またはコンピュータ端末10(またはモバイルデバイス)の他の構成要素のいずれか1つに完全にまたは部分的に統合されてもよい。本出願の実施形態で述べたように、データ処理回路は、一種のプロセッサ制御(例えば、インターフェースに接続された可変抵抗端子経路の選択)として使用される。
【0026】
メモリ104は、本発明の実施形態における仮想マシンスケジューリング方法に対応するプログラム命令/データストレージデバイスなどのソフトウェアプログラムおよびアプリケーションソフトウェアのモジュールを記憶するように構成することができる。プロセッサ(複数可)102は、メモリ104に記憶されているソフトウェアプログラム(複数可)およびモジュール(複数可)によって、すなわち、仮想マシンスケジューリング方法を実施することによって、様々な機能アプリケーションおよびデータ処理を実行する。メモリ104は、高速ランダムアクセスメモリを含んでよく、また、1つ以上の磁気ストレージデバイス、フラッシュメモリ、または他の不揮発性ソリッドステートメモリなどの不揮発性メモリも含んでよい。幾つかの例では、メモリ104はさらに、プロセッサ(複数可)102に対して遠隔に配備されたストレージデバイスを含んでよく、これらのストレージデバイスは、ネットワークを介してコンピュータ端末10に接続されてよい。上記ネットワークの例には、インターネット、企業イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、およびこれらの組み合わせが含まれるが、これらに限定されない。
【0027】
伝送デバイス106は、ネットワークを介してデータを受信または送信するように構成されている。ネットワークの具体例には、コンピュータ端末10の通信プロバイダによって提供される無線ネットワークが含まれてよい。一例では、伝送デバイス106は、インターネットと通信するために基地局を介して他のネットワークデバイスに接続することができるネットワークアダプター(ネットワークインターフェースコントローラ、NIC)を含む。一例では、伝送デバイス106は、無線でインターネットと通信するために使用される無線周波数(RF)モジュールであってよい。
【0028】
ディスプレイは、例えば、ユーザーがコンピュータ端末10(またはモバイルデバイス)のユーザインターフェースと対話することを可能にし得るタッチスクリーン液晶ディスプレイ(LCD)であってよい。
【0029】
本明細書では、幾つかの代替実施形態において、
図1に示されるコンピュータ端末(またはモバイルデバイス)は、ハードウェア要素(回路を含む)およびソフトウェア要素(コンピュータ可読媒体に記憶されたコンピュータコードを含む)、またはハードウェアおよびソフトウェア構成要素の組み合わせを含んでよいことに留意されたい。
図1は、具体的な実施形態の一例に過ぎず、上述のようにコンピュータデバイス(またはモバイルデバイス)に存在していてよい構成要素のタイプを示すことを意図していることに留意されたい。
【0030】
上記動作環境において、本出願は、
図2に示されるような仮想マシンスケジューリング方法のフローチャートを提供する。
図2は、本発明の第1の実施形態による仮想マシンをスケジューリングする方法のフローチャートである。
【0031】
ステップS21:次の期間に仮想マシンが必要とするリソースデータを予測して予測結果を取得する。ここで、リソースデータは、プロセッサリソース、プロセッサ競合の回数、キャッシュミスの数、および消費電力量の使用率のうちの少なくとも1つを含む。
【0032】
具体的には、仮想マシンは、新しく作成された仮想マシンか、または移行する必要でありうる仮想マシンであってよい。例えば、仮想マシンを実行しているホストマシンに障害が発生したとき、または仮想マシンを実行しているホストマシンが過負荷になったとき、仮想マシンを移行させて仮想マシンの安定した動作を確保する必要がある。
【0033】
上記プロセッサはCPUであってよく、CPUの使用率に応じてCPUリソースを決定することができる。CPUの使用率は、CPUが使用されている度合いであり、百分率で表すことができる。仮想マシンでは、プロセッサリソースは仮想プロセッサ(VCPU)リソースである。ホストマシンでは、プロセッサリソースは物理CPUリソースである。プロセッサ競合の数とは、仮想マシン(複数可)のスレッドがホストマシンのカーネル内で所定の時間を超えて待機する回数を指す。キャッシュミスの数は、CPUキャッシュミスであり、仮想マシンがホストマシンのキャッシュを読み取るときのミスの数を指すために使用される。
【0034】
代替実施形態では、上記のための期間は7日であってよく、次の期間において仮想マシンが必要とするリソースデータは、仮想マシンの過去リソースデータを取得することによって予測することができる。
【0035】
例として、企業の応用シナリオを使用する。企業は従業員ごとに仮想マシンアカウントを割り当て、従業員はそのアカウントを使用して仮想マシンオフィスにログインする。この場合、各従業員が仮想マシンを使用した時間、使用されたCPUリソースなどといったデータには、特定のパターンがある。したがって、仮想マシンのリソースデータパターンを、仮想マシンの過去のリソースデータを通じて決定することができ、得られたパターンに従って、仮想マシンが次の期間に必要とするリソースデータを予測することができる。
【0036】
ステップS23:候補ホストマシンの使用済みリソースデータおよび使用可能なリソースデータを取得する。
【0037】
具体的には、候補ホストマシンは、仮想マシンを実行することが許可されているホストマシンであり、複数存在してもよい。企業の応用シナリオを一例としてまだ使用する。企業のホストマシンは、企業の各仮想マシンを実行することが許可されている。したがって、企業の仮想マシンをスケジュールするとき、企業のホストマシンは、候補ホストマシンである。
【0038】
候補ホストマシンの使用済みリソースデータは、候補ホストマシンが使用するCPUリソース、CPU競合の数、キャッシュミスの数、および/または消費電力量の使用率であってよい。候補ホストマシンによって使用されたCPU競合の回数、キャッシュミスの数、および/または消費電力量の使用率は、検出によって取得することができ、候補ホストマシンによって使用されたCPUリソースは、ホストマシン上で実行されているすべての仮想マシンが使用するVCPUリソースによって決定することができる。
【0039】
候補ホストマシンの使用可能なリソースデータとは、候補ホストマシンが仮想マシンに使用を許可するリソースデータを指す。候補ホストマシンは、CPUリソース、CPU競合の所定の回数、キャッシュミスの所定の数、および消費電力の所定の使用率を含んでよい特定のリソースデータを有する。各リソースデータは、対応する使用閾値、すなわち、すべてのリソースデータの一部を占めることが許可されている使用される部分を有してよい。例えば、所定の閾値が80%の場合、仮想マシン(複数可)はホストマシンのすべてのリソースデータの80%を使用することができる。
【0040】
ステップS25:予測結果を各候補ホストマシンの使用済みリソースデータに追加して、各候補ホストマシンの重ね合わせ結果を取得する。
【0041】
上記解決策では、予測結果を候補ホストマシンの使用済みリソースに追加して、仮想マシンが候補ホストマシンに移行された後に候補ホストマシンが必要とするリソースデータを予測する。
【0042】
代替実施形態では、候補ホストマシンのリソースデータを取得した後、仮想マシンの予測結果および対応する候補ホストマシンのリソースデータを別々に追加して重ね合わせ結果を取得する。具体的には、仮想マシンのリソースデータには、仮想マシンが必要とするCPUリソースA1、CPU競合の回数B1、キャッシュミスの数C1、消費電力量の使用率D1が含まれる。候補ホストマシンのリソースデータには、使用済みCPUリソースA2、CPU競合の回数B2、キャッシュミスの数C2、および消費電力量の使用率D2が含まれる。得られる重ね合わせ結果は、A1+A2、B1+B2、C1+C2、およびD1+D2である。
【0043】
ステップS27:各候補ホストマシンの重ね合わせ結果を各ホストマシンの使用可能なリソースデータと比較し、候補ホストマシンから仮想マシンに対応するターゲットホストマシンを選択する。
【0044】
上記ステップS27において、候補ホストマシンの重ね合わせ結果が候補ホストマシンの使用可能なリソースデータを超えるとき、仮想マシンが候補ホストマシンに移行された場合に、候補ホストマシンには仮想マシンの動作をサポートするのに十分なリソースがなく、これにより、候補ホストマシンが過負荷になる可能性があると決定することができる。候補ホストマシンの重ね合わせ結果が候補ホストマシンの使用可能なリソースデータを超えないとき、仮想マシンが候補ホストマシンに移行された場合に、候補ホストマシンには仮想マシンの動作をサポートするのに十分なリソースがあると決定することができる。したがって、各候補ホストマシンの重ね合わせ結果を各ホストマシンの使用可能なリソースデータと比較することによって、仮想マシンの動作をサポートすることができるターゲットホストマシンを候補ホストマシンから選択することができる。
【0045】
代替実施形態では、前の実施形態と組み合わせて、候補ホストマシンを例にとってみる。候補ホストマシンの使用可能なリソースデータは、利用可能なCPUリソースA3、CPU競合の回数B3、およびキャッシュミスの数C3、および消費電力量の使用率D3である。A1+A2<A3、B1+B2<B3、C1+C2<C3、およびD1+D2<D3が満たされる場合、ホストマシンはターゲットホストマシンであると決定される。上記条件のいずれかが満たされない場合、ホストマシンはターゲットホストマシンではないと決定される。
【0046】
前述の実施形態では、解決策は、将来の期間に仮想マシンが使用するリソースデータを予測およびスケジューリングし、候補ホストマシンの現在使用されているリソースデータおよび使用可能なリソースデータを取得して、どの候補ホストマシンに仮想マシンを移行するかが決定される、つまり、ターゲットホストマシンが決定されることに留意する必要がある。この結果として、各ホストマシンが各仮想マシンのそれぞれのピークのためにリソースをリザーブすることを必要とすることなく、仮想マシンのホストマシンをより正確に選択することができるため、リソースの無駄が減り、仮想マシンを異なるホストマシンにできるだけ均等にスケジューリングおよび分散して、物理マシンの安定した負荷バランスを達成することができる。
【0047】
したがって、本出願の前述の実施形態は、既存技術において各仮想マシンのそれぞれのピークのためにリソースをリザーブするホストマシンの必要性によって引き起こされるリソースの大きな無駄という技術的問題を解決する。
【0048】
図3は、本出願の第1の実施形態による仮想マシン移行の概略図である。
図3に示されるように、NC1およびNC2は、2つのホストマシンである。VMは、移行を待機している仮想マシンであり、仮想マシンVMをどちらのホストマシンに移行するかを決定する必要がある。
【0049】
前述の実施形態によって提供された解決策に従って、かつ
図3と組み合わせて見られるように、将来の期間における仮想マシンVMの予測結果が、NC1およびNC2のそれぞれの使用済みリソースデータに追加され、次にこれらは、NC1およびNC2の使用可能なリソースと別々に比較される。したがって、どちらのホストマシンに仮想マシンVMを移行するかを決定することができる。
【0050】
しかし、予測をより正確にするために、期間を複数のプリセット時間セグメントに分割することができる。
図3に示されるように、時間矢印が、期間内の時間トレンドを示し、NC1およびNC2の後の長方形は、NC1およびNC2それぞれの各時間セグメントの使用済みリソースデータを示す。仮想マシンVMの後ろの円形は、各時間セグメントでの仮想マシンVMの予測結果を示す。各時間セグメントの対応する予測結果に、各時間セグメントにおけるNC1およびNC2のそれぞれの使用済みリソースデータが追加され、次にこれらは、NC1およびNC2のそれぞれの使用可能なリソースデータと別々に比較される。このようにして、仮想マシンVMの移行先のホストマシンをより正確に決定することができる。
【0051】
期間を複数のプリセット期間に分割する方法を使用して、将来の期間において仮想マシンが必要とするリソースデータの予測を行うことについて、以下で説明する。
【0052】
代替実施形態として、期間は複数のプリセット時間セグメントを含み、次の時間間隔に仮想マシンが必要とするリソースデータを予測して予測結果を取得することは、予測モデルを取得することであって、予測モデルは、異なる属性パラメータを有する仮想マシンの予測結果とプリセット時間セグメントとの対応関係を表すために使用され、属性パラメータは、仮想マシンのID、仕様、およびアプリケーションタイプを含む、取得することと、仮想マシンの属性パラメータを予測モデルに入力することと、予測モデルから出力された仮想マシンの予測結果を受信することとを含む。
【0053】
具体的には、仮想マシンのIDは、ユーザーID、すなわち、user_idであってよい。ユーザーは、user_idおよび対応するパスワードを使用して仮想マシンにログインする。仮想マシンの仕様は、仮想マシンが複数のVCPUを含むことと、仮想マシンのキャッシュ量を示すために使用される。仮想マシンのアプリケーションタイプを、仮想マシンの用途に応じて決定することができる。アプリケーションのタイプは、オンラインサービスのタイプ(例えば、ウェブサイトサーバとして使用される)またはオフラインコンピューティングのタイプ(例えば、ビッグデータコンピューティング)である。
【0054】
予測モデルは、既存のデータ(例えば、仮想マシンの過去リソースデータ)で訓練することによって取得されたニューラルネットワークモデルであってよい。
【0055】
属性パラメータはすべて、仮想マシンが使用するリソースデータに比較的大きな影響を与えるパラメータである。例えば、ユーザーIDについては、ユーザーによって仮想マシンを使用する習慣が異なり、使用されたリソースデータには強い個人的特徴がある。仕様については、仕様が異なる仮想マシンが占有するリソースデータは、実行時に大きく異なる。アプリケーションタイプについては、実行時にアプリケーションタイプが異なる仮想マシンが使用するリソースデータにも大きな違いがある。
【0056】
したがって、上記解決策では、これらの属性パラメータを仮想マシンの特性として使用し、これらを予測モデルに入力する。予測モデルは、このような入力データに基づいて予測を行い、仮想マシンの予測結果を返す。
【0057】
代替実施形態として、仮想マシンの属性パラメータを予測モデルに入力する前に、上記方法はさらに、予測モデルの信頼度およびプリセット信頼閾値を取得することと、予測モデルの信頼度が信頼閾値以上である場合に、仮想マシンの属性パラメータを予測モデルに入力するステップを開始することと、予測モデルの信頼度が信頼閾値未満である場合に、仮想マシンの仮想プロセッサリソースおよび仮想プロセッサ使用率に基づいて、次の期間に仮想マシンが必要とするリソースデータを予測することとを含む。
【0058】
特定のパターンを有する仮想マシンでは、その予測モデルの信頼度は高い。したがって、信頼度の高い仮想マシンでは、その予測モデルで予測されるリソースデータの精度が高くなる。自明でないパターンを有する仮想マシンでは、その予測モデルの信頼度は低い。そのため、信頼度の低い仮想マシンでは、その予測モデルで予測されるリソースデータの精度は低い。
【0059】
上記解決策では、信頼閾値が予め設定されており、信頼閾値を使用して、予測モデルを使用して仮想マシンのリソースデータを予測するかどうかを決定する。
【0060】
代替実施形態では、仮想マシンの予測モデルの信頼度が90%で、信頼閾値が85%である場合、仮想マシンの予測モデルは、次の期間における仮想マシンのリソースデータを予測するために使用することが可能にされる。
【0061】
別の代替実施形態では、仮想マシンの予測モデルの信頼度が80%で、信頼閾値が85%である場合、仮想マシンの予測モデルの予測精度が低いと判断され、予測モデルは破棄される。仮想マシンの仮想プロセッサリソースおよび仮想プロセッサ使用率は、所定の式に従って、次の期間において仮想マシンが必要とするリソースデータを計算するために使用される。
【0062】
代替実施形態として、予測モデルを取得することは、サンプルデータを取得することとモデルトレーニングを通じて予測モデルを取得することとを含む。サンプルデータは、複数のサンプル仮想マシンの属性情報と、プリセット時間セグメントにおけるサンプル仮想マシンの過去リソースデータとを含む。
【0063】
具体的には、上記プリセット時間セグメントは6時間であってよく、各時間セグメントは連続しているが重複していない。例えば、1日のうちの0:00~6:00、6:00~12:00、12:00~18:00、18:00~24:00は、その日の4つの時間セグメントである。
【0064】
サンプル仮想マシンは、仮想マシンのものと同じ動作環境を持つ仮想マシンであってよい。訓練された予測モデルの精度を確保するために、サンプル仮想マシンの数は多く、様々な属性情報に分散されていてよい。
【0065】
代替実施形態では、ユーザーの行動は通常、平日の高利用率および週末の低利用率といったように週に関連するため、7日の期間を例にとってみる。プリセット時間セグメントが6時間の場合、期間には28の時間セグメントが含まれる。最初のサンプル仮想マシンが選択される。ID、仕様、およびアプリケーションタイプが異なる複数の仮想マシンがサンプル仮想マシンとして選択される。次に、期間内の28の時間セグメントにおけるサンプル仮想マシンのそれぞれのリソースデータが取得される。つまり、過去リソースデータが取得される。
【0066】
その後、空のモデルが取得され、サンプルデータを使用して空のモデルの学習および訓練が行われて、訓練されたモデルが取得される。検証データ(既知の属性情報と様々な期間における仮想マシンの過去リソースデータとを有する仮想マシンを含む)を使用して、訓練されたモデルを検証し、検証が成功すると予測モデルが取得される。
【0067】
代替実施形態として、予測モデルを取得し、プリセット時間セグメントにおけるサンプル仮想マシンの過去リソースデータを取得することは、プリセットサンプリング時間に従って仮想マシンの複数の仮想プロセッサの平均リソースデータを収集することと、プリセット時間セグメントにおいて最大である平均リソースデータを、プリセット時間セグメントの過去リソースデータとして決定することとを含み、プリセット時間セグメントには複数のサンプリング時間が含まれる。
【0068】
具体的には、サンプリング時間は5分であり、仮想マシンのCPUは複数のVCPUを有していてよい。したがって、複数のVCPUの平均値が取得される。
【0069】
代替実施形態では、4つのVCPUを有し、各VCPUは4つのコアを有する仮想マシンでは、すべてのコアのリソースデータが5分ごとに収集され、16コアの平均値が計算されて、その収集ポイントでの仮想マシンの平均リソースデータが取得される。プリセット時間セグメントが6時間、すなわち、360分である場合、プリセット時間セグメントは、72個の平均リソースデータを含み、72個の平均リソースデータの最大値が時間セグメントの過去リソースデータとして決定される。
【0070】
代替実施形態として、リソースデータがCPUリソースであるとき、候補ホストマシンの使用済みリソースデータを取得することは、プリセット時間セグメントにおいて候補ホストマシン上で実行されている各仮想マシンによって使用されたリソースを取得することと、プリセット時間セグメントにおける各仮想マシンの使用済みリソースの合計を、プリセット時間セグメントにおけるホストマシンの使用済みプロセッサリソースとして決定することとを含む。
【0071】
代替実施形態として、候補ホストマシンの使用可能なリソースデータを取得することは、ホストマシンの全プロセッサリソースおよびプリセット使用閾値を取得することであって、ホストマシンの全プロセッサリソースは、ホストマシンの物理コアの数とプリセット定数との積である、取得することと、ホストマシンの全プロセッサリソースとプリセット使用閾値との積を、候補ホストマシンの使用可能なリソースデータとして決定することとを含む。
【0072】
上記解決策は、プロセッサリソースをデジタル化する方法を提案する。具体的には、CPUのリソースのデジタル化は、次の方法で行われてよい。ホストマシンのCPUの物理コアによって提供されるリソースは、定数xとされる。ホストマシンにy個の物理コアがある場合、CPUのリソースはx×yである。代替実施形態では、ホストマシンのCPUは、56個の物理コアを含み、物理コアによって提供されるリソースは100であると見なされる。ホストマシンのCPU使用リソースは5600である。
【0073】
上記解決策では、CPUリソースは、物理コアの数にプリセット定数を乗算する方法でデジタル化される。したがって、ホストマシンのリソースは数値計算によって計算することができる。このようにして、プリセット定数を100とすることができる。つまり、各物理コアによって提供されるリソースは、100シェアとして計算される。
【0074】
代替実施形態として、複数のプリセット時間セグメントにおいてホストマシン上で実行されている各仮想マシンが使用するプロセッサリソースを取得することは、それぞれの仮想マシンの仮想プロセッサの数および候補ホストマシンによって作成された仮想プロセッサの総数、各プリセット時間セグメントにおける仮想プロセッサの平均使用率、および候補ホストマシンの物理コアの数を取得することと、それぞれの仮想マシンの仮想プロセッサの数と候補ホストマシンによって作成された仮想プロセッサの総数との比率を取得することと、候補ホストマシンの物理コアの数と候補ホストマシンによって作成された仮想プロセッサの総数との間の最小値を取得することと、比率、仮想プロセッサの平均使用率および最小の積を計算することと、上記積を、プリセット時間セグメントでのそれぞれの仮想マシンのプロセッサリソースとして決定することとを含む。
【0075】
具体的には、前述のVCPUの平均使用率は、具体的には、各時間セグメント(各時間セグメントには複数のサンプリング時間が含まれる)における複数のサンプリング時間に対応する平均値の最大平均値であってよい過去データから取得することができる。各サンプリング時間に対応する平均値は、それぞれのサンプリング時間における仮想マシンのすべてのコアの平均使用率である。
【0076】
代替実施形態では、仮想マシンのVCPUの数がaであり、ホストマシンのVCPUの総数がbであり、VCPUの平均使用率がcであり、ホストマシンの物理コアの数がdである場合、仮想マシンのリソースは、e=(a/b)*c*min(d,b)である。より具体的には、ホストマシンNC1に56個の物理コアがあり、80個のVCPUが作成され、仮想マシンVM1に8個のVCPUがあり、VM1の平均CPU使用率が50%である場合、VM1の物理コアが占有するリソースは(8/80)*50*56=280である。
【0077】
表1は、ホストマシンの使用済みCPUリソースと使用可能なCPUリソースとを計算する方法を示す。表1と組み合わせて、この例では、期間は7日であり、期間には4つの時間セグメントが含まれ、各時間セグメントは6時間であり、4つの時間セグメントは連続しており、互いに重複しない。表1は、1日目の最初の2つの時間セグメントを計算する方法のみを示す。他の時間セグメントの計算方法は同じである。表1に関連して、詳細について以下で説明する。
【0078】
最初に、NC1の1日目の最初の時間セグメント(0~6)を説明する。NC1には56個の物理コアがあり、VM1(4コア)、VM2(8コア)、およびVM3(8コア)に個別に適用される20個のVCPUが作成される。
【0079】
最初の時間セグメントにおけるVM1の平均VCPU使用率は5であり、最初の時間セグメントにおけるVM1の使用済みCPUリソースは、上記実施形態における式「e=(a/b)*c*min(d,b)」を使用して取得することができる。e1=(4/20)*5*min(56,20)=20。
【0080】
最初の時間セグメントにおけるVM2の平均VCPU使用率は20である。最初の時間セグメントにおいてVM2が使用するリソースは、同じ式を使用してe2=160として取得される。最初の時間セグメントにおけるVM3の平均VCPU使用率は30である。同じ式を使用して、最初の時間セグメントにおいてVM3が使用するリソースは、e3=240である。したがって、最初の時間セグメントにおけるNC1の使用済みCPUリソースは、e1+e2+e3=420である。この例では、プリセット定数は100であり、プリセット使用閾値は80%であり、NC1の全CPUリソースは56*100=5600である。したがって、NC1の使用可能なリソースは5600*80%=4060である。
【0081】
上記スキームを使用して、他の時間セグメントにおけるNC1の使用済みCPUリソースおよび使用可能なCPUリソースと、各時間セグメントにおけるNC2の使用済みCPUリソースおよび使用可能なCPUリソースを計算することができる。
【0082】
【0083】
前述の実施形態では、各時間セグメントにおける仮想マシンの平均VCPU使用率は、具体的には、プリセットサンプリング時間に従って仮想マシンに関連付けられたすべてのコアの平均VCPU使用率を収集することと、プリセット時間セグメントにおいて収集された最大平均使用率を、プリセット時間セグメントのVCPU平均使用率として決定することとを含む過去リソースデータを取得することによって取得することができることに留意する必要がある。期間内の各プリセット時間セグメントは、複数のサンプリング時間を含む。
【0084】
図4は、本出願の第1の実施形態による仮想マシンのマイグレーション前後におけるホストマシンの使用済みリソースの変化を示す概略図である。
図4に示されるように、NC1には56個の物理コアがあり、CPUリソースは5600であり、使用済みリソースは3000である。NC1は80個のVCPU(仮想プロセッサ)を作成し、VM1は8個の
VCPUを含み、平均使用率は50%である。したがって、VM1は、ホストマシンのリソースを占有する。つまり、VM1が使用する
CPUリソースは8/80
*50
*56=280である。
【0085】
NC2にも56個の物理コアがあり、CPUリソースは5600であり、NC2の平均CPU使用率は10%であり、NC2の使用済みCPUリソースは5600*10%=560である。
【0086】
したがって、VM1がNC1からNC2に移行された後、NC1の使用済みCPUリソースは3000-280=2720であり、NC2の使用済みCPUリソースは560+280=840である。
【0087】
代替実施形態として、期間は複数のプリセット時間セグメントを含む。各候補ホストマシンの重ね合わせ結果を各ホストマシンの使用可能なリソースデータと個別に比較し、候補ホストマシンから仮想マシンに対応するホストマシンを選択することは、候補ホストマシンから条件(複数可)を満たす候補ホストマシン(複数可)をフィルタリングおよび選択することと、条件(複数可)を満たす候補ホストマシン(複数可)を、仮想マシンに対応するターゲットホストマシンとして決定することとを含み、条件(複数可)は、各プリセット時間セグメントの重ね合わせ結果がホストマシン(複数可)の使用可能なリソースデータを超えないことを含む。
【0088】
上記解決策は、スケジューリングシステムのフィルタを使用して実行することができる。上記解決策により、仮想マシンの動作をサポートすることができるホストマシンが選択される。候補ホストマシンの重ね合わせ結果が候補ホストマシンの使用可能なリソースデータを超えるとき、仮想マシンが候補ホストマシンに移行された場合に、候補ホストマシンには仮想マシンの動作をサポートするのに十分なリソースがなく、候補ホストマシンは過負荷になると決定することができる。候補ホストマシンの重ね合わせ結果が候補ホストマシンの使用可能なリソースデータを超えないとき、仮想マシンが候補ホストマシンに移行された場合に、候補ホストマシンには仮想マシンの動作をサポートするのに十分なリソースがあると決定することができる。したがって、各候補ホストマシンの重ね合わせ結果を各ホストマシンの使用可能なリソースデータと比較することにより、仮想マシンの動作をサポートすることができるターゲットホストマシンを候補ホストマシンから選択することができる。
【0089】
代替実施形態として、条件(複数可)を満たす候補ホストマシンが複数存在するとき、条件(複数可)を満たす候補ホストマシン(複数可)を、仮想マシンに対応するホストマシンとして決定することは、各リソースデータに対応する重み値を取得することと、重み値で重ね合わせ結果に重み付けして、条件(複数可)を満たす候補ホストマシン(複数可)に対応するそれぞれの重み付け結果(複数可)を取得することと、重み付け結果が最小である候補ホストマシンを、仮想マシンに対応するターゲットホストマシンとして決定することとを含む。
【0090】
上記解決策は、スケジューリングシステムの重み付けデバイスによって実行することができる。スケジューリングフィルタでフィルタリングした後、候補ホストマシンが複数存在している場合がある。つまり、複数の候補ホストマシンが仮想マシンの動作をサポートすることができるとき、重み付けデバイスは、リソースデータ内の複数のタイプのデータを統合して、仮想マシンが候補ホストマシンに移行された場合に、候補ホストマシンのリソース使用を表すことができるそれぞれの重み付け結果を取得する。
【0091】
代替実施形態では、各リソースデータの重み値は、次のように降順で並べることができる。つまり、それぞれ50%、30%、10%、10%であるプロセッサリソース、消費電力量の使用率、プロセッサ競合の回数、およびキャッシュミスの数で並べることができる。ステップS25の実施形態に関連して、候補ホストマシンの重ね合わせ結果がA1+A2、B1+B2、C1+C2、およびD1+D2である場合、ホストマシンに対応する重み付け結果は(A1+A2)50%+(B1+B2)10%+(C1+C2)10%+(D1+D2)30%である。
【0092】
前述の実施形態は、ホストマシンの重み付け結果を計算する方法を示す。このような計算により、条件(複数可)を満たす各候補ホストマシンの重み付け結果が計算され、重み付け結果が最小である候補ホストマシンがターゲットホストマシンとして選択される。
【0093】
上記解決策では、条件(複数可)を満たす候補ホストマシンの重み付け結果が、仮想マシンがホストマシンに移行された後のホストマシンのリソース使用状況を説明することができる。重み付け結果が比較的大きい場合、これは候補ホストマシンのより多くのリソースが使用されることを意味し、仮想マシンが候補ホストマシンに移行された場合、負荷は比較的大きい。重み付け結果が小さい場合、これは仮想マシンが候補ホストマシンに移行された場合に使用される候補ホストマシンのリソースが少ないことを意味する。ホストマシンの負荷バランスを維持するために、仮想マシンは重み付け結果が最小である候補ホストマシンに移行される。つまり、重み付け結果が最小である候補ホストマシンがターゲットホストマシンとして決定される。
【0094】
仮想マシンは、条件(複数可)を満たす各候補ホストマシンに移行されると想定することにより、上記解決策は、仮想マシンが各候補ホストマシンに移行された場合の各ホストマシンのリソース使用状況を予測し、これによりターゲットホストマシンを決定する。
【0095】
代替実施形態として、各候補ホストマシンの重ね合わせ結果を各ホストマシンの使用可能なリソースデータと比較し、仮想マシンに対応するホストマシンを候補ホストマシンから選択した後、方法はさらに、仮想マシンを、仮想マシンに対応するターゲットホストマシンに移行することを含む。
【0096】
仮想マシンは対応するターゲットホストマシンに移行され、ターゲットホストマシンは、実行時に仮想マシンが必要とするリソースデータを提供することができる。これはまた、ホストマシン上で負荷のバランスを取る目的も達成することができる。
【0097】
代替実施形態として、仮想マシンが新しく作成された仮想マシンであるとき、次の期間において仮想マシンが必要とするリソースデータを予測して予測結果を取得することは、新しく作成された仮想マシンの識別子および/または使用を取得することと、新しく作成された仮想マシンの同じ識別子および/または同じ仕様を有するターゲット仮想マシンを検索することと、ターゲット仮想マシンの予測結果が、新たに作成された仮想マシンの予測結果であると決定することとを含む。
【0098】
新しく作成された仮想マシンでは、新しく作成された仮想マシンの識別子および仕様と同じ識別子および仕様を有する仮想マシンの予測結果が、新しく作成された仮想マシンの予測結果として選択される。
【0099】
代替実施形態では、新しく作成された仮想マシンと同じ識別子および仕様を有するターゲット仮想マシンが存在しない場合、また、新しく作成された仮想マシンに対して識別子は同じであるが仕様は異なるターゲット仮想マシンが存在する場合、また、新しく作成された仮想マシンに対して仕様は同じであるが識別子は異なるターゲット仮想マシンが存在する場合、新しく作成された仮想マシンと同じ識別子を有するターゲット仮想マシンの予測結果が、新しく作成された仮想マシンの予測結果として選択される。
【0100】
第2の実施形態
本発明の実施形態によれば、仮想マシンをスケジューリングする方法の一実施形態も提供される。
図5は、本出願の第2の実施形態による仮想マシンをスケジューリングする方法のフローチャートである。
図5に示されるように、本方法は以下のステップを含む。
ステップS51:次の期間に仮想マシンが必要とするプロセッサリソースを予測して予測結果を取得する。
【0101】
具体的には、仮想マシンは、新しく作成された仮想マシンか、または移行される必要がありうる仮想マシンであってよい。例えば、仮想マシンを実行しているホストマシンに障害が発生したとき、または仮想マシンを実行しているホストマシンが過負荷になったとき、仮想マシンを移行して、仮想マシンの安定した動作を確保する必要がある。
【0102】
代替実施形態では、上記期間は7日であってよく、次の期間において仮想マシンが必要とするリソースデータは、仮想マシンの過去リソースデータを取得することによって予測することができる。
【0103】
ステップS53:候補ホストマシンの使用済みプロセッサリソースと使用可能なプロセッサリソースとを取得する。
【0104】
具体的には、候補ホストマシンの使用可能なプロセッサリソースとは、候補ホストマシンが仮想マシン(複数可)に使用を許可するプロセッサリソースを指す。候補ホストマシンは、特定の全プロセッサリソースと対応する使用閾値、つまり、すべてのリソースデータの許容される使用の割合とを有する。例えば、所定の閾値が80%の場合、仮想マシン(複数可)はホストマシンの全プロセッサリソースの80%を使用することができる。
【0105】
ステップS55:予測結果を各候補ホストマシンの使用済みプロセッサリソースに追加して、各候補ホストマシンの重ね合わせ結果を取得する。
【0106】
上記解決策では、予測結果を候補ホストマシンの使用済みプロセッサリソースに追加して仮想マシンが候補ホストマシンに移行された後に候補ホストマシンが必要とするプロセッサリソースを予測する。
【0107】
ステップS57:各候補ホストマシンの重ね合わせ結果を各候補ホストマシンの使用可能なプロセッサリソースと比較し、候補ホストマシンから仮想マシンに対応するターゲットホストマシンを選択する。
【0108】
上記ステップS57において、候補ホストマシンの重ね合わせ結果が候補ホストマシンの使用可能なプロセッサリソースデータを超えるとき、仮想マシンが候補ホストマシンに移行された場合に、候補ホストマシンには仮想マシンの動作をサポートするのに十分なプロセッサリソースがなく、これにより、候補ホストマシンが過負荷になる可能性があると決定することができる。候補ホストマシンの重ね合わせ結果が候補ホストマシンの使用可能なプロセッサリソースデータを超えないとき、仮想マシンが候補ホストマシンに移行された場合に、候補ホストマシンには仮想マシンの動作をサポートするのに十分なプロセッサリソースがあると決定することができる。したがって、各候補ホストマシンの重ね合わせ結果を各ホストマシンの使用可能なプロセッサリソースデータと比較することによって、仮想マシンの動作をサポートすることができるターゲットホストマシンを選択することができる。
【0109】
前述の実施形態では、解決策は、将来の期間に仮想マシンが使用するリソースデータを予測およびスケジューリングし、候補ホストマシンの現在使用されているプロセッサリソースおよび使用可能なプロセッサリソースを取得し、どの候補ホストマシンに仮想マシンを移行する必要があるかを決定する、つまり、ターゲットホストマシンが決定されることに留意する必要がある。したがって、各ホストマシンが各仮想マシンのそれぞれのピークのためにリソースをリザーブする必要なく、仮想マシンのホストマシンをより正確に選択することができる。これにより、リソースの無駄が減り、仮想マシンを異なるホストマシンにできるだけ均等にスケジューリングおよび分散して、物理マシンの安定した負荷バランスが達成される。
【0110】
したがって、本出願の前述の実施形態は、ホストマシンが各仮想マシンのそれぞれのピークのためにリソースをリザーブする必要があり、リソースの大きな無駄になるという既存技術における技術的問題を解決する。
【0111】
代替実施形態として、候補ホストマシンの使用可能なプロセッサリソースを取得することは、プリセット定数、ホストマシンの物理コアのそれぞれの数、および1未満であるプリセット閾値を取得することと、プリセット定数、ホストマシンの物理コアのそれぞれの数、およびプリセット閾値のそれぞれの積を、ホストマシンの使用可能なプロセッサリソースとして決定することとを含む。
【0112】
上記解決策は、プロセッサリソースをデジタル化する方法を提案する。具体的には、CPUのリソースのデジタル化は、次の方法で行われてよい。ホストマシンのCPUの物理コアによって提供されるリソースは、定数xとされる。ホストマシンにy個の物理コアがある場合、CPUのリソースはx×yである。代替実施形態では、ホストマシンのCPUは、56個の物理コアを含み、物理コアによって提供されるリソースは100であると見なされる。ホストマシンのCPU使用リソースは5600である。
【0113】
代替実施形態として、期間は複数のプリセット時間セグメントを含み、候補ホストマシンの使用済みプロセッサリソースを取得することは、プリセット時間セグメントにおいて候補ホストマシン上で実行されている各仮想マシンのプロセッサリソースを取得することと、各仮想マシンのプロセッサリソースの合計を、プリセット時間セグメントにおける候補ホストマシンの使用済みプロセッサリソースとして決定することとを含む。
【0114】
代替実施形態として、プリセット時間セグメントについて候補ホストマシン上で実行されている各仮想マシンのプロセッサリソースを取得することは、それぞれの仮想マシンの仮想プロセッサの数および候補ホストマシンによって作成された仮想プロセッサの総数、各プリセット時間セグメントにおける仮想プロセッサの平均使用率、および候補ホストマシンの物理コアの数を取得することと、それぞれの仮想マシンの仮想プロセッサの数と候補ホストマシンによって作成された仮想プロセッサの総数との比率を取得することと、候補ホストマシンの物理コアの数と候補ホストマシンによって作成された仮想プロセッサの総数との間の最小値を取得することと、比率、仮想プロセッサの平均使用率および最小の積を計算することと、上記積を、プリセット時間セグメントでのそれぞれの仮想マシンのプロセッサリソースとして決定することとを含む。
【0115】
代替実施形態では、仮想マシンのVCPUの数がaであり、ホストマシンのVCPUの総数がbであり、VCPUの平均使用率がcであり、ホストマシンの物理コアの数がdである場合、仮想マシンのリソースは、e=(a/b)*c*min(d,b)である。より具体的には、ホストマシンNC1に56個の物理コアがあり、80個のVCPUが作成され、仮想マシンVM1に8個のVCPUがあり、VM1の平均CPU使用率が50%である場合、VM1の物理コアが占有するリソースは(8/80)*50*56=280である。
【0116】
前述の方法の実施形態はすべて、説明を簡単にするために、一連の動きの組み合わせとして表現されていることに留意する必要がある。本発明によれば、特定のステップを他の順序で、または並行して行うことができるため、当業者は、本発明が説明された動作の順序によって制限されないことを知るべきである。さらに、当業者はまた、明細書に記載された実施形態はすべて好適な実施形態であり、関与する動作およびモジュールを本発明が必ずしも必要としない場合があることも知るべきである。
【0117】
上記実施形態の説明を通じて、当業者は、上記実施形態による方法がソフトウェアおよび必要な一般的なハードウェアプラットフォームによって実施することができ、また、明らかにハードウェアによっても実施することができることを明確に理解することができる。しかし、多くの場合、前者の方がより優れた実装形態である。このような理解に基づいて、本発明の技術的解決策の本質または既存の技術に貢献する部分をソフトウェア製品の形式で具体化することができる。このようなコンピュータソフトウェア製品は、記憶媒体(ROM/RAM、磁気ディスク、および光ディスクなど)に記憶され、端末デバイス(携帯電話機、コンピュータ、サーバ、またはネットワークデバイスなどであってよい)に本発明の各実施形態の方法を実行させる幾つかの命令を含む。
【0118】
第3の実施形態
本発明の実施形態によれば、上述の仮想マシンスケジューリング方法を実施するための仮想マシンスケジューリング装置も提供される。
図6に示されるように、装置600は、
次の期間に仮想マシンが必要とするリソースデータを予測して予測結果を取得するように構成された予測モジュール602であって、リソースデータは、プロセッサリソース、プロセッサ競合の回数、キャッシュミスの数、および消費電力量の使用率のうちの少なくとも1つを含む、予測モジュール602と、
候補ホストマシンの使用済みリソースデータおよび使用可能なリソースデータを取得するように構成された取得モジュール604と、
予測結果を各候補ホストマシンのリソースデータに追加して、各候補ホストマシンの重ね合わせ結果を取得するように構成された重ね合わせモジュール606と、
各候補ホストマシンの重ね合わせ結果を各ホストマシンの使用可能なリソースデータと個別に比較し、候補ホストマシンから仮想マシンに対応するターゲットホストマシンを選択するように構成された比較モジュール608とを含む。
【0119】
ここで、上述の予測モジュール602、取得モジュール604、重ね合わせモジュール606、および比較モジュール608は、第1の実施形態におけるステップS21~S27に対応することに留意する必要がある。上記4つのモジュールによって実施される例および応用シナリオは、対応するステップと同じであるが、第1の実施形態で開示された内容に限定されない。上記モジュールは、第1の実施形態で提供される装置の一部としてコンピュータ端末10で実行することができることに留意する必要がある。
【0120】
代替実施形態として、期間は複数のプリセット時間セグメントを含み、予測モジュールは、予測モデルを予測するように構成された第1の取得サブモジュールであって、予測モデルは、異なる属性パラメータを有する仮想マシンの予測結果とプリセット時間セグメントとの対応関係を表すために使用され、属性パラメータには、仮想マシンのID、仕様、およびアプリケーションタイプが含まる、第1の取得サブモジュールと、仮想マシンの属性パラメータを予測モデルに入力するように構成された入力サブモジュールと、予測モデルから出力される仮想マシンの予測結果を受信するように構成された受信サブモジュールとを含む。
【0121】
任意で、予測モジュールは、仮想マシンの属性パラメータが予測モデルに入力される前に、予測モデルの信頼度およびプリセット信頼閾値を取得するように構成された第2の取得サブモジュールと、予測モデルの信頼度が信頼閾値以上である場合に、仮想マシンの属性パラメータを予測モデルに入力するステップを開始するように構成された開始サブモジュールと、予測モデルの信頼度が信頼閾値未満である場合に、仮想マシンの仮想プロセッサリソースおよび仮想プロセッサ使用率に基づいて、次の期間に仮想マシンが必要とするリソースデータを予測するように構成された予測サブモジュールとをさらに含む。
【0122】
代替実施形態として、第1の取得サブモジュールは、サンプルデータを取得するように構成された第1の取得ユニットであって、サンプルデータは、複数のサンプル仮想マシンの属性情報およびプリセット時間セグメントにおけるサンプル仮想マシンの過去リソースデータを含む、第1の取得ユニットと、モデルトレーニングを通じて予測モデルを取得するように構成された訓練ユニットとを含む。
【0123】
代替実施形態として、第1の取得ユニットは、プリセットサンプリング時間に従って仮想マシンの複数の仮想プロセッサの平均リソースデータを収集するように構成された収集サブユニットであって、プリセット時間セグメントは複数のサンプリング時間を含む、収集サブユニットと、プリセット時間セグメントにおいて最大である平均リソースデータを、プリセット時間セグメントの過去リソースデータとして決定するように構成較正された決定サブユニットとを含む。
【0124】
代替実施形態として、期間は複数のプリセット時間セグメントを含み、リソースデータがプロセッサリソースであるとき、取得モジュールは、プリセット時間セグメントにおいて候補ホストマシン上で実行されている各仮想マシンが使用するリソースを取得するように構成された第3の取得サブモジュールと、プリセット時間セグメントにおいて各仮想マシンが使用するリソースの合計を、プリセット時間セグメントにおけるホストマシンの使用済みプロセッサリソースとして決定する第1の決定サブモジュールとを含む。
【0125】
代替実施形態として、取得モジュールは、ホストマシンの全プロセッサリソースおよびプリセット使用閾値をするように構成された第4の取得サブモジュールであって、ホストマシンの全プロセッサリソースは物理コアの数とプリセット定数との積である、第4の取得サブモジュールと、ホストマシンの全プロセッサリソースとプリセット使用閾値との積を、候補ホストマシンの使用可能なリソースデータとして決定するように構成された第2の決定サブモジュールとを含む。
【0126】
代替実施形態として、第3の取得サブモジュールは、それぞれの仮想マシンの仮想プロセッサの数および候補ホストマシンによって作成された仮想プロセッサの総数、各プリセット時間セグメントにおける仮想プロセッサの平均利用率、ならびに候補ホストマシンの物理コアの数を取得するように構成された第2の取得ユニットと、それぞれの仮想マシンの仮想プロセッサの数と候補ホストマシンによって作成された仮想プロセッサの総数との比率を取得するように構成された第3の取得ユニットと、候補ホストマシンの物理コアの数と候補ホストマシンによって作成された仮想プロセッサの総数との間の最小値を取得するように構成された第4の取得ユニットと、比率、仮想プロセッサの平均使用率、および最小の積を計算するように構成された比率計算ユニットと、上記積を、プリセット時間セグメントにおけるそれぞれの仮想マシンのプロセッサリソースとして決定するように構成された第1の決定ユニットとを含む。
【0127】
代替実施形態として、期間は複数のプリセット時間セグメントを含み、比較モジュールは、候補ホストマシンから条件(複数可)を満たす候補ホストマシン(複数可)をフィルタリングおよび選択するように構成されたフィルタリングサブモジュールであって、条件(複数可)は、各プリセット時間セグメントの重ね合わせ結果がホストマシン(複数可)の使用可能なリソースデータを超えないことを含む、フィルタリングサブモジュールと、条件(複数可)を満たす候補ホストマシン(複数可)を、仮想マシンに対応するターゲットホストマシンとして決定するように構成された第3の決定サブモジュールとを含む。
【0128】
代替実施形態として、条件(複数可)を満たす候補ホストマシンが複数存在し、第3の決定サブモジュールは、各リソースデータに対応する重み値を取得するように構成された第5の取得ユニットと、重み値(複数可)で重ね合わせ結果(複数可)に重み付けして条件(複数可)を満たす候補ホストマシン(複数可)に対応するそれぞれの重み付け結果(複数可)を取得するように構成された重み付けユニット、重み付け結果が最小である候補ホストマシンを、仮想マシンに対応するターゲットホストマシンとして決定するように構成された第2の決定ユニットとを含む。
【0129】
代替実施形態として、装置はさらに、各候補ホストマシンの重ね合わせ結果が各ホストマシンの使用可能なリソースデータと比較され、候補ホストマシンから仮想マシンに対応する仮想ホストマシンが選択された後に、仮想マシンを、仮想マシンに対応するターゲットホストマシンに移行するように構成されたマイグレーションモジュールを含む。
【0130】
代替実施形態として、仮想マシンが新しく作成された仮想マシンであるとき、予測モジュールは、新しく作成された仮想マシンの識別子および/または仕様を取得するように構成された第5の取得サブモジュールと、新しく作成された仮想マシンの識別子および/または仕様と同じである識別子および使用を有するターゲット仮想マシンを検索するように構成された検索サブモジュールと、ターゲット仮想マシンの予測結果が新しく作成された仮想マシンの予測結果であると決定するように構成された第4の決定サブモジュールとを含む。
【0131】
第4の実施形態
本発明の実施形態によれば、上記仮想マシンスケジューリング方法を実施するための仮想マシンスケジューリング装置も提供される。
図7に示されるように、装置700は、
次の期間に仮想マシンが必要とするプロセッサリソースを予測して予測結果を取得するように構成された予測モジュール702と、
候補ホストマシンの使用済みプロセッサリソースおよび使用可能なプロセッサリソースを取得するように構成された取得モジュール704と、
予測結果を各候補ホストマシンの使用済みプロセッサリソースに追加して、各候補ホストマシンの重ね合わせ結果を取得するように構成された重ね合わせモジュール706と、
各候補ホストマシンの重ね合わせ結果を各候補ホストマシンの使用可能なプロセッサリソースと比較し、候補ホストマシンから仮想マシンに対応するターゲットホストマシンを選択するように構成された比較モジュール708とを含む。
【0132】
ここで、上述の予測モジュール702、取得モジュール704、重ね合わせモジュール706、および比較モジュール708は、第1の実施形態におけるステップS51~S57に対応することに留意する必要がある。上記4つのモジュールによって実施される例および応用シナリオは、対応するステップと同じであるが、第1の実施形態で開示された内容に限定されない。上記モジュールは、第1の実施形態で提供される装置の一部としてコンピュータ端末10で実行することができることに留意する必要がある。
【0133】
代替実施形態として、予測モジュールは、プリセット定数、ホストマシンの物理コアのそれぞれの数、および1未満であるプリセット閾値を取得するように構成された第1の取得サブモジュールと、プリセット定数、ホストマシンの物理コアのそれぞれの数、およびプリセット閾値のそれぞれの積を、ホストマシンの使用可能なプロセッサリソースとして決定するように構成された第1の決定サブモジュールとを含む。
【0134】
代替実施形態として、期間は複数のプリセット時間セグメントを含み、取得モジュールは、プリセット時間セグメントにおいて候補ホストマシン上で実行されている各仮想マシンのプロセッサリソースを取得するように構成された第2の取得サブモジュールと、各仮想マシンのプロセッサリソースの合計を、プリセット時間セグメントにおける候補ホストマシンの使用済みプロセッサリソースとして決定するように構成された第2の決定サブモジュールとを含む。
【0135】
代替実施形態として、第2の取得サブモジュールは、それぞれの仮想マシンの仮想プロセッサの数および候補ホストマシンによって作成された仮想プロセッサの総数、各プリセット時間セグメントにおける仮想プロセッサの平均使用率、ならびに候補ホストマシンの物理コアの数を取得するように構成された第1の取得ユニットと、それぞれの仮想マシンの仮想プロセッサの数と候補ホストマシンによって作成された仮想プロセッサの総数との比率を取得するように構成された第2の取得ユニットと、候補ホストマシンの物理コアの数と候補ホストマシンによって作成された仮想プロセッサの総数との間の最小値を取得するように構成された第3の取得ユニットと、比率、仮想プロセッサの平均使用率、および最小の積を計算することと、上記積を、プリセット時間セグメントにおけるそれぞれの仮想マシンのプロセッサリソースとして決定するように構成された決定ユニットとを含む。
【0136】
第5の実施形態
本発明の実施形態によれば、プロセッサと、プロセッサに結合され、プロセッサに以下の処理ステップを処理するための命令を提供するように構成されたメモリとを含むシステムも提供される。
次の期間に仮想マシンが必要とするリソースデータを予測して予測結果を取得するステップであって、リソースデータは、プロセッサリソース、プロセッサ競合の回数、キャッシュミスの数、および消費電力量の使用率のうちの少なくとも1つを含む、取得するステップと、候補ホストマシンの使用済みリソースデータおよび使用可能なリソースデータを取得するステップと、予測結果を各候補ホストマシンの使用済みリソースデータに追加して各候補ホストマシンの重ね合わせ結果を取得するステップと、各候補ホストマシンの重ね合わせ結果を各ホストマシンの使用可能なリソースデータと個別に比較して、候補ホストマシンから仮想マシンに対応するターゲットホストマシンを選択するステップ。
【0137】
第6の実施形態
本発明の実施形態は、コンピュータ端末を提供することができる。コンピュータ端末は、コンピュータ端末グループ内の任意のコンピュータ端末デバイスでであってよい。任意で、本実施形態では、コンピュータ端末は、モバイル端末といった端末デバイスで置き換えられてもよい。
【0138】
任意で、本実施形態では、コンピュータ端末は、コンピュータネットワーク内の複数のネットワークデバイスのうちの少なくとも1つのネットワークデバイスに配置されてもよい。
【0139】
本実施形態では、コンピュータ端末は、仮想マシンスケジューリング方法における以下のステップのプログラムコードを実行することができる。すなわち、次の期間に仮想マシンが必要とするリソースデータを予測して予測結果を取得するステップであって、リソースデータは、プロセッサリソース、プロセッサ競合の回数、キャッシュミスの数、および消費電力量の使用率のうちの少なくとも1つを含む、取得するステップと、候補ホストマシンの使用済みリソースデータおよび使用可能なリソースデータを取得するステップと、予測結果を各候補ホストマシンの使用リソースデータに追加して各候補ホストマシンの重ね合わせ結果を取得するステップと、各候補ホストマシンの重ね合わせ結果を各ホストマシンの使用可能なリソースデータと個別に比較し、候補ホストマシンから仮想マシンに対応するターゲットホストマシンを選択するステップ。
【0140】
任意で、
図8は、本発明の第6の実施形態によるコンピュータ端末の構造ブロック図である。
図8に示されるように、コンピュータ端末Aは、1つ以上(図では1つのみ示す)のプロセッサ802、メモリ804、および周辺インターフェース806を含んでよい。
【0141】
メモリは、本発明の実施形態における仮想マシンをスケジューリングする方法および装置に対応するプログラム命令/モジュールなどのソフトウェアプログラムおよびモジュールを記憶するように構成することができる。プロセッサ(複数可)は、メモリに記憶されているソフトウェアプログラムおよびモジュールを実行することによって、すなわち、前述の仮想マシンのスケジューリング方法を実施することによって、様々な機能アプリケーションとデータ処理を実行する。メモリは、高速ランダムアクセスメモリを含んでよく、また、1つ以上の磁気ストレージデバイス、フラッシュメモリ、または他の不揮発性ソリッドステートメモリなどの不揮発性メモリも含んでよい。幾つかの例では、メモリはさらに、プロセッサに対して遠隔に配備されたストレージデバイスを含んでよく、これらの遠隔ストレージデバイスは、ネットワークを介して端末Aに接続されてよい。上記ネットワークの例には、インターネット、企業イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク、およびそれらの組み合わせが含まれるが、これらに限定されない。
【0142】
プロセッサ(複数可)は、伝送デバイスを介してメモリに記憶されている情報およびアプリケーションプログラムを呼び出し、以下のステップを行うことができる。すなわち、次の期間に仮想マシンが必要とするリソースデータを予測して予測結果を取得するステップであって、リソースデータは、プロセッサリソース、プロセッサ競合の回数、キャッシュミスの数、および消費電力量の使用率のうちの少なくとも1つを含む、取得するステップと、候補ホストマシンの使用済みリソースデータおよび使用可能なリソースデータを取得するステップと、予測結果を各候補ホストマシンの使用済みリソースデータに追加して各候補ホストマシンの重ね合わせ結果を取得するステップと、各候補ホストマシンの重ね合わせ結果を各ホストマシンの使用可能なリソースデータと個別に比較し、候補ホストマシンから仮想マシンに対応するターゲットホストマシンを選択するステップ。
【0143】
任意で、プロセッサ(複数可)はまた、以下の次のステップのプログラムコードを実行することもできる。すなわち、予測モデルを取得するステップであって、予測モデルは、異なる属性パラメータを有する仮想マシンの予測結果とプリセット時間セグメントとの対応関係を表すために使用され、属性パラメータは、仮想マシンのID、仕様、およびアプリケーションタイプを含む、取得するステップと、仮想マシンの属性パラメータを予測モデルに入力するステップと、予測モデルから出力された仮想マシンの予測結果を受信するステップ。
【0144】
任意で、プロセッサ(複数可)はまた、以下のステップのプログラムコードを実行することもできる。すなわち、仮想マシンの属性パラメータを予測モデルに入力する前に、上記方法はさらに、予測モデルの信頼度およびプリセット信頼閾値を取得することと、予測モデルの信頼度が信頼閾値以上である場合に、仮想マシンの属性パラメータを予測モデルに入力するステップを開始することと、予測モデルの信頼度が信頼閾値未満である場合に、仮想マシンの仮想プロセッサリソースおよび仮想プロセッサ使用率に基づいて、次の期間に仮想マシンが必要とするリソースデータを予測することとを含む。
【0145】
任意で、プロセッサ(複数可)はまた、以下のステップのプログラムコードを実行することもできる。すなわち、サンプルデータを取得するステップであって、サンプルデータは、複数のサンプル仮想マシンの属性情報およびプリセット時間セグメントにおけるサンプル仮想マシンの過去リソースデータを含む、取得するステップと、モデルトレーニングを通じて予測モデルを取得するステップ。
【0146】
任意で、プロセッサ(複数可)はまた、以下のステップのプログラムコードを実行することもできる。すなわち、プリセットサンプリング時間に従って仮想マシンの複数の仮想プロセッサの平均リソースデータを収集するステップであって、プリセット時間セグメントは複数のサンプリング時間を含む、収集するステップと、プリセット時間セグメントにおいて最大である平均リソースデータを、プリセット時間セグメントの過去リソースデータとして決定するステップ。
【0147】
任意で、プロセッサ(複数可)はまた、以下のステップのプログラムコードを実行することもできる。すなわち、プリセット時間セグメントにおいて候補ホストマシン上で実行されている各仮想マシンが使用するリソースを取得するステップと、プリセット時間セグメントにおいて各仮想マシンが使用するリソースの合計を、プリセット時間セグメントにおけるホストマシンの使用済みプロセッサリソースとして決定するステップ。
【0148】
任意で、プロセッサ(複数可)はまた、以下のステップのプログラムコードを実行することもできる。すなわち、ホストマシンの全プロセッサリソースおよびプリセット使用閾値を取得するステップであって、ホストマシンの全プロセッサリソースは、ホストマシンの物理コアの数とプリセット定数との積である、取得するステップと、ホストマシンの全プロセッサリソースとプリセット使用閾値との積を、候補ホストマシンの使用可能なリソースデータとして決定するステップ。
【0149】
任意で、プロセッサ(複数可)はまた、以下のステップのプログラムコードを実行することもできる。すなわち、それぞれの仮想マシンの仮想プロセッサの数および候補ホストマシンによって作成された仮想プロセッサの総数、各プリセット時間セグメントにおける仮想プロセッサの平均使用率、および候補ホストマシンの物理コアの数を取得するステップと、それぞれの仮想マシンの仮想プロセッサの数と候補ホストマシンによって作成された仮想プロセッサの総数との比率を取得するステップと、候補ホストマシンの物理コアの数と候補ホストマシンによって作成された仮想プロセッサの総数との間の最小値を取得するステップと、比率、仮想プロセッサの平均使用率、および最小の積を計算するステップと、上記積を、プリセット時間セグメントにおけるそれぞれの仮想マシンのプロセッサリソースとして決定するステップ。
【0150】
任意で、プロセッサ(複数可)はまた、以下のステップのプログラムコードを実行することもできる。すなわち、期間は複数のプリセット時間セグメントを含み、候補ホストマシンから条件(複数可)を満たす候補ホストマシン(複数可)をフィルタリングおよび選択するステップであって、条件(複数可)は、各プリセット時間セグメントの重ね合わせ結果がホストマシン(複数可)の使用可能なリソースデータを超えないことを含む、フィルタリングおよび選択するステップと、条件(複数可)を満たす候補ホストマシン(複数可)を、仮想マシンに対応するターゲットホストマシンとして決定するステップ。
【0151】
任意で、プロセッサ(複数可)はまた、以下のステップのプログラムコードを実行することもできる。すなわち、条件(複数可)を満たす候補ホストマシンが複数存在するとき、各リソースデータに対応する重み値を取得するステップと、重み値(複数可)で重ね合わせ結果(複数可)に重み付けして、条件(複数可)を満たす候補ホストマシン(複数可)に対応するそれぞれの重み付結果(複数可)を取得するステップと、重み付け結果が最小である候補ホストマシンを、仮想マシンに対応するターゲットホストマシンとして決定するステップ。
【0152】
任意で、プロセッサ(複数可)はまた、以下のステップのプログラムコードを実行することもできる。すなわち、仮想マシンを、仮想マシンに対応するターゲットホストマシンに移行するステップ。
【0153】
任意で、プロセッサ(複数可)はまた、以下のステップのプログラムコードを実行することもできる。すなわち、仮想マシンが新しく作成された仮想マシンであるとき、新しく作成された仮想マシンの識別子および仕様を取得するステップと、新しく作成された仮想マシンの同じ識別子および/または同じ仕様を有するターゲット仮想マシンを検索するステップと、ターゲット仮想マシンの予測結果が、新たに作成された仮想マシンの予測結果であると決定するステップ。
【0154】
本発明の実施形態を使用して、次の期間に仮想マシンが使用するリソースデータを予測およびスケジューリングし、候補ホストマシンの現在使用されているリソースデータおよび使用可能なリソースデータを取得することによって、どの候補ホストマシンに仮想マシンを移行する必要があるか決定される、つまり、ターゲットホストマシンが決定される。これにより、各ホストマシンが各仮想マシンのそれぞれのピークのためにリソースをリザーブする必要なく、仮想マシンのためのホストマシンをより正確に選択することができる。これにより、リソースの無駄が減り、仮想マシンを異なるホストマシンにできるだけ均一にスケジューリングおよび分散して、物理マシンの安定したロードバランシングが達成される。
【0155】
したがって、本出願の前述の実施形態は、ホストマシンが各仮想マシンのそれぞれのピークのためにリソースをリザーブする必要があり、リソースの大きな無駄になるという既存技術における技術的問題を解決する。
【0156】
当業者は、
図8に示されている構造が単に例示のために使用されており、コンピュータ端末がスマートフォン(Androidフォン、iOSフォンなど)、タブレットコンピュータ、ハンドヘルドコンピュータ、およびモバイルインターネットデバイス(モバイルインターネットデバイス、MID)、PAD、および他の端末デバイスであってもよいことを理解することができる。
図8は、上記電子デバイスの構造を限定するものではない。例えば、コンピュータ端末はまた、
図8に示されるものよりも多いか、または少ない構成要素(ネットワークインターフェース、ディスプレイデバイスなど)を含んでもよいか、または
図8に示されるものとは異なる構成を有してもよい。
【0157】
当業者は、前述の実施形態の様々な方法におけるステップのすべてまたは一部が、プログラムを通じて端末デバイスの関連ハードウェアに命令することによって完了することができることを理解することができる。プログラムは、フラッシュディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク、または光ディスクなどを含んでよいコンピュータ可読記憶媒体に記憶されてもよい。
【0158】
第7の実施形態
本発明の実施形態はまた、記憶媒体を提供する。任意で、本実施形態では、記憶媒体は、第1の実施形態で提供された仮想マシンスケジューリング方法によって実行されるプログラムコードを記憶するために使用することができる。
【0159】
任意で、本実施形態では、記憶媒体は、コンピュータネットワーク内のコンピュータ端末グループ内の任意のコンピュータ端末、またはモバイル端末グループ内の任意のモバイル端末にあってよい。
【0160】
任意で、本実施形態では、記憶媒体は、以下のステップを実行するために使用されるプログラムコードを記憶するように構成される。すなわち、次の期間に仮想マシンが必要とするリソースデータを予測して予測結果を取得するステップであって、リソースデータは、プロセッサリソース、プロセッサ競合の回数、キャッシュミスの数、および消費電力量の使用率のうちのすくなくとも1つを含む、取得するステップと、候補ホストマシンの使用済みリソースデータおよび使用可能なリソースデータを取得するステップと、予測結果を各候補ホストマシンの使用済みリソースデータに追加して各候補ホストマシンの重ね合わせ結果を取得するステップと、各候補ホストマシンの重ね合わせ結果を各ホストマシンの使用可能なリソースデータと個別に比較し、候補ホストマシンから仮想マシンに対応するターゲットホストマシンを選択するステップ。
【0161】
本発明の前述の実施形態のシーケンス番号は、説明のために使用されたにすぎず、実施形態の品質を表すものではない。
【0162】
本発明の上記実施形態では、各実施形態の説明は、それ自体の重要性を有する。1つの実施形態において詳細に説明されていない部品については、他の実施形態の関連する説明を参照することができる。
【0163】
本出願に提供される幾つかの実施形態では、開示された技術的内容は、他の手段で実装され得ることが理解されるべきである。上記装置の実施形態は、単なる例示である。例えば、ユニットの分割は、論理機能の分割にすぎない。実際の実装形態では、他の分割方法が存在してもよい。例えば、複数のユニットまたは構成要素を組み合わせるか、または別のシステムに統合してもよい。あるいは、一部の機能を無視するか、実装しないこともできる。さらに、表示もしくは議論された相互結合または直接結合または通信接続は、幾つかのインターフェース、ユニット、またはモジュールを介した間接結合または通信接続であってもよく、電気的な形態または他の形態であってもよい。
【0164】
別々の構成要素として説明されるユニットは、物理的に別々であっても別々でなくてもよい。ユニットとして表示される構成要素は、物理的なユニットであってもなくてもよく、すなわち、一箇所に位置していても、複数のネットワークユニットに分散されていてもよい。ユニットの一部または全部は、実施形態の解決策の目的を達成するための実際の必要性に応じて選択されてよい。
【0165】
さらに、本発明の様々な実施形態における機能ユニットは、単一の処理ユニットに統合されてもよい。あるいは、各ユニットは物理的に単独で存在してもよい。あるいは、2つ以上のユニットが1つのユニットに統合されてもよい。上述の統合ユニットは、ハードウェアまたはソフトウェア機能ユニットの形態で実現することができる。
【0166】
ソフトウェア機能ユニットの形態で実装され、独立した製品として販売または使用される場合、統合ユニットは、コンピュータ可読記憶媒体に格納することができる。このような理解に基づいて、本発明の技術的解決策の本質、または既存技術に貢献する部分、または技術的解決策の全部または一部は、ソフトウェア製品の形態で具現化することができる。このようなコンピュータソフトウェア製品は、記憶媒体に格納され、コンピューティングデバイス(パーソナルコンピュータ、サーバ、またはネットワークデバイスなどであってよい)に、本発明の各実施形態における方法のステップの全部または一部を実行させる幾つかの命令を含む。記憶媒体には、フラッシュディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、モバイルハードディスク、磁気ディスク、または光ディスク等といったプログラムコードを格納可能である様々な種類の媒体が含まれる。
【0167】
上記は、本発明の好適な実施形態のみを表す。当業者は、本発明の原理から逸脱することなく、多くの改良および修正を行うことができることを指摘しておくべきである。これらの改良および修正もまた、本発明の保護範囲に含まれると見なされるべきである。