JP5218252B2 - バススイッチ,コンピュータシステム及びコンピュータシステムの管理方法 - Google Patents

バススイッチ,コンピュータシステム及びコンピュータシステムの管理方法 Download PDF

Info

Publication number
JP5218252B2
JP5218252B2 JP2009106365A JP2009106365A JP5218252B2 JP 5218252 B2 JP5218252 B2 JP 5218252B2 JP 2009106365 A JP2009106365 A JP 2009106365A JP 2009106365 A JP2009106365 A JP 2009106365A JP 5218252 B2 JP5218252 B2 JP 5218252B2
Authority
JP
Japan
Prior art keywords
memory access
memory
server
access request
unit
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
Application number
JP2009106365A
Other languages
English (en)
Other versions
JP2010257209A (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 JP2009106365A priority Critical patent/JP5218252B2/ja
Publication of JP2010257209A publication Critical patent/JP2010257209A/ja
Application granted granted Critical
Publication of JP5218252B2 publication Critical patent/JP5218252B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、サーバ間で仮想マシンを移動させる技術に関する。
近年、ハイパーバイザと呼ばれる制御プログラムにより、1台の物理サーバ上に複数台の仮想マシンを構築し、各仮想マシンごとに任意のOS(Operating System)やアプリケーションを動作させる仮想化技術が実用化されている。仮想マシンは、ハイパーバイザにより仮想化されたメモリアドレスを利用するため、ハイパーバイザを介して入出力デバイス(I/Oデバイス)を制御しなければならず、I/Oデバイスをアクセスするときにオーバヘッドが生じて性能低下をもたらしている。このため、ハイパーバイザにより仮想化されたメモリアドレスとI/Oデバイスのメモリアドレスとを相互に変換する機構を備えることで、仮想マシンからI/Oデバイスを直接制御できるようにした技術が提案されている。
特開2008−21252号公報
ところで、仮想マシン環境では、例えば、夜間など稼働率が低下したときに、仮想マシンを1台の物理サーバに集約することで、省電力化を図ることが可能となる。しかし、I/Oデバイスを直接制御している仮想マシンでは、I/Oデバイスの状態をハイパーバイザが管理していないため、仮想マシンを稼動させたまま移動させることができなかった。
そこで、従来技術の問題点に鑑み、I/Oデバイスを直接制御している仮想マシンを稼動させたまま、サーバ間で仮想マシンを移動させることができるようにした技術を提供することを目的とする。
このため、本技術では、仮想マシンが稼動する複数のサーバと入出力デバイスとをスター型接続方式で接続するバススイッチに、入出力デバイスからのメモリアクセス要求を複製して同一内容のメモリアクセス要求を複数のサーバに送信する複製ユニットと、前記仮想マシンの移動元サーバから移動先サーバへと転送中のメモリアドレス領域に対するメモリアクセス要求を抑止する抑止ユニットと、割込みに係るメモリアクセス要求を複製対象から除外する複製除外ユニットと、を組み込む。また、本技術では、仮想マシンの移動指示があったときに、メモリアクセス要求が移動元サーバ及び移動先サーバに送信されるように複製ユニットを制御し、移動元サーバの仮想マシンに割り当てられているメモリの内容を移動先サーバに転送している間に、転送中のメモリアドレス領域に対するメモリアクセス要求が抑止されるように抑止ユニットを制御し、割込みに係るメモリアクセス要求が複製対象から除外されるように複製除外ユニットを制御する。
本技術によれば、入出力デバイスを直接制御する仮想マシンを稼動させたまま、仮想マシンを移動元サーバから移動先サーバに移動させることができる。
本技術を適用したコンピュータシステムの一実施形態図である。 PCI Expressスイッチの詳細構成図である。 PCI Expressスイッチの動作を説明するフローチャートである。 移動元サーバで実行される移動処理のフローチャートである。 移動元サーバで実行される移動処理のフローチャートである。 移動先サーバで実行される移動処理のフローチャートである。
以下、添付された図面を参照して本技術を詳述する。
図1は、本技術を適用したコンピュータシステムの一実施形態を示す。
2台の物理サーバ(以下「サーバ」という)10及び20は、スター型接続方式を採用するバススイッチとしてのPCI Expressスイッチ30(登録商標)を介して、ネットワークアダプタやハードディクスコントローラなどのI/Oデバイス40に接続される。サーバ10は、中央処理装置CPU,メモリMEM及びIOハブHUBを含む。また、サーバ10では、仮想化技術を具現化するハイパーバイザ12により、仮想的なコンピュータとしての少なくとも1台の仮想マシン(VM;Virtual Machine)14が構築される。仮想マシン14は、IOハブHUBに組み込まれたIOMMU(Input/Output Memory Management Unit)16を介して、ハイパーバイザ12により仮想化されたメモリアドレスを有するVMメモリ18とI/Oデバイス40との間でデータを直接授受できるようになっている。ここで、IOMMU16は、VMメモリ18のメモリアドレスとI/Oデバイス40のメモリアドレスを相互に変換するためのハードウエアである。サーバ20は、サーバ10と同一構成であるため、その説明は省略するものとする。また、サーバ10及び20は、仮想マシン制御のためハイパーバイザが使用する管理ネットワーク50に、NIC(Network Interface Controller)60を経由して接続されているものとする。
なお、制御手段の一例としてのハイパーバイザ12及び22は、CD−ROMなどのコンピュータ読取可能な記録媒体に記録されたコンピュータシステムの管理プログラムを、サーバ10及び20にインストールすることで実装される。
PCI Expressスイッチ30は、PCI−SIG(Peripheral Component Interconnect Special Interest Group)のMR−IOV(Multi-Root I/O Virtualization)規格に準拠したLSI(Large Scale Integration)であって、複数の物理サーバに接続可能となっている。また、前述したI/Oデバイス40も、PCI−SIGのMR−IOV規格に準拠したデバイスであって、複数の物理サーバに接続可能となっている。
PCI Expressスイッチ30は、図2に示すように、各サーバ10及び20にパケットを送受信するための入力バッファ30A及び出力バッファ30Bと、I/Oデバイス40にパケットを送受信するための入力バッファ30C及び出力バッファ30Dと、ルーティングユニット30Eと、を含む。入力バッファ30A及び30C並びに出力バッファ30B及び30Dには、送受信するパケットを一時的に蓄積するキューが備えられている。ルーティングユニット30Eは、サーバ10又は20とI/Oデバイス40との間、又は、2つのサーバ10及び20の間でパケットを送受信するルーティング制御を行う。また、PCI Expressスイッチ30は、仮想マシンを稼動させたたま物理サーバ間で移動させることができるようにすべく、パケット複製ユニット30F,出力抑止ユニット30G及び複製除外ユニット30Hを更に含む。
パケット複製ユニット30Fは、I/Oデバイス40からのメモリアクセス要求、即ち、メモリ書込要求パケット(以下「パケット」という)が入力バッファ30Cに到着したときに、サーバ10及び20に対して同一パケットを送信すべく、パケットを複製する機能を提供する。出力抑止ユニット30Gは、I/Oデバイス40からのパケットが入力バッファ30Cに到着したときに、仮想マシン14の移動元サーバから移動先サーバへと転送中のメモリアドレス領域に対するパケットが入力バッファ30Cから出力されることを抑止する機能を提供する。複製除外ユニット30Hは、パケット複製ユニット30Fにより複製されるパケットのうち、割込要求パケットを複製対象から除外する機能を提供する。割込要求パケットを複製対象から除外する機能は、例えば、パケットを複製するアドレス領域を指定して、パケットの複製を除外するアドレス領域を指定して、コンフィグレーションアクセスをトラックしてMSI/MSI−X(Message Signaled Interrupt)を認識して自動的に除外するなどで実装することができる。パケット複製ユニット30F,出力抑止ユニット30G及び複製除外ユニット30Hは、夫々、PCI Expressスイッチ30外部からの制御信号に応じて制御される。
そして、ハイパーバイザ12及び22は、PCI Expressスイッチ30に備えられたパケット複製ユニット30F,出力抑止ユニット30G及び複製除外ユニット30Hから提供される各機能を制御して、仮想マシンを稼動させたままの移動を実現する。このとき、パケット複製ユニット30F,出力抑止ユニット30G及び複製除外ユニット30Hから提供される各機能は、次のような形態で用いられる。なお、以下の説明では、サーバ10の仮想マシン14を稼動させたままサーバ20に移動させるものとする。
(1)パケット複製ユニット30Fが提供する複製機能
仮想マシン14を稼動させたままの移動では、移動中にも仮想マシン14及びI/Oデバイス40は動作を継続する。このため、ハイパーバイザ12及び22が協働して移動のための処理、例えば、VMメモリ18の内容をサーバ20に転送しているときにも、I/Oデバイス40から仮想マシン14のメモリ空間への書き込みを含んだメモリアクセスが発生する。このアクセスは、仮想マシン14とI/Oデバイス40との間で直接行われるものであり、ハイパーバイザ12が関与することができない。
そこで、PCI Expressスイッチ30に複製機能を設けることで、I/Oデバイス40からのメモリ書き込みは、移動元サーバ10と移動先サーバ20との両方に行なわれるようにする。このようにすると、ハイパーバイザ12が関与しないI/Oデバイス40からのメモリ書き込みも、移動元サーバ10と移動先サーバ20とでメモリ内容の同期がとれる。
(2)出力抑止ユニット30Gが提供する抑止機能
複製機能により、I/Oデバイス40からのメモリ書き込みを移動元サーバ10及び移動先サーバ20に行なったとしても、メモリ内容が不一致となる場合が想定される。例えば、移動元サーバ10のVMメモリ18からデータを読み出して移動先サーバ20に転送しているときに、I/Oデバイス40からのメモリ書き込みがあると、移動元サーバ10のVMメモリ18及び移動先サーバ20のVMメモリ28が上書きされる。その後、移動元サーバ10から移動先サーバ20にVMメモリ18のデータが到着すると、そのVMメモリ18は古いデータにより上書きされてしまうこととなる。
そこで、PCI Expressスイッチ30に抑止機能を設けることで、移動元サーバ10から移動先サーバ20へと転送中のメモリ領域を上書きするパケットの出力を抑止し、移動元サーバ10と移動先サーバ20のメモリ内容が不一致となることを回避する。
(3)複製除外ユニット30Hが提供する除外機能
CPUでは、特定アドレスに対するメモリ書き込みは、そのアドレス及びデータ内容に応じて割込みに変換するという機能が備えられている。仮想マシン14の移動中には、複製機能により、I/Oデバイス40からのメモリ書き込みは、移動元サーバ10及び移動先サーバ20に送信される。しかし、割込みは、移動元サーバ10及び移動先サーバ20の双方に送信することができない。なぜならば、仮想マシン14の移動中には、移動元サーバ10の仮想マシン14は割込みを処理できるが、移動先サーバ20の仮想マシン24は停止しているため割込みを処理できず、その起動後に割込みを処理することで、移動元及び移動先で二重に割込み処理してしまうおそれがあるためである。
そこで、PCI Expressスイッチ30に除外機能を設けることで、I/Oデバイス40からの割込みを複製対象から除外し、移動元サーバ10及び移動先サーバ20で二重に割込みが処理されないようにする。
図3は、PCI Expressスイッチ30が、I/Oデバイス40から入力バッファ30Cにパケットが到着したことを契機として実行する動作を示す。なお、図3に示すフローチャートは、各ユニットの動作を説明するものではなく、PCI Expressスイッチ30全体としてどのような動作が行われるかを説明するものである。
ステップ1(図では「S1」と略記する。以下同様。)において、PCI Expressスイッチ30が、パケットにより書き込まれるメモリ領域がロック中であるか否かを判定する。ここで、パケットにより書き込まれるメモリ領域がロック中であるか否かは、例えば、パケット内容と出力抑止ユニット30Gに入力される制御信号のロック情報(ロック中のメモリアドレスを示す情報)との比較から判定することができる。そして、PCI Expressスイッチ30が、メモリ領域がロック中であればステップ2へと進む一方(Yes)、メモリ領域がロック中でなければステップ5へと進む(No)。
ステップ2において、PCI Expressスイッチ30が、出力抑止ユニット30Gにより、入力バッファ30Cのキューからパケットが出力されることを抑止する。ここで、パケット出力が抑止されている間、入力バッファ30Cに到着したパケットは、キューに到着順に順次蓄積される。
ステップ3において、PCI Expressスイッチ30が、パケットにより書き込まれるメモリ領域のロックが解除されたか否かを判定する。ここで、メモリ領域のロックが解除されたか否かは、例えば、出力抑止ユニット30Gに制御信号が入力されなくなったか否かを介して判定することができる。そして、PCI Expressスイッチ30が、メモリ領域のロックが解除されたならばステップ4へと進む一方(Yes)、メモリ領域のロックが解除されていなければ待機する(No)。
ステップ4において、PCI Expressスイッチ30が、出力抑止ユニット30Gによるパケット出力の抑止を解除する。
ステップ5において、PCI Expressスイッチ30が、パケットの複製指示があるか否かを判定する。ここで、パケットの複製指示があるか否かは、例えば、パケット複製ユニット30Fに制御信号が入力されているか否かを介して判定することができる。そして、PCI Expressスイッチ30が、パケットの複製指示があればステップ6へと進む一方(Yes)、パケットの複製指示がなければステップ9へと進む(No)。
ステップ6において、PCI Expressスイッチ30が、パケットが複製対象であるか否かを判定する。ここで、パケットが複製対象であるか否かは、次のような3つの方法で判定することができる。第1の方法は、特定のアドレス領域に対するI/Oデバイス40からのパケットのみを複製対象とする、即ち、複製対象のパケットを指定する方法である。第2の方法は、特定のアドレス領域以外に対するI/Oデバイス40からのパケットのみを複製対象とする、即ち、複製対象から除外するパケットを指定する方法である。第3の方法は、サーバ10からのPCI Expressスイッチ30のコンフィグレーション設定動作を監視し、割込みに使用するメモリアドレスを検出し、検出されたアドレス領域に対するI/Oデバイス40からのパケットを複製対象から除外する方法である。そして、PCI Expressスイッチ30が、パケットが複製対象であればステップ7へと進む一方(Yes)、パケットが複製対象でなければステップ9へと進む(No)。
ステップ7において、PCI Expressスイッチ30が、パケット複製ユニット30Fにより、入力バッファ30Cに到着したパケットを複製する。ここで、複製したパケットには、入力バッファ30Cに到着したパケットとは異なる宛先が設定される。
ステップ8において、PCI Expressスイッチ30が、入力バッファ30Cに到着したパケット、及び、パケット複製ユニット30Fにより複製されたパケットを、各宛先のサーバ10及び20に送出する。
ステップ9において、PCI Expressスイッチ30が、入力バッファ30Cに到着したパケットを、宛先のサーバ10又は20に送出する。
かかるPCI Expressスイッチ30によれば、I/Oデバイス40から入力バッファ30Cにパケットが到着すると、そのパケットにより書き込まれるメモリ領域がロック中であるか否か判定される。そして、メモリ領域がロック中であれば、そのロックが解除されるまで、入力バッファ30Cのキューからパケットが出力されることが抑止される。また、パケットの複製指示があり、かつ、そのパケットが複製対象(割込要求パケット以外)であれば、パケットが複製された後、各パケットの宛先にパケットが送出される。一方、パケットの複製指示がなく、又は、そのパケットが複製対象でない割込要求であれば、I/Oデバイス40から到着したパケットが宛先に送出される。
次に、かかるコンピュータシステムにおいて、仮想マシンを移動させる移動処理内容を説明する。
図4及び図5は、移動元サーバ10のハイパーバイザ12が、管理者などから仮想マシンの移動指示があったことを契機として実行する移動処理を示す。なお、仮想マシンの移動指示には、少なくとも、サーバ20に仮想マシンを移動させることを示す移動先情報が含まれている。
ステップ11では、ハイパーバイザ12が、移動指示に含まれる移動先情報により特定される移動先サーバ20のハイパーバイザ22に、仮想マシン移動を開始することを通知する。
ステップ12では、ハイパーバイザ12が、移動先サーバ20から応答があったか否かを判定する。そして、ハイパーバイザ12が、移動先サーバ20から応答があれば処理をステップ13へと進める一方(Yes)、移動先サーバ20から応答がなければ処理を待機させる(No)。
ステップ13では、ハイパーバイザ12が、PCI Expressスイッチ30にパケット複製を指示、即ち、PCI Expressスイッチ30のパケット複製ユニット30Fに制御信号を出力する。
ステップ14では、ハイパーバイザ12が、仮想マシン14のVMメモリ18を分割しつつ移動先サーバ20のVMメモリ28に転送するために、VMメモリ18へのデータ書き込みをロックするメモリロック領域を設定する。ここで、メモリロック領域の大きさは、例えば、1つのパケットに含むことができるデータサイズに応じて決定すればよい。また、ハイパーバイザ12は、PCI Expressスイッチ30の出力抑止ユニット30Gに対して、メモリロック領域を特定するロック情報を含んだ制御信号を出力する。
ステップ15では、ハイパーバイザ12が、VMメモリ18のメモリロック領域からデータを読み出す。
ステップ16では、ハイパーバイザ12が、管理ネットワーク50を介して、VMメモリ18から読み出したデータをパケット形式で移動先サーバ20に送信する。
ステップ17では、ハイパーバイザ12が、移動先サーバ20から応答があったか否かを判定する。そして、ハイパーバイザ12が、移動先サーバ20から応答があれば処理をステップ18へと進める一方(Yes)、移動先サーバ20から応答がなければ処理を待機させる(No)。
ステップ18では、ハイパーバイザ12が、VMメモリ18の転送が完了したか否かを判定する。ここで、VMメモリ18の転送が完了したか否かは、例えば、VMメモリ18の最後のアドレスまでデータを転送したか否かを介して判定することができる。そして、ハイパーバイザ12が、VMメモリ18の転送が完了したならば処理をステップ19へと進める一方(Yes)、VMメモリ18の転送が完了していなければ処理をステップ14へと戻す(No)。
ステップ19では、ハイパーバイザ12が、移動元サーバ10で稼動していた仮想マシン14を停止させる。
ステップ20では、ハイパーバイザ12が、PCI Expressスイッチ30に対して、I/Oデバイス40から入力バッファ30Cに到着したパケットを移動先サーバ20に転送することを指示するための切替指示を出力する。
ステップ21では、ハイパーバイザ12が、ステップ14〜ステップ18においてVMメモリ18を転送していた間に、移動元サーバ10のVMメモリ18に仮想マシン14が上書きした上書領域を検出する。ここで、上書領域は、例えば、移動元サーバ10のCPUが備えるページテーブルに付随しているメモリの上書きフラグを参照することで、特定することができる。
ステップ22では、ハイパーバイザ12が、VMメモリ18の上書領域から、所定サイズのデータを読み出す。ここで、所定サイズは、例えば、1つのパケットに含むことができるデータサイズに応じて決定すればよい。
ステップ23では、ハイパーバイザ12が、管理ネットワーク50を介して、VMメモリ18から読み出したデータをパケット形式で移動先サーバ20に送信する。
ステップ24では、ハイパーバイザ12が、移動先サーバ20から応答があったか否かを判定する。そして、ハイパーバイザ12が、移動先サーバ20から応答があれば処理をステップ25へと進める一方(Yes)、移動先サーバ20から応答がなければ処理を待機させる(No)。
ステップ25では、ハイパーバイザ12が、上書領域のメモリ転送が完了したか否かを判定する。ここで、上書領域のメモリ転送が完了したか否かは、例えば、上書領域の最後のアドレスまでデータを転送したか否かを介して判定することができる。そして、ハイパーバイザ12が、上書領域のメモリ転送が完了したならば処理をステップ26へと進める一方(Yes)、上書領域のメモリ転送が完了していなければ処理をステップ22へと戻す(No)。
ステップ26では、ハイパーバイザ12が、移動元サーバ10から仮想マシン14のプロセッサ状態を取り出す。ここで、プロセッサ状態とは、例えば、仮想マシン14の各種レジスタの状態,プログラムカウンタの値などを意味する。
ステップ27では、ハイパーバイザ12が、管理ネットワーク50を介して、移動先サーバ20にパケット形式でプロセッサ状態を送信する。
ステップ28では、ハイパーバイザ12が、移動先サーバ20から応答があったか否かを判定する。そして、ハイパーバイザ12が、移動先サーバ20から応答があれば処理をステップ29へと進める一方(Yes)、移動先サーバ20から応答がなければ処理を待機させる(No)。
ステップ29では、ハイパーバイザ12が、移動元サーバ10から仮想マシン14を削除する。
図6は、移動先サーバ20のハイパーバイザ22が、移動元サーバ10から仮想マシン移動を開始する通知を受けたことを契機として実行する移動処理を示す。
ステップ31では、ハイパーバイザ22が、仮想マシン24が使用するVMメモリ28をメモリMEM上に確保する。
ステップ32では、ハイパーバイザ22が、VMメモリ28のメモリアドレスとI/Oデバイス40のメモリアドレスを相互に変換可能とすべく、IOハブHUBに組み込まれたIOMMU26を設定する。
ステップ33では、ハイパーバイザ22が、管理ネットワーク50を介して、移動元サーバ10に仮想サーバの移動準備が完了したことを示す応答を返信する。
ステップ34では、ハイパーバイザ22が、移動元サーバ10からパケットを受信したか否か、即ち、移動元サーバ10のVMメモリ18のデータを受信したか否かを判定する。そして、ハイパーバイザ22が、移動元サーバ10からパケットを受信したならば処理をステップ35へと進める一方(Yes)、移動元サーバ10からパケットを受信していなければ処理を待機させる(No)。なお、ハイパーバイザ22は、移動元サーバ10から長時間パケットが到着しないときに、処理が無限ループに陥ることを回避すべく、所定時間経過したときにループを抜け出るタイムアウト処理を平行して行うことが望ましい。
ステップ35では、ハイパーバイザ22が、VMメモリ28に受信データを書き込む。
ステップ36では、ハイパーバイザ22が、PCI Expressスイッチ30の出力抑止ユニット30Gに対して、パケット出力抑止を解除する制御信号を出力する。
ステップ37では、ハイパーバイザ22が、管理ネットワーク50を介して、移動元サーバ10にデータ書き込みが完了したことを示す応答を返信する。
ステップ38では、ハイパーバイザ22が、移動元サーバ10からプロセッサ状態を受信したか否かを判定する。そして、ハイパーバイザ22が、プロセッサ状態を受信したならば処理をステップ39へと進める一方(Yes)、プロセッサ状態を受信していなければ処理をステップ34へと戻す(No)。
ステップ39では、ハイパーバイザ22が、受信したプロセッサ状態に基づいて、仮想マシン24のプロセッサ状態を設定する。これにより、移動元サーバ10の仮想マシン14と移動先サーバ20の仮想マシン24との間で、プロセッサ状態の同期をとることができる。
ステップ40では、ハイパーバイザ22が、移動先サーバ20の仮想マシン24を起動させる。
ステップ41では、ハイパーバイザ22が、管理ネットワーク50を介して、移動先サーバ10に仮想マシン24が起動されたことを示す応答を返信する。
かかる移動処理によれば、移動元サーバ10から移動先サーバ20に仮想マシン14を移動するときに、移動先サーバ20において、仮想マシン24が使用するVMメモリ28の領域が確保されると共に、仮想マシン24からI/Oデバイス40を直接制御するためのIOMMU26が設定される。また、移動元サーバ10から移動先サーバ20に対して、移動元サーバ10の仮想マシン14が使用していたVMメモリ18が分割されつつ転送される。
移動元サーバ10から移動先サーバ20へのVMメモリ18の転送が完了すると、移動元サーバ10の仮想マシン14が停止され、I/Oデバイス40からPCI Expressスイッチ30に到着したパケットは、移動先サーバ20へと転送され始める。また、移動元サーバ10から移動先サーバ20にVMメモリ18を転送している間、移動元サーバ10においてデータが上書きされたVMメモリ18の上書領域は、VMメモリ18の転送が完了した後、移動元サーバ10から移動先サーバ20に分割されつつ転送される。
そして、移動元サーバ10から移動先サーバ20への上書領域の転送が完了すると、移動元サーバ10の仮想マシン14のプロセッサ状態が移動先サーバ20へと送信される。プロセッサ状態を受信した移動先サーバ20では、移動元サーバ10の仮想マシン14のプロセッサ状態を再現すべく、仮想マシン24のプロセッサ状態が設定されると共に、仮想マシン24が起動される。一方、移動元サーバ10では、仮想マシン14が削除される。
よって、ハイパーバイザ12及び22とPCI Expressスイッチ30とが協働することで、I/Oデバイス40を直接制御する仮想マシン14を稼動させたまま、仮想マシン14を移動元サーバ20から移動先サーバ20に移動させることができる。
なお、前記実施形態で説明したコンピュータシステムは、2台のサーバを備えているが、3台以上のサーバを備えていてもよい。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)仮想マシンが稼動する複数のサーバと入出力デバイスとをスター型接続方式で接続するバススイッチであって、前記入出力デバイスから一のサーバへのメモリアクセス要求を複製して、複数のサーバに同一内容のメモリアクセス要求を送信する複製ユニットと、前記仮想マシンの移動元サーバから移動先サーバへと転送中のメモリアドレス領域に対するメモリアクセス要求を抑止する抑止ユニットと、前記複製ユニットにより複製されるメモリアクセス要求のうち、割込みに係るメモリアクセス要求を複製対象から除外する複製除外ユニットと、を含むことを特徴とするバススイッチ。
(付記2)前記抑止ユニットは、前記入出力デバイスから一のサーバへのメモリアクセス要求を到着順にキューに順次蓄積することで、前記メモリアクセス要求を抑止することを特徴とする付記1記載のバススイッチ。
(付記3)前記複製除外ユニットは、指定アドレス領域に対するメモリアクセス要求を複製対象から除外することを特徴とする付記1又は付記2に記載のバススイッチ。
(付記4)前記複製除外ユニットは、指定アドレス領域以外に対するメモリアクセス要求を複製対象から除外することを特徴とする付記1又は付記2に記載のバススイッチ。
(付記5)前記複製除外ユニットは、前記一のサーバからのコンフィグレーション設定動作を監視し、割込みに係るメモリアクセス要求を処理するアドレス領域を検出し、検出されたアドレス領域に対するメモリアクセス要求を複製対象から除外することを特徴とする付記1又は付記2に記載のバススイッチ。
(付記6)仮想マシンが稼動する複数のサーバと入出力デバイスとをスター型接続方式で接続するバススイッチと、前記バススイッチを制御する制御手段と、を含み、前記バススイッチは、前記入出力デバイスから一のサーバへのメモリアクセス要求を複製して、複数のサーバに同一内容のメモリアクセス要求を送信する複製ユニットと、前記仮想マシンの移動元サーバから移動先サーバへと転送中のメモリアドレス領域に対するメモリアクセス要求を抑止する抑止ユニットと、前記複製ユニットにより複製されるメモリアクセス要求のうち、割込みに係るメモリアクセス要求を複製対象から除外する複製除外ユニットと、を備える一方、前記制御手段は、前記仮想マシンの移動指示があったときに、前記メモリアクセス要求が移動元サーバ及び移動先サーバに送信されるように前記複製ユニットを制御した後、前記移動元サーバの仮想マシンに割り当てられているメモリの内容を移動先サーバに転送している間に、転送中のメモリアドレス領域に対するメモリアクセス要求が抑止されるように前記抑止ユニットを制御すると共に、割込みに係るメモリアクセス要求が複製対象から除外されるように前記複製除外ユニットを制御することを特徴とするコンピュータシステム。
(付記7)仮想マシンが稼動する複数のサーバと入出力デバイスとの間に介在し、前記入出力デバイスから一のサーバへのメモリアクセス要求を複製して、複数のサーバに同一内容のメモリアクセス要求を送信する複製ユニットと、前記仮想マシンの移動元サーバから移動先サーバへと転送中のメモリアドレス領域に対するメモリアクセス要求を抑止する抑止ユニットと、前記複製ユニットにより複製されるメモリアクセス要求のうち、割込みに係るメモリアクセス要求を複製対象から除外する複製除外ユニットと、を備えたバススイッチを制御するコンピュータが、前記仮想マシンの移動指示があったときに、前記メモリアクセス要求が移動元サーバ及び移動先サーバに送信されるように前記複製ユニットを制御するステップと、前記移動元サーバの仮想マシンに割り当てられているメモリの内容を移動先サーバに転送している間に、転送中のメモリアドレス領域に対するメモリアクセス要求が抑止されるように前記抑止ユニットを制御するステップと、割込みに係るメモリアクセス要求が複製対象から除外されるように前記複製除外ユニットを制御するステップと、を実行することを特徴とするコンピュータシステムの管理方法。
(付記8)仮想マシンが稼動する複数のサーバと入出力デバイスとの間に介在し、前記入出力デバイスから一のサーバへのメモリアクセス要求を複製して、複数のサーバに同一内容のメモリアクセス要求を送信する複製ユニットと、前記仮想マシンの移動元サーバから移動先サーバへと転送中のメモリアドレス領域に対するメモリアクセス要求を抑止する抑止ユニットと、前記複製ユニットにより複製されるメモリアクセス要求のうち、割込みに係るメモリアクセス要求を複製対象から除外する複製除外ユニットと、を備えたバススイッチを制御するコンピュータに、前記仮想マシンの移動指示があったときに、前記メモリアクセス要求が移動元サーバ及び移動先サーバに送信されるように前記複製ユニットを制御するステップと、前記移動元サーバの仮想マシンに割り当てられているメモリの内容を移動先サーバに転送している間に、転送中のメモリアドレス領域に対するメモリアクセス要求が抑止されるように前記抑止ユニットを制御するステップと、割込みに係るメモリアクセス要求が複製対象から除外されるように前記複製除外ユニットを制御するステップと、を実現させるためのコンピュータシステムの管理プログラム。
10 サーバ(移動元サーバ)
12 ハイパーバイザ
14 仮想マシン
18 VMメモリ
20 サーバ(移動先サーバ)
22 ハイパーバイザ
24 仮想マシン
28 VMメモリ
30 PCI Expressスイッチ
30F パケット複製ユニット
30G 出力抑止ユニット
30H 複製除外ユニット
40 I/Oデバイス

Claims (5)

  1. 仮想マシンが稼動する複数のサーバと入出力デバイスとをスター型接続方式で接続するバススイッチであって、
    前記入出力デバイスから一のサーバへのメモリアクセス要求を複製して、複数のサーバに同一内容のメモリアクセス要求を送信する複製ユニットと、
    前記仮想マシンの移動元サーバから移動先サーバへと転送中のメモリアドレス領域に対するメモリアクセス要求を抑止する抑止ユニットと、
    前記複製ユニットにより複製されるメモリアクセス要求のうち、割込みに係るメモリアクセス要求を複製対象から除外する複製除外ユニットと、
    を含むことを特徴とするバススイッチ。
  2. 前記抑止ユニットは、前記入出力デバイスから一のサーバへのメモリアクセス要求を到着順にキューに順次蓄積することで、前記メモリアクセス要求を抑止することを特徴とする請求項1記載のバススイッチ。
  3. 前記複製除外ユニットは、指定アドレス領域に対するメモリアクセス要求を複製対象から除外することを特徴とする請求項1又は請求項2に記載のバススイッチ。
  4. 仮想マシンが稼動する複数のサーバと入出力デバイスとをスター型接続方式で接続するバススイッチと、
    前記バススイッチを制御する制御手段と、
    を含み、
    前記バススイッチは、前記入出力デバイスから一のサーバへのメモリアクセス要求を複製して、複数のサーバに同一内容のメモリアクセス要求を送信する複製ユニットと、前記仮想マシンの移動元サーバから移動先サーバへと転送中のメモリアドレス領域に対するメモリアクセス要求を抑止する抑止ユニットと、前記複製ユニットにより複製されるメモリアクセス要求のうち、割込みに係るメモリアクセス要求を複製対象から除外する複製除外ユニットと、を備える一方、
    前記制御手段は、前記仮想マシンの移動指示があったときに、前記メモリアクセス要求が移動元サーバ及び移動先サーバに送信されるように前記複製ユニットを制御した後、前記移動元サーバの仮想マシンに割り当てられているメモリの内容を移動先サーバに転送している間に、転送中のメモリアドレス領域に対するメモリアクセス要求が抑止されるように前記抑止ユニットを制御すると共に、割込みに係るメモリアクセス要求が複製対象から除外されるように前記複製除外ユニットを制御すること
    を特徴とするコンピュータシステム。
  5. 仮想マシンが稼動する複数のサーバと入出力デバイスとの間に介在し、前記入出力デバイスから一のサーバへのメモリアクセス要求を複製して、複数のサーバに同一内容のメモリアクセス要求を送信する複製ユニットと、前記仮想マシンの移動元サーバから移動先サーバへと転送中のメモリアドレス領域に対するメモリアクセス要求を抑止する抑止ユニットと、前記複製ユニットにより複製されるメモリアクセス要求のうち、割込みに係るメモリアクセス要求を複製対象から除外する複製除外ユニットと、を備えたバススイッチを制御するコンピュータが、
    前記仮想マシンの移動指示があったときに、前記メモリアクセス要求が移動元サーバ及び移動先サーバに送信されるように前記複製ユニットを制御するステップと、前記移動元サーバの仮想マシンに割り当てられているメモリの内容を移動先サーバに転送している間に、転送中のメモリアドレス領域に対するメモリアクセス要求が抑止されるように前記抑止ユニットを制御するステップと、割込みに係るメモリアクセス要求が複製対象から除外されるように前記複製除外ユニットを制御するステップと、
    を実行することを特徴とするコンピュータシステムの管理方法。
