(57)【要約】  管理コンピュータに障害が発生した場合でも、運用コンピュータによるＩ／Ｏデバイスへのアクセスを継続できるようにする。  仮想化ブリッジ（３００）は、監視部（３０７）と代替制御部（３０８）とを含む。仮想化ブリッジ（３００）は、運用コンピュータ（２００）に対して、Ｉ／Ｏデバイス（４００）の仮想的な機能を提供する。監視部（３０７）は、管理コンピュータ（１００）の障害を検出する。代替制御部（３０８）は、管理コンピュータ（１００）とＩ／Ｏデバイス（４００）との間で送受信されるパケットをもとに、代替管理情報（３４１）を生成し、監視部（３０７）により管理コンピュータ（１００）の障害が検出された場合に、代替管理情報（３４１）をもとに、管理コンピュータ（１００）に代わってＩ／Ｏデバイス（４００）の制御を行う。
2015011895.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに対して、Ｉ／Ｏデバイスの仮想的な機能を提供する情報処理装置であって、
前記Ｉ／Ｏデバイスの制御を前記情報処理装置を通して行う管理コンピュータの障害を検出する監視手段と、
前記管理コンピュータと前記Ｉ／Ｏデバイスとの間で送受信されるパケットをもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行うために必要な、前記Ｉ／Ｏデバイスに係る情報である代替管理情報を生成し、前記監視手段により前記管理コンピュータの障害が検出された場合に、前記代替管理情報をもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行う代替制御手段と、
を備えた情報処理装置。
【請求項２】
前記管理コンピュータは、前記Ｉ／Ｏデバイスに係る情報である管理情報をもとに、前記Ｉ／Ｏデバイスの制御を行い、
前記代替制御手段は、前記管理コンピュータと前記Ｉ／Ｏデバイスとの間で送受信されるパケットをもとに、前記代替管理情報が前記管理情報と同じになるように、前記代替管理情報を更新する、
請求項１に記載の情報処理装置。
【請求項３】
前記代替制御手段は、前記管理コンピュータと前記Ｉ／Ｏデバイスとの間で送受信されるパケットの内、所定の条件に合致するパケットをもとに、前記代替管理情報を更新する、
請求項２に記載の情報処理装置。
【請求項４】
前記管理コンピュータは、前記Ｉ／Ｏデバイスの制御において、前記Ｉ／Ｏデバイスの制御ファンクションのレジスタへのアクセスであるコンフィグアクセスと、前記制御ファンクションが割り当てられたアドレスへのアクセスであるメモリアクセスとの少なくとも一方を実行し、
前記代替制御手段は、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行う場合、前記管理コンピュータが前記Ｉ／Ｏデバイスの制御において実行する前記コンフィグアクセスと前記メモリアクセスとを、前記管理コンピュータに代わって実行する、
請求項１乃至３のいずれかに記載の情報処理装置。
【請求項５】
さらに、
前記情報処理装置のアドレス空間上の前記制御ファンクションが割り当てられたアドレスと、前記管理コンピュータのアドレス空間上の前記制御ファンクションが割り当てられたアドレスとを記憶する記憶手段と、
前記管理コンピュータが、前記管理コンピュータのアドレス空間を用いて、前記メモリアクセスを実行するときに、前記記憶部を参照して、送受信されるパケットのアドレスを、前記管理コンピュータのアドレス空間と前記情報処理装置のアドレス空間との間で変換するアドレス変換手段と、
を備え、
前記代替制御手段は、前記管理コンピュータのアドレス空間を用いて、前記メモリアクセスを実行するときに、前記記憶部を参照して、送受信されるパケットを解析することにより、前記代替管理情報を生成する、
請求項４に記載の情報処理装置。
【請求項６】
前記Ｉ／Ｏデバイスは、ＳＲ−ＩＯＶ（Single Root I/O Virtualization）規格に準拠したＩ／Ｏデバイスである、
請求項１乃至５のいずれかに記載の情報処理装置。
【請求項７】
Ｉ／Ｏデバイスと、
コンピュータに対して、前記Ｉ／Ｏデバイスの仮想的な機能を提供する情報処理装置と、
前記Ｉ／Ｏデバイスの制御を前記情報処理装置を通して行う管理コンピュータと、
を備え、
前記情報処理装置は、
前記管理コンピュータの障害を検出する監視手段と、
前記管理コンピュータと前記Ｉ／Ｏデバイスとの間で送受信されるパケットをもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行うために必要な、前記Ｉ／Ｏデバイスに係る情報である代替管理情報を生成し、前記監視手段により前記管理コンピュータの障害が検出された場合に、前記代替管理情報をもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行う代替制御手段と、
を含むＩ／Ｏシステム。
【請求項８】
複数の前記Ｉ／Ｏデバイスと、
前記複数の前記Ｉ／Ｏデバイスの各々に対応づけられた複数の前記情報処理装置と、を備え、
前記管理コンピュータは、前記複数の前記Ｉ／Ｏデバイスの各々に対応づけられた複数の制御部を含み、前記複数の制御部の各々は、当該制御部に対応する前記Ｉ／Ｏデバイスを、当該Ｉ／Ｏデバイスに対応する前記情報処理装置を通して制御し、
前記複数の前記情報処理装置の各々の前記代替制御手段は、当該情報処理装置に対応する前記Ｉ／Ｏデバイスを制御する前記制御部の障害が検出された場合に、当該制御部に代わって当該Ｉ／Ｏデバイスの制御を行う、
請求項７に記載のＩ／Ｏシステム。
【請求項９】
コンピュータに対して、Ｉ／Ｏデバイスの仮想的な機能を提供する情報処理装置におけるＩ／Ｏ制御方法であって、
前記Ｉ／Ｏデバイスの制御を前記情報処理装置を通して行う管理コンピュータの障害を検出し、
前記管理コンピュータと前記Ｉ／Ｏデバイスとの間で送受信されるパケットをもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行うために必要な、前記Ｉ／Ｏデバイスに係る情報である代替管理情報を生成し、
前記監視手段により前記管理コンピュータの障害が検出された場合に、前記代替管理情報をもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行う、
Ｉ／Ｏ制御方法。
【請求項１０】
コンピュータに対して、Ｉ／Ｏデバイスの仮想的な機能を提供する情報処理装置において実行されるプログラムを格納する記録媒体であって、
前記情報処理装置に、
前記Ｉ／Ｏデバイスの制御を前記情報処理装置を通して行う管理コンピュータの障害を検出し、
前記管理コンピュータと前記Ｉ／Ｏデバイスとの間で送受信されるパケットをもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行うために必要な、前記Ｉ／Ｏデバイスに係る情報である代替管理情報を生成し、
前記監視手段により前記管理コンピュータの障害が検出された場合に、前記代替管理情報をもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行う、
処理を実行させるプログラムを格納する、コンピュータが読み取り可能な記録媒体。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、Ｉ／Ｏシステム、及び、Ｉ／Ｏ制御方法に関する。
【背景技術】
【０００２】
Ｉ／Ｏ（Input/Output）デバイスを複数のコンピュータ間で共有するＩ／Ｏシステムの一例が、特許文献１に開示されている。【０００３】
図１７は、特許文献１のＩ／Ｏシステムの構成を示すブロック図である。【０００４】
図１７を参照すると、特許文献１のＩ／Ｏシステムは、複数の運用コンピュータ７００（７００−１、２、…、Ｎ）、複数の運用コンピュータ７００が共有するＩ／Ｏデバイス９００、及び、仮想化ブリッジ８００を含む。Ｉ／Ｏデバイス９００は、ＳＲ−ＩＯＶ（Single Root I/O Virtualization）規格に準拠する。各運用コンピュータ７００は、仮想化ブリッジ８００とネットワークを介して接続される。【０００５】
Ｉ／Ｏデバイス９００は、ＰＦ（Physical Function）９１０と、複数のＶＦ（Virtual Function）９２０（９２０−１、２、…、Ｎ）とを含む。ＰＦ９１０は、Ｉ／Ｏデバイス９００を制御するためのインタフェースである。ＶＦ９２０（９２０−１、２、…、Ｎ）は、Ｉ／Ｏデバイス９００の機能を仮想化して提供するためのインタフェースである。ＶＦ９２０−１、２、…、Ｎは、それぞれ、運用コンピュータ７００−１、２、…、Ｎに対応づけられる。【０００６】
ＰＦ９１０は、ＰＦ９１０のコンフィギュレーションを行うためのＰＦコンフィグレジスタ（ＰＦ ＣＦＧ ＲＥＧ）９１１を含む。ＶＦ９２０は、ＶＦ９２０のコンフィギュレーションを行うためのＶＦコンフィグレジスタ（ＶＦ ＣＦＧ ＲＥＧ）９２１（９２１−１、２、…、Ｎ）を含む。【０００７】
仮想化ブリッジ８００は、複数の運用コンピュータ７００に対して、Ｉ／Ｏデバイス９００の仮想的な機能を提供する。仮想化ブリッジ８００は、Ｉ／Ｏアドレス空間において、ＶＦ９２０へメモリアクセスするためのＶＦマップ領域を割り当てる。また、仮想化ブリッジ８００は、ＶＦ ＣＦＧ ＲＥＧ９２１を仮想化した、仮想ＶＦ ＣＦＧ ＲＥＧ８２１（８２１−１、２、…、Ｎ）へのアクセスを、運用コンピュータ７００へ提供する。【０００８】
運用コンピュータ７００は、運用コンピュータ７００上のアドレス空間において、仮想ＶＦマップ領域を割り当て、仮想ＶＦ ＣＦＧ ＲＥＧ８２１に設定する。【０００９】
仮想化ブリッジ８００は、仮想ＶＦ ＣＦＧ ＲＥＧ８２１をもとに、運用コンピュータ７００上のアドレス空間とＩ／Ｏアドレス空間との間でアドレス変換することにより、複数の運用コンピュータ７００に対して、ＶＦ９２０へのメモリアクセスを提供する。【００１０】
このようなＩ／Ｏシステムでは、さらに、Ｉ／Ｏデバイス９００に固有の制御を、仮想化ブリッジ８００外のコンピュータで行うことにより、仮想化ブリッジ８００におけるＩ／Ｏデバイス９００の管理を単純化できる。【００１１】
図１８は、特許文献１のＩ／Ｏシステムに、管理コンピュータ６００を加えたシステムの構成を示すブロック図である。【００１２】
図１８において、仮想化ブリッジ８００は、Ｉ／Ｏアドレス空間において、ＰＦ９１０へメモリアクセスするためのＰＦマップ領域を割り当てる。また、仮想化ブリッジ８００は、ＰＦ ＣＦＧ ＲＥＧ９１１を仮想化した、仮想ＰＦ ＣＦＧ ＲＥＧ８１１へのアクセスを、管理コンピュータ６００へ提供する。【００１３】
管理コンピュータ６００は、管理コンピュータ６００上のアドレス空間において、仮想ＰＦマップ領域を割り当て、仮想ＰＦ ＣＦＧ ＲＥＧ８１１に設定する。【００１４】
仮想化ブリッジ８００は、仮想ＰＦ ＣＦＧ ＲＥＧ８１１をもとに、管理コンピュータ６００上のアドレス空間とＩ／Ｏアドレス空間との間でアドレス変換することにより、管理コンピュータ６００に対して、ＰＦ９１０へのメモリアクセスを提供する。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】国際公開第２００９／０２５３８１号
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、上述のように、管理コンピュータ６００を用いてＩ／Ｏデバイス９００の設定を管理する場合、管理コンピュータ６００の障害が運用コンピュータ７００にも影響する。【００１７】
例えば、仮想化ブリッジ８００において、管理コンピュータ６００の障害が検出された場合、仮想化ブリッジ８００は、Ｉ／Ｏデバイス９００の制御が保障できない。このため、仮想化ブリッジ８００は、運用コンピュータ７００との接続の切断、Ｉ／Ｏデバイス９００のリセットを行う。従って、管理コンピュータ６００に障害が発生した場合、運用コンピュータ７００は、Ｉ／Ｏデバイス９００へのアクセスができなくなる。【００１８】
本発明の目的は、上述の課題を解決し、管理コンピュータに障害が発生した場合でも、運用コンピュータによるＩ／Ｏデバイスへのアクセスが継続可能な情報処理装置、Ｉ／Ｏシステム、及び、Ｉ／Ｏ制御方法を提供することである。
【課題を解決するための手段】
【００１９】
本発明の一態様における情報処理装置は、コンピュータに対して、Ｉ／Ｏデバイスの仮想的な機能を提供する情報処理装置であって、前記Ｉ／Ｏデバイスの制御を前記情報処理装置を通して行う管理コンピュータの障害を検出する監視手段と、前記管理コンピュータと前記Ｉ／Ｏデバイスとの間で送受信されるパケットをもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行うために必要な、前記Ｉ／Ｏデバイスに係る情報である代替管理情報を生成し、前記監視手段により前記管理コンピュータの障害が検出された場合に、前記代替管理情報をもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行う代替制御手段と、を備える。【００２０】
本発明の一態様におけるＩ／Ｏシステムは、Ｉ／Ｏデバイスと、コンピュータに対して、Ｉ／Ｏデバイスの仮想的な機能を提供する情報処理装置と、前記Ｉ／Ｏデバイスの制御を前記情報処理装置を通して行う管理コンピュータと、を備え、前記情報処理装置は、前記管理コンピュータの障害を検出する監視手段と、前記管理コンピュータと前記Ｉ／Ｏデバイスとの間で送受信されるパケットをもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行うために必要な、前記Ｉ／Ｏデバイスに係る情報である代替管理情報を生成し、前記監視手段により前記管理コンピュータの障害が検出された場合に、前記代替管理情報をもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行う代替制御手段と、を含む前記情報処理装置と、を備える。【００２１】
本発明の一態様におけるＩ／Ｏ制御方法は、コンピュータに対して、Ｉ／Ｏデバイスの仮想的な機能を提供する情報処理装置におけるＩ／Ｏ制御方法であって、前記Ｉ／Ｏデバイスの制御を前記情報処理装置を通して行う管理コンピュータの障害を検出し、前記管理コンピュータと前記Ｉ／Ｏデバイスとの間で送受信されるパケットをもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行うために必要な、前記Ｉ／Ｏデバイスに係る情報である代替管理情報を生成し、前記監視手段により前記管理コンピュータの障害が検出された場合に、前記代替管理情報をもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行う。【００２２】
本発明の一態様におけるコンピュータが読み取り可能な記録媒体は、コンピュータに対して、Ｉ／Ｏデバイスの仮想的な機能を提供する情報処理装置において実行されるプログラムを格納する記録媒体であって、前記情報処理装置に、前記Ｉ／Ｏデバイスの制御を前記情報処理装置を通して行う管理コンピュータの障害を検出し、前記管理コンピュータと前記Ｉ／Ｏデバイスとの間で送受信されるパケットをもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行うために必要な、前記Ｉ／Ｏデバイスに係る情報である代替管理情報を生成し、前記監視手段により前記管理コンピュータの障害が検出された場合に、前記代替管理情報をもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行う、処理を実行させるプログラムを格納する。
【発明の効果】
【００２３】
本発明の効果は、管理コンピュータに障害が発生した場合でも、運用コンピュータによるＩ／Ｏデバイスへのアクセスが継続できることである。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【図２】本発明の第１の実施の形態における、Ｉ／Ｏシステムの構成を示すブロック図である。
【図３】本発明の第１の実施の形態における、Ｉ／Ｏデバイス４００に係るアドレス空間の関係を示す図である。
【図４】本発明の第１の実施の形態における、ＰＦ ＣＦＧ ＲＥＧ４１１の例を示す図である。
【図５】本発明の第１の実施の形態における、ＶＦ ＣＦＧ ＲＥＧ４２１の例を示す図である。
【図６】本発明の第１の実施の形態における、管理情報１１１の例を示す図である。
【図７】本発明の第１の実施の形態における、仮想ＰＦ ＣＦＧ ＲＥＧ３１１の例を示す図である。
【図８】本発明の第１の実施の形態における、仮想ＶＦ ＣＦＧ ＲＥＧ３２１の例を示す図である。
【図９】本発明の第１の実施の形態における、複製対象情報３３１の例を示す図である。
【図１０】本発明の第１の実施の形態における、代替管理情報３４１の例を示す図である。
【図１１】本発明の第１の実施の形態における、仮想化ブリッジ３００の起動処理を示すフローチャートである。
【図１２】本発明の第１の実施の形態における、管理コンピュータ１００による設定処理を示すフローチャートである。
【図１３】本発明の第１の実施の形態における、管理コンピュータ１００による制御処理を示すフローチャートである。
【図１４】本発明の第１の実施の形態における、管理コンピュータ１００の監視処理を示すフローチャートである。
【図１５】本発明の第１の実施の形態における、代替制御部３０８による制御処理を示すフローチャートである。
【図１６】本発明の第２の実施の形態における、Ｉ／Ｏシステムの構成を示すブロック図である。
【図１７】特許文献１のＩ／Ｏシステムの構成を示すブロック図である。
【図１８】特許文献１のＩ／Ｏシステムに、管理コンピュータ６００を加えたシステムの構成を示すブロック図である。
【発明を実施するための形態】
【００２５】
（第１の実施の形態）
本発明の第１の実施の形態について説明する。
【００２６】
はじめに、本発明の第１の実施の形態の構成について説明する。
【００２７】
図２は、本発明の第１の実施の形態における、Ｉ／Ｏシステムの構成を示すブロック図である。
【００２８】
図２を参照すると、Ｉ／Ｏシステムは、管理コンピュータ１００、運用コンピュータ（または、単にコンピュータ）２００（２００−１、２、…、Ｎ）（Ｎは１以上の整数）、Ｉ／Ｏデバイス４００、及び、仮想化ブリッジ３００（または、情報処理装置）を含む。管理コンピュータ１００、及び、運用コンピュータ２００は、仮想化ブリッジ３００とネットワークを介して接続される。仮想化ブリッジ３００は、Ｉ／Ｏデバイス４００と接続される。
【００２９】
仮想化ブリッジ３００は、本発明の情報処理装置の一実施形態である。
【００３０】
Ｉ／Ｏデバイス４００は、ストレージやネットワークインタフェース等の物理的な機能を複数の仮想的な機能として提供するデバイスである。Ｉ／Ｏデバイス４００は、例えば、ＳＲ−ＩＯＶ規格に準拠する。Ｉ／Ｏデバイス４００は、ＰＦ（または、制御ファンクション）４１０と複数のＶＦ（または、仮想ファンクション）４２０（４２０−１、２、…、Ｎ）とを含む。ＰＦ４１０は、Ｉ／Ｏデバイス４００を制御するためのインタフェースである。ＶＦ４２０（４２０−１、２、…、Ｎ）は、Ｉ／Ｏデバイス４００の機能を仮想化して提供するためのインタフェースである。ＶＦ４２０−１、２、…、Ｎは、それぞれ、運用コンピュータ２００−１、２、…、Ｎに対応づけられる。
【００３１】
ＰＦ４１０は、ＰＦ４１０のコンフィギュレーションを行うためのＰＦ ＣＦＧ ＲＥＧ４１１を含む。ＶＦ４２０は、ＶＦ４２０のコンフィギュレーションを行うためのＶＦ ＣＦＧ ＲＥＧ４２１（４２１−１、２、…、Ｎ）を含む。
【００３２】
Ｉ／Ｏデバイス４００へのアクセスは、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓで規定されるパケット（以下、ＰＣＩｅパケット）等のパケットにより転送される。パケットの種類には、コンフィグパケットとメモリアクセスパケットとを含む。コンフィグパケットは、ＰＦ ＣＦＧ ＲＥＧ４１１またはＶＦ ＣＦＧ ＲＥＧ４２１等のレジスタにアクセス（コンフィグアクセス）するためのパケットである。コンフィグパケットは、コンフィグリード要求／応答、及び、コンフィグライト要求／応答を含む。メモリアクセスパケットは、アドレス空間におけるＰＦ４１０またはＶＦ４２０が割り当てられたマップ領域において、アドレスを指定してアクセス（メモリアクセス）するためのパケットである。メモリアクセスパケットは、メモリリード要求／応答、及び、メモリライト要求／応答を含む。
【００３３】
図３は、本発明の第１の実施の形態における、Ｉ／Ｏデバイス４００に係るアドレス空間の関係を示す図である。図３に示すように、仮想化ブリッジ３００におけるＩ／Ｏデバイス４００用のアドレス空間（Ｉ／Ｏアドレス空間３５０）上では、ＰＦマップ領域３５１、及び、ＶＦマップ領域３５２（３５２−１、２、…、Ｎ）が割り当てられる。ＰＦマップ領域３５１、及び、ＶＦマップ領域３５２（３５２−１、２、…、Ｎ）は、仮想化ブリッジ３００がＰＦ４１０、及び、各ＶＦ４２０にメモリアクセスするためのアドレス空間である。また、管理コンピュータ１００におけるＩ／Ｏデバイス４００用のアドレス空間（管理アドレス空間１５０）上では、仮想ＰＦマップ領域１５１が割り当てられる。仮想ＰＦマップ領域１５１は、管理コンピュータ１００が仮想化ブリッジ３００を介してＰＦ４１０にメモリアクセスするためのアドレス空間である。各運用コンピュータ２００におけるＩ／Ｏデバイス４００用のアドレス空間（運用アドレス空間２５０（２５０−１、２、…、Ｎ））上では、仮想ＶＦマップ領域２５１（２５１−１、２、…、Ｎ）が割り当てられる。仮想ＶＦマップ領域２５１（２５１−１、２、…、Ｎ）は、各運用コンピュータ２００が仮想化ブリッジ３００を介してＶＦ４２０にメモリアクセスするためのアドレス空間である。
【００３４】
図４は、本発明の第１の実施の形態における、ＰＦ ＣＦＧ ＲＥＧ４１１の例を示す図である。図４に示すように、ＰＦ ＣＦＧ ＲＥＧ４１１は、ＶＦ有効化フラグ、最大ＶＦ数、ＶＦ数、ＶＦリセットフラグ、ＰＦ領域サイズ、及び、ＰＦマップ領域情報を含む。
【００３５】
ここで、ＶＦ有効化フラグは、ＶＦ４２０を有効にするための制御フラグである。ＶＦ有効化フラグに「Ｅｎａｂｌｅ」が設定された場合、Ｉ／Ｏデバイス４００は、ＶＦ４２０を運用コンピュータ２００に提供する。最大ＶＦ数は、Ｉ／Ｏデバイス４００において利用可能なＶＦ４２０の数を示す。ＶＦ数は、運用コンピュータ２００に提供するＶＦ４２０の数を示す。ＶＦリセットフラグは、各ＶＦ４２０をリセット（再起動）するための制御フラグである。ＶＦリセットフラグに「Ｒｅｓｅｔ」が設定された場合、Ｉ／Ｏデバイス４００は、ＶＦ４２０をリセット（再起動）する。ＰＦ領域サイズは、ＰＦ４１０が必要とするＰＦマップ領域３５１のサイズを示す。ＰＦマップ領域情報は、ＰＦマップ領域３５１のアドレス（下限アドレス）を示す。
【００３６】
図５は、本発明の第１の実施の形態における、ＶＦ ＣＦＧ ＲＥＧ４２１の例を示す図である。図５に示すように、ＶＦ ＣＦＧ ＲＥＧ４２１は、ＶＦ領域サイズ、及び、ＶＦマップ領域情報を含む。
【００３７】
ここで、ＶＦ領域サイズは、ＶＦ４２０が必要とするＶＦマップ領域３５２のサイズを示す。ＶＦマップ領域情報は、ＶＦマップ領域３５２のアドレス（下限アドレス）を示す。
【００３８】
なお、最大ＶＦ数、ＰＦ領域サイズ、及び、ＶＦ領域サイズには、例えば、Ｉ／Ｏデバイス４００の仕様に従って、予め所定の値が設定される。
【００３９】
管理コンピュータ１００は、仮想化ブリッジ３００を介して、Ｉ／Ｏデバイス４００を制御する。管理コンピュータ１００は、制御部１０１、及び、管理情報記憶部１０２を含む。
【００４０】
制御部１０１は、ＰＦ ＣＦＧ ＲＥＧ４１１へのコンフィグアクセス、及び、ＰＦ４１０へのメモリアクセスにより、Ｉ／Ｏデバイス４００を制御する。制御部１０１は、例えば、Ｉ／Ｏデバイス４００の製造者等により提供されるプログラムにより実現されてもよい。制御部１０１は、管理情報１１１を用いて、Ｉ／Ｏデバイス４００を制御する。管理情報１１１は、Ｉ／Ｏデバイス４００に対する各種設定やＩ／Ｏデバイス４００の各種状態等、Ｉ／Ｏデバイス４００の制御に必要な情報である。
【００４１】
管理情報記憶部１０２は、管理情報１１１を記憶する。
【００４２】
図６は、本発明の第１の実施の形態における、管理情報１１１の例を示す図である。図６の管理情報１１１は、ＶＦ４２０の死活管理に必要な情報の例である。図６において、管理情報１１１は、ＶＦ有効化フラグ、ＶＦ数、及び、ＶＦ状態を含む。ＶＦ状態は、各ＶＦの状態（「異常」または「正常」）を示す。
【００４３】
運用コンピュータ２００は、仮想化ブリッジ３００を介して、当該運用コンピュータ２００に対応づけられたＶＦ４２０を利用する。運用コンピュータ２００は、ＶＦ ＣＦＧ ＲＥＧ４２１へのコンフィグアクセス、及び、ＶＦ４２０へのメモリアクセスにより、ＶＦ４２０を利用する。
【００４４】
仮想化ブリッジ３００は、複数の運用コンピュータ２００に対して、Ｉ／Ｏデバイス４００の仮想的な機能を提供する。ここで、仮想化ブリッジ３００は、管理コンピュータ１００に対して、ＰＦ４１０へのコンフィグアクセスとメモリアクセスを提供し、複数の運用コンピュータ２００に対して、ＶＦ４２０へのコンフィグアクセスとメモリアクセスを提供する。
【００４５】
仮想化ブリッジ３００は、ネットワーク接続部３０１、パケット転送部３０２、アドレス変換部３０３、仮想化部３０４、パケット複製部３０５、複製対象情報記憶部３０６、監視部３０７、代替制御部３０８、代替管理情報記憶部３０９、及び、レジスタ情報記憶部３１０を含む。レジスタ情報記憶部３１０は、仮想ＰＦ ＣＦＧ ＲＥＧ３１１、及び、仮想ＶＦ ＣＦＧ ＲＥＧ３２１（３２１−１、２、…、Ｎ）を記憶する。仮想ＶＦ ＣＦＧ ＲＥＧ３２１−１、２、…、Ｎは、それぞれ、ＶＦ ＣＦＧ ＲＥＧ４２１−１、２、…、Ｎに対応する。
【００４６】
ネットワーク接続部３０１は、管理コンピュータ１００または運用コンピュータ２００から受信した、カプセル化されたパケットをデカプセル化する。また、ネットワーク接続部３０１は、パケットをカプセル化して、管理コンピュータ１００または運用コンピュータ２００へ送信する。
【００４７】
パケット転送部３０２は、コンフィグパケットを、管理コンピュータ１００、運用コンピュータ２００、及び、代替制御部３０８のいずれかと仮想化部３０４との間、または、仮想化部３０４とＩ／Ｏデバイス４００との間で転送する。また、パケット転送部３０２は、メモリアクセスパケットを、管理コンピュータ１００、運用コンピュータ２００、及び、代替制御部３０８のいずれかとＩ／Ｏデバイス４００との間で転送する。
【００４８】
仮想化部３０４は、ＰＦ ＣＦＧ ＲＥＧ４１１を用いて、ＰＦ４１０のコンフィギュレーションを行う。ここで、仮想化部３０４は、Ｉ／Ｏアドレス空間３５０において、ＰＦマップ領域３５１、ＶＦマップ領域３５２を割り当てる。また、仮想化部３０４は、ＰＦ ＣＦＧ ＲＥＧ４１１、ＶＦ ＣＦＧ ＲＥＧ４２１を仮想化した、仮想ＰＦ ＣＦＧ ＲＥＧ３１１、仮想ＶＦ ＣＦＧ ＲＥＧ３２１へのコンフィグアクセスを、管理コンピュータ１００、運用コンピュータ２００へ提供する。
【００４９】
図７は、本発明の第１の実施の形態における、仮想ＰＦ ＣＦＧ ＲＥＧ３１１の例を示す図である。図７に示すように、仮想ＰＦ ＣＦＧ ＲＥＧ３１１は、ＰＦ ＣＦＧ ＲＥＧ４１１と同様のＶＦ有効化フラグ、最大ＶＦ数、ＶＦ数、ＶＦリセットフラグ、ＰＦ領域サイズ、及び、ＰＦマップ領域情報、に加えて、仮想ＰＦマップ領域情報を含む。
【００５０】
ここで、仮想ＰＦマップ領域情報は、仮想ＰＦマップ領域１５１のアドレス（下限アドレス）を示す。
【００５１】
図８は、本発明の第１の実施の形態における、仮想ＶＦ ＣＦＧ ＲＥＧ３２１の例を示す図である。図８に示すように、仮想ＶＦ ＣＦＧ ＲＥＧ３２１は、ＶＦ ＣＦＧ ＲＥＧ４２１と同様のＶＦ領域サイズ、及び、ＶＦマップ領域情報、に加えて、仮想ＶＦマップ領域情報を含む。
【００５２】
ここで、仮想ＶＦマップ領域情報は、仮想ＶＦマップ領域２５１のアドレス（下限アドレス）を示す。
【００５３】
アドレス変換部３０３は、メモリアクセスパケットのアドレスを、管理アドレス空間１５０または運用アドレス空間２５０と、Ｉ／Ｏアドレス空間３５０との間で変換する。
【００５４】
監視部３０７は、管理コンピュータ１００上の制御部１０１の状態を監視し、制御部１０１の障害を検出する。制御部１０１の障害には、管理コンピュータ１００のハードウェア障害や、制御部１０１を実現するプログラムのソフトウェア障害、管理コンピュータ１００と仮想化ブリッジ３００の間のネットワーク障害等を含む。
【００５５】
監視の方法としては、Ａｃｔｉｖｅ型、または、Ｐａｓｓｉｖｅ型の監視を用いることができる。
【００５６】
Ａｃｔｉｖｅ型の監視では、監視部３０７が定期的に制御部１０１にアクセスして、制御部１０１に障害が発生しているかどうかを確認する。
【００５７】
Ｐａｓｓｉｖｅ型の監視では、監視部３０７が、管理コンピュータ１００、または、管理コンピュータ１００の制御部１０１からの障害通知を監視する。この場合、監視部３０７は、障害通知の種類として、例えば、ハードウェア障害や、ソフトウェア障害、ネットワーク障害等を監視する。ハードウェア障害は、例えば、管理コンピュータ１００からのリセット割り込み、ＰＣＩｅパケットのエラー割り込み、ＣＲＣエラー等により検出される。また、ソフトウェア障害は、例えば、制御部１０１からのリセット通知等により検出される。ネットワーク障害は、例えば、パケットロスの割合、ネットワーク切断の検知割り込み等により検出される。
【００５８】
パケット複製部３０５は、複製対象情報３３１に従って、管理コンピュータ１００と仮想化部３０４またはＩ／Ｏデバイス４００との間で転送されるパケットを複製し、代替制御部３０８に送信する。パケット複製部３０５は、代替制御部３０８が必要とするパケットのみを複製し、代替制御部３０８に送信してもよい。
【００５９】
複製対象情報記憶部３０６は、複製すべきパケットを示す複製対象情報３３１を記憶する。
【００６０】
図９は、本発明の第１の実施の形態における、複製対象情報３３１の例を示す図である。図９に示すように、複製対象情報３３１は、複製対象のパケットの種別を示す複製条件を含む。複製条件は、後述する代替制御部３０８が代替管理情報３４１を生成するために必要なパケットが複製されるように設定される。
【００６１】
代替制御部３０８は、監視部３０７により制御部１０１の障害が検出された場合、制御部１０１に代わってＩ／Ｏデバイス４００を制御する（制御部１０１の制御処理を代替する）。代替制御部３０８は、制御部１０１と同様の制御処理を実行してもよいし、制御部１０１が実行する制御処理の内、Ｉ／Ｏデバイス４００を継続的に動作させるために必要な制御処理のみを実行してもよい。
【００６２】
代替制御部３０８は、パケット複製部３０５によって複製されたパケットをもとに、代替管理情報３４１を更新し、代替管理情報３４１を用いて、Ｉ／Ｏデバイス４００を制御する。代替管理情報３４１は、管理情報１１１と同等の情報の内、代替管理情報３４１が代替する制御処理に必要な情報である。代替制御部３０８は、複製されたパケットをもとに、代替管理情報３４１の内容と管理情報１１１の対応する内容とが同じになるように、代替管理情報３４１を更新する。
【００６３】
なお、パケット複製部３０５、及び、代替制御部３０８は、仮想ＰＦ ＣＦＧ ＲＥＧ３１１を参照し、管理コンピュータ１００による仮想ＰＦマップ領域１５１上のメモリアクセスを解析することにより、パケットの複製、及び、代替管理情報３４１の更新を行う。また、代替制御部３０８は、Ｉ／Ｏデバイス４００に対するメモリアクセスを行う場合、仮想ＰＦ ＣＦＧ ＲＥＧ３１１を参照し、ＰＦマップ領域３５１上でメモリアクセスを行う。
【００６４】
また、代替制御部３０８は、制御部１０１と同様に、例えば、Ｉ／Ｏデバイス４００の製造者等により提供されるプログラムにより実現されてもよい。この場合、複製対象情報３３１も、Ｉ／Ｏデバイス４００の製造者等により提供される。
【００６５】
代替管理情報記憶部３０９は、代替管理情報３４１を記憶する。
【００６６】
図１０は、本発明の第１の実施の形態における、代替管理情報３４１の例を示す図である。図１０に示すように、代替管理情報３４１は、ＶＦ有効化フラグ、ＶＦ数、及び、ＶＦ状態を含む。ＶＦ有効化フラグ、ＶＦ数、及び、ＶＦ状態は、管理情報１１１のＶＦ有効化フラグ、ＶＦ数、及び、ＶＦ状態と同じになるように更新される。
【００６７】
なお、仮想化ブリッジ３００はＣＰＵ（Central Processing Unit）とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。また、複製対象情報記憶部３０６、代替管理情報記憶部３０９、及び、レジスタ情報記憶部３１０は、それぞれ個別の記憶媒体でも、１つの記憶媒体によって構成されてもよい。
【００６８】
次に、本発明の第１の実施の形態の動作について説明する。
【００６９】
ここでは、Ｉ／Ｏデバイス４００において、図４のようなＰＦ ＣＦＧ ＲＥＧ４１１の最大ＶＦ数とＰＦ領域サイズ、及び、図５のようなＶＦ ＣＦＧ ＲＥＧ４２１のＶＦ領域サイズ、及び、図９のような複製対象情報３３１が設定されていると仮定する、
＜仮想化ブリッジ３００の起動処理＞
はじめに、本発明の第１の実施の形態における、仮想化ブリッジ３００の起動処理について説明する。
【００７０】
図１１は、本発明の第１の実施の形態における、仮想化ブリッジ３００の起動処理を示すフローチャートである。
【００７１】
はじめに、仮想化ブリッジ３００の仮想化部３０４は、コンフィグリード要求により、Ｉ／Ｏデバイス４００へ、最大ＶＦ数とＰＦ領域サイズとの読み出しを要求する（ステップＳ３０１）。
【００７２】
Ｉ／Ｏデバイス４００は、コンフィグリード応答により、仮想化ブリッジ３００へ、ＰＦ ＣＦＧ ＲＥＧ４１１の最大ＶＦ数とＰＦ領域サイズとを返信する（ステップＳ４０１）。
【００７３】
例えば、Ｉ／Ｏデバイス４００は、図４のＰＦ ＣＦＧ ＲＥＧ４１１の最大ＶＦ数「Ｎ」とＰＦ領域サイズ「Ｓｐｆ」とを返信する。
【００７４】
仮想化部３０４は、Ｉ／Ｏアドレス空間３５０に、ＰＦ領域サイズのＰＦマップ領域３５１を割り当てる（ステップＳ３０２）。
【００７５】
例えば、仮想化部３０４は、図３のように、Ｉ／Ｏアドレス空間３５０に、ＰＦマップ領域３５１を割り当てる。
【００７６】
仮想化部３０４は、仮想ＰＦ ＣＦＧ ＲＥＧ３１１に、最大ＶＦ数、ＰＦ領域サイズ、及び、ＰＦマップ領域３５１に係るＰＦマップ領域情報を設定する（ステップＳ３０３）。
【００７７】
例えば、仮想化部３０４は、図７のように、仮想ＰＦ ＣＦＧ ＲＥＧ３１１に、最大ＶＦ数「Ｎ」、ＰＦ領域サイズ「Ｓｐｆ」、及び、ＰＦマップ領域情報「Ａ００」を設定する。
【００７８】
仮想化部３０４は、コンフィグライト要求により、Ｉ／Ｏデバイス４００へ、ＰＦマップ領域情報の書き込みを要求する（ステップＳ３０４）。
【００７９】
Ｉ／Ｏデバイス４００は、ＰＦ ＣＦＧ ＲＥＧ４１１にＰＦマップ領域情報を設定する（ステップＳ４０２）。
【００８０】
例えば、Ｉ／Ｏデバイス４００は、図４のように、ＰＦ ＣＦＧ ＲＥＧ４１１にＰＦマップ領域情報「Ａ００」を設定する。
【００８１】
＜管理コンピュータ１００による設定処理＞
次に、本発明の第１の実施の形態における、管理コンピュータ１００による設定処理について説明する。
【００８２】
図１２は、本発明の第１の実施の形態における、管理コンピュータ１００による設定処理を示すフローチャートである。
【００８３】
はじめに、管理コンピュータ１００の制御部１０１は、コンフィグリード要求により、仮想化ブリッジ３００へ、最大ＶＦ数とＰＦ領域サイズとの読み出しを要求する（ステップＳ１１１）。ここで、コンフィグリード要求は、パケット転送部３０２により、仮想化部３０４へ転送される。
【００８４】
仮想化部３０４は、コンフィグリード応答により、管理コンピュータ１００へ、仮想ＰＦ ＣＦＧ ＲＥＧ３１１の最大ＶＦ数とＰＦ領域サイズとを返信する（ステップＳ３１１）。ここで、コンフィグリード応答は、パケット転送部３０２により、ネットワーク接続部３０１へ転送され、管理コンピュータ１００へ送信される。
【００８５】
例えば、仮想化部３０４は、図７の仮想ＰＦ ＣＦＧ ＲＥＧ３１１の最大ＶＦ数「Ｎ」とＰＦ領域サイズ「Ｓｐｆ」とを返信する。
【００８６】
制御部１０１は、管理アドレス空間１５０に、仮想ＰＦマップ領域１５１を割り当てる（ステップＳ１１２）。
【００８７】
例えば、制御部１０１は、図３のように、管理アドレス空間１５０に、仮想ＰＦマップ領域１５１を割り当てる。
【００８８】
制御部１０１は、コンフィグライト要求により、仮想化ブリッジ３００へ、仮想ＰＦマップ領域１５１に係る仮想ＰＦマップ領域情報の書き込みを要求する（ステップＳ１１３）。
【００８９】
例えば、制御部１０１は、仮想ＰＦマップ領域情報「ＶＡ００」の書き込みを要求する。
【００９０】
仮想化部３０４は、仮想ＰＦ ＣＦＧ ＲＥＧ３１１に仮想ＰＦマップ領域情報を設定する（ステップＳ３１２）。
【００９１】
例えば、仮想化部３０４は、図７のように、仮想ＰＦ ＣＦＧ ＲＥＧ３１１に仮想ＰＦマップ領域情報「ＶＡ００」を設定する。
【００９２】
次に、制御部１０１は、最大ＶＦ数の範囲内でＶＦ数を決定し、管理情報１１１に、ＶＦ有効化フラグとＶＦ数と設定する（ステップＳ１１４）。
【００９３】
例えば、制御部１０１は、図６のように、ＶＦ有効化フラグ「Ｅｎａｂｌｅ」とＶＦ数「Ｎ」とを管理情報１１１に設定する。
【００９４】
制御部１０１は、コンフィグライト要求により、仮想化ブリッジ３００へ、ＶＦ有効化フラグとＶＦ数との書き込みを要求する（ステップＳ１１５）。
【００９５】
仮想化部３０４は、仮想ＰＦ ＣＦＧ ＲＥＧ３１１にＶＦ有効化フラグとＶＦ数とを設定する（ステップＳ３１３）。
【００９６】
例えば、仮想化部３０４は、図７のように、仮想ＰＦ ＣＦＧ ＲＥＧ３１１にＶＦ有効化フラグ「Ｅｎａｂｌｅ」とＶＦ数「Ｎ」とを設定する。
【００９７】
ここで、コンフィグライト要求（ＶＦ有効化フラグ、ＶＦ数）は、複製対象であるため、パケット複製部３０５は、当該コンフィグライト要求を複製して、代替制御部３０８へ送信する。代替制御部３０８は、複製されたコンフィグライト要求をもとに、ＶＦ有効化フラグとＶＦ数とを、代替管理情報３４１に設定する（ステップＳ３１４）。
【００９８】
例えば、代替制御部３０８は、図１０のように、代替管理情報３４１にＶＦ有効化フラグ「Ｅｎａｂｌｅ」とＶＦ数「Ｎ」とを設定する。
【００９９】
仮想化部３０４は、コンフィグライト要求により、Ｉ／Ｏデバイス４００へ、ＶＦ有効化フラグとＶＦ数との書き込みを要求する（ステップＳ３１５）。
【０１００】
Ｉ／Ｏデバイス４００は、ＰＦ ＣＦＧ ＲＥＧ４１１にＶＦ有効化フラグとＶＦ数とを設定する（ステップＳ４１１）。
【０１０１】
例えば、Ｉ／Ｏデバイス４００は、図４のように、ＰＦ ＣＦＧ ＲＥＧ４１１にＶＦ有効化フラグ「Ｅｎａｂｌｅ」とＶＦ数「Ｎ」とを設定する。
【０１０２】
仮想化部３０４は、コンフィグリード要求により、Ｉ／Ｏデバイス４００へ、ＶＦ数分のＶＦのＶＦ領域サイズの読み出しを要求する（ステップＳ３１６）。
【０１０３】
Ｉ／Ｏデバイス４００は、コンフィグリード応答により、仮想化ブリッジ３００へ、各ＶＦ ＣＦＧ ＲＥＧ４２１のＶＦ領域サイズを返信する（ステップＳ４１２）。
【０１０４】
例えば、Ｉ／Ｏデバイス４００は、図５のＶＦ ＣＦＧ ＲＥＧ４２１のＶＦ領域サイズ「Ｓｖｆ１」、…、「ＳｖｆＮ」を返信する。
【０１０５】
仮想化部３０４は、Ｉ／Ｏアドレス空間３５０に、各ＶＦ領域サイズのＶＦマップ領域３５２を割り当てる（ステップＳ３１７）。
【０１０６】
例えば、仮想化部３０４は、図３のように、Ｉ／Ｏアドレス空間３５０に、ＶＦマップ領域３５２−１〜Ｎを割り当てる。
【０１０７】
仮想化部３０４は、各仮想ＶＦ ＣＦＧ ＲＥＧ３２１に、ＶＦ領域サイズ、及び、ＶＦマップ領域３５２に係るＶＦマップ領域情報を設定する（ステップＳ３１８）。
【０１０８】
例えば、仮想化部３０４は、図８のように、各仮想ＶＦ ＣＦＧ ＲＥＧ３２１に、ＶＦ領域サイズ「Ｓｖｆ１」、…、「ＳｖｆＮ」、ＶＦマップ領域情報「Ａ０１」、…、「Ａ０ｎ」を設定する。
【０１０９】
仮想化部３０４は、コンフィグライト要求により、Ｉ／Ｏデバイス４００へ、ＶＦマップ領域情報の書き込みを要求する（ステップＳ３１９）。
【０１１０】
Ｉ／Ｏデバイス４００は、各ＶＦ ＣＦＧ ＲＥＧ４２１にＶＦマップ領域情報を設定する（ステップＳ４１３）。
【０１１１】
例えば、Ｉ／Ｏデバイス４００は、図５のように、各ＶＦ ＣＦＧ ＲＥＧ４２１に、ＶＦマップ領域情報「Ａ０１」、…、「Ａ０ｎ」を設定する。
【０１１２】
以上により、運用コンピュータ２００による、ＶＦ４２０の利用が可能となる。
【０１１３】
各運用コンピュータ２００は、特許文献１と同様に、運用アドレス空間２５０に、ＶＦ領域サイズの仮想ＶＦマップ領域２５１を割り当てる。仮想化部３０４は、仮想ＶＦ ＣＦＧ ＲＥＧ３２１に仮想ＶＦマップ領域情報を設定する。そして、アドレス変換部３０３は、運用コンピュータ２００とＶＦ４２０との間のメモリアクセスパケットのアドレスを、仮想ＶＦ ＣＦＧ ＲＥＧ３２１をもとに、運用コンピュータ２００の仮想ＶＦマップ領域２５１とＶＦマップ領域３５２との間で変換する。
【０１１４】
＜管理コンピュータ１００による制御処理＞
次に、本発明の第１の実施の形態における、管理コンピュータ１００による制御処理について説明する。ここでは、制御処理として、ＶＦ４２０の死活管理を行う場合を例に説明する。
【０１１５】
なお、本発明の第１の実施の形態では、各ＶＦ４２０のＶＦ状態は、ＰＦ４１０のＰＦマップ領域３５１から取得できると仮定する。
【０１１６】
図１３は、本発明の第１の実施の形態における、管理コンピュータ１００による制御処理を示すフローチャートである。
【０１１７】
はじめに、管理コンピュータ１００の制御部１０１は、メモリリード要求により、仮想化ブリッジ３００へ、ＰＦマップ領域３５１上のＶＦ状態の読み出しを要求する（ステップＳ１２１）。ここで、管理コンピュータ１００は、管理情報１１１を参照し、ＶＦ数分のＶＦ４２０のＶＦ状態の読み出しを要求する。
【０１１８】
例えば、制御部１０１は、図６の管理情報１１１を参照し、ＶＦ４２０−１〜ＮのＶＦ状態の読み出しを要求する。
【０１１９】
メモリリード要求は、パケット転送部３０２により、アドレス変換部３０３へ転送される。アドレス変換部３０３は、仮想ＰＦ ＣＦＧ ＲＥＧ３１１をもとに、管理コンピュータ１００から受信したメモリリード要求における、仮想ＰＦマップ領域１５１のアドレスを、ＰＦマップ領域３５１のアドレスに変換する。そして、アドレス変換部３０３は、メモリリード要求をＩ／Ｏデバイス４００へ送信する（ステップＳ３２１）。
【０１２０】
Ｉ／Ｏデバイス４００は、メモリリード応答により、仮想化ブリッジ３００へ、ＰＦマップ領域３５１上のＶＦ状態を返信する（ステップＳ４２１）。
【０１２１】
アドレス変換部３０３は、仮想ＰＦ ＣＦＧ ＲＥＧ３１１をもとに、Ｉ／Ｏデバイス４００から受信したメモリリード応答における、ＰＦマップ領域３５１のアドレスを、仮想ＰＦマップ領域１５１のアドレスに変換する。そして、アドレス変換部３０３は、メモリリード応答をパケット転送部３０２へ送信する（ステップＳ３２２）。メモリリード応答は、パケット転送部３０２により、ネットワーク接続部３０１へ転送され、管理コンピュータ１００へ送信される。
【０１２２】
ここで、複製対象情報３３１において、メモリリード応答（ＶＦ状態）も、複製対象であるため、パケット複製部３０５は、当該メモリリード応答を複製して、代替制御部３０８へ送信する。代替制御部３０８は、複製されたメモリリード応答をもとに、ＶＦ状態を、代替管理情報３４１に設定する（ステップＳ３２３）。
【０１２３】
例えば、代替制御部３０８は、図１０のように、ＶＦ４２０−１〜ＮのＶＦ状態を代替管理情報３４１に設定する。
【０１２４】
制御部１０１は、受信したＶＦ状態を、管理情報１１１に設定する（ステップＳ１２２）。
【０１２５】
例えば、制御部１０１は、図６のように、ＶＦ４２０−１〜ＮのＶＦ状態を管理情報１１１に設定する。
【０１２６】
制御部１０１は、ＶＦ状態が「異常」であるＶＦ４２０が存在するかどうかを判定する（ステップＳ１２３）。
【０１２７】
ステップＳ１２３で、ＶＦ状態が「異常」であるＶＦ４２０が存在しない場合（ステップＳ１２３／Ｎ）、ステップＳ１２１からの処理が定期的に実行される。
【０１２８】
ステップＳ１２３で、ＶＦ状態が「異常」であるＶＦ４２０が存在する場合（ステップＳ１２３／Ｙ）、制御部１０１は、コンフィグライト要求により、ＶＦリセットフラグ「Ｒｅｓｅｔ」の書き込みを仮想化ブリッジ３００へ要求する（ステップＳ１２４）。コンフィグライト要求では、異常が検出されたＶＦ４２０を指定される。
【０１２９】
例えば、制御部１０１は、ＶＦ４２０−１に対するＶＦリセットフラグ「Ｒｅｓｅｔ」の書き込みを要求する。
【０１３０】
仮想化部３０４は、仮想ＰＦ ＣＦＧ ＲＥＧ３１１における、指定されたＶＦ４２０のＶＦリセットフラグを設定する（ステップＳ３２４）。
【０１３１】
例えば、仮想化部３０４は、図７のように、仮想ＰＦ ＣＦＧ ＲＥＧ３１１において、ＶＦ４２０−１に対するＶＦリセットフラグ「Ｒｅｓｅｔ」を設定する。
【０１３２】
仮想化部３０４は、コンフィグライト要求により、Ｉ／Ｏデバイス４００へ、指定されたＶＦ４２０のＶＦリセットフラグの書き込みを要求する（ステップＳ３２５）。
【０１３３】
Ｉ／Ｏデバイス４００は、ＰＦ ＣＦＧ ＲＥＧ４１１における、指定されたＶＦ４２０のＶＦリセットフラグを設定する（ステップＳ４２２）。これにより、Ｉ／Ｏデバイス４００は、異常が検出されたＶＦ４２０の再起動を行う（ステップＳ４２３）。
【０１３４】
例えば、Ｉ／Ｏデバイス４００は、図４のように、ＰＦ ＣＦＧ ＲＥＧ４１１において、ＶＦ４２０−１に対するＶＦリセットフラグ「Ｒｅｓｅｔ」を設定する。Ｉ／Ｏデバイス４００は、ＶＦ４２０−１を再起動する。
【０１３５】
ＶＦ４２０の再起動が完了すると、仮想化部３０４は、再起動したＶＦ４２０について、ステップＳ３１６〜Ｓ３１９と同様の処理により、ＶＦマップ領域３５２の割り当て、ＶＦマップ領域情報の設定を行う。これにより、運用コンピュータ２００による、再起動したＶＦ４２０の利用が可能となる。
【０１３６】
以降、ステップＳ１２１からの処理が繰り返し実行される。
【０１３７】
＜管理コンピュータ１００の監視処理＞
次に、本発明の第１の実施の形態における、管理コンピュータ１００の制御部１０１の監視処理について説明する。
【０１３８】
監視処理は、例えば、管理コンピュータ１００上の制御部１０１を実現するプログラムが起動したときや、制御部１０１から仮想化ブリッジ３００への最初のアクセスが発生したときに開始される。
【０１３９】
図１４は、本発明の第１の実施の形態における、管理コンピュータ１００の監視処理を示すフローチャートである。
【０１４０】
はじめに、監視部３０７は、制御部１０１の状態を取得する（ステップＳ３３１）。
【０１４１】
監視部３０７は、制御部１０１に障害が発生しているかどうかを判定する（ステップＳ３３２）。
【０１４２】
ステップＳ３３２で、制御部１０１に障害が発生していない場合（ステップＳ３３２／Ｎ）、ステップＳ３３１からの処理が繰り返される。
【０１４３】
ステップＳ３３２で、制御部１０１に障害が発生している場合（ステップＳ３３２／Ｙ）、監視部３０７は、管理コンピュータ１００との接続を切断する（ステップＳ３３３）。また、監視部３０７は、代替制御部３０８に、制御部１０１の障害を通知する。これにより、代替制御部３０８は、制御部１０１に代わって、Ｉ／Ｏデバイス４００の制御を開始する（ステップＳ３３４）。
【０１４４】
＜代替制御部３０８による制御処理＞
次に、本発明の第１の実施の形態における、代替制御部３０８による制御処理について説明する。ここでは、代替制御部３０８が、制御処理として、ＶＦ４２０の死活管理を行う場合を例に説明する。
【０１４５】
代替制御部３０８による制御処理は、上述のステップＳ３３２のように、監視部３０７によって、制御部１０１の障害が検出されたときに開始される。
【０１４６】
図１５は、本発明の第１の実施の形態における、代替制御部３０８による制御処理を示すフローチャートである。
【０１４７】
はじめに、仮想化ブリッジ３００の代替制御部３０８は、メモリリード要求により、Ｉ／Ｏデバイス４００へ、ＰＦマップ領域３５１上のＶＦ状態の読み出しを要求する（ステップＳ３４１）。ここで、代替制御部３０８は、代替管理情報３４１を参照し、ＶＦ数分のＶＦ４２０のＶＦ状態の読み出しを要求する。
【０１４８】
例えば、代替制御部３０８は、図１０の代替管理情報３４１を参照し、ＶＦ４２０−１〜ＮのＶＦ状態の読み出しを要求する。
【０１４９】
メモリリード要求は、パケット転送部３０２により、アドレス変換部３０３へ転送される。アドレス変換部３０３は、アドレス変換を行わずに、メモリリード要求をＩ／Ｏデバイス４００へ送信する。
【０１５０】
Ｉ／Ｏデバイス４００は、メモリリード応答により、仮想化ブリッジ３００へ、ＰＦマップ領域３５１上のＶＦ状態を返信する（ステップＳ４４１）。アドレス変換部３０３は、アドレス変換を行わずに、メモリリード応答をパケット転送部３０２へ送信する。メモリリード応答は、パケット転送部３０２により、代替制御部３０８へ転送される。
【０１５１】
代替制御部３０８は、受信したＶＦ状態を、代替管理情報３４１に設定する（ステップＳ３４２）。
【０１５２】
例えば、代替制御部３０８は、図１０のように、ＶＦ４２０−１〜ＮのＶＦ状態を代替管理情報３４１に設定する。
【０１５３】
代替制御部３０８は、ＶＦ状態が「異常」であるＶＦ４２０が存在するかどうかを判定する（ステップＳ３４３）。
【０１５４】
ステップＳ３４３で、ＶＦ状態が「異常」であるＶＦ４２０が存在しない場合（ステップＳ３４３／Ｎ）、ステップＳ３４１からの処理が定期的に実行される。
【０１５５】
ステップＳ３４３で、ＶＦ状態が「異常」であるＶＦ４２０が存在する場合（ステップＳ３４３／Ｙ）、代替制御部３０８は、コンフィグライト要求により、ＶＦリセットフラグ「Ｒｅｓｅｔ」の書き込みを仮想化部３０４へ要求する（ステップＳ３４４）。コンフィグライト要求では、異常が検出されたＶＦ４２０が指定される。
【０１５６】
例えば、代替制御部３０８は、ＶＦ４２０−１に対するＶＦリセットフラグ「Ｒｅｓｅｔ」の書き込みを要求する。
【０１５７】
コンフィグライト要求は、パケット転送部３０２により、仮想化部３０４へ転送される。
【０１５８】
仮想化部３０４は、仮想ＰＦ ＣＦＧ ＲＥＧ３１１における、指定されたＶＦ４２０のＶＦリセットフラグを設定する（ステップＳ３４５）。
【０１５９】
例えば、仮想化部３０４は、図７のように、仮想ＰＦ ＣＦＧ ＲＥＧ３１１において、ＶＦ４２０−１に対するＶＦリセットフラグ「Ｒｅｓｅｔ」を設定する。
【０１６０】
仮想化部３０４は、コンフィグライト要求により、Ｉ／Ｏデバイス４００へ、指定されたＶＦ４２０のＶＦリセットフラグの書き込みを要求する（ステップＳ３４６）。
【０１６１】
Ｉ／Ｏデバイス４００は、ＰＦ ＣＦＧ ＲＥＧ４１１における、指定されたＶＦ４２０のＶＦリセットフラグを設定する（ステップＳ４４２）。これにより、Ｉ／Ｏデバイス４００は、異常が検出されたＶＦ４２０の再起動を行う（ステップＳ４４３）。
【０１６２】
例えば、Ｉ／Ｏデバイス４００は、図４のように、ＰＦ ＣＦＧ ＲＥＧ４１１において、ＶＦ４２０−１に対するＶＦリセットフラグ「Ｒｅｓｅｔ」を設定する。Ｉ／Ｏデバイス４００は、ＶＦ４２０−１を再起動する。
【０１６３】
ＶＦ４２０の再起動が完了すると、仮想化部３０４は、再起動したＶＦ４２０について、ステップＳ３１６〜Ｓ３１９と同様の処理により、ＶＦマップ領域３５２の割り当てを行う。これにより、運用コンピュータ２００による、再起動したＶＦ４２０の利用が可能となる。
【０１６４】
以降、ステップＳ３４１からの処理が繰り返し実行される。
【０１６５】
以上により、本発明の第１の実施の形態の動作が完了する。
【０１６６】
なお、本発明の第１の実施では、代替制御部３０８は、Ｉ／Ｏデバイス４００に対するメモリアクセスを行う場合、ＰＦマップ領域３５１上でメモリアクセスを行っている。しかしながら、これに限らず、代替制御部３０８は、仮想ＰＦ ＣＦＧ ＲＥＧ３１１を参照し、仮想ＰＦマップ領域１５１上でメモリアクセスを行ってもよい。この場合、アドレス変換部３０３は、代替制御部３０８からのメモリアクセスパケットに対しても、管理コンピュータ１００からのメモリアクセスパケットと同様に、アドレス変換を行う。
【０１６７】
次に、本発明の第１の実施の形態の特徴的な構成を説明する。図１は、本発明の第１の実施の形態の特徴的な構成を示すブロック図である。
【０１６８】
図１を参照すると、仮想化ブリッジ（情報処理装置）３００は、監視部３０７と代替制御部３０８とを含む。
【０１６９】
仮想化ブリッジ３００は、運用コンピュータ（コンピュータ）２００に対して、Ｉ／Ｏデバイス４００の仮想的な機能を提供する。
【０１７０】
監視部３０７は、Ｉ／Ｏデバイス４００の制御を仮想化ブリッジ３００を通して行う、管理コンピュータ１００の障害を検出する。
【０１７１】
代替制御部３０８は、管理コンピュータ１００とＩ／Ｏデバイス４００との間で送受信されるパケットをもとに、代替管理情報３４１を生成する。代替管理情報３４１は、管理コンピュータ１００に代わってＩ／Ｏデバイス４００の制御を行うために必要な、Ｉ／Ｏデバイス４００に係る情報である。そして、代替制御部３０８は、監視部３０７により管理コンピュータ１００の障害が検出された場合に、代替管理情報３４１をもとに、管理コンピュータ１００に代わってＩ／Ｏデバイス４００の制御を行う。
【０１７２】
次に、本発明の第１の実施の形態の効果について説明する。
【０１７３】
本発明の第１の実施の形態によれば、Ｉ／Ｏデバイスを複数の運用コンピュータ間で共有するＩ／Ｏシステムにおいて、管理コンピュータに障害が発生した場合でも、運用コンピュータによるＩ／Ｏデバイスへのアクセスが継続できる。その理由は、代替制御部３０８が、監視部３０７により管理コンピュータ１００の障害が検出された場合に、代替管理情報３４１をもとに、管理コンピュータ１００に代わってＩ／Ｏデバイス４００の制御を行うためである。代替管理情報３４１は、管理コンピュータ１００とＩ／Ｏデバイス４００との間で送受信されるパケットをもとに生成される。これにより信頼性の高いＩ／Ｏデバイス共有システムが構築できる。
【０１７４】
また、管理コンピュータの障害に対する対処の他の方法として、管理コンピュータに代わって、待機系コンピュータがＩ／Ｏデバイスを制御する方法が考えられる。この場合、待機系コンピュータの運用や設置スペースにより、コストが増加する。本発明の第１の実施の形態によれば、低コストで、Ｉ／Ｏシステムの信頼性を向上できる。その理由は、仮想化ブリッジ３００に含まれる代替制御部３０８が、管理コンピュータ１００に代わってＩ／Ｏデバイス４００の制御を行うためである。
【０１７５】
また、待機系コンピュータを用いた場合、待機系コンピュータは、管理アドレス空間上の仮想ＰＦマップ領域を把握できないため、待機系コンピュータは、管理コンピュータと仮想化ブリッジ間のパケットから、管理情報と同様の情報を生成することができない。このため、管理コンピュータと待機系コンピュータとの間で管理情報の同期を行うための他の手段が必要である。また、待機系コンピュータがＰＦに対するメモリアクセスを実行するためには、仮想化ブリッジにおいて、待機系コンピュータ上のアドレス空間上の仮想ＰＦマップ領域を管理する手段も必要である。
【０１７６】
本発明の第１の実施の形態によれば、待機系の管理コンピュータを用いる場合に比べて、容易にＩ／Ｏシステムの信頼性を向上できる。その理由は、代替制御部３０８が、仮想ＰＦ ＣＦＧ ＲＥＧ３１１を参照して、代替管理情報３４１を生成し、ＰＦマップ領域３５１上のアドレスを用いてＰＦ４１０に対するメモリアクセスを実行するためである。代替管理情報３４１は、仮想ＰＦマップ領域１５１上のメモリアクセスを解析することで生成される。これにより、上述のような手段を用いることなく、代替制御部３０８がＰＦ４１０に対するメモリアクセスを実行できる。
【０１７７】
（第２の実施の形態）
次に、本発明の第２の実施の形態について説明する。
【０１７８】
本発明の第２の実施の形態においては、Ｉ／Ｏシステムが複数のＩ／Ｏデバイス４００を含み、管理コンピュータ１００が当該複数のＩ／Ｏデバイス４００を制御する点において、本発明の第１の実施の形態と異なる。
【０１７９】
はじめに、本発明の第２の実施の形態の構成について説明する。
【０１８０】
図１６は、本発明の第２の実施の形態における、Ｉ／Ｏシステムの構成を示すブロック図である。
【０１８１】
図１６を参照すると、Ｉ／Ｏシステムは、管理コンピュータ１００、運用コンピュータ２００（２００−１、２、…、Ｎ）、Ｉ／Ｏデバイス４００（４００−１、２、…、Ｍ）（Ｍは１以上の整数）、及び、仮想化ブリッジ３００（３００−１、２、…、Ｍ）を含む。仮想化ブリッジ３００（３００−１、２、…、Ｍ）は、それぞれ、Ｉ／Ｏデバイス４００（４００−１、２、…、Ｍ）と接続される。
【０１８２】
管理コンピュータ１００は、制御部１０１（１０１−１、２、…、Ｍ）、及び、管理情報記憶部１０２（１０２−１、２、…、Ｍ）を含む。制御部１０１−１、２、…、Ｍは、それぞれ、仮想化ブリッジ３００（３００−１、２、…、Ｍ）を介して、Ｉ／Ｏデバイス４００−１、２、…、Ｍを制御する。
【０１８３】
運用コンピュータ２００−１、２、…、Ｎの各々は、仮想化ブリッジ３００−１、２、…、Ｍを介して、Ｉ／Ｏデバイス４００−１、２、…、Ｍの内のいずれかに接続される。そして、運用コンピュータ２００は、Ｉ／Ｏデバイス４００において、当該運用コンピュータ２００に対応づけられたＶＦ４２０を利用する。
【０１８４】
仮想化ブリッジ３００−１、２、…、Ｍは、それぞれ、監視部３０７−１、２、…、Ｍ、代替制御部３０８−１、２、…、Ｍを含む。監視部３０７は、仮想化ブリッジ３００が接続されたＩ／Ｏデバイス４００を制御する制御部１０１を監視する。また、代替制御部３０８は、当該制御部１０１の障害が検出された場合、当該制御部１０１に代わってＩ／Ｏデバイス４００を制御する。
【０１８５】
本発明の第２の実施の形態の動作は、制御部１０１−１、２、…、Ｍが、それぞれ、Ｉ／Ｏデバイス４００−１、２、…、Ｍを制御する点を除いて、本発明の第１の実施の形態と同様である。
【０１８６】
制御部１０１−１、２、…、Ｍのいずれかに障害が発生した場合、障害が発生した制御部１０１に代わって、当該制御部１０１が制御するＩ／Ｏデバイス４００に接続された仮想化ブリッジ３００の代替制御部３０８が、当該Ｉ／Ｏデバイス４００を制御する。
【０１８７】
例えば、図１６において、Ｉ／Ｏデバイス４００−１を制御する制御部１０１−１に障害が発生した場合、仮想化ブリッジ３００−１の代替制御部３０８−１が、制御部１０１−１に代わって、Ｉ／Ｏデバイス４００−１を制御する。
【０１８８】
以上により、本発明の第２の実施の形態の動作が完了する。
【０１８９】
次に、本発明の第２の実施の形態の効果について説明する。
【０１９０】
本発明の第２の実施の形態によれば、管理コンピュータ１００が複数のＩ／Ｏデバイスを制御しているときに、一つのＩ／Ｏデバイスに対する制御で障害が発生した場合でも、運用コンピュータによる各Ｉ／Ｏデバイス４００へのアクセスを継続できる。この場合、他のＩ／Ｏデバイスに対する制御に影響することなく、運用コンピュータによる各Ｉ／Ｏデバイス４００へのアクセスが継続される。
【０１９１】
その理由は、仮想化ブリッジ３００の代替制御部３０８が、仮想化ブリッジ３００に対応するＩ／Ｏデバイス４００を制御する制御部１０１に障害が検出された場合に、当該制御部１０１に代わって当該Ｉ／Ｏデバイス４００の制御を行うためである。これにより、管理コンピュータ１００の複数の制御部１０１のうち、障害が検出された制御部１０１による制御のみが、代替制御部３０８による制御に切り替えられる。
【０１９２】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１９３】
この出願は、２０１３年７月２３日に出願された日本出願特願２０１３−１５７３４６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１９４】
１００    管理コンピュータ
１０１    制御部
１０２    管理情報記憶部
１１１    管理情報
１５０    管理アドレス空間
１５１    仮想ＰＦマップ領域
２００    運用コンピュータ
２５０    運用アドレス空間
２５１    仮想ＶＦマップ領域
３００    仮想化ブリッジ
３０１    ネットワーク接続部
３０２    パケット転送部
３０３    アドレス変換部
３０４    仮想化部
３０５    パケット複製部
３０６    複製対象情報記憶部
３０７    監視部
３０８    代替制御部
３０９    代替管理情報記憶部
３１０    レジスタ情報記憶部
３１１    仮想ＰＦ ＣＦＧ ＲＥＧ
３２１    仮想ＶＦ ＣＦＧ ＲＥＧ
３３１    複製対象情報
３４１    代替管理情報
３５０    Ｉ／Ｏアドレス空間
３５１    ＰＦマップ領域
３５２    ＶＦマップ領域
４００    Ｉ／Ｏデバイス
４１０    ＰＦ
４１１    ＰＦ ＣＦＧ ＲＥＧ
４２０    ＶＦ
４２１    ＶＦ ＣＦＧ ＲＥＧ
６００    管理コンピュータ
７００    運用コンピュータ
８００    仮想化ブリッジ
８１１    仮想ＰＦ ＣＦＧ ＲＥＧ
８２１    仮想ＶＦ ＣＦＧ ＲＥＧ
９００    Ｉ／Ｏデバイス
９１０    ＰＦ
９１１    ＰＦ ＣＦＧ ＲＥＧ
９２０    ＶＦ
９２１    ＶＦ ＣＦＧ ＲＥＧ
【図１】
2015011895.tif 000003
【図２】
2015011895.tif 000004
【図３】
2015011895.tif 000005
【図４】
2015011895.tif 000006
【図５】
2015011895.tif 000007
【図６】
2015011895.tif 000008
【図７】
2015011895.tif 000009
【図８】
2015011895.tif 000010
【図９】
2015011895.tif 000011
【図１０】
2015011895.tif 000012
【図１１】
2015011895.tif 000013
【図１２】
2015011895.tif 000014
【図１３】
2015011895.tif 000015
【図１４】
2015011895.tif 000016
【図１５】
2015011895.tif 000017
【図１６】
2015011895.tif 000018
【図１７】
2015011895.tif 000019
【図１８】
2015011895.tif 000020
【手続補正書】
【提出日】平成27年12月18日(2015.12.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項９
【補正方法】変更
【補正の内容】
【請求項９】
コンピュータに対して、Ｉ／Ｏデバイスの仮想的な機能を提供する情報処理装置におけるＩ／Ｏ制御方法であって、
前記Ｉ／Ｏデバイスの制御を前記情報処理装置を通して行う管理コンピュータの障害を検出し、
前記管理コンピュータと前記Ｉ／Ｏデバイスとの間で送受信されるパケットをもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行うために必要な、前記Ｉ／Ｏデバイスに係る情報である代替管理情報を生成し、
前記管理コンピュータの障害が検出された場合に、前記代替管理情報をもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行う、
Ｉ／Ｏ制御方法。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１０
【補正方法】変更
【補正の内容】
【請求項１０】
コンピュータに対して、Ｉ／Ｏデバイスの仮想的な機能を提供する情報処理装置において実行されるプログラムを格納する記録媒体であって、
前記情報処理装置に、
前記Ｉ／Ｏデバイスの制御を前記情報処理装置を通して行う管理コンピュータの障害を検出し、
前記管理コンピュータと前記Ｉ／Ｏデバイスとの間で送受信されるパケットをもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行うために必要な、前記Ｉ／Ｏデバイスに係る情報である代替管理情報を生成し、
前記管理コンピュータの障害が検出された場合に、前記代替管理情報をもとに、前記管理コンピュータに代わって前記Ｉ／Ｏデバイスの制御を行う、
処理を実行させるプログラム。
【国際調査報告】
2015011895.tif 000021
2015011895.tif 000022
2015011895.tif 000023
2015011895.tif 000024