JP2017084133A - 仮想計算機間の通信経路制御方法および計算機システム - Google Patents

仮想計算機間の通信経路制御方法および計算機システム Download PDF

Info

Publication number
JP2017084133A
JP2017084133A JP2015212292A JP2015212292A JP2017084133A JP 2017084133 A JP2017084133 A JP 2017084133A JP 2015212292 A JP2015212292 A JP 2015212292A JP 2015212292 A JP2015212292 A JP 2015212292A JP 2017084133 A JP2017084133 A JP 2017084133A
Authority
JP
Japan
Prior art keywords
virtual
communication
virtual machine
communication path
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015212292A
Other languages
English (en)
Other versions
JP6579916B2 (ja
Inventor
水野 和彦
Kazuhiko Mizuno
和彦 水野
俊臣 森木
Toshiomi Moriki
俊臣 森木
貴之 今田
Takayuki Imada
貴之 今田
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2015212292A priority Critical patent/JP6579916B2/ja
Priority to US15/244,144 priority patent/US10114667B2/en
Publication of JP2017084133A publication Critical patent/JP2017084133A/ja
Application granted granted Critical
Publication of JP6579916B2 publication Critical patent/JP6579916B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】
仮想サーバ間の通信性能を維持させ,仮想サーバの構成管理を容易化させ,仮想サーバ間の通信経路を容易に切り替えられることである。
【解決手段】
複数の仮想計算機間の通信経路制御方法であって,仮想計算機は,一以上のCPUと,一以上のメモリと,一以上のI/Oデバイスを備えた一以上の物理計算機で稼働するものである。この方法では,通信経路変更指示を契機に,第1の仮想計算機からの通信経路の変更先となる,第2の仮想計算機が直接または間接的に通信する通信用ポートに,第1の仮想計算機の実バッファのエイリアスである仮想バッファを割り当て,仮想バッファが参照するメモリの領域をメモリアドレス変換することにより,第1の仮想計算機の参照するメモリの領域を,第2の仮想計算機の参照するメモリの領域に関連付けることで,第1の仮想計算機と第2の仮想計算機間の通信経路を生成する。
【選択図】 図10

Description

本発明は,仮想サーバシステムの通信経路制御技術に関し,特に仮想サーバ間の相互通信時における通信経路の制御技術に関する。
近年,多くの企業が各種業務のクラウドへの移行を模索しており,これらがIT新時代のマーケットを牽引して継続成長している。その理由としては,システムの短期構築に加えて,メンテナンスを含めたIT投資効率化や負荷低減等が期待されているためである。このような状況下,VMware社がネットワーク制御をソフトウェアで行うSDN(Software Defined Networking)の考え方をデータセンタにまで拡張することで,データセンタ自体を仮想化するコンセプトSDDC(Software Defined Data Center)を提唱し,注目を集めている。この狙いは,可能な限りソフトウェアでITインフラを抽象化し,その上で仮想化された柔軟なサービスを提供,更には,ITインフラの導入と拡張の自動化,サービスレベル制御の自動化を推進することにある。
上述したSDDCでは,(仮想サーバ上の)ソフトウェアと,実際に処理を行うハードウェアを分離することで柔軟性が向上されている。そのため,仮想環境では,仮想サーバの稼働位置によらずシームレスにソフトウェアを実行できることが求められる。特に,昨今のハイパバイザは稼働中の仮想サーバの移行(ライブマイグレーション)に対応する製品が多い。そこで,仮想サーバのライブマイグレーション等により仮想サーバ間の通信経路が変更される場合であっても,仮想サーバ上のアプリケーション層からは意識させないシームレスに通信できることが望ましい。
一方,通信性能としては,10Gbps超の高速・広帯域通信が求められている。そのため,仮想環境では,仮想化によるオーバヘッドによる通信性能の低下抑止を狙い,メモリに直接データを通信する(ゼロコピー)RDMA(Remote Direct Memory Access)技術やSR−IOV(Single Root I/O Virtualization)等の高速I/Oデバイスの利用等により通信性能を向上させている。また,仮想サーバ間のネットワーク構成としてスター型構成やメッシュ型構成(P2P通信)等が利用されているが,仮想サーバ間で相互に通信を行うことで,無駄な通信が少ないP2P(Peer To Peer)通信が活用されつつある。
このような仮想サーバ間の通信制御を行う技術分野の背景技術としては,主メモリに対して2つの論理的なオブジェクトを割り当てたポートを仮想サーバに割り当て,ポートを回線障害に切り替えることで通信を継続させる技術(特許文献1)が提供されている。具体的には,RDMAを利用した通信経路を冗長化させ,冗長化に合わせて仮想サーバに複数のポートを割り当てる。これにより,回線障害が発生した場合に,障害対象の回線に接続されるポートの利用を停止し,冗長化された回線に接続されるポートを利用することで通信経路を変更することが可能となる。
また,仮想サーバ間の通信方式として,XenLoop(非特許文献1)が提供されている(3章”DESIGN AND IMPLEMENTATION”)。このXenLoopは,通信プロトコルスタックのIPレイヤとデータリンクレイヤの間で実現されたドライバである。そのため,XenLoopはアプリケーションから送信されたデータをパケットの形式で受信する。例えば,送信先の仮想サーバが同一のハイパバイザ上に存在するならばハイパバイザの通信チャネル(Xenloop channel)を利用して送信し,そうでなければそのままデータリンクレイヤにパケットを渡す。
特開2010―86227号公報
Jian Wang,Kwame−Lante Wright,and Kartik Gopalan,"XenLoop: A Transparent High Performance Inter-VM Network Loopback",[online],[2015年6月23日検索],インターネット<URL:http://osnet.cs.binghamton.edu/publications/wang08xenloop.pdf>
特許文献1に示したように仮想サーバに複数の通信用ポートを割り当て,この通信用ポートを切り替えることで通信経路を変更する技術では,RDMA等の高速通信を利用可能であり,かつ,仮想サーバ間の通信経路を切り替えた場合でも,仮想サーバ上のソフトウェアはシームレスに通信を行うことができる。しかし,本技術では,通信経路毎にポートを仮想サーバに割り当てる必要があるため,仮想サーバの構成変更時には,その都度,通信経路に合わせた通信用ポートを仮想サーバに割り当てる制御や割り当てた通信用ポートの管理が必要となるため,仮想サーバの構成管理を容易に行えない課題がある。
非特許文献1に示したように送信先の仮想サーバの搭載位置に合わせて通信経路を変更する技術では,仮想サーバを他の物理計算機に移行(マイグレーション)させた場合であっても仮想サーバ上のソフトウェアはシームレスに通信することができる。しかし,この通信処理では,仮想環境のハイパバイザであるXen(登録商標)のカーネルモジュールの変更(ヘッダファイルの変更やコンパイル処理等)が必要となるため仮想サーバ間の通信経路を容易に変更することが出来ない課題がある。
本発明の目的は,上記課題を解決し,仮想サーバ間の通信性能を維持させ,仮想サーバの構成管理を容易化させ,仮想サーバ間の通信経路を容易に切り替えられることである。
本願は,上記課題を解決する手段を含んでいるが,その一例を挙げるならば,
複数の仮想計算機間の通信経路制御方法であって,仮想計算機は,一以上のCPUと,一以上のメモリと,一以上のI/Oデバイスを備えた一以上の物理計算機で稼働するものである。この方法では,通信経路変更指示を契機に,第1の仮想計算機からの通信経路の変更先となる,第2の仮想計算機が直接または間接的に通信する通信用ポートに,第1の仮想計算機の実バッファのエイリアスである仮想バッファを割り当て,仮想バッファが参照するメモリの領域をメモリアドレス変換することにより,第1の仮想計算機の参照するメモリの領域を,第2の仮想計算機の参照するメモリの領域に関連付けることで,第1の仮想計算機と第2の仮想計算機間の通信経路を生成する。
本発明の具体的な構成例では,物理計算機は,仮想計算機を制御するハイパバイザを有し,ハイパバイザは,仮想計算機およびI/Oデバイスに割り当てる,実バッファと仮想バッファを制御する,バッファ制御部を備える。また,物理計算機が搭載するI/Oデバイスへの通信処理を制御する,コネクション制御部を備える。また,仮想計算機間の通信経路を記録し通信用ポート情報を含むLPAR間通信テーブル,および,仮想計算機の位置情報を記録しメモリアドレス情報を含む稼働位置情報テーブルを保有するメモリ管理部を有する。通信経路変更指示が第1の物理計算機で稼働する第1の仮想計算機と,第1の物理計算機で稼働する第2の仮想計算機で相互に通信する通信経路に変更する指示であれば,第1の仮想計算機と第2の仮想計算機のメモリアドレス情報と,第1の仮想計算機と第2の仮想計算機の通信用ポート情報から,仮想バッファの第2の仮想計算機の通信用ポートへの割り当て,および,アドレス変換を行うことで,第1の仮想計算機と第2の仮想計算機の通信経路に共有メモリを利用することができる。
本発明の他の具体的な例では,通信経路変更指示が第1の物理計算機で稼働する第1の仮想計算機と,第1の物理計算機以外の第2の物理計算機で稼働する第3の仮想計算機で相互に通信する通信経路に変更する指示の場合を規定する。この例では,第1の仮想計算機と第1の物理計算機のメモリアドレス情報と,第1の仮想計算機と第1の物理計算機の通信用ポート情報から,仮想バッファの第1の物理計算機の通信用ポートへの割り当て,および,アドレス変更を行うことで,第1の仮想計算機が利用するメモリの領域を,第2の物理計算機の第3の仮想計算機に通信する通信経路を生成する。
本発明の具体的な例では,通信経路変更指示は,管理サーバからの指示により実行されてもよい。管理サーバは,仮想計算機間の通信経路を変更する設定画面を有し,設定画面は,送信元と送信先となる仮想計算機,および,仮想計算機間の通信手段を選択することにより,仮想計算機間の通信経路を変更したことを示す結果を表示する。
本発明の他の一側面は,一以上のCPUと,一以上のメモリと,一以上のI/Oデバイスを備えた一以上の物理計算機で稼働する一以上の仮想計算機を搭載する計算機システムである。このシステムでは,物理計算機は,仮想計算機を制御するハイパバイザを有し,ハイパバイザは,仮想計算機およびI/Oデバイスに割り当てる実バッファと仮想バッファを制御するバッファ制御部を有する。バッファ制御部は,送信側仮想計算機と受信側仮想計算機との間の通信を,送信側仮想計算機と他の仮想計算機との間の通信に切り替える場合には,送信側仮想計算機が使用する通信用ポートに割り当てられた実バッファのエイリアスである仮想バッファの割り当てを,受信側仮想計算機が通信可能な通信用ポートから,他の仮想計算機が通信可能な通信用ポートに切り替え,送信側仮想計算機が参照するメモリの領域を,他の仮想計算機が参照するメモリの領域に関連付けることで,送信側仮想計算機と他の仮想計算機との通信経路を確立する。
本発明の具体的な構成例では,ハイパバイザは,物理計算機が搭載するI/Oデバイスへの通信処理を制御するコネクション制御部と,仮想計算機間の通信経路を記録し通信用ポート情報を含むLPAR間通信テーブルと仮想計算機の位置情報を記録しメモリアドレス情報を含む稼働位置情報テーブルを保有するメモリ管理部を有する。このシステム例では,管理サーバの通信経路変更指示により,第1の物理計算機で稼働する送信側仮想計算機と,第1の物理計算機で稼働する他の仮想計算機で相互に通信する通信経路に変更する場合には,バッファ制御部が,メモリ管理部の稼働位置情報テーブルから送信側仮想計算機と他の仮想計算機のメモリアドレス情報と,LPAR間通信テーブルから送信側仮想計算機と他の仮想計算機の通信用ポート情報を取得し仮想バッファの他の仮想計算機の通信用ポートへの割り当て,および,ディスクリプタによるアドレス変更を行い,送信側仮想計算機と他の仮想計算機の通信経路に共有メモリを利用する。
本発明の他の具体的な構成例では,ハイパバイザは,物理計算機が搭載するI/Oデバイスへの通信処理を制御するコネクション制御部と,仮想計算機間の通信経路を記録し通信用ポート情報を含むLPAR間通信テーブルと仮想計算機の位置情報を記録しメモリアドレス情報を含む稼働位置情報テーブルを保有するメモリ管理部を有する。このシステムでは,管理サーバの通信経路変更指示により,第1の物理計算機で稼働する送信側仮想計算機と,第1の物理計算機以外の第2の物理計算機で稼働する他の仮想計算機で相互に通信する通信経路に変更する場合には,バッファ制御部がメモリ管理部の稼働位置情報テーブルから送信側仮想計算機とコネクション制御部のメモリアドレス情報と,LPAR間通信テーブルから送信側仮想計算機とコネクション制御部の通信用ポート情報を取得し,仮想バッファのコネクション制御部の通信用ポートへの割り当て,および,ディスクリプタによるアドレス変更を行うことで送信側仮想計算機が利用するメモリの領域を,コネクション制御部を経由し,第2の物理計算機の他の仮想計算機に通信する通信経路を生成する。
本発明を用いれば,仮想サーバ間の通信性能を維持させ,仮想サーバの構成管理を容易化させ,仮想サーバ間の通信経路を容易に切り替えることができる
第1の実施例における物理計算機の構成図の一例のブロック図である。 第1の実施例における物理計算機及びソフトウェアの関係の一例を示すスタック図である。 第1の実施例におけるメモリ内容の一例を示す概念図である。 第1の実施例における稼働位置情報テーブルの一例を示す表図である。 第1の実施例における稼働位置情報テーブルの一例を示す表図である。 第1の実施例におけるLPAR間通信テーブルの一例を示す表図である。 第1の実施例におけるLPAR間通信テーブルの一例を示す表図である。 第1の実施例におけるディスクリプタとバッファの関係を示す一例を示す概念図である。 第1の実施例における物理計算機の処理を示す一例を示す模式図である。 第1の実施例における同一物理計算機内の通信を別物理計算機間の通信に切り替えるタイミングチャート図の一例である。 第1の実施例における別物理計算機間の通信を同一物理計算機内の通信に切り替えるタイミングチャート図の一例である。 第1の実施例における通信経路の切り替え時の全体処理を説明するフローチャート図の一例である。 第1の実施例における同一物理計算機内から別物理計算機間の通信経路変更処理のフローチャート図の一例である。 第1の実施例における同一物理計算機内から別物理計算機間の通信経路変更処理後のフローチャート図の一例である。 第1の実施例における別物理計算機間から同一物理計算機内の通信経路変更処理のフローチャート図の一例である。 第1の実施例における別物理計算機間から同一物理計算機内の通信経路変更処理後のフローチャート図の一例である。 第2の実施例における物理計算機の構成図の一例である。 第2の実施例における物理計算機及びソフトウェアの関係を示すスタック図の一例である。 第2の実施例におけるメモリ内容の一例の概念図である。 第2の実施例における同一物理計算機内から別物理計算機間の通信経路変更処理のフローチャート図の一例である。 第2の実施例における同一物理計算機内から別物理計算機間の通信経路変更処理後のフローチャート図の一例である。 第1,2の実施例における管理サーバの管理画面を示す一例の平面図である。
以下,実施例について図面を用いて説明する。ただし,本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で,その具体的構成を変更し得ることは当業者であれば容易に理解される。
以下に説明する発明の構成において,同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い,重複する説明は省略することがある。
本明細書等における「第1」,「第2」,「第3」などの表記は,構成要素を識別するために付するものであり,必ずしも,数または順序を限定するものではない。また,構成要素の識別のための番号は文脈毎に用いられ,一つの文脈で用いた番号が,他の文脈で必ずしも同一の構成を示すとは限らない。また,ある番号で識別された構成要素が,他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
図面等において示す各構成の位置,大きさ,形状,範囲などは,発明の理解を容易にするため,実際の位置,大きさ,形状,範囲などを表していない場合がある。このため,本発明は,必ずしも,図面等に開示された位置,大きさ,形状,範囲などに限定されない。
本実施例では,各物理計算機100上で稼働する各仮想サーバ102間の通信経路の切り替え処理を行う物理計算機100の例を示す。
図1は,複数の仮想サーバ102が稼働する物理計算機100の構成図の例である。物理計算機100は,CPU104を1つ以上有し,これらのCPU104はQPI(QuickPath Interconnect)やSMI(Scalable Memory Interconnect)等のインターコネクト105を介してChipSet106に接続される。
ChipSet106には,PCI Express等のバス117を介してLAN112に接続されるI/Oデバイスである物理NIC(Network Interface Card)110,ディスク115やストレージ装置114に接続されるHBA(Host Bus Adapter)109,コンソール108に接続されるコンソールインタフェース(コンソールI/F)107が接続される。
CPU104は,インターコネクト105を介してメモリ103にアクセスし,ChipSet106から物理NIC110等にアクセスして所定の処理を行う。メモリ103には,ハイパバイザ101がロードされ,ハイパバイザ101が制御する仮想サーバ102でゲストOS111が稼働する
図2を用いて次に,物理計算機100上で仮想サーバ102を実現するソフトウェア構成の主要部と,制御対象となるハードウェア要素について,説明する。物理計算機100上では,1つ以上の仮想サーバ102を制御するハイパバイザ101が稼動する。
1つ以上の物理NIC110は,IOV(I/O Virtualization)機能を有しており,物理的な機能(PF:Phicical Function)206,仮想的な機能(VF:Virtual Function)207から成る。PF206は常時利用可能な機能だが,VF207はIOV機能が有効な場合にのみ利用できる機能である。なお,仮想サーバ102は,IOVに非対応な物理NIC110を含んでも構わない。
PF206は,物理サーバ100の外部ネットワークとデータを送受信する機能を有し,IOV機能を制御するIOVレジスタを含む。VF207は,IOV機能が有効な場合にのみ,物理サーバ100の外部ネットワークとデータを送受信する機能を有する。
ハイパバイザ101は,仮想サーバ102を生成し,仮想サーバ102上に対してChipset106に相当する機能(仮想Chipset213)を提供する。また,ハイパバイザ101は,任意のVF207を任意の仮想サーバ102に占有的に割り当て,当該仮想サーバ102上で稼動するゲストOS111に当該VF207の直接操作を許可する機能(パススルー機能)を備える。
仮想サーバ102には,実バッファ215と仮想バッファ216が割り当てられている。ハイパバイザ101は,実バッファ215と仮想バッファ216がアクセスするメモリアドレスを制御する,バッファ制御部200を備える。
また,ハイパバイザ101は,物理計算機100が他の物理計算機100と通信する際に通信制御を行うコネクション制御部201,管理サーバ116や他の物理計算機100と相互に情報を通信する切替通知部203,仮想サーバ102の稼働位置や構成情報を登録する稼働位置情報テーブル205,仮想サーバ102(LPAR)間の通信経路情報を登録するLPAR間通信経路テーブル204を備える。また,これら切替通知部203,稼働位置情報テーブル205,および,LPAR間通信経路テーブル204を管理するメモリ管理部202を備える。
さらに,ハイパバイザ101は,仮想サーバ102に割り当てるPFドライバ209とVFドライバ210を管理する,物理NIC制御部208を含む。
ハイパバイザ101の仮想NICエミュレータ211は,仮想サーバ102に提供する実バッファ215や仮想バッファ216のアドレス情報を提供するディスクリプタ・エントリデータ212を含む。このディスクリプタ・エントリデータ212は,実バッファ215や仮想バッファ216が使用するメモリ領域のアドレス情報等を保持する。
各仮想サーバ102には,仮想NIC(VNIC)219が割り当てられる。この仮想NIC219は(図示しない)仮想スイッチ等により物理NIC110を複数の仮想サーバ102で共有して,接続される。
PFドライバ209は,PF206に含まれるIOVレジスタを操作する機能を有する。
仮想サーバ102は,ハイパバイザ101によって提供される仮想Chipset213などの仮想的な部品と,占有的に割り当てられたVF207を含む。仮想サーバ102上ではゲストOS111が動作する。ゲストOS111は,VF207の種類に応じたVFドライバ210を用いてVF207で通信を行い,NICドライバ220を用いてVNIC219での通信や物理NIC110と直接通信を行う。また,ゲストOS111は,実バッファ215と仮想バッファ216のメモリアドレスを変更することで,各仮想サーバ102上のゲストOS111が共有して利用するデータ領域(共有データ領域218)を有し,本共有データ領域218を利用することで共有メモリの通信を行うことができる。
バッファ制御部200は,LPAR間通信経路テーブル204,および,稼働位置情報テーブル205に登録された仮想サーバ102の位置情報や構成情報から,仮想サーバ102の通信経路変更時の実バッファ215と仮想バッファ216の制御を行い,仮想サーバ102の通信経路を切り替える。また,仮想サーバ102の通信経路が他の物理計算機100と通信を行う際には,コネクション制御部201を利用する。本処理の詳細について後述する。
図3には,ハイパバイザ101が管理するメモリ103の一例を示す。ハイパバイザ101は,メモリ103上にハイパバイザ101自身が使用する領域と,仮想サーバ102が使用する領域を割り当てる。
例えば,図3のように物理アドレス(ホストメモリアドレス)が割り当てられている場合,ハイパバイザ101は,ハイパバイザ101の領域にアドレスAD0からAD1を割り当て,仮想サーバ102―1にアドレスAD1からAD2を,仮想サーバ102―2にアドレスAD3からAD4を,仮想サーバ102−1と仮想サーバ102−2が共有メモリによる通信時に使用する共有データ領域218にアドレスAD3からAD4を割り当てる。
各仮想サーバ102が使用する領域には,ゲストOS111とVFドライバ210とNICドライバ220が格納される。ハイパバイザ101が使用する領域には,バッファ制御部200,コネクション制御部201,メモリ管理部202,物理NIC制御部208,および,仮想NICエミュレータ211が格納される。
図4Aは,稼働位置情報テーブル205の構成例である。稼働位置情報テーブル205は,仮想サーバ102の稼働位置と利用メモリアドレス情報を保持する表である。この表では,情報の取得日時(date)401に,物理計算機100の通し番号(Blade#)402と仮想サーバ102の通し番号(LPAR#)403により,仮想サーバ102の稼働位置が登録される。
図4Aの例では,仮想サーバ102はLPAR#1〜#3の3つを想定する。なお,ハイパバイザ101の情報は,LPAR#0に登録される。また,各仮想サーバ102が使用するメモリ領域として,ホストメモリアドレス(Host Memory Address)404とゲストメモリアドレス(Guest Memory Address)407が登録され,各アドレスを使用するバッファを割り当てる仮想NIC(VNIC#)410が登録される。
この割り当てるバッファのバッファ情報(Buffer Information)411には,バッファの名称(name)412と,実バッファ215のエイリアスとなる仮想バッファ216を生成した場合には,実バッファ215の情報(Alias)413を登録する。ここでは,バッファの名称をGPA(Guest Physical Address)の番号で規定している。図4Aの例では,LPAR#1の実バッファ215のGPA1と,LPAR#2の仮想バッファ216のGPA2が,メモリの同じアドレスを参照しているということを示している。
なお,ホストメモリアドレスは,前述のように物理サーバに搭載されるメモリ103の物理アドレスであり,ゲストメモリアドレスはゲストOS111に割り当てる論理的なメモリ103の物理アドレスである。図4Aでは,(各仮想サーバである)LPAR#1〜#3で,メモリアドレスは上下2段となっている。ホストメモリアドレス404の上段のアドレスは各ゲストOS111が使用する領域を示し,対応するゲストメモリアドレス407は「address」とのみ表示し具体的な内容は省略している。また,ホストメモリアドレス404の下段のアドレスは共通データ領域218(図3)を示し,同じアドレスが割り当てられており,各ゲストOS111は対応するゲストメモリアドレス407を持っている。なお,図4Aの例では,LPAR#1とLPAR#2のゲストメモリアドレスが同じ値となっているが,実際に動作するゲストOSの種類やアプリケーションにより異なる値が入ってもよい。
稼働位置情報テーブル205によれば,通信経路変更指示で対象となる仮想サーバ102の稼働位置により,同一の前記物理計算機100で稼働する仮想サーバ102間の相互通信となるか,別々の物理計算機100で稼働する仮想サーバ102の相互通信となるか判定することが可能である。
図5Aは,LPAR間通信テーブル204の構成例である。LPAR間通信テーブル204は,仮想サーバ102の送信元と送信先の接続情報を保持する表である。この表では,LPAR間通信テーブル204は,情報の取得日時(date)501における送信元の仮想サーバ102の情報(Soruce LPAR)502に,仮想サーバ102の通し番号(LPAR#)503と,この仮想サーバ102が利用する仮想NIC219の通し番号(Virtual IF#)504が登録されている。また,送信先の仮想サーバ102の情報(Destination LPAR)505に,仮想サーバ102の通し番号(LPAR#)506と,この仮想サーバ102が利用する仮想NIC219の通し番号(Virtual IF#)507が登録される。
この仮想NIC通し番号507では,仮想サーバ102に割り当てる仮想NIC219であれば通し番号が登録されるが,直接物理NIC110を利用する際には,「VF#1」のように使用するデバイス名を付与した形式で登録される。これらの情報により,仮想サーバ102間の通信構成を把握する。また,各仮想サーバ102の送信元が送信先の候補として予定される仮想サーバ102の情報(Access Point List)508が登録される。
図6によって,本実施例における実バッファ215と仮想バッファ216の制御方法の一例を示す。図6は,仮想サーバ102−1から仮想サーバ102−2にデータを送信する例である。仮想サーバ102−1には実バッファ215が割り当てられ,この実バッファ215のエイリアスとなる仮想バッファ216を仮想サーバ102−2が割り当てられている。このエイリアスとは,実バッファ215と仮想バッファ216が同じメモリ空間を使用することを指す。
上記の例を図4Aを再度参照して説明すると,仮想サーバ102−1(LPER#1)と仮想サーバ102−2(LPER#2)は,0x0010から0x0018という同じホストメモリアドレス404を使用しており,仮想サーバ102−1のバッファGPA1のエイリアスが,仮想サーバ102−2に割り当てられている。このとき,仮想サーバ102−1と102−2のゲストメモリアドレス407は異なっているが,図6のアドレス変換によって,同じアドレスを参照することが可能となる。
実バッファ215と仮想バッファ216が使用するメモリ領域については,使用メモリのアドレス情報のポインタをディスクリプタが所有しており,このディスクリプタにより制御される。本実施例では,仮想サーバ102−1の送信時のディスクリプタ情報と仮想サーバ102−2の受信時のディスクリプタ情報は,バッファ制御部200にてディスクリプタのアドレス変換が行われる。これにより,送信ディスクリプタと受信ディスクリプタが同じメモリ領域を使用することが可能となり,実バッファ215に格納されたデータを仮想サーバ102−2からアクセスすることができる。すなわち,仮想サーバ102−1と仮想サーバ102−2は共有メモリを使用した通信が可能となる。なお,図4Aでは,仮想サーバ102−1と102−2のゲストメモリアドレス407が異なっているが,ゲストメモリアドレスを同一に設定しておけば,稼働位置情報テーブル205によるアドレス変換が不要となることはいうまでもない。
図7は,上述した実バッファ215と仮想バッファ216の制御方法を含めた全体処理の一例を示す。図7では,物理計算機100−1で仮想サーバ102−1と仮想サーバ102−2が稼働し,物理計算機100−2で仮想サーバ102−3が稼働しており,仮想サーバ102−1と仮想サーバ102−2の通信(図7内の実線矢印部分)を,仮想サーバ102−1と仮想サーバ103の通信(図7内の点線矢印部分)に切り替える例を示している。
まず,仮想サーバ102−1と仮想サーバ102−2の通信処理では,外部より受信したデータが物理NIC110−1のキューペアNIC701のキューRxに溜められ(処理(a)),実バッファ215(GPA1)に取得される(処理(b))。この取得されたデータは,ゲストOS111で稼働するアプリケーションの処理が行われ,実バッファ215に格納される(処理(c))。
実バッファ215の格納先となるメモリ領域のアドレス情報(ゲストメモリアドレス407)は,仮想サーバ102−1の仮想デバイスのキューペアS_IF(シェアドインタフェース)702のキューTxに溜められ(処理(d)),仮想サーバ102−2の仮想デバイスのキューペアS_IF703のキューRxに送られる(処理(e))。ここで,仮想デバイスは,図2のVNIC219に対応する。仮想サーバ102−2では,仮想デバイスのキューペアS_IF703のキューRxを基に,必要により図6で示したアドレス変換を行い,仮想バッファ216(GPA2)にメモリ領域の情報を取得する。そして,ゲストOS111のアプリケーション処理を行い,再度,仮想バッファ216に格納する(処理(f))。この仮想バッファ216に格納されたデータは,物理NIC110−2のキューペアNIC704のキューTxを経由し外部に送信される(処理(g))。
次に,仮想サーバ102−1と仮想サーバ102−2の通信を,仮想サーバ102−1と仮想サーバ102−3に切り替えた処理について説明する。なお,処理(a)から処理(d)までは,仮想サーバ102−1と仮想サーバ102−2の通信処理と同じとなるため説明を割愛する。
仮想サーバ102−1で処理されたデータのキュー情報は,バッファ制御部200が取得する(処理(h))。次に,物理NIC110−3と通信するコネクション制御部201に作成する仮想バッファ216(GPA3)に,キュー情報を送信する(処理(i))。キュー情報は,物理計算機100−1の物理NIC110−3から,物理計算機100−2に送信される(処理(j))。
物理計算機100−2では,実バッファ215(GPA4)のエイリアスが,仮想バッファ216(GPA5)に割り当てられている。物理計算機100−1から受信したキュー情報をキューペアNIC705のキューに溜め(処理(k)),キューの情報により格納するデータ領域を実バッファ215(GPA4)に取得する(処理(n))。すなわち,実バッファ215(GPA4)には,仮想バッファ(GPA3)の内容のコピーが格納されることになる。実バッファ215(GPA4)に格納されたデータは,バッファ制御部200のバッファアドレス変更処理機能によりアドレス変換が行われ(処理(m)),仮想サーバ102−3のキューペアS_IF706のキューに溜められた情報から仮想バッファ216(GPA5)がデータを取得し,ゲストOS111のアプリケーションの処理が行われる(処理(o))。本処理結果は,仮想バッファ216(GPA5)に格納され,物理NIC110−5を経由し外部に送信される。
なお,上述した処理(k)から処理(p)は,物理計算機100−2で実行される処理であり,物理計算機100−2で特に特別な制御を実施しないようであれば本処理を行う必要はない。
以上の処理により,仮想サーバ102−1と仮想サーバ102−2は,共有メモリによるデータ通信を行うことができ,別の物理計算機100に通信経路を切り替えた場合であっても,ゲストOS111が意識することなく,仮想サーバ102に別途ポートを割り当てる必要もなく,シームレスに通信経路を切り替えることが可能となる。なお,ここでは,同じ物理計算機100上で仮想サーバ102間の通信状態を,「同一物理計算機間の仮想サーバ間通信」と呼び,別の物理計算機100間で仮想サーバ102間の通信状態を「別物理計算機間の仮想サーバ間通信」と呼ぶ。
以降では,同一物理計算機間の仮想サーバ間通信から別物理計算機間の仮想サーバ間通信に切り替える処理と,別物理計算機間の仮想サーバ間通信から同一物理計算機間の仮想サーバ間通信に切り替える処理について図8,図9で説明する。
図8は,同一物理計算機間の仮想サーバ間通信を別物理計算機間の仮想サーバ間通信に切り替える際のタイミングチャートの例を示す。
まず,管理サーバ116から通信経路の切り替え対象となる物理計算機100−1に経路変更指示が送信される(a)。この経路変更指示は,切替通知部203で受診し,バッファ制御部200に経路変更通知を送信する(b)。バッファ制御部200では,メモリ管理部202で保有するテーブル情報(稼働位置情報テーブル205とLPAR間通信テーブル204)のテーブル取得要求を,メモリ管理部202に送信する(c)。バッファ制御部200は,テーブル内容通知を取得し(d),通信経路の変更対象となる仮想サーバ102−1の送信キューの処理を一時停止させる(e)。この時,仮想サーバ102−1の処理自体は停止しないため,仮想サーバ102−1の処理結果は,実バッファ215に溜められることになる。
バッファ制御部200では,取得したテーブルの情報に基づいて,仮想サーバ102−1の通信先となる仮想サーバ102−2に割り当てた仮想バッファ216(仮想サーバ102−1の実バッファ215のエイリアス)を解除する(f)。そして,新たに仮想バッファ216(仮想サーバ102−1の実バッファ215のエイリアス)をコネクション制御部201に割り当てる(g)。
コネクション制御部201に仮想バッファ216を割り当てた後は,物理計算機100−2に対してデータの送信を行い,全てのデータを送信した後に物理計算機100−1と物理計算機100−2の間でコネクションが張れたことをバッファ制御部200に通知する。すなわち,物理計算機100−2の仮想サーバ102−3にWriteのエンキュー処理を実施し(h),物理計算機100−2からエンキュー処理完了通知を受信した後(i),コネクション完了通知をバッファ制御部200に通知する(j)。
このコネクション完了通知を受信したバッファ制御部200は,各テーブル(稼働位置情報テーブル205とLPAR間通信テーブル204)を更新し,メモリ管理部202に送信する(k)。稼働位置情報テーブル205には,仮想サーバ102−1の実バッファ215と,コネクション制御部201に割り当てた新たな仮想バッファ216との対応関係が記録される。また,LPAR間通信テーブル204には,物理計算機100−2に対するデータの送信が記録される。メモリ管理部202では,取得した更新テーブルを関連する各物理計算機100に,切替通知部203を経由し送信する(l)。
このようにして,仮想サーバ102間の通信経路を変更したならば,変更情報をそれぞれの物理計算機100に送信し,かつ,それぞれの物理計算機100内の変更情報を受信することで,物理計算機100間で更新情報を共有することができる。
上記一連の処理が完了した後,仮想サーバ102−1の送信キューの処理が再開され(m),管理サーバ116に通信経路の変更完了通知が送信される(n)。なお,本処理では,管理サーバ116の経路変更指示により各処理を実施しているが,管理サーバ116の契機以外にもCPU104やメモリ103等のリソースの利用状況等でハイパバイザ101内で自動的に切り替えてもよい。
図4Aと図5Aは図7の構成で,同一物理計算機間の仮想サーバ間通信時のテーブルの内容を示す。また,図4Bと図5Bは別物理計算機間の仮想サーバ間通信に切り替えた場合のテーブルの内容を示す。
図4Aでは,仮想サーバ102(LPAR#1)の実バッファ215(GPA1)のエイリアスは,仮想サーバ102(LPAR#2)の仮想バッファ216(GPA2)に対応していたが,図4Bでは,仮想サーバ102(LPAR#1)の実バッファ215(GPA1)のエイリアスは,仮想サーバ102(LPAR#0)(ハイパバイザ)が使用する,仮想バッファ216(GPA3)に対応することになる。仮想バッファ216が利用するゲストメモリアドレス407が変更されるため,これに伴って,バッファ制御部200が行うディスクリプタのアドレス変換の内容が変更される。また,データ受信側の仮想サーバ102(LPAR#3)では,仮想サーバ102(LPAR#0)のコネクション制御部201の実バッファ215(GPA4)のエイリアスが,仮想バッファ216(GPA5)に対応付けられる。
図5Aでは,仮想サーバ102(LPAR#1)は,VNIC219(#1)(キューペアS_IF702に対応)を介して仮想サーバ102(LPAR#2)と通信していたが,図4Bでは,仮想サーバ102(LPAR#1)は,物理NIC110−3(VF#1)を介して仮想サーバ102(LPAR#3)と通信することになる。
図9は,別物理計算機間の仮想サーバ間通信を同一物理計算機間の仮想サーバ間通信に切り替える際のタイミングチャートの例を示す。
まず,管理サーバ116から通信経路の切り替え対象となる物理計算機100−1に経路変更指示が送信される(a)。この経路変更指示は,切替通知部203で受診し,バッファ制御部200に変更通知を送信する(b)。バッファ制御部200では,メモリ管理部202で保有するテーブル情報(稼働位置情報テーブル205とLPAR間通信テーブル204)を要求(c),取得し(d),通信経路の変更対象となる仮想サーバ102−1の送信処理を一時停止させる(e)。このとき,通信先となる物理計算機100に未送信のデータがあれば送信する。すなわち物理計算機100−2の仮想サーバ102−3にWriteのエンキュー処理を開始し(f),物理計算機100−2でエンキュー処理が完了したら,物理計算機100−2からコネクション制御部201を経由して,バッファ制御部200にエンキュー処理完了通知を送信する(g)。この時,仮想サーバ102−1の処理自体は停止しないため,処理結果は,実バッファ215に溜められることになる。
未送信のデータを全て送信した後は,バッファ制御部200が,コネクション制御部201に割り当てた仮想バッファ216(仮想サーバ102−1の実バッファ215のエイリアス)を解除し(h),新たに通信先となる仮想サーバ102−2に仮想バッファ216(仮想サーバ102−1の実バッファ215のエイリアス)を割り当てる(i)。仮想バッファ216を割り当てた後は,バッファ制御部200が各テーブルを更新し,メモリ管理部202に送信する(j)。メモリ管理部200では,取得した更新テーブルを関連する各物理計算機100に切替通知部203を経由し送信する(k)。その後,仮想サーバ102−1の送信キューの処理が再開され(l),管理サーバ116に通信経路の変更完了通知が送信される(m)。
以下では,ハイパバイザ101が行う処理の一例について,フローチャートにより説明する。なお,ここでは,送信先となる物理計算機100−2の構成は任意で良いため,送信元となる物理計算機100−1のハイパバイザ101が行う処理について説明する。
図10は,ハイパバイザ101が行う処理の全体像を示すフローチャートの例である。まず,管理サーバ116が通信経路の変更対象となる物理計算機100に対して通信経路変更指示を送信する(1001)。この通信経路変更指示は,ハイパバイザ101内の切替通知部203が受信し,バッファ制御部200に通信経路の変更を通知する(1002)。変更通知を受信したバッファ制御部200は,メモリ管理部202が所有するLPAR間通信経路テーブル204と稼働位置情報テーブル205を取得する(1003)。稼働位置情報テーブル205には,仮想サーバ102が稼働する物理計算機100の情報と,現在使用するバッファ情報が登録されており,この情報から通信経路を同一物理計算機間の仮想サーバ間通信に切り替えるか,別物理計算機間の仮想サーバ間通信に切り替えるか判定する(1004)。
同一物理計算機間の仮想サーバ間通信に切り替える処理(1005)と別物理計算機間の仮想サーバ間通信に切り替える処理(1006)については後述する。
仮想サーバ102間の通信経路を切り替えた後は,バッファ制御部200は,LPAR間通信経路テーブル204と稼働位置情報テーブル205を更新し,メモリ管理部202に通知する(1007)。メモリ管理部202では,更新したLPAR間通信経路テーブル204と稼働位置情報テーブル205を各物理計算機100に切替通知部203を経由して送信する(1008)。この送信処理では,テーブル自体を各物理計算機100に送信しても良いし,更新部分のみを抽出して送信してもよい。また,メモリ管理202は,切替通知部203を経由し,管理サーバ116に通信経路の変更完了を通知する(1009)。
図11は,別物理計算機間の仮想サーバ間通信に切り替える処理(1006)を示すフローチャートの例である。
まず,バッファ制御部200は,LPAR間通信経路テーブル204から仮想サーバ102−1の通信先(仮想サーバ102−2)と,通信先のメモリ情報を抽出し(1101),通信元となる仮想サーバ102−1の送信キューの処理(デキュー処理)を一時的に停止させる(1102)。
次に,バッファ制御部200は,仮想サーバ102−2の仮想バッファ216(GPA2)を解除し(1103),仮想サーバ102−1の実バッファ215のエイリアスとして仮想バッファ216(GPA3)をコネクション制御部201に生成する(1104)。本処理により,仮想サーバ102間の通信経路が共有メモリを使用した通信から外部向けの通信に切り替わることになる。
最後に,コネクション制御部201では,通信先となる物理計算機100−2にコネクションを張り通信経路を生成する。なお,ここでは,通信経路の切り替えによりコネクションを張っているが,事前にコネクションを張っておいてもよい。
図12は,別物理計算機間の仮想サーバ間通信に切り替えた後の通信処理を示すフローチャートの例である。
別物理計算機間の仮想サーバ間通信に通信経路を切り替えた後は,バッファ制御部200がコネクション制御部201で未送信のデータを物理計算機100−2の仮想サーバ102−3に対して送信処理(エンキュー処理)を行う(1201)。この時,バッファ制御部200では,仮想サーバ102−2に送信予定であったメモリアドレス情報(ディスクリプタ)をコネクション制御部201に割り当てた仮想バッファ216(GPA3)に送信するようにメモリアドレスを変更し,仮想バッファ216(GPA)にデータを登録する処理(デキュー処理)を実施する(1202)。
未送信データの送信が完了した後は(1203),バッファ制御部200が仮想サーバ102−1の送信キューの処理を再開する(1204)。以降は,仮想サーバ102−1でエンキューされたデータをバッファ制御部200が送信先となるコネクション制御部201の仮想バッファ216(GPA3)にディスクリプタを変換し送信される(1205)。
仮想サーバ102−1の通信処理が再開した後は,バッファ制御部200がLPAR間通信経路テーブル204と稼働位置情報テーブル205を更新する(1206)。
図13は,同一物理計算機間の仮想サーバ間通信に切り替える処理(1005)を示すフローチャートの例である。
まず,バッファ制御部200は,LPAR間通信経路テーブル204から仮想サーバ102−1の通信先(仮想サーバ102−2)と,通信先のメモリ情報を抽出し(1301),通信元となる仮想サーバ102−1の送信キューの処理(デキュー処理)を一時的に停止させる(1302)。
次に,コネクション制御部201が,通信先となる物理計算機100−2からの通信データの受信が完了したか監視し(1303),受信が完了するまで物理計算機100−2の通信データのエンキュー処理を実施する(1304)。
物理計算機100−2の通信データの受信が完了したならば,バッファ制御部200がコネクション制御部201に割り当てた仮想バッファ216(GPA3)を解除し(1305),仮想サーバ102−1の実バッファ215のエイリアスとなる仮想バッファ216(GAP2)を仮想サーバ102−2に生成し,共有メモリを使用する通信経路を生成する(1306)。
図14は,同一物理計算機間の仮想サーバ間通信に切り替えた後の通信処理を示すフローチャートの例である。
同一物理計算機間の仮想サーバ間通信に切り替えた後は,バッファ制御部200が仮想サーバ102−1の送信キューの処理を再開する(1401)。以降は,仮想サーバ102−1でエンキューされたデータをバッファ制御部200が送信先となる仮想サーバ102−2の仮想バッファ(GPA2)にディスクリプタを変換し送信される(1402)。
仮想サーバ102−1の通信処理が再開した後は,バッファ制御部200がLPAR間通信経路テーブル204と稼働位置情報テーブル205を更新する(1403)。
以上の構成,および,処理により仮想サーバ102間の通信に共有メモリを使用することで仮想サーバ102間の通信性能を維持させることができる。また,仮想サーバ102間の通信経路は,実バッファ215のエイリアス(仮想バッファ216)を通信先に割り当て,および,仮想バッファ216が利用するメモリ空間を制御することで切り替えることができる。これにより,仮想サーバ102に割り当てるポートを経路毎に複数準備することがないため仮想サーバ102の構成管理を容易に行うことができ,かつ,仮想バッファ216の割り当てにより通信経路を容易に切り替えることができる。
本実施例では,メモリ103に直接データを送信するRDMA1502を別物理計算機間の仮想サーバ間通信に使用する通信経路に使用した時の物理計算機100の例を示す。
図15は,実施例2における複数の仮想サーバ102が稼働する物理計算機100の構成図の例である。図1の物理計算機100のうち,既に説明した図1に示される同一の符号を付された構成と,同一の機能を有する部分については,説明を省略する。
物理計算機100のChipSet106には,PCI Express等のバス117を介してLAN112に接続される物理NIC110,ディスク115やストレージ装置114に接続されるHBA(Host Bus Adapter)109,コンソール108に接続されるコンソールインタフェース(コンソールI/F)107,RDMA1502を使用した通信を行うHCA(Host Channel Adapter)1501が接続される。
図16を参照しながら,次に,物理サーバ100上で仮想サーバ102を実現するソフトウェアの構成の主要部と,制御対象となるハードウェア要素について詳述する。実施例1に於ける図2と同一の番号の同一構成要素については説明を省略する。
1つ以上のHCA1501は,RDMA機能を有しており,通信先となる物理計算機100に同様にRDMA機能を有するHCA1501が搭載していれば,直接メモリ103にアクセスすることができる。
ハイパバイザ101は,HCA1501を経由しRDMA1502で通信を行うRDMAドライバ1602を制御する物理HCA制御部1601を含む。
図17には,ハイパバイザ101が管理するメモリ105の一例を示す。実施例1に於ける図3と同一の番号の同一構成要素については説明を省略する。
ハイパバイザ101が使用する領域には,バッファ制御部200,コネクション制御部201,メモリ管理部202,物理NIC制御部208,および,仮想NICエミュレータ211,物理HCA制御部1601が格納される。
ハイパバイザ101が行う処理の全体像については,実施例1に於ける図10で説明した手順となる。但し,本実施例では,送信先となる物理計算機100−2に図7で説明した処理(k)から処理(p)を行うことで別物理計算機間の仮想サーバ間通信を高速化することが可能となる。
以下では,同一物理計算機間の仮想サーバ間通信に切り替える処理(1005)の送信先となる物理計算機100−2のハイパバイザ101の処理について説明する。なお,別物理計算機間の仮想サーバ間通信に切り替える処理(1006)については,送信先となる物理計算機100−2との通信を切断する処理となるため,ここでは割愛する。
図18は,別物理計算機間の仮想サーバ間通信に切り替える処理(1006)を示すフローチャートの例である。
まず,バッファ制御部200は,LPAR間通信経路テーブル204から仮想サーバ102−1の通信先(仮想サーバ102−2)と,通信先のメモリ103情報を抽出する(1801)。
次に,バッファ制御部200は,コネクション制御部201の実バッファ215のエイリアスとなる仮想バッファ216(GPA4)を仮想サーバ102−3に生成する(1802)。
最後に,コネクション制御部201では,通信元となる物理計算機100−1のコネクション制御部201に割り当てた仮想バッファ216(GPA3)にコネクションを張り通信経路を生成する(1803)。
図19は,別物理計算機間の仮想サーバ間通信に切り替えた後の通信処理を示すフローチャートの例である。
まず,バッファ制御部200は,コネクション制御部201でエンキュー処理を行い実バッファ215(GPA4)にデータを取得し(1901),取得したデータをバッファ制御部200が送信先となる仮想サーバ102−3のディスクリプタに変更し,仮想サーバ102−3のデキュー処理を実施する(1902)。
次に,全ての通信処理が完了したならば(1903),バッファ制御部200がコネクション制御部201でエンキューされた受信データを送信先の仮想サーバ102−3に割り当てた仮想バッファ216(GPA5)に変換して送信する(1904)。
仮想サーバ102−3にデータが送信された後は,バッファ制御部200がLPAR間通信経路テーブル204と稼働位置情報テーブル205を更新する(1905)。
以上の構成,および,処理により仮想サーバ102間の通信に共有メモリを使用でき,かつ,別物理計算機間の仮想サーバ間通信に切り替えた場合には,RDMA1502を使用できることで仮想サーバ102間の通信性能を別物理計算機100間,或いは,同一物理計算機100間によらず維持させることができる。また,仮想サーバ102間の通信経路は,実バッファ215のエイリアス(仮想バッファ216)を通信先に割り当て,および,仮想バッファ216が利用するメモリ空間を制御することで切り替えることができる。これにより,仮想サーバ102に割り当てるポートを経路毎に複数準備することがないため仮想サーバ102の構成管理を容易に行うことができ,かつ,仮想バッファ216の割り当てにより通信経路を容易に切り替えることができる。
上述した実施形態では,仮想サーバ102間の通信経路を切り替える処理に関して説明したが,仮想サーバ102のマイグレーション時においても同様の効果を得ることが可能である。例えば,仮想サーバ102のマイグレーション先となる物理計算機100では,仮想サーバ102が使用するメモリ103等のリソースがハイパバイザ101で割り当てられる。この割り当てられた情報に基づき稼働位置情報テーブル205とLPAR間通信テーブル204を更新すれば,マイグレーション後も共有メモリの使用からRDMA1502の使用に切り替えることが可能となる。
また,それぞれの実施形態では,仮想サーバ102間の通信経路の変更指示を管理サーバ116が対象物理計算機100に通知していた。この変更指示を管理サーバ116で実施する例を図20で説明する。但し,仮想サーバ102間の通信経路の変更指示は,管理サーバ116からの通知に限らず,例えば,ハイパバイザ101のパフォーマンスモニタでリソースの利用状況により自動的に仮想サーバ102間の通信経路を切り替えても良い。
図20は,管理サーバ116の管理画面2001を示す一例である。図20では,仮想サーバ102間の通信制御を行う画面であり,対象となる仮想サーバ102の選定等を行う設定変更画面と通信経路の構成を示す構成画面を有する。本実施例では,通信経路変更指示は,管理サーバからの指示により実行することができる。
設定変更画面では,送信元と送信先となる前記仮想サーバ102,および,前記仮想サーバ102間の通信手段を選択する。具体的には,通信経路の切り替え対象となる仮想サーバ102と,この仮想サーバ102が使用する通信ポートを選択し,仮想サーバ102間の通信経路に利用する通信手段を選択する。通信手段では,通常のネットワーク通信を利用することも想定されるため,一例を挙げるならば共有メモリを使用した高速通信を行う場合には,「DMA」と入力する。
構成画面では,通信経路の切り替え前後の構成が把握できるように,それぞれのネットワーク構成が図示される。
この管理画面2001では,本画面構成に限らず,例えば,仮想サーバ102の構築画面に上述した入力内容を含めてもよい。また,変更前後の構成画面を表示させずに,必要に応じて画面を切り替えてもよい。
以上の実施例を用いれば,仮想サーバ102間の通信に共有メモリを使用することで仮想サーバ102間の通信性能を維持させることができる。また,仮想サーバ102間の通信経路は,送信元と送信先に割り当てる実バッファ215と仮想バッファ216のメモリアドレス制御により実現されており,仮想サーバ102に割り当てる通信用ポートを経路毎に複数準備する必要がなく,仮想サーバ102の構成管理を容易に行うことができ,かつ,実バッファ215と仮想バッファ216のメモリアドレス制御により通信経路を容易に切り替えることができる。
以上のように本発明の実施の形態について説明したが,本発明の技術範囲は上記実施の形態に記載された範囲に限定されない。本発明者によってなされた発明を上記実施の形態に基づき具体的に説明したが,その要旨を逸脱しない範囲で種々の変更または改良を加えることが可能であることは言うまでもない。従って,そのような変更または改良を加えた形態も当然に本発明の技術的範囲に含まれる。
100 物理計算機
102 仮想サーバ
103 メモリ
104 CPU
105 インターコネクタ
106 Chip Set
107 コンソールI/F
108 コンソール
109 HBA
110 物理NIC
111 ゲストOS
112 LAN
113 SAN
114 ストレージ装置
115 ディスク
116 管理サーバ
117 バス
200 バッファ制御部
201 コネクション制御部
202 メモリ管理部
203 切替通知部
204 LPAR間通信経路テーブル
205 稼働位置情報テーブル
206 PF
207 VF
208 物理NIC制御部
209 PFドライバ
210 VFドライバ
211 仮想NICエミュレータ
212 ディスクリプタ・エントリデータ
213 仮想Chip Set
215 実バッファ
216 仮想バッファ
218 共有データ領域
219 VNIC
220 NICドライバ
1501 HCA
1502 RDMA
1601 物理HCA制御部
1602 RDMAドライバ

Claims (12)

  1. 複数の仮想計算機間の通信経路制御方法であって,
    前記仮想計算機は,一以上のCPUと,一以上のメモリと,一以上のI/Oデバイスを備えた一以上の物理計算機で稼働し,
    通信経路変更指示を契機に,
    第1の仮想計算機からの通信経路の変更先となる,第2の仮想計算機が直接または間接的に通信する通信用ポートに,前記第1の仮想計算機の実バッファのエイリアスである仮想バッファを割り当て,
    前記仮想バッファが参照する前記メモリの領域をメモリアドレス変換することにより,
    前記第1の仮想計算機の参照する前記メモリの領域を,前記第2の仮想計算機の参照する前記メモリの領域に関連付けることで,前記第1の仮想計算機と前記第2の仮想計算機間の通信経路を生成すること,
    を特徴とする仮想計算機間の通信経路制御方法。
  2. 前記物理計算機は,前記仮想計算機を制御するハイパバイザを有し,
    前記ハイパバイザは,
    前記仮想計算機および前記I/Oデバイスに割り当てる,前記実バッファと前記仮想バッファを制御する,バッファ制御部と,
    前記物理計算機が搭載する前記I/Oデバイスへの通信処理を制御する,コネクション制御部と,
    前記仮想計算機間の通信経路を記録し通信用ポート情報を含むLPAR間通信テーブル,および,前記仮想計算機の位置情報を記録しメモリアドレス情報を含む稼働位置情報テーブルを保有するメモリ管理部を有し,
    前記通信経路変更指示が
    第1の物理計算機で稼働する前記第1の仮想計算機と,前記第1の物理計算機で稼働する前記第2の仮想計算機で相互に通信する通信経路に変更する指示であれば,
    前記第1の仮想計算機と前記第2の仮想計算機の前記メモリアドレス情報と,前記第1の仮想計算機と前記第2の仮想計算機の前記通信用ポート情報から,前記仮想バッファの前記第2の仮想計算機の通信用ポートへの割り当て,および,アドレス変換を行うことで,
    前記第1の仮想計算機と前記第2の仮想計算機の通信経路に共有メモリを利用すること,
    を特徴とする請求項1に記載の仮想計算機間の通信経路制御方法。
  3. 前記通信経路変更指示が
    第1の物理計算機で稼働する前記第1の仮想計算機と,前記第1の物理計算機以外の第2の物理計算機で稼働する第3の仮想計算機で相互に通信する通信経路に変更する指示であれば,
    前記第1の仮想計算機と前記第1の物理計算機の前記メモリアドレス情報と,前記第1の仮想計算機と前記第1の物理計算機の前記通信用ポート情報から,前記仮想バッファの前記第1の物理計算機の通信用ポートへの割り当て,および,アドレス変更を行うことで,
    前記第1の仮想計算機が利用する前記メモリの領域を,前記第2の物理計算機の前記第3の仮想計算機に通信する通信経路を生成すること,
    を特徴とする請求項2に記載の仮想計算機間の通信経路制御方法。
  4. 前記通信経路変更指示で対象となる前記仮想計算機の稼働位置により,
    同一の前記物理計算機で稼働する前記仮想計算機間の相互通信となるか,別々の前記物理計算機で稼働する前記仮想計算機の相互通信となるか判定すること,
    を特徴とする請求項3に記載の仮想計算機間の通信経路制御方法。
  5. 前記通信経路変更指示により前記仮想計算機間の通信経路を変更したならば,
    変更情報をそれぞれの前記物理計算機に送信し,かつ,それぞれの前記物理計算機内の変更情報を受信することで,前記物理計算機間で更新情報を共有すること,
    を特徴とする請求項3に記載の仮想計算機間の通信経路制御方法。
  6. 前記通信経路変更指示は,管理サーバからの指示により実行され,
    前記管理サーバは,前記仮想計算機間の通信経路を変更する設定画面を有し,
    前記設定画面は,送信元と送信先となる前記仮想計算機,および,前記仮想計算機間の通信手段を選択することにより,
    前記仮想計算機間の通信経路を変更したことを示す結果を表示する,
    ことを特徴とする請求項3に記載の仮想計算機間の通信経路制御方法。
  7. 一以上のCPUと,一以上のメモリと,一以上のI/Oデバイスを備えた一以上の物理計算機で稼働する一以上の仮想計算機を搭載する計算機システムであって,
    前記物理計算機は,前記仮想計算機を制御するハイパバイザを有し,
    前記ハイパバイザは,前記仮想計算機および前記I/Oデバイスに割り当てる実バッファと仮想バッファを制御するバッファ制御部を有し,
    前記バッファ制御部は,
    送信側仮想計算機と受信側仮想計算機との間の通信を,前記送信側仮想計算機と他の仮想計算機との間の通信に切り替える場合には,
    前記送信側仮想計算機が使用する通信用ポートに割り当てられた前記実バッファのエイリアスである前記仮想バッファの割り当てを,
    前記受信側仮想計算機が通信可能な通信用ポートから,前記他の仮想計算機が通信可能な通信用ポートに切り替え,
    前記送信側仮想計算機が参照する前記メモリの領域を,前記他の仮想計算機が参照する前記メモリの領域に関連付けることで,前記送信側仮想計算機と前記他の仮想計算機との通信経路を確立する,
    ことを特徴とする計算機システム。
  8. 前記ハイパバイザは,
    前記物理計算機が搭載する前記I/Oデバイスへの通信処理を制御するコネクション制御部と,
    前記仮想計算機間の通信経路を記録し通信用ポート情報を含むLPAR間通信テーブルと前記仮想計算機の位置情報を記録しメモリアドレス情報を含む稼働位置情報テーブルを保有するメモリ管理部を有し,
    管理サーバの通信経路変更指示により,
    第1の物理計算機で稼働する前記送信側仮想計算機と,前記第1の物理計算機で稼働する前記他の仮想計算機で相互に通信する通信経路に変更する場合には,
    前記バッファ制御部が,前記メモリ管理部の前記稼働位置情報テーブルから前記送信側仮想計算機と前記他の仮想計算機のメモリアドレス情報と,前記LPAR間通信テーブルから前記送信側仮想計算機と前記他の仮想計算機の通信用ポート情報を取得し,
    前記仮想バッファの前記他の仮想計算機の通信用ポートへの割り当て,および,ディスクリプタによるアドレス変更を行い,
    前記送信側仮想計算機と前記他の仮想計算機の通信経路に共有メモリを利用すること
    を特徴とする請求項7に記載の計算機システム。
  9. 前記ハイパバイザは,
    前記物理計算機が搭載する前記I/Oデバイスへの通信処理を制御するコネクション制御部と,
    前記仮想計算機間の通信経路を記録し通信用ポート情報を含むLPAR間通信テーブルと前記仮想計算機の位置情報を記録しメモリアドレス情報を含む稼働位置情報テーブルを保有するメモリ管理部を有し,
    管理サーバの通信経路変更指示により,
    前記第1の物理計算機で稼働する前記送信側仮想計算機と,前記第1の物理計算機以外の第2の物理計算機で稼働する前記他の仮想計算機で相互に通信する通信経路に変更する場合には,
    前記バッファ制御部が前記メモリ管理部の前記稼働位置情報テーブルから前記送信側仮想計算機と前記コネクション制御部のメモリアドレス情報と,前記LPAR間通信テーブルから前記送信側仮想計算機と前記コネクション制御部の通信用ポート情報を取得し,
    前記仮想バッファの前記コネクション制御部の通信用ポートへの割り当て,および,
    ディスクリプタによるアドレス変更を行うことで
    前記送信側仮想計算機が利用する前記メモリの領域を,前記コネクション制御部を経由し,前記第2の物理計算機の前記他の仮想計算機に通信する通信経路を生成すること,
    を特徴とする請求項7に記載の計算機システム。
  10. 前記管理サーバの通信経路変更指示で対象となる前記仮想計算機の稼働位置を,前記バッファ制御部が,前記稼働位置情報テーブルから取得し,
    通信経路の変更を,同一の前記物理計算機で稼働する前記仮想計算機間の相互通信となるか,別々の前記物理計算機で稼働する前記仮想計算機の相互通信となるか判定すること,
    を特徴とする請求項9に記載の計算機システム。
  11. 前記管理サーバの通信経路変更指示により前記仮想計算機間の通信経路を変更したならば,
    前記バッファ制御部が更新した前記LPAR間通信テーブルと前記稼働位置情報テーブルを前記メモリ管理部に送付し,
    前記メモリ管理部の切替通知部が,それぞれの前記物理計算機内の前記メモリ管理部に送信し,かつ,それぞれの前記物理計算機内の前記メモリ管理部より受信した前記LPAR間通信テーブルと前記稼働位置情報テーブルを,
    保有する前記LPAR間通信テーブルと前記稼働位置情報テーブルに反映させることで,
    前記物理計算機間の前記LPAR間通信テーブルと前記稼働位置情報テーブルを共有できること,
    を特徴とする請求項9に記載の計算機システム。
  12. 管理サーバの通信経路変更指示が,
    第1の物理計算機で稼働する前記送信側仮想計算機と前記第1の物理計算機以外の第2の物理計算機で稼働する前記他の仮想計算機で相互に通信する通信経路に変更する指示であり,かつ,前記第1の物理計算機と前記第2の物理計算機間をRDMAで通信する構成であるならば,
    前記バッファ制御部が前記メモリ管理部の前記稼働位置情報テーブルから前記送信側仮想計算機と前記コネクション制御部のメモリアドレス情報と,前記LPAR間通信テーブルから前記送信側仮想計算機と前記コネクション制御部の通信用ポート情報を取得し,
    前記仮想バッファの前記コネクション制御部の通信用ポートへの割り当て,および,
    アドレス変更を行い,
    前記コネクション制御部は,前記送信側仮想計算機が利用する前記メモリの領域を取得し,送信先となる前記第2の物理計算機のメモリアドレスを付与したデータを送信すること,
    を特徴とする請求項9に記載の計算機システム。
JP2015212292A 2015-10-28 2015-10-28 仮想計算機間の通信経路制御方法および計算機システム Active JP6579916B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015212292A JP6579916B2 (ja) 2015-10-28 2015-10-28 仮想計算機間の通信経路制御方法および計算機システム
US15/244,144 US10114667B2 (en) 2015-10-28 2016-08-23 Method of controlling communication path between virtual machines and computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015212292A JP6579916B2 (ja) 2015-10-28 2015-10-28 仮想計算機間の通信経路制御方法および計算機システム

Publications (2)

Publication Number Publication Date
JP2017084133A true JP2017084133A (ja) 2017-05-18
JP6579916B2 JP6579916B2 (ja) 2019-09-25

Family

ID=58637669

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015212292A Active JP6579916B2 (ja) 2015-10-28 2015-10-28 仮想計算機間の通信経路制御方法および計算機システム

Country Status (2)

Country Link
US (1) US10114667B2 (ja)
JP (1) JP6579916B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10560527B2 (en) * 2017-03-02 2020-02-11 Dell Products, L.P. Network service chains using hardware logic devices in an information handling system
US10970099B2 (en) * 2017-06-01 2021-04-06 Intel Corporation Adaptive virtual function drivers for electronic devices
WO2019199197A1 (en) * 2018-04-12 2019-10-17 Huawei Technologies Co., Ltd. A system and a method of fast java object materialization from database data
CN110554977A (zh) * 2018-05-30 2019-12-10 阿里巴巴集团控股有限公司 数据缓存方法、数据处理方法、计算机设备、存储介质
US11392498B2 (en) * 2019-05-24 2022-07-19 Texas Instruments Incorporated Aliased mode for cache controller
US11099911B1 (en) 2019-07-01 2021-08-24 Northrop Grumman Systems Corporation Systems and methods for inter-partition communication
US10887183B1 (en) * 2019-09-18 2021-01-05 Virtustream Ip Holding Company Llc System and method for topological redundancy
CN112835775B (zh) * 2021-01-29 2024-03-01 许继集团有限公司 模拟网络通讯方法、装置及继电保护装置仿真测试系统
JP2023003987A (ja) * 2021-06-25 2023-01-17 富士通株式会社 情報処理装置、情報処理プログラム、及び情報処理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127461A (ja) * 2004-09-29 2006-05-18 Sony Corp 情報処理装置、通信処理方法、並びにコンピュータ・プログラム
JP2010003061A (ja) * 2008-06-19 2010-01-07 Hitachi Ltd 計算機システム及びそのi/o構成変更方法
WO2010097925A1 (ja) * 2009-02-26 2010-09-02 株式会社日立製作所 情報処理装置
JP2013125284A (ja) * 2011-12-13 2013-06-24 Hitachi Ltd 仮想計算機システムおよび仮想計算機の移行制御方法
JP2014195178A (ja) * 2013-03-28 2014-10-09 Fujitsu Ltd 情報処理装置、送信制御方法および送信制御プログラム
JP2015170887A (ja) * 2014-03-05 2015-09-28 富士通株式会社 パケット処理方法及びシステム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7076634B2 (en) * 2003-04-24 2006-07-11 International Business Machines Corporation Address translation manager and method for a logically partitioned computer system
US7318140B2 (en) * 2004-06-10 2008-01-08 International Business Machines Corporation Method and apparatus for dynamic hosting partition page assignment
US8140618B2 (en) * 2006-05-04 2012-03-20 Citrix Online Llc Methods and systems for bandwidth adaptive N-to-N communication in a distributed system
JP5011191B2 (ja) * 2007-04-02 2012-08-29 株式会社日立製作所 計算機システム及び通信制御方法
GB2458154B (en) * 2008-03-07 2012-06-27 Hewlett Packard Development Co Routing across a virtual network
JP5100595B2 (ja) 2008-09-30 2012-12-19 シャープ株式会社 Av機器、サーバ、av機器の操作システムおよびav機器の操作用プログラム
CN101819564B (zh) * 2009-02-26 2013-04-17 国际商业机器公司 协助在虚拟机之间进行通信的方法和装置
US8386745B2 (en) * 2009-07-24 2013-02-26 Advanced Micro Devices, Inc. I/O memory management unit including multilevel address translation for I/O and computation offload
US8537860B2 (en) * 2009-11-03 2013-09-17 International Business Machines Corporation Apparatus for switching traffic between virtual machines
US8954704B2 (en) * 2011-08-12 2015-02-10 International Business Machines Corporation Dynamic network adapter memory resizing and bounding for virtual function translation entry storage
US20130042238A1 (en) * 2011-08-12 2013-02-14 International Business Machines Corporation Optimized Virtual Function Translation Entry Memory Caching
JP5598493B2 (ja) 2012-03-30 2014-10-01 富士通株式会社 情報処理装置、演算装置および情報転送方法
JP2014138407A (ja) * 2013-01-18 2014-07-28 Hitachi Ltd ノード装置、通信システム及び仮想スイッチの切替方法
US9854036B2 (en) * 2013-09-30 2017-12-26 Huawei Technologies Co., Ltd. Method for migrating memory data of virtual machine, and related apparatus and cluster system
US9483290B1 (en) * 2014-04-29 2016-11-01 Qlogic, Corporation Method and system for virtual machine communication
US9575796B2 (en) * 2015-02-16 2017-02-21 Red Hat Isreal, Ltd. Virtual device timeout by memory offlining
US9792248B2 (en) * 2015-06-02 2017-10-17 Microsoft Technology Licensing, Llc Fast read/write between networked computers via RDMA-based RPC requests
US10713210B2 (en) * 2015-10-13 2020-07-14 Microsoft Technology Licensing, Llc Distributed self-directed lock-free RDMA-based B-tree key-value manager

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127461A (ja) * 2004-09-29 2006-05-18 Sony Corp 情報処理装置、通信処理方法、並びにコンピュータ・プログラム
JP2010003061A (ja) * 2008-06-19 2010-01-07 Hitachi Ltd 計算機システム及びそのi/o構成変更方法
WO2010097925A1 (ja) * 2009-02-26 2010-09-02 株式会社日立製作所 情報処理装置
JP2013125284A (ja) * 2011-12-13 2013-06-24 Hitachi Ltd 仮想計算機システムおよび仮想計算機の移行制御方法
JP2014195178A (ja) * 2013-03-28 2014-10-09 Fujitsu Ltd 情報処理装置、送信制御方法および送信制御プログラム
JP2015170887A (ja) * 2014-03-05 2015-09-28 富士通株式会社 パケット処理方法及びシステム

Also Published As

Publication number Publication date
US10114667B2 (en) 2018-10-30
JP6579916B2 (ja) 2019-09-25
US20170123835A1 (en) 2017-05-04

Similar Documents

Publication Publication Date Title
JP6579916B2 (ja) 仮想計算機間の通信経路制御方法および計算機システム
US11934341B2 (en) Virtual RDMA switching for containerized
Suo et al. An analysis and empirical study of container networks
US9893977B2 (en) System and method for supporting live migration of virtual machines in a virtualization environment
EP2831730B1 (en) System and method for providing a scalable signaling mechanism for virtual machine migration in a middleware machine environment
US9031081B2 (en) Method and system for switching in a virtualized platform
EP3704602B1 (en) Hardware assisted virtual switch
KR101782342B1 (ko) 가상 스토리지 타겟 오프로드 기법
US8208396B2 (en) Discovery and capability exchange management in a virtualized computing platform utilizing a SR-IOV adapter
US20190121663A1 (en) Method and electronic device for application migration
US9858096B2 (en) Communication device migration method of extension function and communication system
US11283708B1 (en) Dedicating network paths between computing resources in a cloud provider network
US11080189B2 (en) CPU-efficient cache replacment with two-phase eviction
Guay et al. A Scalable Signalling Mechanism for VM Migration with SR-IOV over Infiniband
EP4451126A1 (en) Techniques for cooperative host/guest networking
US20240354143A1 (en) Techniques for cooperative host/guest networking
Zha et al. EZPath: Expediting Container Network Traffic via Programmable Switches
Phase Virtualization Overview

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180710

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190624

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190827

R150 Certificate of patent or registration of utility model

Ref document number: 6579916

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350