JP6256086B2 - 情報処理システム、移動制御方法および移動制御プログラム - Google Patents

情報処理システム、移動制御方法および移動制御プログラム Download PDF

Info

Publication number
JP6256086B2
JP6256086B2 JP2014029932A JP2014029932A JP6256086B2 JP 6256086 B2 JP6256086 B2 JP 6256086B2 JP 2014029932 A JP2014029932 A JP 2014029932A JP 2014029932 A JP2014029932 A JP 2014029932A JP 6256086 B2 JP6256086 B2 JP 6256086B2
Authority
JP
Japan
Prior art keywords
information processing
virtual machine
processing apparatus
memory transfer
packet
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
JP2014029932A
Other languages
English (en)
Other versions
JP2015153409A (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 JP2014029932A priority Critical patent/JP6256086B2/ja
Priority to US14/566,030 priority patent/US9396022B2/en
Publication of JP2015153409A publication Critical patent/JP2015153409A/ja
Application granted granted Critical
Publication of JP6256086B2 publication Critical patent/JP6256086B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、情報処理システム、移動制御方法および移動制御プログラムに関する。
従来から、あるサーバ上で動作する仮想マシンを別のサーバに移動させるVMマイグレーション(Virual Machine migration)が知られている。具体的には、移動元サーバは、移動対象の仮想マシンが使用するメモリのデータを、移動先サーバに転送する。移動先サーバは、移動元サーバからのメモリ転送が完了すると、仮想マシンを起動させる。
また、データセンタは、大量のサーバを稼働させているので、膨大な電力を消費する。このため、データセンタでは、省電力化のために、運用中の仮想マシンを移動させて、仮想マシンが稼働していないサーバを作り、そのサーバを停止させることにより、データセンタの省電力化が行われる。
VMマイグレーションにおいて、移動対象の仮想マシンは、数秒から数十秒間停止した後、別サーバで再稼働される。ところが、移動対象の仮想マシンが停止している数秒間に受信する予定のパケットは廃棄される。このため、パケット廃棄を許容しないサービスを実施している仮想マシンは、自由に移動することができない。したがって、このような仮想マシンを稼動させるサーバは、省電力化やメンテナンスが難しい。
近年では、パケット廃棄を抑制する技術として、移動用バッファを用いたVMマイグレーションが知られている。具体的には、移動元サーバは、VMマイグレーション実行時に移動用バッファを使用し、移動対象の仮想マシンを宛先とするパケットを移動用バッファで受信する。そして、移動元サーバは、仮想マシンのメモリ転送が終了し、移動先サーバで仮想マシンが起動されると、移動用バッファに記憶されるパケットを移動先サーバに転送する。
国際公開第2010/123140号 特開2012−88863号公報 特開2011−210032号公報 特開2010−257209号公報
しかしながら、上記技術では、移動用バッファに記憶されたパケットの量が多い場合やサーバ間の通信速度が遅い場合、パケットの転送時間が長くなる。このため、移動した仮想マシンは、パケットの転送が終了するまでパケットに関する処理の実行を開始できない。つまり、移動した仮想マシンのパケット処理が遅延する。
1つの側面では、移動した仮想マシンが実行するパケット処理の遅延を抑制できる情報処理システム、移動制御方法および移動制御プログラムを提供することを目的とする。
第1の案では、情報処理システムは、第1の情報処理装置と、スイッチ装置を介して前記第1の情報処理装置に接続される第2の情報処理装置とを有する。前記第1の情報処理装置は、前記第1の情報処理装置で稼動する仮想マシンが前記第2の情報処理装置に移動する場合、前記第1の情報処理装置からの前記第2の情報処理装置へのメモリ転送のデータ量が第1のメモリ転送量閾値を超過すると、前記仮想マシンによるパケット送信を停止させるとともに、前記仮想マシンの停止を予告する停止予告通知を前記第2の情報処理装置に送信する予告送信部を有する。前記第1の情報処理装置は、前記仮想マシンのアドレス情報を含む制御プロトコルを受信し、前記メモリ転送のデータ量が第2のメモリ転送量閾値を超過した場合、前記仮想マシンを停止する停止部を有する。前記第2の情報処理装置は、前記停止予告通知を受信した場合、前記制御プロトコルを前記スイッチ装置および前記第1の情報処理装置に送信するとともに、生成した仮想ネットワークインタフェースで前記仮想マシン宛のパケットを受信する受信部を有する。前記第2の情報処理装置は、前記メモリ転送が完了した後、前記仮想マシンを起動して前記パケット送信を開始するとともに、前記仮想ネットワークインタフェースが保持するパケットを前記仮想マシンに出力する起動制御部を有する。
1実施形態によれば、移動した仮想マシンが実行するパケット処理の遅延を抑制できる。
図1は、実施例1に係る情報処理システムの全体構成例を示す図である。 図2は、実施例1に係るサーバの階層構造例を示す図である。 図3は、実施例1に係る情報処理システムの機能構成例を示す機能ブロック図である。 図4は、VM管理テーブルに記憶される情報の例を示す図である。 図5は、FDBに記憶される情報の例を示す図である。 図6は、VMの移動開始からGARP送信までの流れを説明する図である。 図7は、GARP送信後からVMの移動完了までの流れを説明する図である。 図8は、移動元サーバが実行する処理の流れを示すフローチャートである。 図9は、移動先サーバが実行する処理の流れを示すフローチャートである。 図10は、移動前後のパケットの流れを説明する図である。 図11は、移動元サーバでVM移動失敗を検出した場合の処理の流れを示すフローチャートである。 図12は、移動先サーバでVM移動失敗を検出した場合の処理の流れを示すフローチャートである。 図13は、移動元サーバで複数のVMが通信している状況でVMを移動する場合の処理を説明する図である。 図14は、ハードウェア構成例を説明する図である。
以下に、本願の開示する情報処理システム、移動制御方法および移動制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
[全体構成図]
図1は、実施例1に係る情報処理システムの全体構成例を示す図である。図1に示すように、この情報処理システムは、移動元サーバ10、移動先サーバ30、スイッチ50を有する。また、移動元サーバ10と移動先サーバ30とは、スイッチ50を介して接続される。本実施例では、移動元サーバ10から移動先サーバ30へ、仮想マシン(VM:Virtual Machine)1を移動させる例を説明する。
移動元サーバ10は、VM1を稼動する物理サーバである。なお、VM1は、物理サーバのリソースを用いて実行される仮想マシンである。移動先サーバ30は、VM1の移動先となる物理サーバである。
スイッチ50は、各サーバ間の通信、各サーバと外部との通信を中継する中継装置であり、例えばスイッチングハブなどである。例えば、スイッチ50は、VM1から送信されたパケットを移動先サーバ30に中継し、移動先サーバ30から送信されたパケットをVM1に中継する。また、スイッチ50は、外部のサーバやVMから送信されたVM1を宛先とするパケットをVM1に中継する。
[階層構造]
図2は、実施例1に係るサーバの階層構造例を示す図である。図1に示した移動元サーバ10と移動先サーバ30とは同様の構造を有するので、ここでは、移動元サーバ10を例にして説明する。
図2に示すように、移動元サーバ10は、ハードウェア10a、ハイパーバイザ10b、仮想スイッチ10c、コントロールドメイン10d、仮想マシン10e、仮想マシン10f、仮想マシン10gで構成される。
仮想スイッチ10c、コントロールドメイン10d、仮想マシン10e、仮想マシン10f、仮想マシン10gは、ハイパーバイザ10bによって実行されるソフトウェアである。
ハードウェア10aは、CPU(Central Processing Unit)、メモリ、ディスク、ネットワークインタフェースカードなどである。ハイパーバイザ10bは、各VMに仮想メモリや仮想プロセッサを割り与えて、VMを制御するソフトウェアある。例えば、ハイパーバイザ10bは、VMの起動や停止、VMの移動などを実行する。
仮想スイッチ10cは、ハイパーバイザ10bによって実行される仮想的なスイッチングハブなどであり、同一サーバ内のVM間通信や異なるサーバのVM間通信を制御する。コントロールドメイン10dは、VMからネットワークやディスクへのアクセスを制御する仮想マシンである。各VMは、ハイパーバイザ10bによって提供される仮想マシンである。
例えば、各VMが送信したパケットは、仮想スイッチ10cを経由してコントロールドメイン10dに受信され、コントロールドメイン10dが、仮想スイッチ10cやネットワークインタフェースを介して宛先に送信する。また、各VMを宛先とするパケットについても、ネットワークインタフェース等を介してコントロールドメイン10dに受信され、コントロールドメイン10dが仮想スイッチ10cを介して宛先に送信する。
同様に、各VMからのディスクアクセスは、仮想スイッチ10cを経由してコントロールドメイン10dに受信され、コントロールドメイン10dが実行する。また、ディスクアクセスの応答は、コントロールドメイン10dに受信され、コントロールドメイン10dが仮想スイッチ10cを介してアクセス元のVMに送信する。
なお、図2に示した仮想マシンの実行環境はあくまで一例であり、図示したものに限定されない。例えば、ハイパーバイザ以外のソフトウェアを用いてもよい。また、VMの制御方式についても、ハイパーバイザ型やホスト型など様々な方式を用いることができる。
[機能構成]
図3は、実施例1に係る情報処理システムの機能構成例を示す機能ブロック図である。ここでは、移動元サーバ10、移動先サーバ30、スイッチ50の各機能構成について説明する。なお、ここでは、説明上、移動元サーバ10の機能構成と移動先サーバ30の機能構成とを分けて説明するが、各サーバは両方の機能部を有している。
(移動元サーバの機能構成)
図3に示すように、移動元サーバ10は、ネットワークIF(インタフェース)11、仮想SW(スイッチ)12、VM管理テーブル13、メモリ転送部14、予告送信部15、移動管理部16、VM停止部17を有する。移動元サーバ10は、これらによってVM1を稼動する。なお、メモリ転送部14、予告送信部15、移動管理部16、VM停止部17は、ハイパーバイザ10bが実行する処理部である。
ネットワークIF11は、物理インタフェースであり、例えばNIC(ネットワークインタフェースカード)などである。このネットワークIF11には、IP(Internet Protocol)アドレスが設定されており、このIPアドレスを用いて通信を実行する。
例えば、ネットワークIF11は、VM1宛のパケットを受信して仮想SW12に出力する。このパケットは、仮想SW12を介して、VM1に受信される。また、ネットワークIF11は、仮想SW12を介して各処理部が送信したメモリ転送などのパケットを受信し、宛先に出力する。
仮想SW12は、ハイパーバイザ10bが実行する仮想スイッチである。仮想SW12は、図2に示した仮想スイッチ10cに対応する。この仮想SW12は、VM間でやり取りされるパケットを中継する。
例えば、仮想SW12は、各処理部やVM1が送信したパケットをネットワークIF11に出力し、各処理部やVM1を宛先とするパケットをネットワークIF11から受信して宛先に出力する。
VM管理テーブル13は、VMに関する情報を記憶するテーブルである。このVM管理テーブル13は、図2に示したハードウェア10aが有するメモリやディスクに記憶される。図4は、VM管理テーブルに記憶される情報の例を示す図である。
図4に示すように、VM管理テーブル13は、「VM名、MACアドレス、IPアドレス、状態、第1のメモリ転送閾値フラグ、第2のメモリ転送閾値フラグ」を対応付けて記憶する。
ここで記憶される「VM名」は、VMを識別する識別子であり、例えばゲスト名などが設定される。「MACアドレス」は、VMのMAC(Media Access Control)アドレスである。「IPアドレス」は、VMのIPアドレスである。「状態」は、VMの状態を示す情報であり、VMが起動している場合は「起動中」、VMが停止している場合は「停止中」、VMがマイグレーション中である場合は「移動中」が設定される。
「第1のメモリ転送閾値フラグ」は、移動中のVMのメモリ転送量が第1のメモリ転送閾値を超えたか否かを示す情報であり、閾値を超えた場合は「1」が設定され、閾値を超えていない場合は「0」が設定される。「第2のメモリ転送閾値フラグ」は、移動中のVMのメモリ転送量が第2のメモリ転送閾値を超えたか否かを示す情報であり、閾値を超えた場合は「1」が設定され、閾値を超えていない場合は「0」が設定される。なお、第1のメモリ転送閾値と第2のメモリ転送閾値については後述する。
図4の場合、VM1には、MACアドレス「00:11:22:33:44:55」が設定されており、IPアドレス「192.168.10.10」が設定されていることを示す。また、VM1は、移動中であり、メモリ転送量が第1のメモリ転送閾値を超えたが、第2のメモリ転送閾値は超えていない状態であることを示す。
メモリ転送部14は、VMの移動に伴ってメモリ転送を実行する処理部である。具体的には、メモリ転送部14は、管理者等の指示や予め指定されたスケジュールにしたがって、VMのマイグレーションを実行する。例えば、メモリ転送部14は、移動対象のVM1が使用しているメモリ領域に記憶されるデータのコピーを実行する。そして、メモリ転送部14は、VM管理テーブル13において、移動を開始するVM1に対応する「状態」に「移動中」を設定する。
まず、メモリ転送部14は、該当メモリ領域の全データを移動先サーバ30に転送する。次にタイミングで、メモリ転送部14は、前回からの更新分だけを移動先サーバ30に転送する。さらに次のタイミングで、メモリ転送部14は、前回からの更新分だけを移動先サーバ30に転送する。このようにして、メモリ転送部14は、移動対象のVM1が停止するまで、更新分だけを移動先サーバ30に転送する。
ここで、メモリ転送部14が送信するメモリ転送のフォーマットには、移動元サーバのIPアドレス、移動先サーバのIPアドレス、移動対象のVMのIPアドレス、メッセージ種別、メッセージタイプ、転送対象のデータが含まれる。なお、メッセージ種別には、メモリ転送であることを示す識別子が設定される。メッセージタイプには、メモリ転送開始、メモリ転送中、メモリ転送完了、メモリ転送中止のいずれであるかを示す識別子が設定される。
予告送信部15は、メモリ転送部14によるメモリ転送のデータ量が第1のメモリ転送量閾値を超過すると、移動対象のVM1によるパケット送信を停止させるとともに、VM1の停止を予告する停止予告通知を移動先サーバ30に送信する処理部である。
具体的には、予告送信部15は、メモリ転送の終了にどのくらい近づいているかを判断し、ある程度終了に近づいていると判断できる場合、VM1のパケット送信を停止して停止予告通知を送信する。そして、予告送信部15は、VM管理テーブル13においてVM1に対応する「第1のメモリ転送閾値フラグ」に「1」を設定する。
ここで、第1のメモリ転送量とは、全メモリ転送量のうちどのくらいの転送を完了したかを示す情報である。したがって、全メモリ転送量を4GB、第1のメモリ転送量を80%とした場合、第1のメモリ転送量閾値は、4GB×0.8=3.2GBとなる。この結果、予告送信部15は、メモリ転送量が3.2GBを超えた場合に、停止予告通知を移動先サーバ30に送信する。
また、前回の転送からの更新量を基準にして第1のメモリ転送量閾値を設定することもできる。例えば、全メモリ転送量を4GB、第1のメモリ転送量を30%とした場合、第1のメモリ転送量閾値は、4GB×0.3=1.2GBとなる。この結果、予告送信部15は、メモリ転送量が1.2GBを下回った場合、停止予告通知を移動先サーバ30に送信する。
ここで、予告送信部15が送信するVM停止予告通知のフォーマットには、移動元サーバのIPアドレス、移動先サーバのIPアドレス、移動対象のVMのIPアドレス、メッセージ種別、メッセージタイプ、転送対象のデータが含まれる。なお、メッセージ種別には、メモリ転送であることを示す識別子が設定される。メッセージタイプには、VM停止予告であることを示す識別子が設定される。
移動管理部16は、VMの状態を管理する処理部である。具体的には、移動管理部16は、VM1の移動状況やメモリ転送の状況を監視し、移動失敗や転送失敗を検出する。また、移動管理部16は、スイッチ50を介して、移動先サーバ30が送信したGARP(Gratuitous Address Resolution Protocol)メッセージを受信する。そして、移動管理部16は、GARPメッセージを受信したことをVM停止部17に通知する。
VM停止部17は、移動対象のVM1のアドレス情報を含むGARPメッセージが受信され、メモリ転送のデータ量が第2のメモリ転送量閾値を超過した場合、VM1を停止する処理部である。具体的には、VM停止部17は、移動先サーバ30からGARPメッセージを受信した後、メモリ転送が終了に近づいているかを判断できる場合、VM1を停止する。そして、VM停止部17は、VM管理テーブル13においてVM1に対応する「第2のメモリ転送閾値フラグ」に「1」を設定する。
なお、第2のメモリ転送量閾値は、第1のメモリ転送量閾値と同様の観点から設定されるものであり、第1のメモリ転送量閾値と同じ値であってもよいが、第1のメモリ転送量閾値よりも大きい方が好ましい。
例えば、全メモリ転送量を4GB、第1のメモリ転送量を80%、第2のメモリ転送量を90%とした場合、第1のメモリ転送量閾値は、4GB×0.8=3.2GBとなり、第2のメモリ転送量閾値は、4GB×0.9=3.6GBとなる。この結果、VM停止部17は、GAPRメッセージ受信後、メモリ転送量が3.6GBを超えた場合、VM1を停止する。
(移動先サーバの機能構成)
図3に示すように、移動先サーバ30は、ネットワークIF31、仮想SW32、メモリ受信部33、移動管理部34、TAP生成部35、VM起動部37を有する。移動先サーバ30は、これらによってVM1を移動元サーバ10から移動させて稼動する。なお、メモリ受信部33、移動管理部34、TAP生成部35、VM起動部37は、ハイパーバイザ10bが実行する処理部である。
ネットワークIF31は、ネットワークIF11と同様、物理インタフェースである。このネットワークIF31には、IPアドレスが設定されており、このIPアドレスを用いて通信を実行する。仮想SW32は、仮想SW12と同様、ハイパーバイザ10bが実行する仮想スイッチである。仮想SW32は、VM間でやり取りされるパケットを中継する。
メモリ受信部33は、移動元サーバ10から、移動対象のVM1のメモリデータを受信して、移動先サーバ30内のメモリに格納する処理部である。具体的には、メモリ受信部33は、移動先サーバ10からメモリデータを受信するたびに移動先サーバ30内のメモリに格納し、格納対象領域にすでにメモリデータが格納されている場合、新たに受信したメモリデータで更新する。
移動管理部34は、停止予告通知を受信した場合、VM1のアドレス情報を含むGARPメッセージをスイッチ50および移動元サーバ10に送信する処理部である。また、移動管理部34は、ユーザプロセスと通信するための仮想ネットワークインタフェースであるTAP36の生成をTAP生成部35に要求する処理部である。例えば、移動管理部34は、GARPメッセージをブロードキャスト等で送信する。
また、移動管理部34は、TAP36が生成された後、VM1宛のパケットを受信した場合、当該パケットをTAP36に保持させる処理部である。なお、移動管理部34は、管理者からの設定や移動先サーバ10からの通知によって、VM1のアドレス情報を取得することができる。
ここで送信されるGARPメッセージは、ハード種別、プロトコル、HLEN(hardware address length)、PLEN(protocol address length)、動作情報、送信元MACアドレス、送信元IPアドレス、送信先MACアドレス、送信先IPアドレスを含んでいる。
ハード種別は、ネットワークによって一意に識別される固定値が設定され、例えばイーサネット(登録商標)の場合「0x0001」が設定される。プロトコルは、ARPプロトコルで取り扱う上位のプロトコルの種類を示す情報であり、IPネットワークの場合は固定値「0x0800」が設定される。HLENは、MACアドレスの長さを指定するフィールドであり、例えば固定値「6」が設定される。PLENは、上位のプロトコルで利用されるアドレス情報の長さを示す情報であり、例えば固定値「4」が設定される。
動作情報は、ARP要求かARP要求に対する応答かを指定する情報であり、例えばARP要求の場合には固定値「1」が設定される。送信元MACアドレスは、GARP要求対象のVM1のMACアドレスが設定される。送信元IPアドレスには、GARP要求対象のVM1のIPアドレスが設定される。送信先MACアドレスには、送信元MACアドレスと同一の情報が設定される。送信先IPアドレスには、送信元IPアドレスと同一の情報が設定される。
TAP生成部35は、移動管理部34からTAP生成指示を受信した場合に、TAP36を生成する処理部である。例えば、TAP生成部35は、仮想SW32内または仮想SW32と接続されるように、TAP36を生成する。別例としては、TAP生成部35は、予め確保しておいたバッファを開放するようにしてもよい。
そして、TAP生成部35は、TAP36を生成したことを移動管理部34に通知する。この結果、移動管理部34は、VM1を宛先とするパケットを受信した場合、TAP36に一時的に保持させることができる。
VM起動部37は、メモリ転送が完了した後、VM1を起動してパケット送信を開始するとともに、TAP36が保持するパケットをVM1に出力する処理部である。例えば、VM起動部37は、メモリ受信部33からメモリ転送の完了が通知されると、ハードウェアを用いて仮想プロセッサや仮想メモリをVM1に割当ててVM1を起動する。そして、VM1は、TAP36が保持するパケットを受信し、パケット送信の開始指示をVM起動部37から受信することで、パケット処理を開始する。
なお、メモリ受信部33は、移動元サーバ10からメモリ転送の完了通知を受信した場合や一定期間メモリ転送を受信しない場合、メモリ転送が完了したと判定し、メモリ転送の完了をVM起動部37に通知する。
(スイッチの機能構成)
図3に示すように、スイッチ50は、ネットワークIF51、FDB52、データ転送部53、更新部54を有する。
ネットワークIF51は、例えばポートなどの物理インタフェースである。このネットワークIF51は、移動元サーバ10からVM停止予告通知やメモリ転送完了通知を受信する。また、ネットワークIF51は、移動先サーバ30からGARPメッセージを受信する。また、ネットワークIF51は、外部のサーバ等からVM1宛のパケットを受信する。
FDB52は、パケットの転送先等を記憶するフォワーディングデータベースである。図5は、FDBに記憶される情報の例を示す図である。図5に示すように、FDB52は、「MACアドレス、ポート、時刻」を対応付けて記憶する。
ここで記憶される「MACアドレス」は、パケットの宛先となるMACアドレスである。「ポート」は、MACアドレスで特定される宛先のパケットを出力するポート番号である。「時刻」は、エントリが更新された時刻である。
図5の先頭のエントリの場合、MACアドレス「00:11:22:33:44:55」を宛先とするパケットをポート番号10のポートから出力することを示す。また、このエントリは、2013年10月15日の9時10分に更新されたことを示す。
データ転送部53は、受信されたパケットをFDB52に記憶される情報に基づいて転送する処理部である。例えば、データ転送部53は、MACアドレス「00:11:22:33:44:55」を宛先とするパケットを受信した場合、図5を参照して出力ポートを「ポート10」と特定する。そして、データ転送部53は、受信パケットをポート10から出力する。
また、データ転送部53は、ブロードキャストアドレスが指定されたGARPメッセージなどを受信した場合、ネットワークIF51を介して、GARPメッセージをブロードキャストで転送する。この結果、移動先サーバ30から送信されたGARPメッセージは、移動元サーバ10に受信される。
更新部54は、FDB52を更新する処理部である。具体的には、更新部54は、GARPメッセージを受信すると、GARPメッセージに含まれる送信元MACアドレスおよびGARPメッセージを受信したポート番号を特定する。その後、更新部54は、送信元MACアドレスとポート番号とを対応付けて、FDB52に格納する。
例えば、送信元MACアドレス「00:11:22:33:44:55」を含むGARPメッセージが、2013年10月15日の12時30分に、ポート10で受信されたとする。この場合、更新部54は、送信元MACアドレス「00:11:22:33:44:55」に対応するFDB52のエントリを参照し、特定したエントリのポート番号が10であることを特定する。つまり、更新部54は、送信元MACアドレスとポート番号とが一致することから、今回受信した際の時刻「2013年10月15日の12時30分」でエントリを更新する。
また、送信元MACアドレス「aa:bb:22:33:44:55」を含むGARPメッセージが、2013年10月15日の11時30分に、ポート30で受信されたとする。この場合、更新部54は、送信元MACアドレス「aa:bb:22:33:44:55」に対応するエントリがFDB52に記憶されていないと判定する。この結果、更新部54は、送信元MACアドレス「aa:bb:22:33:44:55」と受信ポート番号「30」と受信時刻「201310151130」とを対応付けたエントリをFDB52に追加する。
[具体例]
次に、VMを移動させる場合の具体例を説明する。図6は、VMの移動開始からGARP送信までの流れを説明する図であり、図7は、GARP送信後からVMの移動完了までの流れを説明する図である。
図6に示すように、移動前の段階では、移動元サーバ10がVM1を稼動させており、移動元サーバ10と移動先サーバ30とがスイッチ50を介して接続される。この状態で、スイッチ50は、外部からVM1へのパケットを受信した場合、FDB52を参照して、受信パケットを移動元サーバ10へ転送する。
次に、移動元サーバ10は、VM1の移動を開始すると、メモリ転送を開始する。具体的には、移動元サーバ10は、VM1に対応するメモリデータを移動先サーバ30に転送する。なお、ここでは、スイッチ50のFDB52は更新されていないので、VM1へのパケットは、移動元サーバ10に転送される。
その後、移動元サーバ10は、メモリ転送のデータ量が第1のメモリ転送量閾値を超過した場合、VM停止予告通知を移動先サーバ30に送信する。このとき、移動元サーバ10は、VM1に対して、パケットの送信を停止させる。
このVM停止予告通知を受信した移動先サーバ30は、TAP36を生成するとともに、VM1のMACアドレスを含むGARPメッセージをスイッチ50と移動元サーバ10に送信する。
そして、図7に示すように、スイッチ50は、移動先サーバ30から受信したGARPメッセージを移動元サーバ10に転送する。さらに、スイッチ50は、GARPメッセージを受信したポート番号と、GARPメッセージに含まれるVM1のMACアドレスとの組合せで、FDB52を更新する。この結果、スイッチ50は、外部から受信したVM1宛のパケットを、移動先サーバ30へ転送する。移動先サーバ30は、VM1宛のパケットを受信すると、TAP36で保持する。
その後、移動元サーバ10は、GARPメッセージを受信し、メモリ転送のデータ量が第2のメモリ転送量閾値を超過した場合、VM1を停止させる。そして、移動元サーバ10は、VM1停止後に、残りのメモリデータおよびメモリ転送の完了を示す情報を移動先サーバ30に送信する。
そして、移動先サーバ30は、メモリ転送が完了したことが移動元サーバ10から通知されると、移動してきたVM1を起動して、VM1のパケット送信を開始する。
さらに、移動先サーバ30は、起動させたVM1に対して、TAP36に保持されるパケットを出力する。この結果、移動先サーバ30においてVM1の移動が完了し、VM1は、移動後も遅滞なくパケット処理を開始することができる。
[処理の流れ]
次に、図8と図9を用いて、VM移動に関する処理の流れを説明する。ここでは、移動元サーバ10が実行する処理と、移動先サーバ30が実行する処理とについて説明する。
(移動元サーバの処理)
図8は、移動元サーバが実行する処理の流れを示すフローチャートである。図8に示すように、移動元サーバ10のメモリ転送部14は、VMの移動要求が発生すると(S101:Yes)、メモリに記憶される移動対象のVMのデータを移動先サーバ30に転送する(S102)。
続いて、移動元サーバ10の予告送信部15は、メモリ転送量が第1のメモリ転送量閾値を超過した場合(S103:Yes)、移動先サーバ30にVM停止予告通知を送信するとともに、移動対象のVMにパケット送信の停止を指示する(S104)。
その後、移動管理部16がVMのMACアドレスが設定されたGARPメッセージを受信し(S105:Yes)、メモリ転送量が第2のメモリ転送量閾値を超過した場合(S106:Yes)、VM停止部17は、S107を実行する。すなわち、VM停止部17は、VMを停止して、前回のメモリ転送から更新された差分分のメモリデータを移動先サーバ30に転送する。
そして、VM停止部17は、全メモリデータの転送が完了すると(S108:Yes)、処理を終了する。このとき、VM停止部17は、移動先サーバ30に対して、メモリ転送の完了通知を送信してもよい。
(移動先サーバの処理)
図9は、移動先サーバが実行する処理の流れを示すフローチャートである。図9に示すように、移動先サーバ30のメモリ受信部33は、メモリデータの受信を開始すると(S201)、受信したメモリデータをメモリに格納する。
その後、移動管理部34は、VM停止予告通知を受信すると(S202:Yes)、VMのMACアドレスを含むGARPメッセージをスイッチ50および移動元サーバ10に送信し、TAP生成部35は、TAP36を生成する(S203)。
そして、移動管理部34は、TAP36でバッファリングを開始する(S204)。具体的には、移動管理部34は、移動対象のVM宛のパケットをスイッチ50から受信すると、受信したパケットをTAP36で保持する。
その後、VM起動部37は、メモリデータの転送が終了すると(S205:Yes)、VMを起動し、VMに対してパケットの送信開始を指示する(S206)。具体的には、VM起動部37は、移動元サーバ10からメモリ転送の完了通知等を受信した場合、VMを起動させる。
続いて、VM起動部37は、起動させたVMに、TAP36で保持されるパケットを転送する(S207)。
[効果]
実施例1に係る情報処理システムは、VMを移動させる際、メモリ転送量が第1閾値を超えると該VMへのパケットを移動先で一時保持し、メモリ転送量が第2閾値を超えると移動先でVMを起動させる。この結果、実施例1に係る情報処理システムは、移動後のVMのパケット処理遅延を抑制することができる。
また、実施例1に係る情報処理システムは、VM移動時にVM宛パケットのサーバ間転送を行わないので、VM宛のパケット落ちを軽減することができると共に、VMから発信されるパケット落ちを軽減することができる。
図10は、移動前後のパケットの流れを説明する図である。図10に示すように、移動元サーバ10は、時刻tのタイミングで、メモリ転送量が第1のメモリ転送量閾値を超過したことにより、VMに対してパケット送信を停止する。その後、移動元サーバ10は、VMを停止する時刻t+1まで、メモリ転送を繰り返す。
一方で、移動先サーバ30は、時刻tのタイミングでVM停止予告通知を受信し、TAP36を生成する。このタイミングで、移動先サーバ30は、スイッチ50等に対してGARPを送信する。そして、移動先サーバ30は、VMを起動する時刻t+2まで、TAP36でVM宛のパケットを保持する。
つまり、時刻t+1から時刻t+2までの間VMが停止することになるが、この間でも、VM宛のパケットは、TAP36で保持される。したがって、VMが停止している間もパケットの廃棄を抑制することができる。
ところで、移動元サーバ10または移動先サーバ30は、メモリ転送のエラーなどVMの移動が失敗した場合に、エラー処理を実行することができる。そこで、実施例2では、各サーバのエラー処理について説明する。
[移動元サーバのエラー処理]
図11は、移動元サーバでVM移動失敗を検出した場合の処理の流れを示すフローチャートである。図11に示すように、移動元サーバ10の移動管理部16は、VMの移動失敗を検出すると(S301:Yes)、メモリデータの転送中か否かを判定する(S302)。
例えば、移動管理部16は、データ転送の送信エラーや受信エラー、移動先でのリソース不足などを検出した場合、VMの移動失敗を検出する。
続いて、移動管理部16は、メモリデータが転送中である場合(S302:Yes)、メモリデータの転送を中止してから(S303)、S304を実行する。一方、移動管理部16は、メモリデータが転送中ではない場合(S302:No)、S303を実行することなく、S304を実行する。
そして、移動管理部16は、VMの移動失敗を検出したタイミングが第1のメモリ転送閾値の超過前である場合(S304:No)、VM移動を中止して、VMにパケット送信を開始させる(S305)。なお、移動管理部16は、VM管理テーブル13を参照し、「第1のメモリ転送閾値フラグ」に「0」が設定されている場合、VMの移動失敗を検出したタイミングが第1のメモリ転送閾値の超過前と判定する。
また、移動管理部16は、VMの移動失敗を検出したタイミングが第1のメモリ転送閾値の超過後であり(S304:Yes)、VM停止予告通知送信前である場合(S306:No)、VM移動を中止して、VMにパケット送信を開始させる(S305)。
一方、移動管理部16は、VMの移動失敗を検出したタイミングが第1のメモリ転送閾値の超過後であり(S304:Yes)、VM停止予告通知送信後である場合(S306:Yes)、GARPメッセージが受信されるまで待機する(S307)。
そして、移動管理部16は、移動先サーバ30が送信したGARPメッセージを受信すると(S307:Yes)、移動先サーバ30に、パケットの返送要求を送信する(S308)。つまり、移動管理部16は、TAP36に保持されるパケットの転送を要求する。
続いて、移動管理部16は、VMのMACアドレスを含むGARPメッセージをスイッチ50および移動先サーバ30に送信する(S309)。このGARPメッセージによって、スイッチ50は、VM宛のパケットを再度移動元サーバ10に中継するように、FDB52を更新する。
そして、移動管理部16は、VMが停止している場合(S310:Yes)、VMを起動してから(S311)、S312を実行する。一方、移動管理部16は、VMが停止していない場合(S310:No)、S311を実行することなく、S312を実行する。
その後、移動管理部16は、移動先サーバ30から、S308で返送を要求したパケットを受信する(S312)。そして、移動管理部16は、VM移動を中止して、VMにパケット送信を開始させる(S305)。
[移動先サーバのエラー処理]
図12は、移動先サーバでVM移動失敗を検出した場合の処理の流れを示すフローチャートである。図12に示すように、移動先サーバ30の移動管理部34は、VMの移動失敗を検出すると(S401:Yes)、移動元サーバ10に、VMの移動失敗を通知する(S402)。
そして、移動管理部34は、VM停止予告通知を未受信の場合(S403:No)、処理を終了する。一方、移動管理部34は、VM停止予告通知を受信済みである場合(S403:Yes)、GARPメッセージを送信済みか否か判定する(S404)。
ここで、移動管理部34は、GARPメッセージを送信済みではない場合(S404:No)、処理を終了する。一方、移動管理部34は、GARPメッセージを送信済みである場合(S404:Yes)、TAP36によるパケットの受信が開始されているかを判定する(S405)。
ここで、移動管理部34は、TAP36によるパケットの受信が開始されていない場合(S405:No)、処理を終了する。一方、移動管理部34は、TAP36によるパケットの受信が開始されている場合(S405:Yes)、移動元サーバ10からの返送要求の受信待ちとなる(S406)。
そして、移動管理部34は、移動元サーバ10から返送要求を受信し(S406:Yes)、VMのMACアドレスを含むGARPメッセージを移動元サーバ10から受信した場合(S407:Yes)、S408を実行する。すなわち、移動管理部34は、TAP36が保持するパケットを移動元サーバ10に返送する。
[効果]
上述したように、移動元サーバ10および移動先サーバ30は、エラーを検出したタイミングによって、エラー時に実行する処理を変更することができる。したがって、移動元サーバ10および移動先サーバ30は、VMの移動が失敗した場合であっても、パケットの破棄を軽減しつつ、VMをパケット通信ができる状態に復旧させることができる。また、VMを復旧させることができるので、VMによるサービスも停止時間を極力短くし、継続させることができる。
ところで、上記実施例では、移動元サーバでVMが1つ動作している例を説明したが、これに限定されるものではない。例えば、移動元サーバ10で複数のVMが稼動している場合であっても同様に処理することができる。図13は、移動元サーバで複数のVMが通信している状況でVMを移動する場合の処理を説明する図である。
図13に示すように、この例では、移動元サーバ10では、VM1とVM2が稼動しており、各VMは、仮想SW経由で通信を実行する。また、スイッチ50は、外部から受信したVM1宛のパケットを仮想SW経由で、VM1に送信する。また、スイッチ50および仮想SWは、FDBを有する。このような状況で、VM1を移動先サーバ30に移動させる例を説明する。
移動元サーバ10は、メモリ転送量が第1のメモリ転送量閾値を超過した場合、VM停止予告通知を移動先サーバ30に送信する。移動先サーバ30は、このVM停止予告通知を受信すると、VM1用のTAP36を生成し、VM1のMACアドレスを含むGARPメッセージをスイッチ50と移動元サーバ10とに送信する。
スイッチ50は、移動先サーバ30が送信したGARPメッセージにしたがって、FDB52におけるVM1宛のパケットの出力先を移動先サーバ30に変更する。また、移動元サーバ10内の仮想SWも、移動先サーバ30が送信したGARPメッセージにしたがって、FDBにおけるVM1宛のパケットの出力先を移動先サーバ30に変更する。
この結果、VM2からVM1へ送信されたパケットは、移動元サーバ10内の仮想SWによってスイッチ50へ中継され、スイッチ50が、パケットを移動先サーバ30へ中継する。また、スイッチ50は、VM1宛のパケットを外部から受信した場合、受信パケットを移動先サーバ30へ中継する。移動先サーバ30は、スイッチ50が中継したVM1宛のパケットをVM1用のTAP36で保持する。なお、その後の処理は、実施例1等と同様なので、説明を省略する。
このように、移動元サーバ10内の仮想SWは、GARPメッセージを受信した場合、受信したGARPメッセージにしたがってFDBを書換えることができる。したがって、仮想SWは、移動対象のVMを同じサーバ内で稼動する他VMから移動対象へのパケットを受信した場合、移動先サーバへ中継することができる。この結果、VMの移動に伴うパケットの廃棄を抑制しつつ、VMの移動を実行することができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
(閾値)
上述した第1のメモリ転送量閾値と第2のメモリ転送量閾値とは同じ値であってもよく、その場合でも閾値超過の判定は2回実行される。また、第1のメモリ転送量閾値は、小さい値を設定すると、移動先サーバ30のバッファ量が非常に大きくなるので、転送対象のメモリ量等を考慮して決定することが好ましい。
例えば、第1のメモリ転送量閾値は、移動先サーバ30のメモリ量に余裕がある場合は、転送対象のメモリ容量の10%などのように、第1のメモリ転送量閾値に小さい値を設定する。このようにすることで、移動対象のVMを宛先とするパケットを移動先サーバ30へ転送することを早めることができるので、パケット廃棄をより抑制することができる。
また、第1のメモリ転送量閾値は、移動先サーバ30のメモリ量に余裕がない場合は、転送対象のメモリ容量の80%などのように、第1のメモリ転送量閾値に大きい値を設定する。このようにすることで、移動先サーバ30で確保するバッファ容量を抑制することができる。
(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(ハードウェア)
次に、各サーバのハードウェア構成例を説明する。なお、移動元サーバ10、移動先サーバ30、スイッチ50は、同様のハードウェア構成を有するので、ここでは、サーバ100として説明する。
図14は、ハードウェア構成例を説明する図である。図14に示すように、サーバ100は、CPU101、メモリ102、HDD(Hard Disk Drive)103、通信インタフェース104を有する。また、図14に示した各部は、バス等で相互に接続される。
通信インタフェース104は、ネットワークインタフェースカードなどである。HDD103は、図3に示した機能を動作させるプログラム、テーブル、DBを記憶する。
CPU101は、図3に示した各処理部と同様の処理を実行するプログラムをHDD103等から読み出してメモリ102に展開することで、図3等で説明した各機能を実行するプロセスを動作させる。
一例を挙げると、このプロセスは、移動元サーバ10が有する各処理部と同様の機能を実行する。具体的には、CPU101は、メモリ転送部14、予告送信部15、移動管理部16、VM停止部17等と同様の機能を有するプログラムをHDD103等から読み出す。そして、CPU101は、メモリ転送部14、予告送信部15、移動管理部16、VM停止部17と同様の処理を実行するプロセスを実行する。
このようにサーバ100は、プログラムを読み出して実行することでVM移動方法を実行する情報処理装置として動作する。また、サーバ100は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、サーバ100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
1 VM
10 移動元サーバ
10a ハードウェア
10b ハイパーバイザ
10c 仮想スイッチ
10d コントロールドメイン
10e、10f、10g 仮想マシン
11 ネットワークIF
12 仮想SW
13 VM管理テーブル
14 メモリ転送部
15 予告送信部
16 移動管理部
17 VM停止部
30 移動先サーバ
31 ネットワークIF
32 仮想SW
33 メモリ受信部
34 移動管理部
35 TAP生成部
36 TAP
37 VM起動部
50 スイッチ
51 ネットワークIF
52 FDB
53 データ転送部
54 更新部

Claims (7)

  1. 第1の情報処理装置と、スイッチ装置を介して前記第1の情報処理装置に接続される第2の情報処理装置とを有する情報処理システムにおいて、
    前記第1の情報処理装置は、
    前記第1の情報処理装置で稼動する仮想マシンが前記第2の情報処理装置に移動する場合、前記第1の情報処理装置からの前記第2の情報処理装置へのメモリ転送のデータ量が第1のメモリ転送量閾値を超過すると、前記仮想マシンによるパケット送信を停止させるとともに、前記仮想マシンの停止を予告する停止予告通知を前記第2の情報処理装置に送信する予告送信部と、
    前記仮想マシンのアドレス情報を含む制御プロトコルを受信し、前記メモリ転送のデータ量が第2のメモリ転送量閾値を超過した場合、前記仮想マシンを停止する停止部と、を有し、
    前記第2の情報処理装置は、
    前記停止予告通知を受信した場合、前記制御プロトコルを前記スイッチ装置および前記第1の情報処理装置に送信するとともに、生成した仮想ネットワークインタフェースで前記仮想マシン宛のパケットを受信する受信部と、
    前記メモリ転送が完了した後、前記仮想マシンを起動して前記パケット送信を開始するとともに、前記仮想ネットワークインタフェースが保持するパケットを前記仮想マシンに出力する起動制御部と
    を有することを特徴とする情報処理システム。
  2. 前記第1の情報処理装置は、
    前記メモリ転送のデータ量が前記第1のメモリ転送量閾値を超える前、または、前記メモリ転送のデータ量が前記第1のメモリ転送量閾値を超え且つ前記停止予告通知の送信前に、前記メモリ転送でエラーが発生した場合、前記仮想マシンの移動を中止し、前記仮想マシンに前記パケット送信を開始させる中止制御部をさらに有することを特徴とする請求項1に記載の情報処理システム。
  3. 前記第1の情報処理装置は、
    前記停止予告通知の送信後に前記メモリ転送でエラーが発生した場合、前記仮想マシンのアドレスを含む制御プロトコルを前記スイッチ装置に送信するとともに、前記第2の情報処理装置に対して、前記仮想ネットワークインタフェースが保持するパケットの転送要求を送信する中止制御部をさらに有することを特徴とする請求項1に記載の情報処理システム。
  4. 前記第2の情報処理装置は、
    前記仮想マシンの移動においてエラーを検出した場合、前記第1の情報処理装置に前記エラーを通知し、前記第1の情報処理装置から、前記仮想ネットワークインタフェースが保持するパケットの転送要求および前記仮想マシンのアドレス情報を含む制御プロトコルを受信すると、前記仮想ネットワークインタフェースが保持するパケットを前記第1の情報処理装置に送信する中止制御部をさらに有することを特徴とする請求項1に記載の情報処理システム。
  5. 第1の情報処理装置と、スイッチ装置を介して前記第1の情報処理装置に接続される第2の情報処理装置とを有する情報処理システムに適した移動制御方法おいて、
    前記第1の情報処理装置が、
    前記第1の情報処理装置で稼動する仮想マシンが前記第2の情報処理装置に移動する場合、前記第1の情報処理装置からの前記第2の情報処理装置へのメモリ転送のデータ量が第1のメモリ転送量閾値を超過すると、前記仮想マシンによるパケット送信を停止させるとともに、前記仮想マシンの停止を予告する停止予告通知を前記第2の情報処理装置に送信し、
    前記仮想マシンのアドレス情報を含む制御プロトコルを受信し、前記メモリ転送のデータ量が第2のメモリ転送量閾値を超過した場合、前記仮想マシンを停止し、
    前記第2の情報処理装置が、
    前記停止予告通知を受信した場合、前記制御プロトコルを前記スイッチ装置および前記第1の情報処理装置に送信するとともに、生成した仮想ネットワークインタフェースで前記仮想マシン宛のパケットを受信し、
    前記メモリ転送が完了した後、前記仮想マシンを起動して前記パケット送信を開始するとともに、前記仮想ネットワークインタフェースが保持するパケットを前記仮想マシンに出力する
    処理を含んだことを特徴とする移動制御方法。
  6. スイッチ装置を介して他の情報処理装置と接続される情報処理装置に、
    前記情報処理装置で稼動する仮想マシンが前記他の情報処理装置に移動する場合、前記情報処理装置からの前記他の情報処理装置へのメモリ転送のデータ量が第1のメモリ転送量閾値を超過すると、前記仮想マシンによるパケット送信を停止させるとともに、前記仮想マシンの停止を予告する停止予告通知を前記他の情報処理装置に送信し、
    前記仮想マシンのアドレス情報を含む制御プロトコルを受信し、前記メモリ転送のデータ量が第2のメモリ転送量閾値を超過した場合、前記仮想マシンを停止する
    処理を実行させることを特徴とする移動制御プログラム。
  7. スイッチ装置を介して他の情報処理装置と接続される情報処理装置に、
    前記他の情報処理装置で稼動する仮想マシンが前記情報処理装置に移動する場合、前記仮想マシンの停止を予告する停止予告通知を受信した場合、前記仮想マシンのアドレス情報を含む制御プロトコルを前記スイッチ装置および前記他の情報処理装置に送信するとともに、生成した仮想ネットワークインタフェースで前記仮想マシン宛のパケットを受信し、
    前記他の情報処理装置から前記情報処理装置へのメモリ転送が完了した後、前記仮想マシンを起動して前記仮想マシンによるパケット送信を開始するとともに、前記仮想ネットワークインタフェースが保持するパケットを前記仮想マシンに出力する
    処理を実行させるためのものであることを特徴とする移動制御プログラム。
JP2014029932A 2014-02-19 2014-02-19 情報処理システム、移動制御方法および移動制御プログラム Expired - Fee Related JP6256086B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014029932A JP6256086B2 (ja) 2014-02-19 2014-02-19 情報処理システム、移動制御方法および移動制御プログラム
US14/566,030 US9396022B2 (en) 2014-02-19 2014-12-10 Information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014029932A JP6256086B2 (ja) 2014-02-19 2014-02-19 情報処理システム、移動制御方法および移動制御プログラム

Publications (2)

Publication Number Publication Date
JP2015153409A JP2015153409A (ja) 2015-08-24
JP6256086B2 true JP6256086B2 (ja) 2018-01-10

Family

ID=53798203

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014029932A Expired - Fee Related JP6256086B2 (ja) 2014-02-19 2014-02-19 情報処理システム、移動制御方法および移動制御プログラム

Country Status (2)

Country Link
US (1) US9396022B2 (ja)
JP (1) JP6256086B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US10305814B2 (en) 2015-08-05 2019-05-28 International Business Machines Corporation Sizing SAN storage migrations
CN107295045A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 一种消息处理方法及装置
JP2018137643A (ja) * 2017-02-22 2018-08-30 日本電信電話株式会社 管理装置および管理方法
US10977064B2 (en) 2017-08-23 2021-04-13 Red Hat, Inc. Live virtual machine migration
US10838752B2 (en) 2017-08-28 2020-11-17 Red Hat Israel, Ltd. Network notification loss detection for virtual machine migration
US10628198B2 (en) 2017-08-30 2020-04-21 Red Hat Israel Ltd. Hypervisor management of migration notification and response messages for virtual machines
US11070629B2 (en) 2017-08-30 2021-07-20 Red Hat Israel, Ltd Migration notification and response messages for virtual machines
JP7003562B2 (ja) * 2017-10-16 2022-01-20 富士通株式会社 ミラーパケット制御プログラム、ミラーパケット制御方法、およびミラーパケット制御装置
US10965641B2 (en) 2017-12-07 2021-03-30 Red Hat, Inc. Live virtual machine migration utilizing network address pools
US10693801B2 (en) 2018-02-20 2020-06-23 Red Hat, Inc. Packet drop reduction in virtual machine migration
KR102674538B1 (ko) * 2019-02-28 2024-06-13 엘지전자 주식회사 디지털 디바이스 및 그 제어 방법
US11093275B2 (en) * 2019-04-23 2021-08-17 Red Hat, Inc. Partial surprise removal of a device for virtual machine migration
JP7613022B2 (ja) * 2020-07-31 2025-01-15 日本電気株式会社 情報処理装置、クラスタノード、クラスタシステム、情報処理方法及びプログラム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620955B1 (en) * 2001-06-08 2009-11-17 Vmware, Inc. High-performance virtual machine networking
WO2008126163A1 (ja) * 2007-03-08 2008-10-23 Fujitsu Limited アクセス権限設定プログラム、方法及び装置
US7996484B2 (en) * 2008-12-11 2011-08-09 Microsoft Corporation Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory
WO2010123140A1 (ja) 2009-04-24 2010-10-28 日本電気株式会社 パケット通信システム、パケット通信装置、パケット通信方法、パケット通信プログラムを記録したコンピュータ読み取り可能な記録媒体
JP5218252B2 (ja) 2009-04-24 2013-06-26 富士通株式会社 バススイッチ,コンピュータシステム及びコンピュータシステムの管理方法
US8689211B2 (en) * 2009-05-25 2014-04-01 International Business Machines Corporation Live migration of virtual machines in a computing environment
US8745204B2 (en) * 2010-03-12 2014-06-03 Cisco Technology, Inc. Minimizing latency in live virtual server migration
JP2011198299A (ja) * 2010-03-23 2011-10-06 Fujitsu Ltd プログラム、コンピュータ、通信装置および通信制御システム
JP5190084B2 (ja) 2010-03-30 2013-04-24 株式会社日立製作所 仮想マシンのマイグレーション方法およびシステム
US8473557B2 (en) * 2010-08-24 2013-06-25 At&T Intellectual Property I, L.P. Methods and apparatus to migrate virtual machines between distributive computing networks across a wide area network
US8413145B2 (en) * 2010-09-30 2013-04-02 Avaya Inc. Method and apparatus for efficient memory replication for high availability (HA) protection of a virtual machine (VM)
JP5594049B2 (ja) * 2010-10-18 2014-09-24 富士通株式会社 仮想計算機移動方法、コンピュータ及びプログラム

Also Published As

Publication number Publication date
US9396022B2 (en) 2016-07-19
US20150234673A1 (en) 2015-08-20
JP2015153409A (ja) 2015-08-24

Similar Documents

Publication Publication Date Title
JP6256086B2 (ja) 情報処理システム、移動制御方法および移動制御プログラム
US10171567B2 (en) Load balancing computer device, system, and method
EP2831730B1 (en) System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment
JP5500270B2 (ja) プロファイル処理プログラム、データ中継装置およびプロファイル制御方法
EP2690552B1 (en) Method and device for migrating virtual machine parameters and virtual machine server
JP5521620B2 (ja) 中継装置、仮想マシンシステム及び中継方法
US10326838B2 (en) Live migration of probe enabled load balanced endpoints in a software defined network
US8990808B2 (en) Data relay device, computer-readable recording medium, and data relay method
CN102209024B (zh) 虚拟机的迁移方法以及系统
US8792502B2 (en) Duplicate MAC address detection
WO2020001442A1 (zh) 一种数据处理方法及相关设备
US20130047157A1 (en) Information processing apparatus and interrupt control method
US20110202920A1 (en) Apparatus and method for communication processing
JP2010114665A (ja) 通信データ制御方法及び計算機システム
CN103812823A (zh) 虚拟机热迁移时配置信息迁移的方法、设备及系统
CN106464579A (zh) 用于虚拟化网络堆栈的动态迁移的系统和方法
CN107924383A (zh) 用于网络功能虚拟化资源管理的系统和方法
JP2012524919A5 (ja)
GB2558163A (en) Dynamically assigning network addresses
JP5983782B2 (ja) コンピュータシステム、通信制御サーバ、通信制御方法およびプログラム
JP2014195178A (ja) 情報処理装置、送信制御方法および送信制御プログラム
JP2024529099A (ja) コンテナグループを稼働させるためのノード、ならびにコンテナグループ管理システムおよび方法
JP2009187090A (ja) クラスタシステムおよび情報処理方法
WO2017170309A1 (ja) ネットワークシステム、その管理方法および装置ならびにサーバ
JP6260310B2 (ja) ネットワークスイッチ、ネットワークシステム及びネットワークシステムの制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170817

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171025

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: 20171107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171120

R150 Certificate of patent or registration of utility model

Ref document number: 6256086

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees