JP2009265894A - ノード装置及びプログラム並びに方法 - Google Patents

ノード装置及びプログラム並びに方法 Download PDF

Info

Publication number
JP2009265894A
JP2009265894A JP2008113985A JP2008113985A JP2009265894A JP 2009265894 A JP2009265894 A JP 2009265894A JP 2008113985 A JP2008113985 A JP 2008113985A JP 2008113985 A JP2008113985 A JP 2008113985A JP 2009265894 A JP2009265894 A JP 2009265894A
Authority
JP
Japan
Prior art keywords
virtual machine
node device
service
communication flow
virtual
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
JP2008113985A
Other languages
English (en)
Inventor
Tomohiro Nagata
智大 永田
Toshihiro Suzuki
俊博 鈴木
Motonari Kobayashi
基成 小林
Ashiq Khan
アシック カーン
Wataru Takita
亘 滝田
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2008113985A priority Critical patent/JP2009265894A/ja
Publication of JP2009265894A publication Critical patent/JP2009265894A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

【課題】サービスの再起動が行われる際に、通信切断を発生させないこと。
【解決手段】複数の仮想マシンを起動するノード装置は、仮想マシンに対して資源を割り当てる手段と、割り当てる手段により、資源が割り当てられた仮想マシンを用いてサービスを提供する手段と、各仮想マシンに対して、通信フローを割り振る手段とを有する。サービスを提供する手段は、仮想マシンの再起動が行われる場合に、該仮想マシンと、再起動が行われた仮想マシンとを用いてサービスを提供し、割り振る手段は、仮想マシンと、再起動が行われた仮想マシンとの間で、通信フローを割り振る。
【選択図】図1

Description

本発明は、仮想マシンによりサービスを提供するノード装置及びプログラム並び方法に関する。
既存の通信フローを切断することなく、サービスの再起動を1台のノード装置で実現することは困難である。例えば、サービスの再起動を行う原因には、障害の発生やバージョンアップがある。このため、サービスの再起動は、2台以上のノード装置と、スイッチとして機能するノード装置とを連携させることにより実現していた。2台以上のノード装置によりサービスが提供され、スイッチとして機能するノード装置によりフローの割り振りが行われる。発生頻度の低いサービスの再起動に備えて、複数のノード装置を用意するのは効率的でない。
Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, Andrew Warfield. "Xen and the art of virtualization". Proceedings of the nineteenth ACM symposium on Operating systems principles: 164 - 177, 2003 Ian Foster "What is the Grid? A Three Point Checklist", July 2002
上述したサービスの再起動は、仮想マシンを用いた場合においても、同一のネットワーク識別子を使用する必要があるため、再起動前の仮想マシンと再起動後の仮想マシンとを共存させることは困難である。ここで、ネットワーク識別子には、IPアドレス、MACアドレスなどが含まれる。この場合、サービスを利用する対向するノード装置や直前のルータなどから再起動前の仮想マシンと再起動後の仮想マシンとが同じに見えなければならない。しかし、通信が行われる場合、再起動前の仮想マシンへの通信フローなのか、再起動後の仮想マシンへの通信フローなのかを判断できない。
そこで、本発明は、上述した課題に鑑み、サービスの再起動が行われる際に、通信切断を発生させないことができるノード装置及びプログラム並びに方法を提供することを目的とする。
また、サービスの再起動が行われる際に、再起動前の仮想マシンと再起動後の仮想マシンとを一時的に共存させ、実行することができるノード装置及びプログラム並びに方法を提供することを他の目的とする。
また、サービスの再起動が行われる際に、一時的に共存し、実行する再起動前仮想マシン及び再起動後の仮想マシンへの資源割り当てを動的に変化させることができるノード装置及びプログラム並びに方法を提供することを他の目的とする。
上記課題を解決するため、本ノード装置は、
複数の仮想マシンを起動するノード装置であって、
仮想マシンに対して資源を割り当てる手段と、
前記割り当てる手段により、資源が割り当てられた仮想マシンを用いてサービスを提供する手段と、
各仮想マシンに対して、通信フローを割り振る手段と
を有し、
前記サービスを提供する手段は、仮想マシンの再起動が行われる場合に、該仮想マシンと、前記再起動が行われた仮想マシンとを用いてサービスを提供し、
前記割り振る手段は、前記仮想マシンと、前記再起動が行われた仮想マシンとの間で、通信フローを割り振る。
この例によれば、仮想マシンの再起動が行われた場合に、再起動前の仮想マシンと再起動後の仮想マシンとの間で、通信フローが割り振られるため、通信切断が生じないようにすることができる。
本プログラムは、
仮想マシンに対して資源を割り当てるステップと、
仮想マシンを起動するステップと、
前記割り当てるステップにより、資源が割り当てられた仮想マシンを用いてサービスを提供するステップと、
各仮想マシンに対して、通信フローを割り振るステップと
を有し、
前記サービスを提供するステップでは、仮想マシンの再起動が行われる場合に、該仮想マシンと、前記再起動が行われた仮想マシンとを用いてサービスを提供し、
前記割り振るステップでは、前記仮想マシンと、前記再起動が行われた仮想マシンとの間で、通信フローを割り振ることをコンピュータに実行させる。
本方法は、
仮想マシンに対して資源を割り当てるステップと、
仮想マシンを起動するステップと、
前記割り当てるステップにより、資源が割り当てられた仮想マシンを用いてサービスを提供するステップと、
各仮想マシンに対して、通信フローを割り振るステップと
を有し、
前記サービスを提供するステップでは、仮想マシンの再起動が行われる場合に、該仮想マシンと、前記再起動が行われた仮想マシンとを用いてサービスを提供し、
前記割り振るステップでは、前記仮想マシンと、前記再起動が行われた仮想マシンとの間で、通信フローを割り振る。
本発明の実施例によれば、サービスの再起動が行われる際に、通信切断を発生させないようにすることができる。
また、サービスの再起動が行われる際に、再起動前の仮想マシンと再起動後の仮想マシンとを一時的に共存させ、実行することができる。
また、サービスの再起動が行われる際に、一時的に共存し、実行する再起動前の仮想マシン及び再起動後の仮想マシンへの資源割り当てを動的に変化させることができる。
以下、本発明の実施例を、図面を参照しつつ説明する。実施例を説明するための全図において、同一機能を有するものは同一符号を用い、繰り返しの説明は省略する。
(第1の実施例)
本実施例に係るノード装置について説明する。
本実施例では、資源について以下のように定義する。
(1)処理資源: 仮想マシンに割り当てられる資源のうち、サービスの処理に使われる資源 処理資源には、CPU、メモリ、HDDなどが含まれる。
(2)リンク資源: サービスのデータ送受信に使われる資源 リンク資源には、ネットワークの帯域などが含まれる。
処理資源において、処理資源量は、CPUの場合には全CPU時間に対するパーセンテージ、メモリの場合にはメモリサイズ、HDDの場合にはディスクサイズにより表現されてもよい。例えば、メモリサイズやディスクサイズはバイトで示されてもよい。また、リンク資源において、リンク資源量は通信速度で示されるようにしてもよいし、帯域や周波数、波長数で表現されてもよい。
本実施例にかかるノード装置について、図1を参照して説明する。本実施例に係るノード装置100は、複数のサービスを実行する。例えば、本実施例に係るノード装置100は、サービスノード装置と呼ばれてもよい。例えば、ノード装置100は、複数の仮想マシンを起動する。各仮想マシンは、サービスを提供する。各仮想マシンでは、オペレーティングシステムを並列実行するようにしてもよい。各仮想マシンにより実行されるオペレーティングシステムのうち、少なくとも1つは、他のオペレーティングシステムとは異なるオペレーティングシステムであってもよい。例えば、複数のオペレーティングシステムは、仮想マシンモニタというソフトウエアが提供する仮想的ハードウェア上で実行される。このソフトウエアには、VMwareのようなホストOSやXen、XenとDomain0のOSが含まれるようにしてもよい。
本実施例に係るノード装置100は、ネットワークインタフェース102と、仮想マシン104と、仮想ネットワークブリッジ106と、仮想マシンモニタ108と、フロー情報記憶部110とを有する。
ネットワークインタフェース102には、ネットワークと接続するためのネットワークケーブルが接続される。
仮想マシン104は、複数の仮想マシンを有する。図1には、旧仮想マシン(VM: virtual machine)104と新仮想マシン104が示される。旧仮想マシンは、サービスを提供していた再起動前の仮想マシンを示す。新仮想マシンは、再起動後の仮想マシンを示す。本実施例に係るノード装置100では、仮想マシンの再起動が行われる場合に、該仮想マシンと、再起動が行われた仮想マシンとが共存する。各仮想マシンでは、論理的に処理資源及びリンク資源が分離された状態でサービスが動作する。
仮想ネットワークブリッジ106は、仮想マシン104に含まれる各仮想マシンとネットワークインタフェース102とを仮想的に接続する。
仮想マシンモニタ108は、仮想マシンを制御する。また、起動している仮想マシンの監視(モニタ)を行う。
フロー情報記憶部110には、旧仮想マシンにおける通信フローを示すフロー情報が格納される。例えば、旧仮想マシンにおける通信フローは、現在の通信フローであってもよい。仮想ネットワークブリッジ106は、フロー情報記憶部110に、該旧仮想マシンにおける通信フロー情報を格納する。仮想ネットワークブリッジ106は、フロー情報記憶部110に格納されるフロー情報を管理する。例えば、旧仮想マシンにおける現在の通信フローは、図2に示すようなフロー情報として管理される。図2には、仮想マシンIDと、フロー識別子と、ポート識別子とが対応付けられる。例えば、フロー識別子には、送信元及び受信先のIPアドレスと、ポート番号が含まれるようにしてもよい。このようなフロー識別子は、TCP/IPを用いたフローである場合に好適である。
例えば、フロー識別子は、図3に示すようなフロー情報として管理されるようにしてもよい。図3には、送信元のIPアドレス(src IPアドレス)と、送信元のポート番号(src ポート番号)と、受信先のポート番号(dst ポート番号)と、ポート識別子とが対応付けられる。
また、例えば、旧仮想マシンにおける現在の通信フローは、図4に示すようなフロー情報として管理されるようにしてもよい。図4には、仮想マシンIDと、ラベルと、ポート識別子とが対応付けられる。ここで、ラベルとは、経路を識別するための情報である。
本実施例にかかるノード装置100のハードウエア構成例について説明する。
ノード装置100は、CPUと、ROMと、RAMと、ハードディスク装置等の大容量の記憶装置とを有する。さらにフレキシブルディスク装置等の補助記憶装置を備えるようにしてもよい。
コンピュータをノード装置100として機能させるためのプログラムは、例えば、フレキシブルディスク、CD−ROM、メモリカード等の記録媒体に記録された状態で提供される。この記録媒体をコンピュータの補助記憶装置に挿入すると、媒体に記録されたプログラムが読み取られる。そして、CPUは、読み込んだプログラムをRAMあるいは記憶装置に書き込み、このプログラムに従って本実施例で説明するような処理を実行する。また、プログラムを、通信網を介してダウンロードし、また記憶媒体からハードディスク装置にコピー・インストールし実行するようにしてもよい。
本実施例に係るノード装置100の動作について、図5を参照して説明する。
本実施例に係るノード装置100は、再起動された新仮想マシン104が起動した後に、再起動前の旧仮想マシン104が扱っている通信フローを適切な資源量を用いて、旧仮想マシン104において処理する。該通信フローが終わった段階で旧仮想マシン104を終了する。
本実施例では、ノード装置100上では、旧仮想マシン104が既に起動し、当該仮想マシン104は、該仮想マシン104に割り当てられた資源を用いてサービスを提供している。旧仮想マシン104は、仮想ネットワークブリッジ106に接続される。そして、旧仮想マシン104は、仮想ネットワークブリッジ106を通じてネットワークインタフェース102を使用し、データのやり取りを行う。
ノード装置100は、利用者からの仮想マシンを再起動する命令を認識する(ステップS502)。例えば、利用者は、仮想マシンモニタ108に対して仮想マシン104を再起動する命令を行う。ノード装置100は、入力された仮想マシン104に関する設定ファイルのパスに基づいて、該設定ファイルにアクセスし、仮想マシン104の再起動に必要とされる処理資源・リンク資源に関する情報を読み込む。例えば、仮想マシンモニタ108には、再起動する仮想マシン104に関する設定ファイルのパスが渡される。例えば、利用者により渡されるようにしてもよい。例えば、設定ファイルのパスは、GUI(Graphical User Interface)やコマンド・スクリプトファイルなどを通じて渡されるようにしてもよい。
仮想マシンモニタ108は、渡された設定ファイルのパスに基づいて、該設定ファイルにアクセスし、仮想マシン104の再起動に必要とされる処理資源・リンク資源に関する情報を読み込む。例えば、設定ファイルには、仮想マシン104の識別子や使用するディスクイメージのファイル名が含まれるようにしてもよい。仮想マシン104の識別子は、仮想マシン104の名称であってもよい。また、設定ファイルには、CPU割り当て量、メモリ割り当て量、ネットワーク帯域割り当て量などが含まれるようにしてもよい。例えば、CPU割当量は、パーセンテージで表されてもよい。また、メモリ割り当て量は、バイト数で表されてもよい。また、ネットワーク帯域割り当て量は、通信速度で表されてもよい。CPU割り当て量、メモリ割り当て量、ネットワーク帯域割り当て量などが仮想マシン104において必要とされる処理資源・リンク資源に関する情報とされてもよい。
ノード装置100は、現在起動している旧仮想マシン104への資源割当量をある程度減少させる。そして、ノード装置100は、該減少させた資源割当量をこれから再起動する仮想マシン104に対して割り当てる(ステップS504)。以降、再起動された仮想マシン104を新仮想マシン104と呼ぶ。仮想マシンモニタ108は、旧仮想マシン104への資源割当量のうち、該旧仮想マシン104が提供しているサービスに必要とされる資源量に基づいて、該サービスに与える影響がないと想定される資源量減少させる。例えば、減少させる資源量は、所定の値、例えば30%としてもよい。そして、仮想マシンモニタ108は、これから起動する新仮想マシン104に対して、該減少させた資源量を割り当てる。
ノード装置100は、新仮想マシン104に対して割り当てた資源を用いて、該新仮想マシン104を起動する(ステップS506)。ノード装置100は、新仮想マシン104と仮想ネットワークブリッジ106とを接続する。このようにすることにより、新仮想マシン104は、仮想ネットワークブリッジ106を通じて、ネットワークインタフェース102を使用して、データのやり取りを行うことができる。例えば、仮想マシンモニタ108は、新仮想マシン104に対して割り当てた資源を用いて、該新仮想マシン104を起動する。仮想マシンモニタ108は、新仮想マシン104と仮想ネットワークブリッジ106とを接続する。
ノード装置100は、旧仮想マシン104に対して、現在の通信フロー情報の要求を行う。旧仮想マシン104は、通信フロー情報の要求に従って、カーネル内の通信フローに関する情報を取得する(ステップS508)。例えば、仮想マシンモニタ108は、旧仮想マシン104に対して、現在の通信フロー情報の要求を行う。旧仮想マシン104は、通信フロー情報の要求に従って、カーネル内の通信フローの関する情報を取得する。例えば、旧仮想マシン104は、procファイル等を利用して、カーネル内の通信フローの関する情報を取得するようにしてもよい。また、カーネル内の通信フローに関する情報には、プロトコルコントロールブロックなどに含まれる通信フローに関する情報が含まれるようにしてもよい。また、カーネル内の通信フローに関する情報には、フロー識別子を含むようにしてもよい。旧仮想マシン104は、取得したカーネル内の通信フローの関する情報を仮想マシンモニタ108に渡す。
ノード装置100は、取得した旧仮想マシン104が処理する通信フローの情報を格納する。例えば、仮想マシンモニタ108は、旧仮想マシン104から、当該旧仮想マシン104が現在処理する通信フローの情報を取得する。仮想マシンモニタ108は、取得した旧仮想マシン104が現在処理する通信フローの情報と旧仮想マシン104の仮想マシンIDを仮想ネットワークブリッジ106に入力する。仮想ネットワークブリッジ106は、取得した旧仮想マシン104が現在処理する通信フローの情報と旧仮想マシン104の仮想マシンID、及び該旧仮想マシン104の仮想マシンIDから求められるポート識別子をフロー情報記憶部110に格納する。
ノード装置100は、取得した旧仮想マシン104が現在処理する通信フローの情報に基づいて、該旧仮想マシン104がサービスを提供しているかを判断する(ステップS510)。例えば、仮想マシンモニタ108は、フロー情報記憶部110に格納された旧仮想マシン104の通信フローの情報に基づいて、該旧仮想マシン104がサービスを提供しているかを判断する。
旧仮想マシン104がサービスを提供していないと判断した場合(ステップS510:NO)、ノード装置100は、該旧仮想マシン104を終了させる(ステップS514)。ノード装置100は、旧仮想マシン104に割り当てていた資源を開放する。そして、ノード装置100は、開放した資源を新仮想マシン104に割り当てる。例えば、仮想マシンモニタ108は、旧仮想マシン104がサービスを提供していないと判断した場合、該旧仮想マシン104を終了させる。仮想マシンモニタ108は、旧仮想マシン104に割り当てていた資源を開放する。仮想マシンモニタ108は、開放した資源を新仮想マシン104に割り当てる。
一方、旧仮想マシン104がサービスを提供していると判断した場合(ステップS510:YES)、ノード装置100は、ネットワークインタフェース102から受信パケットを受け取った場合、該受信パケットと旧仮想マシン104の通信フロー情報に基づいて、該受信パケットを旧仮想マシン104と新仮想マシン104との間で振り分ける。また、ノード装置100は、旧仮想マシン104が使用する資源量を再配分する(ステップS512)。例えば、旧仮想マシン104がサービスを提供していると判断した場合、仮想マシンモニタ108は、ネットワークインタフェース102から受信パケットを受け取った場合、該受信パケットと旧仮想マシン104の通信フロー情報に基づいて、該受信パケットを旧仮想マシン104と新仮想マシン104との間で振り分ける。このようにすることにより、適切な仮想マシンに、パケットを転送できる。また、仮想マシンモニタ108は、旧仮想マシン104が使用する資源量を再配分する。
その後、ステップS508に戻る。そして、ノード装置100は、旧仮想マシン104に対して、現在の通信フロー情報の要求を行う。旧仮想マシン104は、通信フロー情報の要求に従って、カーネル内の通信フローの関する情報を取得する。
次に、上述したステップS512において、ノード装置100が旧仮想マシン104の通信フロー情報に基づいて行うパケットの振り分け処理について、図6を参照して説明する。例えば、仮想ネットワークブリッジ106は、フロー情報記憶部110に格納された旧仮想マシン104の通信フロー情報に基づいて、ネットワークから送信されたパケットを、旧仮想マシン104又は新仮想マシン104に転送する。
仮想ネットワークブリッジ106は、ネットワークインタフェース102により入力された受信パケットを解析する(ステップS602)。例えば、受信パケットのヘッダ部分には、通信フローに関する情報が含まれる。仮想ネットワークブリッジ106は、受信パケットのヘッダ部分の解析を行う。例えば、仮想ネットワークブリッジ106は、受信パケットのヘッダ部分に含まれるフロー識別子を抽出する。
仮想ネットワークブリッジ106は、受信パケットが、旧仮想マシン104へのフローに含まれるパケットであるかを判断する(ステップS604)。例えば、仮想ネットワークブリッジ106は、該抽出したフロー識別子がフロー情報記憶部110に格納された旧仮想マシン104の通信フローに含まれるかを判断する。そして、仮想ネットワークブリッジ106は、該抽出したフロー識別子がフロー情報記憶部110に格納された旧仮想マシン104の通信フローに含まれる場合には、旧仮想マシン104へのパケットであると判断する。
受信パケットが、旧仮想マシン104へのフローに含まれるパケットであると判断した場合(ステップS604:YES)、仮想ネットワークブリッジ106は、旧仮想マシン104に、受信パケットを転送する(ステップS606)。旧仮想マシン104は、仮想ネットワークブリッジ106により転送された受信パケットを受け取ると、当該旧仮想マシン104におけるサービスのための処理を行う。
一方、受信パケットが、旧仮想マシン104へのフローに含まれるパケットでないと判断した場合(ステップS604:NO)、仮想ネットワークブリッジ106は、新仮想マシン104に、受信パケットを転送する(ステップS608)。新仮想マシン104は、仮想ネットワークブリッジ106により転送された受信パケットを受け取ると、当該新仮想マシン104におけるサービスのための処理を行う。
上述した処理は、仮想マシンモニタ108が、旧仮想マシン104を終了させる(ステップS514)まで継続される。
次に、上述したステップS512において、ノード装置100が資源の再配分を行う処理について、図7を参照して説明する。例えば、仮想マシンモニタ108は、旧仮想マシン104と新仮想マシン104との間で資源再分配を周期的に行う。旧仮想マシン104における処理が終了した後、仮想マシンモニタ108は、旧仮想マシン104を終了させる。
仮想マシンモニタ108は、旧仮想マシン104がサービスを提供しているかを判断する(ステップS702)。上述したステップS510と同様の処理が行われることにより判断される。
旧仮想マシン104がサービスを提供していないと判断した場合(ステップS702:NO)、仮想マシンモニタ108は、旧仮想マシン104を終了させる(ステップS710)。仮想マシンモニタ108は、旧仮想マシン104に割り当てていた資源を開放する。仮想マシンモニタ108は、開放した資源を新仮想マシン104に割り当てる。
一方、旧仮想マシン104がサービスを提供していると判断した場合(ステップS702:YES)、仮想マシンモニタ108は、一定期間休止する(ステップS704)。この一定時間は、例えば5秒程度であってもよい。
仮想マシンモニタ108は、ステップS704による一定期間の休止後、旧仮想マシン104及び新仮想マシン104に対して、現在の通信フロー情報の要求を行う。旧仮想マシン104及び新仮想マシン104は、通信フロー情報の要求に従って、カーネル内の通信フローの関する情報を取得する。例えば、旧仮想マシン104及び新仮想マシン104は、procファイル等を利用して、カーネル内の通信フローの関する情報を取得するようにしてもよい。また、カーネル内の通信フローに関する情報には、プロトコルコントロールブロックなどに含まれる通信フローに関する情報が含まれるようにしてもよい。また、カーネル内の通信フローに関する情報には、フロー識別子を含むようにしてもよい。旧仮想マシン104は、取得したカーネル内の通信フローに関する情報を仮想マシンモニタ108に渡す。
仮想マシンモニタ108は、旧仮想マシン104から、当該旧仮想マシン104が現在処理する通信フローの情報を取得する。仮想マシンモニタ108は、取得した旧仮想マシン104が現在処理する通信フローの情報を仮想ネットワークブリッジ106に入力する。仮想ネットワークブリッジ106は、取得した旧仮想マシン104が現在処理する通信フローの情報と旧仮想マシン104の仮想マシンID、及び該旧仮想マシン104の仮想マシンIDから求められるポート識別子をフロー情報記憶部110に格納する。その結果、フロー情報が更新される(ステップS706)。
仮想マシンモニタ108は、旧仮想マシン104及び新仮想マシン104から取得した通信フローの情報に基づいて、資源の再分配を行う(ステップS708)。例えば、仮想マシンモニタ108は、旧仮想マシン104及び新仮想マシン104が、それぞれ現在扱っているフローの数に比例する資源量を、旧仮想マシン104及び新仮想マシン104に割り当てるようにしてもよい。
その後、ステップS702に戻る。仮想マシンモニタ108は、ステップS706において更新された旧仮想マシン104の通信フローの情報に基づいて、旧仮想マシン104が現在サービスを実際に提供しているかを判断する。
(第2の実施例)
本実施例に係るノード装置について説明する。
本実施例において、資源についての定義は上述した実施例と同様である。
本実施例に係るノード装置100は、上述した実施例に係るノード装置の構成と同様である。
本実施例に係るネットワークシステムは、複数のノード装置100を有する。このネットワークシステムは、サービスノードネットワークシステムと呼ばれてもよい。本実施例では、一例として、図8に示すように、ネットワークシステムが2のノード装置を有する場合について説明する。ネットワークシステムが3以上のノード装置を有してもよい。各ノード装置は、通信網200を介して接続される。通信網には、インターネットなどのネットワークが含まれる。
本実施例に係るネットワークシステムの動作について、図9を参照して説明する。
本実施例において、利用者によりノード装置100に対して、仮想マシン104を再起動する命令が行われる。この場合、仮想マシンモニタ108は、上述した実施例と同様の処理を行うことにより、旧仮想マシン104における現在のサービス提供状況を把握する。例えば、上述したステップS502−ステップS508と同様の処理が行われる。
本実施例では、ノード装置100では、仮想マシンモニタ108が、当該ノード装置100上で動作する旧仮想マシン104における現在のサービス提供状況を把握する。一方、ノード装置100では、当該ノード装置100上で動作する仮想マシン104は、旧仮想マシン104により提供されるサービスを利用する。ノード装置100の仮想マシンモニタ108は、旧仮想マシン104における現在のサービス提供状況に基づいて、旧仮想マシン104がサービスの提供を早く終了できるように、ノード装置100上の仮想マシン104の資源量を変化させる。
ノード装置100の仮想マシンモニタ108は、旧仮想マシン104がサービスを提供しているかを判断する(ステップS902)。上述したステップS510と同様の処理が行われることにより判断される。
旧仮想マシン104がサービスを提供していないと判断した場合(ステップS902:NO)、仮想マシンモニタ108は、旧仮想マシン104を終了させる(ステップS914)。仮想マシンモニタ108は、旧仮想マシン104に割り当てていた資源を開放する。仮想マシンモニタ108は、開放した資源を新仮想マシン104に割り当てる。
一方、旧仮想マシン104がサービスを提供していると判断した場合(ステップS902:YES)、仮想マシンモニタ108は、旧仮想マシン104に対応する通信フロー情報に基づいて、現在旧仮想マシン104により提供されるサービスを利用しているノード装置100が存在するかを判断する。そして、存在すると判断した場合、仮想マシンモニタ108は、再起動通知メッセージを生成し、ノード装置100に対して、該再起動通知メッセージを送信する(ステップS904)。この再起動通知メッセージには、ノード装置100が利用しているサービスを提供している仮想マシンが再起動されたことを示す情報と、該サービスを利用している仮想マシンのネットワーク識別子とが含まれるようにしてもよい。例えば、仮想マシンのネットワーク識別子には、該仮想マシンのIPアドレスが含まれるようにしてもよい。ノード装置100の仮想マシンモニタ108は、生成した再起動通知メッセージを仮想ネットワークブリッジ106に入力する。
ノード装置100では、仮想ネットワークブリッジ106は、仮想マシンモニタ108により入力された再起動通知メッセージをネットワークインタフェース102に入力する。そして、ノード装置100のネットワークインタフェース102は、仮想ネットワークブリッジ106により入力された再起動通知メッセージを、ネットワークを介して接続されたノード装置100へ送信する。
ノード装置100の仮想マシンモニタ108は、旧仮想マシン104がサービスを提供しているかを判断する(ステップS906)。上述したステップS510と同様の処理が行われることにより判断される。
旧仮想マシン104がサービスを提供していないと判断した場合(ステップS906:NO)、ノード装置100の仮想マシンモニタ108は、旧仮想マシン104を終了させる(ステップS914)。ノード装置100の仮想マシンモニタ108は、旧仮想マシン104に割り当てていた資源を開放する。ノード装置100の仮想マシンモニタ108は、開放した資源を新仮想マシン104に割り当てる。
一方、旧仮想マシン104がサービスを提供していると判断した場合(ステップS906:YES)、ノード装置100の仮想マシンモニタ108は、一定期間休止する(ステップS908)。この一定時間は、例えば5秒程度であってもよい。
ノード装置100の仮想マシンモニタ108は、ステップS908による一定期間の休止後、旧仮想マシン104及び新仮想マシン104に対して、現在の通信フロー情報の要求を行う。ノード装置100の旧仮想マシン104及び新仮想マシン104は、通信フロー情報の要求に従って、カーネル内の通信フローの関する情報を取得する。例えば、旧仮想マシン104は、procファイル等を利用して、カーネル内の通信フローの関する情報を取得するようにしてもよい。また、カーネル内の通信フローに関する情報には、プロトコルコントロールブロックなどに含まれる通信フローに関する情報が含まれるようにしてもよい。また、カーネル内の通信フローに関する情報には、フロー識別子を含むようにしてもよい。ノード装置100の旧仮想マシン104は、取得したカーネル内の通信フローの関する情報を仮想マシンモニタ108に渡す。
ノード装置100の仮想マシンモニタ108は、旧仮想マシン104から、当該旧仮想マシン104が現在処理する通信フローの情報を取得する。
ノード装置100の仮想マシンモニタ108は、取得した旧仮想マシン104が現在処理する通信フローの情報を仮想ネットワークブリッジ106に入力する。ノード装置100の仮想ネットワークブリッジ106は、取得した旧仮想マシン104が現在処理する通信フローの情報をフロー情報記憶部110に格納する。
また、ノード装置100の仮想マシンモニタ108は、旧仮想マシン104の仮想マシンIDを仮想ネットワークブリッジ106に入力する。ノード装置100の仮想ネットワークブリッジ106は、取得した旧仮想マシン104の仮想マシンIDをフロー情報記憶部110に格納する。
また、ノード装置100の仮想マシンモニタ108は、取得した旧仮想マシン104の仮想マシンIDから求められるポート識別子を仮想ネットワークブリッジ106に入力する。ノード装置100の仮想ネットワークブリッジ106は、取得した旧仮想マシン104の仮想マシンIDから求められるポート識別子をフロー情報記憶部110に格納する。その結果、フロー情報が更新される(ステップS910)。
ノード装置100の仮想マシンモニタ108は、旧仮想マシン104及び新仮想マシン104から取得した通信フローの情報に基づいて、資源の再分配を行う(ステップS912)。例えば、ノード装置100の仮想マシンモニタ108は、旧仮想マシン104及び新仮想マシン104が、それぞれ現在扱っているフローの数に比例する資源量を、旧仮想マシン104及び新仮想マシン104に割り当てるようにしてもよい。
そして、ステップS906に戻る。ノード装置100の仮想マシンモニタ108は、ステップS910において更新された旧仮想マシン104の通信フローの情報に基づいて、旧仮想マシン104が現在サービスを実際に提供しているかを判断する。
ノード装置100上のネットワークインタフェース102は、ネットワークを介して接続されたノード装置100から再起動通知メッセージを受信する。ノード装置100上のネットワークインタフェース102は、受信した再起動通知メッセージを仮想ネットワークブリッジ106に入力する。
ノード装置100の仮想ネットワークブリッジ106は、ネットワークインタフェース102により入力された再起動通知メッセージを仮想マシンモニタ108に渡す。
ノード装置100の仮想マシンモニタ108は、仮想ネットワークブリッジ106により再起動通知メッセージを受け取り、該再起動通知メッセージに含まれるネットワーク識別子に基づいて、該当する仮想マシンを特定する。
ノード装置100の仮想マシンモニタ108は、仮想マシン104に対する資源割り当て量を増加させる(ステップS916)。例えば、ノード装置100の仮想マシンモニタ108は、仮想マシン104に対する資源割り当て量を、10%程度増加させるようにしてもよい。また、ノード装置100の仮想マシンモニタ108は、同時に起動している仮想マシンに割り当てている資源に基づいて増加させる資源量を決定するようにしてもよい。また、増加させる資源量は、予め決定されてもよい。
ノード装置100の仮想マシン104は、仮想マシンモニタ108により追加して割り当てられた資源を利用して処理を行う(ステップS918)。ノード装置100の仮想マシン104は、割り当てられる資源量が増加するため、ノード装置100の旧仮想マシン104により提供されるサービスを利用した処理を、早く終了することができる。
ノード装置100の仮想マシン104は、ノード装置100上の旧仮想マシン104により提供されるサービスを利用した処理を終了する(ステップS920)。ノード装置100の仮想マシン104は、処理が終了したことを仮想マシンモニタ108に通知する。
ノード装置100の仮想マシンモニタ108は、仮想マシン104により通知された処理が終了したことを示す情報に基づいて、仮想マシン104に対して追加して割り当てた資源量分を減少させる(ステップS922)。
上述したステップS916においては、ノード装置100の仮想マシンモニタ108が、仮想マシン104に対する資源割り当て量を増加させる場合について説明した。しかし、ノード装置100の仮想マシンモニタ108が仮想マシン104に対する資源割り当て量を増加させることにより、ノード装置100の旧仮想マシン104への負荷が増加する。その結果、ノード装置100の旧仮想マシン104において、トラブルが発生することも想定される。例えば、ノード装置100の旧仮想マシン104へ割り当てられる資源量は減少する傾向にある。このような場合に、ノード装置100の仮想マシンモニタ108が仮想マシン104に対する資源割り当て量を増加させると、ノード装置100の旧仮想マシン104において、負荷が増大し、トラブルが発生する場合がある。このような場合には、ノード装置100の仮想マシンモニタ108は、仮想マシン104に対する資源割り当て量を、減少させるようにしてもよい。
(第3の実施例)
本実施例に係るノード装置について説明する。
本実施例において、資源についての定義は上述した実施例と同様である。
本実施例に係るノード装置100は、上述した実施例に係るノード装置の構成と同様である。
本実施例に係るノード装置100では、フロー情報記憶部110に格納されるフロー情報に、フロー識別子が含まれる。例えば、フロー識別子には、上述した図4に示すように、ラベルが含まれる。ラベルは、上述したように、経路を識別するための情報であり、例えばMPLS(Multi-Protocol Label Switching)などで使用される。
本実施例に係るノード装置100では、MPLSのようにデータのフローが流れるパスごとにラベルが付与される。また、本実施例に係るネットワークシステムでは、通信のエンドのノード装置である仮想マシン104がパス生成を行う際にラベルに関する情報を交換する。例えば、通信のエンドのノード装置である仮想マシン104が、RSVP-TE(Resource reservation Protocol-Traffic Engineering)のように、パス生成を行う際にラベルに関する情報を交換するようにしてもよい。
本実施例に係るノード装置100により行われる処理については、上位レイヤでのフロー識別ではなく、下位レイヤでのフロー識別を行うこと以外は、上述した実施例と同様である。上位レイヤでのフロー識別には、TCP/IPでのフロー識別が含まれる。また、下位レイヤでのフロー識別には、MPLSでのフロー識別が含まれる。
このようにすることにより、フローの識別処理に係る時間を短縮できる。
本実施例によれば、再起動前と再起動後の仮想マシンを共存させることにより、既存の通信フローを切断することなく、障害やバージョンアップによるサービスの再起動を1台のノードで実現することができる。
本実施例によれば、通信フローを一時的に管理してデータを振り分けることにより、再起動前と再起動後の仮想マシンを共存させることができる。例えば、仮想ネットワークブリッジが、通信フローを一時的に管理して、データを振り分ける。
本実施例によれば、仮想マシンを用いてサービスを提供する際に、再起動前と再起動後の仮想マシンを共存させ、さらに、資源割り当て量を動的に変化させる。このようにすることにより、効率的な資源利用を実現しつつ、仮想マシンの提供するサービスを利用するための通信フローを切断することなくサービスを再起動できる。
一実施例に係るノード装置を示す部分ブロック図である。 一実施例に係るノード装置におけるフロー情報の一例を示す説明図である。 一実施例に係るノード装置におけるフロー情報の一例を示す説明図である。 一実施例に係るノード装置におけるフロー情報の一例を示す説明図である。 一実施例に係るノード装置の動作を示すフロー図である。 一実施例に係るノード装置の動作を示すフロー図である。 一実施例に係るノード装置の動作を示すフロー図である。 一実施例に係るネットワークシステムを示す部分ブロック図である。 一実施例に係るネットワークシステムの動作を示すフロー図である。
符号の説明
100(100、100) ノード装置
102 ネットワークインタフェース(NW I/F)
104 仮想マシン
104 旧仮想マシン(VM: virtual machine)
104 新仮想マシン
106 仮想ネットワークブリッジ(仮想NWブリッジ)
108 仮想マシンモニタ
110 フロー情報記憶部
200 通信網
1000 ネットワークシステム

Claims (10)

  1. 複数の仮想マシンを起動するノード装置であって、
    仮想マシンに対して資源を割り当てる手段と、
    前記割り当てる手段により、資源が割り当てられた仮想マシンを用いてサービスを提供する手段と、
    各仮想マシンに対して、通信フローを割り振る手段と
    を有し、
    前記サービスを提供する手段は、仮想マシンの再起動が行われる場合に、該仮想マシンと、前記再起動が行われた仮想マシンとを用いてサービスを提供し、
    前記割り振る手段は、前記仮想マシンと、前記再起動が行われた仮想マシンとの間で、通信フローを割り振ることを特徴とするノード装置。
  2. 請求項1に記載のノード装置において、
    前記割り当てる手段は、前記再起動が行われた仮想マシンに対して、前記仮想マシンに割り当てられていた資源の一部の資源を割り当てることを特徴とするノード装置。
  3. 請求項1又は2に記載のノード装置において、
    前記ネットワークブリッジは、前記仮想マシンにおける通信フローを示す情報に基づいて、前記仮想マシンと、前記再起動が行われた仮想マシンとの間で、通信フローを割り振ることを特徴とするノード装置。
  4. 請求項3に記載のノード装置において、
    前記通信フローを示す情報には、仮想マシンIDと、フロー識別子と、ポート識別子とが含まれることを特徴とするノード装置、
  5. 請求項4に記載のノード装置において、
    前記フロー識別子には、送信元のIPアドレスと、送信元のポート番号と、受信先のポート番号と、ポート識別子とが含まれることを特徴とするノード装置。
  6. 請求項3に記載のノード装置において、
    前記通信フローを示す情報には、仮想マシンIDと、経路を識別するためのラベルと、ポート識別子とが含まれることを特徴とするノード装置。
  7. 請求項1に記載のノード装置において、
    前記サービスを提供する手段は、前記仮想ノードが提供するサービスが終了したかを判断し、
    前記割り当てる手段は、前記サービスを提供する手段において前記仮想ノードが提供するサービスが終了したと判断した場合、前記仮想マシンに割り当てられていた資源を開放し、該開放した資源を前記再起動が行われた仮想マシンに割り当てることを特徴とするノード装置。
  8. 請求項1に記載のノード装置において、
    仮想マシンの再起動が行われたことを通知する手段
    を有し、
    前記割り当てる手段は、他のノード装置により仮想マシンが再起動されたことが通知された場合に、該再起動される前の仮想マシンにより提供されるサービスを利用している仮想マシンに対して割り当てている資源量を変化させることを特徴とするノード装置。
  9. 仮想マシンに対して資源を割り当てるステップと、
    仮想マシンを起動するステップと、
    前記割り当てるステップにより、資源が割り当てられた仮想マシンを用いてサービスを提供するステップと、
    各仮想マシンに対して、通信フローを割り振るステップと
    を有し、
    前記サービスを提供するステップでは、仮想マシンの再起動が行われる場合に、該仮想マシンと、前記再起動が行われた仮想マシンとを用いてサービスを提供し、
    前記割り振るステップでは、前記仮想マシンと、前記再起動が行われた仮想マシンとの間で、通信フローを割り振ることをコンピュータに実行させるためのプログラム。
  10. 仮想マシンに対して資源を割り当てるステップと、
    仮想マシンを起動するステップと、
    前記割り当てるステップにより、資源が割り当てられた仮想マシンを用いてサービスを提供するステップと、
    各仮想マシンに対して、通信フローを割り振るステップと
    を有し、
    前記サービスを提供するステップでは、仮想マシンの再起動が行われる場合に、該仮想マシンと、前記再起動が行われた仮想マシンとを用いてサービスを提供し、
    前記割り振るステップでは、前記仮想マシンと、前記再起動が行われた仮想マシンとの間で、通信フローを割り振ることを特徴とする方法。
