JP4295783B2 - 計算機、仮想デバイスの制御方法 - Google Patents

計算機、仮想デバイスの制御方法 Download PDF

Info

Publication number
JP4295783B2
JP4295783B2 JP2006335803A JP2006335803A JP4295783B2 JP 4295783 B2 JP4295783 B2 JP 4295783B2 JP 2006335803 A JP2006335803 A JP 2006335803A JP 2006335803 A JP2006335803 A JP 2006335803A JP 4295783 B2 JP4295783 B2 JP 4295783B2
Authority
JP
Japan
Prior art keywords
virtual
physical
nic
information
virtual device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006335803A
Other languages
English (en)
Other versions
JP2008146566A (ja
JP2008146566A5 (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.)
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 JP2006335803A priority Critical patent/JP4295783B2/ja
Priority to US11/955,761 priority patent/US8291425B2/en
Publication of JP2008146566A publication Critical patent/JP2008146566A/ja
Publication of JP2008146566A5 publication Critical patent/JP2008146566A5/ja
Application granted granted Critical
Publication of JP4295783B2 publication Critical patent/JP4295783B2/ja
Expired - Fee Related 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/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

Description

本発明は、仮想計算機システムの制御や管理などに関する。
近年、単一の計算機上のリソースを複数の仮想的な計算機に分割し、複数の計算機で構成されるシステムを少数の物理的な計算機に集約する技術が注目されている。そして、物理的な計算機の台数を減らすことによって、消費電力の低減や、管理の簡略化など、つまり、運用コストの削減を実現することができる。
これらの仮想計算機の制御技術は、PC(Personal Computer)アーキテクチャなどの安価な計算機において仮想計算機システムを構築するための支援技術が進歩していることから近年注目を浴びているが、これまで、メインフレーム(汎用大型計算機)などの制御において主に実現されてきた。
前記のような仮想計算機システムで、計算機上のネットワークインターフェースカード(NIC)、SCSI(Small Computer System Interface)カードなどのデバイスを制御する方式として、2つの方式がある。なお、以降では、計算機上に実際に搭載されているデバイスを物理デバイスと呼び、仮想計算機上で認識しているデバイスを仮想デバイスと呼ぶ。
第一の方式は、仮想計算機の制御部(管理部)であるハイパバイザが1つあるいは複数の仮想計算機上から仮想デバイスへ発行された制御命令を検知し、制御命令をハイパバイザ上で解析して、物理デバイスの動作をエミュレートする方式である。本方式では複数の仮想計算機が単一の物理デバイスを共有できる反面、ハイパバイザによるオーバーヘッドが大きく、処理性能が劣化する。また、複数の仮想計算機が単一の物理デバイスを共有する場合、複数の仮想計算機が同時にその物理デバイスを使用した場合などの処理性能の確保が困難であり、性能予測が難しいという問題点もある。以降では、この第一の方式を共有方式と呼ぶ。
第二の方式は、ハイパバイザは特定の物理デバイスと仮想計算機間の対応付けを管理して計算機資源の分割のみを行い、仮想計算機から直接物理デバイスの制御を行う方式である。以降では第二の方式を占有方式と呼ぶ。占有方式は高速に動作するが、物理デバイスの共有ができないという短所がある。
特許文献1では、前記2つの方式を有する仮想計算機システムで、仮想デバイスの制御方式を、共有方式から占有方式に変更する、あるいは、占有方式から共有方式に変更する方法が示されている。
また、特許文献2では、前記共有方式において、仮想デバイスの使用状況を監視してメモリのページテーブルの最適化を行う方式が示されている。
実用的なシステムにおいて、すべての仮想デバイスを占有方式で構成した場合、計算機に搭載しなければならない物理デバイスの数は増大する。しかし、計算機上に搭載可能な物理デバイスの数には限界があり、すべての仮想デバイスを占有方式とすることは困難である。
そのため、共有方式と占有方式を混在したシステムを構成することが重要になってくる。
システムによっては、仮想デバイスの使用状況によって、共有方式の性能で十分な場合と、占有方式の性能を確保することが必要な場合が存在する。また、稼働中に仮想デバイスの使用状況が変化することもある。特に、使用状況が変化するシステムにおいて、安定した処理性能を確保するためには、使用状況に応じて即時に方式を変更することが重要となる。
また、システムにおいて、共有方式で稼動する仮想デバイスを占有方式に変更できるか、また、その逆は可能であるかはシステムに搭載されている物理デバイスの情報と、仮想デバイス、物理デバイスの設定などに依存する。たとえば、共有方式の仮想デバイスを占有方式に変更する場合、一般的なPC/AT(Personal Computer/Advanced Technology)などのアーキテクチャでは、その仮想デバイスの搭載位置などの識別子が同一である必要がある。
米国特許第4887202号明細書 米国特許第6725289号明細書
しかしながら、特許文献1では仮想デバイスの制御方式の変更方法について記載しているが、システム構成の情報と、仮想デバイスの使用状況の管理を行っていないため、制御方式の変更時期と変更後の制御方法を決定することができず、外部から変更指示を与えなければならなかった。
特許文献2においても同様に、変更後の制御方式を決定することができなかった。
前記変更を人間が手動で行った場合、計算機の数に比例して管理コストが増大していくため、管理コストが多くかかることになる。また、手動の作業時間を必要とする場合、使用方式の迅速な切り替えが実行できず、長期間の性能劣化を招く可能性があるので、手動部分を介さない高速な変更方式が必要となる。
したがって、前記の仮想デバイスの使用状況とシステム構成の両者の情報を一元的に管理して、制御方式の変更のタイミングと変更後の制御方式を決定する方法が重要となってきている。
本発明は、このような問題点に鑑みてなされたものであり、仮想計算機における仮想デバイスの制御に関して、共有方式と占有方式を含む複数の制御方式を適切に切り替えることを目的とする。
本発明は、自身が有する処理部と記憶部を含むリソースの機能を分割することで、複数の仮想計算機を実現し、さらに周辺機器接続装置あるいはネットワーク接続装置である物理デバイスを複数搭載する計算機である。
計算機は、処理部と記憶部により構成され、複数の仮想計算機と複数の物理デバイスを管理し、物理デバイスを仮想的なデバイスである仮想デバイスとして仮想計算機に割り当て、仮想デバイスと物理デバイスを一対一で対応させる占有方式と、複数の仮想デバイスを1つの物理デバイスに対応させる共有方式と、を含む複数の制御方式のいずれかで仮想デバイスを管理する管理部を備えている。
管理部は、仮想デバイスが現在使用中の状態である活性状態か、現在ほとんどあるいはまったく使用されていない状態である非活性状態のうち、いずれかの使用状態に関する情報を保持する状態情報と、物理デバイスと仮想デバイスに関して、それぞれのアドレス空間を含む構成に関する情報を保持する構成情報と、仮想デバイスと物理デバイスの対応関係に関する情報を保持する対応関係情報と、を有している。
そして、管理部は、状態情報を参照して仮想デバイスの使用状態が変わったと判定した場合、構成情報を参照して制御方式に応じて利用可能な物理デバイスの中から、ハードウェア仕様、識別子、アドレス空間の少なくともいずれか1つ以上の情報に基づいて当該仮想デバイスと互換性のある物理デバイスを選択して対応関係情報において対応付けを行い、その仮想デバイスの制御方式を変更する。
その他の手段については後述する。
本発明によれば、仮想計算機における仮想デバイスの制御に関して、共有方式と占有方式を含む複数の制御方式を適切に切り替えることができる。
以下、各図面を参照しながら、本発明を実施するための最良の形態(以下、実施形態という。)について説明する(参照図以外の図も適宜参照)。ここでは、仮想計算機における仮想デバイスの制御に関し、仮想デバイスの使用状況によって、共有方式と占有方式を変更する(切り替える)ことが有効である代表的な例の1つとして、計算機の高信頼化に向けたデバイスの冗長化技術の例を用いて説明を行う。
なお、デバイスとは、本実施形態においては、SCSIカード、NICおよび入出力装置のことを指すものとするが、他の実施形態を実現する場合は、それら以外に、それらと同質の装置(その他の周辺機器接続装置やネットワーク接続装置など)のことを指すこともあるものとする。
本実施形態の前提と概要についてまず説明すると、企業のシステムではハードウェアの故障に備えて、計算機上のデバイスを複数搭載して冗長化を行うことが一般的である。冗長化の方式として、現用系(現用状態、活性状態)、待機系(待機状態、非活性状態)のデバイスを用いる方式がある。
前記の方式では、現用系と待機系の役割を持った複数の同種のデバイスを組として定義して、仮想的に1つのデバイスとして扱う。
デバイスの機能を果たすために、通常は現用系の役割を持つデバイスを使用する。
待機系のデバイスは、デバイスが故障していないことを確認するために少数のアクセスを行う以外は、使用しない。
そして、現用系のデバイスが故障した場合には、仮想計算機上で稼動するOSは待機系として定義されたデバイスを代替のデバイスとして使用する。
デバイスをすべて占有方式で使用するとデバイス数が増大する。前記冗長構成では待機系ではデバイスの処理性能は求められないため、待機系では共有方式でデバイスを使用することによって、物理デバイスの総数を削減することができる一方、現用系では占有的にデバイスを割り当てることで高速かつ安定した処理性能を確保できる。
また、計算機システムで少数の予備デバイスを用意しておき、待機系のデバイスが現用系の代替デバイスとして使用された場合、本実施形態の仮想計算機システムの制御方式によりハイパバイザなどの制御ソフトウェアがデバイスの使用状況の変化を検知する。そして、仮想デバイスの制御方式を共有方式から予備デバイスを使用した占有方式に変更することによって、使用状況に応じたデバイスの制御方式の変更ができることになる、つまり、システムの状況の変化に対応してデバイスの処理性能を継続して確保することができるようになる。以下、これらについて詳細に説明する。
[第1実施形態]
はじめに、第1実施形態について説明する。まず、仮想計算機システムを稼動させる計算機10の構成の一例に関して、図1を参照して説明する。図1は、計算機10などの構成図である。
計算機10は、1つ以上のCPU(Central Processing Unit)201(201−1〜201−3の総称。以下、他の構成についても同様に表記する。)(処理部)を持ち、フロントサイドバス202を介してノースブリッジ203に接続している。
ノースブリッジ203は、メモリ204(記憶部)およびIO(Input/Output)ブリッジ205と接続し、CPU201とメモリ204との間で行われるデータ転送、メモリ204とIOブリッジ205との間で行われるデータ転送の制御を実行する。ノースブリッジ203は、たとえば、情報通信制御用のLSI(Large Scale Integration)チップにより実現することができる。
IOブリッジ205は、中継装置であり、PCI(Peripheral Component Interconnect)バスなどの1つ以上のIOバス206と接続し、IOバス206上に接続されたIOデバイスとノースブリッジ203とのデータ転送の制御を実行する。
IOデバイスの例として、ここでは、外部記憶装置210と接続するためのSCSIカード207(周辺機器)、ネットワークと接続するためのNIC(Network Interface Card)208(ネットワーク接続装置)、および、キーボードやディスプレイなどと接続するための入出力装置209(周辺機器)を挙げている。
CPU201は、ノースブリッジ203を介してメモリ204上に配置されたプログラムを読み込んで実行し、前記プログラムの内容に従って、必要に応じてノースブリッジ203、IOブリッジ205を介してSCSIカード207、NIC208などに命令を発行し、データ転送制御を実行する。
また、メモリ204およびIOデバイス(SCSIカード207、NIC208など)は、それぞれ計算機10上で一意なアドレス空間(アドレスとして利用可能なメモリ領域)を持つ。CPU201はデータ転送先のアドレスを指定してデータ転送命令を発行する。メモリ204およびIOデバイスは、それぞれ指定されたアドレスに対応したデータの転送を実行する。
次に、図2を参照して、計算機10を制御する仮想計算機システムの構成の一例について説明する。図2は、仮想計算機システムの構成図である。
ハイパバイザ11(管理部)は、主に計算機10上で動作するファームウェアもしくはミドルウェアなどのプログラムとして実装され(つまり、CPU201とメモリ204によって実現され)、前記計算機10の制御、および仮想計算機12(12−1〜12−3)の制御を管理し、単一の計算機10の資源を分割して論理的に複数の仮想計算機12に割り当てる。ハイパバイザ11は、オペレーティングシステム(以下OSと呼ぶ。)よりも下位層のプログラムとして実行されるため、計算機10の起動時に、BIOS(Basic Input/Output System)などのシステム初期化プログラムの実行後に、OSなどを介さずに直接実行される。
ハイパバイザ11の制御下において、計算機10上では1つ以上の仮想計算機12が動作する。仮想計算機12はそれぞれが論理的には図1に示す構成に示される各要素と同等の構成で為るが、すべての機能がハードウェアで実装(実現)される図1の計算機10とは異なり、すべての制御あるいは部分的な制御がハイパバイザ11のプログラムの動作によって実行される。それぞれの仮想計算機12上では、1つのOS13(13−1〜13−3)が動作する。
第1実施形態においては、NIC208の冗長化の場合を例にとり、以降ではIOデバイスの例としてNIC208を用いて説明を行う。また、IOバス206の例として、PCIを用いて説明を行う。
計算機10は、IOデバイスとして少なくとも1つ以上の物理NIC101(101−1〜101−4。NIC208と同様)を有する。ここでは、仮想計算機12上の仮想NIC121と区別するため、計算機10が有するNICを「物理NIC」と呼んでいる。
仮想計算機12は、それぞれ2つ以上の仮想NIC121を有する。前記仮想計算機12上で動作するOS13は、前記仮想NIC121を使用して冗長構成をとる。
ハイパバイザ11は特定の仮想計算機12に対して、特定の物理NIC101を占有的に割り当てる機能を有する。ある物理NIC101が特定の仮想計算機12に割り当てられた場合、前記物理NIC101は前記計算機10からのデータ転送処理のみを実行する。
また、ハイパバイザ11は仮想NIC制御部111(111−1〜111−2)を有し、仮想計算機12上の仮想NIC121の機能をプログラム上で実行(実現)することができる。仮想NIC制御部111は、図6で後述する複数の方式によってNIC制御を実行する。
仮想NIC制御部111は、仮想NIC制御部111内の処理部115が仮想NIC121の冗長化における状態、および、仮想計算機12のシステム構成を参照して、仮想NIC121を処理する方式を選択する。仮想NIC状態管理部114は、仮想NIC121の使用状況を監視して冗長化における状態を判定する。
物理NIC101を使用したデータ転送命令の制御方式の詳細については後述する。
物理NIC状態管理部113は仮想計算機12のシステム構成を管理する。
具体的には、計算機10が有する物理NIC101のハードウェア(仕様)構成情報の管理と、仮想計算機12のシステム構成の管理と、前記仮想計算機12上の仮想NIC121と前記物理NIC101の割り当て管理とを行う。
次に、仮想計算機システムにおける仮想計算機12の構成管理方式と、仮想計算機12のシステム構成の例について説明する。
図3は、物理NIC状態管理部113の構成例を示した図である。
物理NIC情報収集部304および物理NIC割り当て部305は、ハイパバイザ11上で動作するプログラムであり、物理NIC一覧301(構成情報)、仮想NIC一覧302(構成情報)、および、物理・仮想NICマッピング一覧303(対応関係情報)は、ハイパバイザ11が管理するメモリ204の領域中に確保されたデータの格納領域にある。
物理NIC情報収集部304は、計算機10が有する物理NIC101のハードウェア・ソフトウェアに関する情報を収集する機能であり、ハイパバイザ11上で動作するプログラムなどにより実装される。
物理NIC情報収集部304は、ハイパバイザ11が計算機10上で起動した時点で実行され、BIOSなどにより物理NIC101に割り当てられたコンフィグレーション空間を介して構成情報を収集し、物理NIC一覧301を作成する。
物理NIC割り当て部305は、物理NIC101と仮想計算機12上の仮想NIC121との対応付けを管理し、他の機能(構成)から新規の仮想NIC121と物理NIC101との対応付けの要求を受信し、条件に該当する物理NIC101を割り当てる。
物理NIC一覧301は、物理NIC101のハードウェア・ソフトウェアに関する情報の一覧で、テーブルなどの形式で保持される。物理NIC一覧301は、物理NIC情報収集部304によって、計算機10の起動時などに情報収集が行われて項目が設定される。
物理NIC一覧301の構成の一例を、図4を用いて説明する。図4は、物理NIC一覧301の構成例を示した図である。
物理NIC一覧301において、物理NIC101のMAC(Media Access Control)アドレス401は物理NIC101ごとに一意に割り当てられた識別子であり、物理NIC101中の記録領域に保持されている。
デバイス搭載位置403は、PCIなどにおいてPCIバス中の位置を表す識別子で、計算機10上での物理NIC101の搭載位置によって決定される。PCIでは、デバイス搭載位置403はデバイスの基本情報を取得・設定を行う命令を発行する際のアドレスとして用いられる。
モデル名402は物理NIC101の仕様をあらわす識別子であり、前記モデル名402に従ってOSがアクセスするためのコマンド仕様が決定される。
MMIOアドレス404およびIOアドレス405は、物理NIC101を制御するために使用するアドレスであり、物理NIC101のデータ転送処理の制御はこれらのアドレスを用いて行われる。通常は計算機10の起動時にBIOSなどのシステム初期化プログラムによって、これらのアドレスが決定される。
仮想NIC一覧302は仮想計算機上の仮想NICに関する情報の一覧を保持する。
仮想NIC一覧302のテーブルの項目は物理NIC一覧301と同一であるので、重複説明を省略する。
ただし、それぞれの項目の内容は物理NIC情報収集部304によって収集されるのではなく、仮想計算機12の定義時、あるいは仮想計算機12の起動時にハイパバイザ11によって値が決定され、直接ハイパバイザ11によって更新される点で、物理NIC一覧301の場合と異なる。
MACアドレス401の決定方法は、ハイパバイザ11にあらかじめ割り当てられている特定のアドレス空間の中からランダムに1つのアドレスを選択するなどの公知技術を用い、各種アドレスの決定はPC/AT互換機でのBIOSによる決定方法と同一の決定方法を用いて仮想計算機12上で一意なアドレス空間を割り当てることが可能であり、詳細な説明については省略する。
MMIOアドレス404、およびIOアドレス405については、仮想計算機上12で一意なアドレス空間であるだけでなく、仮想NIC一覧302、物理NIC一覧301のすべてのアドレス値を参照して、できる限り計算機10上のすべての物理NIC101の中で一意なアドレスを割り当てるようにする。
物理・仮想NICマッピング一覧303は、計算機10上で稼動する仮想計算機12上の仮想NIC121と物理NIC101の対応付けに関する情報一覧で、テーブルなどの形式で保持される。
物理・仮想NICマッピング一覧303の構成の一例を、図5を用いて説明する。図5は、物理・仮想NICマッピング一覧303の構成例を示した図である。
仮想計算機番号501は、仮想計算機12を一意に特定する識別子である。仮想NIC識別子502は、仮想計算機12上で仮想NIC121を一意に特定する識別子で、たとえば仮想NIC一覧302中のデバイス搭載位置403を用いる。
冗長構成503および冗長化状態504(状態情報)は、仮想計算機12上のOS13が仮想NIC121を冗長構成で使用している場合の状態を保持する。冗長構成503は、仮想計算機12上で仮想NIC121をチーミング(チーム化)する際のチーム名を保持する。冗長化状態504は、仮想NIC121が現用系、あるいは待機系のいずれの状態にあるかを示す。前記冗長構成503および冗長化状態504の項目値の入力、更新方法については、ハイパバイザ11における仮想NIC121の実行方式の制御・管理方法の説明において後述する。
なお、本実施形態では冗長構成を前提とした状態表現を用いて説明しているが、これに限定されるものではなく、他の状況を表す状態表現、あるいはアクセス頻度などの、より汎用的な状態表現を用いてもよい。
物理NIC識別子505は、前記仮想計算機番号501および仮想NIC識別子502で示される仮想NIC121に対応付けられた物理NIC101を一意に特定する識別子で、たとえば物理NIC一覧301中のデバイス搭載位置403の情報を用いる。
物理NIC使用方式506は、ハイパバイザ11が仮想計算機12上のOS13から仮想NIC121に発行された命令を制御する方法を示す。制御方式の例は図6のA、B、Cなどがあり、その詳細については後述する。
冗長構成に関する情報は、図13を用いて後述する入力方法に従って、仮想計算機システムの管理者が入力する。
仮想計算機システムの構成例を図6に示す。なお、ハイパバイザ11における「仮想NIC実行機能」は、図2の仮想NIC制御部111のことを示している。
図6に示すように、本構成例では3台の仮想計算機12−1〜12−3が稼動しており、それぞれ2つずつの仮想NIC121(「A」〜「F」。以下、仮想NIC「A」、あるいは単に「A」などともいう。物理NIC101に関しても同様)を持つ。また、計算機10上には「a」〜「e」の物理NIC101が搭載されている。
各仮想計算機12上では、2つの仮想NIC121がペアとなって現用系・待機系による冗長構成を組んでいる。ここでは、それぞれ、「A」、「C」、「E」が現用系として動作し、「B」、「D」、「F」が待機系として動作している。通常のネットワークトラフィックは現用系の仮想NIC121のみを使用して送信される。待機系の仮想NIC121ではまったくデータの送信は行わないか、定期的に仮想計算機上のOS13による通信確認のデータ送信のみが行われる。
それぞれのOS13が仮想NIC121「A」、「C」、「E」において障害を検知すると、前記OS13はそれぞれペアリングされた仮想NIC「B」、「D」、「F」を使用してデータ送信を行うように変更する。
各現用系の仮想NIC121「A」、「C」、「E」には、それぞれ物理NIC101「a」、「c」、「d」が割り当てられている。待機系の仮想NIC121「B」、「D」、「F」には物理NIC「e」が割り当てられていて、後述する図8(A)の共有方式により共有で使用されている。
仮想NIC121上の冗長構成、および、仮想NIC121と物理NIC101の割り当て(対応)の情報は、物理・仮想NICマッピング一覧303に記録されている。
物理NIC101「b」は、どの仮想NIC121にも割り当てられていないため、システムにおいて故障が発生して前記OS13が待機系の仮想NIC121「B」、「D」、「F」を使用してデータ送信を始めた場合に、その仮想NIC121に対して占有的に割り当てることができる。
次に、仮想計算機12がデータ転送命令を実行する場合の、ハイパバイザ11による制御の実行方式の例について、図7および図8を参照して説明する。
図7は、一般的な計算機10上でNIC208へのアクセスにメモリマップトIO(以下、MMIOと呼ぶ)を使用した場合の、NIC(NIC101および仮想NIC121)の制御方法を示す。
計算機10におけるMMIOによるアクセス方式では、計算機10のメモリ204のアドレス空間上のMMIOアドレス701にOS13がコマンドを示すデータを書き込む処理を実行することによって、NICのコントロールレジスタ702にアクセスすることができる。これによりNICの制御を行う。MMIOアドレス701は計算機10の起動時にシステム初期化を行うBIOSなどによって機器ごとに個別の値が割り当てられる。
各NICのMMIOアドレス701は、メモリ204におけるPCIコンフィグレーション空間と呼ばれる別のアドレス空間上のPCIコンフィグレーションレジスタ703に記載されている値を用いる。MMIOアドレス701を変更する場合は、本領域(PCIコンフィグレーションレジスタ703)の値を変更する。本領域の値は、物理NIC101の場合は計算機10上で一意である必要があり、仮想NIC121の場合は仮想計算機12上で一意である必要がある。
前記のMMIOの制御方式を踏まえ、仮想計算機12におけるMMIOアクセス処理を制御するハイパバイザ11の構成例を、図8(A)〜(C)を用いて説明する。図2に示すハイパバイザ11中の処理部115は以下の(A)〜(C)の各処理方式を実装する。
図2の処理部115は仮想NIC121に対応する物理・仮想NICマッピング一覧303中の物理NIC使用方式506を参照して処理方式を決定し、その内容に示された、以下の(A)〜(C)などの処理方式を選択して実行する。
図8(A)は、仮想計算機12上の複数のNIC機能が単一の物理NIC101を共有する場合の処理部115の構成例である。以降では、図8(A)の方式を共有方式と呼ぶ。
仮想NICエミュレーション部801は、仮想NIC処理実行部811および仮想レジスタ812(ハードウェア仕様で定められた数の仮想コンフィグレーションレジスタと仮想レジスタ)を備えて構成される。また、処理部115は、仮想NICエミュレーション部801の他に、仮想デバイス121に対する制御ソフトウェアである物理NICデバイスドライバ813を備えている。
仮想NIC処理実行部811および物理NICデバイスドライバ813は、ハイパバイザ11上で動作するプログラムである。仮想レジスタ812は、ハイパバイザが管理するメモリ204中の領域に確保されたデータの格納領域である。
仮想NIC処理実行部811および仮想レジスタ812は、仮想計算機12の1つの仮想NICごとに1つ存在する。
物理NICデバイスドライバ813は、物理NIC101ごとに1つずつ存在し、一般的なOSのデバイスドライバ機能と同様に物理NIC101に対する制御を実行する。
図8(A)では、仮想計算機12のNIC機能ごとに、1つの仮想計算機12内で一意なMMIOアドレス1を割り当てる。前記MMIOアドレス1は計算機10上の複数の仮想計算機12で同一の値となってもよい。仮想計算機12上のOSは前記MMIOアドレス1を使用してメモリ空間を介したIOデバイスの制御命令を発行する。
ハイパバイザ11は、仮想計算機12上のMMIOアドレス1へのアクセスを検知し、仮想NIC121のエミュレートを開始する。仮想NICエミュレーション部801中の仮想NIC処理実行部811はMMIOアドレスに対するアクセス内容を読み込んで、物理NIC101が行うデータ転送処理、および、ハードウェアの設定処理をエミュレートするプログラム上で実行し、必要に応じて処理・設定の結果を仮想レジスタ812に反映する。
物理NIC101が起こした割り込み処理は、前記物理NICデバイスドライバ813がトラップし、仮想計算機12上の割り込みに変換して、仮想計算機12に送信する。
図8(A)の方式は、ハイパバイザ11が介入し、さらに物理NIC101が実行する処理を一旦プログラム上でエミュレートして実行するため動作速度が遅いが、物理NICデバイスドライバ813が複数の仮想NIC処理実行部811から受信したデータ転送要求を、整合性を保ちながら物理NIC101へのデータ転送要求に変換することができるため、複数の仮想NICエミュレーション部801で1つの物理NIC101を共有することができる。
また、物理NICデバイスドライバ813を介することにより、仮想計算機12上の仮想NIC121と物理NIC101が異なるコマンド仕様を持っている場合も、物理NICデバイスドライバ813でその差異を吸収することにより柔軟に対応できる。
図8(B),(C)は、仮想計算機12上の仮想NIC121に対して特定の物理NIC101を一対一で割り当て、単一の物理NIC101が単一の仮想NIC121のデータ転送を実行する場合の処理部115の構成例である。
図8(B)は、仮想NIC121のアドレス空間と物理NIC101のアドレス空間を同一にすることができない場合や、IOデバイスがメモリアクセスをする際のアドレスを、仮想計算機12上のアドレスから計算機10上の実際のアドレスに変換するのを支援するハードウェアが存在しない場合などに、使用される。以降では、図8(B)の方式を間接占有方式と呼ぶ。
アドレスを変換するハードウェアの例としては、Intel(登録商標)が提唱する「Virtualization Technology for Direct I/O」仕様に準拠したハードウェアなどが考えられるが、前記の様なハードウェアが存在しない場合は、デバイス(物理NIC101)を占有方式とするために間接占有方式を用いる。
図8(B)では、ハイパバイザ11上には、1つの仮想NIC121ごとに1つのアドレス変換部802が存在する。アドレス変換部802は、それぞれ対応付けられた物理NIC101のMMIOアドレス2の情報を保持している。
仮想計算機12上のOS13は、前記MMIOアドレス1を使用してメモリ空間を介するIOデバイスの制御命令を発行する。
ハイパバイザ11は、仮想計算機12上のMMIOアドレス1へのアクセスを検知して、仮想NIC121の制御を実行する。アドレス変換部802は、MMIOアドレスによるアクセス内容を読み込んで、その内容をそのままMMIOアドレス2へのメモリアクセスとして再実行する。この際、アドレス変換部802は必要に応じて読み込んだデータ転送要求のアドレスの変換を実行するが、それ以外の変更・解析は行わなくてよい。
物理NIC101が起こした割り込み処理は、ハイパバイザ11がトラップし、必要に応じてデバイス識別子を仮想計算機12上のデバイス識別子に変換して仮想計算機12に送信する。
図8(C)は、図8(B)と同一の条件に加えて、仮想計算機12上のMMIOアドレス1と物理NIC101の有するMMIOアドレス2が同一である場合のハイパバイザ11の構成例である。以降では図8(C)を直接占有方式と呼ぶ。
図8(C)では、仮想計算機12上のOS13は、物理NIC101のMMIOアドレス2を使用してメモリ空間を介したIOデバイスの制御命令を発行する。
NICへのデータ転送要求は、OS13から直接物理NIC101に転送される。
ハイパバイザ11は、アドレス変換を一切行う必要が無く、MMIOアドレス2へのアクセスの検知を行わない。
物理NIC101が起こした割り込み処理については、図8(B)と同一の方式のほかに、CPU201が特定の仮想計算機12と一対一で割り付けられている場合には割り込み処理をハイパバイザ11でトラップせずに直接仮想計算機12上に送信する方式を用いてもよい。
直接占有方式では、計算機10が、IOデバイスがメモリアクセスをする際のアドレスを、仮想計算機12上のアドレスから計算機10上の実際のアドレスに変換するのを支援するハードウェアを有していることが適用の前提となる。
占有方式((B)と(C))は共有方式(A)と比べて、高速に処理ができる。特に、(C)はプログラムによるオーバーヘッドが無く高速である。しかし、(B)は仮想NIC121と物理NIC101のコマンド仕様が同一でなければならず、また、複数の仮想NIC121が物理NIC101を共有できない。さらに、(C)は仮想NIC121と物理NIC101のデバイス搭載位置などの識別子が一致し、MMIOアドレス404などのアドレス空間が計算機10上の全物理NIC101のアドレスの中で一意である必要があり、適用可能な構成が制限される。
つまり、まとめると、まず、(A)は、仮想計算機12が物理NIC101へアクセスするのにハイパバイザ11によるプログラムの稼動が必要となりオーバーヘッドが発生して処理速度が遅くなってしまうが、複数の仮想NIC121と1つの物理NIC101を対応付けることができる。
また、(B)は、仮想計算機12が物理NIC101へアクセスするのにハイパバイザ11によるアドレス変換だけが必要となり、処理速度はこの3つの方式の中で中程度である。
そして、(C)は、仮想計算機12が物理NIC101へアクセスするのにハイパバイザ11によるアドレス変換が不要なため処理速度が速いが、アドレス空間の使用など構成に制限がかかる。
すなわち、それぞれの方式には、構成の柔軟性と動作(処理)速度に対するトレードオフの関係が成り立っている。
なお、本実施形態では仮想NIC121へのアクセス方法としてMMIOによるアクセスを使用しているが、IOポートを経由するアクセスなどの他のインターフェースを使用してもよい。
次に、図9〜図12を用いて、ハイパバイザ11における仮想NIC121の状態管理方式について説明する。
図9は、仮想NIC121の状態管理を行う仮想NIC状態管理部114の構成例などを示す図である。
コマンド履歴・統計情報901および処理切り替えポリシー902(判定条件情報)は、ハイパバイザ11が管理するメモリ204領域中に確保されたデータの格納領域であり、仮想NIC121に対してそれぞれ1つずつ生成される。
コマンド履歴・統計情報901は、仮想NIC121が実行するコマンドの履歴情報、および、統計情報を保存する。コマンド履歴・統計情報901は、図10に示すコマンド履歴情報901−1、および、図11に示すコマンド統計情報901−2で構成される。
NICのコマンドの一例を図10を用いて示す。コマンドはメモリ204中にデータとして格納される。
コマンドには、初期化、アドレス設定などのNICの設定を更新するコマンドや、実際のデータの送信・受信を実行するコマンドなどがある。
仮想NIC121へのコマンドはMMIOアクセスなどによって仮想計算機10上のOS13から発行される。共有方式(A)の方式では、ハイパバイザ11がその内容を読み取る。
コマンド履歴・統計部903は、前記のハイパバイザ11が読み取ったコマンドのコマンド名1002を解析して記録処理を決定する。
前記コマンドがNICの設定を変更するコマンドである場合、コマンドとして読み取ったデータ列をそのままコマンド履歴・統計情報901の履歴領域1001にコピーする。
コマンドが送受信のコマンドであった場合、コマンド履歴・統計部903は統計情報のカウンタ(使用頻度)をインクリメントする。カウンタは図11に示すようにコマンド名と実行回数のカウンタで構成される。
カウンタは一定時間でクリアされる。このようにすることで、単位時間当たりのコマンドの実行回数を記録することができる。
なお、間接占有方式、および、直接占有方式の方式では、コマンド履歴・統計情報901を収集せず、これらの方式を使用している場合は後述する処理切り替えポリシー902の判定対象1202としてコマンド履歴・統計情報901は使用できないとしてもよい。
処理切り替えポリシー902は、仮想NIC121の実行する処理を変更する条件と実行する変更内容を規定する規則である。処理切り替えポリシー902は、ハイパバイザ11が管理するメモリ204上の領域に配置されるデータ列などとして実装される。
処理切り替えポリシー902の定義方法の一例としては仮想計算機システムの実装によって固定的に定義する、あるいは、仮想計算機システムの管理者(以下、単に管理者と呼ぶ。)がGUI(Graphical User Interface)もしくはコマンドラインなどのユーザインターフェースを用いて入力して定義するなどの方法がある。
処理切り替えポリシー902の構成の一例を図12に示す。
処理切り替えポリシー902は、1つの対象状態1201、1つ以上の判定対象1202および判定条件1203の組、1つのポリシー適用後状態1204および1つのポリシー適用後処理方式1205で構成される。
対象状態1201、判定対象1202、判定条件1203は、本ポリシーを適用するための条件を示す。判定対象1202は、仮想NIC121の冗長化状態504を示す。
判定対象1202は、本ポリシーの実行を判定するために参照する管理情報を示す。たとえば、「コマンド履歴情報901−1」「コマンド統計情報901−2」、仮想NIC一覧302の「デバイス搭載位置403」「MMIOアドレス404」などである。
判定条件1203の一例としては、判定対象1202ごとにそれぞれ次のようなものがある。
(1)コマンド履歴情報
コマンド履歴情報901−1のコマンド命令種類(図10のコマンド名1002の種類)を参照する。複数のコマンド命令種類の列を、判定条件1203に記載されるコマンド命令種類の列と比較し、コマンド列が一致した場合に判定条件1203に合致すると判断する。
(2)コマンド統計情報
図11のコマンド統計情報901−2のカウンタを判定条件1203の値と比較し、一定のしきい値を超えた場合、もしくは下回った場合に判定条件1203に合致すると判断する。
(3)デバイス搭載位置/MMIOアドレス
たとえば、デバイス搭載位置(403)/MMIOアドレス(404)が計算機10上で一意なことである。条件を満たしたときに判定条件に合致すると判断する。
ポリシー適用後状態1204およびポリシー適用後処理方式1205は、それぞれ、ポリシーの適用後に適用される状態および処理方式の内容を示す。ポリシー適用後状態1204には、物理・仮想NICマッピング一覧303の仮想NIC121に対応する冗長化状態504の値が入り、ポリシー適用後処理方式1205には、物理NIC使用方式506の値が入る。
NIC用途変更管理部904は、コマンド履歴・統計情報901、および、仮想NIC一覧302を参照して条件に合うポリシーを処理切り替えポリシー902から検索し、条件に合致するポリシーが処理切り替えポリシー902に存在する場合はポリシーに従った処理を実行する。
以降では、第1実施形態におけるハイパバイザ11のシステム構成管理、および制御手順について説明する。
仮想計算機12のシステム構成を定義するための、仮想NIC一覧302および物理・仮想NICマッピング一覧303の作成手順の例を、図13のフローチャートを用いて説明する。図13は、仮想計算機12の構成情報の入力手順を示したフローチャートである。
なお、以下の手順において、管理者は、GUIまたはコマンドラインなどのインターフェースを使用して、仮想計算機12の構成情報を入力する。
まず、管理者は、所定数の仮想計算機12の定義を入力する(ステップ1301)。それぞれの仮想計算機12には、計算機10上で一意な仮想計算機番号501を割り当てて入力する。なお、前記仮想計算機番号501は、ハイパバイザ11が仮想計算機12の定義順に自動的に割り振ってもよい。
次に、管理者は、ステップ1301において定義された仮想計算機12が有する1つ以上の仮想NIC121(機能)を定義する(ステップ1302)。
続いて、MACアドレス401およびデバイス搭載位置403の生成は、ハイパバイザ11で自動生成するか否か(ステップ1303)で、その生成方法が分かれる。
ハイパバイザ11が自動生成する場合(ステップ1303でYes)、ハイパバイザ11は定義順などに従って自動的にそれらの値を生成する(ステップ1304)。
ハイパバイザ11が自動生成しない場合(ステップ1303でNo)、管理者は、ユーザインターフェースなどを用いてそれらの値を入力する(ステップ1305)。
次に、モデル名402の生成は、ハイパバイザ11で自動生成するか否か(ステップ1306)で、その生成方法が分かれる。
ハイパバイザ11が自動生成する場合(ステップ1306でYes)、ハイパバイザ11は自動的に規定値を使用する方式などによって生成する(ステップ1307)。
ハイパバイザ11が自動生成しない場合(ステップ1306でNo)、管理者は、ユーザインターフェースなどを用いて所定のリストから選択する方式などにより入力を行う(ステップ1308)。
続いて、物理NIC101と仮想NIC121の対応付けは、ハイパバイザ11で自動生成するか否か(ステップ1309)で、その対応付け方法が分かれる。
ハイパバイザ11が自動で対応付けする場合(ステップ1309でYes)、ハイパバイザ11の物理NIC割り当て部305は、後述する方式に従って所定の条件に合致する物理NIC101を仮想NIC121に割り当て、項目を設定、つまり対応付けを生成する(ステップ1310)。
ハイパバイザ11が自動生成しない場合(ステップ1309でNo)、管理者は、ユーザインターフェースなどを用いて対応付けを入力する(ステップ1311)。
前記仮想計算機12上で仮想NIC121を冗長構成で用いる場合に、仮想計算機12上での仮想NIC121の冗長構成に従って、管理者が冗長構成503および冗長化状態504を入力する(ステップ1312)。なお、このステップ1312は仮想計算機12の定義と同時に行う必要は無く、任意の時点で管理者がユーザインターフェースを用いて入力する、あるいは仮想計算機上12上で冗長構成の状態を取得し、その情報をハイパバイザ11に送信するプログラムを用意しておき、仮想計算機12の起動後に、該仮想計算機12上でプログラムを実行するなどの方法により入力してもよい。
本入力手順において入力が省略された項目は、物理NIC割り当て部305が後述する方法によって決定する。
このようにして、仮想NIC一覧302および物理・仮想NICマッピング一覧303が作成される。
次に、図14のフローチャートを用いて、図9中のNIC用途変更管理部904がポリシーを実行する(処理切り替えポリシー902を使用して処理を行う)手順などを説明する。図14は、処理切り替えポリシーの実行手順のフローチャートである。
NIC用途変更管理部904は、特定の仮想NIC121と対応付けられており、本手順を実行する契機としては、前記仮想NIC121のコマンド履歴・統計部903がコマンド履歴情報901−1を更新したとき、コマンド統計情報901−2のカウンタをクリアする直前、あるいは一定の時間間隔で実行するときなどが考えられる。
まず、コマンド履歴・統計部903は、処理切り替えポリシー902を参照(検索)し(ステップ1401)、たとえば、図12の例で説明した条件が成立しているか(適用可能なポリシーはあるか)を確認(判断)する。
条件が成立しているポリシーが存在しない場合(ステップ1402でNo)、処理を終了する(ステップ1402)。
条件が成立しているポリシーが存在する場合(ステップ1402でYes)、NIC用途変更管理部904は、ポリシー適用後状態1204およびポリシー適用後処理方式1205の情報を使用して、物理・仮想NICマッピング一覧303の情報を更新する(ステップ1403)。このとき、ポリシー適用後処理方式1205がポリシー適用前と異なる場合、仮想NIC121に対応する物理NIC識別子505の情報を空欄に変更する。
仮想NIC状態管理部114は、物理NIC状態管理部113中の物理NIC割り当て部305に対して、NIC用途変更管理部904に対応する仮想NIC121の識別子(仮想計算機番号501および仮想NIC識別子502)をパラメータとして、仮想NIC121に対応する物理NIC101の割り当て要求を送信する(ステップ1404)。
その後、再びステップ1401に戻り、ステップ1401以降の処理を繰り返す。
このようにして、NIC用途変更管理部904などによってポリシーを実行することができる。
なお、NIC用途変更管理部904はハイパバイザ11の外部から状態変更を受け付けるプログラミングインターフェースを備え、前記インターフェースを経由して外部から状態変更の指示を受け付けてもよい。外部から状態変更を受け付ける場合は、図12のポリシー適用後状態1204およびポリシー適用後処理方式1205を入力パラメータとして受け付け、ステップ1403およびステップ1404を実行する。
次に、図15のフローチャートを用いて、図3中の物理NIC割り当て部305が仮想NIC121に対応する物理NIC101を割り当てる方式について説明する。図15は、物理NIC割り当て部305による物理NIC割り当ての実行手順などを示したフローチャートである。
物理NIC割り当て部305は、NIC用途変更管理部904などの他の機能から、仮想NIC121への物理NIC101の割り当て要求を受け付たとき、(あるいは、仮想計算機12の起動時に)ハイパバイザ11によって実行される(ステップ1501)。前記要求は、仮想NIC121を一意に示すための識別子(仮想計算機番号501および仮想NIC識別子502)を、入力パラメータとして必要とする。
以降の説明では、前記入力パラメータで一意に識別された仮想NIC121を仮想NIC(A)と呼ぶ。
次に、物理NIC割り当て部305は、物理・仮想NICマッピング一覧303を参照して、仮想NIC(A)に対応する物理NIC使用方式506が決定されているかどうかを確認する(ステップ1502)。前記物理NIC使用方式506が空欄である(決定していない)場合(ステップ1502でNo)、ステップ1503を実行する。
物理NIC割り当て部305は、図14に示すステップ1401〜1403を実行する、すなわち、前記物理NIC使用方式506の更新を実行(決定)する(ステップ1503)。
なお、前記ステップ1401〜1403の実行後にも物理NIC使用方式506が決定しなかった場合、ハイパバイザ11の実装により定めた初期値などを強制的に使用してもよい。本実施形態では、初期値として共有方式を使用することとして説明を行う。
続いて、物理NIC割り当て部305は、物理・仮想NICマッピング一覧303を参照して、仮想NIC(A)に対応する物理NIC識別子505が決定されているか(対応付けられているか)を確認する(ステップ1504)。前記物理NIC識別子505が空欄の場合、ステップ1505〜1510を実行して仮想NIC(A)に対応する物理NIC識別子505を決定する。
具体的には、物理NIC割り当て部305は、物理NIC一覧301および物理・仮想NICマッピング一覧303を参照して仮想NIC(A)と互換性のある物理デバイス(物理NIC101)の一覧を検索し(ステップ1505)、互換性のある物理デバイスがあるか否かを判断する(ステップ1506)。
互換性の確認方法は、物理NIC使用方式506、デバイス搭載位置403、および、図7中の各種アドレス空間などに依存する。互換性の確認方法の一例のフローチャートを図16に示す。図16は、仮想NICと互換性のある物理NICの選択手順を示したフローチャートである。図16での動作主体は物理NIC割り当て部305である。
なお、以降では、仮想NIC(A)と互換性を比較する物理NIC101を物理NIC(B)と呼ぶ。
物理NIC使用方式506が直接占有方式の場合(ステップ1601でYes)、計算機10がデバイス識別番号の変換機能を持たず(ステップ1602でNo)、仮想NIC(A)と物理NIC(B)のモデル名402とデバイス搭載位置403(デバイス識別子)が一致し(ステップ1603でYes)、さらに仮想NIC(A)のMMIOアドレス404およびIOアドレス405が全ての物理NIC101の中で一意である(ステップ1604でYes)ことが互換性確保のために必要となる。
物理NIC使用方式506が間接占有方式の場合(ステップ1601でNo→ステップ1605でYes)、物理NIC(B)が仮想NIC(A)と対応付けられておらず(ステップ1606でNo)、また、互換性確保のために、仮想NIC(A)と物理NIC(B)のモデル名402が同一である(ステップ1607でYes)必要がある。
ステップ1604の後も、同様に、ステップ1606以降の処理に進む。
図15に戻って、前記ステップ1506で互換性のある物理NIC101がなかった場合(No)、物理NIC使用方式506を変更(ステップ1507)した後、その変更が成功であれば(ステップ1508でYes)、ステップ1505以降の処理を繰り返す。
物理NIC割り当て部305は、その実装によって事前に定められた順序に従って、仮想NIC(A)の物理NIC使用方式506を変更する。たとえば、直接占有方式→間接占有方式→共有方式の順で前記物理NIC使用方式の値を変更する。なお、本実施形態では所定の順番としているが、事前に変更順序を定義するテーブルをハイパバイザ11上に作成しておき、テーブルに定義されている順番に従って変更するなどの方式を行ってもよい。また、0回以上の所定の回数の物理NIC使用方式506の変更を行っても互換性のあるデバイスを発見できなかった場合(つまり、変更が成功しなかった場合)(ステップ1508でNo)、物理NIC101の割り当て失敗処理を行い(ステップ1511)、処理を終了する。
互換性のある物理NIC101が1つ以上発見された場合(ステップ1506でYes)、物理NIC割り当て部305は、所定の手順に従って物理NIC101(物理デバイス)を1つ選択する(ステップ1509)。選択手順の例としては、一番初めに発見された物理NIC101を選択するなどの方法がある。
続いて、物理NIC割り当て部305は、物理・仮想NICマッピング一覧303中の、仮想NIC(A)に対応する物理NIC識別子505の値を前記ステップ1509で選択した物理NIC101の識別子に変更する(ステップ1510)。
このようにして、仮想NIC121に対して物理NIC101を割り当てることができる。
図15の手順の完了後に、物理NIC割り当て部305は仮想NIC(A)に割り当てられた物理NIC101に対して物理NIC初期化手順を実行する。物理NIC101の初期化手順の一例を、図17のフローチャートを用いて説明する。図17は、物理NIC101の初期化手順のフローチャートである。
なお、物理NIC101の初期化手順の実行時は、入力パラメータとして物理NIC識別子505を必要とする。以降では、前記の物理NIC識別子505で識別される物理NIC101を物理NIC(B)と呼び、物理NIC(B)と対応付けられた仮想NICを仮想NIC(A)と呼ぶ。
物理NIC割り当て部305は、物理・仮想NICマッピング一覧303を参照して、物理NIC(B)に対応する物理NIC使用方式506を取得する。前記物理NIC使用方式506が直接占有方式を使用している場合(ステップ1701でYes)、物理NIC識別子505を検索キーの値として物理NIC(B)のPCIコンフィグレーションレジスタ703(図7参照)を検索し、対応するレジスタ値のMMIOアドレス、IOアドレスを仮想NIC(A)の値で更新する(書き換える)(ステップ1702)。
物理NIC割り当て部305は、仮想NIC(A)に対応するコマンド履歴情報901−1を参照し、前記コマンド履歴情報901−1にコマンド命令(コマンド名1002)が記録されているかどうかを確認する(ステップ1703)。コマンド命令が記録されている場合(ステップ1703でYes)、最も古いコマンド命令(コマンド履歴情報901−1)を読み込み(ステップ1704)、前記コマンド命令を物理NIC(B)に対して発行する(ステップ1705)。
物理NIC割り当て部305は、前記ステップ1705で発行したコマンド命令をコマンド履歴情報901−1のリストから削除する(ステップ1706)。削除方法は実装状態に依存するが、たとえばコマンド履歴情報901−1がリングバッファ形式で実装されている場合、削除はリングバッファのポインタアドレスをインクリメントすることによって実行する。
物理NIC割り当て部305は、物理NIC(B)の各種レジスタ値を、仮想NIC(A)に対応する仮想レジスタ812の内容で上書き(更新)する(ステップ1707)。
また、物理NIC割り当て部305は、割り込みハンドラを設定し(ステップ1708)、必要に応じて、計算機10のハードウェアに対して仮想計算機12と物理NIC101の所有関係の(定義)情報(定義テーブルなど。不図示)を更新する(ステップ1709)。
ハードウェアの情報の一例としては、Intel(登録商標)社が公開している「Virtualization Technology for Directed I/O」の仕様書に記載されるドメイン情報およびキャッシュなどの情報がある。ドメイン情報とは、物理NIC識別子505と仮想計算機番号501の対応関係を示す情報である。コンテキストキャッシュ情報は、仮想NIC識別子502と物理NIC識別子505の対応関係を示す情報である。
このようにして、物理NIC101を初期化することができる。
次に、図6の構成例のシステム上で仮想NIC121の処理方式を動的に変更する場合の、仮想計算機システム全体での制御手順を、図18および図19を用いて説明する。
(第一の動作例)
第一の動作例として、仮想計算機12上の現用系NICに障害が発生し、現用系NICから待機系NICに動作が変更された場合に、物理NIC101を共有方式から直接占有方式に変更する制御手順の例について、図18のシーケンスを用いて説明する。図18は、共有方式から直接占有方式に変更する場合のハイパバイザ11の動作例のシーケンスである。また、本動作例において、処理切り替えポリシー902として図12に示した例を用いる。
通常時においては、仮想計算機上12「1」のOS13は仮想NIC「A」として認識されている物理NIC「a」に対して、データ送信コマンドを発行する(ステップ1801)。
仮想NIC「A」は物理NIC「a」に対して直接占有方式で割り当てられており、仮想NIC「A」に対するNIC制御のコマンド命令はハイパバイザ11を経由することなく物理NIC「a」に転送される。
物理NIC「a」において障害が発生した場合、前記OS13からのデータ転送命令の失敗、もしくは、物理NIC「a」のリンクダウンを検出して、前記OS13は仮想計算機12−1上でデータ転送に使用するNICを待機系の仮想NIC「B」に変更する(ステップ1802)。
ただし、ステップ1802は仮想計算機12−1上で実行された動作であり、ハイパバイザ11は前記切り替えの発生を直接的に検知することはできない。
仮想NIC「B」に発行された制御コマンドは仮想NIC「B」のコマンド履歴・統計部903に送信される。コマンド履歴・統計部903では、データ転送命令を解析してコマンド統計情報901を更新(履歴・統計処理)する(ステップ1803)。その後、仮想NIC「B」の処理部115においてコマンドが解析され、共有方式を用いてプログラム上で機能がエミュレート(コマンド実行)される(ステップ1804)。
また、ステップ1804の後も、ステップ1803と同様の処理が行われる(ステップ1804−2)。
コマンド履歴・統計情報901情報の更新を契機として、もしくは、一定時間ごとに、仮想NIC用途変更管理部904が図14において説明した手順に従い、ポリシーを確認する(ステップ1805)。
NIC用途変更管理部904は、待機系の仮想NIC「B」における単位時間当たりの送信パケット数が一定値を超えたことなどを検知すると、ポリシーを適用して物理・仮想NICマッピング情報303の冗長化状態504、および物理NIC使用方式506を変更する(ステップ1806)。
物理NIC割り当て部305は、仮想NIC「B」の処理部115(仮想NIC「B」に対応する仮想NIC制御部111の処理部115。以下同様)の状態を確認する(ステップ1807)。物理NIC割り当て部305は、仮想NIC「B」が新規コマンドを読み込むタイミング、もしくは、処理すべき命令がなくアイドル状態となるまで処理を停止し、それらのいずれかの状態になった時点で、処理部がコマンドを実行することを抑制(停止)するように指示する。以降、処理部ではコマンドの実行を停止する。
物理NIC割り当て部305は、図15に示す方法に従って、仮想NIC「B」と互換性のある物理NICを検索する。
物理NIC「b」はデバイス識別番号(MACアドレス401)が仮想NICと物理NICで一致し、なおかつ仮想NIC「B」のMMIOアドレス404が計算機10上のすべての物理NIC101上で一意であるため、互換性があると確認され(図15のステップ1506でYes)、物理NIC「b」が選択される(物理NICの対応付けが行われる)(ステップ1808)。
次に、物理NIC割り当て部305は、物理NIC「b」に対して、図17に示す手順に従ってMMIOアドレス404、IOアドレス405、およびレジスタを仮想NIC「B」の値に書き換え、コマンド履歴情報901−1に記録された設定コマンドを再実行し、物理NIC「b」を初期化する(ステップ1809)。
待機系仮想NIC「B」の処理部は、前記ステップ1809の実行後に、ステップ1807の時点でコマンドを読み込むタイミングであった場合、読み込んだコマンドを物理NIC「b」に対して発行(転送)する(ステップ1810)。
仮想NIC「B」の各種アドレスを物理NIC「b」が引き継いでいるため、ステップ1810以降のコマンド実行、および、結果状態の確認は仮想計算機12上のOS13から直接物理NIC「b」に対して発行される(ステップ1811)。
このようにして、上記手順により、直接占有方式の高速な実装方式によって、物理NIC「b」を占有的に仮想NIC「B」に割り当てることが実現される。
(第二の動作例)
第二の動作例として、仮想計算機12上の現用系NICに障害が発生し、待機系NICに動作が変更された場合に、物理NIC101を間接占有方式に変更する制御手順の例について、図19を用いて説明する。図19は、共有方式から間接占有方式に変更する場合のハイパバイザ11の動作例のシーケンスである。
図19における動作の概要は図18と同様であるが、物理NIC割り当て部305の動作以降の処理が異なる。図19のステップ1901〜1909は、図18のステップ1801〜1807と同一であるので、説明を省略する。
ステップ1909の後、物理NIC割り当て部305は、図15に示す方法に従って、仮想NIC「D」と互換性のある物理NICを検索する。しかしながら、物理NIC「b」はデバイス識別番号が仮想NIC「D」と一致せず、互換性があるデバイスとして認められない(ステップ1910)。
続いて、物理NIC割り当て部305は、図15中のステップ1507の手順を実行する。本動作例では、物理NIC使用方式506を直接占有方式から間接占有方式に変更する。
物理NIC割り当て部305は、前記条件で再び互換性のあるデバイスを検索する。物理NIC「b」はモデル名が仮想NIC「D」と同一であり、互換性があると確認されて間接占有方式用のデバイスとして選択される(ステップ1911)。
次に、物理NIC割り当て部305は、図17の手順に従ってレジスタを仮想NIC「B」の値に書き換え、コマンド履歴情報901−1に記録された設定コマンドを再実行して物理NIC「b」を初期化する(ステップ1913)。
これにより、ステップ1913以降、仮想計算機12「2」のNICに関するデータ転送命令(ステップ1915,1917)などは、一度仮想NIC「D」の処理部に転送される。前記処理部は間接占有方式の方式に従って、デバイス識別子、アドレスを書き換え、コマンドを物理NIC「b」に対して発行する(コマンド転送する)(ステップ1914,1916,1918)。
このように、上記手順により、直接占有方式が実行不可能なシステム構成である場合も、定められた手順に従って物理NIC101を仮想NIC121に対して占有的に割り当てるように処理方式を変更することができる。
上記の第一の動作例、および第二の動作例に示したとおりに、本実施形態で示した仮想計算機システムを用いることによって、まず、仮想計算機12上で仮想NIC121が待機系として使用されている場合は複数の仮想NIC121が一つの物理NICを共有することで物理NIC101の数を減少させることができる。さらに、使用状況の変化に応じて仮想NIC121の状態管理を行い、システム構成を参照しつつ所定の手順に従って物理NIC101を占有的に仮想NIC121に割り当てる制御を行い、低オーバーヘッドのデータ転送処理を選択する制御を実現することができる。
[第2実施形態]
第2実施形態は第1実施形態と同一のシステム構成をとる。第1実施形態の構成に対して以下の処理を変更する。
図15に示す物理NIC割り当て部305の処理中のステップ1505において、直接占有方式の互換デバイスが存在せず、間接占有方式の互換デバイスが発見された場合において、図17に示す初期化処理を実行せずに、仮想計算機12上のOS13にデバイス情報の更新通知を送信する。
更新通知の例としてはデバイスのホットプラグの既存の方式を用いることができるため、詳細については省略する。
デバイス搭載位置403が仮想NIC121と物理NIC101で異なる場合の処理の一例としては、物理NIC101のデバイス搭載位置403を指定してデバイスの追加を通知し、その後仮想NIC121のデバイス搭載位置403を指定してデバイスの削除を通知する方法がある。
また、ステップ1510における物理・仮想NICマッピング一覧303の更新時に、仮想NIC121の各種アドレスおよびデバイス搭載位置403を物理NIC101の値に更新する。
仮想計算機12上のOS13は通知されたデバイスに対するデバイスドライバの再初期化を実行する。
これにより、仮想NIC121のデバイス搭載位置403、および、MMIOアドレス404などの各種アドレス空間が更新されたことが仮想計算機12上のOS13に通知されるため、間接占有方式ではなく、高速な直接転送方式を用いることができる。
以上で実施形態の説明を終えるが、本発明の態様はこれらに限定されるものではない。
たとえば、本実施形態では、NICを例に挙げて説明したが、その他に、SCSIカードなどの別のデバイスにも同様に本発明を適用することができる。
また、ハイパバイザは、仮想デバイスの制御方式を変更するとき、その仮想デバイスのそのときの使用状態を、計算機の表示部(不図示)に表示させるようにしてもよい。
さらに、仮想計算機における仮想デバイスの制御に関し、共有方式と占有方式のほかに、別の制御方式も設け、3つ以上の制御方式の中から適切な制御方式を選んで切り替えるようにしてもよい。
その他、ハードウェアやフローチャートなどの具体的な構成について、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
計算機などの構成図である。 仮想計算機システムの構成図である。 物理NIC状態管理部の構成例を示した図である。 物理NIC一覧/仮想NIC一覧の構成例を示した図である。 物理・仮想NICマッピング一覧の構成例を示した図である。 仮想計算機システムの構成例である。 NICのアクセスインターフェースの一例を示した図である。 仮想NIC制御部の処理部の構成例を示した図である。 仮想NIC状態管理部の構成例などを示した図である。 コマンド履歴情報の構成例を示した図である。 コマンド統計情報の構成例を示した図である。 処理切り替えポリシーの構成例を示した図である。 仮想計算機の構成情報の入力手順のフローチャートである。 処理切り替えポリシーの実行手順のフローチャートである。 物理NIC割り当ての実行手順のフローチャートである。 仮想NICと互換性のある物理NICの選択手順のフローチャートである。 物理NICの初期化手順のフローチャートである。 共有方式から直接占有方式に変更する場合のハイパバイザの動作例のシーケンスである。 共有方式から間接占有方式に変更する場合のハイパバイザの動作例のシーケンスである。
符号の説明
10 仮想計算機
11 ハイパバイザ
12 仮想計算機
13 オペレーティングシステム(OS)
101 物理NIC
111 仮想NIC制御部
121 仮想NIC
113 物理NIC状態管理部
114 仮想NIC状態管理部
115 処理部
201 CPU
204 メモリ
207 SCSIカード
208 NIC
209 入出力装置
210 外部記憶装置
301 物理NIC一覧
302 仮想NIC一覧
303 物理・仮想NICマッピング一覧
305 物理NIC割り当て部
401 MACアドレス
402 モデル名
403 デバイス搭載位置
404 MMIOアドレス
405 IOアドレス
501 仮想計算機番号
502 仮想NIC識別子
503 冗長構成
504 冗長化状態
505 物理NIC識別子
506 物理NIC使用方式
701 MMIOアドレス
702 レジスタ
703 PCIコンフィグレーションレジスタ
801 エミュレーション部
802 アドレス変換部
811 仮想NIC処理実行部
812 仮想レジスタ
813 物理NICデバイスドライバ
901 コマンド履歴・統計情報
902 処理切り替えポリシー
903 コマンド履歴・統計部
904 NIC用途変更管理部

Claims (9)

  1. 自身が有する処理部と記憶部を含むリソースの機能を分割することで、複数の仮想計算機を実現し、さらに周辺機器接続装置あるいはネットワーク接続装置である物理デバイスを複数搭載する計算機であって、
    前記処理部と前記記憶部により構成され、前記複数の仮想計算機と前記複数の物理デバイスを管理し、前記物理デバイスを仮想的なデバイスである仮想デバイスとして前記仮想計算機に割り当て、仮想デバイスと物理デバイスを一対一で対応させる占有方式と、複数の仮想デバイスを1つの物理デバイスに対応させる共有方式と、を含む複数の制御方式のいずれかで前記仮想デバイスを管理する管理部を備え、
    前記管理部は、
    前記仮想デバイスが現在使用中の状態である活性状態か、現在ほとんどあるいはまったく使用されていない状態である非活性状態のうち、いずれかの使用状態に関する情報を保持する状態情報と、
    前記物理デバイスと前記仮想デバイスに関して、それぞれのアドレス空間を含む構成に関する情報を保持する構成情報と、
    前記仮想デバイスと前記物理デバイスの対応関係に関する情報を保持する対応関係情報と、
    を有し、
    前記状態情報を参照して前記仮想デバイスの使用状態が変わったと判定した
    前記構成情報および前記対応関係情報を参照して、当該仮想デバイスの制御方式に対応する物理デバイスを検索し、
    前記検索した物理デバイスのうち、ハードウェア仕様、識別子、アドレス空間の少なくともいずれか1つ以上の情報に基づいて互換性のある物理デバイスの有無を判断し、
    前記互換性のある物理デバイスが有る場合、
    前記互換性のある一つの物理デバイスを選択し、
    前記対応関係情報において前記仮想デバイスと前記互換性のある一つの物理デバイスとを関係付け、
    前記互換性のある物理デバイスが無い場合、
    前記対応関係情報に含まれる当該仮想デバイスの制御方式を変更し、
    当該変更後の制御方式に対応する物理デバイスが、互換性のある物理デバイスとなるとき、前記対応関係情報において前記仮想デバイスと当該変更後の制御方式に対応する物理デバイスとを関係付ける
    ことを特徴とする計算機。
  2. 前記管理部は、
    前記仮想デバイスが前記活性状態と非活性状態のいずれの使用状態なのかを判定するための前記仮想デバイスの使用状況に関する判定条件、および、前記仮想デバイスがその判定条件を満たしたときに適用する前記制御方式の情報、を保持する判定条件情報と、を、さらに有し、
    前記状態情報および前記判定条件情報を参照して前記仮想デバイスの使用状態が変わったと判定する
    ことを特徴とする請求項1に記載の計算機。
  3. 前記判定条件は、前記仮想計算機から前記仮想デバイスに対して与えられるコマンドの種類に関する情報であることを特徴とする請求項2に記載の計算機。
  4. 前記判定条件は、前記仮想デバイスの使用頻度に関するしきい値であることを特徴とする請求項2に記載の計算機。
  5. 前記管理部は、
    新たに選択された仮想デバイスに関する設定を記憶し、その仮想デバイスの制御方式に基づいて前記物理デバイスの設定を初期化し、その仮想デバイスに関して記憶した設定を前記物理デバイスに複製して適用する
    ことを特徴とする請求項1または請求項2に記載の計算機。
  6. 前記占有方式は、前記仮想計算機が前記仮想デバイスに対して与えたコマンドを前記物理デバイスに直接送信することができる直接占有方式と、前記仮想計算機が前記仮想デバイスに対して与えたコマンドを前記管理部がアドレス変換してから前記物理デバイスに転送する間接占有方式と、の2種類ある
    ことを特徴とする請求項1または請求項2に記載の計算機。
  7. 前記管理部は、
    前記構成情報を参照して前記仮想デバイスと互換性のある物理デバイスがないと判定した場合、前記仮想計算機におけるオペレーティングシステムに対して、前記仮想デバイスに対する制御ソフトウェアであるデバイスドライバの設定更新要求を送信することで、その仮想計算機に前記直接占有方式を実現させる
    ことを特徴とする請求項6に記載の計算機。
  8. 前記管理部は、
    前記仮想デバイスの制御方式を変更するとき、その仮想デバイスに関するその変更前あるいは変更後の少なくともいずれかの使用状態を、前記計算機の表示部に表示させる
    ことを特徴とする請求項1または請求項2に記載の計算機。
  9. 自身が有する処理部と記憶部を含むリソースの機能を分割することで、複数の仮想計算機を実現し、さらに周辺機器接続装置あるいはネットワーク接続装置である物理デバイスを複数搭載する計算機による仮想デバイスの制御方法であって、
    前記計算機は、
    前記処理部と前記記憶部により構成され、前記複数の仮想計算機と前記複数の物理デバイスを管理し、前記物理デバイスを仮想的なデバイスである仮想デバイスとして前記仮想計算機に割り当て、仮想デバイスと物理デバイスを一対一で対応させる占有方式と、複数の仮想デバイスを1つの物理デバイスに対応させる共有方式と、を含む複数の制御方式のいずれかで前記仮想デバイスを管理する管理部を備えており
    前記管理部は、
    前記仮想デバイスが現在使用中の状態である活性状態か、現在ほとんどあるいはまったく使用されていない状態である非活性状態のうち、いずれかの使用状態に関する情報を保持する状態情報と、
    前記物理デバイスと前記仮想デバイスに関して、それぞれのアドレス空間を含む構成に関する情報を保持する構成情報と、
    前記仮想デバイスと前記物理デバイスの対応関係に関する情報を保持する対応関係情報と、
    を有しており
    前記状態情報を参照して前記仮想デバイスの使用状態が変わったと判定した
    前記構成情報および前記対応関係情報を参照して、当該仮想デバイスの制御方式に対応する物理デバイスを検索し、
    前記検索した物理デバイスのうち、ハードウェア仕様、識別子、アドレス空間の少なくともいずれか1つ以上の情報に基づいて、互換性のある物理デバイスの有無を判断し、
    前記互換性のある物理デバイスが有る場合、
    前記互換性のある一つの物理デバイスを選択し、
    前記対応関係情報において前記仮想デバイスと前記互換性のある一つの物理デバイスとを関係付け、
    前記互換性のある物理デバイスが無い場合、
    前記対応関係情報に含まれる当該仮想デバイスの制御方式を変更し、
    当該変更後の制御方式に対応する物理デバイスが、互換性のある物理デバイスとなるとき、前記対応関係情報において前記仮想デバイスと当該変更後の制御方式に対応する物理デバイスとを関係付ける
    ことを特徴とする仮想デバイスの制御方法。
JP2006335803A 2006-12-13 2006-12-13 計算機、仮想デバイスの制御方法 Expired - Fee Related JP4295783B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006335803A JP4295783B2 (ja) 2006-12-13 2006-12-13 計算機、仮想デバイスの制御方法
US11/955,761 US8291425B2 (en) 2006-12-13 2007-12-13 Computer, control method for virtual device, and program thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006335803A JP4295783B2 (ja) 2006-12-13 2006-12-13 計算機、仮想デバイスの制御方法

Publications (3)

Publication Number Publication Date
JP2008146566A JP2008146566A (ja) 2008-06-26
JP2008146566A5 JP2008146566A5 (ja) 2008-08-21
JP4295783B2 true JP4295783B2 (ja) 2009-07-15

Family

ID=39585645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006335803A Expired - Fee Related JP4295783B2 (ja) 2006-12-13 2006-12-13 計算機、仮想デバイスの制御方法

Country Status (2)

Country Link
US (1) US8291425B2 (ja)
JP (1) JP4295783B2 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8214467B2 (en) * 2007-12-14 2012-07-03 International Business Machines Corporation Migrating port-specific operating parameters during blade server failover
JP5164628B2 (ja) 2008-03-24 2013-03-21 株式会社日立製作所 ネットワークスイッチ装置、サーバシステム及びサーバシステムにおけるサーバ移送方法
US8103810B2 (en) * 2008-05-05 2012-01-24 International Business Machines Corporation Native and non-native I/O virtualization in a single adapter
US20100011230A1 (en) * 2008-07-08 2010-01-14 Olaf Mater Link aggregation with dynamic bandwidth management to reduce power consumption
JP5180729B2 (ja) * 2008-08-05 2013-04-10 株式会社日立製作所 計算機システム及びバス割当方法
US8910169B2 (en) 2008-09-30 2014-12-09 Intel Corporation Methods and systems to perform a computer task in a reduced power consumption state
US8117346B2 (en) * 2008-10-03 2012-02-14 Microsoft Corporation Configuration space virtualization
JP5352848B2 (ja) * 2008-11-28 2013-11-27 株式会社日立製作所 仮想計算機の制御方法及び計算機装置
JP4918112B2 (ja) * 2009-03-31 2012-04-18 株式会社エヌ・ティ・ティ・ドコモ 情報処理装置および制御方法
JP5074457B2 (ja) * 2009-06-04 2012-11-14 株式会社日立製作所 計算機システム、スイッチ切り替え方法及びpciスイッチ
US8180877B2 (en) * 2009-06-04 2012-05-15 International Business Machines Corporation Logically partitioned system having subpartitions with flexible network connectivity configuration
EP2472396A1 (en) * 2009-10-01 2012-07-04 Mitsubishi Electric Corporation Computer device
US8713139B1 (en) * 2009-10-29 2014-04-29 Hewlett-Packard Development Company, L.P. Automatic fixup of network configuration on system image move
JP2011118578A (ja) * 2009-12-02 2011-06-16 Renesas Electronics Corp 情報処理装置
US8572610B2 (en) * 2009-12-09 2013-10-29 General Electric Company Patient monitoring system and method of safe operation with third party parameter applications
US8898663B2 (en) * 2009-12-16 2014-11-25 Symantec Corporation Storage visibility in virtual environments
JP5282046B2 (ja) * 2010-01-05 2013-09-04 株式会社日立製作所 計算機システム及びその可用化方法
JP5477047B2 (ja) * 2010-02-25 2014-04-23 富士通株式会社 情報処理装置、仮想計算機接続方法、プログラム及び記録媒体
JP2011203810A (ja) * 2010-03-24 2011-10-13 Hitachi Ltd サーバ、計算機システム及び仮想計算機管理方法
WO2011135637A1 (en) * 2010-04-30 2011-11-03 Hitachi,Ltd. Computer system and control method thereof
DE102010029346A1 (de) * 2010-05-27 2011-12-01 Robert Bosch Gmbh Verfahren zum Verarbeiten von Nachrichten
US9396000B2 (en) 2010-06-25 2016-07-19 Intel Corporation Methods and systems to permit multiple virtual machines to separately configure and access a physical device
US8458699B2 (en) 2010-11-18 2013-06-04 Hewlett-Packard Development Company, L.P. Methods, systems, and apparatus to prioritize computing devices for virtualization
US9009509B2 (en) 2011-02-04 2015-04-14 Panasonic Intellectual Property Corporation Of America Virtual computer system, device sharing control method, computer-readable recording medium, and integrated circuit
JP5585844B2 (ja) * 2011-03-25 2014-09-10 株式会社日立製作所 仮想計算機の制御方法及び計算機
US20140344419A1 (en) * 2011-05-13 2014-11-20 Hitachi, Ltd. Computer system, method of controlling network interface
US8761187B2 (en) * 2011-06-14 2014-06-24 Futurewei Technologies, Inc. System and method for an in-server virtual switch
JPWO2012176278A1 (ja) * 2011-06-21 2015-02-23 富士通株式会社 情報処理装置、仮想マシン制御方法およびプログラム
US9210098B2 (en) 2012-02-13 2015-12-08 International Business Machines Corporation Enhanced command selection in a networked computing environment
US8838799B2 (en) * 2012-02-13 2014-09-16 International Business Machines Corporation Command management in a networked computing environment
US9154451B2 (en) * 2012-08-21 2015-10-06 Advanced Micro Devices, Inc. Systems and methods for sharing devices in a virtualization environment
US9065678B2 (en) * 2012-10-24 2015-06-23 Cisco Technology, Inc. System and method for pinning virtual machine adapters to physical adapters in a network environment
JP5917441B2 (ja) * 2013-06-03 2016-05-11 株式会社日立製作所 仮想計算機システム、sr−iov対応デバイスの制御方法
US9246752B2 (en) * 2013-06-18 2016-01-26 International Business Machines Corporation Ensuring health and compliance of devices
US9608842B2 (en) 2013-12-13 2017-03-28 Intel Corporation Providing, at least in part, at least one indication that at least one portion of data is available for processing
US9753883B2 (en) * 2014-02-04 2017-09-05 Netronome Systems, Inc. Network interface device that maps host bus writes of configuration information for virtual NIDs into a small transactional memory
US9537822B2 (en) * 2014-07-30 2017-01-03 Dell Products, L.P. UEFI and operating system driver methods for updating MAC address in LAN-based NIC
JP6278868B2 (ja) * 2014-08-28 2018-02-14 三菱電機株式会社 通信制御装置および計算装置
CN105518620B (zh) 2014-10-31 2019-02-01 华为技术有限公司 一种网卡配置方法及资源管理中心
US9537801B1 (en) * 2015-01-31 2017-01-03 Netronome Systems, Inc. Distributed packet ordering system having separate worker and output processors
CN106572047A (zh) * 2015-10-09 2017-04-19 东软集团股份有限公司 物理网络安全设备及其控制方法
WO2017068770A1 (ja) * 2015-10-22 2017-04-27 日本電気株式会社 コンピュータ、デバイス割当管理方法及びプログラム記録媒体
US10469399B2 (en) 2015-12-29 2019-11-05 International Business Machines Corporation Managing remote device based on physical state of a management device
US10152344B2 (en) * 2016-08-18 2018-12-11 Red Hat Israel, Ltd. Coupling a network interface card (NIC) of a host system to a virtual machine
CN108023837B (zh) * 2016-10-31 2020-11-20 鸿富锦精密电子(天津)有限公司 虚拟网络交换机系统及其建立方法
US10263832B1 (en) * 2016-12-29 2019-04-16 Juniper Networks, Inc. Physical interface to virtual interface fault propagation
US10496531B1 (en) * 2017-04-27 2019-12-03 EMC IP Holding Company LLC Optimizing virtual storage groups by determining and optimizing associations between virtual devices and physical devices
JP7007549B2 (ja) 2017-05-19 2022-01-24 富士通株式会社 情報処理システム、管理装置、及び、情報処理システムの制御方法
US10747872B1 (en) * 2017-09-27 2020-08-18 Fireeye, Inc. System and method for preventing malware evasion
US20190334862A1 (en) * 2018-04-27 2019-10-31 Microsoft Technology Licensing, Llc Seamless Network Characteristics For Hardware Isolated Virtualized Environments
US20190114195A1 (en) * 2018-08-22 2019-04-18 Intel Corporation Virtual device composition in a scalable input/output (i/o) virtualization (s-iov) architecture

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS588073B2 (ja) * 1977-01-28 1983-02-14 株式会社日立製作所 アドレス変換装置
JPH0792761B2 (ja) * 1985-07-31 1995-10-09 株式会社日立製作所 仮想計算機システムの入出力制御方法
JPH0758469B2 (ja) * 1988-06-17 1995-06-21 日本電気株式会社 仮想計算機システムの構成変更方式
JPH08235099A (ja) * 1995-02-27 1996-09-13 Hitachi Ltd 仮想計算機システム
US6125411A (en) * 1995-09-13 2000-09-26 Hitachi, Ltd. System storing plural I/O arrangement information wherein each I/O arrangement information corresponding to each operating system is created in response to more than two operating systems
US6725289B1 (en) * 2002-04-17 2004-04-20 Vmware, Inc. Transparent address remapping for high-speed I/O
JP4119239B2 (ja) * 2002-12-20 2008-07-16 株式会社日立製作所 計算機資源割当方法、それを実行するための資源管理サーバおよび計算機システム
US7467381B2 (en) * 2003-12-16 2008-12-16 Intel Corporation Resource partitioning and direct access utilizing hardware support for virtualization
US7546398B2 (en) * 2006-08-01 2009-06-09 International Business Machines Corporation System and method for distributing virtual input/output operations across multiple logical partitions

Also Published As

Publication number Publication date
US20080162800A1 (en) 2008-07-03
US8291425B2 (en) 2012-10-16
JP2008146566A (ja) 2008-06-26

Similar Documents

Publication Publication Date Title
JP4295783B2 (ja) 計算機、仮想デバイスの制御方法
US11068355B2 (en) Systems and methods for maintaining virtual component checkpoints on an offload device
US20200278880A1 (en) Method, apparatus, and system for accessing storage device
US9218195B2 (en) Vendor-independent resource configuration interface for self-virtualizing input/output device
US9612966B2 (en) Systems, methods and apparatus for a virtual machine cache
EP2577450B1 (en) Virtual machine migration techniques
JP5305848B2 (ja) データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム
JP5352132B2 (ja) 計算機システム及びそのi/o構成変更方法
JP4295184B2 (ja) 仮想計算機システム
US7844746B2 (en) Accessing an effective address and determining whether the effective address is associated with remotely coupled I/O adapters
JP5272709B2 (ja) アドレス割当方法、コンピュータ、物理マシン、プログラム、及びシステム
WO2021000689A1 (zh) 虚拟机迁移的方法以及装置
US20110004708A1 (en) Computer apparatus and path management method
US20130326177A1 (en) Computer system, virtualization mechanism, and control method for computer system
JP2011517497A (ja) Pcieのsr−iov機能をレガシー機能として現出するように変換するシステム及び方法
US20100100892A1 (en) Managing hosted virtualized operating system environments
CN112306624A (zh) 一种信息处理方法、物理机和pcie设备
US20100275203A1 (en) Storage management system and storage management method in virtualization environment
JP2004234114A (ja) 計算機システム、計算機装置、オペレーティングシステムの移送方法及びプログラム
US11922072B2 (en) System supporting virtualization of SR-IOV capable devices
JP4660362B2 (ja) 計算機システム
CN113312141B (zh) 用于卸载串行端口模拟的计算机系统、存储介质和方法
US7266631B2 (en) Isolation of input/output adapter traffic class/virtual channel and input/output ordering domains
US9110731B1 (en) Hard allocation of resources partitioning
WO2016110951A1 (ja) 計算機システム、ライセンス管理方法、及び、管理計算機

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080707

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080707

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081222

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090410

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

Free format text: PAYMENT UNTIL: 20120417

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120417

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130417

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130417

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140417

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees