JP5869133B2 - ライブマイグレーションされた仮想計算機のネットワーク接続を復元する仮想計算機システム - Google Patents
ライブマイグレーションされた仮想計算機のネットワーク接続を復元する仮想計算機システム Download PDFInfo
- Publication number
- JP5869133B2 JP5869133B2 JP2014531448A JP2014531448A JP5869133B2 JP 5869133 B2 JP5869133 B2 JP 5869133B2 JP 2014531448 A JP2014531448 A JP 2014531448A JP 2014531448 A JP2014531448 A JP 2014531448A JP 5869133 B2 JP5869133 B2 JP 5869133B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- physical
- mac address
- information
- target
- 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.)
- Active
Links
- 230000005012 migration Effects 0.000 claims description 91
- 238000013508 migration Methods 0.000 claims description 91
- 238000012545 processing Methods 0.000 claims description 90
- 230000007246 mechanism Effects 0.000 claims description 53
- 230000005540 biological transmission Effects 0.000 claims description 12
- 239000000284 extract Substances 0.000 claims description 4
- 238000005192 partition Methods 0.000 claims description 4
- 102000004137 Lysophosphatidic Acid Receptors Human genes 0.000 description 122
- 108090000642 Lysophosphatidic Acid Receptors Proteins 0.000 description 122
- 238000000034 method Methods 0.000 description 32
- 230000008569 process Effects 0.000 description 24
- 238000004891 communication Methods 0.000 description 16
- 230000015654 memory Effects 0.000 description 12
- 238000012546 transfer Methods 0.000 description 9
- 238000013480 data collection Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000001152 differential interference contrast microscopy Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
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)
- Small-Scale Networks (AREA)
Description
本発明は、仮想計算機のライブマイグレーションに関する。
物理計算機が有するハイパーバイザのような仮想化機構により、物理計算機に1又は複数の仮想計算機が構築される。稼働中の仮想計算機を第1の物理計算機から第2の物理計算機にマイグレーションすることであるライブマイグレーション(以下、「LM」と言うことがある)の技術が知られている(例えば特許文献1)。
以下、LM元の物理計算機を「第1の物理計算機」と言い、第1の物理計算機が有する仮想化機構を「第1の仮想化機構」と言い、LM先の物理計算機を「第2の物理計算機」と言い、仮想的なNIC(Network Interface Card)を「VNIC」と言い、第2の物理計算機が有する仮想化機構を「第2の仮想化機構」と言い、LM対象の仮想計算機(仮想マシン)を「対象VM」と言い、第1の仮想化機構が管理するVNICであってLM前に対象VMに割り当てられていたVNICを「第1のVNIC」と言い、第2の仮想化機構が管理するVNICであってLM後に対象VMに割り当てられるVNICを「第2のVNIC」と言うことがある。
対象VMの上位マシン(例えば、対象VMにアクセスする物理的又は仮想的な計算機、或いは、対象VM上で動作する仮想的な計算機)がいたとしても、LMでは、上位マシンに気づかれることなく、対象VMをマイグレーションする必要がある。このため、LM後に対象VMと外部環境との接続を復元する必要がある。
外部環境のネットワーク接続情報として、例えば、PSW(物理的なネットワークスイッチ)が保持しているMACアドレステーブルがある。MACアドレステーブルは、宛先となるMACアドレスが割り当てられているマシンがPSWのどのポートに接続されているかを表す情報を有する。
LMの後、MACアドレステーブルを更新する必要がある。この更新は、第2の仮想化機構が、RARP(Reverse Address Resolution Protocol)パケットを発行することで行われる。RARPは、MACアドレスを用いてIPアドレスを取得するためのプロトコルである。
具体的には、第1及び第2の仮想化機構の間で、第1のVNICのMACアドレス#Xと第2のVNICのMACアドレス#Yが交換される。第2の仮想化機構は、第2の仮想化機構が有することになったMACアドレス#Xを指定したRARPパケットをブロードキャストする。ネットワーク上のRARPサーバが、そのRARPパケットを受信し、そのRARPパケットに応答して、MACアドレス#Xに対応するIPアドレス#Kを第2の仮想化機構に返す。これにより、第2の物理計算機がIPアドレス#Kを使用した通信をすることができるようになる。RARPパケットは、PSWで中継されるが、PSWは、MACアドレステーブルにおけるMACアドレス#Xに対応したポートの識別情報を、そのRARPパケットを受信したポートの識別情報に更新する。これにより、MACアドレス#Xとポートとの対応関係が更新され、LM後の対象VMについて、ネットワークの接続が復元することになる。
しかし、LM前において、第1の仮想化機構の管轄の外で、第1のVNICのMACアドレスとは異なるMACアドレスが、対象VMによる通信において使用されることがある。
その一例として、Teamingと呼ばれる技術が適用されている環境がある。Teamingとは、計算機に割り当てられた1以上のNICの複数のポートを束ねて1つのポートとして運用し負荷分散、帯域向上及び耐障害性の向上を図るための技術である。この技術がVNICに適用された場合、1以上のVNICに係る複数のポート(チーム設定された複数のポート)は一体として運用され、下記のうちの少なくとも1つが行われる。
(*)複数のポートのうちの第1のポートに障害が発生した場合に、第1のポートが論理的に切り離され、複数のポートのうちの第2のポートを使用して通信が続行される。
(*)複数のポートを介して複数の通信相手と通信する際に分担して送受信が行われることで、帯域幅が増加され、又は、負荷が分散される。
(*)複数のポートのうちの第1のポートに障害が発生した場合に、第1のポートが論理的に切り離され、複数のポートのうちの第2のポートを使用して通信が続行される。
(*)複数のポートを介して複数の通信相手と通信する際に分担して送受信が行われることで、帯域幅が増加され、又は、負荷が分散される。
Teamingで使用されるMACアドレスは、VNICに割り当てられているMACアドレスと異なるMACアドレスであることがある。仮想計算機のOS(ゲストOS)が使用するMACアドレスの変更は、仮想化機構とは独立して実施される。
そして、PSWが有するMACアドレステーブルには、ゲストOSが使用するMACアドレスが登録される。具体的には、例えば、PSWは、外部から来たパケットを受信した場合、受信したパケットに含まれているMACアドレスがMACアドレステーブルに無ければ、そのMACアドレスと、そのパケットを受信したポート(PSWのポート)のIDとをMACアドレステーブルに登録するようになっている。
そのため、LM後に第2の仮想化機構が送信するRARPパケットにおいて、正しいMACアドレス(具体的には、PSWのMACアドレステーブルに登録されているMACアドレスと同じMACアドレス)を指定することができないケースがあり得る。この場合、対象VMのネットワーク接続を復元することはできない。
上記のことは、MACアドレスに限らず、第1の仮想化機構が管理する情報とは異なる情報が、対象VMによる通信において使用される他のケースについてもあり得る。例えば、対象VMがtag VLAN(Virtual LAN)を使用するケースである(LANは、Local Area Networkの略称)。tag VLANを経由する通信では、VLAN tag(VLAN ID等を含んだ情報)が使用されるが、仮想化機構は、対象VMが使用するVLAN tagを知らない。このようなケースでは、ゲストOSのMACアドレスがVNICのMACアドレスと同じであったとしても、上記のように、LM後に対象VMのネットワーク接続を復元することができないという問題が生じ得る。
このようなことを回避する1つの方法として、対象VMが使用するMACアドレス或いはVLAN tagのような情報を仮想化機構に管理者が管理コンソールを通じて手動で入力する方法が考えられる。しかし、誤った情報が入力される或いは情報の入力漏れが生じるおそれがある。この場合、LM後に対象VMのネットワーク接続を復元することはできない。
また、仮想計算機或いはその上位マシンがどのように運用されているかを仮想化機構の管理者が管理することは困難であるケースがある。そのようなケースの一例として、クラウド環境でPaaS(Platform as a Service)を提供するケースである。通常、仮想化機構の管理者は、仮想計算機或いはその上位マシンがどのように運用されているかを把握していない。このため、仮想計算機が使用する情報を管理者が手動で入力する場合、仮想マシン或いはその上位マシンの使用者と仮想化機構の管理者の連携が必要になる。
第1の仮想化機構は、第1の管理情報ユニットを有し、第2の仮想化機構が、第2の管理情報ユニットを有する。第1の仮想化機構が、仮想計算機からパケットを受信した場合、パケットから、所定種類の情報を抽出し、抽出した所定種類の情報を第1の管理情報ユニットに登録する。第1の仮想化機構は、LMのときに、第1の管理情報ユニット中の所定種類の情報を、第2の仮想化機構に送信する。第2の仮想化機構は、その所定種類の情報を第2の管理情報ユニットに登録し、LMされた仮想計算機のネットワーク接続を復元するべく、所定種類の情報を含んだ所定種類のパケットを、第2の物理計算機の1以上の物理I/Oデバイスの少なくとも1つから送信する。
仮想化機構の管轄外の情報を使用した通信が行われる環境であっても、仮想化機構の管理者によって当該管轄外情報が手動で入力されること無しに、ライブマグレーションされた仮想計算機のネットワーク接続を復元することができる。仮想化機構の管理者が手動で管轄外情報を入力する必要が無いので、当該情報入力のために仮想計算機或いはその上位マシンの使用者と仮想化機構の管理者が連携する必要も無い。
以下、図面を参照して、一実施形態を説明する。
その際、同種の複数の要素を区別しないで説明する際には、その要素の参照符号を使用し、同種の要素を区別して説明する際には、その要素の参照符号に代えてその要素に付した通し番号を使用する。例えば、複数の物理計算機を区別しないで説明する際には、「物理計算機101」と記載し、複数の物理計算機を区別して説明する際には、「物理計算機#1」、「物理計算機#2」と記載する。
また、以下の説明では、aaa情報の一例として、aaaテーブルという名称で説明するが、情報はテーブルの形式に限らず他種の形式でも良い。
図1は、実施形態に係る仮想計算機システムとその外部環境の一例を示す。
仮想計算機システムは、複数の物理計算機101を含む。仮想計算機システムの外部環境は、例えば、複数のPSW154と、管理コンソール149とを含む。
物理計算機101は、物理層(物理リソース)102を有する。物理層102は、1以上のCPU104、1以上のメモリ111、及び1以上の物理I/O(Input/Output)デバイスを含む。物理I/Oデバイスは、例えば、通信ネットワークを介した通信のためのインタフェースデバイスであり、物理I/Oデバイスが通信ネットワークに接続されていてよい。1以上の物理I/Oデバイスは、例えば、3つの物理的なNIC112と、2つのFC(Fibre Channel)−HBA(Host Bus Adaptor)115である。図示の例では、物理計算機#1に関して、NIC#11の第1のポートに、PSW#1のポート#Aが接続されており、NIC#12の第1のポートに、PSW#3のポート#Bが接続されており、NIC#13の第1のポートに、PSW#4のポート#Bが接続されている。物理計算機#2に関して、NIC#21の第1のポートにPSW#1のポート#Dが接続されており、NIC#22の第1のポートにPSW#3のポート#Dが接続されている。
物理計算機101において、物理層102の少なくとも1つのCPU104においてコンピュータプログラム(例えばファームウェア)が実行されることで、ハイパパイザ103が実現される。ハイパーバイザ103は、物理層102(CPU104、メモリ111、I/Oデバイス(NIC112及びFC−HBA115)を論理的に分割し、且つ、論理的に分割することにより得られた複数の仮想リソースをそれぞれ複数のLPAR(Logical Partition)に割り当てることにより、1台の物理計算機101上に複数の仮想計算機を動作させることを可能とする機構である。仮想リソースの数はLPARの数と同じであり、仮想リソースはLPARに1対1で割り当てられる。仮想リソースがLPARに割り当てられることで仮想計算機が実現されるので、以下、本実施形態では、仮想計算機を「LPAR」と呼ぶ。1つのLPAR128に割り当てられる1つの仮想リソースは、例えば、1以上のCPU104に基づく1以上のVCPU(仮想CPU)119、1以上のメモリ111に基づく1以上のVMEM(仮想メモリ)123、及び、1以上のI/Oデバイスに基づく1以上の仮想I/Oデバイスを含む。1以上の仮想I/Oデバイスは、例えば、1以上のNIC112に基づく1以上のVNIC124、及び/又は、1以上のFC−HBA115に基づく1以上のVHBA(仮想HBA)126である。
LPAR128では、OS(ゲストOS)131が実行される。ゲストOS131は、パケットを送信する際、パケットに、所定種類の情報を含めるようになっている。所定種類の情報は、例えば、ゲストOIS131が使用するMACアドレス、及び/又は、VLAN tagを含む。VLAN tagは、ゲストOS131の通信においてtag VLANが使用される場合に、ゲストOS131が送信するパケットに含まれる。ゲストOS131が送信するパケットは、そのゲストOS131を実行するLPAR128に割り当てられているVNIC124又はVHBA126から送信される。そして、パケットに含まれるMACアドレスは、ゲストOS131が独自に使用するMACアドレス(以下、「ソフトウェアMAC」と言うことがある)であって、VNICのMACアドレスとは異なるMACアドレスであることがある。
LPAR128から送信されたパケットは、複数のPSW154のうちの少なくとも1つが受信する。PSW154は、物理的なネットワークスイッチである。PSW154は、複数のポート(物理ポート)と、MACアドレステーブル158(正確には、MACアドレステーブル158を記憶するメモリのような記憶デバイス)と、図示しないプロセッサとを有している。MACアドレステーブル158は、そのテーブル158を有するPSW154の物理ポートのIDとMACアドレスとの対応関係を表すアドレス管理情報の一例である。ここで言う「対応関係」は、どの物理ポートにどのゲストOSが接続されているかを表す。そのため、MACアドレステーブル158に登録される物理ポートIDは、パケットの転送先物理ポートのIDと言うこともできる。MACアドレステーブル158は、例えば、図14に示すように、MACアドレスと、VLAN tagの少なくとも一部分の一例であるVLAN IDと、物理ポートのIDとの組を有する(図14は、PSW#1のMACアドレステーブル#1の一例である。
PSW#1(PSW#1のプロセッサ)は、パケットを受信した場合、対象MACアドレス(受信したパケットに含まれているMACアドレス)がMACアドレステーブル#1に無ければ、対象MACアドレスと対象VLAN ID(パケットに含まれているVLAN tag中のVLAN ID)と、対象物理ポート(パケットを受信した物理ポート)のIDとの組をMACアドレステーブル#1に登録するようになっている。対象VLAN IDが無い場合には、MACアドレステーブル#1には、VLAN IDとして、指定無しを意味する値が登録される。また、PSW#1(PSW#1のプロセッサ)は、対象MACアドレスがMACアドレステーブル#1に有るが、対象MACアドレスに対応している物理ポートIDが対象物理ポートIDと異なっていれば、MACアドレステーブル#1における、対象MACアドレスに対応した物理ポートIDを、対象物理ポートIDに更新するようになっている。また、PSW#1(PSW#1のプロセッサ)は、パケットを受信した場合、対象MACアドレスがMACアドレステーブル#1に有り、且つ、対象MACアドレスに対応しているVLAN IDが、対象VLAN IDと異なっていれば、新たなエントリを追加し、そのエントリに、対象MACアドレスと対象VLAN IDを登録する。PSW#1のこのような機能により、MACアドレステーブル#1には、ゲストOSが使用するMACアドレス(及びVLAN tag)が登録されるようになっており、故に、そのMACアドレスが、ソフトウェアMACであれば、LPAR128のVNIC124のMACアドレスではなく、ソフトウェアMACが登録される。なお、PSW#1のこのような機能と同じ機能を、他のPSW128も有している。
ハイパーバイザ103は、スケジューラ117、リソース管理部118、マイグレーション処理部148、複数のVSW(仮想スイッチ)137、及び、前述した1以上の仮想リソースを有する。
スケジューラ117は、物理層102の論理分割を行い、リソース管理部118は、物理層102としての物理リソース等のリソースを管理する。スケジューラ117及びリソース管理部118により、物理層102(物理リソース)を論理的に分割することにより得られた複数の仮想リソース(例えば、VCPU119、VMEM123、VNIC124及びVHBA126)をそれぞれ複数のLPAR128に割り当てることができる。
VNIC124は、ハイパーバイザ103が割り当てた仮想MACアドレスを持つ。また、VNIC124は、仮想MACアドレスの他に、VNIC124に関する情報を含んだ管理テーブル152を有する。管理テーブル152は、VNIC124毎に設けられる。以下、管理テーブル152について、LPAR#11に割り当てられたVNIC#11及び#12のそれぞれの管理テーブルを例に取る。
図2は、VNIC#11の管理テーブル#11とVNIC#12の管理テーブル#12の一例を示す。
管理テーブル#11は、VNIC#11の仮想MACアドレスと、LPAR#11のゲストOS#11が使用し得る1以上のMACアドレスである1以上のOS登録MACアドレス(すなわち、VNIC#11を経由するパケットに含まれるMACアドレスとして使用され得る1以上のMACアドレス)とを含む。OS登録MACアドレスは、VNIC#11の仮想MACアドレスと同じ値である場合もある。
ゲストOS#11が送信するパケットに含まれるMACアドレスが、管理テーブル#11に登録される。ハイパーバイザ103は、管理テーブル#11を参照することで、ゲストOS#11によって登録されたMACアドレスを知ることができる。
例えばVNIC#11及び#12についてteamingの設定がされた場合、図2に示す管理テーブル#11及び#12の通り、VNIC#11とVNIC#12とでは仮想MACアドレスが異なるが、使用されるOS登録MACアドレスは、図2に示す通り同じになることがある(例えばMACアドレス00:00:87:00:00:01)。teaming時には、このOS登録MACアドレスを使用すれば良いようにも思えるが、teamingの場合には、ゲストOSがハイパーバイザ103にどのMACアドレスを使用してくるか分からないため、登録MACアドレスを使用することができない(図2に示すように、両方とも共通のMACアドレスが複数登録されている場合がある)。
再び図1を参照する。LPAR128では、前述したように、ゲストOS131が動作する。LPAR#13のゲストOS#13のようにVLAN tagを使用しないゲストOS131からは、図3に示すような、VLAN tagを含まないパケットが送信される。LPAR#11のゲストOS#11或いはLPAR#12のゲストOS#12のようにtag VLANを使用するゲストOS131からは、図4に示すような、VLAN tagを含むパケットが送信される。図3及び図4に示すいずれの種類のパケットにも、宛先MACアドレスと送信元MACアドレスとが含まれる。宛先MACアドレスは、送信元のLPAR128のゲストOS131が送信先として指定するMACアドレスであり、送信元MACアドレスは、送信元のLPAR128のゲストOS131が送信元として指定するMACアドレスである。例えば、tag VLANを使用しないゲストOSから送信されるパケット(以下、VLAN未使用パケット)は、第1のフィールド(例えば最初の6バイトのフィールド)に宛先MACアドレスを有し、第2のフィールド(例えば次の6バイトのフィールド)に送信元MACアドレスを有し、第3のフィールド(例えば次の2バイトのフィールド)にパケットのタイプを示す情報(例えばプロトコルを識別するための番号)を有し、第4のフィールド(例えば次の46〜1500バイトのフィールド)に、データを有し、第5のフィールド(例えば最後の4バイトのフィールド)に、エラー検出のためのコードを有する。一方、tag VLANを使用するゲストOSから送信されるパケット(以下、VLAN使用パケット)は、VLAN未使用パケットとほぼ同じであり、相違点は、VLAN使用パケットには、第2のフィールドと第3のフィールドとの間に第6のフィールド(例えば4バイト)がある点である。第6のフィールドには、VLAN tagがある。具体的には、例えば、第6のフィールドの前半部分(例えば2バイト)には、TPID(Tag Protocol Identifier)があり、第6のフィールドの後半部分(例えば2バイト)には、TCI(Tag Control Information)がある。TPIDの値は、tag VLAN使用時には「0x8100」となる。TCIは、VLAN IDやパケットの優先順位等の情報を含む情報である。TPIDとTCIとを含んだ情報を、VLAN tagと呼ぶ。
前述したように、例えば、LPAR#11及び#12のようにtag VLANを使用するLPAR128からは、VLAN ID等の情報を含んだVLAN tagを含むパケットが送信される。また、例えば、LPAR#13のように、ネットワークを冗長化するTeamingを行うLPAR128からは、ゲストOSがVNIC152の仮想MACアドレスと異なるMACアドレスを含むパケットが送信されることがある。
ハイパーバイザ#1により、稼働中のLPAR128が物理計算機#1から物理計算機#2にLMされることがある。例えば、LPAR#13がLMされると、LPAR#13が物理計算機#2にマイグレーションされ、物理計算機#2内のハイパーバイザ#2が、RARP(Reverse Address Resolution Protocol)を送信すれば、PSW#3のMACアドレステーブル#3とPSW#4のMACアドレステーブル#4が更新され、LPAR#13のネットワーク接続を復元(実質的に引き継ぐ)ことができる。
本実施形態では、LMされるLPAR128がVNICの仮想MACアドレスと異なるソフトウェアMACを含んだパケットを送信するようになっていても(或いは、VLAN tagを含んだパケットを送信するようになっていても)、そのようなLPAR128がLMされた後にネットワーク接続を復元できるよう(言い換えれば、LMに伴いネットワーク接続の引き継ぎができるよう)、少なくともLM元の物理計算機#1内のハイパーバイザ#1が、LPAR128からのパケットから所定種類の情報を抽出し保持するという学習機能を有する。所定種類の情報は、例えば、MACアドレス(送信元MACアドレス)とVLAN tagの少なくとも一部分(例えばVLAN ID)とのうちの少なくとも一方(典型的には両方)である。上記学習機能は、MAC学習部140である。MAC学習部140は、MACアドレス(送信元MACアドレス)とVLAN IDとを抽出し管理するMACアドレス学習を行うようになっている。
ハイパーバイザ103は、自身が構築する仮想的なネットワークセグメント毎にVSW(仮想的なスイッチ)137を有する。VSW137は、物理的なNIC112のポートに対応している。
各VSW137は、複数の仮想ポートと、MAC学習部140と、MACアドレス学習テーブル144とを有する。各VSW#137の複数の仮想ポートは、LPAR128に割り当てられたVNIC124に接続される仮想ポートと、物理計算機101が有する物理的なNIC112に割り当てられる仮想ポートとを含む。MAC学習部140は、MACアドレス学習を行う。例えば、VSW#11のMAC学習部#11は、VSW#11に接続されているVNICが割り当てられているLPAR#11(ゲストOS#11)からVSW#11がパケットを受信した場合、そのパケットからMACアドレス(送信元MACアドレス)とVLAN IDとを抽出し、抽出した情報(例えばMACアドレス及びVLAN ID)をMACアドレス学習テーブル#11に登録する。これにより、MACアドレス学習テーブル140に登録される情報(MACアドレス及びVLAN ID)は、そのMACアドレス学習テーブル140を有するVSW137が受信したパケットに依存する。
図1に例示した構成によれば、LPAR128に割り当てられたVNIC124に少なくとも1つのVSW137が接続されており、VSW137に少なくとも1つの物理的なNIC112が接続されており、物理的なNIC112に少なくとも1つのPSW154が接続されており、PSW154に、そのPSW154に物理的なNIC112を通じて接続されているVSW(仮想ネットワークセグメント)137に対応したネットワークセグメントが接続されている。ネットワークセグメントは、例えば、LANのサブネット、或いは、VLAN(tag VLAN)で良い。例えば、ゲストOS#13から送信されたパケットは、LPAR#13に割り当てられているVNIC124、そのVNIC124に接続されているVSW#13、及び、VSW#13に接続されているNIC#2を通じて、NIC#2に接続されているPSW#3で受信される。PSW#3は、その受信したパケット内の宛先MACアドレスに対応した物理ポートIDをMACアドレステーブル#3から特定し、特定した物理ポート#A又は#Dから、その受信したパケットを出力する。これにより、パケットは、PSW#3に接続されているネットワークセグメント#3を通じて外部の装置へ送られる、或いは、物理計算機#2内のLPAR128へと送られる。
VSW137は、ネットワークセグメントに対応しているので、複数の物理計算機101に、同一のネットワークセグメントに対応した複数のVSW137が存在することになる。例えば、物理計算機#1及び#2に、同一のネットワークセグメント#1に対応したVSW#11とVSW#21が存在することになる。
管理コンソール149は、例えば、パーソナルコンピュータのような計算機でも良い。管理コンソール149は、例えば、複数のPSW154のうちの少なくとも1つ(例えばPSW#1)に接続されている。管理コンソール149から、PSW#1を通じて、LM開始要求がLM元の物理計算機#1とLM先の物理計算機#2の両方に指示が出されることにより開始される。LM開始要求は、例えば、物理計算機#1(又は#2)だけに送られて、その物理計算機#1(又は#2)から相手の物理計算機#2(又は#1)にLM開始要求が送られても良い。マイグレーション処理部#1が、NIC#1を通じてマイグレーション処理部#2にLM対象のLPAR#128のデータを転送することにより、LPAR128のLMが実現される。LM開始要求では、LM対象のLPAR128(例えばLPAR#13)が及びマイグレーションの方式が指定される。指定されたLPAR128が稼働中であり、かつ指定された方式がLMであれば、LMが実行される。指定された方式がLMであるにも関わらす、指定されたLPAR128が稼働中でなければ、LMは失敗となる。本実施形態に係るマイグレーション処理部148は、LMの他に、他種のマイグレーション、例えば、マイグレーション対象のLPAR128のゲストOS131をシャットダウンした状態でそのマイグレーション対象のLPAR128をマイグレーションするシャットダウンマイグレーションを行うことができる。シャットダウンマイグレーションを行う際には、マイグレーション方式としてシャットダウンマイグレーションが指定される必要がある。
LPAR128が物理計算機#2にLMされた場合、LM先の物理計算機#2のマイグレーション処理部#2が、RARPパケットを送信する。
図5は、LM対象のLPAR128がtag VLANを使用していないLPAR128である場合に送信されるRARPパケットの構成例を示す。
図5からわかるように、パケットの構成は、図3に示したパケットの構成と同じである。第3のフィールド(タイプが書き込まれるフィールド)に、RARPを意味する値(例えば0x8035)が書き込まれ、第4のフィールド(データを有するフィールド)に、RARPに関するデータ(RARPパケット構成に従う値)が書き込まれる。
図6は、ハイパーバイザ103内のVSW137が行う処理の流れを示す。
図6の処理は、物理計算機101が起動しハイパーバイザ103によりVSW137が構築された後、全てのVSW137で実施される共通の処理である。具体的には、図6の処理は、VSW137を有する物理計算機101がLPAR128のLM元であるかLM先であるかに関係なく実施される。図6の処理は、全てのVSW137に適用されるが、以下、本実施形態のLM対象がLPAR#13であるため、VSW#13を例に取り、図6に示す処理を説明する。
(S601)物理計算機#1に電源が入り、ハイパーバイザ#1が動き始め、VSW#13が構築され、VSW#13の処理が開始する。
(S602)VSW#13は、ゲストOS#13が送信したパケットを受信するまで、又は、学習データ取得要求を受けるまで、待機する。
(S603)ゲストOS#13が送信したパケットを受信した場合には、MAC学習部#13がMACアドレス学習処理を行う(MACアドレス学習処理の詳細については後の図9を参照)。
(S604)VSW#13は、MACアドレス学習処理を行った後、受信したパケットを送信する。そのパケットは、VSW#13に接続されているNIC#12を通じて物理計算機#1から出力される。
(S605)VSW#13は、学習データ取得要求を受信した場合には、学習データ取得処理を行う(学習データ取得処理を含む学習データ収集処理の詳細については、後の図10を参照)。
(S606)VSW#13は、学習データを取得し、取得した学習データを、学習データ取得要求の送信元(VNIC)に送信する。
以上のように、ハイパーバイザ103が動作し、VSW137が存在しているときには、常に、各VSW137で、図6のS602〜S604の処理が繰り返される。S605とS606は、LM処理が行われた場合に行われる。
図7は、MACアドレス学習テーブル144の構成例を示す。
MACアドレス学習テーブル144は、前述したように、VSW137毎に存在し、1以上のエントリを有する。1つのエントリは、例えば、このMACアドレス学習テーブル144を有するVSW137が受信したパケットから抽出された送信元MACアドレスと、そのパケットから抽出されたVLAN IDと、そのパケットの送信元のVNICのIDと、このエントリが更新された時刻である更新時刻とを有する。すなわち、各エントリは、VNICを特定するのに、VNICの仮想MACアドレスではなく、VNICのIDを使用する。VNICについて、VNICの仮想MACアドレスが登録されても良い。
LMされたLPAR128のネットワーク接続をLM先の物理計算機#2において復元するために、ハイパーバイザ#2(マイグレーション処理部#2)がRARPパケットを出す。図5を参照して説明したが、RARPパケットには、送信元MACアドレスとVLAN ID(tag VLANが使用されていれば)が必要となる。LM元のハイパーバイザ#1におけるMACアドレス学習テーブル144から、LMされたLPARに関する全エントリの情報をLM先のハイパーバイザ#2にマイグレーションする。これにより、ゲストOS#13がハイパーバイザ#1が管理している仮想MACアドレスと異なるMACアドレスを含んだパケットを送信していた場合(及び、tag VLANが使用されていた場合)であっても、LM元から持ってきたエントリ(MACアドレス学習テーブルのエントリ)に、ネットワーク接続の復元に必要な情報であってRARPパケットに含められる情報が格納されている。このため、そのような情報を含んだRARPパケットをLM先のハイパーバイザ#2(マイグレーション処理部#2)が出すことで、LMされたLPARのネットワーク接続を復元することができるようになる。
MACアドレス学習テーブル144は、ハイパーバイザ103によるVSW137の初期化処理で生成され、VSW137が存在する間、常に存在する。ゲストOS134が、生成されたどのVSW(仮想ネットワークセグメント)を使うかは、ユーザによって指定される。MACアドレス学習テーブル144の更新は、ゲストOS134が使用するパケット中の情報が更新された場合に行われる。
図8は、メモリ111のうちハイパーバイザ103に関する情報が占める領域を示す。
図8に示すように、MACアドレス学習テーブル144と、そのテーブル144を論理的に保持するVSW137(正確にはVSW137としての機能を発生させるためにCPU104によって実行されるプログラムモジュール)とがメモリ111に配置される。これにより、ゲストOS134が大量のパケットを生成し送信しても、MACアドレス学習処理を長い時間をかけずに行うことができる。管理コンソール149のような、物理計算機#1の外部の装置がMACアドレス学習テーブル144を持っても良いかもしれないが、そうすると、通信ネットワークによりデータを転送する必要がでるため、ゲストOS134により大量にパケットが生成され送信された場合に、データの解析及び更新に長い時間を要してしまうことになる。
図9は、図6のS603(MACアドレス学習処理)の流れを示す。
MACアドレス学習処理は、LMとは無関係に、VSW137が存在している間、そのVSW#137のMAC学習部140で行われる処理である。ここでも、図6と同様に、VSW#13を例に取り、図9に示す処理を説明する。
(S901)MAC学習部#13は、ゲストOS#13が送信したパケットを受信する。
(S902)MAC学習部#13は、受信したパケットの解析を行い、ゲストOS#13がtag VLANを使用しているか否かに基づき、パケットから情報を取得する。具体的には、tag VLANが使用されている場合、取得される情報は、送信元MACアドレスとVLAN IDである。tag VLANが使用されていない場合、取得される情報は、送信元MACアドレスである。tag VLANを使用しているか否かは、例えば、パケットにおける第2のフィールド(送信元MACアドレス)の次の2バイトが、TPID「0x8100」であるか否かで判定することができる。
(S903)MAC学習部#13は、取得した送信元MACアドレス(及びVLAN ID)と同じMACアドレス(及びVLAN ID)を含んだエントリ(図9の説明において、以下、一致エントリ)がMACアドレス学習テーブル#13にあるか否かを判定する。
(S904)S903の判定の結果が肯定的の場合(S903:Yes)、MAC学習部#13は、一致エントリ内に、S901で受信したパケットの送信元のVNICのIDと同じVNIC IDが登録されているか否かを判定する。
(S905)S904の判定の結果が否定的の場合(S904:No)、MAC学習部#13は、一致エントリのVNIC IDを、S901で受信したパケットの送信元のVNIC IDに変更する。これにより、例えばteaming時に異なるVNICで同じMACアドレスが使用されていた場合でも、どのVNICが使用されているかを知ることができる。
(S906)S904の判定の結果が肯定的の場合(S904:No)、又は、S905の後、MAC学習部#13は、一致エントリにおける更新時刻を、一致エントリを更新した時刻に変更する。
(S907)S903の判定の結果が否定的の場合(S903:No)、MAC学習部#13は、MACアドレス学習テーブル#13に空きエントリがあるか否かを判定する。
(S908)S907の判定の結果が否定的の場合(S907:No)、MAC学習部#13は、MACアドレス学習テーブル#13から、最も更新時刻の古いエントリを削除することにより、空きエントリを生成する。
(S909)S907の判定の結果が肯定的の場合(S907:No)、又は、S908の後、MAC学習部#13は、空きエントリに、S902で取得した情報(学習した情報)と、S901で受信したパケットの送信元のVNIC IDと、空きエントリに情報を格納する時刻である更新時刻とを、格納する。
図10は、学習データ収集処理の流れを示す。
学習データ収集処理を説明する際の前提として、図7で示したように、MACアドレス学習テーブル144は、複数のエントリを有し、各エントリは、VNIC IDを含んでいる。VNIC IDは、名前の通り、VNICを識別するための情報であり、VNICと1:1で対応する。
LMされたLPAR128のネットワーク接続を復元するためには、LM対象のLPARに割り当てられたVNICに対応するVNIC IDを持つエントリの情報を取得し、LM先のハイパーバイザ#2が、当該エントリのMACアドレスとVLAN IDを利用してRARPパケットを送信する必要がある。LPARに割り当てられたVNICのエントリをMACアドレス学習テーブルから検索する際には、VNIC IDをキーとして検索する。LPARに複数のVNICが割り当てられていれば、複数のエントリの情報を取得する必要がある。また、LM対象のLPAR128がtag VLANを使用するLPARであることもあるので、その際には、1つのVNICについて複数のエントリの情報を取得する必要がある。以下、図6及ぶ図9と同様、LM対象のLPAR128がLPAR#13であり物理計算機#1から物理計算機#2にLMされることを例に取り、図10に示す学習データ収集処理を説明する。
(S1001)マイグレーション処理部#1は、LPAR#13に割り当てられている1以上のVNIC137のうちの1つのVNIC137(例えば#11)に、学習データ取得要求を出す。
(S1002)VNIC#11は、S1001の学習データ取得要求を受信し、VNIC#11に接続されているVSW#13に対して、学習データ取得要求を送信する。
(S1003)VSW#13が、データ収集要求を受信する。
(S1004)VSW#13が、VNIC#11のVNIC IDを特定する。
(S1005)VSW#13が、MACアドレス学習テーブル#13内に、S1004で特定したVNIC IDと同一のVNIC IDを持つエントリ(図10の説明において、以下、一致エントリ)の検索を行う。
(S1006)VSW#13が、検索したエントリが一致エントリであるかどうかの判定を行う。
(S1007)S1006の判定の結果が肯定的の場合(S1006:Yes)、VSW#13が、一致エントリの情報を、マイグレーション処理部#1のバッファ領域(例えばメモリ11における所定領域)にコピーする。これにより、マイグレーション処理部#1がLM先にLPAR#13に関するデータを転送できるようにする。
(S1008)S1006の判定の結果が否定的の場合(S1006:No)、或いは、S1007の後、VSW#13が、検索するエントリが最終エントリであるか否かを判定する。この判定の結果が否定的の場合(S1008:No)、別の未検索のエントリについて、S1005が行われる。
(S1009)S1008の判定の結果が肯定的の場合(S1008:Yes)、VSW#13が、S1003で受信した要求の送信元のVNIC#11に対して、データ取得の完了を通知する。
(S1010)データ取得の完了の通知を受けたVNIC#11は、S1001の要求の送信元のマイグレーション処理部#1に対して、データ取得の完了を通知する。
(S1011)VNIC#11からデータ取得の完了の通知を受けたマイグレーション処理部#1は、LM対象のLPAR#13に割り当てられている1以上のVNIC137の全てについて、データの取得が完了したか否かを判定する。
(S1012)S1011の判定の結果が否定的の場合(S1011:No)、マイグレーション処理部#1は、LPAR#13に割り当てられている1以上のVNIC137のうち別のVNIC(例えば#12)に対して、S1001のように学習データ取得要求を送信する。
(S1013)S1011の判定の結果が肯定的の場合(S1011:Yes)、マイグレーション処理部#1は、学習データ収集処理を終了する。
図11は、LM処理の流れを示す。なお、これまで、LPAR128が物理計算機#1から物理計算機#2にLMされると説明したが、正確には、物理計算機#1におけるLM元のLPARに関するデータが物理計算機#1から物理計算機#2に転送され、物理計算機#2におけるLM先のLPARに関するデータが、物理計算機#1におけるLM元のLPARに関するデータに変更されることである。そこで、以下の説明では、「LM元LPAR」及び「LM先LPAR」という言葉が使用される。このLM処理では、LM元LPARからLM先LPARにLPAR#3がマイグレーションされるというイメージである。
(S1101)管理コンソール149が、LM元の物理計算機#1におけるマイグレーション処理部#1に対してLM開始要求を出す。
(S1102)管理コンソール149が、LM先の物理計算機#1におけるマイグレーション処理部#2に対してLM開始要求を出す。
(S1103)マイグレーション処理部#1は、LM元の物理計算機#1に関する構成情報を収集する。構成情報は、例えば、どのNIC112のポートにどのVSW137を通じてどのVNIC124が接続されているか、VNIC毎の仮想MACアドレス、及び、VHBA毎のWWN(World Wide Name)を含んでよい。
(S1104)マイグレーション処理部#2はLM先の物理計算機#2に関する構成情報を収集する。
(S1105)マイグレーション処理部#2は、S1104で取得した構成情報のうちの、LM先LPARのMACアドレス及び/又はWWNを、マイグレーション処理部#1に転送する。
(S1106)マイグレーション処理部#1は、S1103で取得した構成情報のうちの、LM元LPARのMACアドレス及び/又はWWNを、マイグレーショ処理部#2に転送する。
(S1107)マイグレーション処理部#2は、S1106でマイグレーション処理部#1から送信されたMACアドレス及び/又はWWNを受信し、それらが、LM先LPARのMACアドレス及び/又はWWNを、受信したMACアドレス及び/又はWWNに変更する。
(S1108)マイグレーション処理部#1は、マイグレーション処理部#2に対して、リソース確保要求を出す。
(S1109)マイグレーション処理部#2は、マイグレーション処理部#1からリソース確保要求を受信し、LM先LPARのリソース確保処理を行う。
(S1110)リソースを確保したマイグレーション処理部#2は、マイグレーション処理部#1からVMEM123に記憶されている情報が転送されて来るのを待つ。
(S1111)マイグレーション処理部#1は、VMEM123から、LM元LPARに関する情報を取得し、取得した情報をマイグレーション処理部#2に転送する。マイグレーション処理部#1は、VMEM123に記憶されている、LM元LPARに関する情報のうち、ダーティ比率が一定値以下になるまで、LM元LPARに関する情報の転送を続ける。なお、ダーティ比率とは、LM元LPARに関する情報の量に対する、LM元LPARに関する情報のうちのダーティ情報の量の比率である。ダーティ情報は、本LM処理において転送された後に更新され転送が必要になった情報である。
(S1112)マイグレーション処理部#2は、ハイパーバイザ#2におけるVMEMにおける情報のうち、LM先LPARに関する情報を、マイグレーション処理部#1より転送されて来た情報(LM元LPARに関する情報)に変更する。
(S1113)マイグレーション処理部#1は、ダーティ比率が一定値以下になった場合に、LM元LPARを休止する。具体的には、マイグレーション処理部#1は、LM元LPARに割り当てられていた仮想リソース(VCPU119、VNIC124等))を休止させることにより、LM元LPARを休止させる。これにより、VMEMの情報のうちの、LM元LPARに関する情報を確定することができ、以って、ダーティ情報が増えないようにすることができる。
(S1114)LM元LPARの休止後に、学習データ収集処理(図10参照)が行われる。その処理は、マイグレーション処理部#1がLM元LPARに接続されているVNICに学習データ取得要求を送信することを含む。この処理により、LM元LPARについて学習されたデータ(ソフトウェアMAC、VLAN ID)を、マイグレーション処理部#1が取得することができる。具体的には、図10のS1007の通り、MACアドレス学習テーブル144の1以上のエントリの情報が、マイグレーション処理部#1のバッファ領域にコピーされる。
(S1115)マイグレーション処理部#1は、マイグレーション処理部#1のバッファ領域にコピーされた情報(MACアドレス学習テーブル144の1以上のエントリの情報)を含んだ情報であるデバイス情報をマイグレーション処理部#2に転送する。
(S1116)マイグレーション処理部#2は、S1115でマイグレーション処理部#1から転送されたデバイス情報を受信し、受信したデバイス情報を、LM先LPARに反映する。具体的には、マイグレーション処理部#2は、LM先LPARのVNICに接続されているVSWのMACアドレス学習テーブルにおける、LM先LPARのVNICのIDに対応した1以上のエントリに、それぞれ、受信したデバイス情報のうちのVNIC ID以外の情報(MACアドレス、VLAN ID及び更新時刻)を格納する。
ここまでの処理により、LMの前後、例えば、S1113の前とS1116の後で、図12及び図13に示す変化が生じる。
すなわち、例えば、図12の左側に示すように、LM元LPARに割り当てられていたVNICのIDが「1」であった場合、LM後に、VNIC ID「1」を含んだ全てのエントリは、図12の右側に示すように、空きエントリとなる。一方、図13の左側に示すように、LM先LPARに割り当てられていたVNIC(ID「9」のVNIC)に対応するエントリに、受信したデバイス情報のうちのVNIC ID「1」以外の情報(MACアドレス、VLAN ID及び更新時刻)が格納される。格納先のエントリでは、VNIC IDは「9」である。
(S1117)マイグレーション処理部#1は、デバイス情報の転送後、最終メモリ転送を行う。例えば、LM元LPARについての残りの全てのダーティ情報がマイグレーション処理部#2に転送される。
(S1118)マイグレーション処理部#2は、最終メモリの反映を行う。例えば、マイグレーション処理部#2は、受信したダーティ情報を、ハイパーバイザ#2におけるVMEMに格納する。
(S1119)マイグレーション処理部#1は、LMされたLPARを指定したLPAR再開要求をマイグレーション処理部#2に出す。
(S1120)マイグレーション処理部#2は、LPAR再開要求を受信し、その要求に従い、LM元で停止させていたゲストOS131を再開させるためのLPAR再開処理を行う。
(S1121)マイグレーション処理部#1は、LM元LPARのdeactivate処理を行う。
(S1122)マイグレーション処理部#2は、LM先LPARに接続されたVSWのMACアドレス学習テーブルから、LM先LPARに割り当てられているVNICに対応するエントリを見つけ出し、見つかったエントリ内のMACアドレス(及びVLAN ID)を含んだRARPパケットをブロードキャスト送信する。これにより、図14及び図15に示すように、そのRARPパケット内のMACアドレス(及びVLAN ID)と同じMACアドレス(及びVLAN ID)を含んだMACアドレステーブル#1を有するPSW#1が、そのRARPパケットを受信した場合に、そのMACアドレスに対応する物理ポートのID「portB」を、今回そのRARPパケットを受信した物理ポートのID「portD」に変更する。すなわち、RARPパケットのブロードキャスト送信により、PSW154に、ネットワーク経路が変わったことを伝えることができる。なお、本実施形態では、PSW154のMACアドレステーブル148を変更するためにRARPパケットのブロードキャスト送信が利用されるが、RARPパケット以外の種類のパケットにより、PSW154のMACアドレステーブル148が変更されても良い。
(S1123)マイグレーション処理部#2は、LM先LPARの構成情報を保存する。LPARの構成情報は、メモリに保存されても良いが、本実施形態では、物理計算機101の保守又は管理のための計算機であるSVP(Service Processor)に保存される。SVPは、複数の物理計算機101に共通であっても良いし、物理計算機101毎に用意されても良い。例えば、S1123では、LPARの構成情報は、物理計算機#2のSVPに保存される。
(S1124)マイグレーション処理部#2は、マイグレーション処理部#1に対して構成情報保存完了報告を送信する。
(S1125)マイグレーション処理部#1は、構成情報保存完了報告を受信し、S1105でマイグレーション処理部#2から送信されたMACアドレス及び/又はWWNを、LM元LPARのMACアドレス及び/又はWWNとして設定する。
(S1126)マイグレーション処理部#1は、LM元LPARの定義(例えば、LM元LPARに関する、リソース管理部#1内の情報)を削除する。
(S1127)マイグレーション処理部#1は、マイグレーション処理部#2に対してLPAR定義取り消し報告を送信する。
(S1128)マイグレーション処理部#1は、LM元LPARの構成情報を保存する。例えば、S1128では、LPARの構成情報は、物理計算機#1のSVPに保存される。
(S1129)マイグレーション処理部#1は、構成情報保存完了後、LM先マイグレーション処理部172に対して構成情報保存完了報告を送信する。
(S1130)マイグレーション処理部#1は、マイグレーション処理部#2に構成情報保存完了報告を送信した後、管理コンソール149に対してLM完了報告を送信する。
(S1131)マイグレーション処理部#2は、マイグレーション処理部#1から構成情報保存完了報告を受信し、管理コンソール149に対してLM完了報告を送信する。
(S1132)管理コンソール149は、マイグレーション処理部#1及び#2の両方からLM完了報告を受信した後、LMを完了させる。
上述した実施形態によれば、ハイパーバイザ103の管轄外のMACアドレス或いはVLAN IDを使用した通信が行われる環境であっても、管理者によって当該MACアドレス或いはVLAN IDが手動で入力されること無しに、ライブマグレーションされたLPARのネットワーク接続を復元することができる。管理者が手動でハイパーバイザ103の管轄外のMACアドレス或いはVLAN IDを入力する必要が無いので、当該情報入力のためにLPAR或いはその上位マシンの使用者とハイパーバイザ103の管理者が連携する必要も無い。
また、複数のネットワークセグメントにそれぞれ対応した複数のVSW137がハイパーバイザ103で構築される場合、VSW137毎にMACアドレス管理テーブル144がある。故に、ハイパーバイザ#1は、複数のMACアドレス管理テーブル144を管理する。このような構成であっても、LM対象のLPAR128に割り当てられているVNICを通じてVSWから学習データを収集することにより、LM対象のLPAR128ではないLPAR128に関するデータをLM先に転送することを回避することができる。
以上、一実施形態を説明したが、本発明は、その実施形態に限定されるものでなく、その趣旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上述の実施形態では、VNICを介した通信を例に取ったが、他種の仮想I/Oデバイス(例えばVHBA)でも同様の処理が行われても良い。また、ハイパーバイザ103のような仮想化機構は、コンピュータプログラムとして実現されても良いし、物として実現されても良い。例えば、ハイパーバイザは、コンピュータプログラムを記憶した記憶デバイスと、物理計算機のような外部装置と通信するための通信インタフェースデバイスと、記憶デバイス及び通信インタフェースデバイスに接続されておりプロセッサを含んだ制御デバイスを有した装置であって、制御デバイス内のプロセッサでコンピュータプログラムが実行されることにより、ハイパーバイザとしての機能が実現されて良い。また、例えば、ハイパーバイザ103が有するスケジューラ117、リソース管理部118及びマイグレーション処理部148のうちの少なくとも1つがハードウェア回路で実現されても良いし、それらの要素117、118及び148の少なくとも1つの一部の処理がハードウェア回路で実現されても良い。
101:物理計算機、103:ハイパーバイザ、128:LPAR(仮想計算機)、137:VSW(仮想スイッチ)、140:MAC学習部、144:MAC学習テーブル
Claims (10)
- 1以上の物理ネットワークスイッチに接続される1以上の第1の物理I/O(Input/Output)デバイスを含む第1の物理リソースと、前記第1の物理リソースを論理的に分割することにより得られた1以上の第1の仮想リソースをそれぞれ1以上の第1のLPAR(Logical Partition)に割り当てることで1以上の仮想計算機を構築することができる第1の仮想化機構と、を有する第1物理計算機と、
前記1以上の物理ネットワークスイッチに接続される1以上の第2の物理I/Oデバイスを含む第2の物理リソースと、前記第2の物理リソースを論理的に分割することにより得られた1以上の第2の仮想リソースをそれぞれ1以上の第2のLPARに割り当てることで1以上の仮想計算機を構築することができる第2の仮想化機構と、を有する第2の物理計算機と
を有し、
(A)前記第1の仮想化機構は、第1の管理情報ユニットを有し、
仮想計算機からパケットを受信した場合、前記パケットから、所定種類の情報を抽出し、前記抽出した所定種類の情報を前記第1の管理情報ユニットに登録し、
(B)前記第1の仮想化機構は、稼働中のマイグレーション対象の仮想計算機である対象仮想計算機を前記第1の物理計算機から前記第2の物理計算機にマイグレーションするライブマイグレーションのときに、前記第1の管理情報ユニット中の前記所定種類の情報を、前記第2の仮想化機構に送信し、
(C)前記第2の仮想化機構は、第2の管理情報ユニットを有し、
前記所定種類の情報を前記第1の仮想化機構から受信し、
前記受信した所定種類の情報を前記第2の管理情報ユニットに登録し、
前記所定種類の情報を含んだ所定種類のパケットを、前記1以上の第2の物理I/Oデバイスの少なくとも1つから送信し、
前記所定種類の情報は、MACアドレス及びVLAN(Virtual LAN) tagのうちの少なくとも1つである、
仮想計算機システム。 - 前記1以上の第1の仮想リソースは、前記1以上の第1の物理I/Oデバイスに基づく1以上の第1の仮想I/Oデバイスを含み、前記1以上の第2の仮想リソースは、前記1以上の第2の物理I/Oに基づく1以上の第2の仮想I/Oデバイスを含み、
前記第1の仮想化機構は、前記第1の仮想化機構が管理する1以上の仮想計算機にそれぞれ割り当てられる1以上の第1の仮想I/Oデバイスと前記1以上の第1の物理I/Oデバイスの少なくとも1つとが接続される1以上の第1の仮想スイッチを有し、
前記第2の仮想化機構は、前記第2の仮想化機構が管理する1以上の仮想計算機にそれぞれ割り当てられる1以上の第2の仮想I/Oデバイスと前記1以上の第2の物理I/Oデバイスの少なくとも1つとが接続される1以上の第2の仮想スイッチを有し、
各第1の仮想スイッチが、前記第1の管理情報ユニットを有し、各第2の仮想スイッチが、前記第2の管理情報ユニットを有し、
前記(A)に関して、前記第1の仮想化機構が、仮想計算機の第1の仮想I/Oデバイスを通じてその仮想計算機からパケットを受信した第1の仮想I/Oデバイスの第1の管理情報ユニットに、前記受信したパケットに含まれている所定種類の情報を登録し、
前記(B)に関して、前記第1の仮想化機構は、前記ライブマイグレーションのときに、前記対象仮想計算機の第1の仮想I/Oデバイスから出力されたパケットが経由する第1の仮想スイッチが有する第1の管理情報ユニット中の少なくとも前記対象仮想計算機の第1の仮想I/Oデバイスに対応し前記所定種類の情報を含んだ対象情報部分を、前記第2の仮想化機構に送信し、
前記(C)に関して、前記第2の仮想化機構が、マイグレーションされた対象仮想計算機の第2の仮想I/Oデバイスに接続されている第2の仮想スイッチの第2の管理情報ユニットに、前記対象情報部分を登録し、前記対象情報部分中の前記所定種類の情報を含んだ前記所定種類のパケットを、前記対象仮想計算機の第2の仮想I/Oデバイスが接続された第2の仮想スイッチに接続されている第2の物理I/Oデバイスから送信する、
請求項1記載の仮想計算機システム。 - 各管理情報ユニットには、それぞれ、当該管理情報ユニットを有する仮想スイッチに接続されている仮想I/OデバイスのデバイスIDと、その仮想I/Oデバイスを通じて受信したパケット中の前記所定種類の情報とが登録される、
請求項2記載の仮想計算機システム。 - 前記(A)に関して、前記抽出した所定種類の情報と同一の情報が、前記パケットを受けた第1の仮想スイッチの第1の管理情報ユニットに登録されているが、その登録済の情報に対応したデバイスIDから識別される仮想I/Oデバイスが、前記パケットの送信元の第1の仮想I/Oデバイスの異なっている場合、前記第1の仮想化機構が、前記パケットを受けた第1の仮想スイッチの第1の管理情報ユニットにおける前記登録済の情報に対応したデバイスIDを、前記パケットの送信元の第1の仮想I/OデバイスのIDに更新する、
請求項3記載の仮想計算機システム。 - 前記1以上の第1の仮想リソースは、前記1以上の第1の物理I/Oデバイスに基づく複数の第1の仮想I/Oデバイスを含み、
前記複数の第1の仮想I/Oデバイスについてteamingの設定がされている、
請求項1乃至4のうちのいずれか1項に記載の仮想計算機システム。 - 前記所定種類の情報は、MACアドレスであり、
前記所定種類のパケットは、RARP(Reverse Address Resolution Protocol)要求であり、
前記RARPパケットは、MACアドレスを含み、
各物理ネットワークスイッチは、物理ポートIDとMACアドレスの対応関係を表すアドレス管理情報とを有し、パケットを受信した場合、対象MACアドレスが前記アドレス管理情報に無ければ、前記対象MACアドレスと対象物理ポートIDとの組を前記アドレス管理情報に登録し、前記対象MACアドレスが前記アドレス管理情報に有り、且つ、前記対象MACアドレスに対応している物理ポートIDが、前記対象物理ポートIDと異なっていれば、前記アドレス管理情報における、前記対象MACアドレスに対応した物理ポートIDを前記対象物理ポートIDに更新するようになっており、
前記対象MACアドレスは、前記受信したパケットが有するMACアドレスであり、
前記対象物理ポートは、前記パケットを受信した物理ポートである、
請求項5記載の仮想計算機システム。 - 少なくとも前記対象仮想計算機は、tag VLANを使用する仮想計算機であり、
前記所定種類の情報及び前記RARPパケットは、MACアドレスの他にVLAN tagで含んでおり、
前記アドレス管理情報は、MACアドレスと物理ポートIDとVLAN tag部分の少なくとも一部分との対応関係を表しており、
各物理ネットワークスイッチは、パケットを受信した場合、前記対象MACアドレスが前記アドレス管理情報に無ければ、前記対象MACアドレスと対象VLAN tag部分と前記対象物理ポートIDとの組を前記アドレス管理情報に登録し、前記対象MACアドレスが前記アドレス管理情報に有り、且つ、前記対象MACアドレスに対応しているVLAN tag部分が、前記対象VLAN tag部分と異なっていれば、前記アドレス管理情報における新たなエントリに、前記対象MACアドレスと前記対象VLAN tag部分と前記対象物理ポートIDとの組を登録するようになっており、
前記対象VLAN tag部分は、前記受信したパケットが有するVLAN tagの少なくとも一部分である、
請求項6記載の仮想計算機システム。 - 前記(B)に関して、前記第1の仮想化機構は、前記対象仮想計算機に割り当てられている仮想リソースを休止し、その後に、前記第1の管理情報ユニット中の前記所定種類の情報を、前記第2の仮想化機構に送信する、
請求項1乃至7のうちのいずれか1項に記載の仮想計算機システム。 - 1以上の物理ネットワークスイッチに接続される1以上の物理I/O(Input/Output)デバイスを含む物理リソースを有する物理計算機で実行され、前記物理リソースを論理的に分割することにより得られた1以上の仮想リソースをそれぞれ1以上のLPAR(Logical Partition)に割り当てることで1以上の仮想計算機を構築することができる仮想化機構であって、
稼働中のマイグレーション対象の仮想計算機である対象仮想計算機を物理計算機から別の物理計算機にマイグレーションするライブマイグレーションを実行することができるマイグレーション処理部と、
管理情報ユニットと、
仮想計算機からのパケットから、所定種類の情報を抽出し、前記抽出した所定種類の情報を前記管理情報ユニットに登録する学習部と
を有し、
前記ライブマイグレーションのときに、前記マイグレーション処理部は、前記管理情報ユニット中の前記所定種類の情報を取得し、取得した前記所定種類の情報を、前記別の物理計算機に送信し、
前記所定種類の情報は、MACアドレス及びVLAN(Virtual LAN) tagのうちの少なくとも1つである、
仮想化機構。 - 1以上の物理ネットワークスイッチに接続される1以上の物理I/O(Input/Output)デバイスとプロセッサと記憶デバイスとを含む物理リソースを有し、
前記プロセッサが、仮想化機構を実行することで、前記物理リソースを論理的に分割することにより得られた1以上の仮想リソースをそれぞれ1以上のLPAR(Logical Partition)に割り当てることで1以上の仮想計算機を構築することができ、且つ、稼働中のマイグレーション対象の仮想計算機である対象仮想計算機を物理計算機から別の物理計算機にマイグレーションするライブマイグレーションを実行することができるようになっており、
前記記憶デバイスは、管理情報ユニットを記憶し、
前記プロセッサは、仮想計算機からのパケットから、所定種類の情報を抽出し、前記抽出した所定種類の情報を前記管理情報ユニットに登録し、
前記ライブマイグレーションのときに、前記プロセッサは、前記管理情報ユニット中の前記所定種類の情報を、前記別の物理計算機に送信し、
前記所定種類の情報は、MACアドレス及びVLAN(Virtual LAN) tagのうちの少なくとも1つである、
物理計算機。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/071217 WO2014030229A1 (ja) | 2012-08-22 | 2012-08-22 | ライブマイグレーションされた仮想計算機のネットワーク接続を復元する仮想計算機システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5869133B2 true JP5869133B2 (ja) | 2016-02-24 |
JPWO2014030229A1 JPWO2014030229A1 (ja) | 2016-07-28 |
Family
ID=50149565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014531448A Active JP5869133B2 (ja) | 2012-08-22 | 2012-08-22 | ライブマイグレーションされた仮想計算機のネットワーク接続を復元する仮想計算機システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US9323566B2 (ja) |
JP (1) | JP5869133B2 (ja) |
WO (1) | WO2014030229A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10324743B2 (en) * | 2014-08-27 | 2019-06-18 | Red Hat Israel, Ltd. | Announcing virtual machine migration |
US10038629B2 (en) * | 2014-09-11 | 2018-07-31 | Microsoft Technology Licensing, Llc | Virtual machine migration using label based underlay network forwarding |
US9936014B2 (en) | 2014-10-26 | 2018-04-03 | Microsoft Technology Licensing, Llc | Method for virtual machine migration in computer networks |
US9923800B2 (en) | 2014-10-26 | 2018-03-20 | Microsoft Technology Licensing, Llc | Method for reachability management in computer networks |
US9942131B2 (en) * | 2015-07-29 | 2018-04-10 | International Business Machines Corporation | Multipathing using flow tunneling through bound overlay virtual machines |
CN110633127A (zh) | 2018-06-25 | 2019-12-31 | 华为技术有限公司 | 一种数据处理方法及相关设备 |
US10853126B2 (en) * | 2018-07-26 | 2020-12-01 | Vmware, Inc. | Reprogramming network infrastructure in response to VM mobility |
US11748131B2 (en) * | 2019-11-20 | 2023-09-05 | Red Hat, Inc. | Network updates for virtual machine migration |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090292858A1 (en) * | 2008-05-23 | 2009-11-26 | Vmware, Inc. | Distributed Virtual Switch for Virtualized Computer Systems |
JP2011198299A (ja) * | 2010-03-23 | 2011-10-06 | Fujitsu Ltd | プログラム、コンピュータ、通信装置および通信制御システム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7257811B2 (en) * | 2004-05-11 | 2007-08-14 | International Business Machines Corporation | System, method and program to migrate a virtual machine |
US8468288B2 (en) * | 2009-12-10 | 2013-06-18 | International Business Machines Corporation | Method for efficient guest operating system (OS) migration over a network |
JP5463267B2 (ja) | 2010-11-19 | 2014-04-09 | 株式会社日立製作所 | 仮想計算機システムおよび仮想計算機の移行方法 |
-
2012
- 2012-08-22 JP JP2014531448A patent/JP5869133B2/ja active Active
- 2012-08-22 US US14/408,441 patent/US9323566B2/en active Active
- 2012-08-22 WO PCT/JP2012/071217 patent/WO2014030229A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090292858A1 (en) * | 2008-05-23 | 2009-11-26 | Vmware, Inc. | Distributed Virtual Switch for Virtualized Computer Systems |
JP2011198299A (ja) * | 2010-03-23 | 2011-10-06 | Fujitsu Ltd | プログラム、コンピュータ、通信装置および通信制御システム |
Also Published As
Publication number | Publication date |
---|---|
WO2014030229A1 (ja) | 2014-02-27 |
US20150121372A1 (en) | 2015-04-30 |
JPWO2014030229A1 (ja) | 2016-07-28 |
US9323566B2 (en) | 2016-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5869133B2 (ja) | ライブマイグレーションされた仮想計算機のネットワーク接続を復元する仮想計算機システム | |
US9893977B2 (en) | System and method for supporting live migration of virtual machines in a virtualization environment | |
CN104094229B (zh) | 用于基于扩展的主机信道适配器(hca)模型支持虚拟机的动态迁移的系统和方法 | |
JP5427574B2 (ja) | 仮想計算機の移動管理方法、前記移動管理方法を用いた計算機、前記移動管理方法を用いた仮想化機構および前記移動管理方法を用いた計算機システム | |
KR101242908B1 (ko) | 가상화된 컴퓨터 시스템들에 대한 분배된 가상 스위치 | |
US20150112944A1 (en) | Method, System, and Apparatus for Cloud Application Redundancy | |
JP2011198299A (ja) | プログラム、コンピュータ、通信装置および通信制御システム | |
CN104871493A (zh) | 高性能计算(hpc)网络中的通信信道故障切换 | |
US10182125B2 (en) | Server, physical switch and communication system | |
US9858096B2 (en) | Communication device migration method of extension function and communication system | |
JP2013210760A (ja) | 仮想化システム、スイッチコントローラ、ファイバチャネルスイッチ、マイグレーション方法、マイグレーションプログラム | |
JP6902527B2 (ja) | 高性能コンピューティング環境においてスイッチポートステータスのスケーラブルな表現をサポートするためのシステムおよび方法 | |
US8762485B2 (en) | Information system having computer and storage apparatus coupled to network | |
US10055241B1 (en) | Virtual machine aware fibre channel | |
CN113867886A (zh) | 一种分布式虚拟交换机端口镜像的方法、装置及存储介质 | |
JP2011141635A (ja) | ホスト間通信を使用した仮想サーバのデータの通信方法 | |
Guay et al. | Early experiences with live migration of SR-IOV enabled InfiniBand | |
CN106161439B (zh) | 一种信息处理方法及电子设备 | |
US11431569B2 (en) | Communication apparatus, system, rollback method, and non-transitory medium | |
JPWO2013171832A1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP2017195438A (ja) | 通信管理方法、通信管理プログラムおよび情報処理装置 | |
JP2011216110A (ja) | 中継装置及び中継方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151127 |
|
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: 20151222 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160106 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5869133 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |