JP2008305034A - デバイス割り当て変更方法 - Google Patents

デバイス割り当て変更方法 Download PDF

Info

Publication number
JP2008305034A
JP2008305034A JP2007149881A JP2007149881A JP2008305034A JP 2008305034 A JP2008305034 A JP 2008305034A JP 2007149881 A JP2007149881 A JP 2007149881A JP 2007149881 A JP2007149881 A JP 2007149881A JP 2008305034 A JP2008305034 A JP 2008305034A
Authority
JP
Japan
Prior art keywords
guest
allocation
vmm
changing method
change
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
JP2007149881A
Other languages
English (en)
Other versions
JP5018252B2 (ja
Inventor
Tomonori Sekiguchi
知紀 関口
Yukie Tajima
幸恵 田島
Hidetoshi Sato
秀俊 佐藤
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 JP2007149881A priority Critical patent/JP5018252B2/ja
Priority to US12/132,406 priority patent/US8028184B2/en
Publication of JP2008305034A publication Critical patent/JP2008305034A/ja
Application granted granted Critical
Publication of JP5018252B2 publication Critical patent/JP5018252B2/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/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/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/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】 仮想計算機のゲストOSへのデバイスの割り当て方法について、エミュレーションによる割り当てとゲストOSから直接操作可能な割り当てとの間で切り替えることが難しいという課題がある。
【解決手段】 VMM内のゲストOSに仮想的なサスペンド割り込みの送信と、ゲストOSにサスペンドからの復帰処理を開始させる電源制御通知処理と、ゲストOSのサスペンド処理をトラップするゲスト電源処理と、ゲストOSのサスペンド中にVMMの論理デバイス定義を更新するI/O構成変更処理と、ゲストOSがサスペンドから復帰したときに実行するI/O再構成処理が発行するI/O命令をエミュレートして新しい論理デバイス構成をゲストOSに提供するゲストI/Oエミュレート処理とにより、ゲストOSへのデバイス割り当ての切り替えを実現する。
【選択図】図3

Description

本発明は、一台の計算機上で仮想計算機や論理分割により複数のゲストオペレーティングシステムを実行する方法に関する。特に、ゲストOSへのデバイスの割り当て方法に関する。
1台の計算機上に仮想的な計算機を構成し、複数のオペレーティングシステム(OS)を並行して実行する技術が広く普及し始めている。これらを実現する技術としては、仮想計算機方式と論理分割方式(LPAR)の2つがある。これらの技術によって実行するOSをゲストOSと呼ぶ。
仮想計算機方式は、仮想計算機モニタ(VMM)と呼ばれる制御ソフトウェアが、計算機のハードウェアやプロセッサの動作を制御する特別なレジスタ(制御レジスタ)を仮想化し、複数の仮想的な計算機を作り出す。ゲストOSは、VMMが作り出した仮想計算機上で実行する。具体的には、VMMはゲストOSが実行するI/O命令や制御レジスタ操作等のCPUの特権命令をトラップしてエミュレートし、仮想計算機環境を作り出す。仮想計算機方式では、複数のゲストOSが1つのI/Oデバイスを共有できる。これは、VMMが、ゲストOSに見せている仮想的なI/Oデバイスへのアクセスをトラップして、実際のデバイスへのアクセスに変換して処理(エミュレート)するためである。これによって、計算機に搭載されているI/Oデバイスへの依存度の低い、柔軟な仮想計算機環境を実現できる。
仮想計算機方式のI/O制御では、ゲストOSによるI/O操作はVMMがエミュレートするためオーバーヘッドが発生する。また、仮想計算機のVMMは他の並行実行しているゲストOSのI/O操作もエミュレートするため、オーバーヘッドが他のゲストOSの処理に依存し、性能予測が難しいという課題がある。
一方、論理分割方式は、ハイパバイザと呼ばれる制御ソフトウェアが計算機資源を論理的に分割することによって、複数の計算機を作り出す。ハイパバイザは、プロセッサや他のハードウェアが参照するテーブルやレジスタを操作して、計算機を論理的に分割する。ゲストOSは、ハイパバイザによって論理的に分割された区画(パーティション)内で実行する。ゲストOSが実行する命令は、エミュレートされることなくプロセッサで直接実行される。このため、ゲストOSは同じ計算機で実行する他のゲストOSの影響を受け難く、高性能かつ高信頼な仮想計算機環境を実現できる。一方、論理分割方式はハードウェア資源を分割することによって複数の仮想計算機を作り出すため、I/Oデバイスを複数のゲストOSで共有することはできない。論理分割方式においてゲスト間でI/Oデバイスを共有するには、デバイス側の対応が必要となる。
以上のように、仮想計算機は特権命令のエミュレーションによって、論理分割はハイパバイザによる計算機の分割によって、ゲストOSが実行する仮想的な計算機を構成する。
これらの技術は、従来はメインフレームで主に実現されていた。これらを高性能で実現するには、仮想計算機に対応したプロセッサ、VMMのエミュレーション処理をハードウェアで実行する機構等、特別なハードウェアが必要だったためである。近年のプロセッサの性能向上により、これらの処理をプロセッサで実行しても十分な性能が得られるようになったため、仮想計算機や論路分割方式はメインフレーム以外の一般の計算機にも普及し始めている。
仮想計算機方式には、実行中のゲストOSをVMMが実行している他の計算機に移動(マイグレート)できるという特徴がある。移動先のVMMがゲストOSの必要とするI/Oデバイスをエミュレートするよう構成すれば、移動先の計算機上でゲストOSを継続して実行できる。
これらの技術を用いて、複数の計算機で実行しているシステムの一台の計算機への統合、計算機の負荷に応じたゲストOSのマイグレーションによる負荷バランス、計算機障害時のゲストOSのマイグレーションによる高可用化等が実現されている。
また、仮想計算機では、ゲストOSから直接I/Oデバイスを操作可能とするハードウェア機構が実現されている。この1つにI/Oアドレス変換機構がある。通常、I/OデバイスにDMAによるデータ転送を指示する場合、OSはI/Oデバイスにデータ転送先の物理アドレスを指定する。OSが仮想計算機で実行する場合、ゲストOSが指示する物理アドレスはVMMによって仮想化された物理アドレスであり、実際の物理アドレスではない。一方、デバイスから見える物理アドレス空間は実際の物理アドレス空間である。I/Oアドレス変換機構は、デバイスからのDMA転送の転送先アドレスを、デバイスを使用しているゲストOSに対応して変換し、ゲストOSに割り当てられている物理メモリ領域にデータが転送されるようにする。VMMがゲストOSの構成やメモリ割り当ての状態に従ってI/Oアドレス変換機構を設定すれば、ゲストOSは実際の物理メモリアドレスを知らなくとも、デバイスに直接I/O指示を出すことが可能となる。I/Oアドレス変換機構は、例えば、非特許文献1のように実現される。
加えて、特許文献1では、ゲストOSが直接利用しているI/OデバイスをVMMのエミュレーションによる利用に切り替える、逆にVMMのエミュレートで利用されているI/OデバイスをゲストOSへの直接割り当てに切り替える方式が示されている。
米国特許 US−4,887,202 "AMD I/O Virtualization Technology (IOMMU) Specification," pp.14, "2.2.5 Virtual Machine Guest Access to Devices," [online], 2006年2月掲載、米国AMD社、2006年7月24日検索、インターネット<URL:http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/34434.pdf>
仮想計算機におけるゲストOSへのデバイスの割り当て方法において、エミュレーションによる割り当てと、ゲストOSから直接操作可能な直接割り当てとで、ゲストOS実行中に割り当て方法を切り替えることが難しいという課題がある。ゲストに直接割り当てたデバイスに仕掛中のI/O処理がある時に、デバイスのゲストOSへの割り当てを変更できない。メインフレームでは、I/Oやデバイスが規格化されているため、標準の命令によってデバイスの活動状態を知ることができるため、デバイスが活動していない間にデバイスの割り当てを変更できる。しかし、メインフレーム以外の通常の計算機では、一般には、デバイスの状態を知ることができない。したがって、割り当ての変更は困難である。
本発明は、VMM内に自走されるゲストOSに仮想的なサスペンド割り込みの送信と、ゲストOSにサスペンドからの復帰処理を開始させる電源制御通知処理、ゲストOSのサスペンド処理をトラップするゲスト電源処理、ゲストOSのサスペンド中にVMMの論理デバイス定義を更新するI/O構成変更処理、ゲストOSがサスペンドから復帰したときに実行するI/O再構成処理が発行するI/O命令をエミュレートして新しい論理デバイス構成をゲストOSに提供するゲストI/Oエミュレート処理とで、ゲストへのデバイス割り当て変更を実現する。
本発明によれば、ゲストOSに見せるI/Oデバイスの割り当てを、ゲストOSの実行中に変更可能となる。特に、ゲストOSが直接利用可能なようにデバイスを割り当てている場合でも、デバイス割り当ての構成を変更可能である。これによって、I/Oデバイスを直接操作可能な直接割り当てと、VMMのエミュレーションによってI/O操作を実施するエミュレート割り当てとを、ゲストOS実行中に切り替え可能とする。
以下に図面を用いて本発明の実施の形態を説明する。
図1は、本発明の実施の第一の形態における計算機の構成を示す。第一の実施の形態では、ゲストOSに対するI/Oデバイスの割り当てを、ゲストOSから直接アクセス可能な直接モードと、VMMによるエミュレーションにより複数のゲストOSから利用可能とするエミュレートモードとの間で切り替える方法を示す。
本実施の形態では、計算機の電源制御機能を用いてVMMとゲストOS間の連携を実現する。計算機の電源制御は、ACPI(Advanced Configuration and Power Interface)として標準化されており、多くの計算機やOSで実装されている。本実施の形態に含まれる電源制御に関わる処理(サスペンド処理)は、ACPIに準拠した処理と同等である。
計算機100は一般的な構成の計算機であり、CPU101、メモリ102、I/Oデバイスが接続するI/Oバスがバス制御装置103によって接続し、I/Oバスにはディスクアダプタ104と105、ネットワークアダプタ106と107が接続している。I/Oバスにはキーボード、ディスプレイ等のその他のデバイスも接続しているが、ここには示していない。また、接続するデバイスの数は、ここに示した通りでなくても良い。
ディスクアダプタ104と105は、ストレージスイッチ110を介してストレージ装置130に接続している。この間の接続は、例えば、ファイバチャネルのような接続である。ストレージ装置130には、計算機100がディスクアダプタ104と105を介して参照可能な論理ボリューム131ないし133が構成されている。ゲストOSは、これらの論理ボリュームを参照して実行する。
ネットワークアダプタ106と107は、ネットワークスイッチ120に接続している。この間の接続は、例えば、イーサーネットのような接続である。
CPU101は、仮想計算機を実現可能な最低限の機能を有するCPUである。CPU101は、I/O操作や制御レジスタアクセスといったすべての命令を実行可能な特権モードと、限定された命令のみを実行可能な非特権モードを持つ。CPU101が非特権モードで実行中に特権モードでのみ実行が許可される命令を実行するとトラップが発生する。CPU101は実行モードを特権モードに遷移し、トラップを処理するトラップハンドラに制御を移す。
一般に、OSのカーネルは特権モードで実行し、CPU101の特権命令を利用して計算機全体を制御する。ユーザモードで実行するプログラムは非特権モードで実行し、計算機資源を利用する場合は特権モードに遷移してカーネルの処理を呼び出す。
仮想計算機環境では、全体の制御を実行するVMMが特権モードで実行し、OSのカーネルはVMMの制御の下、非特権モードで実行する。VMMは、OSが実行する特権命令をVMMのトラップ処理でエミュレートして、仮想計算機を実現する。
バス制御装置103は、I/OデバイスからのDMAによるメモリ102へのデータ転送先を、転送元のI/Oデバイスに合わせて変換するI/Oアドレス変換装置108を備えているとする。これによって、ゲストOSは、I/Oデバイスを直接利用可能となる。
図2は、ゲストへのデバイス割り当てモードの違いを模式的に示した図である。
図2(a)は、ゲストOSにI/Oデバイスを直接モードで割り当てている状態を示した図である。2つのゲスト210と220がVMM230の構成した仮想計算機上で実行している。VMM230は、ディスクアダプタ104とネットワークアダプタ106をゲスト210が、ディスクアダプタ105とネットワークアダプタ107をゲスト220が直接に利用できるようI/Oアドレス変換装置108を設定し、それぞれのゲストOS211と221を実行する。また、VMM230は、ゲスト210を実行する際に、ゲストOS211が発行するアダプタ104とアダプタ106に対するI/O命令をトラップしないように、CPU101を構成する。ゲスト220を実行する際も同様である。直接割り当てされているデバイスが発生する割り込みは、VMM230が捕獲し、そのデバイスを割り当てられているゲストOSに送信される。
この構成では、ゲストに直接割り当てされているデバイスに対するI/O命令は、VMM230にトラップされることなく直接CPU101で実行される。したがって、オーバーヘッドが少なく、他のゲストOSに影響されない高信頼なゲストOSの実行が可能である。
図2(b)は、一部のデバイスがエミュレートモードで割り当てられている状態を示している。ディスクアダプタ104とネットワークアダプタ106が、VMM230のI/Oエミュレータ250によるエミュレーションによって、ゲスト210と240に共有されている様子を示している。この場合、アダプタ104とアダプタ106に対するI/O命令をトラップするようCPU101を構成して、ゲスト210を実行する。VMM230はトラップを捕獲し、I/Oエミュレータ250にI/O処理を実行させる。この場合のデバイスからの割り込みはVMM230が捕獲し、I/Oエミュレータ250が割り込みを処理して関係するゲストOSに仮想的な割り込みを配送する。
本発明は、ゲストOSをシャットダウンすることなく、図2(a)と図2(b)の間の遷移を実現する。以下に、これを実現するためのゲストOSおよびVMMの構造について説明する。
図3に、本発明の第一の実施の形態のVMM230とゲストOS211の構成を示す。ゲストOS211は、ACPI対応のOSであるとする。
ゲストOSとVMMは、メモリ102に格納されたソフトウェアをCPU101が実行することで実現される。
まず、VMM230の構成について説明する。論理デバイステーブル301は、VMM230が各ゲストに提供する論理的なデバイスの構成情報を保持する。図4に論理デバイステーブルの例を示す。保持する情報は、提供する論理デバイス、その論理デバイスにゲストOSが割り当てた論理I/Oアドレス、VMM230によるI/Oエミュレート処理の要否、エミュレートする場合に実際のI/O処理を実行させる物理デバイスである。再初期化データについては、後述する。
図4には2つのテーブルを示しているが、それぞれ図2の(a)と(b)の構成に対応した論理デバイステーブル301を示している。例えば(a)においてゲスト1は、論理デバイスとしてディスクアダプタ1とネットワークアダプタ1を要し、それぞれに対してディスクアダプタ104とネットワークアダプタ106が直接モードで割り当てられていることを示す。一方(b)のゲスト1は、(a)と同様に論理デバイスとしてディスクアダプタ1とネットワークアダプタ1を要するが、それぞれに対してディスクアダプタ104とネットワークアダプタ106をエミュレートモードで割り当て、VMM230のI/Oエミュレートで構成することを示す。この場合、ゲストOS211がI/Oアドレス100番地や200番地にアクセスしたときにトラップが発生し、VMM230がI/Oエミュレート処理を実行する。
ゲストの論理デバイスに対してどの物理デバイスを対応付けるかは、ゲストの構成定義に記述する。VMM230は、各ゲストの構成定義を読み込んで、論理デバイステーブル301を作成する(構成定義の内容は省略)。この構成定義は、システム管理者が作成しても良いし、何らかの管理プログラムによって自動的に割く際された定義であっても良い。構成定義の作成方法は、本発明では論じない。
VMM230は、論理デバイステーブル301の内容にしたがって、ゲストOS211が実行するI/O命令をトラップしてエミュレートするかどうかを、ゲスト実行時にCPU101に指示する。具体的には、CPU101の制御レジスタへの設定や、CPU101が参照するメモリ102内のテーブルの設定を行う。 例えば、図4(b)の例では、VMM230は、ゲスト1のI/Oアドレス100番地と200番地の参照についてはI/Oエミュレーションが必要なのでトラップを発生させるようにCPU101を設定し、ゲスト2のI/Oアドレス300番地と400番地の参照についてはI/Oデバイスを直接操作できるようにトラップを発生させないようにCPU101を設定する。
ゲストOS211がエミュレーションの必要なI/Oデバイスを操作するI/O命令を実行すると、CPU101はトラップを生成する。このトラップを受けて、ゲストI/Oエミュレート処理302がゲストOS211の実行するI/O命令をエミュレートする。ゲストI/Oエミュレート処理302は、各ゲストOSのI/O操作によるI/Oデバイスの状態を保持し、必要に応じて論理デバイステーブル301に示された物理デバイスに対して実際のI/O処理を発行して、I/O処理を実行する。
I/Oエミュレート処理302は、参照されたI/Oアドレスから対象論理デバイスを特定し、ゲスト電源制御処理303とゲストデバイスエミュレート処理304に処理を振り分け、I/O命令をエミュレートする。
ゲストデバイスエミュレート処理304は、ゲストによる論理デバイス操作をエミュレートする。ゲスト電源制御処理303は、ゲストOSによる仮想計算機の電源断、一時休止(サスペンド)・再開等の処理を実施する。本実施形態に関係する処理については、後述する。
デバイス構成変更処理305は、ゲストに見せる論理デバイスの構成を変更する。電源制御通知処理306は、デバイス構成を変更する際に、ゲストOS211に仮想的なサスペンド要求割り込みを送信する。また、ゲストOS211をサスペンド状態から再開させる処理も実施する。
ゲスト管理処理307は、ゲスト資源の割り当て、ゲストの起動・停止といった処理を実装している。
次に、ゲストOS211の構成について説明する。
電源制御部320は、電源制御割り込みハンドラ322とサスペンド処理321を含む。電源制御割り込みハンドラ322は、計算機の電源状態の変更を要求する割り込みを受けて処理する。ここでは、VMM230の電源制御通知処理306が送信する仮想のサスペンド要求割り込みを受信し処理する。
サスペンド処理321は、ゲストOS211の実行をI/Oデバイスの電源を切断した状態で中断し、また、その状態からの再開処理を実装する。
I/O制御部310は、計算機のI/O資源全体を管理する。この場合、VMM230によって作り出された論理デバイス資源を管理する。I/O制御部310には、I/O構成管理処理312、デバイスのオン・オフを実施するデバイス制御処理311が含まれる。I/O構成管理処理312は、計算機に接続されているI/Oデバイスの列挙、それぞれを操作するためのI/Oアドレスや割り込みといったI/O資源の割り当て等を実施する。
次に、図2の(a)から(b)にI/Oデバイスの割り当てを変更する手順を説明する。(a)の状態から新たにゲスト240を実行するとして説明する。
計算機100の管理者、あるいは、管理プログラムは、ゲスト3(ゲスト240)を計算機100で実行しようと決定すると、ゲスト1(ゲスト210)に直接割り当てされているデバイスをエミュレートモードに変更するために、VMM230のデバイス構成変更処理305に構成変更要求を送信する。構成変更要求は、図4(b)のゲスト1の論理デバイス定義情報を含むとする。例えば、図6に示すような情報が構成変更要求に含まれる。デバイスの再初期化データについては後述する。
構成変更処理305の処理手順を説明する。図5に処理305の処理フローを示す。まず、変更要求にI/Oデバイスの直接割り当てが含まれる場合、その物理デバイスを、現在利用しているゲストがないか論理デバイステーブル301を参照して確認する(ステップ501)。存在する場合は、エラーとして処理を終了する。物理デバイスを直接割り当てる場合は、構成変更の前にそのデバイスを使用しているゲストOSを停止するか、ゲストOSからのデバイスの使用を停止する必要がある。この処理については、本発明では論じない。
そのようなデバイスが存在しない場合は、構成変更処理中であることをメモリ上の予め定めたアドレスに記録し(ステップ502)、電源制御通知処理306からゲストOS211にサスペンド指示を送信する(ステップ503)。
指示送信後、ゲストOS211がサスペンド要求を処理して、仮想計算機の電源状態をサスペンドとする処理を実行するのを待機する(ステップ504)。このサスペンド処理は、電源制御を実施する予め定められたI/Oアドレスへのアクセスで実現される。VMM230のゲスト電源制御処理303は、構成変更処理中にゲストがこのI/Oアドレスにアクセスした場合に、構成変更に伴うゲストOS211のサスペンド処理が完了したとして、ステップ504で待機状態にある処理を再開させる。
ゲストOS211がサスペンド状態に遷移できない場合に備えて、ステップ504の待機状態は一定時間の後タイムアウトしてもよい。待機がタイムアウトした場合は、構成変更中の記録をクリアし(ステップ520)、エラーとして構成変更処理を終了する。
一般に、ゲストOS211に物理デバイスを直接モードで割り当てて、ゲストOS211から直接操作可能としている場合、VMM230はそのデバイスの動作状態を知ることができない。一方、本発明においては、ゲストOS211のサスペンド処理が完了した時点で、ゲストOS211の論理デバイスの処理は停止しており、仕掛中のI/O操作はなくなっていることが保証できる。この例では、ディスクアダプタ104とネットワークアダプタ106は、この時点で停止している。これによって、この時点で、論理デバイスの構成を変更することが可能となる。
以降のステップ505ないし508では、論理デバイステーブル301を指定の内容に更新する。続いて、ゲストOS211が利用する物理デバイスを再初期化する(ステップ509)。ゲストOS211に割り当てる物理デバイスは、ゲストOS211が実行するのに必要なストレージ装置130内の論理ボリュームやネットワークに接続可能でなければならない。通常、ストレージやネットワークに接続するための初期化処理はOS起動時に実行され、それ以降の処理はこの初期化処理によって確立された状態に依存している。このため、構成変更処理305は、構成変更が発生する物理デバイス毎に、変更要求に含まれる再初期化データと、論理デバイステーブル301に記録されている再初期化データとを合わせてI/Oデバイスの再初期化処理を行い、デバイスを利用するゲストが利用する資源に接続可能な状態にI/Oデバイスを再初期化する。
例に示した再初期化データは、ネットワークアダプタ106については、ゲストOS211に提供する仮想的なネットワークアダプタの仮想的なMACアドレスであり、ディスクアダプタ104については、ゲストOS211に提供する仮想的なディスクアダプタが備える仮想的なポートIDである。これらをそれぞれのアダプタ106と104に設定する処理を、再初期化処理として実施する。
最後に構成変更中のフラグをクリアし(ステップ510)、ゲストOS211の実行を再開させる(ステップ511)。VMM230は、サスペンド状態からの復帰処理が格納されている規定のアドレスからゲストOS211の実行を再開するように設定し、ゲストOS211の実行をスケジュールする。
次に、VMM230の構成変更処理305と連動して実行するゲストOS211側の処理について説明する。図7に、ゲストOS211で実行する処理のフローを示す。
はじめに、VMM230が送信したサスペンド要求割り込みの処理を説明する。構成変更処理のステップ503にて、VMM230はサスペンド指示要求を仮想的な割り込みとして送信している。これを受けて、ゲストOSの電源制御割り込みハンドラ322が実行する(ステップ701)。ハンドラ322は、ゲストOS211の実行を一時中断するために、デバイス制御処理311に全デバイスの停止要求を発行する(ステップ702)。
デバイス制御処理311は要求を受けて、構成されている全てのデバイスのデバイスドライバ330に対して、デバイス動作を停止する準備をするよう指示する。デバイスドライバ330は、I/O操作の受付を延期するよう設定し、仕掛かり中のI/O操作がある場合は完了まで待機して、デバイスを停止可能な状態とする。全てのデバイスが停止可能な状態になったら、デバイス制御処理311はデバイスに停止指示を発行する。この例では、デバイス制御処理311は、アダプタ104と106を制御するデバイスドライバに対して、停止準備と停止の指示を発行する。
指示のタイミングによってはデバイスを停止できない場合もある。続くステップ703では、デバイス停止処理が成功したか判定する。失敗した場合は、サスペンド処理を終了する。
停止処理が成功した場合は、計算機の電源状態をサスペンド状態に遷移させる(ステップ704)。具体的には、VMM230によって定義された論理的な電源制御用のI/Oアドレスにアクセスして、仮想計算機の状態をサスペンド状態に遷移させる。このゲストOS211のI/O操作はVMM230によってトラップされて、ステップ504の待機状態を解除する。これ以降、ゲストOS211はサスペンド状態から復帰するまで実行しない。
次に、サスペンド状態からの再開処理について説明する。一般に、サスペンド処理では、サスペンドから復帰してCPU101が実行を再開した後、制御がサスペンド再開処理に移るように設定している。ここでも、サスペンドから復帰するとステップ711からの処理が実行されるように設定しているとする。
まず、再開処理は、I/O構成管理処理312にI/Oデバイス設定を再構成するように指示する(ステップ711)。
I/O構成管理処理312は、計算機に接続しているI/Oデバイスを列挙し、それぞれにI/Oアドレス等のI/O資源を割り付ける(ステップ712)。
PCIバスに接続しているデバイスの再構成を例に説明する。PCIバスの規約では、規約により定められたI/Oアドレスにあるレジスタ(コンフィグレーションレジスタ)にアクセスすることにより、PCIバスに接続している全てのデバイスを列挙し、デバイスの種類、それぞれのデバイスが必要とするI/O資源を取得できる。また、同様に特定のI/Oアドレスへの書き込みにより、PCIバスに接続しているデバイスを操作するためのI/Oアドレスを、デバイスに割り付けることができる。
I/O構成管理処理312は、PCIバスのコンフィグレーションレジスタにアクセスして全てのデバイスを列挙する。この際、コンフィグレーションレジスタへのアクセスはI/O命令であるため、VMM230によってエミュレートされる。VMM230は、論理デバイステーブル301に従って、ゲスト1に定義されている論理デバイスが存在するかのように、コンフィギュレーションレジスタのアクセスをエミュレートする。物理デバイスを直接モードで割り当てる論理デバイスについては、実際の物理デバイスの情報をゲストOSに見せる。これによって、ゲストOSの論理デバイスアクセスが物理デバイスの直接アクセスとなるように、ゲストOS211でのI/O資源の設定が可能となる。
ここでゲストOS211に提供する論理デバイスは、計算機100に実際に接続しているデバイスと同種のデバイスとする。これによって、I/Oデバイスの割り当て方法を変更しても、それを制御するデバイスドライバを変更することなくI/O構成の変更処理だけでゲストOSの実行を継続でき、ゲストOSを停止させる必要がなくなる。
I/O構成管理処理312は、全てのデバイスの列挙が完了すると、それぞれのデバイスにI/Oアドレス等のI/O資源を割り当てる。割り当てるI/O資源は、デバイスが要求するI/Oアドレスや、接続している他のデバイスの構成を勘案して、I/O資源の衝突が発生しないように算出される。
デバイスへのI/Oアドレスの割り当てもコンフィギュレーションレジスタへのアクセスであるため、VMM230によってエミュレートされる。VMM230は、ゲストOS211がI/Oデバイスに割り当てたI/OアドレスをI/O命令のトラップを通じて求め、論理デバイステーブル301に記録する(ステップ721)。更に、割り当てられたI/Oアドレスへのアクセスでトラップを発生するかを判定し、それに合わせてCPU101を構成する(ステップ722)。これによって、物理デバイスを直接割り当てられている論理デバイスを参照するI/O命令はCPU101によって直接実行され、エミュレートモードでデバイスが割り当てられている論理デバイスを参照するI/O命令はVMM230によってエミュレートされるようトラップを発生することとなる。この時に、I/Oアドレス変換装置108も再設定する。具体的には、直接割り当てとした物理デバイスからのDMA転送が、デバイスを利用するゲストOSに割り当てられているメモリに正しく転送されるように設定する。また、I/Oエミュレートに利用されるデバイスのDMAの転送先がVMM230が管理するメモリ領域となるように設定する。
この例では、論理デバイスのディスクアダプタ1とネットワークアダプタ1に割り当てられている論理I/Oアドレス100番地と200番地へのアクセスで、トラップが発生するように設定する。
全てのデバイスの構成処理の終了後、ゲストOSは、サスペンド時点の処理から再開する(ステップ713)。
以上により、論理デバイスへの物理デバイスの割り当てを、直接割り当てからエミュレート割り当てに変更できる。例では、ゲスト1のデバイスを直接割り当てからエミュレート割り当てに変更できる。
次に、ゲストOSの起動処理について説明する。上記の処理から引き続いてゲスト3を起動するとして説明する。ゲスト3を起動するには、ゲスト3の構成定義情報をパラメータとして、ゲスト管理処理307にゲストの起動を指示する。これ以降のゲスト起動処理を図8に示す。
まず、与えられたゲストの構成定義情報を読み取り(ステップ801)、論理デバイスの構成情報を論理デバイステーブル301に設定する(ステップ802)。この時点で、テーブル301の内容は図4(b)の構成となる。
続いて、テーブル301を参照して、ゲスト3の論理デバイスに割り当てる物理デバイスの再初期化処理を実行する(ステップ803)。これで、ゲスト3が必要とする資源に物理デバイスからアクセス可能となる。例えば、ディスクアダプタ104は、ゲスト1とゲスト3から利用されるので、それぞれで定義されている論理デバイスの再初期化データを用いて、アダプタ104を再初期化する。ネットワークアダプタ106も同様である。最後に、ゲストOSのイメージをロードして、ゲストOSを走行可能状態とする(ステップ804)。
以上により、ゲスト1に直接利用されていたディスクアダプタ104とネットワークアダプタを、VMM230によるI/Oエミュレートで利用するようにデバイス割り当てを変更し、そのデバイスをゲスト1とゲスト3にエミュレートモードで割り当て、ゲストOS211と241を実行させることができる。
ステップ804のロード処理は、必ずしも、ゲストOSをブートするイメージでなくてともよい。ゲストOSの実行中のある一時点の状態を表すイメージをロードして、その時点からのゲストOSの実行を再開させるものであっても良い。この場合、ゲストOS再開がサスペンドからの復帰処理と同じ処理を実行するように、ゲスト中断時の状態を構成しておけば良い。
加えて、ある一時点のイメージは他の計算機上で実行していたゲストOSのイメージであってもよい。ゲストOSに提供する論理デバイスを構成可能な物理デバイスが存在している計算機であれば、そのイメージのゲストOSを実行可能である。
ゲストOS間でエミュレート割り当てにより共有している物理デバイスを、ある1つのゲストOSが直接利用するようにデバイス割り当てを変更することも可能である。まず、当該の物理デバイスを利用しているゲストOSのデバイス構成を変更するか、ゲストOSを停止させる必要がある。この後、前述のデバイス構成変更処理305によって、ゲストOSに物理デバイスを直接割り当てするように構成を設定すればよい。
以上により、ゲストOSに提供する論理デバイスへの物理デバイスの割り当てを、ゲストOSの実行をシャットダウンすることなく、直接割り当てとエミュレート割り当てで切り替えることが可能となる。
これにより、計算機資源とゲストOSの構成が許す限りゲストOSに物理デバイスを直接利用可能なように割り付けておき、資源割り当て状況が厳しくなって来たときにデバイスの割り当てを直接からエミュレートモードに切り替えるといった制御が可能となる。
逆に、計算機にI/Oデバイスを増設して資源割り当て状況に余裕ができたときに、性能が必要なゲストOSに物理デバイスを直接割り当てるようデバイス割り当て構成を変更するといった制御も可能となる。
また、他の計算機で実行していたゲストOSがマイグレートされてきたときに、デバイス構成を変更して、そのゲストOSが実行可能なようにデバイス割り当て構成を変更することも可能となる。逆に、マイグレート元でもデバイス構成を変更することができる。これによって、複数のゲストOSから構成されるシステム全体の信頼性・可用性を向上できる。
次に、本発明の第二の実施の形態について説明する。第一の実施の形態では、ゲストの論理デバイスに対するデバイスの割り当てモードの変更方法について説明した。第二の実施の形態では、ゲストの論理デバイスに割り当てる物理デバイスを変更する方法を示す。
図9は、第二の実施の形態におけるゲストへのデバイスの割り当てを模式的に示した図である。(a)は、ゲスト210でゲストOS211が実行し、デバイスとしてアダプタ104と106が直接割り当てられていることを示している。アダプタ105と107は、アダプタ104と107と同一形式の未使用のデバイスであり、ゲストOS211が利用する論理ボリュームやネットワークに接続可能となるように物理的に接続されているとする。
ここで、ネットワークアダプタ106に障害が発生したとする。本発明によれば、ゲスト210に割り当てたネットワークアダプタ106を、未使用のネットワークアダプタ107に変更できる。
具体的には、まず、図6と同様の構成変更要求を作成する。構成変更要求の内容は、ネットワークアダプタ1に対応する物理アダプタをネットワークアダプタ107、ディスクアダプタ1に対応する物理アダプタをディスクアダプタ104とし、それぞれ割当方法を占有とする。再初期化データには、ゲストOS211が参照する資源に接続するためのデータを指定する。この構成変更要求の作成方法については、本発明では論じない。
この構成変更要求をもって、VMM230の構成変更処理305に構成変更を要求する。構成変更処理は、第一の実施の形態と同様に構成変更要求を処理する。すなわち、ゲストOS211をサスペンドしている間に論理デバイステーブル301の内容を更新してデバイスを再初期化し、サスペンド再開後のI/O再構成処理のエミュレート処理で新しいデバイス構成をゲストOS211に反映させる。
以上により、ゲストOSに割り当てたデバイスを、ゲストOSをシャットダウンすることなく別にデバイスに変更することができる。
本実施の形態では、空きデバイスをゲストOSに割り当てたが、他のゲストにエミュレートモードで割り当てられているデバイスを割り当てても良い。この場合、ゲストのサスペンドの間の論理デバイステーブル301の更新とデバイス再初期化により、デバイスがエミュレートする論理デバイスを新しく追加するよう処理すればよい。
これにより、例えば、不良を発生したデバイスをゲストOSへの割り当てから除外して、当該デバイスを交換することが可能となる。これによって、ゲストOSをシャットダウンすることなく不良デバイスを交換可能となり、システムの可用性を向上できる。
仮想計算機を利用したシステムの構成の柔軟性を高め、システム全体の信頼性、および、可用性を向上する方法として利用可能である。
本発明の実施の形態における計算機構成を示す図。 本発明の実施の形態におけるゲストOSへのデバイス割り当てを示す図。 本発明の実施の形態におけるゲストOSとVMMの内部構成を示す図。 本発明の実施の形態における論理デバイステーブルを示す図。 本発明の実施の形態におけるデバイス構成変更処理手順を示す処理フロー。 本発明の実施の形態におけるデバイス構成変更要求の内容を示す図。 本発明の実施の形態におけるデバイス構成変更処理手順を示す処理フロー。 本発明の実施の形態におけるゲストOSの起動手順を示す処理フロー。 本発明の第二の実施の形態におけるゲストOSへのデバイス割り当てを示す図。
符号の説明
100…計算機、101…CPU、102…メモリ、103…バス制御装置、104と105…ディスクアダプタ、106と107…ネットワークアダプタ、108…I/Oアドレス変換装置、110…ストレージスイッチ、120…ネットワークスイッチ、130…ストレージ装置、131ないし133…論理ボリューム、210、220、240…ゲスト、211、221、241…ゲストOS、230…VMM、250…I/Oエミュレータ、301…論理デバイステーブル、302…ゲストI/Oエミュレート処理、303…ゲスト電源処理、304…ゲストデバイスエミュレート処理、305…デバイス構成変更処理、306…電源制御通知処理、307…ゲスト管理処理、310…I/O制御部、311…デバイス制御処理、312…I/O構成管理処理、320…電源制御部、321…サスペンド処理、322…電源制御割り込みハンドラ、330…デバイスドライバ、501ないし520、701ないし722、801ないし804…処理ステップ

Claims (11)

  1. ゲストOSのI/O操作を、ゲストOSから直接デバイス操作可能なようにデバイスを構成して実行することと、エミュレーションによっても実行することが可能な仮想計算機におけるゲストOSへのデバイス割り当ての変更方法であって、
    ゲストOSからの直接操作可能なように構成したデバイス(直接割り当てデバイス)を、I/Oエミュレーションの下で利用されるデバイスとして再構成する、あるいは、I/Oエミュレーションの下で利用されるデバイス(エミュレータデバイス)を、ゲストOSから直接操作可能なように再構成し、
    デバイスOSを停止してゲストOSの実行を中断させる仮想的なサスペンド指示をVMMがゲストOSに送り、ゲストOSのサスペンド処理が完了した後にVMMがデバイスの割り当て変更処理を実行することを特徴とする、デバイス割り当て変更方法。
  2. 請求項1のデバイス割り当て変更方法であって、
    VMMの電源制御通知処理部を用いて、前記仮想的なサスペンド指示をゲストOSに送ることを特徴とするデバイス割り当て変更方法。
  3. 請求項2のデバイス割り当て変更方法であって、
    ゲストOSがサスペンドから復帰したときに実行するゲストOSのI/O再構成処理に関わるI/O命令をトラップして、デバイス割り当て変更後の論理デバイスを構成するようにVMMがI/O命令をエミュレートすることを特徴とするデバイス割り当て変更方法。
  4. 請求項1乃至3のいずれかに記載のデバイス割り当て変更方法であって、
    実行中のゲストOSに対するデバイス割り当て変更要求として、構成する論理デバイス毎に、論理デバイスに対応付ける物理デバイス、物理デバイスを直接割り当てデバイスとするのかエミュレータデバイスとするのかの指定、対応付けた物理デバイスを再初期化するためのデータを含む変更要求をVMMが受け付け、割り当て変更を実行することを特徴とするデバイス割り当て変更方法。
  5. 請求項4のデバイス割り当て変更方法であって、
    変更要求に直接割り当てデバイスとするデバイスが含まれている場合、そのデバイスが他のゲストOSに割り当てられているならば、割り当て変更をエラー終了とすることを特徴とするデバイス割り当て変更方法。
  6. 請求項4のデバイス割り当て変更方法であって、
    ゲストOSに校正変更前とは異なる物理デバイスを割り当てることを特徴とするデバイス割り当て変更方法。
  7. 請求項4のデバイス割り当て変更方法であって、
    VMMがI/Oエミュレーションによって構成する論理デバイスを、エミュレーション用に割り当てるエミュレータデバイスと同一形式のデバイスとしてゲストOSに提供するよう構成することを特徴とするデバイス割り当て変更方法。
  8. 請求項4のデバイス割り当て変更方法であって、
    デバイス割り当て変更処理において、割り当て変更処理の対象となった物理デバイスについて、その物理デバイスに対応付けられた論理デバイスの再初期化データを用いてVMMが物理デバイスを再初期化することを特徴とするデバイス割り当て変更方法。
  9. 請求項7のデバイス割り当て変更方法であって、
    デバイスの再初期化処理にてイーサーネットアダプタへのMACアドレスやIPアドレスの設定が可能なことを特徴とするデバイス割り当て変更方法。
  10. 請求項7のデバイス割り当て変更方法であって、
    デバイスの再初期化処理にてファイバチャネルアダプタへのポートIDの可能なことを特徴とするデバイス割り当て変更方法。
  11. 請求項1乃至9のいずれかに記載のデバイス割り当て変更方法であって、
    前記ゲストOSから直接デバイス操作可能とは、ゲストOSのI/O操作をエミュレーションなしにCPUで実行可能であることを特徴とするデバイス割り当て変更方法。
JP2007149881A 2007-06-06 2007-06-06 デバイス割り当て変更方法 Expired - Fee Related JP5018252B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007149881A JP5018252B2 (ja) 2007-06-06 2007-06-06 デバイス割り当て変更方法
US12/132,406 US8028184B2 (en) 2007-06-06 2008-06-03 Device allocation changing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007149881A JP5018252B2 (ja) 2007-06-06 2007-06-06 デバイス割り当て変更方法

Publications (2)

Publication Number Publication Date
JP2008305034A true JP2008305034A (ja) 2008-12-18
JP5018252B2 JP5018252B2 (ja) 2012-09-05

Family

ID=40096959

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007149881A Expired - Fee Related JP5018252B2 (ja) 2007-06-06 2007-06-06 デバイス割り当て変更方法

Country Status (2)

Country Link
US (1) US8028184B2 (ja)
JP (1) JP5018252B2 (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223793A (ja) * 2008-03-18 2009-10-01 Fujitsu Ltd 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム
JP2010186465A (ja) * 2008-12-08 2010-08-26 Nvidia Corp ヘテロジニアス処理ユニットのための集中デバイス仮想化レイヤ
JP2011118578A (ja) * 2009-12-02 2011-06-16 Renesas Electronics Corp 情報処理装置
JP2012529092A (ja) * 2009-06-04 2012-11-15 インターナショナル・ビジネス・マシーンズ・コーポレーション 柔軟性のあるネットワーク接続性構成を備えたサブパーティションを有する論理分割されたシステム
JP2013120552A (ja) * 2011-12-08 2013-06-17 Hitachi Ltd 仮想計算機システム、仮想計算機管理プログラム、及びmacアドレス管理方法
JP2013534666A (ja) * 2010-06-23 2013-09-05 インターナショナル・ビジネス・マシーンズ・コーポレーション アダプタのアドレス・スペースへのゲスト・アクセスのための方法、システム、およびコンピュータ・プログラム
JP2014515146A (ja) * 2011-04-18 2014-06-26 インテル・コーポレーション 複合仮想グラフィクスデバイス
JP2015069524A (ja) * 2013-09-30 2015-04-13 富士通株式会社 情報処理装置、ストレージ制御装置、及びプログラム
US9134911B2 (en) 2010-06-23 2015-09-15 International Business Machines Corporation Store peripheral component interconnect (PCI) function controls instruction
US9195623B2 (en) 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US9213661B2 (en) 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
US9626298B2 (en) 2010-06-23 2017-04-18 International Business Machines Corporation Translation of input/output addresses to memory addresses
JP2017228191A (ja) * 2016-06-24 2017-12-28 コニカミノルタ株式会社 画像処理装置、デバッグ支援方法およびデバッグ支援プログラム

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090013171A1 (en) * 2006-03-02 2009-01-08 Oqo, Inc. Computer docking system using hardware abstraction
EP2202639B1 (en) * 2008-12-24 2012-09-12 VirtualLogix SA Virtual machine monitor
JP5159898B2 (ja) * 2009-01-06 2013-03-13 三菱電機株式会社 管理装置及び管理方法及びプログラム
US8799691B2 (en) * 2009-01-07 2014-08-05 Hewlett-Packard Development Company, L.P. Hierarchical power management
JP5590032B2 (ja) * 2009-06-30 2014-09-17 富士通株式会社 計算装置および並列計算機システム
US8327059B2 (en) * 2009-09-30 2012-12-04 Vmware, Inc. System and method to enhance memory protection for programs in a virtual machine environment
US8984507B2 (en) 2010-04-26 2015-03-17 International Business Machines Corporation Cross architecture virtual machine migration
US20120054740A1 (en) * 2010-08-31 2012-03-01 Microsoft Corporation Techniques For Selectively Enabling Or Disabling Virtual Devices In Virtual Environments
US20120144390A1 (en) * 2010-12-07 2012-06-07 Microsoft Corporation Customized computer image preparation and deployment including virtual machine mode
US8522238B2 (en) * 2011-01-24 2013-08-27 Red Hat Israel, Ltd. Feature driven backend switching
US8819691B2 (en) * 2011-05-04 2014-08-26 International Business Machines Corporation Logical partition defragmentation within a data processing system
US9081703B2 (en) * 2011-09-15 2015-07-14 Nokia Technologies Oy Method and apparatuses for facilitating sharing device connections between a host and client based on the power mode of the host
US20130179601A1 (en) * 2012-01-10 2013-07-11 Hitachi, Ltd. Node provisioning of i/o module having one or more i/o devices
JP5663525B2 (ja) * 2012-05-22 2015-02-04 株式会社日立製作所 サーバ、管理サーバ、および計算機システムのネットワークデバイスの設定方法
US9292463B2 (en) * 2012-09-26 2016-03-22 Intel Corporation Communication of device presence between boot routine and operating system
US20140115097A1 (en) * 2012-10-24 2014-04-24 International Business Machines Corporation Transmitting an executing application
US9720712B2 (en) * 2013-06-03 2017-08-01 Red Hat Israel, Ltd. Physical/virtual device failover with a shared backend
US9658873B2 (en) * 2013-08-21 2017-05-23 Red Hat Israel, Ltd. Switching between devices having a common host backend in a virtualized environment
US9355050B2 (en) 2013-11-05 2016-05-31 Qualcomm Incorporated Secure, fast and normal virtual interrupt direct assignment in a virtualized interrupt controller in a mobile system-on-chip
US9727359B2 (en) * 2015-04-27 2017-08-08 Red Hat Israel, Ltd. Virtual machine function based sub-page base address register access for peripheral component interconnect device assignment
US10852954B1 (en) * 2015-09-23 2020-12-01 EMC IP Holding Company LLC Running an enterprise storage subsystem as a virtual machine
WO2017068770A1 (ja) * 2015-10-22 2017-04-27 日本電気株式会社 コンピュータ、デバイス割当管理方法及びプログラム記録媒体
US20170139740A1 (en) * 2015-11-12 2017-05-18 Futurewei Technologies, Inc. Systems and Methods for Real Time Context Based Isolation and Virtualization
US11169837B2 (en) * 2019-08-23 2021-11-09 Red Hat, Inc. Fast thread execution transition
US12020059B2 (en) * 2021-08-30 2024-06-25 International Business Machines Corporation Inaccessible prefix pages during virtual machine execution

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6231437A (ja) * 1985-07-31 1987-02-10 Hitachi Ltd 仮想計算機システムの入出力制御方法
JPH06187176A (ja) * 1992-12-18 1994-07-08 Fuji Xerox Co Ltd 仮想計算機
JP2001216171A (ja) * 2000-01-31 2001-08-10 Toshiba Corp 仮想計算機システム
JP2001282560A (ja) * 2000-03-31 2001-10-12 Hitachi Ltd 仮想計算機制御方法及びその実施装置並びにその処理プログラムを記録した記録媒体

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06187178A (ja) * 1992-12-18 1994-07-08 Hitachi Ltd 仮想計算機システムの入出力割込み制御方法
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
JP2002132518A (ja) * 2000-10-25 2002-05-10 Fujitsu Ltd 仮想計算機システムおよび仮想計算機間の入出力装置交換方法
US7805723B2 (en) * 2003-10-01 2010-09-28 Hewlett-Packard Development Company, L.P. Runtime virtualization and devirtualization of memory by a virtual machine monitor
JP2005115506A (ja) * 2003-10-06 2005-04-28 Hitachi Ltd ストレージシステム
US7644407B2 (en) * 2004-03-05 2010-01-05 Intel Corporation Method, apparatus and system for seamlessly sharing a graphics device amongst virtual machines
US7281102B1 (en) * 2004-08-12 2007-10-09 Vmware, Inc. Restricting memory access to protect data when sharing a common address space

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6231437A (ja) * 1985-07-31 1987-02-10 Hitachi Ltd 仮想計算機システムの入出力制御方法
JPH06187176A (ja) * 1992-12-18 1994-07-08 Fuji Xerox Co Ltd 仮想計算機
JP2001216171A (ja) * 2000-01-31 2001-08-10 Toshiba Corp 仮想計算機システム
JP2001282560A (ja) * 2000-03-31 2001-10-12 Hitachi Ltd 仮想計算機制御方法及びその実施装置並びにその処理プログラムを記録した記録媒体

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223793A (ja) * 2008-03-18 2009-10-01 Fujitsu Ltd 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム
JP2010186465A (ja) * 2008-12-08 2010-08-26 Nvidia Corp ヘテロジニアス処理ユニットのための集中デバイス仮想化レイヤ
JP2012529092A (ja) * 2009-06-04 2012-11-15 インターナショナル・ビジネス・マシーンズ・コーポレーション 柔軟性のあるネットワーク接続性構成を備えたサブパーティションを有する論理分割されたシステム
US8813070B2 (en) 2009-12-02 2014-08-19 Renesas Electronics Corporation Data processor with interfaces for peripheral devices
JP2011118578A (ja) * 2009-12-02 2011-06-16 Renesas Electronics Corp 情報処理装置
US9383931B2 (en) 2010-06-23 2016-07-05 International Business Machines Corporation Controlling the selectively setting of operational parameters for an adapter
JP2013534666A (ja) * 2010-06-23 2013-09-05 インターナショナル・ビジネス・マシーンズ・コーポレーション アダプタのアドレス・スペースへのゲスト・アクセスのための方法、システム、およびコンピュータ・プログラム
US9626298B2 (en) 2010-06-23 2017-04-18 International Business Machines Corporation Translation of input/output addresses to memory addresses
US9342352B2 (en) 2010-06-23 2016-05-17 International Business Machines Corporation Guest access to address spaces of adapter
US9134911B2 (en) 2010-06-23 2015-09-15 International Business Machines Corporation Store peripheral component interconnect (PCI) function controls instruction
US9195623B2 (en) 2010-06-23 2015-11-24 International Business Machines Corporation Multiple address spaces per adapter with address translation
US9213661B2 (en) 2010-06-23 2015-12-15 International Business Machines Corporation Enable/disable adapters of a computing environment
JP2014515146A (ja) * 2011-04-18 2014-06-26 インテル・コーポレーション 複合仮想グラフィクスデバイス
JP2013120552A (ja) * 2011-12-08 2013-06-17 Hitachi Ltd 仮想計算機システム、仮想計算機管理プログラム、及びmacアドレス管理方法
US9131031B2 (en) 2011-12-08 2015-09-08 Hitachi, Ltd. Virtual computer system, virtual computer management program, and MAC address management method
JP2015069524A (ja) * 2013-09-30 2015-04-13 富士通株式会社 情報処理装置、ストレージ制御装置、及びプログラム
JP2017228191A (ja) * 2016-06-24 2017-12-28 コニカミノルタ株式会社 画像処理装置、デバッグ支援方法およびデバッグ支援プログラム

Also Published As

Publication number Publication date
US8028184B2 (en) 2011-09-27
JP5018252B2 (ja) 2012-09-05
US20080307213A1 (en) 2008-12-11

Similar Documents

Publication Publication Date Title
JP5018252B2 (ja) デバイス割り当て変更方法
US10585662B2 (en) Live updates for virtual machine monitor
JP5599804B2 (ja) 仮想ストレージの割り当て方法
JP4995015B2 (ja) 仮想計算機の実行可否検査方法
JP2009145931A (ja) 仮想計算機と物理計算機との間のマイグレーション方法及びその計算機システム
US9092297B2 (en) Transparent update of adapter firmware for self-virtualizing input/output device
EP3985504B1 (en) Virtual machine migration
JP5222651B2 (ja) 仮想計算機システムおよび仮想計算機システムの制御方法
EP2577450B1 (en) Virtual machine migration techniques
US10635499B2 (en) Multifunction option virtualization for single root I/O virtualization
JP5742387B2 (ja) 情報処理システム、及びi/oスイッチ装置
US9639486B2 (en) Method of controlling virtualization software on a multicore processor
US20190258503A1 (en) Method for operating virtual machines on a virtualization platform and corresponding virtualization platform
US11748094B2 (en) Techniques for non-disruptive operating system upgrade
Kooburat et al. The Best of Both Worlds with {On-Demand} Virtualization
US9804877B2 (en) Reset of single root PCI manager and physical functions within a fabric
US20160077847A1 (en) Synchronization of physical functions and virtual functions within a fabric
WO2024008066A1 (zh) 一种基于云计算技术的服务器以及云系统
US20230359533A1 (en) User Triggered Virtual Machine Cloning for Recovery/Availability/Scaling
Shen et al. Cloud Infrastructure: Virtualization

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090812

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111220

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120125

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

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

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

Free format text: PAYMENT UNTIL: 20150622

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees