(57)【要約】【課題】ＳＲ−ＩＯＶに対応したＩ／Ｏデバイスを搭載した仮想計算機で、障害が発生した物理Ｉ／Ｏデバイスを速やかに特定する。【解決手段】前記物理計算機の計算機資源を仮想計算機に割り当てる仮想化部を含むホストと、を備えて、物理計算機のＩ／ＯデバイスはＰＦとＶＦを備えてＳＲ−ＩＯＶに対応し、前記物理計算機はＰＦドライバを介してＩ／ＯデバイスのＰＦを利用するホストと、ＶＦドライバを介してＩ／ＯデバイスのＶＦを利用する仮想計算機とを有し、仮想計算機が仮想機能に障害が発生した仮想デバイス名を検出し、デバイス情報を参照して仮想デバイス名に対応するＶＦ固有情報を取得してホストに通知し、ホストはＩ／Ｏ対応情報を参照してＶＦ固有情報に対応するスロット番号を障害の発生したＩ／Ｏデバイスとして特定する。【選択図】図１
2013120494.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、メモリと、１つ以上のスロットと、前記スロットに装着されたＩ／Ｏデバイスとを備えた物理計算機と、
前記物理計算機の計算機資源を１つ以上の仮想計算機に割り当てる仮想化部を含むホストと、を備えた仮想計算機システムであって、
前記Ｉ／Ｏデバイスは、
物理機能と仮想機能を備えてＳＲ−ＩＯＶに対応し、
前記物理計算機は、
前記ホストが前記物理機能を利用するＰＦドライバを介して前記Ｉ／Ｏデバイスの物理機能を利用し、前記仮想計算機が前記仮想機能を利用するＶＦドライバを介して前記Ｉ／Ｏデバイスの仮想機能を利用し、
前記仮想計算機は、
前記仮想計算機に割り当てられたＩ／Ｏデバイスの仮想デバイス名とＶＦ固有情報を前記メモリ上で保持するデバイス情報と、
前記仮想機能に障害が発生したことを検出し、当該障害の発生を前記ホストに通知するゲスト用障害検出部と、を有し、
前記ホストは、
前記Ｉ／Ｏデバイスが装着されたスロット番号と、ＶＦ固有情報を前記メモリ上で保持するＩ／Ｏ対応情報と、
障害が発生した前記Ｉ／Ｏデバイスのスロット番号を特定するホスト用障害検出部と、を有し、
前記ゲスト用障害検出部は、
前記仮想機能の障害を検出すると、前記仮想デバイス名及びＶＦ固有情報を含むデバイス情報を参照して前記障害が発生した仮想機能の仮想デバイス名を取得し、当該仮想デバイス名で前記デバイス情報を参照して、前記取得した仮想デバイス名に対応するＶＦ固有情報を取得し、前記取得したＶＦ固有情報を前記ホスト用障害検出部へ送信し、
前記ホスト用障害検出部は、
前記ゲスト用障害検出部から前記ＶＦ固有情報を受信すると、
前記Ｉ／Ｏ対応情報を参照して、前記受信したＶＦ固有情報に対応するスロット番号を特定することを特徴とする仮想計算機システム。
【請求項２】
請求項１に記載の仮想計算機システムであって、
前記Ｉ／Ｏ対応情報は、前記Ｉ／Ｏデバイスが装着されたスロット番号と前記ＶＦ固有情報に加えて、前記Ｉ／Ｏデバイスのデバイス名と、前記仮想機能のＶＦ名を含み、
前記ホスト用障害検出部は、
前記ゲスト用障害検出部から前記ＶＦ固有情報を受信すると、
前記Ｉ／Ｏ対応情報を参照して、前記受信したＶＦ固有情報に対応するスロット番号に加えて、前記Ｉ／Ｏデバイスのデバイス名と、前記仮想機能のＶＦ名を特定することを特徴とする仮想計算機システム。
【請求項３】
請求項１に記載の仮想計算機システムであって、
前記デバイス情報は、仮想デバイス名とＶＦ固有値を一意に対応付けたことを特徴とする仮想計算機システム。
【請求項４】
請求項１に記載の仮想計算機システムであって、
前記Ｉ／Ｏ対応情報は、前記Ｉ／Ｏデバイスが装着されたスロット番号と前記ＶＦ固有情報に加えて、前記Ｉ／Ｏデバイスのデバイス名と、前記仮想機能に対応するポート番号とを含み、
前記ホスト用障害検出部は、
前記ゲスト用障害検出部から前記ＶＦ固有情報を受信すると、
前記Ｉ／Ｏ対応情報を参照して、前記受信したＶＦ固有情報に対応するスロット番号に加えて、前記Ｉ／Ｏデバイスのデバイス名と、前記ポート番号を特定することを特徴とする仮想計算機システム。
【請求項５】
請求項１に記載の仮想計算機システムであって、
前記Ｉ／Ｏ対応情報は、前記Ｉ／Ｏデバイスが装着されたスロット番号と前記ＶＦ固有情報に加えて、前記Ｉ／Ｏデバイスのデバイス名と、前記仮想機能のＶＦ名と、当該ＶＦ名に対応するポート番号とを含み、
前記ホスト用障害検出部は、
前記ゲスト用障害検出部から前記ＶＦ固有情報を受信すると、
前記Ｉ／Ｏ対応情報を参照して、前記受信したＶＦ固有情報に対応するスロット番号に加えて、前記Ｉ／Ｏデバイスのデバイス名と、前記ＶＦ名または前記ポート番号を送信することを特徴とする仮想計算機システム。
【請求項６】
請求項１に記載の仮想計算機システムであって、
前記ホストは、ホストＯＳと、当該ホストＯＳが稼働させる仮想化部と、を含むことを特徴とする仮想計算機システム。
【請求項７】
請求項１に記載の仮想計算機システムであって、
前記ホスト用障害検出部は、
前記ゲスト用障害検出部から前記ＶＦ固有情報を受信すると、
前記Ｉ／Ｏ対応情報を参照して、前記受信したＶＦ固有情報に対応するスロット番号に加えて、当該計算機の識別子を送信することを特徴とする仮想計算機システム。
【請求項８】
プロセッサと、メモリと、１つ以上のスロットと、前記スロットに装着されたＩ／Ｏデバイスとを備えた物理計算機と、前記物理計算機の計算機資源を１つ以上の仮想計算機に割り当てる仮想化部を含むホストと、を備えて、前記Ｉ／Ｏデバイスは、物理機能と仮想機能を備えてＳＲ−ＩＯＶに対応し、前記物理計算機は、前記ホストがＰＦドライバを介して前記Ｉ／Ｏデバイスの物理機能を利用し、前記仮想計算機がＶＦドライバを介して前記Ｉ／Ｏデバイスの仮想機能を利用し、前記仮想機能に発生した障害を検出するＳＲ−ＩＯＶ対応デバイスの障害検出方法であって、
前記仮想計算機が、前記仮想機能に障害が発生したことを検出する第１のステップと、
前記仮想計算機が、障害が発生した仮想機能に対応する仮想デバイス名を取得する第２のステップと、
前記仮想計算機が、当該仮想計算機に割り当てられたＩ／Ｏデバイスの仮想デバイス名とＶＦ固有情報を保持するデバイス情報を参照して、前記取得した仮想デバイス名からＶＦ固有情報を取得する第３のステップと、
前記仮想計算機が、前記取得したＶＦ固有情報を前記ホストに送信する第４のステップと、
前記ホストが、前記Ｉ／Ｏデバイスが装着されたスロット番号と、ＶＦ固有情報を保持するＩ／Ｏ対応情報を参照して、仮想計算機から受信したＶＦ固有情報に対応するスロット番号を取得する第５のステップと、
前記ホストが、前記取得したスロット番号を障害が発生したＩ／Ｏデバイスのスロット番号として特定する第６のステップと、
を含むことを特徴とするＳＲ−ＩＯＶ対応デバイスの障害検出方法。
【請求項９】
請求項８に記載のＳＲ−ＩＯＶ対応デバイスの障害検出方法であって、
前記Ｉ／Ｏ対応情報は、前記Ｉ／Ｏデバイスが装着されたスロット番号と前記ＶＦ固有情報に加えて、前記Ｉ／Ｏデバイスのデバイス名と、前記仮想機能のＶＦ名を含み、
前記第５のステップは、
前記ホストが、前記Ｉ／Ｏ対応情報を参照して、前記受信したＶＦ固有情報に対応するスロット番号に加えて、前記Ｉ／Ｏデバイスのデバイス名と、前記仮想機能のＶＦ名を取得し、
前記第６のステップは、
前記ホストが、前記取得したスロット番号と前記Ｉ／Ｏデバイスのデバイス名と、前記仮想機能のＶＦ名を、障害が発生したＩ／Ｏデバイスのスロット番号と前記Ｉ／Ｏデバイスのデバイス名と、前記仮想機能のＶＦ名として特定することを特徴とするＳＲ−ＩＯＶ対応デバイスの障害検出方法。
【請求項１０】
請求項８に記載のＳＲ−ＩＯＶ対応デバイスの障害検出方法であって、
前記デバイス情報は、仮想デバイス名とＶＦ固有値を一意に対応付けたことを特徴とするＳＲ−ＩＯＶ対応デバイスの障害検出方法。
【請求項１１】
請求項８に記載のＳＲ−ＩＯＶ対応デバイスの障害検出方法であって、
前記Ｉ／Ｏ対応情報は、前記Ｉ／Ｏデバイスが装着されたスロット番号と前記ＶＦ固有情報に加えて、前記Ｉ／Ｏデバイスのデバイス名と、前記仮想機能に対応するポート番号とを含み、
前記第５のステップは、
前記ホストが、前記Ｉ／Ｏ対応情報を参照して、前記受信したＶＦ固有情報に対応するスロット番号に加えて、前記Ｉ／Ｏデバイスのデバイス名と、前記仮想機能に対応するポート番号を取得し、
前記第６のステップは、
前記ホストが、前記取得したスロット番号と前記Ｉ／Ｏデバイスのデバイス名と、前記仮想機能に対応するポート番号を、障害が発生したＩ／Ｏデバイスのスロット番号と前記Ｉ／Ｏデバイスのデバイス名と、前記仮想機能に対応するポート番号として特定することを特徴とするＳＲ−ＩＯＶ対応デバイスの障害検出方法。
【請求項１２】
請求項８に記載のＳＲ−ＩＯＶ対応デバイスの障害検出方法であって、
前記Ｉ／Ｏ対応情報は、前記Ｉ／Ｏデバイスが装着されたスロット番号と前記ＶＦ固有情報に加えて、前記Ｉ／Ｏデバイスのデバイス名と、前記仮想機能のＶＦ名と、当該ＶＦ名に対応するポート番号とを含み、
前記第５のステップは、
前記ホストが、前記Ｉ／Ｏ対応情報を参照して、前記受信したＶＦ固有情報に対応するスロット番号に加えて、前記Ｉ／Ｏデバイスのデバイス名と、前記仮想機能のＶＦ名と、前記仮想機能に対応するポート番号を取得し、
前記第６のステップは、
前記ホストが、前記取得したスロット番号と前記Ｉ／Ｏデバイスのデバイス名と、前記前記仮想機能のＶＦ名と、仮想機能に対応するポート番号を、障害が発生したＩ／Ｏデバイスのスロット番号と前記Ｉ／Ｏデバイスのデバイス名と、前記仮想機能のＶＦ名と、前記仮想機能に対応するポート番号として特定することを特徴とするＳＲ−ＩＯＶ対応デバイスの障害検出方法。
【請求項１３】
請求項８に記載のＳＲ−ＩＯＶ対応デバイスの障害検出方法であって、
前記ホストは、ホストＯＳと、当該ホストＯＳが稼働させる仮想化部と、を含むことを特徴とするＳＲ−ＩＯＶ対応デバイスの障害検出方法。
【請求項１４】
請求項８に記載のＳＲ−ＩＯＶ対応デバイスの障害検出方法であって、
前記第６のステップは、
前記ホストが、前記取得したスロット番号を障害が発生したＩ／Ｏデバイスのスロット番号と、当該計算機の識別子を送信することを特徴とするＳＲ−ＩＯＶ対応デバイスの障害検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＲ−ＩＯＶに対応するＩ／Ｏデバイスを搭載して、仮想計算機を提供する計算機システムに関するものである。
【背景技術】
【０００２】
現代のインターネット社会では、計算機システムを用いて２４時間３６５日に対応したサービスの提供が主流である。そのため、計算機に障害が発生した場合、できるだけ短時間で障害から復旧し、サービス提供を再開することが求められている。
【０００３】
計算機に障害が発生すると、保守員が障害原因を調査する。障害原因が部品の故障の場合、正常な保守部品と交換し、計算機を再起動する必要がある。障害復旧までの時間を短くするためには、故障した部品の位置を速やかに特定する必要がある。
【０００４】
近年、ハードウェアを仮想化し、その仮想ハードウェア上で複数のＯＳを実行させる仮想計算機が一般的になっており、物理Ｉ／Ｏデバイスの障害を検出する技術が存在する（例えば、特許文献１、非特許文献１）。
【０００５】
一方、仮想計算機のＩ／Ｏ性能が低いことを解決するための技術として、一つのＩ／Ｏデバイスを複数の仮想計算機で利用するＳＲ−ＩＯＶ（Ｓｉｎｇｌｅ Ｒｏｏｔ Ｉ／Ｏ Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）が提案されている（例えば、非特許文献２）。ＳＲ−ＩＯＶでは、一つのＩ／Ｏデバイスに、一つの物理計算機に割当てられるＰＦ（Physical Function）と、複数の仮想計算機に割当てられる複数のＶＦ（Virtual Function）とを有する。そして、物理計算機上のホストＯＳで実行される仮想化部（例えば、ＶＭＭ：Virtual  Machine Monitor）は、ＶＦを仮想デバイスとして仮想計算機に提供することができ、各仮想計算機のゲストＯＳは、それぞれＶＦドライバを用いてＶＦにアクセスしてＩ／Ｏデバイスを使用する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−３０１１６２号公報
【非特許文献】
【０００７】
【非特許文献１】BladeSymphony ハードウェア保守エージェント構築ガイド BS2000編、株式会社 日立製作所、2010年9月発行、第10ページ
【非特許文献２】Intel(R) 82599 SR-IOV Driver Companion Guide、Intel、May 2010、Page 8
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来、仮想計算機を提供している計算機システムは、物理Ｉ／Ｏデバイスの障害を検出することができていた。この場合、物理Ｉ／Ｏデバイスを制御するドライバはホストＯＳ上で機能しており、このドライバが物理Ｉ／Ｏデバイスの障害を検出し、ホストＯＳのＯＳログに障害情報を記録する。障害検知プログラムはホストＯＳ上で動作しており、このＯＳログの障害情報から、物理Ｉ／Ｏデバイスの障害情報を検知していた。
【０００９】
一方、ＳＲ−ＩＯＶに対応するＩ／ＯデバイスのＶＦを制御するＶＦドライバは、仮想計算機のゲストＯＳ上で機能しており、仮想Ｉ／Ｏデバイスの障害を検出し、ゲストＯＳのＯＳログに障害情報を記録する。障害検知プログラムをゲストＯＳ上で実行させた場合、このＯＳログの障害情報からは、仮想Ｉ／Ｏデバイスの障害情報を検出することはできるが、障害の発生がどの物理Ｉ／Ｏデバイスに対応しているかを検出することができなかった。特に、ＳＲ−ＩＯＶに対応するＩ／Ｏデバイスに複数のポートを備える場合、障害が発生した物理計算機とポートまたはＶＦを迅速に把握することができない、という問題があった。
【００１０】
本発明ではＳＲ−ＩＯＶに対応したＩ／Ｏデバイスを搭載している仮想計算機で、障害が発生した物理Ｉ／Ｏデバイスを速やかに特定し、Ｉ／Ｏデバイスの交換を迅速に行うことを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、プロセッサと、メモリと、１つ以上のスロットと、前記スロットに装着されたＩ／Ｏデバイスとを備えた物理計算機と、前記物理計算機の計算機資源を１つ以上の仮想計算機に割り当てる仮想化部を含むホストと、を備えた仮想計算機であって、前記Ｉ／Ｏデバイスは、物理機能と仮想機能を備えてＳＲ−ＩＯＶに対応し、前記物理計算機は、前記ホストが前記物理機能を利用するＰＦドライバを介して前記Ｉ／Ｏデバイスの物理機能を利用し、前記仮想計算機が前記仮想機能を利用するＶＦドライバを介して前記Ｉ／Ｏデバイスの仮想機能を利用し、前記仮想計算機は、前記仮想計算機に割り当てられたＩ／Ｏデバイスの仮想デバイス名とＶＦ固有情報を前記メモリ上で保持するデバイス情報と、前記仮想機能に障害が発生したことを検出し、当該障害の発生を前記ホストに通知するゲスト用障害検出部と、を有し、前記ホストは、前記Ｉ／Ｏデバイスが装着されたスロット番号と、ＶＦ固有情報を前記メモリ上で保持するＩ／Ｏ対応情報と、障害が発生した前記Ｉ／Ｏデバイスのスロット番号を特定するホスト用障害検出部と、を有し、前記ゲスト用障害検出部は、前記仮想機能の障害を検出すると、前記仮想デバイス名及びＶＦ固有情報を含むデバイス情報を参照して前記障害が発生した仮想機能の仮想デバイス名を取得し、当該仮想デバイス名で前記デバイス情報を参照して、前記取得した仮想デバイス名に対応するＶＦ固有情報を取得し、前記取得したＶＦ固有情報を前記ホスト用障害検出部へ送信し、前記ホスト用障害検出部は、前記ゲスト用障害検出部から前記ＶＦ固有情報を受信すると、前記Ｉ／Ｏ対応情報を参照して、前記受信したＶＦ固有情報に対応するスロット番号を特定する。
【発明の効果】
【００１２】
したがって、本発明は、ＳＲ−ＩＯＶに対応するＩ／Ｏデバイスを搭載している仮想計算機システムで、障害が発生した物理的なＩ／Ｏデバイスを特定することができ、速やかなＩ／Ｏデバイスの交換が可能になる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態を示し、本発明を適用する仮想計算機システムの一例を示すブロック図である。
【図２】本発明の第１の実施形態を示し、Ｉ／Ｏデバイスとスロット及びポートの関係を示す斜視図である。
【図３】本発明の第１の実施形態を示し、仮想計算機が保持するデバイス情報の一例を示す図である。
【図４】本発明の第１の実施形態を示し、ホストＯＳが保持するＩ／Ｏ対応情報の一例を示す図である。
【図５】本発明の第１の実施形態を示し、ゲストＯＳで実行されるゲスト用障害検知命令列の処理の一例を示すフローチャートである。
【図６】本発明の第１の実施形態を示し、ホストＯＳで実行されるホスト用障害検知命令列の処理の一例を示すフローチャートである。
【図７】本発明の第１の実施形態を示し、管理計算機で実行される表示命令列の処理の一例を示すフローチャートである。
【図８】本発明の第２の実施形態を示し、ホストＯＳで実行されるホスト用障害検知命令列の処理の一例を示すフローチャートである。
【図９】本発明の第２の実施形態を示し、管理計算機で実行される表示命令列の処理の一例を示すフローチャートである。
【図１０】本発明の変形例を示し、仮想計算機システムの一例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【００１５】
図１は、第１の実施形態を示し、本発明を適用する仮想計算機システムの一例を示すブロック図である。
【００１６】
図１において、計算機１００は、ＣＰＵ１０１と、メモリ１０２と、１つまたは複数のＳＲ−ＩＯＶデバイス１０３−１、１０３−２と、通信制御部１０４を有し、ＣＰＵ１０１から通信制御部１０４の各部は相互に接続されている。なお、ＳＲ−ＩＯＶデバイス１０３−１、１０３−２の総称を符号１０３で示す。
【００１７】
メモリ１０２は、１つまたは複数の仮想マシン１０５−１、１０５−２と、ホスト用障害検知命令列１０６と、ホストＯＳ１０７を格納する。なお、仮想マシン１０５−１、１０５−２の総称を符号１０５で示す。
【００１８】
ホストＯＳ１０７は、計算機１００の資源を仮想化して仮想マシン１０５に割り当てる仮想化部１１５と、ＳＲ−ＩＯＶデバイス１０３の物理機能であるＰｈｙｓｉｃａｌ Ｆｕｎｃｔｉｏｎ（以下、ＰＦとする）１１６にアクセスするＰＦドライバ１１８を含む。また、ホストＯＳ１０７は、ホスト用障害検出命令列１０６が使用するＩ／Ｏ対応情報１１４を含む。
【００１９】
ホスト用障害検知命令列１０６は、計算機１００の障害情報を収集及び解析して、障害が発生したＳＲ−ＩＯＶデバイス（Ｉ／Ｏデバイス）１０３−１、１０３−２の位置を特定する情報を、ネットワーク１３０経由で計算機１００の外部に通知する機能を持つ命令列（プログラム）である。
【００２０】
仮想マシン１０５−１、１０５−２は、ゲスト用障害検知命令列１０８と、ゲストＯＳ１０９と、１つまたは複数の仮想デバイス１１０を有する。なお、仮想デバイス１１０は、ホストＯＳ１０７の仮想化部１１５が提供するデバイスであり、本実施形態ではＳＲ−ＩＯＶデバイス１０３の仮想機能であるＶｉｒｔｕａｌ  Ｆｕｎｃｔｉｏｎ（以下、ＶＦ）に対応するＩ／Ｏデバイスを仮想デバイスとして提供する。
【００２１】
ゲスト用障害検知命令列１０８は、仮想マシン１０５の障害情報を収集及び解析して、障害が発生した仮想デバイスを特定する情報を、ホスト用障害検知命令列１０６に通知する機能を持つ命令列である。
【００２２】
ゲストＯＳ１０９は、デバイス情報１１１と、ＯＳログ情報１１２と、１つまたは複数のＶｉｒｔｕａｌ Ｆｕｎｃｔｉｏｎドライバ（以下、ＶＦドライバとする）１１３−１、１１３−２を有する。ゲストＯＳ１０９は図示しないアプリケーションまたはサービスを実行する。なお、ＶＦドライバ１１３−１、１１３−２の総称を符号１１３で示す。また、図示の例では２つのＶＦドライバ１１３の例を示したが、仮想マシン１０５に割り当てられた仮想デバイス１１０の数に応じて異なる。
【００２３】
計算機１００は、複数のスロットを備えて、１以上のＳＲ−ＩＯＶデバイス１０３−１，１０３−２を装着する。ＳＲ−ＩＯＶデバイス１０３は、ＰＦ１１６と、１つまたは複数のＶＦ１１７−１、１１７−２を有する。なお、ＶＦ１１７−１（ＶＦ＃１）、１１７−２（ＶＦ＃２）の総称を符号１１７で示す。
【００２４】
ＰＦ１１６は、ＰＦドライバ１１８からの仮想デバイス設定等の命令を受け仮想デバイスを仮想マシンに提供したり、ＳＲ−ＩＯＶデバイス１０３の物理情報をＰＦドライバ１１８に提供したりする働きをする。
【００２５】
ＶＦ１１７は、ＶＦドライバ１１３からの制御命令を受け、仮想マシン１０５から、ホストＯＳ１０７を介さずに直接ＳＲ−ＩＯＶデバイス１０３を制御したり、あるいは、ＳＲ−ＩＯＶデバイス１０３の情報をＶＦドライバ１１３に提供したりする働きをする。ＳＲ−ＩＯＶデバイス１０３−１は、２つのポート＃１（８１−２）、（ポート＃２）８２−２を備える。なお、ポート８１−１、８１−２の総称を符号８１で示す。
【００２６】
管理ＰＣ１２０は、ＣＰＵ１２１と、メモリ１２２と、画像制御部１２３と、通信制御部１２４を有し、ＣＰＵ１２１から通信制御部１２４の各部は相互に接続されている。
【００２７】
メモリ１２２は、表示命令列１２６を格納する。画像制御部１２３は、ディスプレイ１２５と接続されている。計算機１００の通信制御部１０４と管理ＰＣ１２０の通信制御部１２４はネットワーク１３０を介して接続されている。
【００２８】
表示命令列１２６は、ホスト用障害検知命令列１０６から、障害の発生したＳＲ−ＩＯＶデバイス１０３の位置を特定する情報を受信し、ディスプレイ１２５に受信した情報を表示する命令列である。
【００２９】
ゲスト用障害検出命令列１０８と、ホスト用障害検出命令列１０６の各機能部はプログラムとしてメモリ１０２にロードされる。
【００３０】
ＣＰＵ１０１は、各機能部のプログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、ＣＰＵ１０１は、ホスト用障害検出命令列１０６に従って動作することでホスト障害検出部として機能する。他のプログラムについても同様である。さらに、ＣＰＵ１０１は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。
【００３１】
各機能を実現するプログラム、テーブル等の情報は、図示しないストレージシステムや不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００３２】
図２は、ＳＲ−ＩＯＶデバイス１０３を装着するスロットの一例を示す斜視図である。計算機１００は、ＣＰＵ１０１やメモリ１０２を搭載するシステムボード９０に、ＳＲ−ＩＯＶデバイス１０３を装着する一つ以上のスロット９１−１、９１−２を備える。なお、スロット９１−１、９１−２の総称を符号９１とする。図示の例では、システムボード９０に２つのスロット９１を備えた例を示す。スロット９１は、例えば、ＰＣＩ  Ｅｘｐｒｅｓｓに準拠したものである。
【００３３】
スロット（＃１）９１−１にはＳＲ−ＩＯＶデバイス＃１（１０３−１）を装着し、スロット（＃２）９１−２にはＳＲ−ＩＯＶデバイス＃１（１０３−１）を装着する。ＳＲ−ＩＯＶデバイス＃１（１０３−１）には２つのポート（＃１）８１−１、ポート（＃２）８１−２を備える。ＳＲ−ＩＯＶデバイス＃２（１０３−２）には２つのポート（＃１）８２−１、ポート（＃２）８２−２を備える。ＳＲ−ＩＯＶデバイス＃１（１０３−１）は、例えば、ネットワークインターフェースカードであり、ＳＲ−ＩＯＶデバイス＃２（１０３−２）は、例えば、ＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）である。
【００３４】
なお、ポート８１−１、８１−２の総称を符号８１で表し、ポート８２−１、８２−２の総称を符号８２で表す。
【００３５】
図３は、本発明におけるデバイス情報１１１の例である。デバイス情報１１１は、仮想マシン１０５が有している仮想デバイス１１０について、行番号１１１１と、仮想デバイス名１１１２と、ＶＦ固有情報１１１３を格納する。ＶＦ固有情報の例としては、通信ポートのＭＡＣアドレスや、Ｆｉｂｒｅ ＣｈａｎｎｅｌポートのＷＷＮ（Ｗｏｒｌｄ Ｗｉｄｅ Ｎａｍｅ）などがある。
【００３６】
なお、デバイス情報１１１は、後述するようにゲスト用障害検知命令列１０８がＶＦドライバ１１３を使用して生成する例を示すが、ゲストＯＳ１０９がＶＦドライバ１１３を利用して生成するようにしてもよい。
【００３７】
図４は、本発明におけるＩ／Ｏ対応情報１１４の例である。Ｉ／Ｏ対応情報１１４は、計算機１００が有しているＳＲ−ＩＯＶデバイス１０３について、行番号１１４１と、システムボード９０に搭載されているスロット番号１１４２と、ＳＲ−ＩＯＶデバイス名１１４３と、ＶＦ名１１４４と、ＶＦ固有情報１１４５とポート番号１１４６を格納する。
【００３８】
スロット番号１１４２は、ＳＲ−ＩＯＶデバイス１０３が搭載されているスロット９１の位置に対応する番号である。ＳＲ−ＩＯＶデバイス名１１４３は、ＳＲ−ＩＯＶデバイス１０３の種類に対応する。ＶＦ名１１４４は、ＳＲ−ＩＯＶデバイス１０３のポート番号（＃１、＃２）に対応する。ＶＦ固有情報１１４５は、ホストＯＳ１０７とゲストＯＳ１０９の両方から取得することができる共通の情報であり、上述のように通信ポートのＭＡＣアドレスや、Ｆｉｂｒｅ ＣｈａｎｎｅｌポートのＷＷＮなどで構成される。
【００３９】
これらを組み合わせると、ゲストＯＳ１０９上で取得したＶＦ固有情報１１１３をホストＯＳ１０７に伝えることができれば、ホストＯＳ１０７上でＩ／Ｏ対応情報１１４を参照してＶＦ固有情報１１４５を検索することにより、ＳＲ−ＩＯＶデバイス１０３のスロット番号１１４２と、ＳＲ−ＩＯＶデバイス１０３の種類（デバイス名）１１４３と、ＳＲ−ＩＯＶデバイス１０３のポート番号１１４６を一意に特定することができる。
【００４０】
上記Ｉ／Ｏ対応情報１１４は、ホストＯＳ１０７が起動した後に、ＳＲ−ＩＯＶデバイス１０３から取得した情報で生成される。
【００４１】
図５は、本発明におけるゲスト用障害検知命令列１０８の処理の一例を示すフローチャートである。このゲスト用障害検知命令列１０８は、仮想マシン１０５のゲストＯＳ１０９を介してＣＰＵ１０１で実行される。
【００４２】
ステップ４０１では、ゲスト用障害検知命令列１０８が、ＯＳログ情報１１２を検索する。以下、
ステップ４０２では、ゲスト用障害検知命令列１０８が、ＯＳログ情報１１２に仮想デバイスの障害情報があるか否かを判定し、障害情報が存在しない場合はステップ４０１へ進み、存在する場合はステップ４０３へ進む。
【００４３】
ステップ４０３では、ゲスト用障害検知命令列１０８が、ＶＦドライバ１１３を使用して、仮想デバイス１１０の仮想デバイス名１１１２と、ＶＦ固有情報１１１３を取得し、デバイス情報１１１を作成する。ＶＦドライバ１１３は、ＶＦ１１７からＳＲ−ＩＯＶデバイス１０３の仮想情報を取得することができる。仮想情報とは、ＳＲ−ＩＯＶデバイス１０３が仮想マシン１０５に仮想デバイス１１０として提供している情報であり、仮想デバイス名とＶＦ固有情報が含まれる。しかし、仮想情報には、ＳＲ−ＩＯＶデバイス１０３の物理情報であるＳＲ−ＩＯＶデバイス名やＶＦ名は含まれない。つまり、ＶＦドライバ１１３は、仮想デバイス名及びＶＦ固有情報を取得できるが、ＳＲ−ＩＯＶデバイス名及びＶＦ名は取得できない。
【００４４】
ステップ４０４では、ゲスト用障害検知命令列１０８が障害の発生した仮想デバイス名を取得する。障害が発生した仮想デバイス名はステップ４０２で取得したＯＳログ情報１１２から得られる値である。
【００４５】
ステップ４０５では、ゲスト用障害検知命令列１０８がデバイス情報１１１から、障害が発生した仮想デバイス名を含む行を特定する。
【００４６】
ステップ４０６では、ゲスト用障害検知命令列１０８がステップ４０５で特定した行に記載されているＶＦ固有情報１１１３を取得する。
【００４７】
ステップ４０７では、ゲスト用障害検出命令列１０８がステップ４０６で取得したＶＦ固有情報１１１３を、ホスト用障害検知命令列１０６へ通知し、ステップ４０１へ進む。
【００４８】
上記処理により、仮想マシン１０５ではＳＲ−ＩＯＶデバイス１０３に障害が発生すると、障害検知のエージェントとして機能するゲスト用障害検出命令列１０８が、ホスト用障害検出命令列１０６に障害が発生したＶＦ固有情報１１１３を送信する。
【００４９】
図６は、本発明におけるホスト用障害検知命令列１０６の処理の一例を示すフローチャートである。このホスト用障害検出命令列１０６は、ホストＯＳ１０７を介してＣＰＵ１０１で実行される。
【００５０】
ステップ５０１では、ホスト用障害検出命令列１０６が仮想マシン１０５からの通知を待つ。
【００５１】
ステップ５０２では、ホスト用障害検出命令列１０６は通知が来たか否かを判定し、通知が来ない場合はステップ５０１へ戻り、通知が来た場合はステップ５０３へ進む。
【００５２】
ステップ５０３では、ホスト用障害検出命令列１０６が仮想マシン１０５から障害の発生したＶＦ固有情報を受信する。
【００５３】
ステップ５０４では、ホスト用障害検出命令列１０６はホストＯＳ１０７が保持しているＩ／Ｏ対応情報１１４を取得する。
【００５４】
ステップ５０５では、ホスト用障害検出命令列１０６がＩ／Ｏ対応情報１１４を検索して、仮想マシン１０５から受信したＶＦ固有情報を含む行を特定する。
【００５５】
ステップ５０６では、ホスト用障害検出命令列１０６がステップ５０５で特定した行に記載されているスロット番号１１４２と、ＳＲ−ＩＯＶデバイス名１１４２とＶＦ名１１４４を取得する。
【００５６】
ステップ５０７では、ホスト用障害検出命令列１０６がステップ５０６で取得したスロット番号と、ＳＲ−ＩＯＶデバイス名とＶＦ名と当該計算機の識別子を、管理ＰＣ１２０の表示命令列１２６へ通知し、ステップ５０１へ進む。
【００５７】
ゲスト用障害検知命令列１０８は、ＳＲ−ＩＯＶデバイス１０３に障害が発生したことと、そのＶＦ固有情報１１１３を取得することができる。ホスト用障害検知命令列１０６は、ＶＦ固有情報が決まると、ＳＲ−ＩＯＶデバイス１０３のスロット番号１１４２と、ＳＲ−ＩＯＶデバイスの種類（名称）１１１３と、ＳＲ−ＩＯＶデバイスのＶＦ名１１４４を一意に特定することができる。従って、ゲスト用障害検知命令列１０８が、ＳＲ−ＩＯＶデバイス１０３の障害発生時にホスト用障害検知命令列１０６に対してＶＦ固有情報を通知すると、ホスト用障害検知命令列１０６は、Ｉ／Ｏ対応情報１１４を参照して、通知されたＶＦ固有情報を含む行を特定できる。この結果、ＳＲ−ＩＯＶに対応するＩ／Ｏデバイスを搭載している本実施形態の仮想計算機システムでは、障害が発生したＳＲ−ＩＯＶデバイスのスロット番号とＳＲ−ＩＯＶデバイスの種類とＶＦ名１１４４を、一意に特定することが可能となる。
【００５８】
図７は、本発明における表示命令列１２６の処理の一例を示すフローチャートである。この表示命令列１２６は、管理ＰＣ１２０の図示しないＯＳ１０９を介してＣＰＵ１２１で実行される。
【００５９】
ステップ６０１では、表示命令列１２６が計算機１００からの通知を待つ。
【００６０】
ステップ６０２では、表示命令列１２６が計算機１００から通知が来たか否かを判定し、通知が来ない場合はステップ６０１へ戻り、通知が来た場合はステップ６０３へ進む。
【００６１】
ステップ６０３では、表示命令列１２６が計算機１００から計算機の識別子とスロット番号とＳＲ−ＩＯＶデバイス名とＶＦ名を受信する。
【００６２】
ステップ６０４では、表示命令列１２６が送信元の計算機１００の識別子と、ステップ６０３で受信したスロット番号とＳＲ−ＩＯＶデバイス名とＶＦ名を、画像制御部１２３を介してディスプレイ１２５に表示し、ステップ６０１へ進む。
【００６３】
本発明を適用すると、ＳＲ−ＩＯＶに対応するＩ／Ｏデバイスを搭載している仮想計算機システムにおいて、仮想マシン１０５のＯＳログ情報１１２とデバイス情報１１１、ホストＯＳ１０７のＩ／Ｏ対応情報１１４を元に、管理ＰＣ１２０の表示命令列１２６により障害が発生した計算機の識別子とＳＲ−ＩＯＶデバイスが搭載されたスロット番号と、ＳＲ−ＩＯＶデバイスの種類、ＳＲ−ＩＯＶデバイスのＶＦ名とをディスプレイ１２５に表示することが可能となる。
【００６４】
前記従来例では、障害が発生した計算機のみを特定していたため、保守員は計算機に到着してから、障害が発生したＳＲ−ＩＯＶデバイスを探した後に交換する必要があった。これに対して本発明では、保守員が計算機に到着してから、障害の発生したＳＲ−ＩＯＶデバイスを探す必要はなくなって、計算機とスロット番号を管理ＰＣ１２０で得ているので、すぐに障害が発生したＳＲ−ＩＯＶデバイスを交換できるようになり、従来よりも速やかなＩ／Ｏカード交換が可能となる。
【００６５】
なお、上記実施形態では、計算機の識別子とＳＲ−ＩＯＶデバイスが搭載されたスロット番号と、ＳＲ−ＩＯＶデバイスの種類、ＳＲ−ＩＯＶデバイスのＶＦ名とをディスプレイ１２５に表示する例を示したが、保守員が障害の発生したＳＲ−ＩＯＶデバイス１０３を正常なデバイスに交換する場合では、計算機の識別子とＳＲ−ＩＯＶデバイスが搭載されたスロット番号を表示すればよい。
【００６６】
なお、計算機１００を多数収納する筐体を複数有する場合は、計算機の識別子に筐体の識別子を加えるようにしてもよい。
【００６７】
＜第２実施形態＞
図８、図９は第２の実施形態を示す。前記第１実施形態では、管理ＰＣ１２０のディスプレイ１２５に、障害が発生したＳＲ−ＩＯＶデバイス１０３のスロット番号とＳＲ−ＩＯＶデバイス名とＶＦ名を表示する例を示した。本第２実施形態では、ＶＦ名に代わってポート番号を表示する例を示す。
【００６８】
図８は、第２実施形態におけるホスト用障害検知命令列１０６の処理の一例を示すフローチャートである。ステップ５０１〜ステップ５０５までは前記第１実施形態と同様である。
【００６９】
ステップ５０６Ａでは、ホスト用障害検出命令列１０６がステップ５０５で特定した行に記載されているスロット番号１１４２と、ＳＲ−ＩＯＶデバイス名１１４２とポート番号１１４６を取得する。
【００７０】
ステップ５０７Ａでは、ホスト用障害検出命令列１０６がステップ５０６で取得したスロット番号と、ＳＲ−ＩＯＶデバイス名とポート番号と当該計算機１００の識別子を、管理ＰＣ１２０の表示命令列１２６へ通知し、ステップ５０１へ進む。
【００７１】
ゲスト用障害検知命令列１０８は、ＳＲ−ＩＯＶデバイス１０３に障害が発生したことと、そのＶＦ固有情報１１１３を取得することができる。ホスト用障害検知命令列１０６は、ＶＦ固有情報が決まると、ＳＲ−ＩＯＶデバイス１０３のスロット番号１１４２と、ＳＲ−ＩＯＶデバイスの種類（名称）１１１３と、ＳＲ−ＩＯＶデバイスのポート番号１１４６を一意に特定することができる。
【００７２】
図９は、第２実施形態における表示命令列１２６の処理の一例を示すフローチャートである。ステップ６０１〜ステップ６０２までは前記第１実施形態と同様である。
【００７３】
ステップ６０３Ａでは、表示命令列１２６が計算機１００から計算機の識別子、スロット番号、ＳＲ−ＩＯＶデバイス名とポート番号を受信する。
【００７４】
ステップ６０４では、表示命令列１２６が送信元の計算機１００の識別子と、ステップ６０３で受信したスロット番号とＳＲ−ＩＯＶデバイス名とポート番号を、画像制御部１２３を介してディスプレイ１２５に表示し、ステップ６０１へ進む。
【００７５】
本発明を適用すると、ＳＲ−ＩＯＶに対応するＩ／Ｏデバイスを搭載している仮想計算機システムにおいて、仮想マシン１０５のＯＳログ情報１１２とデバイス情報１１１、ホストＯＳ１０７のＩ／Ｏ対応情報１１４を元に、管理ＰＣ１２０の表示命令列１２６により障害が発生した計算機の識別子とＳＲ−ＩＯＶデバイスが搭載されたスロット番号と、ＳＲ−ＩＯＶデバイスの種類、ＳＲ−ＩＯＶデバイスのポート番号とを表示することが可能となる。
【００７６】
前記第１実施形態と同様に、保守員が計算機に到着してから、障害の発生したＳＲ−ＩＯＶデバイスを探す必要はなくなって、計算機とスロット番号を管理ＰＣ１２０で得ているので、すぐに障害が発生したＳＲ−ＩＯＶデバイスを交換できるようになり、従来よりも速やかなＩ／Ｏカード交換が可能となる。
【００７７】
第２実施形態では、保守員は、障害が発生したポート番号を得ることができるので、当該ポート番号に接続されたデバイスやネットワークを特定することができ、障害の影響範囲を推定することができる。
【００７８】
なお、上記第１実施形態、第２実施形態では、ホストＯＳ１０７に仮想化部１１５を備えて仮想マシン１０５を生成する例を示したが、ホストＯＳ１０７に代わってハイパーバイザが仮想マシン１０５を管理するようにしても良い。この場合、図１に示したホストＯＳ１０７に代わって、図１０で示すように、ハイパーバイザ１０７Ａ上で仮想マシン１０５を提供するようにすればよい。つまり、ハイパーバイザ１０７Ａは物理計算機１００計算機資源を仮想化して仮想マシン１０５に割り当てる仮想化部を含むホストとして機能する。
【００７９】
この場合、ハイパーバイザ１０７Ａが、Ｉ／Ｏ対応情報１１４とＰＦドライバ１１８とホスト用障害検出命令列１０６を有し、ＶＦ１１７に障害が発生すると、ゲスト用障害検出命令列１０８がハイパーバイザ１０７Ａのホスト用障害検出命令列１０６に上記通知を行う。そして、ハイパーバイザ１０７Ａのホスト用障害検出命令列１０６は、計算機の識別子とスロット番号を管理ＰＣ１２０へ通知すればよい。
【００８０】
なお、上記第１実施形態、第２実施形態では、ＯＳログ情報から仮想デバイス１１０（ＳＲ−ＩＯＶデバイス１０３）の障害を検出する例を示したが、障害検出については前記特許文献１等、公知又は周知の技術を適宜用いることができる。
【符号の説明】
【００８１】
１００  計算機、
１０１  ＣＰＵ
１０２  メモリ
１０３  ＳＲ−ＩＯＶデバイス
１０４  通信制御部
１０５  仮想マシン
１０６  ホスト用障害検知命令列
１０７  ホストＯＳ
１０８  ゲスト用障害検知命令列
１０９  ゲストＯＳ
１１０  仮想デバイス
１１１  デバイス情報
１１２  ＯＳログ情報
１１３  ＶＦドライバ
１１４  Ｉ／Ｏ対応情報
１１５  仮想化機構
１１６  ＰＦ
１１７  ＶＦ
１１８  ＰＦドライバ
１２０  管理ＰＣ
１２１  ＣＰＵ
１２２  メモリ
１２３  画像制御部
１２４  通信制御部
１２５  ディスプレイ
１２６  表示命令列
【図１】
2013120494.tif 000003
【図２】
2013120494.tif 000004
【図３】
2013120494.tif 000005
【図４】
2013120494.tif 000006
【図５】
2013120494.tif 000007
【図６】
2013120494.tif 000008
【図７】
2013120494.tif 000009
【図８】
2013120494.tif 000010
【図９】
2013120494.tif 000011
【図１０】
2013120494.tif 000012