JP5954074B2 - 情報処理方法、情報処理装置、及びプログラム。 - Google Patents

情報処理方法、情報処理装置、及びプログラム。 Download PDF

Info

Publication number
JP5954074B2
JP5954074B2 JP2012207640A JP2012207640A JP5954074B2 JP 5954074 B2 JP5954074 B2 JP 5954074B2 JP 2012207640 A JP2012207640 A JP 2012207640A JP 2012207640 A JP2012207640 A JP 2012207640A JP 5954074 B2 JP5954074 B2 JP 5954074B2
Authority
JP
Japan
Prior art keywords
virtual machine
bandwidth
server
queue
destination computer
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.)
Expired - Fee Related
Application number
JP2012207640A
Other languages
English (en)
Other versions
JP2014063324A (ja
Inventor
栗田 敏彦
敏彦 栗田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012207640A priority Critical patent/JP5954074B2/ja
Priority to US13/957,162 priority patent/US9378032B2/en
Publication of JP2014063324A publication Critical patent/JP2014063324A/ja
Application granted granted Critical
Publication of JP5954074B2 publication Critical patent/JP5954074B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、情報処理方法、情報処理装置、及びプログラムに関する。
サーバ内で仮想マシンを実行させる仮想化技術において、仮想マシンを他のサーバに移動させるマイグレーションという技術が知られている。仮想マシンのマイグレーションでは、移動させる仮想マシンの実行状態に関する設定情報が、仮想マシンの移動先となるサーバへ転送される。
図1に、関連技術が適用された情報処理システムが示される。情報処理システムは、サーバ10及び20、及びネットワーク40を含む。サーバ10は、仮想マシン11及び12、及び仮想スイッチ13を含む。サーバ20は、仮想マシン21及び仮想スイッチ22を含む。
例えば、仮想マシン11は仮想スイッチ13を介してネットワーク40にデータを送信し、この送信されたデータが仮想スイッチ22を介して仮想マシン21によって受信される。仮想スイッチ13は、仮想マシン11によるデータ送信と仮想マシン12によるデータ送信とを調停する。
例えば、仮想マシン12がサーバ10からサーバ20にマイグレーションされる場合に、仮想マシン12の実行状態に関する設定情報がサーバ20に送信される。仮想マシン12のマイグレーションが完了すると、マイグレーションされた仮想マシン12が、もともとサーバ20で実行されていた仮想マシン21と共に、サーバ20において実行される。
ところで、サービス品質パラメータに基づいて、複数のパイプ・フローから一つのパイプ・フローを選択する技術が知られている。また、あるサーバの物理ネットワークインターフェースカード(Network Interface Card、以下NICと表す)がより性能の高い物理NICに変更された場合に、該サーバで実行中されているアプリケーションの受信バッファをオーバフローさせないように、擬似輻輳を発生させる技術が知られている。
WO2005/032025号公報 特開2011−203810号公報
仮想マシンのマイグレーション後に、移動先サーバで当該マイグレーション前から実行されていた他の仮想マシンの動作と協調させる制御を実行するために、マイグレーションさせられる仮想マシンの帯域がどの程度であるか測定される。
マイグレーションの移動先サーバでは、マイグレーションさせられる仮想マシンと当該マイグレーション前から実行されていた他の仮想マシンとが物理リソースを共有する。移動先サーバのリソースの使用状況によっては、許容される範囲において、物理リソースの割り当てがマイグレーション前後で変更される場合があり、この変更に依存して帯域が変化する。また、仮想マシンが送信する単位時間当たりのデータは、仮想マシンに対する処理の要求頻度に依存する。
仮想マシンの帯域の測定の精度を保つためには一定以上の測定期間が必要であり、この測定期間において他の仮想マシンの動作と協調させる制御が待たされてしまう。
本願は、仮想マシンのマイグレーション後に、マイグレーションの対象となる仮想マシン及びマイグレーションの移動先サーバで実行されていた他の仮想マシンを協調させる動作を速やかに実行するための情報処理方法を提供することを目的とする。
開示の情報処理方法によれば、コンピュータ間で仮想マシンの移動が実行される場合に、移動元コンピュータにおいて前記仮想マシンに割り当てられたリソース及び移動先コンピュータにおいて前記仮想マシンに割り当てられるリソースの差分に基づいて、前記移動元コンピュータにおける仮想マシンの帯域から前記移動先コンピュータにおける前記仮想マシンの帯域を算出する。
本開示の一側面によれば、仮想マシンのマイグレーション後に、マイグレーションの対象となる仮想マシン及びマイグレーションの移動先サーバで実行されていた他の仮想マシンを協調させる動作が速やかに実行される。
関連技術が適用された情報処理システム。 実施例が適用された情報処理システム。 仮想マシンによるフロー及び送信キューの関係の例。 仮想マシンによるフロー及び送信キューの関係の他の例。 仮想マシンのマイグレーション及びフローの帯域に基づく処理の関係。 実施例が適用された情報処理システムにおける帯域プロファイルの例。 実施例が適用された情報処理システムにおける仮想マシンプロファイルの例。 実施例が適用された情報処理システムにおける帯域プロファイルの他の例。 実施例が適用された情報処理システムにおける帯域プロファイルの他の例。 実施例が適用された情報処理システムの動作の例。 実施例が適用された情報処理システムにおいて仮想マシンのマイグレーションが実行された場合のキュー管理の例。 実施例が適用された情報処理システムにおいて仮想マシンのマイグレーションが実行された場合のキュー管理の他の例。 実施例が適用されたサーバのハードウェア構成。 実施例が適用されたサーバのキューコントローラの機能ブロック。 実施例が適用されたサーバのキューコントローラで実行される処理。 実施例が適用されたサーバのキューコントローラで実行される他の処理。 実施例が適用されたサーバにおけるモニタの機能ブロック。 実施例が適用されたサーバにおけるモニタで実行される処理。 実施例が適用された管理サーバのハードウェア構成。
図2に、実施例が適用された情報処理システムが示される。情報処理システムは、サーバ100、サーバ200、管理サーバ300、スイッチ400、及びネットワーク500を含む。
サーバ100において、サーバ100のプロセッサによってメモリに格納されたプログラムが実行されることにより、仮想マシン110及び111、仮想スイッチ120、モニタ123、スケジューラ122、ソータ121、ユニバーサルキュー140、インディビジュアルキュー150、及びキューコントローラ130が実行される。なお、図2において、仮想マシンがVM(Virtual Machine)と表される。
仮想マシン110及び仮想マシン111はコンピュータの動作をエミュレートするソフトウェア又はフレームワークである。仮想スイッチ120によって、仮想マシン110及び仮想マシン111から送信されたデータが調停され、調停されたデータがサーバ100のNIC(Network Interface Card)に送信される。NICに送信されたデータがネットワーク500を介してサーバ200に送信される。
ソータ121は、キューコントローラ130による指示に従って、サーバ100内で実行される仮想マシン110及び仮想マシン111から送信されるデータを、ユニバーサルキュー140又はインディビジュアルキュー150の何れか一方にソートする。なお、仮想マシン110及び仮想マシン111から送信されるデータが、データのリクエスト元や管理用データであるか否か等に基づいてフローとよばれる単位で分類されてもよい。ソータ121は、仮想マシン110及び仮想マシン111が送信するパケットに含まれる識別情報に基づいてフローを識別してもよい。例えば、パケットに含まれる送信元仮想マシンのMAC(Media Access Control)アドレス及び宛先仮想マシンのMACアドレスの組み合わせに基づいてフローを識別する。例えば、データの種類を示すフラグに基づいてフローを識別する。ソータ121は、これらの識別方法によって、一つの仮想マシンから送信される複数のフローを識別することがある。ソータ121によって、それらのフロー毎にユニバーサルキュー140又はインディビジュアルキュー150の何れか一方が選択されて、仮想マシンから送信されるデータがソートされるようにしてもよい。
ユニバーサルキュー140は、複数の仮想マシンからのデータ又は複数のフローによるデータを格納するためのキューである。ユニバーサルキュー140に格納された順序でユニバーサルキュー140からデータが読み出される。
インディビジュアルキュー150は、特定の仮想マシンからのデータ又は特定のフローによるデータを格納するためのキューである。
なお、キューとは、サーバ100の外部にデータが送信される際に、データの送信順序がスケジューラ122によって調停されるために一時的にデータを格納するための格納領域である。ユニバーサルキュー140及びインディビジュアルキュー150は、レジスタ、メモリ又はFIFO(First In First Out)において格納領域が割り当てられることによって実現される。例えば、レジスタ、メモリ又はFIFOにおいて複数の格納領域を準備しておき、後述されるキューコントローラ130の指示に従って、複数の格納領域の何れかがユニバーサルキュー140及びインディビジュアルキュー150として割り当てられるようにしてもよい。
スケジューラ122は、ユニバーサルキュー140及びインディビジュアルキュー150の何れか一方を所定の規則に従って順に選択することにより、ユニバーサルキュー140又はインディビジュアルキュー150に格納されたデータを調停し、調停されたデータをサーバ100が有するNICに転送する。スケジューラ122は、例えば、上述された複数の格納領域を順に選択してデータを読み出したり、複数の格納領域に対応するアドレスを順に指定してデータを読み出したりすることによってデータを調停し、サーバ100のNICに転送する。
なお、所定の規則として、サーバ100に接続される外部リンクの帯域に基づく所定の割合に従って、インディビジュアルキュー150が選択されるようにしてもよい。例えば、フローの帯域が、サーバ100に接続される外部リンクの帯域をサーバ100内のフローの数で除算した値よりも大きい場合には、そのフローをインディビジュアルキュー150に割り当て、そのフローの帯域が確保される割合でそのインディビジュアルキュー150がスケジューラ122によって選択されるようにすればよい。なお、実測帯域の小さい他のフローの割り当てがユニバーサルキューにまとめられてもよい。
例えば、サーバ100に接続される外部リンクの帯域が10Gbpsであるとする。サーバ100内から送信されるフローの数が20であり、そのうち1つのフローの帯域が1Gbpsであるとする。なお、他のフローの帯域の合計が9Gbps以下であるとする。この場合に、例えば、キューコントローラ130は、帯域が1Gbpsのフローをインディビジュアルキュー150に割り当て、他のフローをユニバーサルキュー140に割り当てる。スケジューラ122は、10回のうち少なくとも1回の割合でインディビジュアルキュー150を選択する。このようなキューの割り当てにより、全てのフローがユニバーサルキュー140に割り当てられた場合に帯域が1Gbpsのフローによって複数のフローの送信期間に偏りが生じてしまうことがなく、フロー間の公平性が確保される。また、このような割合でインディビジュアルキュー150が選択されることによって、帯域が1Gbpsのフローは、その帯域を確保した通信が可能となる。
なお、実施例は、サーバ100においてユニバーサルキュー140及びインディビジュアルキュー150の各々が1つずつ実行される例に限定されない。後述するが、スケジューラ122によって実行されるキューの選択は、サーバ100のプロセッサやメモリコントローラ、メモリなどを利用して実行される処理である。つまり、キューの数が多くなればなるほど、スケジューラ122によってプロセッサやメモリコントローラ、メモリが使用される割合が増えるため、スケジューラ122の処理負荷がサーバ100に与える影響が増える。この場合、スケジューラ122の処理負荷がボトルネックとなることで、サーバ100の外部リンクの帯域が有効に使用されないことがある。すなわち、フローの数やフローの帯域に基づきながら、キューの数が設定されるとよい。さらに、スケジューラ122によって選択される割合をユニバーサルキュー毎やインディビジュアルキュー毎に変更し、サーバ100の外部へ送信される割合を適宜調整してもよい。
モニタ123は、仮想マシン110及び仮想マシン111による各フローをモニタし、各フローのデータ量を測定する。モニタ123は、ソータ121への入力、ソータ121からの出力、スケジューラ122への入力、又はスケジューラ122からの出力などにおいて、上述されたパケットの識別情報に基づいて各フローを識別して、各フローのデータ量を測定する。
キューコントローラ130は、モニタ123により測定されたデータ量を、測定にかかった時間で除算することにより、仮想マシン110及び仮想マシン111から送信されるフロー毎の帯域を算出する。なお、キューコントローラ130により求められた帯域によって、単位時間当たりにサーバ100から外部に送信されるデータ量が表される。キューコントローラ130は、各フローの帯域に基づいて、各フローをユニバーサルキュー140又はインディビジュアルキュー150の何れに割り当てるか判定して、各フローに対するキューの割り当て規則を仮想スイッチ120に対して指示する。
なお、サーバ100内で実行される仮想マシンは仮想マシン110及び仮想マシン111に限定されず、サーバ100のプロセッサやメモリ等のリソースに従って、仮想マシンの数が変更されてもよい。
サーバ200に含まれる構成について、上記に説明したサーバ100の構成と実質的に同様のため説明を省略する。また、図2は例示であり、実施例は図2に示されるサーバの数、仮想マシンの数、ユニバーサルキューの数、インディビジュアルキューの数などに限定されない。
管理サーバ300がサーバ100及びサーバ200に接続される。管理サーバ300から管理用データがサーバ100及びサーバ200に送信されることによって、サーバ100及びサーバ200内で実行される仮想マシンの配備、マイグレーション、又は消去などが実行及び制御される。
管理サーバ300によって仮想マシンのマイグレーションを命令されたサーバ100及びサーバ200が、マイグレーションの対象となる仮想マシンの設定情報を通信する。なお、仮想マシンの設定情報を通信するために、サーバ100及びサーバ200がスイッチ400に接続され、スイッチ400を介して仮想マシンの設定情報が通信されてもよい。また、仮想マシンの設定情報が管理サーバ300を介して通信されてもよい。
例えば、仮想マシン211がサーバ200からサーバ100にマイグレーションさせられる場合を説明する。この場合、仮想マシン211の実行状態に関する設定情報が、管理サーバ300又はスイッチ400を介して、サーバ200からサーバ100に送信される。この設定情報がサーバ100によって実行されることにより、仮想マシン211がサーバ100内で実行される。なお、後述するが、実施例では、マイグレーションの際に、仮想マシン211の帯域と仮想マシンに割り当てられた物理リソースとが対応付けられた帯域プロファイルが、移動元サーバであるサーバ200から移動先サーバであるサーバ100に送信されたり、マイグレーション前後で割り当てる物理リソースが変更される場合には、変更後の設定情報が管理サーバ300から移動先サーバであるサーバ100に送信されたりする。
ネットワーク500は、サーバ100及びサーバ200間の通信をするためのLAN(Local Area Network)、又はWAN(Wide Area Network)である。また、ネットワーク500は、サーバ100及びサーバ200間の通信を中継させるためのブリッジやルータであってもよい。なお、サーバ100及びサーバ200は一つのデータセンタに含まれていてもよいし、互いに異なるデータセンタに含まれていてもよい。また、ネットワーク500は他のネットワーク600に接続されており、サーバ100及びサーバ200は、他のネットワーク600に接続された他のサーバと通信する。なお、他のネットワーク600はLAN又はWANである。
図3に、仮想マシンによるフロー及びキューの関係の例が示される。ここではサーバ100に沿って説明するが、サーバ200でも同様の実行状態がある。
図3に示されるサーバ100は、複数(m+1個)の仮想マシン110−11m、仮想スイッチ120、ソータ121、スケジューラ122、モニタ123、キューコントローラ130、及び複数(n+1個)のインディビジュアルキュー150−15nを含む。仮想マシン110−11mの各々は、例えばデータのリクエスト元や管理用データであるか否か等に基づいて複数のフローを送信しているとする。仮想マシン110−11mによるフローの数の合計がn+1であり、インディビジュアルキュー150−15nの数と一致しているとする。
キューコントローラ130は、仮想マシン110−11mによる、数の合計がn+1のフロー毎にインディビジュアルキュー150−15nを割り当てるよう仮想スイッチ120に指示する。ソータ121によって各フローがインディビジュアルキュー150−15nにソートされ、スケジューラ122によって、複数のインディビジュアルキュー150−15nが設定された所定の規則に従って選択される。
仮想環境では、スケジューラ122によって実行される複数のインディビジュアルキュー150−15nの選択は、サーバ100のプロセッサやメモリコントローラ、メモリなどを利用して実行される処理である。つまり、キューの数が多いほど、スケジューラ122によってプロセッサやメモリコントローラ、メモリが使用される割合が増えるため、スケジューラ122の処理負荷がサーバ100に与える影響が増える。この場合、スケジューラ122の処理負荷が通信のボトルネックとなることで、サーバ100の外部リンクの帯域が有効に使用されないことがある。
ところで、図3で示されるサーバ100に、サーバ200内で実行されていた仮想マシンがマイグレーションさせられた場合を検討する。マイグレーションは、サーバで実行されている仮想マシンの処理負荷が高くなった場合に他の仮想マシンを他のサーバに移動させる負荷分散や、サーバのメンテナンスのために仮想マシンを一時的に他のサーバに移動させる場合や、仮想マシンを特定のサーバに集めて使われていないサーバの電源を落とすことで全体の消費電力を低減させる場合などに実行される。そのため、一度にマイグレーションさせられる仮想マシンの個数が複数となる場合がある。マイグレーションさせられる仮想マシンの個数が複数であり、かつ一つの仮想マシンに対応するフローが複数であるにもかかわらず、マイグレーション後にそれらのフロー各々をインディビジュアルキューに割り当ててしまうと、スケジューリングに係る処理負荷が著しく高くなる可能性がある。
この場合には、スケジューラ122がプロセッサやメモリコントローラ、メモリを使用する割合が増えるため、サーバ100内でもともと実行されていた仮想マシンの処理能力に影響がおよんでしまう可能性がある。また、スケジューラ122の処理負荷がボトルネックとなることで、送信されるデータの帯域が外部リンクの帯域未満の状態で稼働される可能性が高くなる。以上に説明したことから、サーバ100の物理リソースや外部リンクの帯域を有効に利用するために、仮想マシンのマイグレーションがあっても、フローの数やフローの帯域に基づきながら、キューの数が設定されるとよい。
ところで、仮想マシンのマイグレーション後にマイグレーションさせられた仮想マシンの帯域が測定されることによって、ユニバーサルキュー及びインディビジュアルキューの数を設定することが考えられる。また、マイグレーションによりフローの数が増えたことによってインディビジュアルキューに割り当てられていたフローをユニバーサルキューにまとめた方がサーバの負荷が減る場合も考えられる。
ただし、上述したように、帯域の測定には一定以上の時間が必要であるため、マイグレーション後の帯域を測定している期間では、もともと実行されていた仮想マシンの処理能力が下げられたり、外部リンクを帯域が有効に利用されないことがある。
図4に、仮想マシンによるフロー及び送信キューの関係の他の例が示される。ここではサーバ100に沿って説明するが、サーバ200でも同様の実行状態がある。
図4に示されるサーバ100は、複数(m+1個)の仮想マシン110−11m、仮想スイッチ120、ソータ121、スケジューラ122、モニタ123、キューコントローラ130、及びユニバーサルキュー140を含む。仮想マシン110−11mの各々は、例えばデータのリクエスト元や管理用データであるか否か等に基づいて複数のフローを送信しているとする。仮想マシン110−11mによる全てのフローがユニバーサルキュー140に割り当てられているとする。
図3の例と比較すると、スケジューラ122が複数のキューを順に選択する処理がないため、スケジューラ122の処理負荷が通信のボトルネックになる可能性が低い。しかし、仮想マシン110−11mによる複数のフローの帯域がそれぞれ違うと、帯域の大きいフローによってユニバーサルキュー140が占有されてしまう可能性がある。また、ユニバーサルキュー140に格納されたフローの順序によっては、特定のフローのデータばかりサーバ100の外部リンクに送信される可能性がある。つまり、仮想マシン110−11mによる全てのフローがユニバーサルキュー140に割り当てられた場合、帯域の小さいフローが、実際にはその帯域よりもさらに制限されてしまい、複数のフロー間で送信の不均衡が発生してしまう可能性がある。
ここで、図4で示されるサーバ100に、サーバ200内で実行されていた仮想マシンがマイグレーションさせられた場合を検討する。上述したように、マイグレーションさせられる仮想マシンの数が複数であり、かつ一つの仮想マシンに対応するフローが複数あることがあるため、マイグレーションされられた仮想マシンによるフローをユニバーサルキュー140にまとめると、帯域の偏りによってはサーバ100内でもともと実行されていた仮想マシンの送信割合が圧迫される可能性がある。
ところで、仮想マシンのマイグレーション後にマイグレーションさせられた仮想マシンの帯域が測定されることによって、ユニバーサルキューを適宜、インディビジュアルキューに分離するなど、ユニバーサルキュー及びインディビジュアルキューの数が再設定されてもよい。ただし、上述したように、帯域の測定には一定以上の時間が必要であるため、マイグレーション後の帯域を測定している期間では、複数のフロー間に不均衡が生じた状態でサーバ100が稼働してしまう。
図5に、仮想マシンのマイグレーション及びフローの帯域に基づく処理の関係の例が示される。時刻501において移動元サーバから移動先サーバへの仮想マシンのマイグレーションが開始される。時刻510に移動元サーバでは仮想マシンの移動が完了し、マイグレーションさせられた仮想マシンが時刻520により移動先サーバで実行される。
移動先サーバで仮想マシンが実行されると、処理530により移動先サーバにおいて帯域の測定が実行される。帯域の測定には一定以上の時間が必要となる。例えば、仮想マシンがwebサーバとして実行されている場合、仮想マシンはwebリクエストに応答してデータを送信する。このデータの送信は、webリクエストのタイミングや処理内容に依存しているため、送信タイミングに規則性がない場合がある。そのため、仮想マシンの帯域を精度よく測定するために、一定以上の時間のデータ量が測定される。なお、データ量が測定される時間は、例えば、数分のオーダーとなることがある。
以上に述べたことから、仮想マシンの実行が開始される時刻520から帯域が取得される時刻540までの期間550は、帯域の測定中となる。従って、期間550では帯域が未取得なため、帯域に基づく処理(例えば、図3や図4に示されるキュー管理)が実行されない。
時刻540において帯域の測定が完了すると、実測された帯域に基づく処理が実行可能な状態となる。すなわち、時刻540以降は、処理560で示されるように、実測された帯域に基づいて、例えば、フローのキュー割り当てが判定されてもよい。
時刻540以降も移動先サーバでの帯域の測定が継続され、時刻570において新たに測定された帯域に更新される。同様に、仮想マシンが実行されている間、移動先サーバでの帯域の測定が継続され、帯域が更新されていく。なお、サーバ内で複数の仮想マシンが実行される場合に、帯域の測定が複数の仮想マシンに対して同時に実行されてもよいし、複数の仮想マシン毎に非同期に実行されてもよい。非同期に測定が行われる場合には、他の仮想マシンの帯域測定の開始時点によらずに、仮想マシンのマイグレーション後から帯域測定が開始される。
図5に示された例では、仮想マシンの実行が開始される時刻520から時刻540までの期間550では帯域が未取得なため、上述されたように、スケジューラによる処理負荷が高いキュー管理の状態(図3)や、送信割合の不均衡が生じるキュー管理の状態(図4)でサーバが稼働してしまうことがある。
なお、移動先サーバにおいて、マイグレーションさせられる仮想マシンと移動先サーバで当該マイグレーション前から実行されていた他の仮想マシンとが物理リソースを共有することとなる。そのため、移動先サーバにおいて割り当て可能な物理リソースの状況によっては、マイグレーションさせられる仮想マシンに割り当てられる物理リソースが、許容される範囲内において、移動元サーバにおいて割り当てられていた物理リソースとは変更される場合がある。物理リソースが変更されたり、移動先サーバでの実行環境(例えばフローの数)が移動元サーバでの実行環境と異なることで、仮想マシンの帯域が変化することがある。すなわち、移動元サーバで仮想マシンの帯域が実測されていたとしても、その実測帯域と、移動先サーバにおける仮想マシンの実測帯域とが異なることがある。従って、移動元サーバにおける実測帯域をそのまま利用して処理の判定をすることができない場合がある。
ところで、一つのサーバにおいて複数の事業者による複数の仮想マシンが混在して実行されるような運用がされている場合に、ある事業者の仮想マシンのマイグレーションによって、もともと実行されていた他の事業者の仮想マシンの稼働状況に影響を与えてしまうことがある。仮想マシンによって実現されるサービスを提供する事業者やサービスの提供を受けるユーザは、サービスが安定的に稼働される状態を望むため、仮想マシンのマイグレーション後の帯域の実測中の期間であっても、フローのキュー管理がいち早く適切に実行され、マイグレーション前後においてシステム全体が安定的に稼働されることが望まれる。これは、サーバの稼働状況や仮想マシンの稼働状況に基づいて仮想マシンを移動させることによりシステム全体の安定化、効率化、及び省電力化などを実行させる、仮想マシンの管理者やデータセンタの管理者によっても望まれることである。
図6に、実施例が適用された情報処理システムにおける帯域プロファイルの例が示される。帯域プロファイルは、後述する図13のメモリ2100に格納される情報であって、図2に示される管理サーバ300によって一意に割り当てられる仮想マシンのID、帯域、帯域が実測されたものか補正されたものかを示す情報、仮想マシンに割り当てられたCPU速度、及び仮想マシンに割り当てられたNIC速度が対応付けられた情報である。
図6の例では、IDが“1”の仮想マシンに2GHzのCPU速度及び1GbpsのNIC速度が割り当てられた際に、実測された帯域が200Mbpsであることが示される。なお、仮想マシンのIDに代えて仮想マシンのフロー毎にIDが割り当てられて、フロー毎の図6に示される情報を関連付けてもよい。フローのIDは、上述したようなフローのパケットに含まれる識別情報に基づいて一意に割り当てられればよい。
図7に、実施例が適用された情報処理システムにおける仮想マシンプロファイルの例が示される。仮想マシンプロファイルは、後述する図13のメモリ2100に格納される情報であって、仮想マシンに割り当てられたCPU速度、及び仮想マシンに割り当てられたNIC速度が対応付けられた情報である。仮想マシンプロファイルは、仮想マシンを配備するために作成される仮想マシンの設定情報に基づいて作成される。この設定情報は、仮想マシンに対して割り振るCPU速度、メモリ量、仮想NICの速度、及びディスク容量などの情報を含む。仮想マシンプロファイルは、仮想マシンが配備されたり移動させられたりする際に管理サーバ300から該当するサーバに送信される設定情報に基づいて作成される。図7の例では、仮想マシンに割り当てられたCPU速度が3GHz及びNIC速度が1Gbpsであることが示されている。後述するように、仮想マシンのマイグレーションの際に帯域プロファイルを受け取ったサーバは、自身のメモリ2100に格納されている仮想マシンプロファイルに基づいて、受け取った帯域プロファイルにある帯域を補正する。
図8に、実施例が適用された情報処理システムにおける帯域プロファイルの他の例が示される。帯域プロファイルは、後述する図13のメモリ2100に格納される情報であって、仮想マシンのID、帯域、帯域が実測されたものか補正されたものかを示す情報、仮想マシンに割り当てられたCPU速度、及び仮想マシンに割り当てられたNIC速度が対応付けられた情報である。なお、上述したように、仮想マシンのIDに代えて仮想マシンのフロー毎にIDが割り当てられて、フロー毎に図8に示される情報を関連付けてもよい。
図8の例では、マイグレーション後、IDが“1”の仮想マシンに3GHzのCPU速度及び1GbpsのNIC速度が割り当てられた結果、移動元サーバで実測された帯域である200Mbpsが補正されて、移動先サーバでの帯域が300Mbpsであると予測されたことが示される。なお、帯域の補正は、移動元サーバにおいて仮想マシンに割り当てられた物理リソース(例えば図6)及び移動先サーバにおいて仮想マシンに割り当てられた物理リソース(例えば図7)の比率や、その比率に対して移動先サーバにおけるフローの数に依存した仮想スイッチのスケジューリング負荷を反映させるための係数を掛け算したり、移動先サーバにおいて仮想マシンに割り当てられた仮想NICの速度や移動先サーバの物理NICの速度を元に割り当てられた帯域の上限値により制限を加えたりすることによって実行される。
後述するように、図8に示される補正された帯域を予測値として利用することによって、移動先での帯域の実測を待っている期間(図5の期間550)であっても、例えばフローに対するキュー管理が実行される。
仮想マシンのマイグレーションは、負荷分散、メンテナンス、又は仮想マシンを特定のサーバに片寄せする際などに利用されるため、マイグレーション前後で仮想マシンに割り当てられる物理リソースが変更されたり、移動先サーバでの他の仮想マシン含めた稼働状況(フローの数)によっては移動後の帯域が移動元サーバで実測されたものとは異なってしまう。
例えば、仮想マシンがwebサーバとして実行されている場合、仮想マシンはwebリクエストに対して所定の処理を実行し、処理の結果をwebリクエスト元に送信する。仮想マシンが実行する処理は、仮想マシンに割り当てられたCPU速度に依存するため、webリクエスト元に送信される単位時間当たりのデータ量は仮想マシンに割り当てられたCPU速度に依存する。つまり、仮想マシンに割り当てられたCPU速度に依存して仮想マシンの帯域が変わる。また、仮想マシンに割り当てられたNIC速度によって仮想マシンの帯域が制限される。また、仮想スイッチによりスケジューリングされる割合によって帯域が制限される。例えば、複数の仮想マシンが実行されている場合には、それらが送信するデータ量の合計値が物理サーバのNIC速度に制限される。つまり、実行される物理サーバのNIC速度に依存して仮想マシンの帯域が変わる。以上に述べたとおり、仮想マシンに割り当てられる物理リソースの状況が変ったり、仮想マシンが実行されるサーバが変わったりすると、仮想マシンの帯域が変わる。
また、移動先サーバの余りの物理リソースによっては、許容される範囲内において、マイグレーションを完了させるためにも、仮想マシンに割り当てられる物理リソースの量を移動元で割り当てられていた物理リソースの量とは変更される場合がある。このような場合でも、上述するように、マイグレーションの前後で仮想マシンが単位時間当たりに処理可能な能力が変ったり、仮想NICの上限値が変ったりすることによって、仮想マシンの帯域が変わる。
また、仮想スイッチを実行するための物理リソースは仮想マシンを実行するための物理リソースと共有されているため、移動先サーバにおいて仮想マシンの数が増えることでフロー数が増えると、仮想スイッチによるスケジューリングの負荷が大きくなる。この場合、仮想スイッチによるCPU占有率が大きくなるため、マイグレーション後の仮想マシンの帯域が想定されているものよりもさらに制限されることがある。
そこで、移動元サーバで実測された帯域が、仮想マシンに割り当てられる物理リソースの差分やサーバおける実行状態の差分、さらにNIC速度に基づいて補正されることで、移動先での帯域の実測値により近い予測値を得ることができる。精度の高い予測値を利用すれば、移動先での帯域の実測を待っている期間(図5の期間550)であっても、例えばフローに対するキュー管理が精度よく実行される。なお、移動元サーバ及び移動先サーバで仮想マシンに対する物理リソースの割り当てが実質的に同じ場合には、移動元サーバで実測された帯域が補正されることなく予測値として利用されてもよい。帯域の補正方法に関するより詳細な例が図15の説明と共に後述される。
図9に、実施例が適用された情報処理システムにおける帯域プロファイルの他の例が示される。帯域プロファイルは、後述する図13のメモリ2100に格納される情報であって、仮想マシンのID、帯域、帯域が実測されたものか補正されたものかを示す情報、仮想マシンに割り当てられたCPU速度、及び仮想マシンに割り当てられたNIC速度が対応付けられた情報である。なお、上述したように、仮想マシンのIDに代えて仮想マシンのフロー毎にIDが割り当てられて、図9に示される情報をフロー毎に関連付けてもよい。
図9の例では、3GHzのCPU速度及び1GbpsのNIC速度が割り当てられたIDが“1”の仮想マシンに対して、移動先サーバでの帯域の実測が行われた結果、実測された帯域が295Mbpsであることが示される。
図10に、実施例が適用された情報処理システムの動作の例が示される。ここでは、管理サーバ300の命令に従って、サーバ200内で実行されている仮想マシン211がサーバ100にマイグレーションさせられ、その後、サーバ100内で実行されている仮想マシン110がサーバ200にマイグレーションさせられる例が示される。この例に沿って、実施例による帯域プロファイルの移動、帯域の補正、及び補正された帯域によるフローの管理が説明される。なお、図10において、サーバがSVと表される。
はじめに、サーバ100内では仮想マシン110及び仮想マシン111が実行され、サーバ200内では仮想マシン210が実行されているとする。ここで、管理サーバ300によって、仮想マシン211を配備させるための仮想マシン配備命令1000がサーバ200に通知される。この仮想マシン配備命令1000と共に仮想マシン211に割り当てるCPU速度、メモリ、仮想NIC速度、及びディスクの情報を含む設定情報がサーバ200に通知され、仮想マシン配備命令1000及び設定情報を受け取ったサーバ200では、仮想マシン211が設定情報に基づいて実行される。
サーバ200内で実行されるモニタ223によって、仮想マシン210及び仮想マシン211のデータ量を測定するための処理1010が実行される。例えば、モニタ223が実行中の仮想マシン210及び仮想マシン211のフローが所定期間モニターされ、所定期間に仮想マシン210及び仮想マシン211が送信するデータ量が測定される。処理1010によって実行中の仮想マシン210及び仮想マシン211のデータ量が測定されると、測定されたデータ量がキューコントローラ230に通知される。なお、仮想マシン210及び仮想マシン211のデータ量の測定が同時に実行されてキューコントローラ230に通知されてもよいし、仮想マシン210及び仮想マシン211毎にデータ量の測定が非同期に実行されてキューコントローラ230に通知されてもよい。非同期に測定が行われる場合には、例えば、仮想マシン210の帯域測定の開始時点によらずに、仮想マシン211の配備後から帯域測定が開始される。
サーバ200内で実行されるキューコントローラ230によって、モニタ223により測定されたデータ量に基づき帯域を計算し、後述されるメモリ2100に帯域プロファイルとして格納するための処理1020が実行される。キューコントローラ230によって、例えば、モニタ223により測定された仮想マシン210及び仮想マシン211の各フローのデータ量が、モニターされていた所定期間で除算されることにより、帯域が算出される。算出された帯域は実際に測定されたデータ量に基づいているため、帯域プロファイルにおいては、図6に示されるように、帯域の値に対して実測を表す情報である“M”が関連付けられている。また、この帯域が実測帯域とよばれることとする。
キューコントローラ230によって、実測帯域に基づくキュー管理を実行するための処理1030が実行される。例えば、フローの実測帯域が、サーバ200に接続される外部リンクの帯域をサーバ200内のフローの数で除算した値よりも大きい場合には、そのフローをインディビジュアルキューに割り当て、そのフローの帯域が確保される割合でそのインディビジュアルキューがスケジューラによって選択されるようにすればよい。なお、実測帯域の小さい他のフローの割り当てはユニバーサルキューに統合される。このようなキュー管理により、サーバ200内の各フローが外部リンクに送信される公平性が担保されつつ、サーバ200内のキューの数が削減されるためキューのスケジューリングにかかる処理負荷が抑制される。
サーバ200においては、処理1040に示されるように、処理1020の後に実行中の仮想マシンのデータ量が測定される処理がモニタ223によって継続して実行される。また、モニタ223による処理に合わせて実測帯域の算出及びキュー管理の実行がキューコントローラ230によって継続して実行される。なお、図10ではそれらのうち一部の表示が省略されている。
一方、サーバ100内で実行されるモニタ123によって、仮想マシン110及び仮想マシン111のデータ量を測定するための処理1050が実行される。例えば、モニタ123が実行中の仮想マシン110及び仮想マシン111のフローが所定期間モニターされ、所定期間に仮想マシン110及び仮想マシン111が送信するデータ量が測定される。処理1050によって実行中の仮想マシン110及び仮想マシン111のデータ量が測定されると、測定されたデータ量がキューコントローラ130に通知される。
サーバ100内で実行されるキューコントローラ130によって、モニタ123により測定されたデータ量に基づき帯域を算出し、後述されるメモリ2100に帯域プロファイルとして格納するための処理1060が実行される。キューコントローラ130によって、例えば、モニタ123により測定された仮想マシン110及び仮想マシン111の各フローのデータ量が、モニターされていた所定期間で除算されることにより、帯域が算出される。算出された帯域は実際に測定されたデータ量に基づいているため、帯域プロファイルにおいては、図6に示されるように、帯域の値に対して実測を表す情報である“M”が関連付けられている。また、この帯域が実測帯域とよばれることとする。
キューコントローラ130によって、実測帯域に基づくキュー管理を実行するための処理1070が実行される。例えば、フローの実測帯域が、サーバ100に接続される外部リンクの帯域をサーバ100内のフローの数で除算した値よりも大きい場合には、そのフローをインディビジュアルキューに割り当て、そのフローの帯域が確保される割合でそのインディビジュアルキューがスケジューラによって選択されるようにすればよい。なお、実測帯域の小さい他のフローの割り当てはユニバーサルキューに統合される。このようなキュー管理により、サーバ100内の各フローが外部リンクに送信される公平性が担保されつつ、サーバ100内のキューの数が削減されるためキューのスケジューリングにかかる処理負荷が抑制される。
サーバ100においては、処理1080に示されるように、処理1050の後に実行中の仮想マシンのデータ量が測定される処理がモニタ123によって継続して実行される。また、モニタ123による処理に合わせて実測帯域の算出及びキュー管理の実行がキューコントローラ130によって継続して実行される。なお、図10ではそれらのうち一部の表示が省略されている。
管理サーバ300は、サーバ200内で実行されている仮想マシン211をサーバ100にマイグレーションさせる仮想マシン移動命令1090をサーバ200及びサーバ100に通知する。仮想マシン移動命令1090を受け取ったサーバ200は、仮想マシン211の設定情報をサーバ100に送信して、仮想マシン211を停止させる。仮想マシン211の設定情報を受け取ったサーバ100は、仮想マシン211を実行する。なお、このマイグレーションに伴い、サーバ100において実行される仮想マシン211の設定を、サーバ100における物理リソースの使用状況に合わせて変更する場合には、割り当てるCPU速度、メモリ、仮想NIC速度、及びディスクの情報を含む変更された設定情報が管理サーバ300からサーバ100に通知され、変更された設定情報に基づいてサーバ100において仮想マシン211が実行される。
ところで、仮想マシン211がサーバ100にマイグレーションされた時点では、サーバ100において仮想マシン211の帯域がまだ測定されていない。仮想マシン211の帯域の測定を待っている期間に仮想マシン211による1以上のフローのキュー管理が行われないことで、サーバ100でのスケジューリングにかかる負荷が増加する可能性がある。また、もともとサーバ100にあったフローが選択される割合が減少することでフロー選択の公平性が担保されなくなる可能性がある。
そこで、以下に説明するように、仮想マシン211の帯域が測定されるまでの期間1500であっても、移動元サーバで仮想マシン211の実測された帯域が利用されたり補正されたりすることによって移動先サーバでの仮想マシン211の帯域が予測され、キュー管理が実行される。
仮想マシン移動命令1090を受け取ったサーバ200では、キューコントローラ230によって、仮想マシン211の設定情報だけでなく図6に示される帯域プロファイルもサーバ100に送信するための処理1100が実行される。処理1100によって送信される帯域プロファイルは図6に示される例に限定されないが、ここでは、仮想マシン211のIDを“1”として、仮想マシン211に割り当てられたCPU速度が2GHz及びNIC速度が1Gbpsの場合にサーバ200における実測帯域が200Mbpsであるとして説明する。
サーバ100では、キューコントローラ130によって、処理1100により送信された帯域プロファイルを受け取り、サーバ200において仮想マシン211の実測された帯域を補正するための処理1110が実行される。なお、サーバ100において実行される仮想マシン211に割り当てられた物理リソースが、図7に示されるように、CPU速度が3GHz及びNIC速度が1Gbpsに変更された例を説明する。
処理1110において、キューコントローラ130によって、帯域プロファイルにある移動元サーバ200において仮想マシン211に割り当てられた物理リソース、及び仮想マシンプロファイルにある移動先サーバ100において仮想マシン211に割り当てられる物理リソースが比較され、帯域プロファイル(図6)にある仮想マシン211の帯域が補正される。補正された帯域により帯域プロファイルが更新されるとともに、帯域が補正されたものであることを識別するために識別子が“M”から“E”に変えられる。更新された帯域プロファイル(図8)がサーバ100のメモリ2100に格納される。
例えば、サーバ200において仮想マシン211に割り当てられたCPU速度が2GHz及びNIC速度が1Gbpsであるのに対して、サーバ100において仮想マシン211に割り当てられたCPU速度が3GHz及びNIC速度が1Gbpsであるため、仮想マシンが実行される環境としてCPU速度が1.5倍になっている。そこで、キューコントローラ130により、仮想マシン211がサーバ100で実行された場合には帯域が300Mbpsであるとして、サーバ200で実測された帯域が補正される。なお、マイグレーション前後で仮想マシンに割り当てられる物理リソースや稼働状況が実質的に変更されない場合には、処理1110が省かれてもよい。つまり、移動元サーバでの実測帯域をそのまま利用してもよい。また、仮想マシン211が実行される環境としてフローの数が多くなると、これらのフローをスケジューリングする処理負荷によって仮想マシンの帯域が制限される場合があるため、300Mbpsに対して、事前にテスト環境などで求めたフローの数に依存する1以下の係数を、実行中のフロー数に基づいて掛け算することにより、300Mbpsよりも小さい帯域を補正された帯域としてもよい。また、マイグレーション後に仮想マシン211に割り当てられた仮想NICの速度や、仮想マシン211が実行されるサーバの物理NICの能力によっても帯域が制限されるため、補正された帯域がこれらインターフェースの速度以上である場合には、インターフェースの速度(上限値)が補正された帯域として置き換えられてもよい。なお、図8の例では、仮想マシンに割り当てられたNIC速度が1Gbpsであるため、補正により求められた300Mbpsを仮想マシン211の帯域とする。
キューコントローラ130によって、補正された帯域に基づいてキュー管理をするための処理1120が実行される。例えば、仮想マシン211がサーバ100にマイグレーションされたことによって、サーバ100では仮想マシン211による1以上のフローが増加したことになる。仮想マシン110及び仮想マシン111による複数のフローの数と仮想マシン211によって増加するフローの数との合計値で外部リンクの帯域を除算した値よりも補正された帯域(上述の場合には300Mbps)が小さい場合には、仮想マシン211のフローがユニバーサルキューにまとめられてもよい。この場合には、仮想マシン211のマイグレーションがあってもキューの数が増加しないためキューのスケジューリングの負荷が大きくなることが抑制される。一方で、仮想マシン211のマイグレーション後のサーバ100内のフローの合計値で外部リンクの帯域を除算した値よりも補正された帯域(上述の場合には300Mbps)が大きい場合には、仮想マシン211のフローをインディビジュアルキューに割り当てる。この場合には、仮想マシン211の帯域を確保しつつ、キューのスケジューリングにおいて仮想マシン211によるフロー及び他のフローが選択される割合の公平性が保たれる。
なお、キューコントローラ130によって、例えば、サーバ100に含まれるレジスタ、メモリ又はFIFOにおいてキューとして準備された複数の格納領域の何れをユニバーサルキュー及びインディビジュアルキューとするかを指定し、指定された格納領域(例えばメモリのアドレス)及びフロー(例えば、送信元アドレス及び宛先アドレスの組み合わせ)が関連付けられる。キューコントローラ130は、ソータ121に対して、関連付けられた情報に従ってフローをソーティングするように命令する。
モニタ123によって、サーバ100内で実行されている仮想マシン110、仮想マシン111及び仮想マシン211のデータ量が測定されてキューコントローラ130に通知するための処理1080が実行される。なお、処理1080の処理内容は上述した処理1050の処理内容と実質的に同様であるため説明を省略する。
キューコントローラ130によって、処理1080により測定されたデータ量に基づき仮想マシン110、仮想マシン111及び仮想マシン211の帯域を算出し、後述されるメモリ2100に帯域プロファイルとして格納するための処理1130が実行される。なお、処理1130の処理内容は上述した処理1060の処理内容と実質的に同様であるため説明を省略する。
処理1130により帯域が算出されて帯域プロファイルが更新されると、キューコントローラ130によって、実測された帯域に基づいてキュー管理をする処理1140を実行される。処理1140が実行される時点では、仮想マシン211の帯域プロファイルが、処理1130により図9のように更新されている。つまり、3GHzのCPU速度及び1GbpsのNIC速度が割り当てられた仮想マシン211の実測帯域が295Mbpsであることが取得されている。処理1140では、キューコントローラ130によって、仮想マシン211のフローに対するキュー管理が、補正された帯域ではなく、測定された帯域に基づいて実行される。例えば、補正された帯域に基づいてユニバーサルキューに割り当てられていた仮想マシン211のフローを、測定された帯域に従ってインディビジュアルキューに割り当てるように変更してもよい。また、補正された帯域に基づいてインディビジュアルキューに割り当てられていた仮想マシン211のフローを、測定された帯域に従ってユニバーサルキューに割り当てるように変更してもよい。
以上に説明したように、仮想マシン211の帯域が測定されるまでの期間1500であっても、移動元サーバで仮想マシン211の実測された帯域を利用したり補正したりすることによって、移動先サーバでの仮想マシン211の帯域が予測され、キュー管理が実行される。仮想マシン211の帯域が実測された後は、実測帯域によってキュー管理が実行される。
管理サーバ300は、サーバ100内で実行されている仮想マシン110をサーバ200にマイグレーションさせる仮想マシン移動命令1150をサーバ100及びサーバ200に通知する。仮想マシン移動命令1190を受け取ったサーバ100は、仮想マシン110の設定情報をサーバ200に送信して、仮想マシン110を停止させる。仮想マシン110の設定情報を受け取ったサーバ200は、仮想マシン110を実行する。なお、このマイグレーションに伴い、サーバ200において実行される仮想マシン110の設定を、サーバ200における物理リソースの使用状況に合わせて変更する場合には、割り当てるCPU速度、メモリ、仮想NIC速度、及びディスクの情報を含む変更された設定情報が管理サーバ300からサーバ200に通知され、変更された設定情報に基づいてサーバ200において仮想マシン110が実行される。
キューコントローラ130によって、仮想マシン110の帯域プロファイルをサーバ200に送信する処理1160が実行される。なお、処理1160の処理内容は上述した処理1100の処理内容と実質的に同様であるため説明を省略する。
キューコントローラ230によって、処理1160により送信された帯域プロファイル及びサーバ200のメモリ2100に格納されたサーバ200の仮想マシンプロファイルに従って仮想マシン110の帯域を補正するための処理1170が実行される。なお、処理1170の処理内容は上述した処理1110の処理内容と実質的に同様であるため説明を省略する。
キューコントローラ230によって、仮想マシン110の補正された帯域に基づいてキュー管理をするための処理1180が実行される。なお、処理1180の処理内容は上述した処理1120の処理内容と実質的に同様であるため説明を省略する。
ところで、仮想マシン110がサーバ100からサーバ200にマイグレーションさせられた後、サーバ100では仮想マシン111及び仮想マシン211が実行されている。仮想マシン111及び仮想マシン211の帯域は測定中であるが、仮想マシン110によるフローがサーバ100からなくなったことによって、すでに取得済みの実測された帯域に基づいて仮想マシン111及び仮想マシン211のキュー管理を再判定する処理1190がキューコントローラ130によって実行されてもよい。
例えば、仮想マシン110のマイグレーションによりサーバ100内のフローが少なくなったので、スケジューリングの処理負荷が通信のボトルネックにならない範囲であれば、それらのフローに割り当てるキューの数を増やしてもよい。この場合には、ユニバーサルキューに割り当てられていた複数のフロー各々がインディビジュアルキューに割り当てられることによって、ソータによってユニバーサルキューにソーティングされるタイミングによらずに、それぞれのフローが外部リンクに送信される割合がより均一化される。
図11に、実施例が適用された情報処理システムにおいて仮想マシンのマイグレーションが実行された場合のキュー管理の例が示される。ここでは、マイグレーションさせられる仮想マシンの帯域が補正された結果、移動元サーバで実測された値よりも小さくなった例が説明される。なお、図2と同一符号の構成については説明を省略する。また、本例はサーバ200からサーバ100に仮想マシン211がマイグレーションされる例を示す。
図11Aには、サーバ200からサーバ100に仮想マシン211がマイグレーションされた後、仮想マシン211のフローにキューが割り当てられる前のサーバ100が示される。ソータ121によって、仮想マシン110及び仮想マシン111のフローがともにユニバーサルキュー140にソートされている。
図11Bには、仮想マシン211の補正された帯域に基づいてキュー管理が実行されたサーバ100が示される。仮想マシン211の補正された帯域が、サーバ100のフロー数で外部リンクの帯域を除算した値よりも小さかったため、仮想マシン211のフローがソータ121によってユニバーサルキュー140にソートされている。
図11Cには、仮想マシン211の実測された帯域に基づいてキュー管理が実行されたサーバ100が示される。サーバ100において実測された仮想マシン211の帯域がサーバ100のフロー数で外部リンクの帯域を除算した値よりも小さかったため、図11Bに示されるキュー管理と変わらず、仮想マシン211のフローがソータ121によってユニバーサルキュー140にソートされている。なお、仮想マシン211の実測された帯域がサーバ100のフロー数で外部リンクの帯域を除算した値よりも大きければ、仮想マシン211のフローがソータ121によってインディビジュアルキューにソートされるようにすればよい。
以上に説明したように、マイグレーションと併せて帯域プロファイルが送信され、帯域プロファイルに含まれる帯域が上述されるように補正され、補正された帯域により、仮想マシンが実行されるサーバでのより確からしい帯域に基づいてキュー管理が実行されるので、帯域の実測を待っている期間であっても、より実動作に合ったキュー管理が可能となる。従って、冗長に帯域が見積もられることなくキュー管理が実行されるので、帯域の実測が完了する前であっても、サーバ100内のスケジューラ122の処理負荷を減らすことができる。
仮想環境では、スケジューラ122の処理は、サーバ100に含まれるCPU2000やメモリ2100などのリソースが使用されて実行されるため、キューが多くなるほど処理負荷が大きくなる。従って、仮想マシンのマイグレーション後にいち早く実動作に合った帯域に基づいてキュー管理をすることは格別の効果を奏する。
図12に、実施例が適用された情報処理システムにおいて仮想マシンのマイグレーションが実行された場合のキュー管理の他の例が示される。ここでは、マイグレーションさせられる仮想マシンの帯域が移動先サーバで補正された結果、移動元サーバで実測された値よりも大きくなった例が説明される。なお、図2と同一符号の構成については説明を省略する。
図12Aには、サーバ200からサーバ100に仮想マシン211がマイグレーションされた後、仮想マシン211のフローにキューが割り当てられる前のサーバ100が示される。ソータ121によって、仮想マシン110及び仮想マシン111のフローがともにユニバーサルキュー140にソートされている。
図12Bには、仮想マシン211の補正された帯域に基づいてキュー管理が実行されたサーバ100が示される。仮想マシン211の補正された帯域が、サーバ100のフロー数で外部リンクの帯域を除算した値よりも大きかったため、仮想マシン211のフローがソータ121によってインディビジュアルキュー150にソートされている。
図12Cには、仮想マシン211の実測された帯域に基づいてキュー管理が実行されたサーバ100が示される。サーバ100において実測された仮想マシン211の帯域がサーバ100のフロー数で外部リンクの帯域を除算した値よりも大きかったため、図12Bに示されるキュー管理と変わらず、仮想マシン211のフローがソータ121によってインディビジュアルキュー150にソートされている。なお、仮想マシン211の実測された帯域がサーバ100のフロー数で外部リンクの帯域を除算した値よりも小さければ、仮想マシン211のフローがソータ121によってユニバーサルキュー140にソートされるようにしてもよい。
以上に説明したように、マイグレーションと併せて帯域プロファイルが送信され、帯域プロファイルに含まれる帯域が上述されるように補正され、補正された帯域により、実行されるサーバでのより確からしい帯域に基づいてキュー管理が実行されるので、帯域の実測を待っている期間であっても、実動作に合ったキュー管理が実行される。
仮想環境では、一つのサーバにおいて複数の仮想マシンが実行されることがあり、それらの仮想マシンが同じユーザ(事業者)によるものとは限らない。つまり、マイグレーションが実行された後にキュー管理が好ましく行われなかった場合には、もともと実行されていた他のユーザ(事業者)による仮想マシンの送信が選択される割合が圧迫され、送信が選択される割合に公平性が保てなくなる場合がある。従って、一つのサーバにおいて複数のユーザ(事業者)による仮想マシンが実行されるような仮想環境でマイグレーションが実行される場合では、帯域の実測が完了する前であっても、いち早く実動作に合った帯域に基づいてキュー管理がされることは、マイグレーション後の送信の公平性をいち早く保つ点で好ましい。
図13に、実施例が適用されたサーバ(100、200)のハードウェア構成が示される。サーバ100及びサーバ200の各々は、CPU2000、メモリ2100、記憶装置2200、送受信インターフェース(データ通信用)2300、送受信インターフェース(管理用)2400、送受信インターフェース(マイグレーション用)2500及びそれらが接続されたバス2600を有するコンピュータである。
CPU2000は、処理を実行するための1以上のプロセッサを含んでいる。メモリ2100は例えば、RAMである。記憶装置2200は例えば、ROMやフラッシュメモリ等の不揮発性メモリ、又はHDD(Hard Disk Drive)等の磁気ディスク装置である。送受信インターフェース(データ通信用)2300は、外部装置に対してデータの送受信をするためのインターフェースであり、インターフェース回路、通信回路、通信制御回路、又はネットワークインターフェースカードなどの回路である。送受信インターフェース(データ通信用)2300は、図2に示されるネットワーク500に接続される。送受信インターフェース(管理用)2400は、管理用のデータを送受信するためのインターフェースであり、インターフェース回路、通信回路、通信制御回路、又はネットワークインターフェースカードなどの回路である。送受信インターフェース(管理用)2400は、図2に示される管理サーバ300に接続される。送受信インターフェース(マイグレーション用)2500は、管理用のデータを送受信するためのインターフェースであり、インターフェース回路、通信回路、通信制御回路、又はネットワークインターフェースカードなどの回路である。送受信インターフェース(マイグレーション用)2500は、図2に示されるスイッチ400に接続される。
メモリ2100には、サーバ100やサーバ200の動作を制御するための処理が記述されたプログラム、及び図15及び16に示される処理が記述されたプログラムが格納される。CPU2000によってメモリ2100に格納されたプログラムが実行されることによりサーバ100やサーバ200の動作が制御され、サーバ100やサーバ200は図14及び17に示される各機能ブロックとして機能する。
図14に、実施例が適用されたサーバ(100、200)におけるキューコントローラ(130、230)の機能ブロックが示される。キューコントローラ130及び230の各々は、メモリ2100に格納されたプログラムがCPU2000によって実行されることにより、帯域プロファイル取得部3000、読み出し部3010、算出部3020、更新部3030、判定部3040、実行部3050、測定制御部3060、タイマ3070、データ量取得部3080、及び計算部3090として機能する。各機能ブロックにより実行される処理が、図15及び16に示される処理に対応して後述される。
図15に、実施例が適用されたサーバ(100、200)のキューコントローラ(130、230)で実行される処理が示される。管理サーバ300から仮想マシンを移動させるための移動命令を受け取ったサーバ100又はサーバ200のうち、仮想マシンのマイグレーションの移動先となるサーバにおいて、図15に示される処理が開始される。なお、管理サーバ300から仮想マシンを移動させるための移動命令の例が、図10に示された仮想マシン移動命令1090及び1150である。
帯域プロファイル取得部3000によって、帯域プロファイルを取得するための処理4010が実行される。処理4010により、管理サーバ300から仮想マシンを移動させるための移動命令を受け取ったサーバ100又はサーバ200のうち、仮想マシンのマイグレーションの移動元となるサーバから送信された帯域プロファイル(例えば、図10に示される処理1100及び処理1160によって送信された帯域プロファイル)を受け取り、自サーバのメモリ2100に格納することで、移動先サーバは、マイグレーションされられる仮想マシンの移動元サーバにおける実測帯域及び移動元サーバにおける物理リソースの割り当て状況に関する情報を含む帯域プロファイルを取得する。なお、移動元となるサーバから送信された帯域プロファイルの例が、図6に示される帯域プロファイルである。
読み出し部3010によって、仮想マシンプロファイルを読み出すための処理4020が実行される。管理サーバ300から仮想マシンを移動させるための移動命令と併せて送信された仮想マシンプロファイル(例えば、図7)が自サーバのメモリ2100に格納されており、読み出し部3010によって、この仮想マシンプロファイルがメモリ2100から読み出される。なお、処理4010及び処理4020については、処理順序が入れ替えられてもよい。
算出部3020によって、仮想マシンプロファイルに基づき帯域を算出するための処理4030が実行される。処理4010により取得された帯域プロファイルにある移動元サーバにおける物理リソースの割り当て状況及び処理4020により読み出された仮想マシンプロファイルにある移動先サーバにおける物理リソースの割り当て状況に基づいて、算出部3020によって、処理4010により取得された帯域プロファイルにある仮想サーバの実測帯域が算出される。例えば、取得された帯域プロファイルが図6に示される例であって、読み出された仮想マシンプロファイルが図7に示される例であるとする。この場合、移動先サーバにおいて仮想マシンに割り当てられるCPU速度が3GHzであり、移動元サーバにおいて仮想マシンに割り当てられていたCPU速度が2GHzであるため、CPU速度の比である1.5に従って、移動元サーバにおいて実測された200Mbpsの帯域が1.5倍の300Mbpsに補正される。なお、算出部3020による帯域の算出は、移動元サーバにおいて仮想マシンに割り当てられた物理リソース、及び移動先サーバにおいて仮想マシンに割り当てられた物理リソースの比率や、その比率に対して移動先サーバにおけるフローの数に依存した仮想スイッチのスケジューリング負荷を反映させるための係数を掛け算したり、移動先サーバにおいて仮想マシンに割り当てられた仮想NICの速度や移動先サーバの物理NICの速度を元に割り当てられた帯域の上限値により制限を加えたりすることによって実行される。以上をふまえて、例えば、以下の関係式により帯域を求めてもよい。
(帯域)=(移動元サーバでの実測帯域)×((移動先サーバでの物理リソースの割り当て(例えばCPU速度))/(移動元サーバでの物理リソースの割当て(例えばCPU速度)))×(移動先サーバのフローの数に依存した1以下の係数)
なお、移動先サーバのフローの数に依存した1以下の係数とは、移動先サーバにおけるフローの数が多いほど、仮想スイッチにあるスケジューラの処理負荷が重くなり、この処理によって帯域が制限されることを反映する係数である。例えば、フローの数が多いほど値が小さくなる係数であり、テスト環境においてこの係数を求めておけばよい。
上述の関係式により、求められた補正された帯域は、CPU速度の比率で求めた300Mbpsよりも小さい値となる。また、割り当てられた仮想NICの能力(上限値)や移動先サーバの物理NICの能力に依存して割り当てられる帯域(上限値)よりも小さければ算出された帯域を用いてもよいが、算出された帯域が上限値よりも大きい場合には、その上限値を算出された帯域として置き換えればよい。なお、以上に説明した関係式にある項を全て考慮しなくても、その一部又は特定の組み合わせにより帯域を算出してもよい。
処理4030により、移動元サーバで実測された帯域が算出されることで、移動先サーバにおける仮想マシンの帯域が予測されている。仮想マシンのマイグレーションは、サーバの負荷分散、メンテナンス、仮想マシンを特定のサーバに片寄せさせる電力管理などに利用され、これらの処理が実行される場合に仮想マシンの移動先サーバでの動作が保証されていたとしても、マイグレーション前後での物理リソースの割り当て状況に依存して、仮想マシンの帯域がマイグレーションの前後で変わることがある。そこで、処理4030による算出が実行されることで、移動先サーバにおける仮想マシンの帯域の実測値により近い予測値を得ることができ、移動先サーバにおける仮想マシンの帯域の実測が実行されている期間であっても精度の高い予測値が使用されることで、後述される処理4060が実行可能となる。なお、マイグレーション前後での仮想マシンの実行環境に実質的な差がない場合には、処理4030を実行することなく、移動元サーバで実測された帯域を予測値として利用して、後述される処理4060が実行されてもよい。なお、処理4030の例が、図10に沿って上述された処理1110及び1170である。
更新部3030によって、仮想マシンプロファイル及び補正された帯域に基づき、帯域プロファイルを更新するための処理4040が実行される。マイグレーションさせられた仮想マシンの帯域プロファイルが、処理4020によって読み出された仮想マシンプロファイルにある物理リソースの割り当て状況(CPU速度及びNIC速度など)、及び処理4030によって補正された帯域で更新される。例えば、更新された帯域プロファイルの例が、図8に示される例である。帯域が補正された帯域であることを識別するために“E”という識別子に変更されている。処理4040により更新された帯域プロファイルがメモリ2100に格納される。
判定部3040によって、補正された帯域に基づき制御処理を判定するための処理4050が実行される。ここで、補正された帯域とは処理4030により補正された帯域である。処理4050では、例えば、補正された帯域が、仮想マシンによるフロー数で外部リンクの帯域を除算した値よりも大きければ、補正された帯域に対応するフローにインディビジュアルキューを割り当てる。一方で、補正された帯域が仮想マシンによるフロー数で外部リンクの帯域を除算した値よりも小さければ、補正された帯域に対応するフローにユニバーサルキューを割り当てる。なお、この割り当てに対してスケジューラがキューを選択する割合は、フローの総数に対して少なくとも1回の割合でインディビジュアルキュー各々を選択し、残りの割合でユニバーサルキューを選択するものとする。
処理4050によって移動先サーバでの仮想マシンの帯域が実測されるのを待っている期間であっても、補正された帯域を予測値として制御処理が判定される。つまり、移動先サーバでの仮想マシンの帯域が実測されるのを待っている期間であっても、各フローが外部リンクに送信される公平性を担保させ、キューの数が削減されるためスケジューラによる処理負荷が極力抑制させる処理が実行可能となる。
実行部3050によって、判定された制御処理を実行するための処理4060が実行される。処理4060においては、実行部3050によって、処理4050により判定された制御処理がサーバ内の仮想スイッチに含まれるソータ及びスケジューラに設定されることで、判定された制御処理(例えばキュー管理)がサーバ内で実行されることとなる。なお、処理4060の例が、図10に沿って上述された処理1120及び処理1180である。なお、処理4060が完了すると処理を終える。
図16に、実施例が適用されたサーバ(100、200)のキューコントローラ(130、230)で実行される他の処理が示される。図16に示される処理の例が、図10に沿って上述された処理1020、処理1060、及び処理1130である。なお、図16に示される処理は、サーバ内で複数の仮想マシンが実行される場合に、複数の仮想マシンに対して同時に実行されてもよいし、複数の仮想マシン毎に非同期に実行されてもよい。
測定制御部3060によって、データ量測定の開始を命令するための処理4510が実行される。測定制御部3060は、データ量を測定する対象を識別し、自サーバ内のモニタに対して、識別された対象が送信するデータ量を測定させるための命令を実行する。例えば、データ量を測定する対象として仮想マシンを識別する場合には、管理サーバ300によって割り当てられた仮想マシンのMACアドレスやIPアドレスにより、測定対象となる仮想マシンを識別すればよい。また、データ量を測定する対象としてフローを識別する場合には、フローの送信元MACアドレス及び宛先MACアドレスの組み合わせや、送信元IPアドレス及び宛先IPアドレスの組み合わせにより、測定対象となるフローを識別すればよい。後述されるモニタの測定部は、キャプチャされたパケットに測定制御部から命令されたこれらの識別情報があるか否かを判定することで測定対象を識別し、測定対象のパケットのデータ量を測定することとなる。
タイマ3070によって、データ量の測定時間の計測を開始するための処理4520が実行される。なお、処理4520が処理4510と同時に実行されてもよい。
測定制御部3060によって、タイマ3070の値が所定値であるか否かを判定するための処理4530が実行される。タイマ3070の値が所定値でないと判定された場合にはタイマ3070の計測を継続する。タイマ3070の値が所定値であると判定された場合には処理4540に移る。
測定制御部3060によって、データ量測定の停止を命令するための処理4540が実行される。測定部制御部3060は、後述されるモニタに対して、測定対象のデータ量測定を停止させるための命令をする。後述するが、処理4540による停止命令を受信したモニタは、測定されたデータ量をキューコントローラに通知する。
測定制御部3060によって、タイマを停止するための処理4550が実行される。処理4550により、帯域を算出するための測定時間の計測が停止する。なお、処理4550が処理4540と同時に実行されてもよい。
データ量取得部3080によって、測定されたデータ量を取得するための処理4560が実行される。処理4540による停止命令を受信したモニタが、測定されたデータ量をキューコントローラに通知する。データ量取得部3080により、この通知されたデータ量が取得される。
計算部3090によって、測定されたデータ量及びタイマ値に基づいて帯域を計算するための処理4570が実行される。処理4570において、処理4560により取得されたデータ量がタイマ3070により計測された測定時間で除算されることにより、測定対象の帯域が計算される。
更新部3030によって、仮想マシンプロファイル及び実測された帯域に基づき、帯域プロファイルを更新するための処理4580が実行される。ここで、実測された帯域とは処理4570により計算された帯域である。例えば、処理4580により更新された帯域プロファイルの例が図9に示される例であるとすると、実測された帯域が295Mbpsであり、帯域が実測された帯域であることを識別するために“M”という識別子に変更されている。処理4580により更新された帯域プロファイルがメモリ2100に格納される。
判定部3040によって、実測された帯域に基づき制御処理を判定するための処理4590が実行される。処理4590では、例えば、実測された帯域が、仮想マシンによるフロー数で外部リンクの帯域を除算した値よりも大きければ、実測された帯域に対応するフローにインディビジュアルキューを割り当てる。一方で、実測された帯域が仮想マシンによるフロー数で外部リンクの帯域を除算した値よりも小さければ、実測された帯域に対応するフローにユニバーサルキューを割り当てる。なお、この割り当てに対してスケジューラがキューを選択する割合は、フローの総数に対して少なくとも1回の割合でインディビジュアルキュー各々を選択し、残りの割合でユニバーサルキューを選択するものとする。
実行部3050によって、実測された帯域に基づき制御処理を判定するための処理4600実行される。処理4600においては、実行部3050によって、処理4590により判定された制御処理がサーバ内の仮想スイッチに含まれるソータ及びスケジューラに設定されることで、判定された制御処理(例えばキュー管理)がサーバ内で実行されることとなる。なお、処理4600の例が、図10に沿って上述された処理1140及び処理1190である。処理4600により、各フローが外部リンクに送信される公平性を担保させ、キューの数が削減されるためスケジューラによる処理負荷が極力抑制させる処理が実行される。
データ量測定を継続するか否かを判定するための処理4610が実行される。処理4610において、データ量測定を継続すると判定されると処理4510に移る。データ量測定を継続しないと判定されると図16に示される処理を終える。
図17に、実施例が適用されたサーバ(100、200)のモニタ(123、223)の機能ブロックが示される。モニタ123及び223の各々は、メモリ2100に格納されたプログラムがCPU2000によって実行されることにより、命令受信部5000、測定部5100、及び通知部5200として機能する。各機能ブロックにより実行される処理が、図18に示される処理に対応して後述される。
図18に実施例が適用されたサーバ(100、200)におけるモニタ(123、223)で実行される処理が示される。図18に示される処理の例が、図10に沿って上述された処理1010、処理1040、処理1050、及び処理1080である。
命令受信部5000によって、データ量測定の開始命令をキューコントローラから受信すると、モニタ(123、223)において図18に示される処理が開始される。
測定部5100によって、識別情報に基づき、データ量を測定するための処理6010が実行される。測定部5100は、上述された測定制御部3060の命令にある識別情報に基づいて測定対象を識別する。例えば、測定部5100は、キャプチャされたパケットに含まれる情報と識別情報とを比較することにより、測定対象のデータか否かを識別する。測定部5100により識別されたデータが測定対象である場合、測定対象のデータ量を測定する。
命令受信部5000によって、データ量測定の停止命令があるか否かを判定するための処理6020が実行される。データ量測定の停止命令がないと判定された場合には、処理6010に移る。データ量測定の停止命令をキューコントローラから受信した場合には、処理6030に移る。
測定部5100によって、データ量の測定を停止するための処理6030が実行され、データ量の測定を停止される。
通知部5200により、測定されたデータ量を通知するための処理6040が実行される。処理6040により、通知部5200は、測定部5100によって測定されたデータ量をキューコントローラに通知する。
図19に、実施例が適用された管理サーバ(300)のハードウェア構成が示される。管理サーバ300は、CPU7000、メモリ7100、記憶装置7200、送受信インターフェース(データ通信用)7300、送受信インターフェース(管理用)7400、及びそれらが接続されたバス7500を有するコンピュータである。
CPU7000は、処理を実行するための1以上のプロセッサを含んでいる。メモリ7100は例えば、RAMである。記憶装置7200は例えば、ROMやフラッシュメモリ等の不揮発性メモリ、又はHDD(Hard Disk Drive)等の磁気ディスク装置である。送受信インターフェース(データ通信用)7300は、外部装置に対してデータの送受信をするためのインターフェースであり、インターフェース回路、通信回路、通信制御回路、又はネットワークインターフェースカードなどの回路である。送受信インターフェース(管理用)7400は、管理用のデータを送受信するためのインターフェースであり、インターフェース回路、通信回路、通信制御回路、又はネットワークインターフェースカードなどの回路である。
メモリ7100には、管理サーバ300の動作を制御するための処理が記述されたプログラムが格納される。CPU7000によってメモリ7100に格納されたプログラムが実行されることにより管理サーバ300の動作が制御される。
なお、上述するサーバ100及びサーバ200の機能が管理サーバ300で実行されるようにしてもよい。例えば、仮想マシンのマイグレーションの命令に際して、管理サーバ300がサーバ100及びサーバ200内で実行される仮想マシンの帯域プロファイル及びサーバ100及びサーバ200の仮想マシンプロファイルを取得し、帯域プロファイルにある帯域を補正し、補正された帯域に基づくキュー管理をサーバ100及びサーバ200に設定するようにしてもよい。
上述した実施例によれば、サーバ間で仮想マシンを移動させる際に、リソースの割り当ての差に従って移動前の帯域から移動後の帯域を算出することで、リソースを共有する他の仮想マシンと協調させる実行状態を帯域の実測を待たずに決定できる。
以上の実施例に関し、さらに以下の付記を開示する。
(付記1) コンピュータ間で仮想マシンの移動が実行される場合に、移動元コンピュータにおいて前記仮想マシンに割り当てられたリソース及び移動先コンピュータにおいて前記仮想マシンに割り当てられるリソースの差分に基づいて、前記移動元コンピュータにおける仮想マシンの帯域から前記移動先コンピュータにおける前記仮想マシンの帯域を算出することを特徴とする情報処理方法。
(付記2) 算出された帯域に基づいて、前記移動先コンピュータにおける前記仮想マシンの実行状態を決定することを特徴とする付記1に記載の情報処理方法。
(付記3)前記実行状態を決定することにより、前記移動先コンピュータにおいて前記仮想マシンのデータ送信に割り当てられるキューの種類を決定することを特徴とする付記2に記載の情報処理方法。
(付記4)前記キューの種類は、前記仮想マシンのデータ送信が割り当てられる第1キューと、前記仮想マシンのデータ送信及び他の仮想マシンのデータ送信の両方が割り当てられる第2キューとを含むことを特徴とする付記3に記載の情報処理方法。
(付記5)前記差分は、移動元コンピュータにおいて前記仮想マシンに割り当てられた処理能力、及び移動先コンピュータにおいて前記仮想マシンに割り当てられる処理能力の差分であることを特徴とする付記1〜4の何れか1項に記載の情報処理方法。
(付記6)前記算出された帯域が、前記移動先コンピュータで実行されている仮想マシンの数により補正されることを特徴とする付記1〜5の何れか1項に記載の情報処理方法。
(付記7)前記算出された帯域が移動先コンピュータにおいて前記仮想マシンに割り当てられる仮想インターフェースの処理速度よりも大きい場合に、前記仮想インターフェースの処理速度を前記算出された帯域とすることを特徴とする付記1〜6の何れか1つに記載の情報処理方法。
(付記8)前記移動先コンピュータにおける仮想マシンの帯域が測定された後、前記算出された帯域を前記測定された帯域により更新することを特徴とする付記1〜7の何れか1つに記載の情報処理方法。
(付記9)前記仮想マシンが移動された後、前記移動元コンピュータにおいて実行される仮想マシンの実行状態を決定することを特徴とする付記1〜8の何れか1つに記載の情報処理方法。
(付記10)前記移動先コンピュータでは、異なるユーザの仮想マシンが実行されることを特徴とする付記1〜9の何れか1つに記載の情報処理方法。
(付記11)前記移動先コンピュータにおいて前記仮想マシンに割り当てられるリソースと共有して前記仮想マシンのデータ送信をスケジューリングすることを特徴とする付記1〜10の何れか1つに記載の情報処理方法。
(付記12) コンピュータ間で仮想マシンの移動が実行される場合に、移動元コンピュータにおいて前記仮想マシンに割り当てられたリソース及び移動先コンピュータにおいて前記仮想マシンに割り当てられるリソースの差分に基づいて前記移動元コンピュータにおける仮想マシンの帯域から算出された前記移動先コンピュータにおける前記仮想マシンの帯域に基づいて、前記移動先コンピュータにおける前記仮想マシンの実行状態を決定することを特徴とする情報処理方法。
(付記13) コンピュータ間で仮想マシンの移動が実行される場合に、移動元コンピュータにおいて前記仮想マシンに割り当てられたリソース及び移動先コンピュータにおいて前記仮想マシンに割り当てられるリソースの差分に基づいて、前記移動元コンピュータにおける仮想マシンの帯域から前記移動先コンピュータにおける前記仮想マシンの帯域を算出する制御部を有することを特徴とする情報処理装置。
(付記14) 前記制御部は、算出された帯域に基づいて、前記移動先コンピュータにおける前記仮想マシンの実行状態を決定することを特徴とする付記13に記載の情報処理装置。
(付記15) コンピュータ間で仮想マシンの移動が実行される場合に、移動元コンピュータにおいて前記仮想マシンに割り当てられたリソース及び移動先コンピュータにおいて前記仮想マシンに割り当てられるリソースの差分に基づいて前記移動元コンピュータにおける仮想マシンの帯域から算出された前記移動先コンピュータにおける前記仮想マシンの帯域に基づいて、前記移動先コンピュータにおける前記仮想マシンの実行状態を決定する制御部を有することを特徴とする情報処理装置。
(付記16) コンピュータ間で仮想マシンの移動が実行される場合に、移動元コンピュータにおいて前記仮想マシンに割り当てられたリソース及び移動先コンピュータにおいて前記仮想マシンに割り当てられるリソースの差分に基づいて前記移動元コンピュータにおける仮想マシンの帯域から算出された前記移動先コンピュータにおける前記仮想マシンの帯域に基づいて、前記移動先コンピュータにおける前記仮想マシンの実行状態を決定することをコンピュータに実行させるプログラム。
100、200 サーバ
110、111、210、211 仮想マシン
120、220 仮想スイッチ
121、221 ソータ
122、222 スケジューラ
123、223 モニタ
130、230 キューコントローラ
140、240 ユニバーサルキュー
150、250 インディビジュアルキュー
300 管理サーバ
400 スイッチ
500 ネットワーク
600 他のネットワーク

Claims (10)

  1. 仮想マシンを稼働させる複数のコンピュータの管理を行う情報処理装置が実行する情報処理方法において、
    コンピュータ間で仮想マシンの移動が実行される場合に、移動元コンピュータにおいて前記仮想マシンに割り当てられたリソースの割り当て量及び移動先コンピュータにおいて前記仮想マシンに割り当てられるリソースの割り当て量の差分に基づいて、前記移動元コンピュータにおける前記仮想マシンが使用するネットワークの帯域から前記移動先コンピュータにおける前記仮想マシンが使用するネットワークの帯域を算出し、
    算出された帯域に基づいて、前記移動先コンピュータにおける前記仮想マシンのデータ送信に用いるキューの割り当てを、前記移動先コンピュータに実行させる
    ことを特徴とする情報処理方法。
  2. 算出された帯域に基づいて、前記移動先コンピュータにおける前記仮想マシンが使用するリソースの設定情報を決定することを特徴とする請求項1に記載の情報処理方法。
  3. 決定した前記設定情報に基づいて、前記移動先コンピュータにおいて前記仮想マシンのデータ送信に割り当てられるキューの種類を決定することを特徴とする請求項2に記載の情報処理方法。
  4. 前記キューの種類は、前記仮想マシンのデータ送信が割り当てられる第1キューと、前記仮想マシンのデータ送信及び他の仮想マシンのデータ送信の両方が割り当てられる第2キューとを含むことを特徴とする請求項3に記載の情報処理方法。
  5. 前記差分は、移動元コンピュータにおいて前記仮想マシンに割り当てられた演算処理装置の動作速度、及び移動先コンピュータにおいて前記仮想マシンに割り当てられる演算処理装置の動作速度の差分であることを特徴とする請求項1〜4の何れか1項に記載の情報処理方法。
  6. 仮想マシンを稼働させる複数のコンピュータの管理を行う情報処理装置が実行する情報処理方法において、
    コンピュータ間で仮想マシンの移動が実行される場合に、移動元コンピュータにおいて前記仮想マシンに割り当てられたリソースの割り当て量及び移動先コンピュータにおいて前記仮想マシンに割り当てられるリソースの割り当て量の差分に基づいて前記移動元コンピュータにおける前記仮想マシンが使用するネットワークの帯域から算出された前記移動先コンピュータにおける前記仮想マシンが使用するネットワークの帯域に基づいて、前記移動先コンピュータにおける前記仮想マシンが使用するリソースの設定情報を決定し、
    決定した設定情報を前記移動先コンピュータに送信して、前記移動先コンピュータに前記仮想マシンのデータ送信に用いるキューの割り当てを実行させる
    ことを特徴とする情報処理方法。
  7. コンピュータ間で仮想マシンの移動が実行される場合に、移動元コンピュータにおいて前記仮想マシンに割り当てられたリソースの割り当て量及び移動先コンピュータにおいて前記仮想マシンに割り当てられるリソースの割り当て量の差分に基づいて、前記移動元コンピュータにおける前記仮想マシンが使用するネットワークの帯域から前記移動先コンピュータにおける前記仮想マシンが使用するネットワークの帯域を算出する制御部を有し、
    前記制御部は、算出した帯域に基づいて、前記移動先コンピュータにおける前記仮想マシンのデータ送信に用いるキューの割り当てを、前記移動先コンピュータに実行させる
    ことを特徴とする情報処理装置。
  8. 前記制御部は、算出された帯域に基づいて、前記移動先コンピュータにおける前記仮想マシンが使用するリソースの設定情報を決定することを特徴とする請求項7に記載の情報処理装置。
  9. コンピュータ間で仮想マシンの移動が実行される場合に、移動元コンピュータにおいて前記仮想マシンに割り当てられたリソースの割り当て量及び移動先コンピュータにおいて前記仮想マシンに割り当てられるリソースの割り当て量の差分に基づいて前記移動元コンピュータにおける前記仮想マシンが使用するネットワークの帯域から算出された前記移動先コンピュータにおける前記仮想マシンが使用するネットワークの帯域に基づいて、前記移動先コンピュータにおける前記仮想マシンが使用するリソースの設定情報を決定する制御部を有し、
    前記制御部は、決定した設定情報を前記移動先コンピュータに送信して、前記移動先コンピュータに前記仮想マシンのデータ送信に用いるキューの割り当てを実行させる
    ことを特徴とする情報処理装置。
  10. コンピュータ間で仮想マシンの移動が実行される場合に、移動元コンピュータにおいて前記仮想マシンに割り当てられたリソースの割り当て量及び移動先コンピュータにおいて前記仮想マシンに割り当てられるリソースの割り当て量の差分に基づいて前記移動元コンピュータにおける前記仮想マシンが使用するネットワークの帯域から算出された前記移動先コンピュータにおける前記仮想マシンが使用するネットワークの帯域に基づいて、前記移動先コンピュータにおける前記仮想マシンが使用するリソースの設定情報を決定し、
    決定した設定情報を前記移動先コンピュータに送信して、前記移動先コンピュータに前記仮想マシンのデータ送信に用いるキューの割り当てを実行させる
    ことをコンピュータに実行させるプログラム。
JP2012207640A 2012-09-20 2012-09-20 情報処理方法、情報処理装置、及びプログラム。 Expired - Fee Related JP5954074B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012207640A JP5954074B2 (ja) 2012-09-20 2012-09-20 情報処理方法、情報処理装置、及びプログラム。
US13/957,162 US9378032B2 (en) 2012-09-20 2013-08-01 Information processing method, information processing apparatus, recording medium, and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012207640A JP5954074B2 (ja) 2012-09-20 2012-09-20 情報処理方法、情報処理装置、及びプログラム。

Publications (2)

Publication Number Publication Date
JP2014063324A JP2014063324A (ja) 2014-04-10
JP5954074B2 true JP5954074B2 (ja) 2016-07-20

Family

ID=50275880

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012207640A Expired - Fee Related JP5954074B2 (ja) 2012-09-20 2012-09-20 情報処理方法、情報処理装置、及びプログラム。

Country Status (2)

Country Link
US (1) US9378032B2 (ja)
JP (1) JP5954074B2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2586137B1 (en) 2010-06-23 2017-03-22 Telefonaktiebolaget LM Ericsson (publ) Reference signal interference management in heterogeneous network deployments
US9166865B2 (en) * 2012-11-07 2015-10-20 International Business Machines Corporation Mobility operation resource allocation
US9571426B2 (en) 2013-08-26 2017-02-14 Vmware, Inc. Traffic and load aware dynamic queue management
US9860117B2 (en) 2014-02-03 2018-01-02 Sprint Communications Company, L.P. Automatically generated virtual network elements for virtualized packet networks
US9876689B1 (en) 2014-02-03 2018-01-23 Sprint Communications Company L.P. Automatically generated virtual network elements for virtualized local area networks
US10476809B1 (en) * 2014-03-12 2019-11-12 Amazon Technologies, Inc. Moving virtual machines using migration profiles
US10067800B2 (en) * 2014-11-06 2018-09-04 Vmware, Inc. Peripheral device sharing across virtual machines running on different host computing systems
US9921864B2 (en) * 2015-02-26 2018-03-20 Vmware, Inc. Dynamic host performance tuning of a network stack
US10970110B1 (en) 2015-06-25 2021-04-06 Amazon Technologies, Inc. Managed orchestration of virtual machine instance migration
US10228969B1 (en) * 2015-06-25 2019-03-12 Amazon Technologies, Inc. Optimistic locking in virtual machine instance migration
US9811376B2 (en) 2015-06-29 2017-11-07 Amazon Technologies, Inc. Virtual machine instance migration using a triangle approach
US9438478B1 (en) * 2015-11-13 2016-09-06 International Business Machines Corporation Using an SDN controller to automatically test cloud performance
US9985890B2 (en) 2016-03-14 2018-05-29 International Business Machines Corporation Identifying a local congestion control algorithm of a virtual machine
CN107306232B (zh) * 2016-04-22 2021-02-26 华为技术有限公司 网络设备、控制器、队列管理方法及流量管理芯片
US10045252B2 (en) * 2016-06-02 2018-08-07 International Business Machines Corporation Virtual switch-based congestion control for multiple TCP flows
US10360058B2 (en) * 2016-11-28 2019-07-23 International Business Machines Corporation Input/output component selection for virtual machine migration
US11089066B2 (en) * 2016-12-09 2021-08-10 Nutanix, Inc. System and method for dynamic medium access control (MAC) relating to a virtualization environment
US10552225B2 (en) * 2017-07-04 2020-02-04 Vmware, Inc. Virtual device migration or cloning based on device profiles
CN109697120B (zh) * 2017-10-20 2023-06-27 伊姆西Ip控股有限责任公司 用于应用迁移的方法、电子设备
CN109697121B (zh) * 2017-10-20 2023-05-05 伊姆西Ip控股有限责任公司 用于向应用分配处理资源的方法、设备和计算机可读介质
CN109697115B (zh) * 2017-10-20 2023-06-06 伊姆西Ip控股有限责任公司 用于调度应用的方法、装置以及计算机可读介质
US10965739B2 (en) * 2018-04-06 2021-03-30 Vmware, Inc. Time-based congestion discounting for I/O fairness control
CN109067665B (zh) * 2018-09-25 2022-01-11 华为技术有限公司 拥塞控制方法和网络设备
US10956230B2 (en) * 2018-10-01 2021-03-23 Vmware, Inc. Workload placement with forecast
JP7087921B2 (ja) * 2018-10-31 2022-06-21 富士通株式会社 処理フレームワーク連携装置、処理フレームワーク連携方法および処理フレームワーク連携プログラム
US11822964B2 (en) * 2020-06-03 2023-11-21 Baidu Usa Llc Data protection with static resource partition for data processing accelerators
US11997159B2 (en) * 2020-12-22 2024-05-28 Microsoft Technology Licensing, Llc Proactive placement of virtualized computing resources and tuning of network resources based on seasonal variations

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8218551B2 (en) 2003-09-30 2012-07-10 International Business Machines Corporation Hierarchical scheduling
US7257811B2 (en) 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US7801994B2 (en) * 2007-11-29 2010-09-21 Hitachi, Ltd. Method and apparatus for locating candidate data centers for application migration
JP2010108409A (ja) 2008-10-31 2010-05-13 Hitachi Ltd ストレージ管理方法及び管理サーバ
JP2011203810A (ja) 2010-03-24 2011-10-13 Hitachi Ltd サーバ、計算機システム及び仮想計算機管理方法
US20140032642A1 (en) * 2012-07-30 2014-01-30 International Business Machines Corporation Controlling server response based on client performance

Also Published As

Publication number Publication date
US9378032B2 (en) 2016-06-28
JP2014063324A (ja) 2014-04-10
US20140082616A1 (en) 2014-03-20

Similar Documents

Publication Publication Date Title
JP5954074B2 (ja) 情報処理方法、情報処理装置、及びプログラム。
US10827020B1 (en) Assignment of microservices
US8694644B2 (en) Network-aware coordination of virtual machine migrations in enterprise data centers and clouds
Mazumdar et al. Power efficient server consolidation for cloud data center
JP6278320B2 (ja) エンドツーエンドデータセンタ性能制御
US20200019841A1 (en) Neural network model for predicting usage in a hyper-converged infrastructure
Singhvi et al. Archipelago: A scalable low-latency serverless platform
CN107222531B (zh) 一种容器云资源调度方法
US9882832B2 (en) Fine-grained quality of service in datacenters through end-host control of traffic flow
Struhár et al. React: Enabling real-time container orchestration
CN109564528B (zh) 分布式计算中计算资源分配的系统和方法
KR20160070636A (ko) 분산 클라우드 환경에서의 마이그레이션 제어 장치 및 이를 이용한 마이그레이션 제어 방법
CN108123980B (zh) 一种资源调度方法及系统
CN112119666A (zh) 用于管理无线电接入网内的资源的方法、计算机程序和电路系统
US10216543B2 (en) Real-time analytics based monitoring and classification of jobs for a data processing platform
KR20130088513A (ko) 멀티코어 시스템의 태스크 분배 방법 및 장치
US11716384B2 (en) Distributed resource management by improving cluster diversity
CN106681839B (zh) 弹性计算动态分配方法
Hu et al. Job scheduling without prior information in big data processing systems
Cucinotta et al. Strong temporal isolation among containers in OpenStack for NFV services
JP2016024612A (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
Yazdanov et al. EHadoop: Network I/O aware scheduler for elastic MapReduce cluster
KR101448413B1 (ko) Atca-기반 장비에서 통신 트래픽을 스케줄링하기 위한 방법 및 장치
JP5257709B2 (ja) 仮想計算機の移動方法、仮想計算機システム及び管理サーバ
WO2020166423A1 (ja) リソース管理装置およびリソース管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160212

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20160401

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160530

R150 Certificate of patent or registration of utility model

Ref document number: 5954074

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees