(57)【要約】【課題】仮想計算機へのＩＯデバイス割り当ての手間を削減する。【解決手段】計算機は、複数の物理ＩＯデバイスを有する１以上の物理ＩＯインタフェイスがそれぞれ搭載される１以上の物理スロットを有する。計算機は、第１の時点での物理スロットと物理ＩＯデバイスとの対応関係に基づいて第１の時点での各物理ＩＯデバイスについて決定された物理ＩＯデバイス識別子を含む物理管理情報中のＩＯデバイス識別子が、第１の時点よりも過去の第２の時点での仮想計算機と物理ＩＯデバイスの物理ＩＯデバイス識別子との対応関係を表す情報である論理管理情報に、物理管理情報中の物理ＩＯデバイス識別子に適合する物理ＩＯデバイス識別子が含まれているか否かを判断し、その判断の結果が肯定的の場合、論理管理情報における仮想計算機と物理ＩＯデバイス識別子との対応関係を維持する。【選択図】図１
2014010731.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理ＩＯデバイスを有する１以上の物理ＩＯインタフェイスがそれぞれ搭載される１以上の物理スロットと、
１以上の仮想計算機を管理し物理ＩＯデバイスに対応する仮想ＩＯデバイスを仮想計算機に割り当てる仮想化機構と
を有し、
前記仮想化機構は、
（Ａ）第１の時点での物理スロットと物理ＩＯデバイスとの対応関係に基づいて前記第１の時点での各物理ＩＯデバイスについて決定された物理ＩＯデバイス識別子を含む情報である物理管理情報を生成し、
（Ｂ）前記第１の時点よりも過去の第２の時点での仮想計算機と物理ＩＯデバイスの物理ＩＯデバイス識別子との対応関係を表す情報である論理管理情報に、前記物理管理情報中の物理ＩＯデバイス識別子に適合する物理ＩＯデバイス識別子が含まれているか否かを判断し、
（Ｃ）前記（Ｂ）の判断の結果が否定的の場合、前記論理管理情報から不適合の物理ＩＯデバイス識別子を削除し、
（Ｄ）前記（Ｂ）の判断の結果が肯定的の場合、前記論理管理情報における仮想計算機と物理ＩＯデバイス識別子との対応関係を維持する、
計算機。
【請求項２】
前記物理管理情報及び前記論理管理情報は、それぞれ、物理ＩＯデバイスについて、その物理ＩＯデバイスを有する物理ＩＯインタフェイスの種類であるデバイス種類を表す情報を含み、
前記（Ｂ）の判断の結果が肯定的の場合、前記仮想化機構は、前記物理管理情報について適合した物理ＩＯデバイス識別子に対応するデバイス種類と、前記論理管理情報について適合した物理ＩＯデバイス識別子に対応するデバイス種類とが互いに適合するか否かを判断し、その判断の結果が肯定的の場合に、前記（Ｄ）の処理を行う、
請求項１記載の計算機。
【請求項３】
前記物理ＩＯデバイス識別子は、その物理ＩＯデバイス識別子に対応する物理ＩＯデバイスの番号と、その物理ＩＯデバイスを有する物理ＩＯインタフェイスが搭載されている物理スロットの番号とに基づく値である、
請求項２記載の計算機。
【請求項４】
前記第２の時点は、前記計算機の再起動前であり、
前記第１の時点は、前記計算機の再起動後である、
請求項３記載の計算機。
【請求項５】
前記第２の時点は、前記計算機が稼働している間における前記物理ＩＯインタフェイスの交換前の時点であり、
前記第１の時点は、前記第１の時点から稼働したままの前記計算機において前記物理ＩＯインタフェイスを新たな物理ＩＯインタフェイスに交換した後の時点である、
請求項３記載の計算機。
【請求項６】
第１の物理計算機と、
第２の物理計算機と
を有し、
前記第１及び第２の物理計算機が、それぞれ、
複数の物理ＩＯデバイスを有する１以上の物理ＩＯインタフェイスがそれぞれ搭載される１以上の物理スロットと、
１以上の仮想計算機を管理し物理ＩＯデバイスに対応する仮想ＩＯデバイスを仮想計算機に割り当てる仮想化機構と
を有し、
前記第２の物理計算機の仮想化機構は、
（Ａ）第１の時点での前記第２の物理計算機における物理スロットと物理ＩＯデバイスとの対応関係に基づいて前記第１の時点での各物理ＩＯデバイスについて決定された物理ＩＯデバイス識別子を含む情報である物理管理情報を生成し、
（Ｂ）前記第１の時点より過去の第２の時点での前記第１の仮想計算機における仮想計算機と物理ＩＯデバイスの物理ＩＯデバイス識別子との対応関係を表す情報である論理管理情報に、前記物理管理情報中の物理ＩＯデバイス識別子に適合する物理ＩＯデバイス識別子が含まれているか否かを判断し、
（Ｃ）前記（Ｂ）の判断の結果が否定的の場合、前記論理管理情報から不適合の物理ＩＯデバイス識別子を削除し、
（Ｄ）前記（Ｂ）の判断の結果が肯定的の場合、前記論理管理情報における仮想計算機と物理ＩＯデバイス識別子との対応関係を維持する、
計算機システム。
【請求項７】
前記物理管理情報及び前記論理管理情報は、それぞれ、物理ＩＯデバイスについて、その物理ＩＯデバイスを有する物理ＩＯインタフェイスの種類であるデバイス種類を表す情報を含み、
前記（Ｂ）の判断の結果が肯定的の場合、前記第２の物理計算機の仮想化機構は、前記物理管理情報について適合した物理ＩＯデバイス識別子に対応するデバイス種類と、前記論理管理情報について適合した物理ＩＯデバイス識別子に対応するデバイス種類とが互いに適合するか否かを判断し、その判断の結果が肯定的の場合に、前記（Ｄ）の処理を行う、
請求項６記載の計算機システム。
【請求項８】
前記物理ＩＯデバイス識別子は、その物理ＩＯデバイス識別子に対応する物理ＩＯデバイスの番号と、その物理ＩＯデバイスを有する物理ＩＯインタフェイスが搭載されている物理スロットの番号とに基づく値である、
請求項７記載の計算機システム。
【請求項９】
前記第２の時点は、前記第１の物理計算機が現用の物理計算機であるときに前記第１の物理計算機で障害が発生した時点であり、
前記第１の時点は、前記障害発生を契機に前記第１の物理計算機から予備用の物理計算機であった前記第２の物理計算機に現用の物理計算機が切り替わったときの時点である、
請求項８記載の計算機システム。
【請求項１０】
複数の物理ＩＯデバイスを有する１以上の物理ＩＯインタフェイスがそれぞれ搭載される１以上の物理スロットと、１以上の仮想計算機を管理し物理ＩＯデバイスに対応する仮想ＩＯデバイスを仮想計算機に割り当てる仮想化機構とを有する１以上の計算機を備えた計算機システムで行われる方法であって、
（Ａ）第１の時点での物理スロットと物理ＩＯデバイスとの対応関係に基づいて前記第１の時点での各物理ＩＯデバイスについて決定された物理ＩＯデバイス識別子を含む情報である物理管理情報を生成し、
（Ｂ）前記第１の時点より過去の第２の時点での仮想計算機と物理ＩＯデバイスの物理ＩＯデバイス識別子との対応関係を表す情報である論理管理情報に、前記物理管理情報中の物理ＩＯデバイス識別子に適合する物理ＩＯデバイス識別子が含まれているか否かを判断し、
（Ｃ）前記（Ｂ）の判断の結果が否定的の場合、前記論理管理情報から不適合の物理ＩＯデバイス識別子を削除し、
（Ｄ）前記（Ｂ）の判断の結果が肯定的の場合、前記論理管理情報における仮想計算機と物理ＩＯデバイス識別子との対応関係を維持する、
ＩＯデバイス構成の引き継ぎ方法。
【請求項１１】
前記物理管理情報及び前記論理管理情報は、それぞれ、物理ＩＯデバイスについて、その物理ＩＯデバイスを有する物理ＩＯインタフェイスの種類であるデバイス種類を表す情報を含み、
前記（Ｂ）の判断の結果が肯定的の場合、前記物理管理情報について適合した物理ＩＯデバイス識別子に対応するデバイス種類と、前記論理管理情報について適合した物理ＩＯデバイス識別子に対応するデバイス種類とが互いに適合するか否かを判断し、その判断の結果が肯定的の場合に、前記（Ｄ）の処理を行う、
請求項１０記載の方法。
【請求項１２】
前記物理ＩＯデバイス識別子は、その物理ＩＯデバイス識別子に対応する物理ＩＯデバイスの番号と、その物理ＩＯデバイスを有する物理ＩＯインタフェイスが搭載されている物理スロットの番号とに基づく値である、
請求項１１記載の方法。
【請求項１３】
前記第２の時点は、前記計算機の再起動前であり、
前記第１の時点は、前記計算機の再起動後である、
請求項１２記載の方法。
【請求項１４】
前記第２の時点は、前記計算機が稼働している間における前記物理ＩＯインタフェイスの交換前の時点であり、
前記第１の時点は、前記第１の時点から稼働したままの前記計算機において前記物理ＩＯインタフェイスを新たな物理ＩＯインタフェイスに交換した後の時点である、
請求項１２記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機へのＩＯデバイスの割り当てに関する。
【背景技術】
【０００２】
ハイパバイザのような仮想化機構により物理資源(ＣＰＵ（Central Processing
Unit）、主記憶装置、及びＩＯ(Input Output)デバイス等)を複数の仮想計算機であるＬＰＡＲ(Logical Partition)として論理的に分割し、各ＬＰＡＲ上でそれぞれＯＳ（Operating System）を動作させる技術が知られている。一般的に、この各ＬＰＡＲ上で動作するＯＳは、ゲストＯＳと呼ばれている。
【０００３】
ゲストＯＳは、論理的には一般のＯＳと同様に動作する。従って、ゲストＯＳは、ＬＰＡＲに割当てたＩＯデバイスを、通常のＩＯデバイスとして認識することができる。
【０００４】
この種の技術として、例えば、特開２００８−０９７２７６号（特許文献１）に開示の技術がある。特許文献１には、現用の計算機（例えば、サーバ）と予備用の計算機（例えば、サーバ）とで、ハードウェアの構成、及びネットワークの接続先等が異なる事が記載されている。このような場合、ＯＳ、ソフトウェア、ハードウェア、及びネットワークに依存する設定が、現用の計算機と予備用の計算機とでは一致しない。
【０００５】
現用の計算機で障害が起きた場合、現用の計算機から予備用の計算機に切り替えてシステムを稼働させることが望まれる。しかし、上記のように現用の計算機と予備用の計算機とでＯＳ及びソフトウェア等に依存する設定が一致しない場合、予備用の計算機でＯＳやソフトウェアが正常に動作せずに、現用の計算機で稼動していた業務を完全に回復できない場合がある（特許文献１：段落０００４参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−０９７２７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
計算機が有する物理資源の一つであるＰＣＩ（Peripheral Component Interconnect）スロットに物理ＩＯインタフェイス（例えば、ＮＩＣ（Network Interface Card））が搭載される。ＰＣＩスロットに搭載されている物理ＩＯインタフェイスが型名の異なる物理ＩＯインタフェイスに取り換えられた場合、物理ＩＯインタフェイスの種類（例えば、クラス（例えば、基本クラスとサブクラスの組合せ））が同じであっても、ＩＯデバイスのデバイス識別子(例えば、Vendor ID、 Device ID、 Sub System IDの組み合わせ)が、物理ＩＯインタフェイスの取り換え前と取り換え後で変化する。ここで、ＩＯデバイスとは、計算機で実行されるＯＳが認識する物理ＩＯインタフェイス上のコントローラ（例えば、ＣＰＵ（Central Processing Unit）及びメモリ等を有するデバイス）である。
【０００８】
ハイパバイザを有する計算機システムでは、ハイパバイザが各ＬＰＡＲに対する物理資源（ＣＰＵ、メモリ、及びＰＣＩスロットに格納されている物理ＩＯインタフェイス等）の割当て等を、ＰＣＩ（Peripheral Components Interconnect）構成情報として管理している。ＰＣＩ構成情報は、計算機（物理計算機）上に存在する物理的なデバイス(ＣＰＵ、主記憶装置、ＩＯデバイスなど)の固有情報を保持した構成情報である。
【０００９】
ＰＣＩ構成情報は、ＰＣＩスロット毎に存在し、各ＰＣＩ構成情報には、例えば、各ＰＣＩスロットに実装されている記憶領域（例えばＰＣＩコンフィグレーション空間レジスタ）から取得したデバイス識別子(Vendor ID, Device ID, Sub System IDの組合せ)や、ＩＯデバイスのＬＡＰＲへの割り当て情報が含まれている。
【００１０】
物理ＩＯインタフェイスの交換によって、取り換え前の物理ＩＯインタフェイス上のＩＯデバイスのＰＣＩ構成情報が削除されると、削除されたＰＣＩ構成情報に関連があるＬＰＡＲへの物理資源の割り当て情報も削除される。
【００１１】
そのため、ユーザは、物理ＩＯインタフェイスの取り換え後に、取り換え後の物理ＩＯインタフェイス上のＩＯデバイスを各ＬＰＡＲに対して再度割り当てる（具体的には、例えば、取り換え後の物理ＩＯインタフェイス上のＩＯデバイスのＰＣＩ構成情報にＬＰＡＲへの割当て情報を再度設定する）必要があり、手間がかかる。
【００１２】
この問題は、仮想化機構を有する現用の計算機から仮想化機構を有する予備用の計算機への切り替えについても起こり得る。例えば、現用の計算機に障害が発生した場合、現用の計算機の仮想化機構が管理していたＰＣＩ構成情報は無くなるため、ユーザは、現用の計算機で稼動していた業務を予備用の計算機で実現させるために、予備用の計算機の計算機資源を予備用の計算機の各ＬＰＡＲに対して再度設定する必要がある。
【００１３】
そこで、本発明の目的は、仮想計算機へのＩＯデバイス割り当ての手間を削減することにある。
【課題を解決するための手段】
【００１４】
計算機は、複数の物理ＩＯデバイスを有する１以上の物理ＩＯインタフェイスがそれぞれ搭載される１以上の物理スロットと、１以上の仮想計算機を管理し物理ＩＯデバイスに対応する仮想ＩＯデバイスを仮想計算機に割り当てる仮想化機構とを有する。
【００１５】
仮想化機構は、
（Ａ）第１の時点での物理スロットと物理ＩＯデバイスとの対応関係に基づいて第１の時点での各物理ＩＯデバイスについて決定された物理ＩＯデバイス識別子を含む情報である物理管理情報を生成し、
（Ｂ）第１の時点よりも過去の第２の時点での仮想計算機と物理ＩＯデバイスの物理ＩＯデバイス識別子との対応関係を表す情報である論理管理情報に、物理管理情報中の物理ＩＯデバイス識別子に適合する物理ＩＯデバイス識別子が含まれているか否かを判断し、
（Ｃ）（Ｂ）の判断の結果が否定的の場合、論理管理情報から不適合の物理ＩＯデバイス識別子を削除し、
（Ｄ）（Ｂ）の判断の結果が肯定的の場合、論理管理情報における仮想計算機と物理ＩＯデバイス識別子との対応関係を維持する。
【発明の効果】
【００１６】
仮想計算機へのＩＯデバイス割り当ての手間を削減することができる。
【図面の簡単な説明】
【００１７】
【図１】図1は、実施例１に係る計算機１の構成例を示す。
【図２】図２は、物理ＰＣＩスロット管理テーブル１１７を示す。
【図３】図３は、論理ＰＣＩスロット管理テーブル１１５、１１６を示す。
【図４】図４は、非稼働時に物理ＩＯインタフェイスを交換し、交換した後に計算機１を再稼働させた時の構成を示す。
【図５】図５は、図４の計算機１における物理ＰＣＩスロット管理テーブル４１７を示す。
【図６】図６は、図４の論理ＰＣＩスロット管理テーブル４１５、４１６を示す。
【図７】図７は、計算機１の再起動時におけるＰＣＩスロットマネージャ４１４による仮想ＩＯデバイスの構成を引き継ぐ処理の一例を示す。
【図８】図８は、実施例２に係る、仮想ＩＯデバイスの構成の引き継ぎ処理の一例を示す。
【図９】図９は、実施例３に係る計算機システム３０の構成例を示す。
【図１０】図１０は、実施例３における仮想ＩＯデバイス構成の引き継ぎ処理の一例を示す。
【発明を実施するための形態】
【００１８】
以下、図面を用いて実施例を説明する。
【実施例１】
【００１９】
図１は、実施例１に係る計算機１の構成例を示す。
【００２０】
計算機１は、物理資源１１８を有している。物理資源１１８とは、例えば、複数（又は１つ）の物理ＰＣＩスロット（物理ＰＣＩスロット＃０、物理ＰＣＩスロット＃１…物理ＰＣＩスロット＃ｎ）、ＣＰＵ（Central Processing Unit）１３０、及びメモリ１３１を示す。
【００２１】
メモリ１３１には、ハイパバイザ１１３が記憶される。ＣＰＵ１３０がハイパバイザ１１３を実行することにより、物理資源１１８（物理ＩＯインタフェイス１２２、１２５、ＣＰＵ１３０、及びメモリ１３１等）の全部又は一部分が論理的に分割され、それぞれ、仮想計算機（ＬＰＡＲ(Logical Partition)＃１  １０１とＬＰＡＲ＃２  １０２）として動作する。仮想計算機は１つでも良い。
【００２２】
記憶部１２８がある。記憶部１２８は、計算機１に含まれている記憶装置であっても良いし、計算機１の外部に存在する記憶装置であっても良い。記憶部１２８は、例えば磁気記憶装置（例えば、ＨＤＤ（Hard Disk Drive））、及び／又は半導体記憶装置（例えば、ＵＳＢ（Universal Serial Bus）メモリ）である。記憶部１２８には、例えば、ユーザの指示により、メモリ１３１に格納されている情報の一部である論理ＰＣＩスロット管理テーブル１１５、１１６、及びシステム構成情報１３２が格納される。
【００２３】
メモリ１３１には、ハイパバイザ１１３を含む各種プログラムを記憶される。ＬＰＡＲ＃１  １０１とＬＰＡＲ＃２  １０２には、それぞれ、ハイパバイザ１１３によって分割された物理資源１１８（物理ＩＯインタフェイス１２２、１２５、ＣＰＵ１３０、及びメモリ１３１等）が割り当てられ、仮想計算機として動作する。ここで、物理ＩＯインタフェイスとは、物理的な通信インタフェイスデバイスであって、例えば、物理資源１１８の物理ＰＣＩ（Peripheral Components Interconnect）スロットに搭載される。物理インタフェイスは、例えば、物理ポートを備えたＰＣＩカード、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩe）カード、ＮＩＣ（Network
Interface Card）又はＦＣ（Fibre Channel）カード（ホストバスアダプタ）である。
【００２４】
例えば、図では、複数の物理ＰＣＩスロット（１１９、１２０、１２１）のうち、物理ＰＣＩスロット＃０  １１９には、２つの物理ポート（ポート＃０  １２３、ポート＃１  １２４）を有する物理ＮＩＣ（Network Interface Card）１２２が搭載されており、物理ＰＣＩスロット＃１  １２０には、２つの物理ポート（ポート＃０  １２６、ポート＃１  １２７）を有する物理ＦＣカードが搭載されている。
【００２５】
ハイパバイザ１１３が、物理ＩＯインタフェイス１２２を、ＬＰＡＲ＃１  １０１、及び、ＬＰＡＲ＃２  １０２に対して、物理ポート単位で割り当てている。
【００２６】
ＬＰＡＲ＃１  １０１は、複数の論理ＰＣＩスロット（論理ＰＣＩスロット＃０  １０３、論理ＰＣＩスロット＃１  １０４…論理ＰＣＩスロット＃ｎ  １０５）を有している。また、ＬＰＡＲ＃２  １０２も、複数の論理ＰＣＩスロット（論理ＰＣＩスロット＃０  １０８、論理ＰＣＩスロット＃１  １０９…論理ＰＣＩスロット＃ｎ  １１０）を有している。各論理ＰＣＩスロットは、１つの仮想Ｉ／Ｏインタフェイス（仮想ポート）を有しており、ハイパバイザ１１３により、この１つの仮想Ｉ／Ｏインタフェイス（仮想ポート）に物理ＩＯインタフェイスから１つの物理ポートが割り当てられている。具体的には、下記の通りである。
【００２７】
〜ＬＰＡＲ＃１  １０１への物理Ｉ／Ｏインタフェイスの割り当て〜
（＊）論理ＰＣＩスロット＃０  １０３に仮想ＮＩＣ１０６が仮想的に搭載されている。
（＊）論理ＰＣＩスロット＃１  １０４に仮想ＦＣカード１０７が仮想的に搭載されている。
（＊）仮想ＮＩＣ１０６（仮想ポート）には、物理ＰＣＩスロット＃０  １１９に搭載されている物理ＩＯインタフェイス１２２の物理ポート＃０  １２３が割り当てられている。
（＊）仮想ＦＣカード１０７（仮想ポート）には、物理ＰＣＩスロット＃１  １２０に搭載されている物理ＦＣカード１２５の物理ポート＃０  １２６が割り当てられている。
【００２８】
〜ＬＰＡＲ＃２  １０２への物理Ｉ／Ｏインタフェイスの割り当て〜
（＊）論理ＰＣＩスロット＃０  １０８に仮想ＮＩＣ１１１が仮想的に搭載されている。
（＊）論理ＰＣＩスロット＃１  １０９に仮想ＦＣカード１１２が仮想的に搭載されている。
（＊）仮想ＮＩＣ１１１（仮想ポート）には、物理ＰＣＩスロット＃０  １１９に搭載されている物理ＩＯインタフェイス１２２の物理ポート＃１  １２４が割り当てられている。
（＊）仮想ＦＣカード１１２（仮想ポート）には、物理ＰＣＩスロット＃１  １２０に搭載されている物理ＦＣカード１２５の物理ポート＃１  １２７が割り当てられている。
【００２９】
次にハイパバイザ１１３の構成を説明する。
【００３０】
ハイパバイザ１１３は、ＰＣＩスロットマネージャ１１４、ＰＣＩ構成情報１２９及びシステム構成情報１３２を有する。
【００３１】
ＰＣＩスロットマネージャ１１４は、物理ＰＣＩスロット管理テーブル１１７、及び論理ＰＣＩスロット管理テーブル（１１５、１１６）を有している。
【００３２】
物理ＰＣＩスロット管理テーブル１１７は、システム起動時に、ＰＣＩスロットマネージャ１１４によって、ＰＣＩ構成情報１２９から取得した情報を基に生成される。物理ＰＣＩスロット管理テーブル１１７は、物理ＰＣＩスロット（１１９、１２０）に搭載された物理ＩＯインタフェイス（物理ＮＩＣ１２２、物理ＦＣカード１２５）の物理ＩＯデバイス（物理ポート）（物理ポート１２３、１２４、１２６、１２７）を管理している。
【００３３】
また、物理ＰＣＩスロット管理テーブル１１７が有する情報は、物理ＩＯデバイスの一覧情報として表示されても良い。ユーザは、図示しない入力装置を操作して、その物理ＩＯデバイスの一覧情報から物理ＩＯデバイス（物理ポート１２３、１２４、１２６、１２７）を選択し、各ＬＰＡＲの仮想ポート１０６、１０７、１１１、１１２に割り当てることができる。
【００３４】
論理ＰＣＩスロット管理テーブル１１５，１１６は、ＬＰＡＲ１０１、１０２毎に存在し、各ＬＰＡＲの生成を契機にＰＣＩスロットマネージャ１１４によって生成される。論理ＰＣＩスロット管理テーブル１１５，１１６により、ＬＰＡＲ１０１、１０２に割り当てられた仮想ＩＯデバイス（仮想ポート）が管理される。
【００３５】
また、論理ＰＣＩスロット管理テーブル１１５，１１６は、ユーザの指示によって記憶部１２８へ保存される。システム再起動時には、ＰＣＩスロットマネージャ１１４により記憶部１２８からメモリ１３１に論理ＰＣＩスロット管理テーブル１１５，１１６が読み込まれ、システム再起動前にユーザがＬＰＡＲ１０１、１０２に対して割り当てた仮想ＩＯデバイスを特定することができる。
【００３６】
記憶部１２８には、論理ＰＣＩスロット管理テーブル１１５、１１６に加えて、システム構成情報１３２も保存され、システム再起動時に、論理ＰＣＩスロット管理テーブル１１５、１１６と同様に、ＰＣＩスロットマネージャ１１４により記憶部１２８からシステム構成情報１３２がメモリ１３１に読み込まれる。
【００３７】
次に、ＰＣＩ構成情報１２９及びシステム構成情報１３２を説明する。
【００３８】
ＰＣＩ構成情報１２９は、ハイパバイザ１１３の起動時に、ハイパバイザ１１３が、ハイパバイザ１１３起動時における物理資源１１８の構成に基づいて作成する。具体的に、例えば、ＰＣＩ構成情報１２９は、物理資源１１８に存在する物理的なデバイス(ＣＰＵ、メモリ、ＩＯデバイスなど)の固有情報に基づく構成情報である。
【００３９】
ＰＣＩ構成情報１２９は、物理ＰＣＩスロット毎に存在する。ＰＣＩ構成情報１２９には、ＰＣＩ構成情報１２９に対応する物理ＰＣＩスロットに実装されている記憶領域（典型的には、ＰＣＩコンフィグレーション空間レジスタ）から取得したデバイス識別子(例えば、Vendor ID, Device
ID,及びSub System IDの組合せ)と、デバイスの種類を識別するクラスコード(基本クラス、サブクラス)とが含まれている。また、ＰＣＩ構成情報１２９には、物理ＩＯデバイスの各ＬＰＡＲ１０１、１０２への割り当て情報も含まれている。つまり、本実施例では、物理ＩＯデバイスの型名は、デバイス識別子に相当し、物理ＩＯインタフェイスの種類は、クラス（クラスコード）に相当する。
【００４０】
システム構成情報１３２は、ハイパバイザ１１３起動時に、ハイパバイザ１１３によって記憶部１２８から取得される情報である。システム構成情報１３２は、計算機の構成に関する情報であり、各ＬＰＡＲ１０１、１０２の生成情報（例えば、物理資源１１８の物理Ｉ／Ｏデバイス（物理ポート）以外の割り当て情報等の情報）を含んでいる。
【００４１】
図２は、物理ＰＣＩスロット管理テーブル１１７を示す。
【００４２】
物理ＰＣＩスロット管理テーブル１１７は、物理ＩＯインタフェイスが有する物理ポート（物理ＩＯデバイス）に関する情報を有する。
【００４３】
本テーブル１１７は、物理ＩＯデバイス（物理ポート）毎に、物理ＩＯデバイス識別子２０１、物理ＰＣＩスロット番号２０２、物理ＩＯデバイスの物理ポート番号２０３、基本クラス２０４及びサブクラス２０５を含む。
【００４４】
物理ＩＯデバイス識別子２０１は、物理ＩＯデバイスを一意に識別するための情報である。物理ＰＣＩスロット番号２０２は、その物理ＩＯデバイスが搭載されている物理ＰＣＩスロット番号２０２を示す情報である。物理ＩＯデバイスの物理ポート番号２０３は、物理ＩＯデバイスが有する物理ポートを識別するための情報である。基本クラス２０４及びサブクラス２０５は、物理ＩＯデバイスの種類を識別するための情報である。
【００４５】
基本クラス２０４は、物理ＩＯデバイスの種類の大分類を示す識別子である。サブクラスは、同じ基本クラスに属するデバイスをさらに細かく分類する識別子である。例えばイーサネット（登録商標）を摘要した物理Ｉ／Ｏデバイスであれば、基本クラスは0x02（ネットワークコントローラ）、サブクラスは0x00(イーサネット)となる。またＦＣを利用した物理ＩＯデバイスの場合は、基本クラスは0x0C(シリアル周辺バスのコントローラ)、サブクラスは0x04(FC)となる。
【００４６】
物理ＩＯデバイス識別子２０１は、同じ物理ＰＣＩスロット（１１９〜１２１）に搭載されている物理ＩＯインタフェイスが有する物理ＩＯデバイス（１２３、１２４、１２６、１２７）を識別できるように、物理ＰＣＩスロット番号２０２、物理ポート番号２０３、及び係数に基づいて算出される。これにより、物理ＰＣＩスロット番号２０２によって識別されるＰＣＩスロットに搭載されている物理ＩＯインタフェイスの物理ＩＯデバイスを、一意に特定することができる。具体的には、例えば、物理ＩＯデバイス識別子２０１には、
物理ＩＯデバイス識別子２０１  ＝  物理ＰＣＩスロット番号２０２  ×  係数  ＋  物理ポート番号２０３
で算出した値が設定される。ここで、本実施例では、係数を１００としているが係数はこの値に限定されない。係数は、一つの物理ＰＣＩスロット（１１９〜１２１）で対応可能なポート数が増加したときに物理ＩＯデバイス識別子が重複しないように、十分大きな値にしておくと良い。なお、物理ＩＯデバイス識別子の決定方法は上記計算式で算出する方法に限られないが、同一物理ＰＣＩスロット番号のＰＣＩスロットに搭載された物理ＩＯインタフェイスの同一ポート番号の物理ポートには同一の物理ＩＯデバイス識別子が付与されるような決定方法であることが望ましい。物理ＩＯインタフェイスの交換前後において同一の物理ＩＯデバイス識別子が得られるようにするためである。すなわち、従来の方式では、物理ＩＯデバイスの識別情報として、Vendor ID、 Device ID、 Sub System IDの組み合わせのようなデバイス識別子（すなわち、物理ＩＯインタフェイスが異なっていれば同一のＰＣＩスロットに搭載されても値が異なっている識別子）が採用されているが、本実施例では、そのようなデバイス識別子がＬＰＡＲへの割り当ての際に物理ＩＯデバイスの識別情報として採用されておらず、物理ＩＯデバイス識別子が、採用されている。
【００４７】
本テーブル１１７の情報２０２、２０３、２０４、２０５は、ＰＣＩスロットマネージャ１１４が、ＰＣＩ構成情報１２９から取得して設定する。ＰＣＩスロットマネージャ１１４は、取得した情報２０２、２０３及び所定の係数により、物理ＩＯデバイス識別子２０１を算出する。
【００４８】
図３は、論理ＰＣＩスロット管理テーブル１１５、１１６を示す。
【００４９】
論理ＰＣＩスロット管理テーブル１１５、１１６は、それぞれ、論理ＰＣＩスロット番号毎に、論理ＰＣＩスロット番号３０１、３１１、物理ＩＯデバイス識別子３０２、３１２、基本クラス３０３、３１３とサブクラス３０４、３１４を有する。
【００５０】
論理ＰＣＩスロット番号３０１、３１１は、各ＬＰＡＲ１０１、１０２に割り当てられた論理ＰＣＩスロットを識別する情報である。物理ＩＯデバイス識別子３０２、３１２は、論理ＰＣＩスロットに割り当てられた仮想ＩＯデバイスに対応する物理ＩＯデバイスを識別するための情報である。基本クラス３０３、３１３とサブクラス３０４、３１４は、仮想ＩＯデバイスの種類を識別するための情報である。
【００５１】
ＬＰＡＲ１０１が仮想ＩＯデバイス（仮想ポート）を通じて物理計算機１の外部（例えば、物理計算機１の外部のストレージ装置が有する論理ボリューム）にアクセスする場合、
ハイパバイザ１１３が、ＬＰＡＲ１０１に対応する論理ＰＣＩ管理テーブルを基に、ＬＰＡＲ１０１が使用する論理ＰＣＩスロットに対応する物理ＩＯデバイスを特定し、ＬＰＡＲ１０１は、ハイパバイザ１１３に特定された物理ＩＯデバイスを通じてアクセスを行うことができる。
【００５２】
次に、図２及び３を参照して、本実施例に係るハイパバイザ１１３の構成を具体的に説明する。
【００５３】
ＬＰＡＲ＃１  １０１の論理ＰＣＩスロット管理テーブル１１５では、論理ＰＣＩスロット番号３０１に論理ＩＯデバイス識別子「０」及び「１」、物理ＩＯデバイス識別子３０２に物理ＩＯデバイス識別子「０」及び「１００」が登録されている。
【００５４】
即ち、ＬＰＡＲ＃１  １０１では、物理ＰＣＩスロット管理テーブル１１７が管理する物理ＩＯデバイスのうち、物理ＩＯデバイス識別子２０１が「０」の物理ＩＯデバイス（物理ポート番号２０３が「０」）と、物理ＩＯデバイス識別子２０１が「１００」の物理ＩＯデバイス（物理ポート番号２０３が「０」）が割当たっている。
【００５５】
より具体的には、論理ＰＣＩスロット番号が「０」の論理スロットに、物理ＩＯデバイス識別子２０１が「０」の物理ＩＯデバイスが割り当てられ、論理ＰＣＩスロット番号が「１」の論理スロットに、２０１が「１００」の物理ＩＯデバイスが割り当てられている。
【００５６】
ＬＰＡＲ＃２  １０２の論理ＰＣＩスロット管理テーブル１１６では、論理ＰＣＩスロット番号３１１に論理ＰＣＩスロット番号「０」及び「１」、物理ＩＯデバイス識別子３１２に物理ＩＯデバイス識別子「１」及び「１０１」が登録されている。
【００５７】
即ち、ＬＰＡＲ＃２  １０２には、物理ＰＣＩスロット管理テーブル１１７が管理する物理ＩＯデバイスのうち、物理ＩＯデバイス識別子２０１が「１」の物理ＩＯデバイス（物理ポート番号２０３が「１」）と、物理ＩＯデバイス識別子２０１が「１０１」の物理ＩＯデバイス（物理ポート番号２０３が「１」）が割り当たっている。
【００５８】
より具体的には、論理ＰＣＩスロット番号が「０」の論理スロットに、物理ＩＯデバイス識別子２０１が「１」の物理ＩＯデバイスが割り当てられ、論理ＰＣＩスロット番号が「１」の論理スロットに、物理ＩＯデバイス識別子２０１が「１０１」の物理ＩＯデバイスが割り当てられている。
【００５９】
さて、従来の方式では、物理資源１１８の物理ＰＣＩスロット１１９〜１２１に搭載された物理ＩＯインタフェイス１２２、１２５を、型名（デバイス識別子（例えば、Vendor ID, Device ID,及びSub System IDの組み合わせ）が異なる物理ＩＯインタフェイスに取り換えた場合、取り換えた物理ＩＯインタフェイスが同じ種類（クラス（基本クラス２０４及びサブクラス２０５の組合せ））であっても、ＬＰＡＲ＃１  １０１、＃２  １０２に対する仮想ポート１０６、１０７の割り当ては解除されてしまう。具体的には、例えば、図１の物理ＰＣＩスロット＃０  １１９の物理ＮＩＣ１２２を、デバイス識別子が異なる物理ＮＩＣに交換した場合、従来の方式では、ＬＰＡＲ＃１  １０１の論理ＰＣＩスロット＃０  １０３に割り当てられていた仮想ＮＩＣ１０６、及びＬＰＡＲ＃２  １０２の論理ＰＣＩスロット＃０  １０８に割り当てられた仮想ＮＩＣ１１１は、システム再起動後には、割り当てが解除されてしまう。
【００６０】
これに対して、本実施例では、例えば、型名が異なるＩＯインタフェイスに交換した場合でも、交換前の物理ＩＯインタフェイスと交換後の物理ＩＯインタフェイスの種類が同じであれば、システム再起動後も、各ＬＰＡＲ＃１  １０１．＃２  １０２に割り当たっていた仮想ＩＯデバイスに対する交換前の物理ＩＯインタフェイスの割り当て情報を、交換後の物理ＩＯインタフェイスが引き継ぐことが可能となる。
【００６１】
また、交換前の物理ＩＯインタフェイスと交換後の物理ＩＯインタフェイスの種類が同じであれば、物理ＩＯインタフェイスを交換した後に、交換後の物理ＩＯインタフェイスの物理ポートの数が、交換前の物理ＩＯインタフェイスの物理ポートの数に比べて少なくなった場合でも、交換後の物理ＩＯインタフェイスに存在する物理ポートのみ、その物理ポートの各ＬＰＡＲ＃１  １０１、＃２  １０２の仮想ＩＯデバイスへの割り当て情報を引き継ぐことができる。
【００６２】
以下、本実施例の構成において、物理ＰＣＩスロットに搭載された物理ＩＯインタフェイスを、型名の異なる物理ＩＯインタフェイスに取り換えた場合について説明する。
【００６３】
図４は、非稼働時に物理ＩＯインタフェイスを交換し、交換した後に計算機１を再稼働させた時の構成を示す。
【００６４】
具体的には、図４は、計算機１の非稼働時に、物理ＰＣＩスロット＃０  １１９に搭載されていた２つの物理ポート（１２３、１２４）を有する物理ＮＩＣ１２２を、４つの物理ポート（４０１１〜４０１４）を有する物理ＮＩＣ４０１へ交換し、且つ、物理スロット＃１  １２０に搭載されていた２つの物理ポート（１２６、１２７）を有する物理ＦＣカード１２５を、１つの物理ポート（４０２１）を有する物理ＦＣカード４０２へ交換した後に、計算機１を再稼働させた構成を示している。
【００６５】
ＬＰＡＲ＃１  １０１では、論理ＰＣＩスロット＃０  １０３に割り当てられている仮想ＮＩＣ１０６には物理ＮＩＣ４０１の物理ポート＃０４０１１が存在し、論理ＰＣＩスロット＃１  １０４に割り当てられている仮想ＦＣ１１７には、物理ＦＣ４０２の物理ポート＃０４０２１が存在するため、ＬＰＡＲ＃１  １０１における、論理ＰＣＩスロット（１０３、１０４）への仮想ＮＩＣ１０６、及び仮想ＦＣ１０７の割り当て情報は削除されずに、そのまま割当てられている。
【００６６】
ＬＰＡＲ＃２  １０２では、論理ＰＣＩスロット＃０  １０８に割り当てられている仮想ＮＩＣ１１１には物理ＮＩＣ４０１の物理ポート＃１  ４０１２が存在するため、ＬＰＡＲ＃２  １０２における、論理ＰＣＩスロット＃０  １０８への仮想ＮＩＣ１１１の割り当て情報は削除されずに、そのまま割当てられている。
【００６７】
しかし、論理ＰＣＩスロット＃１  １０９においては、再起動後に論理ＰＣＩスロット＃１  １０９に対応する物理ポートが物理資源１１８に存在しなくなったため、論理ＰＣＩスロット＃１  １０９に図１で割り当てられていた仮想ＦＣ１１２（点線枠で記載）の割り当てが解除される。
【００６８】
図５は、図４の計算機１における物理ＰＣＩスロット管理テーブル４１７を示す。
【００６９】
図５のテーブル４１７を図２の物理ＰＣＩスロット管理テーブル１１７と比較すると、図５のテーブル４１７には、物理ＩＯデバイス識別子５０１が「２」及び「３」の物理ＩＯデバイスが追加され（点線枠で記載）、且つ物理ＰＣＩスロット管理テーブル１１７に存在していた物理ＩＯデバイス識別子が「１０１」の物理ＩＯデバイスが存在しなくなっている。このようなテーブル更新は、ＰＣＩスロットマネージャ１１４によって行われる。
【００７０】
図６は、図４の計算機１における論理ＰＣＩスロット管理テーブル４１５、４１６を示す。
【００７１】
ＬＰＡＲ＃１  １０１に関する論理ＰＣＩスロット管理テーブル４１５の各エントリは、図３に示す論理ＰＣＩスロット管理テーブル１１５と変わりはない。しかし、ＬＰＡＲ＃２  １０２の論理ＰＣＩスロット管理テーブル４１６では、図３に示す論理ＰＣＩスロット管理テーブル１１６と比較すると、論理ＰＣＩスロット番号６１１が「１」の行には、論理ＰＣＩスロット番号３１１が「１」の行で管理されていた物理ＩＯデバイス識別子３１２、基本クラス３１３及びサブクラス３１４の値が存在しなくなっている（点線枠で記載）。このようなテーブル更新も、ＰＣＩスロットマネージャ１１４によって行われる。
【００７２】
図７は、計算機１の再起動時におけるＰＣＩスロットマネージャ４１４による仮想ＩＯデバイスの構成を引き継ぐ処理の一例を示す。
【００７３】
なお、本処理の前提条件として、図１に示す計算機１の構成に関する論理ＰＣＩスロット管理テーブル１１５、論理ＰＣＩスロット管理テーブル１１６及びシステム構成情報１３２が、記憶部１２８に保存されるものとする。
【００７４】
ステップ７０１では、計算機１の電源がＯＦＦの状態で、ユーザにより物理ＰＣＩスロット＃０  １１９に搭載されていた物理ＮＩＣ１２２が、４つの物理ポート４０１１〜４０１４を有する物理ＮＩＣ４０１へ交換され、物理ＰＣＩスロット＃１  １２０に搭載されていた物理ＦＣカード１２５が、１つの物理ポート４０２１のみを有する物理ＦＣ４０２カードに交換される。
【００７５】
ステップ７０２では、ステップ７０１の後、ユーザによって計算機１の電源が投入とされる。
【００７６】
ステップ７０３では、ステップ７０２の計算機１の電源投入を契機にハイパバイザ４１３が起動する。
【００７７】
ステップ７０４では、ステップ７０３のハイパバイザ４１３の起動の開始を契機、にハイパバイザ４１３の機能の一つであるＰＣＩスロットマネージャ４１４の動作が開始される。また、ハイパバイザ４１３の起動を契機に、ハイパバイザ４１３によりＰＣＩ構成情報４１８が形成される。
【００７８】
ステップ７０５では、ＰＣＩスロットマネージャ４１４は、ＰＣＩ構成情報４１８から物理ＰＣＩスロット１１９〜１２０に搭載されているＰＣＩカードが有する物理ＩＯデバイス（物理ポート）の情報を取得し、物理ＰＣＩスロット管理テーブル４１７を生成する。この物理ＰＣＩスロット管理テーブル４１７には、計算機１が再稼働した後の、物理ＰＣＩスロット１１９〜１２０に搭載されているＰＣＩカードに関する最新の情報が格納される。
【００７９】
ステップ７０６では、ＰＣＩスロットマネージャ４１４は、記憶部１２８からシステム構成情報１２８１を読み込み、システム構成情報１２８１に保持されているＬＰＡＲ＃１  １０１、＃２  １０２の生成情報からＬＰＡＲ＃１  １０１とＬＰＡＲ＃２  １０２を生成する。また、ＰＣＩスロットマネージャ４１４は、ＬＰＡＲ＃１  １０１の論理ＰＣＩスロット管理テーブル４１５、及びＬＰＡＲ＃２  １０２の論理ＰＣＩスロット管理テーブル４１６を生成する。
【００８０】
ここで、ＬＰＡＲ＃１  １０１の論理ＰＣＩスロット管理テーブル４１５、及びＬＰＡＲ＃２  １０２の論理ＰＣＩスロット管理テーブル４１６の生成とは、例えば、ＰＣＩスロットマネージャ４１４が、メモリ１３１上にテーブル４１５、４１６のための領域を確保してテーブル４１５、４１６を生成し、生成したテーブル４１５、４１６を初期化する作業のことである。
【００８１】
ステップ７０７では、ＰＣＩスロットマネージャ４１４は、計算機１が再稼働する前に記憶部１２８に保存された論理ＰＣＩスロット管理テーブル１１５と論理ＰＣＩスロット管理テーブル１１６を読み込み、ステップ７０６にて生成したＬＰＡＲ＃１  １０１の論理ＰＣＩスロット管理テーブル４１５とＬＰＡＲ＃２  １０２の論理ＰＣＩスロット管理テーブル４１６へそれぞれ反映する。これにより、ＬＰＡＲ＃１  １０１の論理ＰＣＩスロット管理テーブル４１５の内容は、計算機１が再稼働する前の論理ＰＣＩスロット管理テーブル１１５（図１参照）と同じ内容となり、また、ＬＰＡＲ＃２  １０２の論理ＰＣＩスロット管理テーブル４１６の内容は、計算機１が再稼働する前の論理ＰＣＩスロット管理テーブル１１６（図１参照）と同じ内容となる。
【００８２】
ステップ７０８では、ＰＣＩスロットマネージャ４１４は、計算機１が再稼働する前の論理ＰＣＩスロット管理テーブル４１５、４１６と、計算機１が再稼働した後の物理ＰＣＩスロット管理テーブル４１７とを比較する。具体的には、例えば、ＰＣＩスロットマネージャ４１４は、ＬＰＡＲ＃１  １０１の論理ＰＣＩスロット管理テーブル４１５の論理ＰＣＩスロット番号６０１に登録されている物理ＩＯデバイス識別子６０２と同じ物理ＩＯデバイス識別子５０１が、ステップ７０５にて生成された物理ＰＣＩスロット管理テーブル４１７に存在するか否か判定する。同様に、ＰＣＩスロットマネージャ４１４は、ＬＰＡＲ＃２  １０２の論理ＰＣＩスロット管理テーブル４１６の論理ＰＣＩスロット番号６１１に登録されている物理ＩＯデバイス識別子６１２と同じ物理ＩＯデバイス識別子５０１が、ステップ７０５にて生成された物理ＰＣＩスロット管理テーブル４１７に存在するか否か判定する。
【００８３】
ステップ７０８では、ＰＣＩスロットマネージャ４１４は、論理ＰＣＩスロット管理テーブル４１５、４１６の物理ＩＯデバイス識別子６０２、６１２と同じ物理ＩＯデバイス識別子５０１が物理ＰＣＩスロット管理テーブル４１７に存在すれば、それぞれの論理ＰＣＩスロット管理テーブル４１５、４１６の各論理ＰＣＩスロット番号６０１、６１１に登録されている物理ＩＯデバイス識別子６０２、６１２、基本クラス６０３、６１３、及びサブクラス６０４、６１４を引き継ぐ。一方、ＰＣＩスロットマネージャ４１４は、論理ＰＣＩスロット管理テーブル４１５、４１６の物理ＩＯデバイス識別子６０２、６１２と同じ物理ＩＯデバイス識別子５０１が物理ＰＣＩスロット管理テーブル４１７に存在しなければ、各論理ＰＣＩスロット番号６０１、６１１に登録されている物理ＩＯデバイス識別子６０２、６１２、基本クラス６０３、６１３、及びサブクラス６０４、６１４を削除する。
【００８４】
以下、ＬＰＡＲ＃１  １０１、ＬＰＡＲ＃２  １０２毎にステップ７０８の処理を説明する。
【００８５】
〜ＬＰＡＲ＃１  １０１〜について
ＬＰＡＲ＃１  １０１の論理ＰＣＩスロット管理テーブル４１５では、論理ＰＣＩスロット番号６０１「０」に登録されている、物理ＩＯデバイス識別子６０２が「０」の物理ＩＯデバイス、及び、論理ＰＣＩスロット番号６０１「１」に登録されている、物理ＩＯデバイス識別子６０２が「１００」の物理ＩＯデバイスが、物理ＰＣＩスロット管理テーブル４１７に存在している。従って、ＰＣＩスロットマネージャ４１４は、論理ＰＣＩスロット番号６０１が「０」の論理ＰＣＩスロットに割当てていた仮想ＮＩＣ１０６に関する情報（６０２〜６０４）をそのまま引き継ぎ、且つ、論理ＰＣＩスロット番号６０１が「１」の論理ＰＣＩスロットに割り当てていた仮想ＦＣ１０７に関する情報（６０２〜６０４）をそのまま引き継ぐ
【００８６】
〜ＬＰＡＲ＃２  １０２〜について
ＬＰＡＲ＃２  １０２の論理ＰＣＩスロット管理テーブル４１６では、論理ＰＣＩスロット番号６１１が「０」に登録されている物理ＩＯデバイス識別子６１２が「１」の物理ＩＯデバイスは物理ＰＣＩスロット管理テーブル４１７に存在しているが、論理ＰＣＩスロット番号６１１「１」には、物理ＩＯデバイス識別子６１２が登録されていない。従って、ＰＣＩスロットマネージャ４１４は、論理ＰＣＩスロット番号６１１が「０」の論理ＰＣＩスロットに割当てていた仮想ＮＩＣ１１１に関する情報（６１２〜６１４）をそのまま引き継ぐが、論理ＰＣＩスロット番号６１１が「１」の論理ＰＣＩスロットに割り当てていた仮想ＮＩＣ１１２に関する情報（６１２〜６１４）を削除する。
【００８７】
ステップ７０９では、ＰＣＩスロットマネージャ４１４は、論理ＰＣＩスロット管理テーブル４１５、４１６によって識別される物理ＩＯデバイスの種類と、物理ＰＣＩスロット管理テーブル４１７によって識別される物理ＩＯデバイスの種類とが同じ種類か否かを判断する。なお、ステップ７０９の処理は省略することもできる。しかし、ステップ７０９の判断の結果が肯定的であれば、物理ＩＯデバイスの種類（物理ＩＯインタフェイスの種類）が交換前後で同じであることがわかるので、交換前後でＬＰＡＲと物理ＩＯデバイスとの関係が維持されても、交換前後でＬＰＡＲと物理ＩＯデバイスとの関係が実質的に同じであることが保証される。以下、ステップ７０９をＬＰＡＲ＃１  １０１、＃２  １０２ごとに説明する。
【００８８】
〜ＬＰＡＲ＃１  １０１について〜
論理ＰＣＩスロット管理テーブル４１５の、論理ＰＣＩスロット番号６０１「０」に登録されている物理ＩＯデバイス識別子６０２「０」の物理ＩＯデバイスの基本クラスは、「0x02」、サブクラス６０４は「0x00」であり、物理ＰＣＩスロット管理テーブル４１７の物理ＩＯデバイス識別子５０１「０」に登録されている基本クラス５０４及びサブクラス５０５と同じである。また、論理ＰＣＩスロット番号６０１「１」に登録されている物理ＩＯデバイス識別子６０２「１００」の物理ＩＯデバイスの基本クラスは、「0x0C」、サブクラス６０４は「0x04」であり、物理ＰＣＩスロット管理テーブル４１７の物理ＩＯデバイス識別子５０１「１００」に登録されている基本クラス５０４及びサブクラス５０５と同じである。従って、ＬＰＡＲ＃１  １０１では、ＰＣＩスロットマネージャ４１４は、仮想ＮＩＣ１０６、仮想ＦＣ１０７に関する情報をそのまま引き継ぐ。
【００８９】
〜ＬＰＡＲ＃２  １０２について〜
ＬＰＡＲ＃２  １０２も同様である。論理ＰＣＩスロット管理テーブル４１６の、論理ＰＣＩスロット番号６１１「０」に登録されている物理ＩＯデバイス識別子６１２が「１」の物理ＩＯデバイスの基本クラス６１３及びサブクラス６１４が、物理ＰＣＩスロット管理テーブル４１７の物理ＩＯデバイス識別子５０１「１」に登録されている基本クラス５０４及びサブクラス５０５と同じである。従って、ＰＣＩスロットマネージャ４１４は、仮想ＮＩＣ１１１に関する情報をそのまま引き継ぐ。しかし、論理ＰＣＩスロット番号６１１「１」には、物理ＩＯデバイス識別子６１２が登録されていないため、ＰＣＩスロットマネージャ４１４は、仮想ＮＩＣ１１２に関する情報を削除する。
【００９０】
ステップ７１０をもって、ＰＣＩスロットマネージャ４１４の処理が終了する。
【００９１】
ステップ７１１では、ハイパバイザ４１３は、ＬＰＡＲ＃１  １０１の論理ＰＣＩスロット管理テーブル４１５に登録されている物理ＩＯデバイス識別子６０２「０」に登録されている実際の物理ＩＯデバイスを論理ＰＣＩスロット＃０  １０３に割り当て、物理ＩＯデバイス識別子６０２「１００」に登録されている実際の物理ＩＯデバイスを、論理ＰＣＩスロット＃１  １０４に割り当てる。また、ステップ７１１では、ハイパバイザ４１３は、ＬＰＡＲ＃２  １０２の論理ＰＣＩスロット管理テーブル４１６に登録されている物理ＩＯデバイス識別子６１２「１」に登録されている実際の物理ＩＯデバイスを、論理ＰＣＩスロット＃０  １０８に割り当てる。
【００９２】
ステップ７１２では、ハイパバイザ４１３の起動が完了となる。
【００９３】
本実施例によれば、物理ＩＯデバイスの識別情報として、Vendor ID、 Device ID、 Sub System IDの組み合わせのようなデバイス識別子（すなわち、物理ＩＯインタフェイスが異なっていれば同一のＰＣＩスロットに搭載されても値が異なっている識別子）ではなく、同一物理ＰＣＩスロット番号のＰＣＩスロットに搭載された物理ＩＯインタフェイスの同一ポート番号の物理ポートには同一の値となるような物理ＩＯデバイス識別子が採用されている。そして、ハイパバイザは、物理ＩＯインタフェイス交換前の割当て情報（ＬＰＡＲと仮想ポートに対応する物理ポートの物理ＩＯデバイス識別子との関係を表す情報）を有する論理ＰＣＩスロット管理テーブル４１５、４１６と、交換後の物理ＩＯインタフェイスの物理ポートの物理ＩＯデバイス識別子の一覧を表す物理ＰＣＩスロット管理テーブル４１７とを比較し、互いに一致する物理ＩＯデバイス識別子があった場合に、互いに一致する物理ＩＯデバイス識別子のＬＰＡＲへの割当てを維持、すなわち、割り当て情報を引き継ぐ。これにより、物理ＩＯインタフェイスが型名の異なる物理ＩＯインタフェイスに取り換えられても、ユーザは、ＬＰＡＲ＃１  １０１、＃２  １０２に対して、物理ＩＯデバイスを再度割り当てる必要がなくなる。
【実施例２】
【００９４】
実施例２を説明する。その際、実施例１との相違点を主に説明し、実施例１との共通点については説明を省略或いは簡略する。
【００９５】
実施例１は、計算機１が非稼働時に物理ＩＯインタフェイスを交換して、再起動時に再稼働前の仮想ＩＯデバイス構成を引き継ぐ。実施例２では、計算機１が稼働中に物理ＩＯインタフェイスを交換した場合における仮想ＩＯデバイス構成の引き継ぎ処理の一例を示す。この様に、計算機１が稼働中（電源ＯＮ時）に、物理ＩＯインタフェイス（ＰＣＩカード）を、計算機１に与える悪影響を少なくしながら交換できる機能をＰＣＩホットスワップ機能と言う。このＰＣＩホットスワップ機能は、ハイパバイザ４１３が有する。
【００９６】
本実施例では、実施例１と同様に、図４〜６の構成を有する。つまり、交換される物理ＩＯインタフェイス（図１参照）、及び交換する物理ＩＯインタフェイス（図４参照）は、実施例１と同様である。
【００９７】
図８は、計算機１が稼働中に、物理ＩＯインタフェイスを交換した場合における、仮想ＩＯデバイスの構成の引き継ぎ処理の一例を示している。
【００９８】
ステップ８０１では、計算機１が稼働中に、ユーザにより物理ＰＣＩスロット＃  １１９に格納されている物理ＩＯインタフェイス、４つの物理ポートを有するＮＩＣ４０１に交換し、物理ＰＣＩスロット＃１  １２０に格納されている物理ＩＯインタフェイスを１つの物理ポートのみを有する物理ＦＣカード４０２に交換される。
【００９９】
ステップ８０２では、ステップ８０１を契機に、ハイパバイザ４１３は、ＰＣＩホットスワップ機能による、ＰＣＩホットスワップ処理を開始する。このときＰＣＩ構成情報４１８が再構成される。
【０１００】
ステップ８０３では、ステップ８０２のＰＣＩホットスワップ処理の開始を契機にハイパバイザ４１３の機能の一つであるＰＣＩスロットマネージャ４１４の動作が開始される。
【０１０１】
ステップ８０４では、ＰＣＩスロットマネージャ４１４は、ＰＣＩ構成情報４１８から物理ＰＣＩスロット１１９〜１２１に搭載されたＰＣＩカードが有する物理ＩＯデバイス（物理ポート）に関する最新の情報を再取得し、物理ＰＣＩスロット管理テーブル４１７を更新する。
【０１０２】
ステップ８０５では、ＰＣＩスロットマネージャ４１４は、ＬＰＡＲ＃１  １０１の論理ＰＣＩスロット管理テーブル４１５、ＬＰＡＲ＃２  １０２の論理ＰＣＩスロット管理テーブル４１６の各論理ＰＣＩスロット番号６０１、６１１に登録されている物理ＩＯデバイス識別子６０２、６１２が、ステップ８０４にて更新された物理ＰＣＩスロット管理テーブル４１７に存在するか判断する。存在すれば、ＰＣＩスロットマネージャ４１４は、それぞれの論理ＰＣＩスロット管理テーブル４１５、４１６の各論理ＰＣＩスロット番号６０１、６１１に登録されている物理ＩＯデバイス識別子６０２、６１２、基本クラス６０３、６１３、及びサブクラス６０４、６１４に関する情報を引き継ぎ、存在しなければ、ＰＣＩスロットマネージャ４１４は、これらの情報（６０２〜６０４、６１２〜６１４）を削除する。
【０１０３】
本実施例では、ＬＰＡＲ＃１  １０１の論理ＰＣＩスロット管理テーブル４１５は、論理ＰＣＩスロット番号６０１「０」に登録されている物理ＩＯデバイス識別子６０２「０」によって識別される物理ＩＯデバイスと、論理ＰＣＩスロット番号６０１「１」に登録されている物理ＩＯデバイス識別子６０２「１００」によって識別される物理ＩＯデバイスが、物理ＰＣＩスロット管理テーブル４１７に存在しているため、ＰＣＩスロットマネージャ４１４は、論理ＰＣＩスロット番号６０１「０」と論理ＰＣＩスロット番号６０１「１」に関しては、物理ＩＯデバイス識別子６０２、基本クラス６０３及びサブクラス６０４に格納されている情報を引き継ぐ。
【０１０４】
また、ＬＰＡＲ＃２  １０２の論理ＰＣＩスロット管理テーブル４１６では、論理ＰＣＩスロット番号６１１「０」に登録されている物理ＩＯデバイス識別子６１２「１」によって識別される物理ＩＯデバイスは、物理ＰＣＩスロット管理テーブル４１７に存在しているため、論理ＰＣＩスロット番号６１１「０」に関しては、ＰＣＩスロットマネージャ４１４は、物理ＩＯデバイス識別子６１２、基本クラス６１３及びサブクラス６１４に格納されている情報を引き継ぐ。
【０１０５】
しかし、論理ＰＣＩスロット番号６１１「１」に関しては、物理ＰＣＩスロット管理テーブル４１７には存在していないため、論理ＰＣＩスロット番号６１１「１」に関しては、ＰＣＩスロットマネージャ４１４は、論理ＰＣＩスロット管理テーブル４１６からは、物理ＩＯデバイス識別子６１２、基本クラス６１３、サブクラス６１４に関する情報は、削除する。
【０１０６】
ステップ８０６では、ＰＣＩスロットマネージャ４１４は、論理ＰＣＩスロット管理テーブル４１５、４１６の各論理ＰＣＩスロット番号６０１、６１１に登録されている基本クラス６０３、６１３及びサブクラス６０４、６１４と、各論理ＰＣＩスロット番号６０１、６１１に登録されている物理ＩＯデバイス識別子６０２、６１２と同じ物理ＩＯデバイス識別子が登録されている物理ＰＣＩスロット管理テーブル４１７の基本クラス５０４及びサブクラス５０５を比較し、各ＬＰＡＲ＃１  １０１、＃２  １０２の仮想ＩＯデバイスに対応する物理ＩＯデバイスが同じ種類か否かを判断する。なお、ステップ８０６は省略することもできる。
【０１０７】
同じ種類である場合、ＰＣＩスロットマネージャ４１４は、論理ＰＣＩスロット管理テーブル４１５、４１６の各論理ＰＣＩスロット番号６０１、６１１に登録されている物理ＩＯデバイス識別子６０２、６１２、基本クラス６０３、６１３、及びサブクラス６０４、６１４を引き継ぐ。ＰＣＩスロットマネージャ４１４は、基本クラス６０３、６１３又はサブクラス６０４、６１４のうちどちらか一方でも物理ＰＣＩスロット管理テーブル４１７の基本クラス５０４、及びサブクラス５０５と異なれば、その論理ＰＣＩスロット管理テーブル４１５、４１６の各論理ＰＣＩスロット番号６０１、６１１に登録されている情報（６０２〜６０４、６１２〜６１４）を削除する。
【０１０８】
本実施例では、ＬＰＡＲ＃１  １０１の論理ＰＣＩスロット管理テーブル４１５における、論理ＰＣＩスロット番号６０１「０」と論理ＰＣＩスロット番号６０１「１」に登録されている基本クラス６０３及びサブクラス６０４は、それぞれの論理ＰＣＩスロット番号６０１の物理ＩＯデバイス識別子６０２と同じ物理ＩＯデバイス識別子が登録されている物理ＰＣＩスロット管理テーブル４１７の基本クラス５０４及びサブクラス５０５と同一である。従って、ＰＣＩスロットマネージャ４１４は、各論理ＰＣＩスロット番号６０１に登録されている情報（６０２〜６０４）を引き継ぐ。
【０１０９】
また、ＬＰＡＲ＃２  １０２も同様であり、論理ＰＣＩスロット番号６１１「０」に登録されている基本クラス６１３及びサブクラス６１４は、その論理ＰＣＩスロット番号６１１に登録されている物理ＩＯデバイス識別子６１２と同じ物理ＩＯデバイス識別子が登録されている物理ＰＣＩスロット管理テーブル４１７上の基本クラス５０４及びサブクラス５０５と同一である。従って、ＰＣＩスロットマネージャ４１４は、各論理ＰＣＩスロット番号６１１に登録されている情報（６１２〜６１４）を引き継ぐ。
【０１１０】
ステップ８０７をもって、ＰＣＩスロットマネージャ４１４の動作が終了する。
【０１１１】
ステップ８０８では、ハイパバイザ４１３は、ＬＰＡＲ＃１  １０１の論理ＰＣＩスロット管理テーブル４１５、及びＬＰＡＲ＃２  １０２の論理ＰＣＩスロット管理テーブル４１６に登録されている物理ＩＯデバイス識別子６０２、６１２に対応する実際の物理ＩＯデバイスを、ＬＰＡＲ＃１  １０１とＬＰＡＲ＃２  １０２の論理ＰＣＩスロット１０３、１０４、１０８へ割り当てる。
【０１１２】
ステップ８０９では、ＰＣＩホットスワップ処理が完了となる。
【０１１３】
本実施例により、物理ＩＯインタフェイスを計算機１が稼働中に交換した場合でも、ＬＰＡＲ＃１  １０１（論理ＰＣＩスロット＃０  １０３、＃１  １０４）、＃２  １０２（論理ＰＣＩスロット＃０  １０８）への物理ＩＯデバイスへの割り当て情報を引き継ぐことができる。
【実施例３】
【０１１４】
実施例３を説明する。その際、実施例１及び２との相違点を主に説明し、実施例１及び２との共通点については説明を省略或いは簡略する。
【０１１５】
実施例３は、現用の計算機（現用の物理計算機）にて回復不能な障害が発生した場合に、予備用の計算機（予備用の物理計算機）へ自動切替えした際の、予備用の計算機への仮想ＩＯデバイスの構成引き継ぎ処理の一例を示している。
【０１１６】
現用の計算機から予備用の計算機への自動切り替えにおいて、従来技術では、予備用の計算機の物理ＩＯインタフェイスが現用の計算機の物理ＩＯインタフェイスと型名が異なると、物理ＩＯインタフェイスのＩＯデバイスのデバイス識別子（Vendor ID、 Device ID、 Sub System IDの組み合わせ）が変化するので、物理ＩＯインタフェイス構成情報を自動で引き継ぐことができない。そのため、自動で物理ＩＯインタフェイス構成情報を引き継ぐために、現用の計算機と予備用の計算機とでＰＣＩカードの型名を同一にする必要があった。
【０１１７】
本実施例の計算機システムでは、予備用の計算機の物理ＩＯインタフェイスが現用の計算機の物理ＩＯインタフェイスと同一型名でなくても、予備用の計算機が現用の計算機のＩＯデバイスの構成を引き継ぐことができる。
【０１１８】
図９は、実施例３に係る計算機システム３０の構成例を示す。
【０１１９】
計算機システム３０は、サーバシャーシ＃１  ９０１に現用の物理資源＃１  ９０２を含む現用の計算機１０、サーバシャーシ＃２  ９１１に予備用の物理資源＃２  ９１２を含む予備用の計算機２０、及び管理サーバ９３１を有する。
【０１２０】
本実施例における、現用の物理資源＃１  ９０２が有するハイパバイザ９０３、及びハイパバイザ９０３上で動作するＬＰＡＲ＃１  ９０４、＃２  ９０５は、それぞれ、実施例１の物理資源１１８が有するハイパバイザ１１３、及びハイパバイザ１１３上で動作するＬＰＡＲ＃１  １０１、＃２  １０２と同様である（図１〜３参照）。
【０１２１】
サーバシャーシ＃２  ９１１の予備用の物理資源＃２  ９１２では、物理ＰＣＩスロット＃０  ９１６に４つの物理ポートを有する物理ＮＩＣ９１７、物理ＰＣＩスロット＃１  ９１８に４つの物理ポートを有する物理ＦＣカードである物理ＦＣ９１９が格納されている。
【０１２２】
また、サーバシャーシ＃１  ９０１にＳＶＰ（Service Processor）＃１  ９１０が配置され、サーバシャーシ＃２  ９１１にＳＶＰ＃２  ９２０が配置されている。ＳＶＰ＃１  ９１０及びＳＶＰ＃２  ９２０は、管理サーバ９３１に接続されている。管理サーバ９３１は、管理プログラム９３２を有する。管理プログラム９３２は、管理サーバ９３１内の図示しないプロセッサで実行される。
【０１２３】
ＳＶＰ＃１  ９１０は、計算機１０の障害を検知して、計算機１０に障害が発生したことを管理サーバ９３１に通知する機能を有する。また、ＳＶＰ＃２  ９２０は、計算機１０に障害が発生した場合に、管理サーバ９３１（管理プログラム９３２）からの命令に従う機能を有する。
【０１２４】
図１０は、本実施例における仮想ＩＯデバイス構成の引き継ぎ処理の一例を示す。
【０１２５】
なお、本実施例では、本処理の開始の前提条件として、図９のサーバシャーシ＃１  ９０１の構成にて、論理ＰＣＩスロット管理テーブル９０３２、物理ＰＣＩスロット管理テーブル９０３３、システム構成情報９０３４が、ＳＶＰ９１０が保有する記憶部９１０１に保存されるものとする。記憶部９１０１は、ＳＶＰ９１０の外にあっても良い。
【０１２６】
ステップ１００１では、現用の計算機１０に障害が発生すると、それを検知したＳＶＰ＃１  ９１０が、管理サーバ９３１上で動作している管理プログラム９３２に、現用の計算機１０に障害が発生したことを通知する。
【０１２７】
ステップ１００２では、管理プログラム９３２は、サーバシャーシ＃１  ９０１のＳＶＰ＃１  ９１０が保有する記憶部９１０１から、システム構成情報９１０２と、ＬＰＡＲ＃１  ９０４、＃２  ９０５の論理ＰＣＩスロット管理テーブル９１０３を取得する。
【０１２８】
ステップ１００３では、管理プログラム９３２は、ステップ１００２で取得したシステム構成情報９１０２、ＬＰＡＲ＃１  ９０４、＃２  ９０５の論理ＰＣＩスロット管理テーブル９１０３を、サーバシャーシ＃２  ９１１のＳＶＰ＃２  ９２０が有する記憶部９２０１に保存する。
【０１２９】
ステップ１００４では、管理プログラム９３２は、ＳＶＰ＃２  ９２０を経由して、予備用の計算機２０の電源をＯＮにする。
【０１３０】
ステップ１００５では、ステップ１００４の予備用の計算機２０の電源投入を契機に、計算機２０が有するハイパバイザ９１３の起動が開始される。
【０１３１】
ステップ１００６では、ステップ１００５のハイパバイザ９１３の起動開始を契機に、ハイパバイザ９１３の機能の一つであるＰＣＩスロットマネージャ９１３１の動作が開始される。
【０１３２】
ステップ１００７では、図７のステップ７０５〜ステップ７０９（ステップ７０８は省略することもできる）と同様の処理が実施される。すなわち、本実施例のＰＣＩスロットマネージャ９１３１は、実施例１のＰＣＩスロットマネージャ４１４に対応する。また、実施例１の記憶部１２８は、ＳＶＰ＃２  ９２０が備える記憶部９２０１に対応する。
【０１３３】
ステップ１００８をもって、ＰＣＩスロットマネージャ９１３１の動作が終了する。
【０１３４】
ステップ１００９では、ハイパバイザ９１３は、サーバシャーシ＃２  ９１１のＬＰＡＲ＃１  ９１４の論理ＰＣＩスロット管理テーブル９１３２に登録されている物理ＩＯデバイス識別子に対応する実際の物理ＩＯデバイスを、サーバシャーシ＃２  ９１１のＬＰＡＲ＃１  ９１４の論理ＰＣＩスロットに割り当てる。
【０１３５】
また、ステップ１００９では、ハイパバイザ９１３は、サーバシャーシ＃２  ９１１のＬＰＡＲ＃２  ９１５の論理ＰＣＩスロット管理テーブル９１３２に登録されている物理ＩＯデバイス識別子に対応する実際の物理ＩＯデバイスを、サーバシャーシ＃２  ９１１のＬＰＡＲ＃２  ９１５の論理ＰＣＩスロットに割り当てる。
【０１３６】
ステップ１０１０では、ハイパバイザ９１３の起動が終了する。
【０１３７】
本実施例によれば、予備用の計算機２０の物理ＩＯインタフェイスが現用の計算機１０のＩＯインタフェイスと同一の型名のカードでなくても、計算機２０では、現用の計算機１０が構成していたＬＰＡＲ＃１  ９０４のＩＯデバイスの構成を、予備用の計算機２０が構成しているＬＰＡＲ＃１  ９１４で引き継ぎ、ＬＰＡＲ＃２  ９０５（現用）のＩＯデバイスの構成を、ＬＰＡＲ＃２  ９１５（予備用）で引き継ぐことができる。
【０１３８】
なお、本実施例では、現用の計算機１０、及び予備用の計算機２０は別々のサーバシャーシに存在しているが、同一シャーシ内に存在しても良い。
【０１３９】
以上、幾つかの実施例を説明したが、本発明は上述した実施例に限られず、他の様々な態様に適用可能である。
【符号の説明】
【０１４０】
１…計算機（物理計算機）、３０…計算機システム、１０１…ＬＰＡＲ＃１、１０２…ＬＰＡＲ＃２、１１８…物理資源、４１３…ハイパバイザ、４１４…ＰＣＩスロットマネージャ
【図１】
2014010731.tif 000003
【図２】
2014010731.tif 000004
【図３】
2014010731.tif 000005
【図４】
2014010731.tif 000006
【図５】
2014010731.tif 000007
【図６】
2014010731.tif 000008
【図７】
2014010731.tif 000009
【図８】
2014010731.tif 000010
【図９】
2014010731.tif 000011
【図１０】
2014010731.tif 000012