JP2008113985A 2008-04-24 2008-04-24 ノード装置及びプログラム並びに方法 Pending JP2009265894A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008113985A JP2009265894A (ja) 2008-04-24 2008-04-24 ノード装置及びプログラム並びに方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008113985A JP2009265894A (ja) 2008-04-24 2008-04-24 ノード装置及びプログラム並びに方法

Publications (1)

Publication Number Publication Date
JP2009265894A true JP2009265894A (ja) 2009-11-12

Family

ID=41391684

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008113985A Pending JP2009265894A (ja) 2008-04-24 2008-04-24 ノード装置及びプログラム並びに方法

Country Status (1)

Country Link
JP (1) JP2009265894A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012003302A (ja) * 2010-06-14 2012-01-05 Mitsubishi Electric Corp ゲストos制御システム
WO2012090573A1 (en) * 2010-12-28 2012-07-05 Nec Corporation Network virtualization system, physical node, and virtual interface identification method in virtual machine
WO2015001798A1 (ja) * 2013-07-03 2015-01-08 日本電気株式会社 情報処理サーバ、情報処理システム、情報処理方法及びプログラム記録媒体
JP2016048833A (ja) * 2014-08-27 2016-04-07 日本電信電話株式会社 ネットワークシステム及びそのバージョン変更方法
JPWO2016152587A1 (ja) * 2015-03-20 2017-04-27 株式会社Nttドコモ スライス管理システム及びスライス管理方法
US11509598B1 (en) * 2021-11-19 2022-11-22 Microsoft Technology Licensing, Llc Dynamically re-allocating computing resources while maintaining network connection(s)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012003302A (ja) * 2010-06-14 2012-01-05 Mitsubishi Electric Corp ゲストos制御システム
WO2012090573A1 (en) * 2010-12-28 2012-07-05 Nec Corporation Network virtualization system, physical node, and virtual interface identification method in virtual machine
US9489224B2 (en) 2010-12-28 2016-11-08 Nec Corporation Network virtualization system, physical node, and virtual interface identification method in virtual machine
WO2015001798A1 (ja) * 2013-07-03 2015-01-08 日本電気株式会社 情報処理サーバ、情報処理システム、情報処理方法及びプログラム記録媒体
JP2016048833A (ja) * 2014-08-27 2016-04-07 日本電信電話株式会社 ネットワークシステム及びそのバージョン変更方法
JPWO2016152587A1 (ja) * 2015-03-20 2017-04-27 株式会社Nttドコモ スライス管理システム及びスライス管理方法
US11509598B1 (en) * 2021-11-19 2022-11-22 Microsoft Technology Licensing, Llc Dynamically re-allocating computing resources while maintaining network connection(s)
US20230164090A1 (en) * 2021-11-19 2023-05-25 Microsoft Technology Licensing, Llc Dynamically re-allocating computing resources while maintaining network connection(s)
US11962512B2 (en) * 2021-11-19 2024-04-16 Microsoft Technology Licensing, Llc Dynamically re-allocating computing resources while maintaining network connection(s)

Similar Documents

Publication Publication Date Title
US10534632B2 (en) Computer system and maintenance method of computer system
JP6307172B2 (ja) スライス管理システム及びスライス管理方法
US10838890B2 (en) Acceleration resource processing method and apparatus, and network functions virtualization system
WO2016015559A1 (zh) 云化数据中心网络的承载资源分配方法、装置及系统
US8863138B2 (en) Application service performance in cloud computing
KR102059251B1 (ko) 노드 시스템, 서버 장치, 스케일링 제어 방법 및 프로그램
JP2009258982A (ja) ノード装置及びプログラム並び資源割当方法
EP3481007B1 (en) Method, apparatus and management server for processing resource pool
JP2009265894A (ja) ノード装置及びプログラム並びに方法
CN109218356B (zh) 管理服务器上有状态应用的方法和设备
JP5669851B2 (ja) 論理的にパーティション化されたシステムにおいてパーティション間の効率的なコミュニケーションを行うための装置、方法、及びコンピュータ・プログラム
US9858096B2 (en) Communication device migration method of extension function and communication system
CN112583615B (zh) Vnf实例化方法、nfvo、vim、vnfm及系统
WO2020057438A1 (zh) 云计算服务中的软件调试的方法和装置
JP5609527B2 (ja) ネットワーク仮想化システム、ノード、ネットワーク仮想化方法、及び、ネットワーク仮想化プログラム
JPWO2006057040A1 (ja) コンピュータ・システム及び情報処理方法
JP5783259B2 (ja) コンピュータシステム
JP6341030B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
KR20130104958A (ko) 다중 운영체제들을 실행하는 장치 및 방법
JP6657910B2 (ja) 帯域設定方法、帯域設定プログラム、情報処理装置及び情報処理システム
JP5504651B2 (ja) 仮想マシンシステム、情報処理装置、リソース管理方法、プログラム及び記録媒体
JP2008171325A (ja) 資源管理装置および方法
CN108519912B (zh) 数据清洗方法、装置、计算机可读存储介质及电子设备
US20230168912A1 (en) System and method for upgrading a management component of a computing environment using high availability features
JP2017156894A (ja) 仮想マシン管理装置、システム、および仮想マシン管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110328

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121030