JP2015201008A - Information processing device, information processing program, and information processing method - Google Patents
Information processing device, information processing program, and information processing method Download PDFInfo
- Publication number
- JP2015201008A JP2015201008A JP2014078644A JP2014078644A JP2015201008A JP 2015201008 A JP2015201008 A JP 2015201008A JP 2014078644 A JP2014078644 A JP 2014078644A JP 2014078644 A JP2014078644 A JP 2014078644A JP 2015201008 A JP2015201008 A JP 2015201008A
- Authority
- JP
- Japan
- Prior art keywords
- control unit
- unit
- switching
- virtual
- configuration information
- 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.)
- Pending
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
Description
本発明は,情報処理装置,情報処理プログラム及び情報処理方法に関する。 The present invention relates to an information processing apparatus, an information processing program, and an information processing method.
近年,物理マシン(以下,VMホストとも呼ぶ)の性能向上に伴い,複数の仮想マシン(以下,VMとも呼ぶ)を1つの物理マシンに集約する仮想化技術の研究が進められている。この仮想化技術は,例えば,仮想化ソフトウエア(以下,ハイパーバイザとも呼ぶ)が物理マシンを複数の仮想マシンに割り当てて,各仮想マシンにインストールされたアプリケーションプログラム(以下,アプリケーションとも呼ぶ)によるサービスの提供を可能にする。 In recent years, with the improvement in performance of physical machines (hereinafter also referred to as VM hosts), research on virtualization technology that consolidates a plurality of virtual machines (hereinafter also referred to as VMs) into one physical machine has been advanced. This virtualization technology is, for example, a service provided by an application program (hereinafter also referred to as an application) installed on each virtual machine by a virtual software (hereinafter also referred to as a hypervisor) assigning a physical machine to a plurality of virtual machines. Enables the provision of
仮想マシンによるサービスを提供する事業者が仮想マシンを作成する際に,I/O仮想化が行われる場合がある。このI/O仮想化は,例えば,物理マシンが有する物理的なデバイスを複数の仮想マシンで共有することにより,仮想マシンが使用するI/Oを仮想化する技術である。 There is a case where I / O virtualization is performed when a provider providing a service using a virtual machine creates a virtual machine. This I / O virtualization is a technique for virtualizing I / O used by a virtual machine, for example, by sharing a physical device of a physical machine among a plurality of virtual machines.
I/O仮想化の技術として,PCI Special Interest Group(以下,PCI−SIGと称する)で策定されているSingle Root I/O Virtualization(以下,SR−IOVと称する)がある。このSR−IOVでは,物理的なI/Oデバイス(以下,物理デバイスとも呼ぶ)と同様のファンクションであるPhysical Function(以下,PFと称する)に加え,仮想的なファンクションであるVirtual Function(以下,VFと称する)を物理デバイスに実装する。これによって,VFを各仮想マシンに割り当て,各仮想マシンの仮想的なI/Oデバイス(以下,仮想デバイスとも呼ぶ)として機能させることができる。そのため,一つの物理デバイスを,複数の仮想デバイスとして仮想マシンを含むシステムに認識させることができる。SR−IOVを使用することができる物理デバイスとしては,例えば,Peripheral Component Interconnect Expressデバイス(以下,PCIeデバイスと称する)が該当する(例えば,特許文献1,2参照)。
As an I / O virtualization technology, there is a Single Root I / O Virtualization (hereinafter referred to as SR-IOV) formulated by the PCI Special Interest Group (hereinafter referred to as PCI-SIG). In this SR-IOV, in addition to a physical function (hereinafter referred to as a PF) that is a function similar to a physical I / O device (hereinafter also referred to as a physical device), a virtual function (hereinafter referred to as a PF) is described. (Referred to as VF) on the physical device. Thus, a VF can be assigned to each virtual machine and function as a virtual I / O device (hereinafter also referred to as a virtual device) of each virtual machine. Therefore, one physical device can be recognized by a system including a virtual machine as a plurality of virtual devices. As a physical device that can use the SR-IOV, for example, a Peripheral Component Interconnect Express device (hereinafter referred to as a PCIe device) is applicable (for example, see
物理的なデバイスにおいてSR−IOVを使用した場合,例えば,管理用のソフトウエア(以下,管理ソフトウエアとも呼ぶ)をいずれかの仮想マシンにインストールして,PF及びVFを管理することが必要になる。この管理ソフトウエアは,VFのMACアドレス等からなる構成情報を有し,この構成情報をVFに送信することにより,PF及びVFの管理を行うものである。 When SR-IOV is used in a physical device, for example, management software (hereinafter also referred to as management software) must be installed in any virtual machine to manage PF and VF. Become. This management software has configuration information including the MAC address of the VF, and manages the PF and VF by transmitting this configuration information to the VF.
ここで,管理ソフトウエアがVFと構成情報の送受信を行う場合,一般的にVFの制御を行うPFを経由して構成情報の送受信が行われる。そのため,PFまたはPFを実装した物理デバイスに異常が発生した場合,管理ソフトウエアとVF間における構成情報のやり取りができなくなり,VFにも異常が発生する場合がある。 Here, when the management software transmits / receives the configuration information to / from the VF, the configuration information is generally transmitted / received via the PF that controls the VF. For this reason, when an abnormality occurs in the PF or a physical device mounted with the PF, configuration information cannot be exchanged between the management software and the VF, and an abnormality may also occur in the VF.
これに対し,PF及びVFの構成を冗長化することにより,運用系のPF及びVFに異常が発生した場合に,待機系のPF及びVFに切り替えて運用を継続する方法が考えられる。しかしながら,VFの構成情報が記憶されている場所は実装方法によって異なる。そのため,切り替え先(待機系)のVFは,異常が発生したPFが制御していたVFの構成情報を取得できない場合があった。 On the other hand, by making the configurations of the PF and VF redundant, it is conceivable to switch to the standby PF and VF and continue operation when an abnormality occurs in the active PF and VF. However, the location where the VF configuration information is stored differs depending on the mounting method. Therefore, the switching destination (standby system) VF may not be able to acquire the configuration information of the VF controlled by the PF in which an abnormality has occurred.
そこで,一つの実施の形態の目的は,物理デバイスの異常発生時に,異常発生前の構成情報を引き継いた状態で物理デバイスの切り替えを行うことができる情報処理装置,情報処理プログラム及び情報処理方法を提供することにある。 Therefore, an object of one embodiment is to provide an information processing apparatus, an information processing program, and an information processing method capable of switching a physical device in a state in which configuration information before the occurrence of the abnormality is taken over when an abnormality occurs in the physical device It is to provide.
実施の形態の一つの側面によれば,物理マシンに設けられた第1及び第2の物理デバイスのリソースをそれぞれ割り当てることにより仮想マシンに作成された第1及び第2の仮想デバイスを,それぞれ制御する第1及び第2の制御部と,
前記第2の制御部からアクセス可能であり,前記第1の制御部が前記第1の仮想デバイスを制御するための第1の構成情報と同期した第2の構成情報を記憶する記憶部と,
前記第1の物理デバイスの状態が所定の状態になった場合,前記第2の制御部が前記記憶部から前記第2の構成情報を取得した後に,前記第1の制御部から前記第2の制御部への切り替えを行う第1の切り替え部と,を有する。
According to one aspect of the embodiment, the first and second virtual devices created in the virtual machine are respectively controlled by allocating the resources of the first and second physical devices provided in the physical machine, respectively. First and second control units to perform,
A storage unit that is accessible from the second control unit, and that stores second configuration information synchronized with the first configuration information for the first control unit to control the first virtual device;
When the state of the first physical device becomes a predetermined state, the second control unit acquires the second configuration information from the storage unit, and then receives the second configuration information from the first control unit. And a first switching unit that performs switching to the control unit.
一つの側面によれば,PFの異常発生時に,異常発生前の構成情報を引き継いた状態で物理デバイスの切り替えを行うことができる。 According to one aspect, when a PF abnormality occurs, the physical device can be switched while the configuration information before the abnormality is inherited.
[情報処理システムの構成]
図1は,情報処理システムの全体構成を示す図である。図1に示す情報処理システム10において,管理サーバ1と,VMホスト2(以下、情報処理装置2とも呼ぶ)とがデータセンタ6内に設けられている。そして,データセンタ6には,インターネットやイントラネット等のネットワークを介して,利用者端末7が接続可能になっている。
[Configuration of information processing system]
FIG. 1 is a diagram illustrating an overall configuration of an information processing system. In the
VMホスト2は,図1の例においては複数の物理マシンから構成されており,各物理マシンはCPUとメモリ(DRAM)とハードディスク(HDD)等の大容量メモリとネットワークとを有する。VMホスト2のリソースは,複数の仮想マシン3に割り当てられる。
In the example of FIG. 1, the
管理サーバ1は,仮想マシン3と通信可能であり,VMホスト2内に作成された仮想マシン3の管理を行うものである。管理サーバ1は,例えば,仮想マシン3によって作成されてもよい。
The
仮想マシン3は,例えば,そのインフラをネットワーク経由で利用者に提供するもの(以下,クラウドサービスとも呼ぶ)である。
The
クラウドサービスは,コンピュータシステムを構築し稼働させるための基盤,即ち,仮想マシン3やネットワーク等のインフラストラクチャそのものを,ネットワーク経由で提供するサービスである。また,利用者は,例えば,利用者端末7からポータルサイト5にアクセスして,仮想マシンに必要な仕様,例えばCPUのクロック周波数,メモリの容量(GB),ハードディスクの容量(MB/sec,IOPS),及びネットワークの通信帯域幅(Gbps)を選択し,それらについてクラウド利用契約を締結する。また,利用者端末7は,例えば,仮想マシン3の稼働状態を監視や,仮想マシン3に対する操作等を可能にする。
The cloud service is a service that provides a infrastructure for constructing and operating a computer system, that is, an infrastructure itself such as the
仮想化ソフトウエア4は,管理サーバ1からの指示に応じて,VMホスト2のCPU,メモリ,ハードディスク,ネットワークを割り当てることにより,仮想マシン3を動作させる基盤ソフトウエアである。仮想化ソフトウエア4は,例えば,VMホスト2で動作する。
The
仮想マシン3は,VMホスト2のリソースが割り当てられることに加えて,例えば,OS,ミドルウエア,アプリケーション,データベース等を有するイメージファイルをそのハードディスク内に有する。そして,仮想マシン3は,例えば,起動時にイメージファイルをハードディスクからメモリに書き込み,所望のサービスに対応する動作を行う。
In addition to the
図2は,VMホストのハードウエア構成を示す図である。VMホスト2は,プロセッサであるCPU(プロセッサ)201と,メモリ202と,記憶媒体203と,外部インターフェース(I/Oユニット)204,205と,を有する。各部は,バス206を介して互いに接続される。記憶媒体203は,例えば,記憶媒体203内のプログラム格納領域(図示しない)に,仮想化されたI/Oを切り替える処理(以下,仮想I/O切り替え処理とも呼ぶ)を行うためのプログラム210を記憶する。CPU201は,図2に示すように,プログラム210の実行時に,プログラム210を記憶媒体203からメモリ202にロードし,プログラム210を実行して仮想I/Oの切り替え処理を行う。また,記憶媒体203及びI/Oユニット205は,例えば,仮想I/Oの切り替え処理を行う際に用いられる情報を記憶する情報格納領域220,230をそれぞれ有する。
FIG. 2 is a diagram illustrating a hardware configuration of the VM host. The
なお,図2の例において,VMホスト2のI/Oユニットは,I/Oユニット204(以下,第1の物理デバイス204とも呼ぶ)とI/Oユニット205(以下,第2の物理デバイス205とも呼ぶ)とによって冗長に構成されている。VMホスト2は,例えば,通常時においては,I/Oユニット204を用いて外部(例えば,管理サーバ1)と通信を行う。そして,I/Oユニット204に異常が発生した場合に,I/Oユニット205を使用して外部と通信を行う。そのため,この場合,VMホスト2は,I/Oユニット204からI/Oユニット205への切り替えを行う。これにより,VMホスト2は,I/Oユニットに異常が生じた場合においても,仮想マシン3等を停止することなく,外部との通信を継続することが可能になる。
In the example of FIG. 2, the I / O unit of the
図3は,図2で示したI/Oユニットのハードウエア構成の詳細を示す図である。I/Oユニット205は,図3の例においては,DMAコントローラ2051と,DMA用メモリ2052と,制御用チップ2053と,VMホスト2の内部(例えば,メモリ202)との通信を行う内部向け通信ユニット2054と,VMホスト2の外部(例えば,管理サーバ1)との通信を行う外部向け通信ユニット2055と,情報格納領域230(構成情報用メモリ230)とを有する。各部は,バス2057を介して互いに接続される。
FIG. 3 is a diagram showing details of the hardware configuration of the I / O unit shown in FIG. In the example of FIG. 3, the I /
DMA用メモリ2052は,例えば,内部向け通信ユニット2054がメモリ202から受信したデータを,外部向け通信ユニット2055が送信するまで一時的に記憶する。また,DMA用メモリ2052は,例えば,外部向け通信ユニット2055が管理サーバ1から受信したデータを,内部向け通信ユニット2054がメモリ202に送信(記憶)するまで一時的に記憶する。なお,図2の例におけるI/Oユニット204は,情報格納領域230を有しない点のみにおいてI/Oユニット205と構成が異なる。情報格納領域230については後述する。
For example, the
DMAコントローラ2051は,図2及び図3の例においては,例えば,CPU201がメモリ202とVMホスト2の外部(管理サーバ1等)との間の通信に介在する頻度を抑制するように制御するものである。具体的に,DMAコントローラ2051は,例えば,CPU201からの制御に基づいて,外部向け通信ユニット2055が受信したデータをメモリ202に送信するように制御する。また,DMAコントローラ2051は,例えば,CPU201からの制御に基づいて,メモリ202に記憶されたデータをVMホスト2の外部に送信するように制御する。そして,メモリ202への送信が完了したときに,CPU201に通知を行う。すなわち,CPU201は,DMAコントローラ2051への制御を行うことにより,メモリ202とVMホスト2の外部との間の通信を実行させることが可能になる。そのため,外部向けユニット2055とメモリ202との間でデータの送受信が発生する度に介在する必要がなくなる。これにより,CPU201は,通信の発生による負荷の増大を抑制することができる。
In the example of FIGS. 2 and 3, for example, the
制御用チップ2053は,例えば,外部向け通信ユニット2055が受信したデータのメモリ202への送信,またはメモリ202に記憶されたデータのVMホスト2の外部への送信が終了したときに,その旨をCPU201に通知する。これにより,CPU201は,DMAコントローラ2051によってデータがメモリ202に記憶されたことを検知することができる。また,制御用チップ2053は,例えば,VFに対するPFのリソースの割り当てを制御する。このPFのリソースの割り当てについては後述する。
For example, the
図4は,図2で示したVMホストの機能ブロック図である。VMホスト2のCPU201は,プログラム210を実行することにより,例えば,管理ソフトウエア211(以下,構成情報管理部211とも呼ぶ)と,運用系物理デバイス制御部212(以下,第1の制御部212またはPFドライバ212とも呼ぶ)と,運用系仮想デバイス制御部213(第3の制御部213またはVFドライバ213とも呼ぶ)として機能する。また,VMホスト2のCPU201は,プログラム210を実行することにより,例えば,待機系物理デバイス制御部214(以下,第2の制御部214またはPFドライバ214とも呼ぶ)と,待機系仮想デバイス制御部215(以下,第4の制御部215またはVFドライバ215とも呼ぶ)として機能する。また,VMホスト2のCPU201は,プログラム210を実行することにより,例えば,物理デバイス切り替え部216(以下,第1の切り替え部とも呼ぶ)と,仮想デバイス切り替え部217(以下,第2の切り替え部とも呼ぶ)と,送受信中継部218(以下,中継部218とも呼ぶ)として機能する。
FIG. 4 is a functional block diagram of the VM host shown in FIG. By executing the program 210, the
また,図4において,情報格納領域220には,例えば,構成情報221(以下,第1の構成情報221とも呼ぶ)が記憶されている。また,情報格納領域230(以下,記憶部230とも呼ぶ)には,例えば,バックアップ用構成情報231(以下,第2の構成情報231または構成情報231とも呼ぶ)が記憶されている。
In FIG. 4, for example, configuration information 221 (hereinafter also referred to as first configuration information 221) is stored in the
構成情報管理部211は,例えば,VFの構成情報221を情報格納領域220に記憶する。構成情報221は,VFが仮想マシンにおける仮想デバイスの機能を実現するために必要な情報である。具体的に,構成情報221は,例えば,VFによって実現される仮想デバイスに割り振られるMACアドレス,VLAN(Virtual LAN)のID(識別情報)及びMTU(Maximum Transmission Unit)を含む情報である。なお,PFは,物理的なデバイスであるI/Oユニット204,205が有するMACアドレス等に基づいて通信を行うことが可能である。すなわち,PFは,I/Oユニット204,205の物理NICとして機能することが可能であるため,構成情報管理部211と構成情報の送受信を行うことなく仮想デバイスの機能を実現することができる。
The configuration
また,構成情報管理部211は,構成情報221を情報格納領域230に記憶する。具体的に,例えば,構成情報管理部211は,構成情報221を情報格納領域220に記憶したときに,情報格納領域230にも記憶するものであってよい。これにより,情報格納領域220に記憶された構成情報221の内容と,情報格納領域230に記憶されたバックアップ用構成情報231の内容とが常に同期するように記憶することができる。
Further, the configuration
なお,構成情報221は,例えば,仮想マシンを含むシステム構築時においてユーザによって登録されるものであってよい。また,構成情報221は,仮想マシンを含むシステムの構築後,このシステムによって自動的に設定されるものであってもよい。
The
第1の制御部212は,PFが実装された物理デバイス(以下,第1の物理デバイスとも呼ぶ)を制御することにより,そのPFを関連付けられたVFの機能によって実現する仮想デバイス(以下,第1の仮想デバイスとも呼ぶ)を制御する。第1の制御部212は,例えば,PFを制御するために仮想マシン上で動作するドライバであってよい。具体的に,第1の制御部212は,例えば,ユーザやOSから受けた指示に基づいてVFの制御(新たなVFへのリソースの割り当てやリソースの解放等)を行う。
The
第3の制御部213は,仮想マシンがVFによって実現した仮想デバイスの機能を利用することにより,外部(他の仮想マシンを含む)との通信が可能になるように制御する。第3の制御部213は,例えば,VFによる仮想デバイスを制御するために仮想マシン上で動作するドライバである。
The
第2の制御部214は,PFが実装された第1の物理デバイスとは異なる物理デバイス(以下,第2の物理デバイスとも呼ぶ)を制御することにより,そのPFと関連付けられたVFの機能によって実現する仮想デバイス(以下,第2の仮想デバイスとも呼ぶ)を制御する。第2の制御部214は,第1の制御部212と同様に,例えば,PFを制御するために仮想マシン上で動作するドライバである。具体的に,第2の制御部214は,ユーザやOSから受けた指示に基づいてVFの制御を行う。
The
第4の制御部215は,仮想マシンがVFによって実現した仮想デバイスの機能を利用することにより,外部(他の仮想マシンを含む)との通信が可能になるように制御する。第4の制御部215は,例えば,VFによる仮想デバイスを制御するために仮想マシン上で動作するドライバである。
The
物理デバイス切り替え部216は,第1の制御部212と第2の制御部214との間で切り替えを行う。物理デバイス切り替え部216は,第1の制御部212と第2の制御部214との間で切り替えを行うことにより,仮想マシンが利用している仮想デバイスも切り替えられるものであってよい。
The physical
仮想デバイス切り替え部217は,物理デバイス切り替え部216からの指示に応答して,第3の制御部213と第4の制御部215との間で切り替えを行う。
The virtual
送受信中継部218は,第1の制御部212または第2の制御部214と,第3の制御部213または第4の制御部215との間における指示の中継を行う。
The transmission /
なお,PFは,例えば,物理デバイス205の一部にそれぞれ実装された機能であり,そのPFに関連付けられたVFの制御を行う。そして,VFは,PFのリソースの一部を割り当てた機能であり,PFの制御によって仮想マシンに仮想デバイスの機能を提供する。また,PFは,PF自身としても仮想マシンに仮想デバイスの機能を提供することができる。具体的に,PFは,例えば,図3において説明したDMAコントローラ2051と,DMA用メモリ2052と,制御用チップ2053と,内部向けユニット2054と,外部向けユニット2055とを有している。そして,PFは,これらのリソースまたは機能の一部をVFに割り当てる。すなわち,PF及びVFは,上記のリソースまたは機能を共有することによって,仮想マシンに仮想デバイスの機能を提供する。
Note that the PF is, for example, a function implemented in a part of the
また,PF及びVFは,PFとVF間の通信を行うために,例えば,各VFに専用メモリ及び専用の制御部を設けるものであってよい。具体的に,例えば,PFがVFにデータを送信する場合,PFは,送信を行うVFが有する専用メモリに送信するデータを記憶させる。そして,PFは,データの記憶が完了したときに,専用の制御部によって割り込みを発生させることにより,PFがVFにデータの送信を行ったことを通知する。これにより,PFからVFへの通信が完了するものであってよい。 The PF and VF may be provided with a dedicated memory and a dedicated control unit in each VF, for example, in order to perform communication between the PF and the VF. Specifically, for example, when the PF transmits data to the VF, the PF stores the data to be transmitted in a dedicated memory included in the VF that performs transmission. Then, when the data storage is completed, the PF notifies the VF that the data has been transmitted to the VF by generating an interrupt by the dedicated control unit. Thereby, communication from PF to VF may be completed.
[SR−IOVを使用したVMホストの構成例]
次に,SR−IOVを使用した場合のVMホストの構成例について説明する。図5及び図6は,SR−IOVを使用したVMホストを説明する図である。
[Configuration example of VM host using SR-IOV]
Next, a configuration example of the VM host when SR-IOV is used will be described. 5 and 6 are diagrams for explaining a VM host using SR-IOV.
図5の例におけるVMホスト2は,仮想マシン3A及び仮想マシン3Cを作成している。また,図5の例においては,VMホスト2は,物理デバイス204を有している。そして,仮想マシン3Aは,構成情報221を管理する構成情報管理部211及びPFドライバ212を有する。また,仮想マシン3Cは,VFドライバ213及びVFドライバ215を有する。さらに,図5において,物理デバイス204は,PCI−SIG規格に基づくSR−IOVに対応しており,PF251,VF252及びVF253を有している。なお,図5の例において,PF251は,VF252,253を制御しているものとする。
The
図5の例において,構成情報管理部211が構成情報221をVFドライバ213,215に送信することにより,PF251,VF252,253は,それぞれ仮想デバイス271,272,273の機能を実現することが可能になる。そして,仮想マシン3Aは,仮想デバイス271を利用することにより,外部(仮想マシン3Cを含む)と通信を行うことが可能になる。また,仮想マシン3Cは,仮想デバイス272または仮想デバイス273を利用することにより,外部(仮想マシン3Aを含む)と通信を行うことが可能になる。
In the example of FIG. 5, the configuration
図6は,構成情報管理部211がVFドライバ213に構成情報221を送信する場合の例である。構成情報管理部211は,PFドライバ212に対し,PF251が制御するVF252,253の構成情報221を予め送信する(S101)。
FIG. 6 is an example when the configuration
その後,VFドライバ213は,例えば,仮想デバイス272の作成時や仮想デバイス272の利用開始時(以下,活性化時とも呼ぶ)に,PFドライバ212に構成情報221の送信を要求する(S102)。この構成情報221の送信要求は,図6の例においては,VF252及びPF251を経由してPFドライバ212に通知される(S103,S104)。そして,構成情報221の送信要求を受信したPFドライバ212は,PF251及びVF252を経由してVFドライバ213に構成情報221を送信する(S105,S106,S107)。これにより,VFドライバ213は,受信した構成情報221に基づいて仮想デバイス272の設定や利用の開始をすることが可能になる。
Thereafter, the
ここで,例えば,物理デバイス204内のPF251に異常が発生し,PFドライバ212とVFドライバ213,215との間で,構成情報221を送受信ができなくなる場合がある。この場合,VFドライバ213,215では構成情報221の取得エラーが発生し,構成情報221の送信要求がハングする等の予期しない異常動作を引き起こす場合がある。すなわち,図6の構成では,PF251の異常発生によって,仮想マシン3Aに作成された仮想デバイス271の制御ができなくなるだけでなく,仮想マシン3Cに作成された仮想デバイス272,273の制御もできなくなる場合がある。
Here, for example, an abnormality may occur in the
そこで,本実施の形態では,切り替え前の物理デバイスに基づいて作成された仮想デバイスを制御する構成情報を,切り替え後の物理デバイスを制御するPFドライバからアクセス可能にすることにより,構成情報に基づいて切り替え後のPFドライバが切り替え後の仮想デバイスを制御できる。 Therefore, in the present embodiment, the configuration information for controlling the virtual device created based on the physical device before switching is made accessible from the PF driver that controls the physical device after switching, so that the configuration information is based on the configuration information. Thus, the switched PF driver can control the switched virtual device.
[第1の実施の形態]
最初に第1の実施の形態について説明する。図7は,第1の実施の形態における仮想I/O切り替え処理の概略を説明するシーケンスチャート図である。また,図8は,第1の実施の形態における仮想I/O切り替え処理の概略を説明する図である。図8を参照しながら,図7の仮想I/O切り替え処理の概要を説明する。
[First Embodiment]
First, the first embodiment will be described. FIG. 7 is a sequence chart for explaining the outline of the virtual I / O switching process according to the first embodiment. FIG. 8 is a diagram for explaining the outline of the virtual I / O switching process according to the first embodiment. The outline of the virtual I / O switching process of FIG. 7 will be described with reference to FIG.
[図8のVMホストの構成]
初めに,図8の例におけるVMホスト2の構成について説明する。図8の例におけるVMホスト2は,図5の例と同様に,仮想マシン3A及び仮想マシン3Cを作成している。また,図8の例においては,VMホスト2は,物理デバイス204及び物理デバイス205を有している。そして,仮想マシン3Aは,図8の例においては,PFドライバ212及びPFドライバ214を有し,さらに,仮想マシン3Aは,PFドライバ212とPFドライバ214とを切り替えるPF切り替え部216を有している。また,仮想マシン3Cは,VFドライバ213及びVFドライバ215を有する。
[Configuration of VM Host in FIG. 8]
First, the configuration of the
図8の例において,物理デバイス204及び物理デバイス205は,SR−IOVに対応している。そして,物理デバイス204は,PF251及びVF252を有し,物理デバイス205は,PF261及びVF262を有している。さらに,図8の例において,PF251はVF252を制御し,PF261はVF262を制御している。また,図8の例において,物理デバイス205は,その一部に記憶部230を実装している。この記憶部230は,例えば,フラッシュメモリ等によるものであってよい。なお,以下,運用中のPFドライバ212からPFドライバ214に切り替える場合について説明するが,運用中のPFドライバ214からPFドライバ212に切り替える場合も同様に行うことが可能である。また,図8の例において,仮想マシン3Aの構成情報管理部211については記載を省略している。
In the example of FIG. 8, the
図8の例において,構成情報管理部211がVFドライバ213,215に構成情報221を送信することにより,PF251,261,VF252,262による仮想デバイス271,272,281,282の機能がそれぞれ実現される。これにより,仮想マシン3Aは,仮想デバイス271または仮想デバイス281を利用して,仮想マシン3Aや外部(管理サーバ1等)と通信を行うことが可能になる。また,仮想マシン3Cは,仮想デバイス272または仮想デバイス282を利用して,仮想マシン3Cや外部と通信を行うことが可能になる。以下,図8を参照しながら,図7の仮想I/O切り替え処理の概略を説明する。
In the example of FIG. 8, the configuration
[図7のS1からS3]
初めに,構成情報管理部211は,VFを制御するための構成情報221を物理デバイス205に設けられた記憶部230に記憶する(S1)。構成情報管理部211は,例えば,構成情報221を情報格納領域220に記憶するときに,構成情報221と同じ内容の構成情報231を記憶部230に記憶する。これにより,構成情報221と構成情報231とを同期させることが可能になる。
[S1 to S3 in FIG. 7]
First, the configuration
そして,PFドライバ212は,PF251が所定の状態になったとき,その旨をPF切り替え部216に通知する(S2,S3)。所定の状態は,例えば,PF251(物理デバイス204)が通常状態とは異なる状態,すなわち異常状態である。そして,PFドライバ212は,例えば,PF251と通信ができなくなった場合に,PF251に異常が発生したと判断するものであってよい。また,PFドライバ212は,たとえば,PF251との通信に要する時間が予め定めた閾値(例えば,5秒)を超えた場合に,PF251に異常が発生したものと判断するものであってもよい。なお,PF切り替え部216が運用中のPF251(物理デバイス204)の状態を監視しており,PF251が所定の状態になったことをPF切り替え部216が検知するものであってもよい。
Then, when the
[図7のS4]
次に,PF切り替え部216は,PFドライバ212からPF251に異常が発生した旨の通知を受けたときに(S3),PFドライバ212から待機系のPFドライバであるPFドライバ214への切り替えを開始することを通知する(S4)。
[S4 in FIG. 7]
Next, the
すなわち,PFで発生した異常によってPFドライバとPFとの間の通信ができなくなった場合,PFが制御するVFとPFドライバとの間の通信もできなくなり,VFは,PFドライバから構成情報を受信することができなくなる。そして,PFで発生した異常によって,PFが制御するVFによって作成された仮想デバイスにも異常が発生する可能性が生じ,仮想マシンはこの仮想デバイスを使用することができなくなる。そのため,本実施の形態においては,PFドライバがPFの異常を検知した場合,異常が発生したPFドライバ(PF)から待機系のPFドライバ(PF)に切り替え,切り替え先のPFが制御するVFによって仮想デバイスを作成する。これにより,仮想マシンは,PFに異常が発生した場合においても仮想デバイスによるI/O機能を継続して利用することが可能になる。 In other words, if communication between the PF driver and the PF becomes impossible due to an abnormality that has occurred in the PF, communication between the VF controlled by the PF and the PF driver also becomes impossible, and the VF receives configuration information from the PF driver. Can not do. An abnormality that occurs in the PF may cause an abnormality in the virtual device created by the VF controlled by the PF, and the virtual machine cannot use the virtual device. Therefore, in this embodiment, when the PF driver detects an abnormality of the PF, the PF driver (PF) in which the abnormality has occurred is switched to the standby PF driver (PF), and the VF controlled by the switching destination PF is used. Create a virtual device. As a result, the virtual machine can continue to use the I / O function by the virtual device even when an abnormality occurs in the PF.
[図7のS5からS8]
PFドライバ214がPF切り替え部216から切り替えを開始する旨の通知を受信した後(S4),PFドライバ214は,物理デバイス205に構成情報231の取得要求を送信して,構成情報231を取得する(S5,S6)。そして,PF切り替え部216がPFドライバ214から構成情報231を受信した旨の通知を受信した後(S6),PF切り替え部216は,PFドライバ212からPFドライバ214への切り替えを行う(S7,S8)。具体的に,図8の例においては,PF切り替え部216が制御を行うPFドライバをPFドライバ212からPFドライバ214に切り替える。これにより,PF切り替え部216が制御するPF及びVFは,物理デバイス204に実装されているPF251及びPF252から,物理デバイス205に実装されているPF261及びVF262に切り替わる。そして,図8の例において,仮想マシン3Cの仮想I/O機能を実現する仮想デバイスは,仮想デバイス272から仮想デバイス282に切り替わる。
[S5 to S8 in FIG. 7]
After the
すなわち,PFの異常発生により待機系のPFに切り替えを行った場合,切り替え先のPFは,異常が発生したPFのPFドライバにアクセスできない場合がある。この場合,切り替え後のPFドライバは,異常が発生したPFがVFを制御するために用いていた構成情報を取得することができなくなり,切り替え前の仮想デバイスが実現していた仮想I/O機能を引き継ぐことができなくなる。そのため,S1において説明したように,PFドライバは,VFを制御するための構成情報を,運用中のPFの状態によらず,予め切り替え後のPFドライバがアクセスできる場所に記憶しておく。これにより,切り替え後のPFドライバは,異常が発生したPFがVFを制御するために用いていた構成情報を取得することが可能になる。そして,切り替え後のPFドライバは,切り替え前の仮想デバイスが仮想マシンに提供していた仮想I/O機能を,継続して仮想マシンに提供することが可能になる。 That is, when switching to a standby PF due to the occurrence of a PF abnormality, the switching destination PF may not be able to access the PF driver of the PF in which the abnormality has occurred. In this case, the PF driver after switching cannot acquire the configuration information used by the PF in which an abnormality has occurred to control the VF, and the virtual I / O function realized by the virtual device before switching Can no longer take over. Therefore, as described in S1, the PF driver stores the configuration information for controlling the VF in advance in a place that can be accessed by the switched PF driver regardless of the state of the operating PF. As a result, the PF driver after switching can acquire the configuration information used by the PF in which an abnormality has occurred to control the VF. Then, the PF driver after switching can continuously provide the virtual machine with the virtual I / O function that the virtual device before switching has provided to the virtual machine.
このように,第1の実施の形態によれば,VMホスト2は,物理デバイス205205のリソースをそれぞれ割り当てることにより仮想マシン3Cに作成された仮想デバイス272,282を,それぞれ制御するPFドライバ212,214を有する。そして,VMホスト2は,PFドライバ214からアクセス可能であり,PFドライバ212が仮想デバイス272を制御するための構成情報221と同期した構成情報231を記憶する記憶部230を有する。さらに,VMホスト2は,物理デバイス204の状態が異常状態になった場合であって,PFドライバ214が記憶部230から構成情報231を取得した後に,PFドライバ212からPFドライバ214への切り替えを行うPF切り替え部216を有する。これにより,PF251(物理デバイス204)に異常が発生し,PFドライバ212とVF252との間の通信ができなくなった場合においても,待機系のPFドライバであるPFドライバ214は,VF252の構成情報231を取得することが可能になる。そのため,仮想マシン3Cは,PFドライバ等の切り替えを行うために仮想マシン3C自体を停止させることなく,VFによって実現される仮想デバイスによる仮想I/O機能を継続して利用することが可能になる。
As described above, according to the first embodiment, the
[第1の実施の形態の詳細]
次に,第1の実施の形態の詳細について説明する。図9から図11は,第1の実施の形態における仮想I/O切り替え処理の詳細を説明するフローチャート図である。また,図12は,第1の実施の形態における仮想I/O切り替え処理の詳細を説明する図である。図12を参照しながら,図9から図11の仮想I/O切り替え処理の詳細を説明する。
[Details of First Embodiment]
Next, details of the first embodiment will be described. FIGS. 9 to 11 are flowcharts for explaining the details of the virtual I / O switching process in the first embodiment. FIG. 12 is a diagram for explaining the details of the virtual I / O switching process according to the first embodiment. Details of the virtual I / O switching process of FIGS. 9 to 11 will be described with reference to FIG.
[図12のVMホストの構成]
図12の例におけるVMホスト2は,図8の例におけるVMホスト2と異なり,VFドライバ213とVFドライバ215との間で切り替えを行うVF切り替え部217を有する。そして,PF切り替え部216からVF切り替え部217への指示(PF切り替え部216とVF切り替え部217との間の通信)を中継する送受信中継部218を有する。その他の構成については,図8に示すVMホスト2と同じ構成であるため説明を省略する。
[Configuration of VM Host in FIG. 12]
Unlike the
[PF切り替え部における仮想I/O切り替え処理]
初めに,図9を参照して,PF切り替え部216において実行される仮想I/O切り替え処理について説明する。
[Virtual I / O switching process in PF switching unit]
First, the virtual I / O switching process executed in the
仮想I/O切り替え処理のバックグラウンドにおいて,構成情報管理部211は,構成情報221を記憶部230に記憶する(S10)。
In the background of the virtual I / O switching process, the configuration
そして,PFドライバ212がPF251の異常発生を検知した場合(S11のYES),PF切り替え部216は,PFドライバ212に異常発生を検知したPF251の停止を指示する(S12)。次に,PFドライバ212からPF停止完了通知を受信したとき(S13のYES),PF切り替え部216は,停止したPF251が制御していたVF252の停止を,送受信中継部218を経由してVF切り替え部217に指示する(S14)。
When the
図12の例において,PF切り替え部216が位置する仮想マシン3AとVFドライバ213が位置する仮想マシン3Cとは,別の仮想マシンであり,OSレベルで独立している。そのため,PFドライバ212からPFドライバ214への切り替えを行う際には,例えば,PF切り替え部216によるPFドライバの切り替えとVF切り替え部217によるVFドライバの切り替えとを連携して行う必要がある。そこで,本実施の形態においては,PF切り替え部216とVF切り替え部217との間に送受信中継部218を設ける。そして,送受信中継部218は,PF切り替え部216とVF切り替え部217との間で行われる通信の中継を行う。以下,送受信中継部218の動作の具体例について説明する。
In the example of FIG. 12, the
図13は,第1の実施の形態における送受信中継部を説明する図である。図13の例における仮想マシン3A,仮想マシン3C及び送受信中継部218は,例えば,仮想マシン3Aとハイパーバイザ4との間における通信用インターフェースによって通信を行う。この通信用インターフェースは,例えば,図13に示すように,コマンドコード及びオプションパラメータを含む情報の送受信を行うためのものである。具体的に,図13の例においては,PF切り替え部216が,PF251が制御していたVF252の停止をVF切り替え部217に指示する場合について説明を行う。
FIG. 13 is a diagram for explaining the transmission / reception relay unit in the first embodiment. The
この場合,図13の例に示すように,仮想マシン3AのPF切り替え部216は,例えば,コマンドコードが「切り替え開始」であり,オプションパラメータが「仮想マシン3C」である情報を含む指示を,通信用インターフェースによって送受信中継部218に向けて送信する。そして,送受信中継部218は,上記の指示をPF切り替え部216から受信したときに,仮想マシン3CのVF切り替え部217に向けた指示を作成する。具体的に,送受信中継部218は,例えば,コマンドコードが「VFの停止」である情報を含む指示を作成し,通信用インターフェースによって仮想マシン3CのVF切り替え部217に送信する。これにより,VF切り替え部217は,PF切り替え部216からの指示に基づいてVFの停止を行うことが可能になる。
In this case, as shown in the example of FIG. 13, the
すなわち,本実施の形態においては,PF切り替え部216とVF切り替え部217との間の通信を行う場合,送受信中継部218を経由して行う。これにより,PF切り替え部216及びVF切り替え部217が担う機能をハイパーバイザ4に持たせる必要がなくなる。そのため,ハイパーバイザ4の処理負担を軽減させ,さらに,VMホスト2におけるCPU201等のリソースの負担を軽減させることができる。
That is, in the present embodiment, when communication is performed between the
また,PF切り替え部216及びVF切り替え部217は,送受信中継部218からの通信があったことをトリガとして,それぞれの処理のタイミングを応じた処理を開始する。これにより,PF切り替え部216及び切り替え部217は,互いに連携しながら処理を行うことが可能になる。
Also, the
図9に戻り,VF切り替え部217からVFの停止完了通知を受信したとき(S15のYES),PF切り替え部216は,記憶部230に記憶した構成情報231の取得をPFドライバ214に指示する(S16)。そして,PFドライバ214から構成情報を取得した旨の通知を受信したとき(S17のYES),PF切り替え部216は,PFドライバ214に切り替え先のPFであるPF261の起動を指示する。また,異常が発生したPF251が制御するVFが複数ある場合,PF切り替え部216は,全てのVFに関する停止完了通知を受信したときに(S15のYES),記憶部230に記憶した構成情報231の取得をPFドライバ214に指示する(S16)。
Returning to FIG. 9, when a VF stop completion notification is received from the VF switching unit 217 (YES in S15), the
なお,図12の例において,切り替え前のPFドライバ212が制御するVF252の構成情報231を記憶する記憶部230は,物理デバイス205に設けられている。そのため,例えば,構成情報231をハイパーバイザ4に記憶させる必要がなくなる。これにより,構成情報231を記憶することによるハイパーバイザ4の負担増大を抑制することができる。また,図12の例においては,構成情報231をハードウエアの一部である物理デバイス205に記憶させている。そのため,仮想マシンにおけるソフトウエア等の構成の違いに応じて,構成情報231を記憶する記憶部230の位置を変更する必要がない。
In the example of FIG. 12, the
図9に戻り,PFドライバ214からPF261の起動が完了した旨の通知を受信したとき(S19のYES),PF切り替え部216は,起動したPF261が制御するVF262の起動を,送受信中継部218を経由してVF切り替え部217に指示する(S20)。そして,VF切り替え部217からVF262の起動が完了した旨の通知を受信したとき,仮想I/O切り替え処理は完了する(S21のYES)。なお,PFまたはVFの切り替えを行ったときに,PF切り替え部216またはVF切り替え部217は,切り替えと同時に,切り替え元のPFドライバまたはVFドライバとの間の通信インターフェースを停止(非活性化)するものであってもよい。また,必要がある場合には,切り替えと同時に,切り替え先のPFドライバまたはVFドライバとの間の通信インターフェースを起動(活性化)するものであってもよい。
Returning to FIG. 9, when the notification that the activation of the
[管理テーブル]
図12に示すように,例えば,PF251に異常が発生した場合,仮想マシン3Cは仮想デバイス272を利用することができなくなる。そのため,PF切り替え部216は,異常が発生したPF251に代えて,仮想マシン3Cに仮想デバイスの機能を実現することができるVFを制御するPFに切り替えを行う必要がある。そこで,PF切り替え部216は,PF切り替え部216が切り替え先のPFを決定するための管理テーブルを予め有しておくものであってよい。これにより,PF切り替え部216がPF215に異常が発生した旨の通知を受信した際に(S13のYES),容易に切り替え先のPFを決定することが可能になる。
[Management table]
As illustrated in FIG. 12, for example, when an abnormality occurs in the
図14は,第1の実施の形態における管理テーブルを説明する図である。図14の管理テーブルは,図12の例におけるPF及びVFに対応している。管理テーブルは,例えば,PF/VF名と,物理デバイス名と,仮想マシン名と,切り替え部名との情報を有している。図14の例においては,PF251は,位置する物理デバイスが物理デバイス204であり,位置する仮想マシンが仮想マシン3Aであり,切り替え制御される切り替え部がPF切り替え部216であることを示している。また,VF252は,位置する物理デバイスが物理デバイス204であり,位置する仮想マシンが仮想マシン3Cであり,切り替え制御される切り替え部がVF切り替え部217であることを示している。また,PF261は,位置する物理デバイスが物理デバイス205であり,位置する仮想マシンが仮想マシン3Aであり,切り替え制御される切り替え部がPF切り替え部216であることを示している。また,VF262は,位置する物理デバイスが物理デバイス205であり,位置する仮想マシンが仮想マシン3Cであり,切り替え制御される切り替え部がVF切り替え部217であることを示している。
FIG. 14 is a diagram illustrating a management table according to the first embodiment. The management table of FIG. 14 corresponds to the PF and VF in the example of FIG. The management table includes, for example, information on PF / VF names, physical device names, virtual machine names, and switching unit names. In the example of FIG. 14, the
具体的に,例えば,図14の例においてPF251に異常が発生した場合,PF切り替え部216は管理テーブルを参照する。そして,初めに,異常が発生したPFと同じ物理デバイスに位置しているVFを特定する。すなわち,PF251の異常発生により,影響が出ると可能性があるVFを特定する。図14の例においては,異常が発生したPF251と同じ物理デバイスである物理デバイス204に位置しているVFは,VF252である。
Specifically, for example, when an abnormality occurs in the
次に,PF切り替え部216は,特定したVF252が実現した仮想デバイスを利用している仮想マシンを特定する。すなわち,PF251の異常発生により,影響が出ると可能性がある仮想マシンを特定する。図14の例において,VF252が実現した仮想デバイスを利用している仮想マシンは,仮想マシン3Cである。
Next, the
そして,PF切り替え部216は,仮想マシン3Cに仮想デバイスの機能を提供することが可能なVFを特定する。すなわち,異常が発生したPF251が制御していたVF252に代わり,仮想マシン3Cに仮想デバイスの機能を提供することが可能なVFを特定する。図14の例において,仮想マシン3Cに仮想デバイスの機能を提供することが可能なVFは,VF262である。
Then, the
次に,PF切り替え部216は,VF262を制御しているPFを特定する。すなわち,PF切り替え部216は,異常が発生したPF251からVF262を制御しているPFに切り替えを行うことができるか否かの確認を行う。図14の例において,VF262を制御しているPFはPF261であり,PF261を制御するPFドライバはPFドライバ214である。そのため,PF切り替え部216は,異常が発生したPF251を制御するPFドライバ212からPFドライバ214に切り替えることによって,仮想マシン3Cへの仮想デバイスの機能の提供を継続することができると判断する。
Next, the
なお,PF切り替え部216は,例えば,PFドライバの優先度を予め定めておくものであってもよい。これにより,PF切り替え部216は,切り替えることができるPFドライバが複数存在した場合に,切り替え先のPFドライバを容易に決定することができる。一方,PF切り替え部216は,管理テーブルを確認した結果,切り替えることができるPFドライバが存在しない場合,例えば,その旨を事業者に通知するためにエラーを出力するものであってよい。
Note that the
[VF切り替え部における仮想I/O切り替え処理]
次に,図10を参照して,VF切り替え部217において実行される仮想I/O切り替え処理について説明する。
[Virtual I / O switching process in VF switching unit]
Next, the virtual I / O switching process executed in the
VF切り替え部217がVF252の停止指示通知を受信したとき(S31のYES),VF切り替え部217は,停止を指示されたVF252を停止する(S32)。具体的に,VF切り替え部217は,例えば,VFドライバ213にVF252を停止する旨を指示し,この指示を受信したVFドライバ213がVF252の停止を行う。そして,例えば,VF切り替え部217がVFドライバ213からVF252が停止した旨の通知を受信したとき(S33のYES),VF切り替え部217は,VF252の停止が完了した旨を,送受信中継部218を経由してPF切り替え部216に通知する(S34)。
When the
すなわち,PFに異常が発生した場合,PFの切り替えを行う前に,異常が発生したPFが制御していたVFの停止を行う。これにより,異常が発生したPFが制御していたVFにおいてエラーが発生するのを防止し,例えば,ユーザのサービスに影響を及ぼすことを防止することが可能になる。 That is, when an abnormality occurs in the PF, before the PF is switched, the VF controlled by the PF in which the abnormality has occurred is stopped. As a result, it is possible to prevent an error from occurring in the VF controlled by the PF in which an abnormality has occurred and to prevent, for example, affecting the user's service.
次に,VF切り替え部217がVF262の起動指示通知を受信したとき(S35のYES),VF切り替え部217は,起動を指示されたVF262を起動する(S36)。具体的に,VF切り替え部217は,例えば,VFドライバ214にVF262を起動する旨を指示し,この指示を受信したVFドライバ214がVF262の起動を行う。そして,例えば,VF切り替え部217がVFドライバ214からVF262が起動した旨の通知を受信したとき(S37のYES),VF切り替え部217は,VF262の起動が完了した旨を,送受信中継部218を経由してPF切り替え部216に通知する(S38)。
Next, when the
[送受信中継部における仮想I/O切り替え処理]
次に,図11を参照して,送受信中継部218において実行される仮想I/O切り替え処理について説明する。
[Virtual I / O switching process in transmission / reception relay unit]
Next, the virtual I / O switching process executed in the transmission /
送受信中継部218がVF252の停止指示通知を受信したとき(S41のYES),送受信中継部218は,停止を指示されたVF252の停止をVF切り替え部217に指示する(S42)。そして,送受信中継部218がVF252の停止完了通知を受信したとき(S43のYES),送受信中継部218は,停止を指示されたVF252の停止が完了した旨をPF切り替え部216に通知する(S44)。
When the transmission /
次に,送受信中継部218がVF262の起動指示通知を受信したとき(S45のYES),送受信中継部218は,起動を指示されたVF262の起動をVF切り替え部217に指示する(S46)。そして,送受信中継部218がVF262の起動完了通知を受信したとき(S47のYES),送受信中継部218は,起動を指示されたVF262の起動が完了した旨をPF切り替え部216に通知する(S48)。
Next, when the transmission /
[第2の実施の形態]
次に,第2の実施の形態について説明する。図15は,第2の実施の形態における仮想I/O切り替え処理を説明するフローチャート図である。また,図16は,第2の実施の形態における仮想I/O切り替え処理を説明する図である。図16を参照しながら,図15の仮想I/O切り替え処理の詳細を説明する。なお,VF切り替え部217及び送受信中継部218における仮想I/O切り替え処理は,第1の実施の形態における処理と同じであるため,ここでは説明を省略する。
[Second Embodiment]
Next, a second embodiment will be described. FIG. 15 is a flowchart for explaining virtual I / O switching processing according to the second embodiment. FIG. 16 is a diagram for explaining virtual I / O switching processing according to the second embodiment. Details of the virtual I / O switching process of FIG. 15 will be described with reference to FIG. Note that the virtual I / O switching process in the
[図16のVMホストの構成]
図16の例におけるVMホスト2は,図12の例におけるVMホスト2と異なり,PFドライバ212とPFドライバ214がそれぞれ位置する仮想マシンが異なる。具体的に,仮想マシン3AにはPFドライバ212が位置し,仮想マシン3BにはPFドライバ214が位置する。そのため,図16の例においては,PF切り替え部は2つに分割されており,仮想マシン3AにはPF切り替え部216A(以下,第1のPF切り替え部216Aとも呼ぶ)が位置し,仮想マシン3BにはPF切り替え部216B(以下,第2のPF切り替え部216Bとも呼ぶ)が位置している。その他の構成については,図12に示すVMホスト2と同じ構成であるため説明を省略する。
[Configuration of VM Host in FIG. 16]
The
[PF切り替え部における仮想I/O切り替え処理]
仮想I/O切り替え処理のバックグラウンドにおいて,第1の実施の形態と同様に,構成情報管理部211は,構成情報221を記憶部230に記憶する(S50)。
[Virtual I / O switching process in PF switching unit]
In the background of the virtual I / O switching processing, the configuration
そして,PFドライバ212がPF251の異常発生を検知した場合(S51のYES),PF切り替え部216は,PFドライバ212に異常発生を検知したPF251の停止を指示する(S52)。
When the
次に,PFドライバ212からPF停止完了通知を受信したとき(S53のYES),PFドライバ212は,PFの切り替えが開始することをPFドライバ214に送信する(S54)。そして,例えば,PF切り替え部216Bは,停止したPF251が制御していたVF252の停止を,送受信中継部218を経由してVF切り替え部217に指示する(S54)。
Next, when a PF stop completion notification is received from the PF driver 212 (YES in S53), the
すなわち,図16の例において,PF切り替え部216Aが位置している仮想マシンとPF切り替え部216Bが位置している仮想マシンとは異なっている。そのため,PF切り替え部216Bに仮想I/O切り替え処理を実行させるためには,PF切り替え部216AからPF切り替え部216BにPFの切り替えが開始する旨を通知する必要がある。
That is, in the example of FIG. 16, the virtual machine in which the
なお,仮想マシン3Aと仮想マシン3Bとの間の通信が,セキュリティの観点等により認められていない場合がある。このような場合には,例えば,PF切り替え部216A及びPF切り替え部216Bのみが使用することができる専用回線を用意し,この専用回線によって,PF切り替え部216AとPF切り替え部216Bとの通信を行うものであってよい。
Note that communication between the
また,例えば,PFドライバ212によって制御されるPF251が運用中である場合,PF切り替え部216Bは,上記の専用回線を用いてPF切り替え部216AやPFドライバ212の動作を監視するものであってもよい。そして,PF切り替え部216A等の動作に異常があった場合に,PFドライバ212を経由してPF251を停止させ,PFドライバ214を介してPF261を起動させる等の処理を行う(S52,S59)。これにより,PF切り替え部216B側主導によるPFの切り替えを行うものであってもよい。
For example, when the
次に,VF切り替え部217からVFの停止完了通知を受信したとき(S56のYES),例えば,PF切り替え部216Bは,記憶部230に記憶した構成情報231の取得をPFドライバ214に指示する(S57)。そして,PFドライバ214から構成情報を取得した旨の通知を受信したとき(S58のYES),例えば,PF切り替え部216Bは,PFドライバ214に切り替え先のPFであるPF261の起動を指示する。これにより,PFの切り替えが完了する。
Next, when a VF stop completion notification is received from the VF switching unit 217 (YES in S56), for example, the
さらに,PFドライバ214からPF261の起動が完了した旨の通知を受信したとき(S60のYES),PF切り替え部216Bは,起動したPF261が制御するVF262の起動を,送受信中継部218を経由してVF切り替え部217に指示する(S61)。そして,VF切り替え部217からVF262の起動が完了した旨の通知を受信したとき,仮想I/O切り替え処理は完了する(S62のYES)。
Further, when the notification that the activation of the
このように,第2の実施の形態においては,PF切り替え部216A及びPF切り替え部216Bが位置している仮想マシンが異なる場合に,PF切り替え部216AからPF切り替え部216BにPFの切り替えを開始する旨の通知をPFの切り替えを行う前に行う。これにより,PF切り替え部216A及びPF切り替え部216Bが位置している仮想マシンが異なる場合においても,第1の実施の形態と同様にPFの切り替えを行うことが可能になる。
As described above, in the second embodiment, when the virtual machines on which the
以上の実施の形態をまとめると,以下の付記のとおりである。 The above embodiment is summarized as follows.
(付記1)
物理マシンに設けられた第1及び第2の物理デバイスのリソースをそれぞれ割り当てることにより仮想マシンに作成された第1及び第2の仮想デバイスを,それぞれ制御する第1及び第2の制御部と,
前記第2の制御部からアクセス可能であり,前記第1の制御部が前記第1の仮想デバイスを制御するための第1の構成情報と同期した第2の構成情報を記憶する記憶部と,
前記第1の物理デバイスの状態が所定の状態になった場合,前記第2の制御部が前記記憶部から前記第2の構成情報を取得した後に,前記第1の制御部から前記第2の制御部への切り替えを行う第1の切り替え部と,を有する
情報処置装置。
(Appendix 1)
First and second control units for controlling the first and second virtual devices created in the virtual machine by allocating resources of the first and second physical devices respectively provided in the physical machine;
A storage unit that is accessible from the second control unit, and that stores second configuration information synchronized with the first configuration information for the first control unit to control the first virtual device;
When the state of the first physical device becomes a predetermined state, the second control unit acquires the second configuration information from the storage unit, and then receives the second configuration information from the first control unit. And a first switching unit that switches to the control unit.
(付記2)
付記1において,
前記第1の制御部は,前記第1の物理デバイスの状態を監視しており,
前記第1の切り替え部は,前記第1の物理デバイスが前記所定の状態になったことを前記第1の制御部が検知したときに,前記第1の制御部から前記第2の制御部への切り替えを行う情報処理装置。
(Appendix 2)
In
The first control unit monitors a state of the first physical device;
When the first control unit detects that the first physical device is in the predetermined state, the first switching unit transfers from the first control unit to the second control unit. Information processing device that performs switching.
(付記3)
付記1において,
前記第2の制御部は,前記第2の物理デバイスの状態を監視しており,
前記第1の切り替え部は,前記第2の物理デバイスが前記所定の状態になったことを前記第2の制御部が検知したときに,前記第2の制御部から前記第1の制御部への切り替えを行う情報処理装置。
(Appendix 3)
In
The second control unit monitors a state of the second physical device;
When the second control unit detects that the second physical device is in the predetermined state, the first switching unit transfers from the second control unit to the first control unit. Information processing device that performs switching.
(付記4)
付記2または3において,
前記所定の状態は,通常状態とは異なる状態である情報処理装置。
(Appendix 4)
In
The information processing apparatus in which the predetermined state is different from a normal state.
(付記5)
付記1において,さらに,
前記第1の仮想デバイスの制御を行う第3の制御部を有し,
前記第1の切り替え部は,前記第1の制御部から前記第2の制御部への切り替えを行う前に,前記第1の仮想デバイスの停止を前記第3の制御部に指示する情報処理装置。
(Appendix 5)
In
A third control unit for controlling the first virtual device;
The first switching unit instructs the third control unit to stop the first virtual device before switching from the first control unit to the second control unit. .
(付記6)
付記5において,さらに,
前記第2の仮想デバイスの制御を行う第4の制御部を有し,
前記第1の切り替え部は,前記第1の制御部から前記第2の制御部への切り替えを行った後に,前記第2の仮想デバイスの起動を前記第4の制御部に指示する情報処理装置。
(Appendix 6)
In Appendix 5,
A fourth control unit for controlling the second virtual device;
The first switching unit, after switching from the first control unit to the second control unit, instructs the fourth control unit to start the second virtual device. .
(付記7)
付記5または6において,さらに,
前記第1の切り替え部からの指示に基づいて,前記第3の制御部または前記第4の制御部へ指示を行う第2の切り替え部を有する情報処理装置。
(Appendix 7)
In
An information processing apparatus having a second switching unit that gives an instruction to the third control unit or the fourth control unit based on an instruction from the first switching unit.
(付記8)
付記5または6において,さらに,
前記第1の切り替え部から前記第3の制御部または前記第4の制御部への指示を中継する中継部を有する情報処理装置。
(Appendix 8)
In
An information processing apparatus including a relay unit that relays an instruction from the first switching unit to the third control unit or the fourth control unit.
(付記9)
付記1において,
前記第1の切り替え部は,前記第1の制御部を有する第1の仮想マシンに設けられた第3の切り替え部と,前記第2の制御部を有する第2の仮想マシンに設けられた第4の切り替え部とを含み,
前記第3の切り替え部は,前記第1の物理デバイスが所定の状態になったことを前記第1の制御部が検知したときに,前記第1の制御部から前記第2の制御部への切り替えを行い,
前記第4の切り替え部は,前記第2の物理デバイスが所定の状態になったことを前記第2の制御部が検知したときに,前記第2の制御部から前記第1の制御部への切り替えを行う情報処理装置。
(Appendix 9)
In
The first switching unit includes a third switching unit provided in the first virtual machine having the first control unit, and a second virtual machine provided in the second virtual machine having the second control unit. 4 switching units,
When the first control unit detects that the first physical device is in a predetermined state, the third switching unit switches from the first control unit to the second control unit. Switch,
When the second control unit detects that the second physical device is in a predetermined state, the fourth switching unit switches from the second control unit to the first control unit. An information processing apparatus that performs switching.
(付記10)
付記1において,
前記記憶部は,前記第2の物理デバイスに設けられている情報処理装置。
(Appendix 10)
In
The storage unit is an information processing apparatus provided in the second physical device.
(付記11)
付記1において,
前記物理デバイスは,PCI−SIG規格に基づくSingle Root I/O Virtualizationデバイスである情報処理装置。
(Appendix 11)
In
The information processing apparatus is a single root I / O virtualization device based on the PCI-SIG standard.
(付記12)
物理マシンに設けられた第1及び第2の物理デバイスのリソースをそれぞれ割り当てることにより仮想マシンに作成した第1及び第2の仮想デバイスを制御する第1及び第2の制御部の切り替えを行う情報処理プログラムであって,
前記第1の制御部が前記第1の仮想デバイスを制御するための第1の構成情報と同期した第2の構成情報を,前記第2の制御部からアクセス可能である記憶部に記憶し,
前記第1の物理デバイスの状態が所定の状態になった場合,前記第2の制御部が前記記憶部から前記第2の構成情報を取得した後に,前記第1の制御部から前記第2の制御部への切り替えを行う,
処理をコンピュータに実行させる情報処理プログラム。
(Appendix 12)
Information for switching the first and second control units that control the first and second virtual devices created in the virtual machine by allocating the resources of the first and second physical devices provided in the physical machine, respectively. A processing program,
Storing the second configuration information synchronized with the first configuration information for the first control unit to control the first virtual device in a storage unit accessible from the second control unit;
When the state of the first physical device becomes a predetermined state, the second control unit acquires the second configuration information from the storage unit, and then receives the second configuration information from the first control unit. Switch to the control unit,
An information processing program that causes a computer to execute processing.
(付記13)
物理マシンに設けられた第1及び第2の物理デバイスのリソースをそれぞれ割り当てることにより仮想マシンに作成した第1及び第2の仮想デバイスを,それぞれ制御する第1及び第2の制御部を有する情報処理装置における情報処理方法であって,
前記第1の制御部が前記第1の仮想デバイスを制御するための第1の構成情報と同期した第2の構成情報を,前記第2の制御部からアクセス可能である記憶部に記憶する記憶工程と,
前記第1の物理デバイスの状態が所定の状態になった場合,前記第2の制御部が前記記憶部から前記第2の構成情報を取得した後に,前記第1の制御部から前記第2の制御部への切り替えを行う切り替え工程と,を有する
情報処理方法。
(Appendix 13)
Information having first and second control units that respectively control the first and second virtual devices created in the virtual machine by allocating resources of the first and second physical devices provided in the physical machine, respectively. An information processing method in a processing device,
Storage that stores second configuration information synchronized with first configuration information for the first control unit to control the first virtual device in a storage unit accessible from the second control unit Process,
When the state of the first physical device becomes a predetermined state, the second control unit acquires the second configuration information from the storage unit, and then receives the second configuration information from the first control unit. And a switching process for switching to the control unit.
1:管理サーバ 2:VMホスト
3:仮想マシン 3A:仮想マシン
3B:仮想マシン 3C:仮想マシン
4:仮想化ソフトウエア 216:PF切り替え部
217:VF切り替え部 221:構成情報
230:記憶部 231:構成情報
1: Management server 2: VM host 3:
Claims (10)
前記第2の制御部からアクセス可能であり,前記第1の制御部が前記第1の仮想デバイスを制御するための第1の構成情報と同期した第2の構成情報を記憶する記憶部と,
前記第1の物理デバイスの状態が所定の状態になった場合,前記第2の制御部が前記記憶部から前記第2の構成情報を取得した後に,前記第1の制御部から前記第2の制御部への切り替えを行う第1の切り替え部と,を有する
情報処置装置。 First and second control units for controlling the first and second virtual devices created in the virtual machine by allocating resources of the first and second physical devices respectively provided in the physical machine;
A storage unit that is accessible from the second control unit, and that stores second configuration information synchronized with the first configuration information for the first control unit to control the first virtual device;
When the state of the first physical device becomes a predetermined state, the second control unit acquires the second configuration information from the storage unit, and then receives the second configuration information from the first control unit. And a first switching unit that switches to the control unit.
前記第1の制御部は,前記第1の物理デバイスの状態を監視しており,
前記第1の切り替え部は,前記第1の物理デバイスが前記所定の状態になったことを前記第1の制御部が検知したときに,前記第1の制御部から前記第2の制御部への切り替えを行う情報処理装置。 In claim 1,
The first control unit monitors a state of the first physical device;
When the first control unit detects that the first physical device is in the predetermined state, the first switching unit transfers from the first control unit to the second control unit. Information processing device that performs switching.
前記所定の状態は,通常状態とは異なる状態である情報処理装置。 In claim 2,
The information processing apparatus in which the predetermined state is different from a normal state.
前記第1の仮想デバイスの制御を行う第3の制御部を有し,
前記第1の切り替え部は,前記第1の制御部から前記第2の制御部への切り替えを行う前に,前記第1の仮想デバイスの停止を前記第3の制御部に指示する情報処理装置。 In claim 1, further comprising:
A third control unit for controlling the first virtual device;
The first switching unit instructs the third control unit to stop the first virtual device before switching from the first control unit to the second control unit. .
前記第2の仮想デバイスの制御を行う第4の制御部を有し,
前記第1の切り替え部は,前記第1の制御部から前記第2の制御部への切り替えを行った後に,前記第2の仮想デバイスの起動を前記第4の制御部に指示する情報処理装置。 In claim 4, further,
A fourth control unit for controlling the second virtual device;
The first switching unit, after switching from the first control unit to the second control unit, instructs the fourth control unit to start the second virtual device. .
前記第1の切り替え部から前記第3の制御部または前記第4の制御部への指示を中継する中継部を有する情報処理装置。 In claim 4 or 5, further,
An information processing apparatus including a relay unit that relays an instruction from the first switching unit to the third control unit or the fourth control unit.
前記記憶部は,前記第2の物理デバイスに設けられている情報処理装置。 In claim 1,
The storage unit is an information processing apparatus provided in the second physical device.
前記物理デバイスは,PCI−SIG規格に基づくSingle Root I/O Virtualizationデバイスである情報処理装置。 In claim 1,
The information processing apparatus is a single root I / O virtualization device based on the PCI-SIG standard.
前記第1の制御部が前記第1の仮想デバイスを制御するための第1の構成情報と同期した第2の構成情報を,前記第2の制御部からアクセス可能である記憶部に記憶し,
前記第1の物理デバイスの状態が所定の状態になった場合,前記第2の制御部が前記記憶部から前記第2の構成情報を取得した後に,前記第1の制御部から前記第2の制御部への切り替えを行う,
処理をコンピュータに実行させる情報処理プログラム。 Information for switching the first and second control units that control the first and second virtual devices created in the virtual machine by allocating the resources of the first and second physical devices provided in the physical machine, respectively. A processing program,
Storing the second configuration information synchronized with the first configuration information for the first control unit to control the first virtual device in a storage unit accessible from the second control unit;
When the state of the first physical device becomes a predetermined state, the second control unit acquires the second configuration information from the storage unit, and then receives the second configuration information from the first control unit. Switch to the control unit,
An information processing program that causes a computer to execute processing.
前記第1の制御部が前記第1の仮想デバイスを制御するための第1の構成情報と同期した第2の構成情報を,前記第2の制御部からアクセス可能である記憶部に記憶する記憶工程と,
前記第1の物理デバイスの状態が所定の状態になった場合,前記第2の制御部が前記記憶部から前記第2の構成情報を取得した後に,前記第1の制御部から前記第2の制御部への切り替えを行う切り替え工程と,を有する
情報処理方法。 Information having first and second control units that respectively control the first and second virtual devices created in the virtual machine by allocating resources of the first and second physical devices provided in the physical machine, respectively. An information processing method in a processing device,
Storage that stores second configuration information synchronized with first configuration information for the first control unit to control the first virtual device in a storage unit accessible from the second control unit Process,
When the state of the first physical device becomes a predetermined state, the second control unit acquires the second configuration information from the storage unit, and then receives the second configuration information from the first control unit. And a switching process for switching to the control unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014078644A JP2015201008A (en) | 2014-04-07 | 2014-04-07 | Information processing device, information processing program, and information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014078644A JP2015201008A (en) | 2014-04-07 | 2014-04-07 | Information processing device, information processing program, and information processing method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015201008A true JP2015201008A (en) | 2015-11-12 |
Family
ID=54552222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014078644A Pending JP2015201008A (en) | 2014-04-07 | 2014-04-07 | Information processing device, information processing program, and information processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015201008A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782442A (en) * | 2020-06-23 | 2020-10-16 | 深圳威尔视觉传媒有限公司 | Equipment exception handling method and system, electronic equipment and storage medium |
-
2014
- 2014-04-07 JP JP2014078644A patent/JP2015201008A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782442A (en) * | 2020-06-23 | 2020-10-16 | 深圳威尔视觉传媒有限公司 | Equipment exception handling method and system, electronic equipment and storage medium |
CN111782442B (en) * | 2020-06-23 | 2024-01-12 | 深圳威尔视觉传媒有限公司 | Device exception handling method, system, electronic device and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9430266B2 (en) | Activating a subphysical driver on failure of hypervisor for operating an I/O device shared by hypervisor and guest OS and virtual computer system | |
US10768960B2 (en) | Method for affinity binding of interrupt of virtual network interface card, and computer device | |
US10503555B2 (en) | Selecting type and quantity of application masters that need to be started in advance | |
US9448899B2 (en) | Method, apparatus and system for switching over virtual application two-node cluster in cloud environment | |
EP3573312B1 (en) | Node interconnection apparatus, resource control node, and server system | |
TWI453597B (en) | System and method for management of an iov adapter through a virtual intermediary in an iov management partition | |
JP5332000B2 (en) | COMPUTER COMPUTER DEVICE, COMPOSITE COMPUTER MANAGEMENT METHOD, AND MANAGEMENT SERVER | |
US9135101B2 (en) | Virtual function timeout for single root input/output virtualization controllers | |
US20150052282A1 (en) | System and Method for Virtual Machine Live Migration | |
US11461199B2 (en) | Redundancy method, device, and system | |
EP3188008B1 (en) | Virtual machine migration method and device | |
JP5770284B2 (en) | I / O switch control method, virtual computer control method, and computer system | |
JP2013514588A5 (en) | ||
JPWO2010126048A1 (en) | High-speed migration system and management device for virtual device in computer system, method and program therefor | |
JP2010003061A (en) | Computer system and method for changing i/o configuration thereof | |
US20110209148A1 (en) | Information processing device, virtual machine connection method, program, and recording medium | |
WO2012004902A1 (en) | Computer system and system switch control method for computer system | |
US20150277958A1 (en) | Management device, information processing system, and management program | |
US20150372854A1 (en) | Communication control device, communication control program, and communication control method | |
US9798563B2 (en) | Network management device, information processing system, and program | |
JP2015201008A (en) | Information processing device, information processing program, and information processing method | |
US9740641B2 (en) | Information processing device, I/O system, and I/O control method | |
US9836319B2 (en) | Information sharing program, information sharing system and information sharing method | |
US20140040663A1 (en) | Information processing apparatus, computer readable storage medium, and collecting method |