(57)【特許請求の範囲】
【請求項１】
複数のホスト装置上に複数の仮想マシンを配置する方法であって、前記方法は、
ホスト装置におけるリソースの利用状態に係る所定の基準である第１のホスト能力限界を用いて第１の整理統合を行うステップであって、前記第１の整理統合を行うステップは、
各々が前記複数の仮想マシンの少なくとも１つのホストをなす電源オン状態のホスト装置である前記ホスト装置の第１のセットと、電源オフ状態のホスト装置である前記ホスト装置の第２のセットとを識別するステップと、
前記第１のセットのホスト装置の各々に対する効率を、各ホスト装置における消費電力およびリソースの利用状態に基づいて判定するステップと、
前記第１のセットのホスト装置から少なくとも１つの非効率なホスト装置を、前記効率と前記第１のホスト能力限界に基づいて、識別するステップと、
前記非効率なホスト装置上の仮想マシンを、前記第１のセットのホスト装置のうちの前記非効率なホスト装置以外の他のホスト装置に配置した場合の第１のシミュレーションを行い、前記第１のシミュレーションが成功した場合の前記仮想マシンの配置に基づいて第１のマッピングを作成するステップであって、前記第１のシミュレーションは、前記複数のホスト装置の各々が前記第１のホスト能力限界より低い、リソースの利用状態を示す場合に成功したと判定される、ステップと
を含む、ステップと、
前記第１のマッピングを用いて、負荷バランス化操作を行うステップであって、前記負荷バランス化操作を行うステップは、
前記複数のホスト装置から、ホスト装置におけるリソースの利用状態に係る所定の基準である第２のホスト能力限界を超えるリソースの利用状態を示す、少なくとも１つの過負荷のホスト装置を識別するステップと、
前記過負荷のホスト装置上の仮想マシンを、前記複数のホスト装置のうちの前記過負荷のホスト装置以外の他のホスト装置に配置した場合の第２のシミュレーションを行い、前記第２のシミュレーションが成功した場合の前記仮想マシンの配置に基づいて第２のマッピングを作成するステップであって、前記第２のシミュレーションは、前記複数のホスト装置の各々が前記第２のホスト能力限界より低い、リソースの利用状態を示す場合に成功したと判定される、ステップと、
を含む、ステップと、
前記第２のマッピングを用いて、第２の整理統合を行うステップであって、前記第２の整理統合は、前記第１の整理統合における、前記第１のホスト能力限界を、ホスト装置におけるリソースの利用状態に係る所定の基準である第３のホスト能力限界に、前記第１のマッピングを第３のマッピングに、それぞれ置き換えて行われる、ステップと、
前記第３のマッピングに基づいて前記複数のホスト装置上に前記仮想マシンを再配置するステップと、
を備えたことを特徴とする方法。
【請求項２】
前記リソースは、ＣＰＵリソースであることを特徴とする請求項１に記載の方法。
【請求項３】
前記リソースは、記憶装置リソースであることを特徴とする請求項１に記載の方法。
【請求項４】
前記負荷バランス化操作を行うステップは、前記第２のセットのホスト装置から選択した少なくとも１つのホスト装置に前記仮想マシンの少なくとも１つを移動させるステップを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記第２のセットのホスト装置から選択した少なくとも１つのホスト装置は、ホスト装置における消費電力およびリソースの利用状態に基づいて、前記第２のセットのホスト装置から最も効率的なホスト装置であると判定されたホスト装置であることを特徴とする請求項４に記載の方法。
【請求項６】
前記第１のホスト能力限界は、前記第２のホスト能力限界より高い基準であることを特徴とする請求項１に記載の方法。
【請求項７】
前記第２のホスト能力限界は、前記第３のホスト能力限界より高い基準であることを特徴とする請求項６に記載の方法。
【請求項８】
前記第１の整理統合を、前記複数のホスト装置のうちの少なくとも２つに対して行うことを特徴とする請求項１に記載の方法。
【請求項９】
複数のホスト装置と前記複数のホスト装置上で動作可能な複数の仮想マシンを管理するシステムであって、前記システムは、
ホスト装置におけるリソースの利用状態に係る所定の基準である第１のホスト能力限界を用いて第１の整理統合を行い、前記第１の整理統合を行うことは、
各々が前記複数の仮想マシンの少なくとも１つのホストをなす電源オン状態のホスト装置である前記ホスト装置の第１のセットと、電源オフ状態のホスト装置である前記ホスト装置の第２のセットとを識別し、
前記第１のセットのホスト装置の各々に対する効率を、各ホスト装置における消費電力およびリソースの利用状態に基づいて判定し、
前記第１のセットのホスト装置から少なくとも１つの非効率なホスト装置を、前記効率と前記第１のホスト能力限界に基づいて、識別し、
前記非効率なホスト装置上の仮想マシンを、前記第１のセットのホスト装置のうちの前記非効率なホスト装置以外の他のホスト装置に配置した場合の第１のシミュレーションを行い、前記第１のシミュレーションが成功した場合の前記仮想マシンの配置に基づいて第１のマッピングを作成し、前記第１のシミュレーションは、前記複数のホスト装置の各々が前記第１のホスト能力限界より低い、リソースの利用状態を示す場合に成功したと判定される
ことを含み、
第１のマッピングを用いて、負荷バランス化操作を行い、前記負荷バランス化操作を行うことは、
前記複数のホスト装置から、ホスト装置におけるリソースの利用状態に係る所定の基準である第２のホスト能力限界を超えるリソースの利用状態を示す、少なくとも１つの過負荷のホスト装置を識別し、
前記過負荷のホスト装置上の仮想マシンを、前記ホスト装置のうちの前記過負荷のホスト装置以外の他のホスト装置に配置した場合の第２のシミュレーションを行い、前記第２のシミュレーションが成功した場合の前記仮想マシンの配置に基づいて第２のマッピングを作成し、前記第２のシミュレーションは、前記複数のホスト装置の各々が前記第２のホスト能力限界により低い、リソースの利用状態を示す場合に成功したと判定される
ことを含み、
前記第２のマッピングを用いて、第２の整理統合を行い、前記第２の整理統合は、前記第１の整理統合における、前記第１のホスト能力限界を、ホスト装置におけるリソースの利用状態に係る所定の基準である第３のホスト能力限界に、前記第１のマッピングを第３のマッピングに、それぞれ置き換えて行われ、
前記第３のマッピングに基づいて前記複数のホスト装置上に前記仮想マシンを再配置する
ように構成されたことを特徴とするシステム。
【請求項１０】
前記負荷バランス化操作を、ワーストフィット減少アルゴリズムにより行うことを特徴とする請求項９に記載のシステム。
【請求項１１】
前記システムは、
前記第１の整理統合、前記負荷バランス化操作、および前記第２の整理統合を複数回実行し、
作成される複数の前記第３のマッピングの各々をスコア付けし、
前記複数の第３のマッピングのうちの１つから、前記仮想マシンの再配置を行うための前記第３のマッピングを選択するように更に構成されたことを特徴とする請求項９に記載のシステム。
【請求項１２】
前記リソースの利用状態は、ホスト装置におけるリソースのコストを含み、前記リソースのコストは、前記ホスト装置における電力供給コスト及び冷却コストを含むことを特徴とする請求項９に記載のシステム。
【請求項１３】
前記リソースの利用状態は、ＣＰＵ使用率、ストレージ使用量、およびネットワーク使用量のうちの少なくとも１つであることを特徴とする請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、最適化仮想マシンマイグレーション機構に関する。
【背景技術】
【０００２】
仮想マシンはコンピュータ装置のコンピュータソフトウェア実装であり、そこで仮想マシンは物理コンピュータのようにプログラムを実行することができる。仮想マシンは何百又は何千のホストマシンが動作しているデータセンタで広く使用される。コンピューティングリソースを管理するために、多くのデータセンタは、仮想マシンを１つのホスト装置から他のホスト装置に移動させることができるので、サーバコンピュータを仮想マシンとして動作させる。
【０００３】
多くのデータセンタは周期的な基準で動作し、需要は１日のある期間又は一週間のある日に亘ってより高くなる。低い需要の時には、仮想マシンを、所定のホストマシンに整理統合し、他のホストマシンを停止（電源オフ）するか又は減少電力モードで動作させることができる。
【０００４】
多くの場合に、データセンタは大量の電気を消費している場合がある。低減したコンピュータ負荷の期間にハードウェアを電源オフするとデータセンタはその電気コストを実質的に減少させることができる。
【０００５】
仮想マシンをホスト装置上に配置する方法は複雑なパッキング問題を有することがある。
【発明の概要】
【０００６】
仮想マシン管理システムは、３相マイグレーション分析を行ってより低効率のホストの仮想マシンをより高効率のホストに移動させることができる。多くの場合に、マイグレーションは、非効率のホスト装置の電源停止を可能にし、データセンタ又は他のユーザに対する全体的なエネルギーコストを低減させることができる。マイグレーション分析は、仮想マシンを整理統合し、かつホスト装置を解放するとき、第１の整理統合、負荷バランス化、及び第２の整理統合を行うことを含むことができる。また、マイグレーション分析は、容量を拡張するとき、第１の負荷バランス化、整理統合、及び第２の負荷バランス化を行うことを含むこともできる。
【０００７】
本概要は以下の詳細な説明で更に記述される概念の抜粋を簡単な形で紹介するために提供される。本概要は請求項の構成の重要な特徴又は主要な特徴を識別することを意図としておらず、また請求項の構成の範囲を限定するために用いられることを意図としていない。
【図面の簡単な説明】
【０００８】
図面において、
【０００９】
【図１】仮想マシンを管理するシステムを示す一実施形態の図である。
【図２】整理統合を行う方法を示す一実施形態のフローチャートである。
【図３】負荷バランス化を行う方法を示す一実施形態のフローチャートである。
【図４】データを収集して効率を判定する方法を示す一実施形態のフローチャートである。
【図５】整理統合方法を示す一実施形態のフローチャートである。
【図６】負荷バランス化方法を示す一実施形態のフローチャートである。
【発明を実施するための形態】
【００１０】
効率駆動最適化処理は、仮想マシンのためにデータセンタ又はホスト装置の他のグループにおける能力を拡張又は収縮させる３相マイグレーション分析を行うことができる。多くの場合に、仮想マシンを整理統合又は負荷バランス化する３相マイグレーション分析は、仮想マシンを非効率なホスト装置からより高効率のホスト装置へ移動させることができ、かつより高効率なホスト装置を動作（電源オン）させ、非効率なホスト装置を停止（電源オフ）させることを含むことができる。
【００１１】
３相マイグレーション分析は、ホスト装置の効率スコアを判定することができるデータを収集することを含むことができる。効率スコアを用いて、電源停止の候補を識別することができ、当該候補の仮想マシンを第１の整理統合処理において他のホストに移動させることを試みることができる。第１の整理統合処理の間に、高い閾値を用いて、仮想マシンに設定することができる。
【００１２】
整理統合処理の第２の相では、負荷バランス化操作を過負荷のホスト装置のために行うことができる。ある場合には、負荷バランス化操作は、電源オンしている１以上のホストをもたらし、一部の仮想マシンを受け入れることができる。新たに電源オンしたホストを、より高効率のホストから選択することができる。
【００１３】
整理統合の第３の相では、第２の整理統合を行い、潜在的に活用されていないホスト装置を識別することができる。第２の整理統合では、より低い閾値を用いて、仮想マシンを配置し、ホスト装置が過負荷にならないようにする。
【００１４】
負荷バランス化操作は、整理統合操作と同じような方法で動作することができる。負荷バランス化操作の第１のステップでは、仮想マシンのホスト装置を識別する低い閾値を設定することができる。任意の新しいホスト装置を、最も効率のよいホスト装置から選択することができる。第２のステップは、整理統合ステップとすることができ、第３のステップは、より高い閾値を有する第２の負荷バランス化操作とすることができる。
【００１５】
最適化処理は、ホスト装置上の仮想マシンの現在の状態を考慮することができ、仮想マシンの移動又はスラッシングを最小限に抑えることができる。更に、最適化処理は、仮想マシンを、非効率のホスト装置からより高効率のホスト装置へ移動させることを重視することができる。
【００１６】
本明細書及び請求項を通して用語「ホスト(host)」を、仮想マシンを実行することができる物理的なハードウェアプラットフォームを説明するために用いる。ある実施形態において、軽量のオペレーティングシステムがホスト上で動作することができ、かつ１つ、２つ、又は更に多くの仮想マシンをサポートすることができる。ある実施形態において、何十又は何百の仮想マシンでさえ、１つの物理的なホスト装置上で実行することができる。
【００１７】
用語「ホスト」は、仮想マシンを実行することができる任意の種類のハードウェアプラットフォームとすることができる。ある場合には、ハードウェアプラットフォームは、仮想マシンを動作させるために特別に設計された、専用のプロセッサ、メモリ、ディスク記憶装置、及びネットワーク接続部を含むサーバコンピュータとすることができる。他の場合には、ホストは、従来のデスクトップ又はサーバコンピュータとすることができ、又はモバイル電話、ラップトップコンピュータ、又は他の装置等のポータブル装置とすることができる。本明細書のために、多くの例はデータセンタアプリケーションを含むことができる、その分野の当業者には多くの他の実施が可能であることが理解できるであろう。
【００１８】
本明細書を通して同一の参照番号は図面の説明を通して同一の要素を示している。
【００１９】
要素を「接続した(connected)」又は「連結した(coupled)」と称しているとき、その要素を一緒に直接接続もしくは連結することができ、又は１以上の介在要素が存在する場合もある。逆に、要素を「直接接続した(directly connected)」又は「直接連結した(directly coupled)」と称しているとき介在要素は存在しない。
【００２０】
本主題を、装置、システム、方法、及び／又はコンピュータプログラム製品として実施することができる。よって、本主題の一部又は全てをハードウェア及び／又はソフトウェア（ファームウェア、常駐ソフトウェア、マイクロコード、状態マシン、ゲートアレイ等を含む）において実施することができる。更に、本主題は、命令実行システムとの接続による又は命令実行システムとの接続における利用のために媒体で実施されるコンピュータ利用可能又はコンピュータ読み取り可能なプログラムを有するコンピュータ利用可能又はコンピュータ読み取り可能な記憶装置上におけるコンピュータプログラム製品の形式をとることができる。本文書の文脈において、コンピュータ利用可能又はコンピュータ読み取り可能な媒体は、命令実行システム、装置、もしくはデバイスとの接続による、又は命令実行システム、装置、もしくはデバイスとの接続における利用のためにプログラムを含む、保存する、通信する、伝える、もしくは運ぶことができる任意の媒体とすることができる。
【００２１】
コンピュータ利用可能又はコンピュータ読み取り可能な媒体は、限定されないが、電子、磁気、光学、光磁気、赤外線、又は半導体のシステム、装置、デバイス、又は伝搬媒体とすることができる。例としては、限定されないが、コンピュータ読み取り可能な媒体はコンピュータ記憶媒体及び通信媒体を含むことができる。
【００２２】
コンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラムモジュール又は他のデータ等の情報の記憶のための任意の方法又は技術において実施される揮発性及び不揮発性、リムーバブル及び非リムーバブル媒体を含む。コンピュータ記憶媒体は、限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又は他のメモリ技術、ＣＤ−ＲＯＭ、ディジタルバーサタイルディスク（ＤＶＤ）又は他の光学式記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置、又は所望の情報を保存するために用いることができ、命令実行システムによってアクセスすることができる任意の他の媒体を含む。ここで留意すべきは、コンピュータ利用可能な又はコンピュータ読み取り可能な媒体は、プログラムが印刷された紙又は他の適切な媒体であり、そのプログラムを例えば、紙又は他の媒体の光学的な走査を介して電子的に取り出し、次いでコンパイルし、解釈し、又はそうでなければ、必要ならば適切な方法で処理し、そしてコンピュータメモリに保存することができることである。
【００２３】
通信媒体は、一般に、搬送波又は他の搬送機構等の変調されたデータ信号内のコンピュータ読み取り可能な命令、データ構造、プログラムモジュール又は他のデータを実装し、任意の情報配信媒体を含む。用語「変調されたデータ信号」はその信号内の情報を符号化するような方式で設定又は変更されたその特性の１以上を有する信号を意味する。通信媒体は例として、限定されないが、有線ネットワーク又は直接有線接続等の有線媒体を含み、そして、音響、ＲＦ、赤外線及び他の無線媒体等の無線媒体を含む。また、上記のいずれかの組み合わせがコンピュータ読み取り可能な媒体の範囲内に含まれるはずである。
【００２４】
本主題を、コンピュータ実行可能な命令の一般的な状況において実施するとき、その実施形態は１以上のシステム、コンピュータ、又は他の装置によって実施されるプログラムモジュールを含むことができる。一般に、プログラムモジュールは、特定のタスクを実行する又は特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、リソース、データ構造等を含む。通常、プログラムモジュールの機能を、様々な実施形態において望まれたように組み合わせ、又は分散することができる。
【００２５】
図１は、仮想マシンを管理するシステムを示す一実施形態１００の図である。実施形態１００は、いくつかのホスト装置で仮想マシンを管理するシステムを簡易化した例である。
【００２６】
図１の図は、システムの機能的なコンポーネントを示している。ある場合に、そのコンポーネントはハードウェアコンポーネント、ソフトウェアコンポーネント、又はハードウェアとソフトウェアの組み合わせとすることができる。コンポーネントの一部は、アプリケーションレベルのソフトウェアとすることができる一方、他のコンポーネントはオペレーティングシステムレベルのコンポーネントとすることができる。ある場合には、１つのコンポーネントの他のコンポーネントへの接続は、２以上のコンポーネントが単一のハードウェアプラットフォーム上で動作する緊密な接続関係とすることができる。他の場合には、コンポーネントを長い距離に及ぶネットワーク接続を介して形成することができる。各実施形態は、異なるハードウェア、ソフトウェア、及び記述された機能を達成する相互接続アーキテクチャを用いることができる。
【００２７】
実施形態１００は、多くのホスト装置を含むことができるデータセンタの例であり、ホスト装置の各々は複数の仮想マシンを実行することができる。仮想マシンは、装置のソフトウェアバージョンとすることができる。大きなデータセンタ環境において、サーバコンピュータを、仮想マシンとして実行することができる。需要が減少するほど、仮想マシンをいくつかのホスト装置に整理統合し、他のホストを電力停止する又は減少したエネルギー状態で動作することができる。需要が増加するほど、ホストをオンライン状態にし、仮想マシンを利用可能なホストの間に拡げることができる。仮想マシンを利用可能なホストに拡げる処理は、負荷バランス化として知られているかもしれない。
【００２８】
データセンタの全体的な負荷が減少するほど、いくつかのホスト装置は十分に活用されなくなる場合がある。十分に活用されないホストを、そのホスト上の仮想マシンを他のホストに移動させることによって整理統合することができ、そして、そのホストの電源を切ることができる。通常、いくつかのホスト装置が十分な利用状態より減少したときに整理統合操作を起こすことができる。
【００２９】
整理統合するホストを選択するときに、ホストの利用に関わらず、非効率なホストを選択することができる。選択したホスト上の仮想マシンがそのホストから立ち去ると、そのホストを電源停止するか又は減少電力モードで動作させることができる。
【００３０】
データセンタの全体的な負荷が増加するほど、いくつかのホストは過負荷になる場合がある。過負荷のホストは、仮想マシンを過負荷のホストから、過負荷でない他の動作中のホストへ移動させることによって、負荷バランス化を図ることができる。ある場合には、他の動作していないホストがそれ自身が過負荷にされることなく仮想マシンを受け入れることが可能な場合がある。そのような場合には、新しいホストの電源オンを認識することができ、仮想マシンをその新しいホストに移動することができる。
【００３１】
負荷バランス化の間に電源オンするホストを選択する際、効率の良いホストを選択することができる。
【００３２】
ホストの効率を、消費電力により分割されるホストによって供給されるリソースによって判定することができる。多くの実施形態において、リソースはＣＰＵの能力である一方、他の実施形態は様々なリソースを用いることができる。
【００３３】
多くの場合には、ホストは様々な性能及び様々な能力を有することができる。ホストにおいて利用可能なリソースを、消費可能リソースと消費不能リソースとに分類することができる。
【００３４】
消費可能リソースは、仮想マシンによって消費されるリソースであり、かつ他の仮想マシン又はホストオペレーティングシステムと共有させることはできない。消費可能リソースの例は、ＲＡＭ（ランダムアクセスメモリ）とすることができる。各仮想マシンは、その仮想マシンに割り当てられたＲＡＭの専用量を有することができ、そのＲＡＭを他の仮想マシンによって使用することはできない。他の例は、ディスク空間又は他の記憶装置とすることができる。
【００３５】
ある場合には、消費可能リソースを様々なコンポーネントリソースの合計とみなすことができる。例えば、ハードディスクリソースを、ディスク読み取り速度、ディスク書き込み速度、及び容量の合計とみなすことができる。
【００３６】
消費不能リソースは、仮想マシン又はホストオペレーティングシステムによって共有可能なリソースとすることができる。一例は、ホスト装置上で利用可能な多くのプロセッサである。ある仮想マシンは２つ、４つ、もしくはそれ以上のプロセッサ又はコアを用いて動作することができる。仮想マシンが４つのプロセッサを使用するとしても、他の仮想マシン又はホストオペレーティングシステムは、同一のプロセッサを使用することができる。
【００３７】
バイナリーリソースは、消費不能リソースのサブセットとすることができる。バイナリーリソースは、ホスト上に存在するか又は存在しないリソースとすることができる。例えば、ホストは、グラフィックスプロセッサ、又は特定の仮想マシンによって使用可能な他の特徴を有することができるし又は有さなくても良い。
【００３８】
様々なリソースを、仮想マシンをホストに配置するとき、検討のための次元として本明細書で説明することができる。用語「次元(dimensions)」は、ホストの効率を評価するときに考慮可能なリソース又は任意のの他の要因を含むことを意図されている。ある場合には、次元はホスト上で利用可能な又は仮想マシンによって用いられるリソースに対応しなくても良い。
【００３９】
データセンタ１０４では、ラック１０８が複数のホスト装置を含むことができる。一般的なデータセンタは、複数のブレードサーバ１１２を包含可能なブレードエンクロージャ１１０を備えるラックを有する。あるラックは、スタンドアローンのサーバ１１４、記憶装置１１６、及び電源部１１８を含むことができる。多くの場合には、ラック又はラック群は、冷却システム、電力調整装置、無停電電源部、及び他のコンポーネントを有することができる。大規模なデータセンタでは、何百又は何千でさえのラックが存在する場合があり、それらの多くは異なる構成を有することができる。
【００４０】
多くのリソースを、いくつかのホスト装置を介して共有することができる。リソースを共有するとき、リソースの「コスト」又は電力使用を、複数のホストに分けることができ、そのホストは非常に効率的となる場合がある。数少ないホストがリソースを共有するとき、そのホストはより非効率となる場合がある。ホストは、他のホストが電源オフしたとき、数少ない動作中のホストを離れて、他の共有リソースを消費するので、非効率となる場合がある。
【００４１】
一例としてデータセンタを使用し、機器のラックは、電源部、冷却又は他のサービス部等のサービス部をラック全体に提供する装置を有することができる。１つのサーバがラック内で動作する場合でも、そのラックベースのサービス部を作動させることができる。そのような場合に、１つのサーバ又はホスト装置は、ラックベースの電源部、ラック冷却、又は他のサービス部の電力消費を、多くのホスト装置を介して共有しないとき、非常に非効率になる場合がある。
【００４２】
他の例では、ブレードエンクロージャは、電力、ネットワークアクセス、冷却、又は他のサービス部を複数のブレードに提供することができる。ブレードエンクロージャを、エンクロージャ内で動作可能な１つのブレードサーバをサポートするためにさえ、十分に使用することができる。そのような場合には、ブレードエンクロージャの電力消費は、動作しているホスト装置に起因する場合があり、そのホストの非効率さを引き起こす。
【００４３】
データセンタ内の仮想マシンを整理統合するときに、非効率のホストを、仮想マシンを他の装置に移動することによって、シャットダウンのために認識することができる。負荷バランス化のとき、効率的なホストを、オンライン状態とし、かつ仮想マシンを受け入れるため考慮することができる。
【００４４】
ホストの効率を、ホストによる消費電力でホストによって提供されるリソースを分割することによって判定することができる。ホストによる消費電力を、共有装置を使用しているホストの数で分割された共有装置による消費電力として概算することができる。ブレードエンクロージャの上記の例においては、ブレードエンクロージャによる消費電力を、そのエンクロージャ内で動作するブレードサーバの間で分割することができる。ブレードエンクロージャは、１０のサーバを有し、その１０のサーバの全てが動作しているならば、ブレードエンクロージャによる消費電力を、１０で分割し、かつ各ホストに帰属することができる。同一のブレードエンクロージャが１つの動作しているサーバのみを有しているならば、そのブレードエンクロージャによる全消費電力を、そのサーバに帰属ことができる。
【００４５】
多くの実施形態において、ホストの効率を、そのホストによる消費電力によるリソースを測定することによって表すことができる。一般的な実施形態は、ＣＰＵ能力を消費電力によって分割することができる。ホストによる消費電力は、共有電源部、共有冷却リソース、又は他の共有装置等の共有装置によってホストに基づいた消費を含むことができる。
【００４６】
他の実施形態において、ホストの効率を、ディスク容量、ネットワーク性能、又は他のリソース等の他のリソースを測定し、かつ電力消費で分割することによって表すことができる。ある実施形態は、リソースを分析して、効率を判定するために不足のリソースを識別することができる。そのような場合には、リソースは、１つの分析から他の分析に変更することができる。
【００４７】
ある実施形態において、多くの配置シナリオを、シミュレーションし、かつ分析し、好ましいシナリオを識別することができる。そのような実施形態において、数千又は数百万のシナリオを、シミュレーションすることができ、スコアをシナリオに割り当てることができる。そのスコアを使用し、実施の場合がある好ましいシナリオを選択することができる。
【００４８】
実施形態１００は、データセンタ環境において仮想マシンを管理するシステムの例である。その仮想マシンマネージャ１０２は、データセンタ１０４を構成する装置とすることができ、そこにおいて複数の仮想マシン１０６を様々なホスト装置によって実行することができる。
【００４９】
仮想マシンマネージャ１０２は、ハードウェアプラットフォーム上で動作するアプリケーションとすることができる。その仮想マシンマネージャ１０２を、ハードウェアコンポーネント１２２で動作するソフトウェアコンポーネント１２０から構成することができる。ハードウェアコンポーネント１２２は、プロセッサ、ランダムアクセスメモリ１２６、ディスク又は他の記憶装置１２８、及びネットワーク接続部１３０を含むことができる。ある実施形態において、ハードウェアコンポーネント１２２の一部又は全てを仮想化することができる。
【００５０】
仮想マシンマネージャ１０２は、データ収集器１３２、分析エンジン１３４、配置サービス部１３６、及び警報システムを含むソフトウェアコンポーネント１２０を有することができる。データ収集器１３２は、ホスト装置及び仮想マシンから様々な次元のステータスを収集することができる。分析エンジン１３４は、ホスト上の仮想マシンのセットの配置を判定することができ、その配置サービス部１３６は、仮想マシンを指定したホストに移動することができる。警報システム１３８は、整理統合又は負荷バランス化操作を実行することができるとき、状態を識別することができる。
【００５１】
データ収集器１３２は、ホストによって供給され、かつ仮想マシンによって要求される次元又はリソース上でデータを収集することができる。その供給及び要求情報を使用し、様々な次元の不足を判定することができ、それらを配置マネージャ１３４によって順に使用して、ホスト上の仮想マシンのために様々な配置を判定することができる。
【００５２】
分析エンジン１３４は、多くの様々な配置構成を評価することができる。各配置構成は、特定のホスト装置で実行される特定の仮想マシンのセットとすることができる。ある実施形態において、数千、数百万、又はそれ以上の配置構成を評価することができる。配置構成毎に、スコアをパラメータを最適化するために計算することができる。例えば、各構成は、最適化構成を選択することができる電力消費スコアを有することができる。
【００５３】
図２は、仮想マシンの整理統合を行う方法を示す一実施形態２００のフローチャートである。実施形態２００は、実施形態１００において示されるように仮想マシンマネージャ１０２によって実行可能な方法の簡易化例である。
【００５４】
他の実施形態は、異なるシーケンス、追加又はより少ないステップ、及び異なる用語又は技術を用いて類似の機能を達成することができる。ある実施形態において、様々な動作又は動作のセットを、他の動作と並行して、同期方法又は非同期方法で実行することができる。本明細書で選択されたステップは、簡易化の形式で動作の一部の原理を示すために選択された。
【００５５】
実施形態２００は、整理統合ルーチンを実行する１つの方法を示している。１以上のホスト装置が十分に活用されなくなったとき、整理統合を開始することができ、その処理は仮想マシンをホスト装置から他の装置に移動することができる。
【００５６】
多くの場合に、整理統合処理は、１以上のホスト装置を電源停止させることができる。一般に、整理統合は、データセンタの全負荷を減少するときに生じることができ、多くの場合に、いくつかのホスト装置は十分に活用されなくなる場合がある。未活用は、ホスト上で動作している１以上の仮想マシンが、より少ないホストリソースを消費しているときに起きる場合があり、使用されていないホストリソースの多くを停止させる。
【００５７】
整理統合処理は、緩い制限を用いて第１の整理統合操作を行い、中程度の制限を用いて負荷バランス化操作を行い、そしてより厳しい制限を用いて第２の整理統合操作を行うことができる。
【００５８】
その制限は、ホストの能力を示す閾値又は他のパラメータとすることができる。例えば、データセンタは、通常、８０％の能力でホストを運営している。８０％の能力要因を選択することによって、そのホストは、能力を超えることなく、負荷変動に対応することができる場合がある。
【００５９】
様々なデータセンタは、多くの様々な要因に基づいて様々な制限を設定することができる。データセンタ負荷が、極めて一定及び予測可能である場合に、通常の能力要因は、８５％、９０％、又は更に高い値など、より高くなる場合がある。ある場合には、データセンタ負荷は、変動し易い場合があり、結果として、管理者が、７５％、７０％、６０％、又は更に低い値など、低い能力要因を使用することになる。
【００６０】
ある実施形態において、能力要因を、日の時間又は他の要因のために変更することができる。例えば、労働時間の間に高負荷を見込むデータセンタは、より低い能力要因で動作することができ、そのデータセンタはすぐに反応できる状態を維持することができる。データセンタの負荷が更に予想可能で安定しているとき、その同一のデータセンタを、夜通し、より高い能力ファクタで動作させることができ、多くのホスト装置を、電源オフすることができる。
【００６１】
実施形態２００において、第１の整理統合を緩い制限で動作させることができる。そのような動作では、仮想マシンを、非効率の装置からより効率的な装置に移動することでき、その際、その効率的な装置が過負荷になる場合がある。負荷バランス化操作は、過負荷の装置から他の装置へ仮想マシンを移動させることができ、仮想マシンを受け入れることができる１以上の新しい装置を始動させることを含むことができる。負荷バランス化操作を行うとき、始動される装置を、更に効率的な装置から選択することができる。
【００６２】
より厳しい制限を用いて第２の整理統合操作を実行することができ、第２の整理統合操作はあるホスト装置を無負荷又は電源停止にさせることができるが、その制限を選択し、過負荷状態が他の装置で起きないようにすることができる。
【００６３】
実施形態２００の３相方法は、結果的に電源停止される非効率のホスト装置及び始動されるより効率的なホストとすることができる。通常の処理では、いくつかの非効率のホスト装置を電源停止することができ、より少ない数の更に効率的なホスト装置を電力アップすることができる。
【００６４】
実施形態２００は、ブロック２０２において整理統合する状態を識別することによって開始する。異なる実施形態は、整理統合する状態を識別することに対して異なる機構を有することができる。ある実施形態において、監視システムは、能力が所定の閾値より低いホスト装置からの警報を受け入れることができる。例えば、リソースの２０％利用状態より低いホスト装置は、実施形態１００の警報システム１３８等の中央集中型監視システムに警報を送信することができる。
【００６５】
様々な実施形態は、十分に活用されていないホストを識別することができる利用状態の下限を有することができる。上記の例において、２０％の利用要因を用いる。ある実施形態は、５０％、４０％、３０％、２５％、１５％、１０％、又は利用状態の下限に対する他の要因を用いることができる。利用状態の上限に対して上記したように、利用状態の下限は、１日の流れ、日又は週、又は他の季節的又は周期的な基準の中で変化することができる。
【００６６】
ある実施形態において、十分に活用されなくなっている１つのホスト装置は、実施形態２００の整理統合操作を始動することができる。他の実施形態において、所定の数の装置からの警報を使用し、整理統合操作を開始することができる。
【００６７】
ある実施形態において、整理統合の状態は、データセンタの全負荷がデータセンタの現在の能力より著しく小さいときに起きる場合がある。そのような実施形態は、個々のホスト装置に対するデータに加えて又は代えて、データセンタの幅広い能力及び負荷パラメータに基づいて整理統合を行うことができる。
【００６８】
ブロック２０４において、ホスト及び仮想マシンデータを収集することができる。そのようなデータを収集する方法の例を、実施形態４００に示す。ホスト及び仮想マシン毎に収集されたデータは、電力使用と共にリソース使用を識別するために使用可能なデータとすることができる。ある実施形態においては、不足のリソースを識別し、ホスト装置の効率を計算するために用いることができる。
【００６９】
ブロック２０６において、ホスト装置の電力効率を判定することができる。ホストの消費電力によるリソースを分割することによって、そのホスト装置の効率を判定することができる。リソースとしてＣＰＵを用いる簡単な例において、ホストの効率を、消費ワットにより分割されたＣＰＵ能力において測定することができる。
【００７０】
ブロック２０８において、緩い制限を用いて第１の整理統合を行うことができる。整理統合方法の例を、本明細書で後述される実施形態５００に示す。整理統合方法は、非効率のホスト装置を識別し、仮想マシンを非効率のホスト装置から他の更に効率の良いホスト装置に移動しようと試みることができる。
【００７１】
ブロック２０８の第１の整理統合を、緩い制限で行うことができる。緩い制限は、ホストがそれらの意図した能力を超えて仮想マシンによって負荷をかけることができる制限とすることができる。例えば、仮想マシンをホスト上にパッキングするとき、その受け入れホストに、所望の８０％能力を超える仮想マシンをパッキングすることができる。ある実施形態において、緩い制限は受け入れホストが９０％、１００％、１１０％、又はより高い能力でさえ超えることを可能にする場合がある。
【００７２】
ブロック２０８の整理統合を、任意の仮想マシンを移動することなく、シミュレーションした整理統合として行うことができる。実施形態２００を通して、シミュレーション操作を行い、ホスト装置に対する仮想マシンのマッピングを生成することができる。マッピングを判定した後、仮想マシンをそのマッピングに応じて移動することができる。
【００７３】
ブロック２０８で用いられた制限は、２種類の制限とすることができる。第１の制限は、上記したように仮想マシンを受け入れるホストのための上限能力とすることができる。第２の制限は、電源停止が検討されているホスト装置のための下限能力とすることができる。緩い制限は厳しい制限より電源停止するホスト装置のより大きなセットを考慮することができる。
【００７４】
例えば、緩い制限は、電源停止するために３０％、又はより低い能力を有するホストを考慮することができる。厳しい制限は、電源停止するために１０％、又はより低い能力を有するホストのみを考慮することができ、それはホスト装置の非常に小さいセットとすることができる。
【００７５】
ブロック２０８の整理統合の後、第１の中間マッピングを作成することができる。第１の中間マッピングをブロック２１０において使用し、中程度の制限を用いてシミュレーションした負荷バランス化を行うことができる。シミュレーションした負荷バランス化処理の例を、本明細書において後述される実施形態６００に示す。
【００７６】
そのシミュレーションした負荷バランス化において、能力限界を超えるホストを調べ、そのホストから他のホストに一部の仮想マシンを移動することができる。仮想マシンを受け入れることができるホストがない場合には、新しいホストが電源オンされて仮想マシンを受け入れることができる。
【００７７】
負荷バランス化操作の間に、新しいホストを、より効率的なホスト装置から選択することができる。多くの場合には、ホスト装置のソートされたリストを、効率に基づいて作成することができ、最も効率が良いホストをそのリストのトップから選択することができる。
【００７８】
多くの実施形態において、ブロック２１０の中程度の制限は、データセンタに対して一般的な動作制限又は厳しい制限とすることができる。ある実施形態において、ブロック２１０の中程度の制限は、データセンタに対する厳しい制限より、更に厳しい又は更に緩い場合がある。
【００７９】
ブロック２１０の負荷バランス化は、ホストに対する仮想マシンの第２のマッピングを生成することができる。第２のマッピングを、ブロック２１２において使用し、より厳しい制限及び最終マッピングを用いて第２の整理統合を行うことができる。
【００８０】
ブロック２１２の第２の整理統合は、ブロック２０８と類似の動作とすることができるが、様々な制限のセットで行われる。ブロック２１２では、より厳しい制限のセットを考慮することができる。ブロック２１２では、電源停止のために、更に制限された下限能力限界を考慮することができ、更に制限された上限能力限界を有するホストに仮想マシンを移動することができる。
【００８１】
ある実施形態において、ブロック２１２の第２の整理統合を、負荷バランス化のためにブロック２１０で使用したように、同一の上限制限を用いて行うことができるが、更に厳しい下限制限を用いる。
【００８２】
第２の整理統合をブロック２１２で行った後、マッピングを生成することができる。マッピングを、ブロック２１４において用いて、実際に仮想マシンの一部を新しい場所に移動し、一部のホスト装置を電源オフすることができる。
【００８３】
ある実施形態において、ブロック２０４〜２１２の分析を何度も行い、多くの異なるマッピングを生成することができる。ある実施形態は。数千以上のマッピングを生成するシミュレーションを行うことができ、それらのマッピングの各々をスコア付けすることできる。マッピングの１つをブロック２１４で選択して実施することができる。
【００８４】
実施形態２００の処理は、ホストの効率を最大化する、整理統合したマッピングを生成することができる。低効率のホストを電源オフすることができ、新しいホストを始動するならば、その新しいホストを更に効率的なホストにすることができる。
【００８５】
実施形態２００の処理は、第１の整理統合が緩い制限で起きることを可能にする。第１の整理統合は、一部のホストを過能力にさせるが、電源停止可能な非効率のホストの数を最大化することができる。負荷バランス化操作は、過能力ホストから負荷の一部を、始動可能でその能力を受け入れることができる１以上の効率的なホストを含む、他のホストに移すことができる。１以上のホストに非常に軽く負荷がかかるが、他のホストを過負荷にしていないならば、第２の整理統合操作を更に考慮することができる。
【００８６】
ブロック２０８及び２１２の整理統合操作は、ホストの効率に基づいてホスト装置を無負荷化して電源オフにする試みを行うことができ、ホストの効率はホストの現在の能力に対応しなくても良い。ある場合には、そのようなホストは、能力以上で動作している場合がある。その整理統合操作は、仮想マシンを他のより効率的なホストに移動している間、非効率のホストを電源オフすることができる。その最終結果は、相当な節電となる場合がある。
【００８７】
実施形態２００の整理統合処理は、一部のホストを始動するという結果となり得る。そのような場合に、始動されたホストは電源停止されたホストより更に効率的とすることができる。通常の場合に、停止されるホストより、より少ない数のホストを始動させることができる。
【００８８】
図３は、仮想マシンの負荷バランス化を行う方法を示す一実施形態３００のフローチャートである。実施形態３００は、実施形態１００で示されるように、仮想マシンマネージャ１０２によって行われ得る方法の簡易例である。
【００８９】
他の実施形態は異なるシーケンス、追加又はより少ないステップ、及び異なる用語又は技術を用いて類似の機能を達成することができる。ある実施形態において、様々な動作又は動作のセットを他の動作と並行して同期方法で又は非同期方法で実行することができる。本明細書で選択されたステップは簡易化の形式で動作のある原理を示すために選択された。
【００９０】
実施形態３００は、実施形態２００の処理と概念的に類似であるが、整理統合よりむしろ負荷バランス化操作を行う。実施形態３００は、厳しい制限を有する第１の負荷バランス化処理、中程度の制限を有する整理統合操作、及び緩い制限を有する第２の負荷バランス化操作を行う。
【００９１】
実施形態３００は、厳しい制限を用いることによって第１のバランス化動作において多数の仮想マシンを広げることを試みる。この動作は仮想マシンを多数のホスト装置に広げることができ、１以上の効率的なホスト装置を始動することができる。それに続く整理統合操作は、より非効率の装置を停止することを試みることができ、第２の負荷バランス化操作は任意の過負荷の装置を除去することができる。
【００９２】
実施形態３００の最終結果は、負荷バランス化操作を、より低効率のホスト装置より効率的なホスト装置を選んでいる間に行うことができることである。ある動作において、非効率な状態で現在動作しているホストを、整理統合操作の間に停止することができ、第１の負荷バランス化操作の間に始動された効率的なホストを、動作中のままにすることができる。そのような場合には、負荷バランス化操作は、あるホスト装置を電源オフする結果となる場合がある。
【００９３】
整理統合操作は、ホストの効率に基づいてホスト装置を無負荷化することを試みることができ、ホストの効率はホストの現在の能力に対応していなくても良い。ある場合に、そのようなホストは能力以上で動作している場合がある。その整理統合操作は、仮想マシンを他のより効率的なホストに移動している間に、非効率のホストを電源オフすることができる。
【００９４】
負荷バランス化操作は、既に電源オンされているホスト装置を介して仮想マシンを移動する試みを行うことができる。しかしながら、その現在電源オンのホストに能力がない場合、新しいホストを電源オンし、オンライン状態にすることができる。電源オンされている新しいホストを、より効率的なホストから選択することができる。
【００９５】
実施形態３００は、ブロック３０２において、負荷バランス化するための状態を識別することによって開始する。異なる実施形態は、負荷バランス化するための状態を識別する異なる機構を有することができる。ある実施形態において、監視システムは、能力のある閾値を超えるホストから警報を受け入れることができる。例えば、リソースの８０％利用状態を超えるホスト装置は、実施形態１００の警報システム１３８等の中央集中型監視システムに警報を送信することができる。
【００９６】
ある実施形態において、過剰利用となっている１つのホスト装置は、実施形態３００の負荷バランス化操作を始動させることができる。他の実施形態において、所定の数の装置からの警報を用いて、負荷バランス化操作を始動させることができる。
【００９７】
ある実施形態において、負荷バランス化のための状態は、データセンタの全負荷がそのデータセンタの所望の能力より非常に大きいときに生じる場合がある。そのような実施形態は、個々のホスト装置についてのデータに加えて又は代えて、データセンタの幅広い能力及び負荷パラメータに基づいて負荷バランス化を行うことができる。
【００９８】
ブロック３０４において、ホスト及び仮想マシンデータを収集することができる。そのようなデータを収集する方法の例を、実施形態４００に示す。ホスト及び仮想マシン毎に収集されたデータは、電力使用と共にリソース使用を識別するために使用可能なデータとすることができる。ある実施形態においては、不足のリソースを識別し、ホスト装置の効率を計算するために用いることができる。
【００９９】
ブロック３０６において、ホスト装置の電力効率を判定することができる。そのホスト装置の効率を、ホストの消費電力によるリソースを分割することによって判定することができる。リソースとしてＣＰＵを用いる簡単な例においては、ホストの効率を、消費ワットにより分割されたＣＰＵ能力において測定することができる。
【０１００】
ブロック３０８において、第１の負荷バランス化を厳しい制限を用いて行うことができる。負荷バランス化方法の例を、本明細書で後述される実施形態６００に示す。負荷バランス化方法は、仮想マシンを、高負荷の装置から低負荷の装置に転送することができる。ある場合に、新しいホストを始動させ、仮想マシンの一部を受け入れることができる。そのような場合に、その新しいホストを、効率的なホストのソートされたリストから選択することができる。
【０１０１】
ブロック３０８の第１の負荷バランス化を、厳しい制限を用いて行うことができる。厳しい制限は、ホストを、それらの所望の能力より低い限界にまで、負荷低下することができる制限とすることができる。例えば、ホストから仮想マシンを移動させるとき、ホストを、その能力が所望の能力より小さい所定の能力になるまで負荷低下することができる。例えば、所望の能力は８０％とすることができるが、ブロック３０８の厳しい制限を設定し、そのホスト装置を、６０％より低くなるまで負荷低下することができる。
【０１０２】
ブロック３０８の負荷バランス化を、仮想マシンを実際に移動させることなくシミュレーションした負荷バランス化として行うことができる。実施形態３００を通して、シミュレーション操作を行い、ホスト装置に対する仮想マシンのマッピングを生成することができる。マッピングを判定した後、仮想マシンを、そのマッピングに応じて移動することができる。
【０１０３】
ブロック３０８の負荷バランス化の後、第１の中間マッピングを作成することができる。第１の中間マッピングを、ブロック３１０において用いて、中程度の制限を用いてシミュレーションした整理統合を行うことができる。シミュレーションした整理統合処理の例を、本明細書において後述される実施形態６００に示す。
【０１０４】
ブロック３１０のそのシミュレーションした整理統合において、能力限界を下回るホストを調べ、そのホストから他のホストに、ある仮想マシンを移動させることができる。ホストを整理統合して電源オフすることが更にできないとき、整理統合操作は停止することができる。
【０１０５】
ブロック３１０で用いられた制限は、２種類の制限とすることができる。第１の制限は、上記したように仮想マシンを受け入れるホストのための上限能力とすることができる。第２の制限は、電源停止が考慮されているホスト装置のための下限能力とすることができる。緩い制限は、厳しい制限より、電源停止するホスト装置のより大きなセットを考えることができる。
【０１０６】
例えば、緩い制限は、電源停止するために３０％、又はより低い能力を有するホストを考慮することができる。厳しい制限は、電源停止するために１０％、又はより低い能力を有するホストだけを考慮することができ、それはホスト装置のかなり小さいセットとすることができる。負荷バランス化操作の間に、新しいホストを、より効率的なホスト装置から選択することができる。多くの場合には、ホスト装置のソートされたリストを、効率に基づいて作成することができ、最も効率が良いホストをそのリストのトップから選択することができる。
【０１０７】
多くの実施形態において、ブロック３１０の中程度の制限は、データセンタには一般的な動作制限又は厳しい制限である場合がある。ある実施形態において、ブロック３１０の中程度の制限は、データセンタに対して厳しい制限より更に厳しい又は更に緩い場合がある。
【０１０８】
ブロック３１０の整理統合は、ホストに対して仮想マシンの第２のマッピングを生成することができる。第２のマッピングを、ブロック３１２において用いて、より緩い制限及び最終マッピングを用いて第２の負荷バランス化を行うことができる。
【０１０９】
ブロック３１２の第２の負荷バランス化は、ブロック３０８と類似の動作とすることができるが、異なる制限のセットを用いて行われる。ブロック３１２では、制限の緩いセットを考慮することができる。ブロック３１２では、負荷バランス化は、一般的に望まれ得るより高い使用を有する装置に対して生じる場合がある。多くの場合に、実施形態３００の負荷バランス化を、データセンタが需要の高まりに直面しているときに行うことができる。そのようなものとして、データセンタの負荷が上昇することが予測され得るので、ブロック３１２の負荷バランス化を行い、目標の利用状態よりいくらか少ない状態で各ホストを利用することができる。
【０１１０】
ある実施形態において、ブロック３１２の第２の負荷バランス化を、整理統合のためにブロック３１０で用いられたように、同一の上限を用いて行うことができる。
【０１１１】
第２の整理統合を、ブロック３１２において行った後、マッピングを生成することができる。当該マッピングを、ブロック３１４において用いて、仮想マシンの一部を新しい場所に実際に移動させ、あるホスト装置を電源オフさせることができる。
【０１１２】
ある実施形態において、ブロック３０４〜３１２の分析を、何度も行い、多くの異なるマッピングを生成することができる。ある実施形態は、数千以上のマッピングを生成するシミュレーションを行うことができ、そのマッピングの各々をスコア付けることができる。マッピングの１つを、ブロック３１４で選択して実施することができる。
【０１１３】
実施形態３００の処理は、ホストの効率を最大化する、整理統合したマッピングを生成することができる。低効率のホストを電源オフさせることができ、新しいホストを始動するならば、その新しいホストを更に効率的なホストにすることができる。
【０１１４】
実施形態３００の処理は、第１の負荷バランス化が厳しい制限で起きることを可能にする。第１の負荷バランス化は、電源オンされ得る新しいホストに仮想マシンを強要することができる。整理統合操作は、非効率のホストを負荷低下させることを試みることができる。第２の負荷バランス化操作は、残りのホストを介して仮想マシンを広げることができる。
【０１１５】
実施形態３００の負荷バランス化処理は、あるホストを電源停止するという結果をもたらすことができる。そのような場合に、始動されたホストは、電源停止されたホストより更に効率的とすることができる。通常の場合に、停止されるホストより多い数のホストを始動させることができる。
【０１１６】
図４は、供給及び需要データを収集する方法を示す一実施形態４００のフローチャートである。実施形態４００は、実施形態１００で示されたようにデータ収集器１３２によって、実施形態２００のブロック２０４によって、また、実施形態３００のブロック３０４によって行われ得る方法の簡易例である。
【０１１７】
他の実施形態は、異なるシーケンス、追加又はより少ないステップ、及び異なる用語又は技術を用いて類似の機能を達成することができる。ある実施形態において、様々な動作又は動作のセットを、他の動作と並行して、同期方法又は非同期方法で実行することができる。本明細書で選択されたステップは、簡易化の形式で動作のある原理を示すために選択された。
【０１１８】
実施形態４００は、供給及び需要データを収集することができる一つの方法である。供給データは、ホスト装置上で見つけ出されたリソース又は他の次元に関係することができる一方、需要データは、仮想マシンによって用いられるリソース又は次元とのマッチングに関係することができる。データの収集後、不足を判定し、不足スコアをホスト装置毎に判定することができる。また、各ホストの効率を判定することができる。
【０１１９】
実施形態４００を、異なる初期状態を用いて、ホスト装置のセット上で行うことができる。１つのシナリオでは、仮想マシンが現在動作していないように、ホスト装置を分析することができる。そのようなシナリオでは、データセンタ全体に亘った仮想マシンの最適化配置を識別することができる。別のシナリオでは、ある他の初期状態のセットを用いて整理統合又は負荷バランス化を行うことができる。
【０１２０】
ブロック４０２において、分析の初期状態を判定する。
【０１２１】
ブロック４０４〜４０８において、需要を、各仮想マシンの次元毎に判定する。ブロック４０４では、各仮想マシンを分析する。ブロック４０６における次元毎にその次元に対する需要をブロック４０８では判定する。
【０１２２】
分析された次元は実施形態間で変化する。多くの場合には、その次元は消費したリソース、消費しなかったリソース、バイナリーリソース、及び他の次元を含むことができる。
【０１２３】
ブロック４１０におけるホスト装置毎に、各次元を、ブロック４１２において分析する。その次元対する供給を、ブロック４１４において判定する。
【０１２４】
電力消費を、ブロック４１６において判定することができる。そのブロック４１６の電力消費は、他のホストと共有可能な装置のホストの割り当て分と共に、ホスト自身によって消費された電力を含むことができる。例えば、電源部、冷却システム、及び他の装置をホスト間で共有することができる。非常に僅かなホストが装置を共有している場合には、共有装置の電力消費をそれらの僅かなホストだけによるものとすることができる。多くの場合には、装置を共有する他のホストを電源オンしないとき、ホストの効率をかなり減少させることができる。
【０１２５】
簡単な例において、サーバのラックは５０のサーバを含むことができ、サーバが全て動作しているとき、５０のサーバの間で共有される冷却システム及び電源部を有することができる。４９のサーバの動作を停止し、１つのサーバが動作中であるとき、そのラック冷却及び電源部の電力の全てがその１つの動作中のサーバに帰属することができる。そのようなサーバは、５０のサーバ全てが動作中で冷却システム及び電源部の電力コストを共有する場合に比べて非常に非効率である。
【０１２６】
ブロック４１６における次元毎に、ブロック４１８において不足を判定する。
【０１２７】
不足を次の式によって判定することができる。
【０１２８】
【数１】
0005363646.tif 000002
【０１２９】
次元毎に、全てのホスト供給の合計と全ての仮想マシン需要の合計との差分によって全ての仮想マシン需要の合計を分割することによって不足を計算することができる。不足は次元毎の無次元数である。高い不足値は次元が不足していることを示す一方、低い不足値は次元が多いことを示す。
【０１３０】
ブロック４２０では、各ホストを分析する。ブロック４２２では、ホストに対する効率を判定する。ホストに帰属される消費電力による選択したリソースを分割することによって効率を計算することができる。ある実施形態において、不足のリソースは、上記の式において判定されるように最も高い不足要因を有するリソースとすることができる。
【０１３１】
ある実施形態において、ブロック４２２の効率を、ＣＰＵ能力、ディスク容量、又はある他のリソース等の所定のリソースを用いて判定することができる。不足のリソースを用いる実施形態において、そのリソースは１つの分析から他の分析に変更することができる。
【０１３２】
図５は、整理統合方法を示す一実施形態５００のフローチャートである。実施形態５００は、実施形態３００のブロック３１０と共に、実施形態２００のブロック２０８及び２１２の整理統合操作によって行われ得る方法の簡易例である。
【０１３３】
他の実施形態は、異なるシーケンス、追加又はより少ないステップ、及び異なる用語又は技術を用いて類似の機能を達成することができる。ある実施形態において、様々な動作又は動作のセットを他の動作と並行して同期方法で又は非同期方法で実行することができる。本明細書で選択されたステップは、簡易化の形式で動作のある原理を示すために選択された。
【０１３４】
実施形態５００の動作は、仮想マシンの全てを１つのホストから他のホストに配置することを試みることができる。全ての仮想マシンを移動するとき、その１つのホストを電源オフすることができる。実施形態５００は、その受け入れホストの能力が、その処理の終了時点において満たされるまで、多くのホストのために動作を行うことができる。
【０１３５】
実施形態５００は、効率の順にホストを処理することによってホストを電源オフすることを試み、先ず、最小の効率のホストから始める。ある場合には、最小の効率のホストはそのホストの能力限界又はそれ以上とすることができる。
【０１３６】
ブロック５０２では、開始マッピングを読み取ることができる。ブロック５０４では効率を増加させる中で、複数のホストを順序付けることができ、ブロック５０６では１つのホストを選択することができる。ブロック５０６で選択されたホストは、ブロック５０４におけるリストに基づいて最も効率的なホストとすることができる。
【０１３７】
ブロック５０８におけるホスト上の仮想マシン毎に、ブロック５１０では受け入れホストの上限を超えることなくその仮想マシンを配置する試みを他のホスト上で行うことができる。例えば、上限が８０％能力である場合、仮想マシンの追加によってその受け入れホストが８０％能力を超えないとき、その仮想マシンをホスト上に配置することができる。
【０１３８】
仮想マシンを配置する処理５１０を、ワーストフィット減少(worst-fit decreasing)アルゴリズムを含む任意の種類のパッキングアルゴリズムを用いて、行うことができる。
【０１３９】
ブロック５１２において配置が成功したとしたならば、ブロック５１４ではその配置をマッピングに加えることができ、次の仮想マシンをブロック５０８において分析することができる。
【０１４０】
ブロック５１２において配置が成功しなかったとしたならば、ホストを整理統合することができないのでブロック５１６においてループを抜け出すことができる。ブロック５１８では現在のホストの変更をマッピングから取り除くことができ、ブロック５２４ではその処理を終了することができる。
【０１４１】
仮想マシンの全てを、ブロック５０８において成功裏に配置したならば、ブロック５２０ではマッピングに電源オフとしてホストを記録することができる。ブロック５２２においてより多くのホストを分析するならば、その処理はブロック５０６に戻って、次の非効率のホストを選択することができる。そうでなければ、その処理はブロック５２４において終了することができる。
【０１４２】
図６は、負荷バランス化方法を示す一実施形態６００のフローチャートである。実施形態６００は、実施形態２００のブロック２１０及び実施形態３００のブロック３０８及び３１２によって行われ得る方法の簡易例である。
【０１４３】
他の実施形態は、異なるシーケンス、追加又はより少ないステップ、及び異なる用語又は技術を用いて類似の機能を達成することができる。ある実施形態において、様々な動作又は動作のセットを他の動作と並行して同期方法で又は非同期方法で実行することができる。本明細書で選択されたステップは簡易化の形式で動作のある原理を示すために選択された。
【０１４４】
実施形態６００は、仮想マシンを、過負荷ホストから過負荷でないホストに配置することを試みる。過負荷でないホストが存在しないならば、新しいホストを電源オンさせることができ、その新しいホストが仮想マシンを受け入れることができる。利用可能な最も効率的なホストからその新しいホストを選択することができる。
【０１４５】
ブロック６０２では、開始マッピングを読み取ることができる。
【０１４６】
ブロック６０４では、効率を減少させるに伴って、電源オフの複数のホストを順序付けることができる。ブロック６０４における電源オフのホストの順序付けられたリストを用いて、電源オン可能な新しいホストを選択することができる。１つの新しいホストを選択するとき、最も効率的なホストを選択することができる。
【０１４７】
ブロック６０６では、当該動作のために定義された能力上限によって過負荷ホストを識別することができる。例えば、その能力上限が６０％であったならば、６０％より大きな利用状態のホストを選択することができる。
【０１４８】
ブロック６０８では過負荷ホストの各々を分析することができる。
【０１４９】
ブロック６１０では他のホストの能力上限を超えることなく過負荷ホストからの仮想マシンを配置することを試みることができる。受け入れるホストがその能力上限を超えないようにその配置を任意の他のホストに対して行うことができる。
【０１５０】
ブロック６１２において配置が成功したとしたならば、ブロック６１４ではその配置をマッピングに加えることができる。ブロック６１５において現在のホストがまだ過負荷であるならば、その処理はブロック６１０に戻って他の仮想マシンを配置することを試みることができる。ブロック６１５において現在のホストがもはや過負荷でないならば、その処理はブロック６０９に戻って他の過負荷ホストを処理することができる。
【０１５１】
ブロック６１２において配置が成功しなかったとしたならば、ブロック６１６では電源オンとする新しいホストを識別することができる。ブロック６０４において生成されたリストから現在電源オンでない最も効率的なホストとしてその新しいホストを選択することができる。
【０１５２】
ブロック６１８では新しいホストに仮想マシンを配置することができ、ブロック６２０ではその新しいホストをマッピングに加えることができる。ブロック６１４ではその仮想マシンの配置をマッピングに加えることができ、その処理を継続させることができる。
【０１５３】
ブロック６０８において全ての過負荷ホストを処理するとき、その処理はブロック６２２で終了することができる。
【０１５４】
構成の上記の記載を図示及び説明の目的のために表現している。構成を開示された明確な形式に包括又は限定する意図はない。上記の開示を考慮すると他の変更及び変形が可能である。実施形態を、本発明の原理を最良の説明のための順番に選択しかつ説明し、それらによる実際の応用はその分野の他の当業者が、期待される特定の使用に適合されるように様々な実施形態及び様々な変更に本発明を最良に利用することを可能にする。添付の請求項は従来技術によって限定される場合を除き他の代替実施形態を含むように構成されることが意図される。
【図１】
0005363646.tif 000003
【図２】
0005363646.tif 000004
【図３】
0005363646.tif 000005
【図４】
0005363646.tif 000006
【図５】
0005363646.tif 000007
【図６】
0005363646.tif 000008