JP6753412B2 - コンピュータ、デバイス割当管理方法及びプログラム - Google Patents
コンピュータ、デバイス割当管理方法及びプログラム Download PDFInfo
- Publication number
- JP6753412B2 JP6753412B2 JP2017546403A JP2017546403A JP6753412B2 JP 6753412 B2 JP6753412 B2 JP 6753412B2 JP 2017546403 A JP2017546403 A JP 2017546403A JP 2017546403 A JP2017546403 A JP 2017546403A JP 6753412 B2 JP6753412 B2 JP 6753412B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual machine
- identifier
- assigned
- interface
- pci
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Description
そのため、各仮想マシンが仮想的なハードウェアを利用する場合、サーバ仮想化技術の主要な構成要素の1つであるハイパーバイザ、あるいは仮想マシンモニタ(VMM:Virtual Machine Monitor)と呼ばれる管理プログラムが、仮想マシンのハードウェアへのアクセスをトラップし、実ハードウェアのリソースへの適切なアクセスを行う。そのため、仮想マシンが何らかの処理を行う場合、仮想マシンモニタのオーバヘッドが加わるため、一般に実ハードウェア上で稼働するOSよりも、仮想マシンの方が性能が低くなる。
これらの接続のために、PCI−Express Root Complexは、内部でバス番号を1つ消費する。PCI−Express Root Complexは、PCI−Expressファブリックの根本(Root)に位置するデバイスであるため、消費するバス番号は「0」である。
このBDF番号は、PCI−Expressデバイス側からメモリリードリクエストやメモリライトリクエストなどのリクエストが発行される際に、送信元のPCI−Expressデバイスを示す情報として、リクエストに書き込まれる。
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを保持する記憶部と、
前記仮想マシンの動作に必要なI/Oデバイスを特定する仮想マシンモニタと、
前記仮想マシンモニタによって特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定し、該仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録するI/Oデバイスマネージャーと、
を有する構成である。
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを記憶部に格納し、
前記仮想マシンの動作に必要なI/Oデバイスを特定し、
特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定し、
前記仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録するものである。
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを記憶部に格納する手順と、
前記仮想マシンの動作に必要なI/Oデバイスを特定する手順と、
特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定する手順と、
前記仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録する手順を実行させる。
[構成の説明]
図1は、本発明の第1の実施形態に係るコンピュータシステムの一構成例を示すブロック図である。図1を参照すると、コンピュータシステム1は、ハードウェア2と、仮想マシンモニタ3と、仮想マシン4と、I/Oデバイスマネージャー5と、I/O側ネットワークインタフェース6と、ネットワーク7と、I/Oデバイス8と、を有する。
ネットワーク7は、NIC21と、I/O側ネットワークインタフェース6とを接続する。
次に、図面を参照して、本実施形態のコンピュータシステムの動作を説明する。
このように、サーチに対して応答することで、PCI−PCI Bridgeの下流に接続されたI/Oデバイス8まで初期設定が行われ得る。
設定完了後に、I/Oデバイス8は、コンプリーションパケットをI/Oデバイスマネージャー5に向けて送信する(ステップS82a)。
次に、本発明の第2の実施形態について、図面を参照して詳細に説明する。なお、本発明の第1の実施形態と同様の構成要素に対しては、同一の符号を付し、詳細な説明を省略する。
仮想マシン4からのPCIコンフィギュレーションレジスタへの設定要求がBARに対するもので、BARに対する書き込み要求だった場合(BARのベースアドレスの設定)、コンプリーションの通知がなされた時点で、BARへの設定が完了している。そのため、リクエスト発行先決定部32は、開始アドレス(BARに書き込んだ値)、終了アドレス(BARに書き込んだ値にBARから読み出した値を加算した値)、BDF番号及びBAR番号を、アドレス範囲テーブル35に登録する(ステップS37d)。
次に、本発明の第3の実施形態について、図面を参照して詳細に説明する。なお、本発明の第1、第2の実施形態と同様の構成要素に対しては、同一の符号を付し、詳細な説明を省略する。
第2の実施形態の場合、仮想マシン4によってI/Oデバイス8は初期設定される。これは、標準的なPCI−Expressファブリックの初期設定の際の動作と同様の方法でも実現することができる。
次に、本発明の第4の実施形態について、図面を参照して詳細に説明する。なお、本発明の第1から第3の実施形態と同様の構成要素に対しては同一の符号を付し、詳細な説明を省略する。
コンピュータであって、
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを保持する記憶部と、
前記仮想マシンの動作に必要なI/Oデバイスを特定する仮想マシンモニタと、
前記仮想マシンモニタによって特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定し、該仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録するI/Oデバイスマネージャーと、
を有するコンピュータ。
付記1に記載のコンピュータにおいて、
前記記憶部は、前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルをさらに有し、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持し、
前記I/Oデバイスマネージャーは、前記仮想マシンに前記I/Oデバイスを割り当て可能と判定すると、該仮想マシンの識別子及び該I/Oデバイスの前記識別子を用いて前記I/Oデバイスリスト及び前記アドレステーブルを更新し、前記仮想マシンの起動前に、該仮想マシンに割り当てたI/Oデバイスの初期設定を実行し、該初期設定の情報を前記仮想マシンモニタに通知し、
前記仮想マシンモニタは、前記I/Oデバイスマネージャーから通知された、前記I/Oデバイスの初期設定の情報を保持し、前記仮想マシンを起動させた後、該仮想マシンから送出された、前記I/Oデバイスに対する初期設定の信号をトラップすると、保持した、前記I/Oデバイスの初期設定の情報に基づいて、該仮想マシンによる初期設定の処理に応答する、コンピュータ。
付記2に記載のコンピュータにおいて、
前記記憶部は、前記仮想マシンに割り当てられた前記I/Oデバイスについて、該仮想マシンによって付与された識別子である仮想識別子と、前記I/Oデバイスマネージャーによって付与された前記識別子との情報を対応づけて保持する番号対応テーブルをさらに有し、
前記仮想マシンモニタは、前記仮想マシンから前記I/Oデバイスへのアクセス要求を受け付けると、該アクセス要求に含まれる、該I/Oデバイスの前記仮想識別子を読み出し、読み出した仮想識別子に対応する前記識別子を前記番号対応テーブルで特定し、特定した前記識別子の情報を含む前記アクセス要求を前記I/Oデバイスマネージャーに通知する、コンピュータ。
付記1に記載のコンピュータにおいて、
前記記憶部は、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルと、
前記仮想マシンに割り当てられた前記I/Oデバイスの前記識別子を保持する番号テーブルと、をさらに有し、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持し、
前記I/Oデバイスの前記識別子は前記仮想マシンによって付与されたものであり、
前記仮想マシンモニタは、前記仮想マシンを起動させた後、該仮想マシンから設定要求の信号をトラップすると、該設定要求の対象が前記番号テーブルに登録されたI/Oデバイスであるか否かを判定し、該設定要求の対象が前記番号テーブルに登録されたI/Oデバイスと判定すると、トラップした信号に含まれる前記仮想マシンの識別子及び前記I/Oデバイスの前記識別子を前記I/Oデバイスマネージャーに通知し、
前記I/Oデバイスマネージャーは、通知された前記仮想マシンの識別子及び前記I/Oデバイスの識別子によって前記アドレステーブルで特定されるインタフェース識別子を読み出し、該インタフェース識別子を持つインタフェースを介して該I/Oデバイスに対して初期設定を実行する、コンピュータ。
付記3または4に記載のコンピュータにおいて、
前記記憶部は、前記インタフェースのインタフェース識別子と、該インタフェースに接続されたI/Oデバイスが割り当てられた前記仮想マシンの識別子とを対応づけて保持するアドレス逆引きテーブルをさらに有し、
前記I/Oデバイスマネージャーは、前記仮想マシンモニタを介して前記I/Oデバイスへのアクセス要求又は設定要求を前記仮想マシンから受け付けると、その要求に含まれる情報を用いて、該I/Oデバイスが属するファブリックの仕様にしたがってパケットを構築し、前記ネットワークの仕様に基づいて該パケットをカプセル化したフレームを該I/Oデバイス宛に前記ネットワーク及び前記インタフェースを介して送信し、
前記I/Oデバイスマネージャーは、前記I/Oデバイスから前記インタフェース及び前記ネットワークを介してフレームを受信すると、前記ネットワークの仕様に基づいて該フレームのパケットをデカプセル化し、デカプセル化後のパケットから送信元を示すインタフェース識別子を読み出し、前記アドレス逆引きテーブルを参照し、該インタフェース識別子に対応して登録されている前記仮想マシンの識別子を読み出し、該識別子で特定される仮想マシン宛にパケットを送信する、コンピュータ。
付記2または4に記載のコンピュータにおいて、
前記I/Oデバイスマネージャーは、前記I/Oデバイスが属するファブリックの仕様に基づいて、仮想的なデバイスの情報を前記I/Oデバイスリストに挿入する、コンピュータ。
付記6に記載のコンピュータにおいて、
前記I/Oデバイスマネージャーは、前記仮想的なデバイスの情報を前記I/Oデバイスリストに挿入した場合に、該仮想的なデバイスのエントリに仮想的なデバイスであることを示す情報を付与し、
前記仮想マシンモニタは、前記仮想マシンから初期設定の信号を受け取っても、前記仮想的なデバイスであることを示す情報が付与されたデバイスの情報を通知しない、コンピュータ。
仮想マシンの動作に必要なI/Oデバイスを特定する仮想マシンモニタを含み、それぞれ異なる仮想マシンが動作する複数のコンピュータと、
前記複数のコンピュータとネットワークを介して接続されたI/Oデバイスについて、前記仮想マシンへの割り当てを管理するためのI/Oデバイスリストを保持する記憶部、及び前記仮想マシンモニタによって特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストで検索し、割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、予め決められた仕様に基づいて該I/Oデバイスに識別子を付与して該仮想マシンモニタの識別子及び該仮想マシンの識別子とともに前記I/Oデバイスリストに登録するデバイス設定部を含むグローバルI/Oデバイスマネージャーと、
を有するコンピュータシステム。
コンピュータによるデバイス割当管理方法であって、
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを記憶部に格納し、
前記仮想マシンの動作に必要なI/Oデバイスを特定し、
特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定し、
前記仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録する、デバイス割当管理方法。
付記9に記載のデバイス割当管理方法において、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持するものであり、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルを前記記憶部に格納し、
前記仮想マシンに前記I/Oデバイスを割り当て可能と判定すると、該仮想マシンの識別子及び該I/Oデバイスの前記識別子を用いて前記I/Oデバイスリスト及び前記アドレステーブルを更新し、
前記仮想マシンの起動前に、該仮想マシンに割り当てたI/Oデバイスの初期設定を実行し、該初期設定の情報を保持し、
前記仮想マシンを起動させた後、該仮想マシンから送出された、前記I/Oデバイスに対する初期設定の信号をトラップすると、保持した、前記I/Oデバイスの初期設定の情報に基づいて、該仮想マシンによる初期設定の処理に応答する、デバイス割当管理方法。
付記10に記載のデバイス割当管理方法において、
前記仮想マシンに割り当てられた前記I/Oデバイスについて、該仮想マシンによって付与された識別子である仮想識別子と、前記I/Oデバイスの前記識別子との情報を対応づけて保持する番号対応テーブルを前記記憶部に格納し、
前記仮想マシンから前記I/Oデバイスへのアクセス要求を受け付けると、該アクセス要求に含まれる、該I/Oデバイスの前記仮想識別子を読み出し、読み出した仮想識別子に対応する前記識別子を前記番号対応テーブルで特定する、デバイス割当管理方法。
付記9に記載のデバイス割当管理方法において、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持するものであり、
前記I/Oデバイスの前記識別子は前記仮想マシンによって付与されたものであり、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルと、前記仮想マシンに割り当てられた前記I/Oデバイスの前記識別子を保持する番号テーブルと、を前記記憶部に格納し、
前記仮想マシンを起動させた後、該仮想マシンから設定要求の信号をトラップすると、該設定要求の対象が前記番号テーブルに登録されたI/Oデバイスであるか否かを判定し、
前記設定要求の対象が前記番号テーブルに登録されたI/Oデバイスと判定すると、トラップした信号に含まれる前記仮想マシンの識別子及び前記I/Oデバイスの前記識別子を読み出し、
読み出した前記仮想マシンの識別子及び前記I/Oデバイスの識別子によって前記アドレステーブルでインタフェース識別子を特定し、
特定したインタフェース識別子を持つインタフェースを介して前記I/Oデバイスに対して初期設定を実行する、デバイス割当管理方法。
コンピュータに、
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを記憶部に格納する手順と、
前記仮想マシンの動作に必要なI/Oデバイスを特定する手順と、
特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定する手順と、
前記仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録する手順を実行させるためのプログラム。
付記13に記載のプログラムにおいて、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持するものであり、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルを前記記憶部に格納する手順と、
前記仮想マシンに前記I/Oデバイスを割り当て可能と判定すると、該仮想マシンの識別子及び該I/Oデバイスの前記識別子を用いて前記I/Oデバイスリスト及び前記アドレステーブルを更新する手順と、
前記仮想マシンの起動前に、該仮想マシンに割り当てたI/Oデバイスの初期設定を実行し、該初期設定の情報を保持する手順と、
前記仮想マシンを起動させた後、該仮想マシンから送出された、前記I/Oデバイスに対する初期設定の信号をトラップすると、保持した、前記I/Oデバイスの初期設定の情報に基づいて、該仮想マシンによる初期設定の処理に応答する手順とをさらに有するプログラム。
付記14に記載のプログラムにおいて、
前記仮想マシンに割り当てられた前記I/Oデバイスについて、該仮想マシンによって付与された識別子である仮想識別子と、前記I/Oデバイスの前記識別子との情報を対応づけて保持する番号対応テーブルを前記記憶部に格納する手順と、
前記仮想マシンから前記I/Oデバイスへのアクセス要求を受け付けると、該アクセス要求に含まれる、該I/Oデバイスの前記仮想識別子を読み出し、読み出した仮想識別子に対応する前記識別子を前記番号対応テーブルで特定する手順とをさらに有するプログラム。
付記13に記載のプログラムにおいて、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持するものであり、
前記I/Oデバイスの前記識別子は前記仮想マシンによって付与されたものであり、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルと、前記仮想マシンに割り当てられた前記I/Oデバイスの前記識別子を保持する番号テーブルとを前記記憶部に格納する手順と、
前記仮想マシンを起動させた後、該仮想マシンから設定要求の信号をトラップすると、該設定要求の対象が前記番号テーブルに登録されたI/Oデバイスであるか否かを判定する手順と、
前記設定要求の対象が前記番号テーブルに登録されたI/Oデバイスと判定すると、トラップした信号に含まれる前記仮想マシンの識別子及び前記I/Oデバイスの前記識別子を読み出す手順と、
読み出した前記仮想マシンの識別子及び前記I/Oデバイスの識別子によって前記アドレステーブルでインタフェース識別子を特定する手順と、
特定したインタフェース識別子を持つインタフェースを介して前記I/Oデバイスに対して初期設定を実行する手順とをさらに有するプログラム。
2 ハードウェア
3 仮想マシンモニタ(VMM)
4 仮想マシン(VM)
5 I/Oデバイスマネージャー
6 I/O側ネットワークインタフェース
7 ネットワーク
8 I/Oデバイス
9 PCI−Expressスイッチ
10 グローバルI/Oデバイスマネージャー
21 ネットワークインタフェースカード(NIC)
31 仮想マシンインタフェース
32 リクエスト発行先決定部
33 I/Oデバイス割当部
34 I/Oデバイスマネージャーインタフェース
35 アドレス範囲テーブル
36 BDF番号対応テーブル
36d BDF番号テーブル
37 NICドライバ
38 リソースファイル保持部
39 I/Oデバイス割当リスト
51 仮想マシンモニタインタフェース
52 I/Oデバイス設定部
53 リクエスト制御部
54 NICドライバインタフェース
55 MACアドレステーブル
56 I/Oデバイス設定内容保持テーブル
57 I/Oデバイスリスト
58 MACアドレス逆引きテーブル
59 I/Oデバイス設定リスト
Claims (6)
- コンピュータであって、
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを保持する記憶部と、
前記仮想マシンの動作に必要なI/Oデバイスを特定する仮想マシンモニタと、
前記仮想マシンモニタによって特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定し、該仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録するI/Oデバイスマネージャーと、
を有し、
前記記憶部は、前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルをさらに有し、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持し、
前記I/Oデバイスマネージャーは、前記仮想マシンに前記I/Oデバイスを割り当て可能と判定すると、該仮想マシンの識別子及び該I/Oデバイスの前記識別子を用いて前記I/Oデバイスリスト及び前記アドレステーブルを更新し、前記仮想マシンの起動前に、該仮想マシンに割り当てたI/Oデバイスの初期設定を実行し、該初期設定の情報を前記仮想マシンモニタに通知し、
前記仮想マシンモニタは、前記I/Oデバイスマネージャーから通知された、前記I/Oデバイスの初期設定の情報を保持し、前記仮想マシンを起動させた後、該仮想マシンから送出された、前記I/Oデバイスに対する初期設定の信号をトラップすると、保持した、前記I/Oデバイスの初期設定の情報に基づいて、該仮想マシンによる初期設定の処理に応答する、コンピュータ。 - コンピュータであって、
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのI/Oデバイスリストを保持する記憶部と、
前記仮想マシンの動作に必要なI/Oデバイスを特定する仮想マシンモニタと、
前記仮想マシンモニタによって特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定し、該仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録するI/Oデバイスマネージャーと、
を有し、
前記記憶部は、前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの識別子であるインタフェース識別子からなる情報を組にして管理するためのアドレステーブルと、前記仮想マシンに割り当てられた前記I/Oデバイスの前記識別子を保持する番号テーブルと、をさらに有し、
前記I/Oデバイスリストは、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの前記インタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持し、
前記I/Oデバイスの前記識別子は前記仮想マシンによって付与されたものであり、
前記仮想マシンモニタは、前記仮想マシンを起動させた後、該仮想マシンから設定要求の信号をトラップすると、該設定要求の対象が前記番号テーブルに登録されたI/Oデバイスであるか否かを判定し、該設定要求の対象が前記番号テーブルに登録されたI/Oデバイスと判定すると、トラップした信号に含まれる前記仮想マシンの識別子及び前記I/Oデバイスの前記識別子を前記I/Oデバイスマネージャーに通知し、
前記I/Oデバイスマネージャーは、通知された前記仮想マシンの識別子及び前記I/Oデバイスの識別子によって前記アドレステーブルで特定されるインタフェース識別子を読み出し、該インタフェース識別子を持つインタフェースを介して該I/Oデバイスに対して初期設定を実行する、コンピュータ。 - コンピュータによるデバイス割当管理方法であって、
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのものであり、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの識別子であるインタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持するものであるI/Oデバイスリストを記憶部に格納し、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの前記インタフェース識別子からなる情報を組にして管理するためのアドレステーブルを前記記憶部に格納し、
前記仮想マシンの動作に必要なI/Oデバイスを特定し、
特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定し、
前記仮想マシンに前記I/Oデバイスを割り当て可能と判定すると、該仮想マシンの識別子及び該I/Oデバイスの前記識別子を用いて前記I/Oデバイスリスト及び前記アドレステーブルを更新し、
前記仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録し、
前記仮想マシンの起動前に、該仮想マシンに割り当てたI/Oデバイスの初期設定を実行し、該初期設定の情報を保持し、
前記仮想マシンを起動させた後、該仮想マシンから送出された、前記I/Oデバイスに対する初期設定の信号をトラップすると、保持した、前記I/Oデバイスの初期設定の情報に基づいて、該仮想マシンによる初期設定の処理に応答する、デバイス割当管理方法。 - コンピュータによるデバイス割当管理方法であって、
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのものであり、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの識別子であるインタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持するものであるI/Oデバイスリストを記憶部に格納し、
前記仮想マシンの識別子、該仮想マシンに割り当てられたものであり、該仮想マシンによって付与されたものである前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの前記インタフェース識別子からなる情報を組にして管理するためのアドレステーブルと、前記仮想マシンに割り当てられた前記I/Oデバイスの前記識別子を保持する番号テーブルと、を前記記憶部に格納し、
前記仮想マシンの動作に必要なI/Oデバイスを特定し、
特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定し、
前記仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録し、
前記仮想マシンを起動させた後、該仮想マシンから設定要求の信号をトラップすると、該設定要求の対象が前記番号テーブルに登録されたI/Oデバイスであるか否かを判定し、
前記設定要求の対象が前記番号テーブルに登録されたI/Oデバイスと判定すると、トラップした信号に含まれる前記仮想マシンの識別子及び前記I/Oデバイスの前記識別子を読み出し、
読み出した前記仮想マシンの識別子及び前記I/Oデバイスの識別子によって前記アドレステーブルでインタフェース識別子を特定し、
特定したインタフェース識別子を持つインタフェースを介して前記I/Oデバイスに対して初期設定を実行する、デバイス割当管理方法。 - コンピュータに、
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのものであり、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの識別子であるインタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持するものであるI/Oデバイスリストを記憶部に格納する手順と、
前記仮想マシンの識別子、該仮想マシンに割り当てられた前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの前記インタフェース識別子からなる情報を組にして管理するためのアドレステーブルを前記記憶部に格納する手順と、
前記仮想マシンの動作に必要なI/Oデバイスを特定する手順と、
特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定する手順と、
前記仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録する手順と、
前記仮想マシンの起動前に、該仮想マシンに割り当てたI/Oデバイスの初期設定を実行し、該初期設定の情報を保持する手順と、
前記仮想マシンを起動させた後、該仮想マシンから送出された、前記I/Oデバイスに対する初期設定の信号をトラップすると、保持した、前記I/Oデバイスの初期設定の情報に基づいて、該仮想マシンによる初期設定の処理に応答する手順を実行させるためのプログラム。 - コンピュータに、
前記コンピュータとネットワークを介して接続されたI/Oデバイスについて、前記コンピュータで動作する仮想マシンへの割り当てを管理するためのものであり、前記I/Oデバイスの種別及びスペックと、該I/Oデバイスに接続されたインタフェースの識別子であるインタフェース識別子と、該I/Oデバイスの割り当て先となる仮想マシンの識別子との情報を組にして保持するものであるI/Oデバイスリストを記憶部に格納する手順と、
前記仮想マシンの識別子、該仮想マシンに割り当てられたものであり、該仮想マシンによって付与されたものである前記I/Oデバイスの前記識別子、及び該I/Oデバイスと前記ネットワークとの間に接続されたインタフェースの前記インタフェース識別子からなる情報を組にして管理するためのアドレステーブルと、前記仮想マシンに割り当てられた前記I/Oデバイスの前記識別子を保持する番号テーブルと、を前記記憶部に格納する手順と、
前記仮想マシンの動作に必要なI/Oデバイスを特定する手順と、
特定されたI/Oデバイスが前記仮想マシンに割り当て可能か否かを前記I/Oデバイスリストを参照して判定する手順と、
前記仮想マシンに割り当て可能なI/Oデバイスがあると、該仮想マシンに該I/Oデバイスを割り当て、該I/Oデバイスに対して予め決められた仕様に基づいて付与された識別子を該仮想マシンの識別子とともに前記記憶部に登録する手順と、
前記仮想マシンを起動させた後、該仮想マシンから設定要求の信号をトラップすると、該設定要求の対象が前記番号テーブルに登録されたI/Oデバイスであるか否かを判定する手順と、
前記設定要求の対象が前記番号テーブルに登録されたI/Oデバイスと判定すると、トラップした信号に含まれる前記仮想マシンの識別子及び前記I/Oデバイスの前記識別子を読み出す手順と、
読み出した前記仮想マシンの識別子及び前記I/Oデバイスの識別子によって前記アドレステーブルでインタフェース識別子を特定する手順と、
特定したインタフェース識別子を持つインタフェースを介して前記I/Oデバイスに対して初期設定を実行する手順を実行させるためのプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015208114 | 2015-10-22 | ||
JP2015208114 | 2015-10-22 | ||
PCT/JP2016/004595 WO2017068770A1 (ja) | 2015-10-22 | 2016-10-17 | コンピュータ、デバイス割当管理方法及びプログラム記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2017068770A1 JPWO2017068770A1 (ja) | 2018-08-23 |
JP6753412B2 true JP6753412B2 (ja) | 2020-09-09 |
Family
ID=58557347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017546403A Active JP6753412B2 (ja) | 2015-10-22 | 2016-10-17 | コンピュータ、デバイス割当管理方法及びプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US10684880B2 (ja) |
JP (1) | JP6753412B2 (ja) |
WO (1) | WO2017068770A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10356131B2 (en) * | 2016-12-09 | 2019-07-16 | Nutanix, Inc. | Service chaining for multiple uplink bridges |
US11089066B2 (en) | 2016-12-09 | 2021-08-10 | Nutanix, Inc. | System and method for dynamic medium access control (MAC) relating to a virtualization environment |
JP2019114025A (ja) * | 2017-12-22 | 2019-07-11 | コニカミノルタ株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
US10684976B1 (en) * | 2018-07-09 | 2020-06-16 | American Megatrends International, Llc | Automatic bus resource adjustment in a multiple root bridge computing system |
US10942670B2 (en) * | 2018-12-06 | 2021-03-09 | Vmware, Inc. | Direct access flash transition layer |
US11119801B2 (en) | 2019-03-28 | 2021-09-14 | International Business Machines Corporation | Migrating virtual machines across commonly connected storage providers |
CN110221867A (zh) * | 2019-05-31 | 2019-09-10 | 湖北三江航天万峰科技发展有限公司 | 一种xp系统下脉冲i/o功能卡通信驱动系统及方法 |
US11023402B2 (en) * | 2019-07-02 | 2021-06-01 | National Instruments Corporation | Switch pruning in a switch fabric bus chassis |
US11558296B2 (en) * | 2020-09-18 | 2023-01-17 | Serialtek, Llc | Transaction analyzer for peripheral bus traffic |
JP7153942B2 (ja) * | 2020-08-17 | 2022-10-17 | ラトナ株式会社 | 情報処理装置、方法、コンピュータプログラム、及び、記録媒体 |
CN113127099B (zh) * | 2021-05-12 | 2024-04-12 | 北京奇艺世纪科技有限公司 | 服务器配置方法、装置、设备及存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3490212B2 (ja) | 1996-04-08 | 2004-01-26 | 株式会社日立製作所 | 情報処理装置の入出力チャネル拡張方法 |
US7467381B2 (en) * | 2003-12-16 | 2008-12-16 | Intel Corporation | Resource partitioning and direct access utilizing hardware support for virtualization |
JP4295783B2 (ja) | 2006-12-13 | 2009-07-15 | 株式会社日立製作所 | 計算機、仮想デバイスの制御方法 |
JP5018252B2 (ja) * | 2007-06-06 | 2012-09-05 | 株式会社日立製作所 | デバイス割り当て変更方法 |
US20100169884A1 (en) * | 2008-12-31 | 2010-07-01 | Zohar Bogin | Injecting transactions to support the virtualization of a physical device controller |
JP5639913B2 (ja) * | 2011-02-02 | 2014-12-10 | 株式会社日立製作所 | 計算機システム、及びその制御方法 |
US8694995B2 (en) * | 2011-12-14 | 2014-04-08 | International Business Machines Corporation | Application initiated negotiations for resources meeting a performance parameter in a virtualized computing environment |
JP5928197B2 (ja) * | 2012-06-29 | 2016-06-01 | 富士通株式会社 | ストレージシステム管理プログラム及びストレージシステム管理装置 |
US8930668B2 (en) * | 2012-11-15 | 2015-01-06 | Bank Of America Corporation | Storage black box |
US9832078B2 (en) * | 2015-01-06 | 2017-11-28 | Netapp, Inc. | Stateless resource management |
US10437642B2 (en) * | 2015-04-22 | 2019-10-08 | Hitachi, Ltd. | Management system for computer system |
-
2016
- 2016-10-17 JP JP2017546403A patent/JP6753412B2/ja active Active
- 2016-10-17 WO PCT/JP2016/004595 patent/WO2017068770A1/ja active Application Filing
- 2016-10-17 US US15/770,045 patent/US10684880B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2017068770A1 (ja) | 2017-04-27 |
JPWO2017068770A1 (ja) | 2018-08-23 |
US10684880B2 (en) | 2020-06-16 |
US20180321964A1 (en) | 2018-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6753412B2 (ja) | コンピュータ、デバイス割当管理方法及びプログラム | |
US9804988B1 (en) | Device full memory access through standard PCI express bus | |
WO2015194534A1 (ja) | スイッチ装置とコンピュータシステムと方法並びにプログラム | |
JP5362980B2 (ja) | データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(ソケット接続および共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法) | |
JP5763873B2 (ja) | データ処理システムの複数のルート複合体間の通信のために共用メモリを初期設定するための方法、コンピュータ・プログラム、およびデータ処理システム | |
JP5305848B2 (ja) | データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム | |
US9411654B2 (en) | Managing configuration and operation of an adapter as a virtual peripheral component interconnect root to expansion read-only memory emulation | |
US10509758B1 (en) | Emulated switch with hot-plugging | |
US9531668B2 (en) | Micro server, method of allocating MAC address, and computer readable recording medium | |
JP2008152786A (ja) | データ処理システム内で1つまたは複数のエンドポイントの第1の物理機能から第2の物理機能に仮想機能を移行するための方法、プログラム、およびシステム(単一ルート・ステートレス仮想機能の移行のためのシステムおよび方法) | |
JP2008152787A (ja) | データ処理システム内で実行中の通信ファブリックにコンポーネントをホット・プラグするための方法、プログラム、およびシステム(実行中のPCIeファブリックにおける新しいコンポーネントのホット・プラグ/除去のためのシステムおよび方法) | |
JP2011517497A (ja) | Pcieのsr−iov機能をレガシー機能として現出するように変換するシステム及び方法 | |
WO2015145983A1 (ja) | コンピュータシステム、データ処理装置、バスデータ転送方法、および、コンピュータ可読記録媒体 | |
US11983136B2 (en) | PCIe device and operating method thereof | |
US11995019B2 (en) | PCIe device with changeable function types and operating method thereof | |
KR101575070B1 (ko) | 디바이스 기능에 대한 액세스를 제공하기 위한 장치, 시스템 및 방법 | |
JP6094575B2 (ja) | I/oデバイス共有システムおよびi/oデバイス共有方法 | |
CN115203110A (zh) | PCIe功能及其操作方法 | |
CN113778934B (zh) | 基于PCIe的高速实时传输系统 | |
JP6965943B2 (ja) | 構成管理装置、構成管理システム、構成管理方法、および、構成管理プログラム | |
JP2020198007A (ja) | 情報処理装置、情報処理システムおよび情報処理プログラム | |
CN101676894A (zh) | 面向集中地址译码的非pci片上总线的pci虚拟化装置及方法 | |
JP4780333B2 (ja) | データプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラム | |
KR20230142095A (ko) | 인터페이스 디바이스 및 그 동작 방법 | |
JPWO2019124450A1 (ja) | 入出力実行装置、デバイス仮想化システム、入出力実行方法、および、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180409 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190913 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200519 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200630 |
|
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: 20200721 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200803 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6753412 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |