JP2012094119A - 仮想マシン間の通信 - Google Patents

仮想マシン間の通信 Download PDF

Info

Publication number
JP2012094119A
JP2012094119A JP2011177511A JP2011177511A JP2012094119A JP 2012094119 A JP2012094119 A JP 2012094119A JP 2011177511 A JP2011177511 A JP 2011177511A JP 2011177511 A JP2011177511 A JP 2011177511A JP 2012094119 A JP2012094119 A JP 2012094119A
Authority
JP
Japan
Prior art keywords
computer
virtual machines
network
virtual machine
amount
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
JP2011177511A
Other languages
English (en)
Inventor
Stanley Suffern Edward
エドワード・スタンリー・サファーン
C Daram Pamela
パメラ・シー・ダーラム
Lee Aldridge James
ジェームズ・リー・ウルドリッジ
Peter Hanson Nils
ニルス・ピーター・ハンソン
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2012094119A publication Critical patent/JP2012094119A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • 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/45591Monitoring or debugging support
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities

Abstract

【課題】仮想マシンの間のネットワーク・トラフィックを監視して、仮想マシン環境におけるシステム・リソースを管理するためのコンピュータ実施の方法を提供する。
【解決手段】複数の計算ノードに割り当てられる仮想マシンの間のネットワーク・トラフィックを監視し、ネットワーク・トラフィックの閾値量を上回る量の仮想マシン間通信を有する第1及び第2の仮想マシンを識別する方法。方法はさらに、第1及び第2の仮想マシンのうちの1つを移動させて、第1及び第2の仮想マシンが同じ計算ノードに割り当てられて第1及び第2の仮想マシンの間の仮想マシン間通信がもはやネットワーク上に向けられないようにすることを含む。各々の計算ノードはイーサネット・リンクに結合され、ネットワーク・スイッチの管理情報データベースからデータが取得されて第1及び第2の仮想マシンの間の通信に使用されているネットワーク帯域幅の量が決定される。
【選択図】図1

Description