JP2009106365A 2009-04-24 2009-04-24 バススイッチ,コンピュータシステム及びコンピュータシステムの管理方法 Active JP5218252B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009106365A JP5218252B2 (ja) 2009-04-24 2009-04-24 バススイッチ,コンピュータシステム及びコンピュータシステムの管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009106365A JP5218252B2 (ja) 2009-04-24 2009-04-24 バススイッチ,コンピュータシステム及びコンピュータシステムの管理方法

Publications (2)

Publication Number Publication Date
JP2010257209A JP2010257209A (ja) 2010-11-11
JP5218252B2 true JP5218252B2 (ja) 2013-06-26

Family

ID=43318043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009106365A Active JP5218252B2 (ja) 2009-04-24 2009-04-24 バススイッチ,コンピュータシステム及びコンピュータシステムの管理方法

Country Status (1)

Country Link
JP (1) JP5218252B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5401679B2 (ja) * 2009-02-19 2014-01-29 株式会社日立製作所 計算機システム、管理方法及び管理サーバ
JP5585820B2 (ja) * 2010-04-14 2014-09-10 株式会社日立製作所 データ転送装置、計算機システム及びメモリコピー装置
CN102073462B (zh) 2010-11-29 2013-04-17 华为技术有限公司 虚拟存储迁移方法、系统和虚拟机监控器
WO2012104940A1 (ja) * 2011-02-04 2012-08-09 パナソニック株式会社 仮想計算機システム、デバイス共有制御方法、プログラム、及び集積回路
JP5742387B2 (ja) * 2011-03-31 2015-07-01 富士通株式会社 情報処理システム、及びi/oスイッチ装置
JP2015153279A (ja) * 2014-02-18 2015-08-24 三菱電機株式会社 プラント制御装置
JP6256086B2 (ja) 2014-02-19 2018-01-10 富士通株式会社 情報処理システム、移動制御方法および移動制御プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03184128A (ja) * 1989-12-13 1991-08-12 Yokogawa Electric Corp 二重化計算機システム
US5680640A (en) * 1995-09-01 1997-10-21 Emc Corporation System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state
JPH11184799A (ja) * 1997-12-19 1999-07-09 Toshiba Corp メモリデータ転送方法ならびに装置
US6868442B1 (en) * 1998-07-29 2005-03-15 Unisys Corporation Methods and apparatus for processing administrative requests of a distributed network application executing in a clustered computing environment
JP4167089B2 (ja) * 2003-01-17 2008-10-15 日本電信電話株式会社 サーバシステム及びクライアントサーバ型システムにおける誤り隠蔽方法
US7257811B2 (en) * 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US8924499B2 (en) * 2004-12-14 2014-12-30 International Business Machines Corporation Operating system migration with minimal storage area network reconfiguration
JP4394624B2 (ja) * 2005-09-21 2010-01-06 株式会社日立製作所 計算機システム及びi/oブリッジ
JP2008021252A (ja) * 2006-07-14 2008-01-31 Hitachi Ltd 計算機システム及びアドレス割当方法