本発明は、仮想マシンの管理に関する。より具体的には、本発明は、仮想マシン環境におけるシステム・リソースの管理に関する。
クラウド・コンピューティング環境において、ユーザにはコンピューティング・クラウド内のどこかの仮想マシンが割り当てられる。仮想マシンは、ソフトウェアのオペレーティング・システムを提供し、例えば、入力/出力帯域幅、処理能力及びメモリ容量などの物理的リソースにアクセスしてユーザのアプリケーションをサポートする。プロビジョニング・ソフトウェアは、クラウド内の使用可能なコンピュータ・ノードの間で仮想マシンを管理し、割り当てる。各々の仮想マシンは他の仮想マシンから独立して動作するので、複数のオペレーティング・システム環境が、互いに完全に分離した状態で同じ物理的コンピュータ上に共存することができる。
仮想マシンの間のネットワーク・トラフィックを監視して、仮想マシン環境におけるシステム・リソースを管理するためのコンピュータ実施の方法を提供する。
本発明の一実施形態は、ネットワーク上の複数の計算ノードに割り当てられた仮想マシン間のネットワーク・トラフィックを監視することと、ネットワーク・トラフィックの閾値量を上回る量の仮想マシン間通信をネットワーク上で有する第1及び第2の仮想マシンを識別することとを含むコンピュータ実施の方法を提供する。本方法は、第1及び第2の仮想マシンのうちの少なくとも1つを移動させて、第1及び第2の仮想マシンが同じ計算ノードに割り当てられて第1及び第2の仮想マシンの間の仮想マシン間通信がもはやネットワーク上に向けられないようにすることをさらに含む。
本発明によって用いることのできる例示的なコンピュータを示す。 本発明によって用いることのできる例示的なブレード・シャーシを示す。 仮想化ラック内の複数の物理的コンピュータを用いる本開示の方法の別の実施形態を示す。 ネットワーク・スイッチから取得され、管理ノードによって保持されるネットワーク・トラフィック・データを示すテーブルである。 1つのサーバから別のサーバへの仮想マシンの移動を示すブロック図である。 本発明の方法のフローチャートである。
本発明の一実施形態は、ネットワーク上の複数の計算ノードに割り当てられた仮想マシン間のネットワーク・トラフィックを監視することと、ネットワーク・トラフィックの閾値量を上回る量の仮想マシン間通信をネットワーク上で有する第1及び第2の仮想マシンを識別することとを含むコンピュータ実施の方法を提供する。本方法は、第1及び第2の仮想マシンのうちの少なくとも1つを移動させて、第1及び第2の仮想マシンが同じ計算ノードに割り当てられて第1及び第2の仮想マシンの間の仮想マシン間通信がもはやネットワーク上に向けられないようにすることをさらに含む。
さらに別の実施形態において、計算ノードはネットワーク・スイッチのイーサネット・リンクに結合され、データがネットワーク・スイッチの管理情報データベースから取得されて、第1及び第2の仮想マシンの間の通信に使用されているイーサネット・リンクを通るネットワーク帯域幅の量が決定される。2つの仮想マシンの間の通信は、「仮想マシン間」通信、又は「VM間」通信と呼ぶことができる。複数の計算ノード上の仮想マシンを有するシステムにおいて、VM間通信はネットワーク・トラフィックを生じる。ネットワーク・スイッチはその管理情報ベース(MIB)内にネットワーク統計データを収集する。随意にMIBデータを用いて第1及び第2の仮想マシンの間の通信に起因するネットワーク帯域幅の量を識別することができ、またMIBデータは第1及び第2の仮想マシンに割り当てられた媒体アクセス制御(MAC)アドレス又はインターネット・プロトコル(IP)アドレスによって識別される。例えば、MIBデータは、2つの仮想マシンを表すMACカプレットに関連するネットワーク・トラフィックを識別することができ、又は識別するのに用いることができる。従って、送信元VMのMACアドレス及び宛先VMのMACアドレスの両方は2つのVMの間のネットワーク・トラフィックに関連して記録することができる。各ネットワーク・スイッチのMIBからのデータは、各シャーシ内の管理ノードと共有することができ、及び/又は遠隔管理ノードと直接共有することができる。遠隔管理ノードがネットワーク・トラフィック・データを直接に取得するか又はシャーシ管理ノードから取得するかに関わらず、遠隔管理エンティティは全てのVM間トラフィック・データにアクセスできる。随意に、最大の仮想マシン間通信を有する仮想マシンを、場合により最大から最小のVM間ネットワーク・トラフィックまでランク付けて、移動させるのに適切なVMの識別を容易にすることができる。
本発明の様々な実施形態において、VM間トラフィックは、ネットワーク・トラフィックに関連するIPアドレスもまた識別することができるので、全体のネットワーク・レベルで又は全体のネットワークの内部で、例えばIPサブネット・レベルで管理することができる。ルータ(2つの異なったサブネットを接続できるデバイス)を必要としないのでIPサブレベルを管理する方がより容易であり得る。従って、MIBはネットワーク全体にわたる仮想マシンのIPアドレスを用いることができる。ネットワークが1つのサブネットのみを含む場合には、各仮想マシンに関連するMACアドレスを用いるのがより簡単となることがあり、何故ならMACアドレスはISO層2のエンティティであるのに対してIPアドレスは層3のエンティティであるからである。
ネットワーク・トラフィックは、高レベルのVM間ネットワーク・トラフィックを有する2つの仮想マシンを同じ物理的計算ノード上に配置することによって減らすことができる。従って、本方法は、第1又は第2の仮想マシンのうちの少なくとも1つを移動させることを含む。1つの選択肢において、移動は第1の仮想マシンを第1の計算ノードから、第2の仮想マシンが動作している第2の計算ノードに移動させることを含む。しかし、第1及び第2の計算ノードは追加の仮想マシンを収容するには不十分な量の未使用リソースを有する可能性がある。別の選択肢において、移動は第1及び第2の仮想マシンの両方を、第1及び第2の仮想マシンの両方を収容するのに十分な使用可能リソースを有する1つの計算ノード、例えば第3の計算ノードに移動させることを含む。
別の実施形態において、コンピュータ実施の方法は、第1及び第2の仮想マシンの間の、一定時間にわたる仮想マシン間通信の典型的な値を計算することをさらに含む。そのような典型値の非限定的な例としては、一定時間にわたる平均帯域幅、中央帯域幅、及び帯域幅の標準偏差が挙げられる。従って、第1及び第2の仮想マシンは、閾値を上回る仮想マシン間通信の典型値を有する仮想マシンとして識別することができる。瞬時値ではなく典型値を用いることは、VM間ネットワーク・トラフィックの短時間ピークの結果としてVMを移動させることを避けることになる。
さらに別の実施形態において、コンピュータ実施の方法は、第2の計算ノードが第1の仮想マシンを動作させるのに十分な未使用リソースを有することを確認することをさらに含む。この確認は、第2の計算ノードの重要プロダクト・データ(VDP)を読み出して第2の計算ノードの入力/出力容量、プロセッサ容量、及びメモリ容量を決定することを含むことができる。さらに、プロセッサ利用量及びメモリ利用量を第2の計算ノードから直接取得することができる。未使用リソースの量は、サーバなどの所与の計算ノードのリソースの容量から現在の利用量を差し引くことにより計算することができる。
コンピュータ実施の方法のさらに別の実施形態は、第1の仮想マシンを動作させている第1の計算ノード上の未使用リソースの量及び第2の仮想マシンを動作させている第2の計算ノード上の未使用リソースの量を決定することと、第1及び第2の仮想マシンのリソース要求量を決定することと、第1の仮想マシンを第2の計算ノードに移動させることと第2の仮想マシンを第1の計算ノードに移動させることとの間の選択をして移動後のリソースの利用量が第1及び第2の計算ノードの間で最も均一に分配されるようにすることと、をさらに含む。
第1及び第2の仮想マシンを識別するのに用いられるネットワーク・トラフィックの閾値量は、計算ノードの帯域幅の絶対量として又はリンク帯域幅の百分率として提示することができることを認識されたい。例えば、絶対閾値量は100Mbpsとすることができ、また百分率閾値量はリンク帯域幅の25%とすることができる。
遠隔管理ノードは、ネットワーク・トラフィックの閾値量を上回る量の仮想マシン間通信をネットワーク上で有する第1及び第2の仮想マシンを識別することに関与することができる。本発明の様々な実施形態により、遠隔管理ノードはネットワーク内のネットワーク・スイッチのMIBからのネットワーク統計を収集し、どの仮想マシンが最も高レベルのVM間ネットワーク・トラフィックを有するかを決定することができる。遠隔管理ノードは次に第1及び第2の仮想マシンのうちの少なくとも1つの適切な移動を開始して2つの仮想マシンが同じ物理的サーバ上に存在するようにすることができる。2つの仮想マシンが単一の物理的サーバ上で同時に動作する場合、それらVMの間のVM間通信は物理的サーバから抜け出ないのでネットワーク・トラフィックに対する寄与が減るか又は解消される。
本出願の文脈において、仮想マシンは、様々な量のリソース、例えば入力/出力容量、メモリ容量、及びプロセッサ容量などを要求するものとして記述することができる。しかし、仮想マシンによって使用されるリソースの量は、大部分は仮想マシンに割り当てられるソフトウェア・タスク又はプロセスの関数となる。例えば、コンピュータ支援の設計製図(CADD)アプリケーション及び大きなスプレッドシート・アプリケーションは大量の計算を必要とするのでプロセッサ集約型であるが非常に小さなネットワーク帯域幅しか必要としないと考えられる。ウェブ・サーバ・アプリケーションは大量のネットワーク帯域幅を使用するが、使用可能なメモリ又はプロセッサ・リソースの小部分のみを使用することがある。それとは反対に、データベース管理を用いる財務アプリケーションは遥かに大きな処理容量及びメモリ容量を必要とし、入力/出力帯域幅の使用量は少ない。
さらに別に実施形態において本方法は、計算ノードのプロセッサ利用量及びメモリ利用量をその計算ノードから直接取得することをさらに含む。当業者であれば、この情報は、物理的計算ノード上で実行中の全てのプロセスから必要とされるメモリ及びCPU利用量を取得するハイパーバイザ・タスク・マネージャから得られることを認識するであろう。プロセッサ及びメモリの利用量は、現在使用中のプロセッサ及びメモリ容量の量を示し、又は逆に、現在未使用のプロセッサ及びメモリ容量の量の決定を可能にする。従って、仮想マシン選択プロセスの一部分として、又は少なくとも移動の前に、目標の計算ノードが追加の仮想マシンを実行するのに十分な未使用のプロセッサ及びメモリ容量を有することを確認することができる。
本方法の様々な実施形態に関連して、計算ノードの入力/出力容量、プロセッサ容量、及びメモリ容量を、その計算ノードの重要プロダクト・データを読み出すことによって決定することも可能である。入力/出力容量、プロセッサ容量、及びメモリ容量から、それぞれ、入力/出力容量利用量、プロセッサ容量利用量、及びメモリ容量利用量を差し引くことにより、これらリソースの各々の未使用量が得られる。従って、仮想マシンの入力/出力容量要求量、プロセッサ容量要求量、及びメモリ容量要求量を特定の計算ノード上のリソースの未使用量と比較して、特定の仮想マシンを特定の計算ノードに、何れのリソースも過剰割当てせずに収容することができことを確認することができる。
ここで図を参照すると、図1は本発明によって用いることができる例示的なコンピュータ102のブロック図である。コンピュータ102に関する、コンピュータ102内に示された、ハードウェア及びソフトウェアの両方を含む例示的なアーキテクチャの一部又は全ては、ソフトウェア配備(software deploying)サーバ150、並びに、以下で図2及び図6に示されるプロビジョニング・マネージャ/管理ノード222及びサーバ・ブレード204a〜204nによって用いることができることに留意されたい。本開示において説明されるブレードは、ブレード・シャーシ内のサーバ・ブレードとして例示的に説明され、示されるが、本明細書で説明されるコンピュータの一部又は全ては、独立型コンピュータ、サーバ、又は他の統合型若しくは独立型コンピューティング装置とすることができる。従って、「ブレード」、「サーバ・ブレード」、「コンピュータ」、「サーバ」、及び「計算ノード」という用語は、本説明においては区別なく用いられる。
コンピュータ102は、システム・バス106に結合されたプロセッサ・ユニット104を含む。プロセッサ・ユニット104には、それぞれ1つ又は複数のプロセッサ・コアを有する1つ又は複数のプロセッサを用いることができる。ビデオ・アダプタ108は、ディスプレイ110を駆動/サポートし、同じくシステム・バス106に結合される。一実施形態において、スイッチ107は、ビデオ・アダプタ108をシステム・バス106に結合される。代替的に、スイッチ107は、ビデオ・アダプタ108をディスプレイ110に結合することができる。いずれの実施形態においても、スイッチ107は、ディスプレイ110をシステム・バス106に結合し、従って、本明細書で説明されるプロセスをサポートする命令(例えば、以下に説明される仮想マシン・プロビジョニング・プログラム−VMPP148)の実行時にのみ機能できることを可能にする、好ましくは機械的なスイッチである。
システム・バス106は、バス・ブリッジ112を介して、入力/出力(I/O)バス114に結合される。I/Oインタフェース116は、I/Oバス114に結合される。I/Oインタフェース116は、キーボード118、マウス120、媒体トレイ122(CD−ROMドライブのような記憶装置、マルチメディア・インタフェースなどを含むことができる)、プリンタ124、及び(VHDLチップ137が、以下に説明される方法で用いられない場合)外部USBポート126を含む、様々なI/Oデバイスとの通信を可能にする。I/Oインタフェース116に接続されるポートの形式は、コンピュータ・アーキテクチャの当業者には周知の任意のものであってもよいが、好ましい実施形態においては、これらのポートの一部又は全ては、ユニバーサル・シリアル・バス(USB)ポートである。
図示したように、コンピュータ102は、ネットワーク・インタフェース130を用いて、ネットワーク128を介してソフトウェア配備サーバ150と通信することができる。ネットワーク128は、インターネットなどの外部ネットワーク、又はイーサネット若しくは仮想プライベート・ネットワーク(VPN)などの内部ネットワークとすることができる。
ハード・ドライブ・インタフェース132もまた、システム・バス106に結合される。ハード・ドライブ・インタフェース132は、ハード・ドライブ134とのインタフェースである。好ましい実施形態において、ハード・ドライブ134は、同じくシステム・バス106に結合されたシステム・メモリ136と通信する。システム・メモリは、コンピュータ102内の最下層の揮発性メモリとして定義される。この揮発性メモリは、これらに限定されるものではないが、キャッシュ・メモリ、レジスタ及びバッファを含む付加的なより高い層の揮発性メモリ(図示せず)を含む。システム・メモリ136を埋めるデータは、コンピュータ102のオペレーティング・システム(OS)138及びアプリケーション・プログラム144を含む。
オペレーティング・システム138は、アプリケーション144などのリソースへのトランスペアレントなユーザ・アクセスを提供するシェル140を含む。一般に、シェル140は、インタプリタと、ユーザとオペレーティング・システムとの間のインタフェースとを提供するプログラムである。より具体的には、シェル140は、コマンド・ラインのユーザ・インタフェースに入力される又はファイルからのコマンドを実行する。従って、シェル140は、コマンド・プロセッサとも呼ばれ、一般に、オペレーティング・ソフトウェア階層の最高位にあり、コマンド・インタプリタとして機能する。シェルは、システム・プロンプトを提供し、キーボード、マウス、又は他のユーザ入力媒体により入力されたコマンドを解釈し、解釈されたコマンドを、処理のためにオペレーティング・システムの適切なより下位(例えばカーネル142)に送る。シェル140は、テキスト・ベースのライン指向ユーザ・インタフェースであるが、本発明は、グラフィカル、音声、ジェスチャなどの他のユーザ・インタフェース・モードを等しく良好にサポートすることに留意されたい。
図示したように、オペレーティング・システム138はまた、カーネル142も含み、これは、メモリ管理、プロセス及びタスク管理、ディスク管理、並びにマウス及びキーボード管理などの、オペレーティング・システム138の他の部分及びアプリケーション・プログラム144に必要な本質的なサービスを提供することを含む、オペレーティング・システム138についてのより低いレベルの機能を含む。
アプリケーション・プログラム144は、ブラウザ146として例示的に示される、随意的なレンダラー(renderer)を含む。ブラウザ146は、ワールド・ワイド・ウェブ(WWW)クライアント(即ち、コンピュータ102)が、ハイパーテキスト転送プロトコル(HPP)メッセージングを用いて、インターネットに対するネットワーク・メッセージを送受信するのを可能にし、従って、ソフトウェア配備サーバ150及び説明済みの他のコンピュータ・システムとの通信を可能にする、プログラム・モジュール及び命令を含む。
コンピュータ102のシステム・メモリ(並びに、ソフトウェア配備サーバ150のシステム・メモリ)内のアプリケーション・プログラム144は、仮想マシン・プロビジョニング・プログラム(VMPP)148も含む。VMPP148は、図2〜図6に示すものを含む、以下に説明されるプロセスを実施するためのコードを含む。VMPP148は、以下に説明する必要な重要プロダクト・データ(vital product data、VPD)を提供するVPDテーブル151と通信することができる。一実施形態において、コンピュータ102は、オン・デマンド・ベースでのものを含めて、VMPP148をソフトウェア配備サーバ150からダウンロードすることができる。さらに、本発明の一実施形態において、ソフトウェア配備サーバ150は、本発明と関連した機能(VMPP148の実行を含む)の全てを実行し、従って、コンピュータ102が、VMPP148を実行するために、それぞれの内部計算リソースを使用する必要をなくす。
随意的に、VHDL(VHSICハードウェア記述言語)プログラム139も、システム・メモリ136内に格納される。VHDLは、フィールド・プログラマブル・ゲート・アレイ(FPGA)、特定用途向け集積回路(ASIC)、及び他の類似の電子デバイスのための例示的な設計入力言語である。一実施形態においては、VMPP148からの命令の実行により、VHDLプログラム139が、FPGA、ASIC等とすることができるVHDLチップ137を構成する。
本発明の別の実施形態において、VMPP148からの命令の実行により、VHDLエミュレーション・チップ152をプログラムするために、VHDLプログラム139が使用される。VHDLエミュレーション・チップ152は、VHDLチップ137について上述したのと類似のアークテクチャを組み込むことができる。ひとたびVMPP148及びVHDLプログラム139がVHDLエミュレーション・チップ152をプログラムすると、VHDLエミュレーション・チップ152は、VMPP148内に見出される命令の一部又は全ての1つ又は複数の実行によって、記述される一部又は全ての機能を、ハードウェアとして実施する。つまり、VHDLエミュレーション・チップ152は、VMPP148内に見出されるソフトウェア命令の一部又は全てのハードウェア・エミュレーションである。一実施形態において、VHDLエミュレーション・チップ152は、ひとたびVMPP148及びVHDLプログラム139からの命令に従って焼かれると、図2〜図6に以下に説明されるプロセスを実施するのに必要な機能を実施する新しい回路に恒久的に変換される、プログラマブル読み出し専用メモリ(PROM)である。
コンピュータ102内に示されるハードウェア要素は、網羅的であることを意図したものではなく、寧ろ、本発明が必要とする本質的な構成要素を強調するための典型的なものである。例えば、コンピュータ102は、磁気カッセット、デジタル多目的ディスク(DVD)、及びベルヌーイ・カートリッジのような代替的な記憶装置を含むことができる。これら及び他の変形は、本発明の趣旨及び範囲内にあることが意図される。
図2は、リソースのプールに関する「クラウド」環境として機能する例示的なブレード・シャーシ202の図である。ブレード・シャーシ202は、シャーシ・バックボーン206に結合された複数のブレード204a〜204n(ここで、nは整数である)を備える。各々のブレードは、1つ又は複数の仮想マシン(VM)をサポートすることができる。コンピュータ技術分野の当業者には周知であるように、VMは、物理的コンピュータのソフトウェア実施(エミュレーション)である。単一の物理的コンピュータ(ブレード)は、各々が同じ又は異なる、或いは共有のオペレーティング・システムを実行する複数のVMをサポートすることができる。一実施形態において、各々のVMは、1)特定のタイプのソフトウェア・タスク(例えば、データベース管理、グラフィックス、ワード・プロセッシングなど)を、2)特定のユーザ、加入者、クライアント、グループ、又は他のエンティティのために、3)一日の特定の時間又は週の特定の日(例えば一日の又はスケジュールの許可された時間)に、実行するように具体的に調整し、予約することができる。
図2に示すように、ブレード204aは、複数のVM208a〜208n(ここで、「n」は整数である)をサポートし、ブレード204nは、さらに別の複数のVM210a〜210n(ここで、「n」は整数である)をサポートする。ブレード204a〜204nは、ハイパーバイザ214、ゲスト・オペレーティング・システム、及びユーザ用のアプリケーション(図示せず)を供給する記憶装置212に結合される。記憶装置212からのプロビジョニング・ソフトウェアは、プロビジョニング・マネージャ/管理ノード222にロードされ、本明細書で説明される本発明の様々な実施形態に従って、仮想マシンをブレード間で割り当てる。コンピュータのハードウェア特性は、VPD151からVMPP148に伝達される(図1に従って)。VMPPは、ネットワーク216を通じて、コンピュータのハードウェア特性を、ブレード・シャーシのプロビジョニング・マネージャ222に、管理インタフェース220に、次いで仮想マシン・ワークロード・エンティティ218に伝達することができる。
シャーシ・バックボーン206もまた、パブリック・ネットワーク(例えば、インターネット)、プライベート・ネットワーク(例えば、仮想プライベート・ネットワーク又は実際の内部ハードウェア・ネットワーク)などとすることができるネットワーク216に結合されることに留意されたい。ネットワーク216は、仮想マシン・ワークロード218が、ブレード・シャーシ202の管理インタフェース220と通信することを可能にする。仮想マシン・ワークロード218は、ブレード・シャーシ202内のいずれかのVM上で実行されるように要求されるソフトウェア・タスクである。管理インタフェース220は、次に、このワークロードの要求をプロビジョニング・マネージャ/管理ノード222に伝達し、このノードは、要求されたソフトウェア・タスクを実行するようにブレード・シャーシ202内のVMを構成することができるハードウェア及び/又はソフトウェア論理である。実質上、仮想マシン・ワークロード218は、ブレード・シャーシ管理インタフェース220及びプロビジョニング管理ノード222と通信することによって、VMの全体のプロビジョニングを管理する。次に、この要求は、一般的なコンピュータ・システム内のVMPP148にさらに伝達される(図1を参照されたい)。ブレード・シャーシ202は、本開示のシステムが動作することができる例示的なコンピュータ環境であることに留意されたい。しかしながら、本開示のシステムの範囲は、ブレード・シャーシにのみ限定されるべきではない。つまり、本開示の方法及びプロセスは、本明細書に説明される何らかのタイプのワークロード管理を用いる任意のコンピュータ環境においても用いることができる。従って、「ブレード・シャーシ」、「コンピュータ・シャーシ」及び「コンピュータ環境」という用語は、複数のコンピュータ/ブレード/サーバを管理するコンピュータ・システムを説明するのに区別なく用いられる。
図2はまた、本発明のさらに別の実施形態による、IBMディレクタ・サーバのような随意的な遠隔管理ノード230も示す。遠隔管理ノード230は、管理インタフェース220を介して、ブレード・シャーシ上のシャーシ管理ノード222と通信するが、任意の数のブレード・シャーシ及びサーバと通信することができる。従って、グローバル・プロビジョニング・マネージャ232は、(ローカル)プロビジョン・マネージャ222と通信し、連携して本発明の方法を実施することができる。随意的なグローバル・プロビジョニング・マネージャ232は、主として、複数のサーバ・シャーシ又はラックを有する大きな設備において有益であり、その場合、グローバル・プロビジョニング・マネージャは、VMのシャーシ間移動又は割り当てを調整することができる。
グローバル・プロビジョニング・マネージャは、複数シャーシ又は複数ラックの構成のVMを常時監視していることが好ましい。ローカル・プロビジョニング・マネージャが有能である場合、そのエンティティは、シャーシ又はラック内でVMを移動させる役割を担い、その情報をグローバル・プロビジョニング・マネージャに送る。グローバル・プロビジョニング・マネージャは、複数のシャーシ又はラックの間でVMを移動させることに関与し、さらに場合によっては、ローカル・プロビジョニング・マネージャに対して特定のVMを移動させるように命令する。例えば、グローバル・プロビジョニング・マネージャ232は、該グローバル・プロビジョニング・マネージャが複数のシャーシ又は複数のラック・システム内のシャーシ又はラックの各々の中のVMに関するデータを必要とすることを除いて、ローカル・プロビジョニング・マネージャ222と同じVMデータを含むテーブルを構築し、保持することができる。グローバル・プロビジョニング・マネージャ232及びローカル・プロビジョニング・マネージャ222の各々が保持するテーブルは、互いの継続的な通信により同期される。有利なことに、複数のテーブルが、プロビジョニング・マネージャのうちの1つが機能停止する場合に継続して動作するのを可能にする冗長性を与える。
図3は、19インチのラック環境内の複数の物理的サーバを有する本発明の一実施形態を示す。この構成は、図3が仮想化ラック302を示す点を除いて、図2に示した構成202と類似する。ユーザ304は、ソフトウェア・タスクの実行の要求を管理ノード306(図2に示したプロビジョニング・マネージャ/管理ノード222に類似している)に伝達することができる。特定のサーバ308並びにそれが外部ネットワーク312及び記憶装置314と通信する(ゲートウェイ316及び仮想化ストレージ・アレイ318を介して)ために結合されたネットワーク・スイッチ310のI/O機能に基づいて、ユーザの要求は、適切かつ最適なコンピュータ(例えば、サーバ308)にアドレス指定される。仮想化ラック302は、例えば、複数のサーバを保持するブレード・シャーシである。各々の物理的サーバ(サーバ308を含む)は、入力/出力トラフィックをサポートするために、I/Oネットワーク・アダプタを有する。サーバ上で実行できる仮想マシンの最適数を決定するために、プロビジョニング・マネージャは、物理的サーバのネットワーク構成(I/O機能)を取り出し、この情報を調整して、VMを各々のサーバに適切に設定することができなければならない。
図4は、ネットワーク・スイッチのMIBから取得することができ、管理ノードによって保持することができるネットワーク・トラフィック・データの一実施形態を示すテーブル400である。図示するように、第1列402は、通信を始める仮想マシンを列挙し、その仮想マシンを一意的なMACアドレスによって識別する。例示の目的のために、MACアドレスは、シャーシ番号、サーバ番号及び仮想マシン番号をまとめて含むラベルで表される。例えば、ヘッダの下のテーブルの第1行においては、仮想マシンID「C1S1VM1」は、シャーシ#1内のサーバ#1上の仮想マシン#1を指す。第2列404は、通信の宛先の仮想マシンを列挙する。従って、単一の行内で識別される2つの仮想マシンは、カプレットと呼ぶことができ、第3列406内に示される帯域幅は、1つの仮想マシンから別の仮想マシンへの通信に起因する仮想マシン間ネットワーク・トラフィックの量(メガビット毎秒(Mbps)の単位における)である。テーブルの第1行は、C1S1VM1からC2S1VM1への通信のVM間ネットワーク帯域幅が、平均すると50Mbpsであること示す。MIBはまた、カプレット間の逆方向の、例えばC2S1VM1からC1S1VM1へのVM間ネットワーク・トラフィックに関する項目を含むことができる(データ入力は図示せず)。しかしながら、幾つかの仮想マシン、例えば、CADDプログラムを実行しているVMのような幾つかの仮想マシンでは、VM間ネットワーク・トラフィックは、実質的に全て一方向となり得る。本発明の実施形態は、一方向又は双方向の帯域幅に基づくことができる。サーバが、仮想マシンの移動を受け入れるのに十分な未使用リソースを有するかどうかを判断する目的のために、テーブル400は、各々の仮想マシンのプロセッサ利用量及びメモリ利用量をさらに含むことができる。
仮想マシンID C1S1VM1から生じてシャーシ2のサーバ1上の3つの異なる仮想マシン(C2S1VM1、C2S1VM2、C2S1VM3)に向けられるネットワーク・トラフィック、及び、仮想マシンID C1S1VM5から生じてシャーシ2のサーバ1上の単一の仮想マシン(C2S1VM1)に向けられるネットワーク・トラフィックを含んだ、テーブルの一部分のみが示される。シャーシ1のサーバ1及びシャーシ2のサーバ1は、互いに通信することができ、かつ、ネットワーク・スイッチによってグローバル・プロビジョン・マネージャと通信することもできる。
遠隔管理ノードは、定期的に、全体のネットワーク内の各ネットワーク・スイッチのMIBからデータを収集する。ネットワークの安定性を確実にするために、遠隔管理ノードは、仮想マシンの移動の決定を行う前に、一定の時間にわたってトラフィックを平均することが好ましい。閾値レベルを上回るネットワーク帯域幅を有するVM−VMカップレット(対)が識別されると、遠隔管理ノードは、カプレット内のいずれかのVMの物理的サーバが、他方のVMを受け入れるためのリソースを有するかどうか、又は、カプレットの両方のVMが同じ物理的サーバ上に存在するように両方のVMを異なる物理的サーバに移動させる必要があるかどうかを判断することになる。図4の実施例においては、シャーシ1のサーバ1のVM5(C1S1VM5)は、十分な処理容量があるために、シャーシ2のサーバ1に移動される。(遠隔管理ノードは、VMイメージを配備し、各物理的サーバの処理及びメモリ容量を既に決定している)。この実施例において単一のVM(C1S1VM5)を移動させることは、VM間カプレットのプロセスが終了するまでに、平均300Mbpsのネットワーク帯域幅を削除すると予想される。図4のテーブル400で表される2つのサーバのシステムはかなり小さいが、この実施例は、任意の数のシャーシ内の任意の数のサーバを有するシステム内の2つのサーバを表す。
テーブル400を作成するために、プロビジョニング・マネージャは、各々のネットワーク・スイッチに対して管理情報ベース(MIB)統計に関する要求を送る。例えば、要求は、単純ネットワーク管理プロトコル(SNMP)取得要求/コマンド(即ち、SNMP GET MIB Stats)の形式にすることができる。スイッチは、要求された統計、例えばSNMP PUT(即ち、SNMP PUT MIB Stats)によって応答する。MIB Statsは、プロビジョニング・マネージャが、各仮想マシンによって使用されている帯域幅を含むテーブルを作成又は埋めることを可能にする。各サーバ上の他の仮想マシンの各々に関する付加的なSNMP PUT MIB Statsを、各スイッチからプロビジョニング・マネージャに伝達することができる。
前述のように、ローカル又はグローバル・プロビジョニング・マネージャは、瞬間的ピークがVMの移動を生じることのないように、VM間ネットワーク・トラフィックを一定時間にわたって平均することが好ましい。同様に、ローカル又はグローバル・プロビジョニング・マネージャは、VMが同じ物理的サーバ上にある時間の間留まることを可能にすることによって、ネットワークにわたるVMの絶え間のない移動を避け、ネットワークの安定性を確実にするヒステリシス・アルゴリズムを用いることが好ましい。
図5は、図4のテーブル400に示される仮想マシンの1つのサーバから別のサーバへの移動を示すシステム500のブロック図である。仮想マシンC1S1VM5の、シャーシ1(504)のサーバ1(502)からシャーシ2(508)のサーバ1(506)への移動が矢印(518)で表される。移動の結果、C1S1VM5及びC2S1VM1のVMカプレットは、同じ物理的サーバ上に存在することになり、そのVMカプレットに起因する平均300MbpsのVM間ネットワーク・トラフィックが削除されることになる。
図6はコンピュータ実施の方法600のフローチャートである。ステップ602は、ネットワーク上の複数の計算ノードに割り当てられた仮想マシンの間のネットワーク・トラフィックを監視することを含む。ステップ604において、ネットワーク・トラフィックの閾値量を上回る量の仮想マシン間通信をネットワーク上で有する第1及び第2の仮想マシンが識別される。次にステップ606は、第1及び第2の仮想マシンのうちの少なくとも1つを移動させ、第1及び第2の仮想マシンが同じ計算ノードに割り当てられて第1及び第2の仮想マシンの間の仮想マシン間通信がもはやネットワーク上に向けられないようにすることを含む。
別の実施例において、VM1及びVM2が第1の計算ノード上にあって高レベルのVM間通信(ネットワーク上ではない)を有し、VM2もまた、第2の計算ノード上のVM3と高レベルのVM間通信(ネットワーク上の)を有することがある。そのような状況において本発明の実施形態は、VM2を第2の計算ノードに移動させてVM2−VM3通信に関するネットワーク・トラフィックを削除する必要があると判断する可能性がある。しかしながら、この実施例においてVM2の第2の計算ノードへの移動は、VM1とVM2はもはや同じ物理的計算ノード上に存在しなくなるので、VM1−VM2通信と関連した新たなネットワーク・トラフィックが、偶然生じることになる。しかしながら、VM間ネットワーク帯域幅の分析の次の繰り返しにより、この新たなVM間帯域幅がMIB内に識別されることになる。従って、最高レベルのVM間帯域幅を有するVMカプレットが識別され、さらなる移動が行われることになる。時間の経過及び本発明の繰り返しにより、VM1−VM2ネットワーク帯域幅が、最高レベルのネットワーク帯域幅を有するVMカプレットになるなど、著しい帯域幅を消費する場合には、VM1及びVM2のうちの1つを移動させてVM1及びVM2が再び同じ計算ノード上に存在するようにする。本方法は、VMが繰り返し前後に移動することを防止するヒステリシス機能を含むことが好ましい。本実施例においては、VM2の第2の計算ノードへの移動後、一定期間、VM2をさらに第1の計算ノードに戻してはならない期間を開始すべきである。結果として、VM1−VM2通信のネットワーク帯域幅を削除する必要がある場合には、本方法は、VM2を第1の計算ノードに移動させるべきではない(即ち、逆方向の移動を防ぐ)と考え、代りにVM1を移動させるよう試みる。第2の計算ノードがVM1を受け入れるのに不十分なリソースしか有していない場合には、VM1及びVM2の両方を第3の計算ノードに移動させることができる。従って、時間の経過及び本方法の複数回の繰り返しにより、高レベルのVM間通信を有する複数のVMが存在する場合には、これらのVMは、最後には、一緒に同じ物理的計算ノード上に達するはずであり、その結果、本方法はVMの移動に関して安定点に達する。
当業者であれば認識することになるように、本発明は、システム、方法、又はコンピュータ・プログラムとして具体化することができる。従って、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、又は本明細書で一般的に全て「回路」、「モジュール」、又は「システム」と呼ぶことができるソフトウェア態様とハードウェア態様を組み合せた実施形態の形をとるものとすることができる。さらに、本発明は、その上に具体化されたコンピュータ使用可能プログラム・コードを有する、1つ又は複数のコンピュータ可読記憶媒体内に具体化されたコンピュータ・プログラムの形を取ることができる。
1つ又は複数のコンピュータ使用可能又はコンピュータ可読記憶媒体の任意の組合せを用いることができる。コンピュータ使用可能又はコンピュータ可読記憶媒体は、例えば、これらに限定されるものではないが、電子、磁気、電磁気、又は半導体装置若しくはデバイスとすることができる。コンピュータ可読記憶媒体のより具体的な例(非網羅的なリスト)として、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD−ROM)、光記憶装置、又は磁気記憶装置が挙げられる。プログラムを、例えば紙又は他の媒体の光学走査を介して電子的に取り込み、次いで必要に応じて、コンパイルするか、解釈するか、又は適切な方法で処理し、次いでコンピュータのメモリに格納することができるのでコンピュータ使用可能又はコンピュータ可読記憶媒体は、プログラムが印刷された紙又は別の適切な媒体とすることさえ可能である。本明細書の文脈において、コンピュータ使用可能又はコンピュータ可読記憶媒体は、コンピュータによって使用されるプログラムを含む又は格納することができる任意の記憶媒体とすることができる。コンピュータ使用可能記憶媒体上に含まれるコンピュータ使用可能プログラム・コードは、ベースバンド内の、又は搬送波の一部としての、伝搬されたデータ信号により伝達することができる。コンピュータ使用可能プログラム・コードは、無線、有線、光ファイバ・ケーブル、RF等を含むがそれらに限定されないいずれかの適切な伝送媒体を用いて、1つの記憶媒体から別の記憶媒体に伝送することができる。
本発明の動作を実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++等のようなオブジェクト指向プログラミング言語、及び、「C」プログラミング言語又は同様なプログラミング言語のような、従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組合せで書くことができる。プログラム・コードは、完全にユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で、独立したソフトウェア・パッケージとして実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部がリモート・コンピュータ上で実行される場合もあり、又は完全にリモート・コンピュータ若しくはサーバ上で実行される場合もある。一番最後のシナリオの場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部のコンピュータへの接続がなされる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。
本発明は、本発明の実施形態による方法、装置(システム)及びコンピュータ・プログラムのフローチャート図及び/又はブロック図を参照して以下に説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図内のブロックの組合せは、コンピュータ・プログラム命令によって実施することができることが理解されるであろう。これらのコンピュータ・プログラム命令を、機械を製造するために、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/行為を実施するための手段を作り出すようにさせることができる。
これらのコンピュータ・プログラム命令を、コンピュータ又は他のプログラム可能なデータ処理装置を特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、その結果、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/行為を実施する命令手段を含む製品を製造するようにさせることもできる。
コンピュータ・プログラム命令をコンピュータ又は他のプログラム可能データ処理装置上にロードして、一連の動作ステップをコンピュータ又は他のプログラム可能装置上で実行させ、コンピュータ又は他のプログラム可能装置上で実行される命令がフローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/行為を実施するためのプロセスを提供するように、コンピュータにより実行されるプロセスを生成することもできる。
図面内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法及びコンピュータ・プログラムの可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能な命令を含む、モジュール、セグメント又はコードの一部を表すことができる。幾つかの代替的な実装において、ブロック内に記された機能は、図面に記された順序とは異なる順序で行われることもあることにも留意されたい。例えば、連続して図示された2つのブロックが実際には実質的に同時に実行されることもあり、又はこれらのブロックは、関与する機能に応じて、ときには逆順で実行されることもある。ブロック図及び/又はフローチャート図の各ブロック、並びにブロック図及び/又はフローチャート図内のブロックの組合せは、指定された機能又は行為を実行する専用ハードウェア・ベースのシステム、又は専用ハードウェアとコンピュータ命令との組合せによって実装することができる。
本明細書において用いられる用語は、特定の実施形態を説明する目的のためのもの過ぎず、発明を限定することを意図するものではない。本明細書において用いられる場合、文脈から明らかにそうでないことが示されていない限り、「a」、「an」及び「the」の単数形は、複数形も同様に含むことが意図される。「含む(comprises)」及び/又は「含んでいる(comprising)」という用語は、本明細書において用いられる場合、言明された特徴、整数、ステップ、動作、要素及び/又はコンポーネントの存在を特定するものではあるが、1つ又は複数の他の特徴、整数、ステップ、動作、要素、コンポーネント及び/又はそれらの群の存在又は追加を排除するものではないこともさらに理解される。「好ましくは(preferably)」、「好ましい(preferred)」、「好む(prefer)」、「随意的に(optionally)」、「することができる(may)」及び類似の用語は、言及される項目、条件、又はステップが、本発明の随意的な(必須ではない)特徴であることを示すために用いられる。
以下の特許請求の範囲における全ての「手段又はステップと機能との組合せ(ミーンズ又はステップ・プラス・ファンクション)」要素の対応する構造、材料、行為及び均等物は、その機能を、明確に特許請求されているように他の特許請求された要素と組み合わせて実行するための、いかなる構造、材料又は行為をも含むことが意図される。本発明の説明は、例示及び説明の目的で提示されたものであるが、網羅的であることを意図するものではなく、本発明を開示された形態に限定することを意図するものでもない。本発明の範囲及び精神から逸脱することのない多くの変更及び変形が、当業者には明らかである。実施形態は、本発明の原理及び実際の用途を最も良く説明するため、及び、当業者が本発明を種々の変更を有する種々の実施形態について企図される特定の使用に好適なものとして理解することを可能にするために、選択及び記載された。
102:コンピュータ
104:プロセッサ・ユニット
106:システム・バス
107:スイッチ
108:ビデオ・アダプタ
110:ディスプレイ
112:バス・ブリッジ
114:I/Oバス
116:I/Oインタフェース
118:キーボード
120:マウス
122:媒体トレイ
124:プリンタ
126:外部USBポート
128:ネットワーク
130:ネットワーク・インタフェース
132:ハード・ドライブ・インタフェース
134:ハード・ドライブ
136:システム・メモリ
137:VHDLチップ
138:オペレーティング・システム(OS)
139:VHDLプログラム
140:シェル
142:カーネル
144:アプリケーション・プログラム
146:ブラウザ
148:仮想マシン・プロビジョニング・プログラム(VMPP)
150:ソフトウェア配備サーバ
151:重要プロダクト・データ(VPD)テーブル
152:VHDLエミュレーション・チップ
202:ブレード・シャーシ
204a〜204n:サーバ・ブレード
206:シャーシ・バックボーン
208a〜208n:仮想マシン(VM)
212:記憶装置
214:ハイパーバイザ
216:ネットワーク
218:仮想マシン・ワークロード・エンティティ
220:管理インタフェース
222:プロビジョニング・マネージャ/管理ノード(ローカル・プロビジョニング・マネージャ)
230:遠隔管理ノード
232:グローバル・プロビジョニング・マネージャ
302:仮想化ラック
304:ユーザ
306:管理ノード
308:サーバ
310:ネットワーク・スイッチ
312:外部ネットワーク
314:記憶装置
316:ゲートウェイ
318:仮想化ストレージ・アレイ
400:テーブル
402:第1列
404:第2列
406:第3列
500:システム
502:シャーシ1のサーバ1
504:シャーシ1
506:シャーシ2のサーバ1
508:シャーシ2
518:矢印
600:方法
602、604、606:ステップ

Claims (15)

  1. ネットワーク上の複数の計算ノードに割り当てられた仮想マシンの間のネットワーク・トラフィックを監視することと、
    前記ネットワーク・トラフィックの閾値量を上回る量の仮想マシン間通信をネットワーク上で有する第1及び第2の仮想マシンを識別することと、
    前記第1及び第2の仮想マシンのうちの少なくとも1つを移動させて、前記第1及び第2の仮想マシンが同じ計算ノードに割り当てられて前記第1及び第2の仮想マシンの間の仮想マシン間通信がもはやネットワーク上に向けられないようにすることと、
    を含む、コンピュータ実施の方法。
  2. 前記計算ノードは、ネットワーク・スイッチのイーサネット・リンクに結合され、
    前記方法は、前記ネットワーク・スイッチの管理情報データベースからデータを取得して、前記第1及び第2の仮想マシンの間の通信に使用されている前記イーサネット・リンクを通るネットワーク帯域幅の量を決定することをさらに含む、
    請求項1に記載のコンピュータ実施の方法。
  3. 前記第1及び第2の仮想マシンの間の通信に起因する前記ネットワーク帯域幅の量は、前記第1及び第2の仮想マシンに割り当てられた媒体アクセス制御アドレス又はインターネット・プロトコル・アドレスによって識別される、請求項2に記載のコンピュータ実施の方法。
  4. 前記第1及び第2の仮想マシンのうちの少なくとも1つを移動させることは、前記第1の仮想マシンを第1の計算ノードから、第2の仮想マシンを動作させている第2の計算ノードに移動させることを含む、請求項1に記載のコンピュータ実施の方法。
  5. 前記第1及び第2の仮想マシンのうちの少なくとも1つを移動させることは、前記第1及び第2の仮想マシンの両方をある計算ノードに移動させることを含む、請求項1に記載のコンピュータ実施の方法。
  6. 前記第1及び第2の仮想マシンの間の仮想マシン間通信の一定時間にわたる典型値を計算することをさらに含み、
    前記第1及び第2の仮想マシンを前記識別することは、閾値を上回る仮想マシン間通信の典型値を有する第1及び第2の仮想マシンを識別することを含む、
    請求項1に記載のコンピュータ実施の方法。
  7. 前記計算される値は、平均値、中央値、及び標準偏差から選択される、請求項6に記載のコンピュータ実施の方法。
  8. 最高レベルの仮想マシン間通信を有する仮想マシンをランク付けするステップをさらに含む。請求項1に記載のコンピュータ実施の方法。
  9. 前記第2の計算ノードが前記第1の仮想マシンを動作させるのに十分な未使用リソースを有することを確認することをさらに含む、請求項4に記載のコンピュータ実施の方法。
  10. 前記未使用リソースの量を前記確認することは、前記計算ノードの重要プロダクト・データを読み出して、前記計算ノードの入力/出力容量、プロセッサ容量、及びメモリ容量を決定することを含む、請求項9に記載のコンピュータ実施の方法。
  11. 前記未使用リソースの量を前記確認することは、前記計算ノードから直接に、プロセッサ利用量及びメモリ利用量を取得することを含む、請求項9に記載のコンピュータ実施の方法。
  12. 前記第1の仮想マシンを動作させている第1の計算ノード上の未使用リソースの量、及び前記第2の仮想マシンを動作させている第2の計算ノード上の未使用リソースの量を決定することと、
    前記第1及び第2の仮想マシンの、前記リソースの要求量を決定することと、
    前記第1の仮想マシンを前記第2の計算ノードに移動させることと、前記第2の仮想マシンを前記第1の計算ノードに移動させることとの間で選択して、移動後のリソースの利用量が前記第1及び第2の計算ノードの間で最も均一に分配されるようにすることと、
    をさらに含む、請求項1に記載のコンピュータ実施の方法。
  13. 前記未使用リソースの量を前記決定するステップは、前記計算ノードの重要プロダクト・データを読み出して、前記計算ノードの入力/出力容量、プロセッサ容量、及びメモリ容量を決定することを含む、請求項12に記載のコンピュータ実施の方法。
  14. 前記未使用リソースの量を前記決定することは、前記計算ノードから直接に、プロセッサ利用量及びメモリ利用量を取得することを含む、請求項12に記載のコンピュータ実施の方法。
  15. 前記ネットワーク・トラフィックの前記閾値量は前記帯域幅の閾値百分率である、請求項2に記載の方法。
JP2011177511A 2010-10-26 2011-08-15 仮想マシン間の通信 Pending JP2012094119A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/911832 2010-10-26
US12/911,832 US20120102190A1 (en) 2010-10-26 2010-10-26 Inter-virtual machine communication

Publications (1)

Publication Number Publication Date
JP2012094119A true JP2012094119A (ja) 2012-05-17

Family

ID=45973926

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011177511A Pending JP2012094119A (ja) 2010-10-26 2011-08-15 仮想マシン間の通信

Country Status (3)

Country Link
US (2) US20120102190A1 (ja)
JP (1) JP2012094119A (ja)
CN (1) CN102457517A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013246532A (ja) * 2012-05-24 2013-12-09 Fujitsu Ltd 情報処理装置、仮想マシン制御方法、仮想マシン制御プログラム
JP2016152519A (ja) * 2015-02-17 2016-08-22 日本電信電話株式会社 帯域制御装置、帯域制御方法及び帯域制御プログラム
US9641439B2 (en) 2014-02-26 2017-05-02 Fujitsu Limited Information processing system and control apparatus and method
JP2019204378A (ja) * 2018-05-25 2019-11-28 コニカミノルタ株式会社 プリントコントローラー及びプログラム

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8443065B1 (en) * 2010-11-08 2013-05-14 Adtran, Inc. System and method for locating, identifying and provisioning newly deployed network devices
US8671407B2 (en) * 2011-07-06 2014-03-11 Microsoft Corporation Offering network performance guarantees in multi-tenant datacenters
US9195512B2 (en) * 2012-01-06 2015-11-24 International Business Machines Corporation Relocating related resource partitions
US8862744B2 (en) * 2012-02-14 2014-10-14 Telefonaktiebolaget L M Ericsson (Publ) Optimizing traffic load in a communications network
US9110729B2 (en) * 2012-02-17 2015-08-18 International Business Machines Corporation Host system admission control
US8762525B2 (en) * 2012-03-08 2014-06-24 International Business Machines Corporation Managing risk in resource over-committed systems
US8799460B2 (en) * 2012-03-20 2014-08-05 Cellco Partnership Method and system of providing a summary of web application performance monitoring
US8881149B2 (en) * 2012-04-11 2014-11-04 International Business Machines Corporation Control of java resource runtime usage
US9251115B2 (en) 2013-03-07 2016-02-02 Citrix Systems, Inc. Dynamic configuration in cloud computing environments
US9454408B2 (en) 2013-05-16 2016-09-27 International Business Machines Corporation Managing network utility of applications on cloud data centers
US10110460B2 (en) * 2013-07-23 2018-10-23 Hewlett Packard Enterprise Development Lp Priority assessment of network traffic to conserve bandwidth guarantees in a data center
JP6164298B2 (ja) * 2013-09-27 2017-07-19 日本電気株式会社 無線通信システム、無線通信端末、無線通信システムの制御方法、及び、プログラム
US9413594B2 (en) 2014-02-12 2016-08-09 Red Hat Israel, Ltd. Transmitting encapsulated SNMP commands to virtual machines
US9537745B1 (en) 2014-03-07 2017-01-03 Google Inc. Distributed virtual machine disk image deployment
US9411626B2 (en) * 2014-06-18 2016-08-09 International Business Machines Corporation Optimizing runtime performance of an application workload by minimizing network input/output communications between virtual machines on different clouds in a hybrid cloud topology during cloud bursting
CN104243231B (zh) * 2014-06-30 2018-01-23 华为技术有限公司 虚拟机对之间流量速率的估算方法和相关设备
US10333814B2 (en) 2014-06-30 2019-06-25 Huawei Technologies Co., Ltd. Method for estimating traffic rate between virtual machine pair, and related device
US10282222B2 (en) * 2014-10-13 2019-05-07 Vmware, Inc. Cloud virtual machine defragmentation for hybrid cloud infrastructure
US10067800B2 (en) * 2014-11-06 2018-09-04 Vmware, Inc. Peripheral device sharing across virtual machines running on different host computing systems
US10387179B1 (en) * 2014-12-16 2019-08-20 Amazon Technologies, Inc. Environment aware scheduling
CN104636184B (zh) 2014-12-29 2018-05-01 上海华为技术有限公司 虚拟机实例的部署方法和装置及设备
US10721150B2 (en) * 2015-05-12 2020-07-21 Hewlett Packard Enterprise Development Lp Server discrete side information
US9946564B2 (en) * 2015-06-23 2018-04-17 International Business Machines Corporation Adjusting virtual machine migration plans based on alert conditions related to future migrations
CN105119993B (zh) * 2015-08-24 2019-02-26 华为技术有限公司 虚拟机部署方法及装置
US9710305B2 (en) * 2015-11-12 2017-07-18 International Business Machines Corporation Virtual machine migration management
CN106775918A (zh) * 2015-11-23 2017-05-31 中国电信股份有限公司 虚拟机调度方法、虚拟机管理器和sdn系统
US11153224B2 (en) * 2017-02-09 2021-10-19 Radcom Ltd. Method of providing cloud computing infrastructure
CN107491354B (zh) * 2017-07-03 2020-01-21 北京东土科技股份有限公司 一种基于共享内存的虚拟机间通信方法及装置
CN108132810A (zh) * 2017-12-05 2018-06-08 北京小米移动软件有限公司 应用管理方法及装置、终端
US10824456B2 (en) * 2018-01-31 2020-11-03 Nutanix, Inc. System traffic analyzers to request co-location of virtual machines in frequent communication
US11563677B1 (en) * 2018-06-28 2023-01-24 Cable Television Laboratories, Inc. Systems and methods for secure network management of virtual network function
US11822946B2 (en) * 2018-06-28 2023-11-21 Cable Television Laboratories, Inc. Systems and methods for secure network management of virtual network functions
CN109783196B (zh) * 2019-01-17 2021-03-12 新华三信息安全技术有限公司 一种虚拟机的迁移方法及装置
US10999159B2 (en) * 2019-04-04 2021-05-04 Cisco Technology, Inc. System and method of detecting application affinity using network telemetry
US11579913B2 (en) * 2019-12-18 2023-02-14 Vmware, Inc. System and method for optimizing network topology in a virtual computing environment
US11595321B2 (en) 2021-07-06 2023-02-28 Vmware, Inc. Cluster capacity management for hyper converged infrastructure updates
CN113923253A (zh) * 2021-10-12 2022-01-11 西安万像电子科技有限公司 一种虚拟机图像传输方法、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140134A (ja) * 2008-12-10 2010-06-24 Hitachi Ltd 仮想マシン管理方法、プログラムおよび管理サーバ

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7594011B2 (en) * 2004-02-10 2009-09-22 Narus, Inc. Network traffic monitoring for search popularity analysis
US8291409B2 (en) * 2006-05-22 2012-10-16 Microsoft Corporation Updating virtual machine with patch on host that does not have network access
US8145760B2 (en) * 2006-07-24 2012-03-27 Northwestern University Methods and systems for automatic inference and adaptation of virtualized computing environments
WO2008062864A1 (en) * 2006-11-24 2008-05-29 Nec Corporation Virtual machine locating system, virtual machine locating method, program, virtual machine management device and server
US8230069B2 (en) * 2008-03-04 2012-07-24 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
US8102781B2 (en) * 2008-07-31 2012-01-24 Cisco Technology, Inc. Dynamic distribution of virtual machines in a communication network
US8521908B2 (en) * 2009-04-07 2013-08-27 Verisign, Inc. Existent domain name DNS traffic capture and analysis
US8140812B2 (en) * 2009-07-01 2012-03-20 International Business Machines Corporation Method and apparatus for two-phase storage-aware placement of virtual machines
US8316125B2 (en) * 2009-08-31 2012-11-20 Red Hat, Inc. Methods and systems for automated migration of cloud processes to external clouds
US8255528B2 (en) * 2009-12-23 2012-08-28 Citrix Systems, Inc. Systems and methods for GSLB spillover

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140134A (ja) * 2008-12-10 2010-06-24 Hitachi Ltd 仮想マシン管理方法、プログラムおよび管理サーバ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015016205; 吉永一美ほか: '複数の特性の異なるネットワーク経路を持つ環境におけるストリーミングデータ処理のためのタスクスケジュー' 情報処理学会研究報告 Vol.2007 No.80, 20070801, 49-54頁, 社団法人情報処理学会 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013246532A (ja) * 2012-05-24 2013-12-09 Fujitsu Ltd 情報処理装置、仮想マシン制御方法、仮想マシン制御プログラム
US9641439B2 (en) 2014-02-26 2017-05-02 Fujitsu Limited Information processing system and control apparatus and method
JP2016152519A (ja) * 2015-02-17 2016-08-22 日本電信電話株式会社 帯域制御装置、帯域制御方法及び帯域制御プログラム
JP2019204378A (ja) * 2018-05-25 2019-11-28 コニカミノルタ株式会社 プリントコントローラー及びプログラム
JP7059802B2 (ja) 2018-05-25 2022-04-26 コニカミノルタ株式会社 プリントコントローラー及びプログラム