Also Published As

Publication number Publication date
JP2010257209A (ja) 2010-11-11

Similar Documents

Publication Publication Date Title
JP5218252B2 (ja) バススイッチ,コンピュータシステム及びコンピュータシステムの管理方法
EP3985504B1 (en) Virtual machine migration
US8949498B2 (en) Interrupt handling in a virtual machine environment
JP5262404B2 (ja) 複合型計算機及び複合型計算機の制御方法
US20190012110A1 (en) Information processing apparatus, and control method of information processing system
WO2015068239A1 (ja) 計算機システムおよびデータ制御方法
JP5583849B2 (ja) ポート共有ハードウェアを介した記憶装置への帯域外アクセス
JPH09185594A (ja) 直接バルク・データ転送
JP2008009982A (ja) メモリ・アドレスの変換およびピン止めのための方法およびシステム
JP2007286946A (ja) 計算機システム、アクセス制御方法及び管理計算機
JP2008225753A (ja) 計算機システム、アクセス制御方法及び管理計算機
US11861390B1 (en) Transparent disk caching for virtual machines
JP5561334B2 (ja) データ転送装置
JP2004234114A (ja) 計算機システム、計算機装置、オペレーティングシステムの移送方法及びプログラム
US11336725B2 (en) Communication apparatus, communication method, and computer program product
US10565135B2 (en) Information processing device, information processing method, main processor core, program, information processing method, and sub processor core
EP2785018A2 (en) Information processing device, transmission control method, and transmission control program
US11625199B2 (en) Communication apparatus, communication method, and computer program product
US8688925B2 (en) Method for communication between two memory-related processes in a computer system, corresponding software product, computer system and printing system
US20170366638A1 (en) Method of controlling a virtual machine, information processing apparatus and non-transitory computer-readable storage medium
US20140052947A1 (en) Data storage device and method of controlling data storage device
JP2022536689A (ja) 入出力メモリ管理ユニットによるゲストオペレーティングシステムのバッファとログへのアクセス
JP5636695B2 (ja) フォールトトレラントシステム及び仮想マシン構築方法
JP2011159165A (ja) 並列計算機システム、並列計算機システムの制御方法及び制御プログラム
JP2011165042A (ja) 動的バックアップ機能を有する電子計算機、動的バックアップ方法及びそのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120814

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120927

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130218

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160315

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5218252

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150