Also Published As

Publication number Publication date
US20120284398A1 (en) 2012-11-08
US20120102190A1 (en) 2012-04-26
CN102457517A (zh) 2012-05-16

Similar Documents

Publication Publication Date Title
JP2012094119A (ja) 仮想マシン間の通信
JP6199514B2 (ja) ファブリック分散リソースのスケジューリング
EP3606008B1 (en) Method and device for realizing resource scheduling
US8276139B2 (en) Provisioning virtual machine placement
US8418185B2 (en) Memory maximization in a high input/output virtual machine environment
EP3140734B1 (en) Mechanism for providing external access to a secured networked virtualization environment
US10530678B2 (en) Methods and apparatus to optimize packet flow among virtualized servers
JP5137709B2 (ja) アプリケーションマイグレーションのための候補データセンタを見つける方法および装置[0001]
US8595722B2 (en) Preprovisioning virtual machines based on request frequency and current network configuration
US8732699B1 (en) Migrating virtual machines between physical machines in a define group
US9348653B2 (en) Virtual machine management among networked servers
US10423790B2 (en) Intelligent identification of stressed machines for data security management
US8495208B2 (en) Migrating virtual machines among networked servers upon detection of degrading network link operation
US8352953B2 (en) Dynamically provisioning virtual machines
US20170220281A1 (en) Smart partitioning of storage access paths in shared storage services
US20120233315A1 (en) Systems and methods for sizing resources in a cloud-based environment
US10725834B2 (en) Job scheduling based on node and application characteristics
US20190281112A1 (en) System and method for orchestrating cloud platform operations
US10678684B1 (en) Dynamic virtual storage creation and provisioning of virtual machine resources
US11531564B2 (en) Executing multi-stage distributed computing operations with independent rollback workflow
US10587529B1 (en) Dynamic selection of router groups to manage computing instances
Tarahomi et al. New approach for reducing energy consumption and load balancing in data centers of cloud computing
Begnum et al. Cloud-oriented virtual machine management with mln
US11924107B2 (en) Cloud-native workload optimization
US20240073144A1 (en) Noisy neighbor in a cloud multitenant system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140402

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20141125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150413

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150724

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150901

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20150910

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20151117