(57)【要約】【課題】仮想化ソフトウェアと第１のＯＳを独立して実行するマルチコアプロセッサで仮想化ソフトウェアを実行するプロセッサコアのみをリセットさせる。【解決手段】第１のＯＳに第１のプロセッサコアグループを割り当て、仮想化部に第２のプロセッサコアグループを割り当て、仮想化部は、第２のプロセッサコアグループをリセットするための割込みハンドラを登録し、第１のＯＳが、仮想化部の起動時に第２のプロセッサコアグループに所属する各プロセッサコアの識別子を取得して保持し、第１のＯＳが、仮想化部を監視して所定の条件に基づいて前記仮想化部の再起動を行うことを決定し、前記保持した識別子に対応する第２のプロセッサコアグループにリセット用割込みを発行し、第２のプロセッサコアグループは、リセット用割込みを受信すると割込みハンドラを実行して自身のプロセッサコアをリセットする。【選択図】図１
2015088014.tif 000002
【特許請求の範囲】
【請求項１】
仮想化支援機能を有するマルチコアプロセッサと、メモリとを含む計算機の制御方法であって、
前記計算機は、
前記マルチコアプロセッサのうち前記仮想化支援機能を無効にした第１のプロセッサグループと、前記マルチコアプロセッサのうち前記仮想化支援機能を有効にした第２のプロセッサグループと、前記メモリの一部領域からなる第１のメモリグループと、前記メモリの残りの領域からなる第２のメモリグループとを含み、
第１のＯＳに前記第１のプロセッサコアグループと前記第１のメモリグループを割り当てて、前記第１のＯＳを起動させる第１のステップと、
仮想計算機を稼働させる仮想化部に前記第２のプロセッサコアグループと前記第２のメモリグループを割り当て、前記仮想化部を起動させる第２のステップと、
前記仮想化部が、前記メモリのうちの所定の領域と、前記第２のプロセッサグループのうちの所定のプロセッサコアと、を前記仮想計算機に割り当てて第２のＯＳを起動させる第３のステップと、
前記仮想化部が、前記第２のプロセッサコアグループをリセットするための割込みハンドラを登録する第４のステップと、
前記第１のＯＳが、前記仮想化部の起動時に前記第２のプロセッサコアグループに所属する各プロセッサコアの識別子を取得して保持する第５のステップと、
前記第１のＯＳが、前記仮想化部の稼働状態を監視して、所定の条件に基づいて前記仮想化部の再起動を行うか否かを決定する第６のステップと、
前記仮想化部の再起動を行う場合は、前記第１のＯＳが、前記保持した識別子に対応する第２のプロセッサコアグループに所属するプロセッサコアへリセット用割込みを発行する第７のステップと、
前記仮想化部に割り当てられた前記第２のプロセッサコアグループは、前記リセット用割込みを受信すると、前記割込みハンドラを実行して、自身のプロセッサコアのリセットを実施する第８のステップと、
前記第１のＯＳが、前記第２のプロセッサコアグループへスタートアップ用割込みを発行する第９のステップと、
を含むことを特徴とする計算機の制御方法。
【請求項２】
請求項１に記載の計算機の制御方法であって、
前記第４のステップは、
前記仮想化部が、前記第２のプロセッサコアグループをリセットする割込みハンドラとして、前記第２のプロセッサグループの各プロセッサコアに対応する割込みハンドラへ各プロセッサコアのセルフリセット処理を登録し、
前記第８のステップは、
前記第２のプロセッサコアグループが前記リセット用割込みを受け付けて、前記登録された割込みハンドラを呼び出して、前記セルフリセット処理を前記プロセッサコア毎に独立して実施することを特徴とする計算機の制御方法。
【請求項３】
請求項１に記載の計算機の制御方法であって、
前記第６のステップは、
前記第１のＯＳが、前記仮想化部の稼働状態を監視して異常が発生したか否かを判定するステップと、
前記第１のＯＳが、前記異常が発生したときには前記仮想化部の再起動を決定するステップと、を含むことを特徴とする計算機の制御方法。
【請求項４】
請求項１に記載の計算機の制御方法であって、
前記第７のステップは、
前記リセット用割込みとして、ＮＭＩ（Non Maskable Interrupt）を発行することを特徴とする計算機の制御方法。
【請求項５】
請求項２に記載の計算機の制御方法であって、
前記セルフリセット処理は、
前記プロセッサコアの初期化用割込みを自身のプロセッサコアへ発行することを特徴とする計算機の制御方法。
【請求項６】
請求項２に記載の計算機の制御方法であって、
前記第９のステップは、
前記割込み制御部が、前記第７のステップで第２のプロセッサコアグループに所属するプロセッサコアへリセット用割込みを発行してから所定時間が経過した後に、前記第２のプロセッサコアグループへＳＩＰＩ（Ｓｔａｒｔｕｐ  ＩＰＩ）を発行することを特徴とする計算機の制御方法。
【請求項７】
請求項４に記載の計算機の制御方法であって、
前記第３のステップは、
前記仮想計算機で前記第２のＯＳが稼働する状態で前記ＮＭＩを受信したときに、前記ＮＭＩを仮想計算機に転送するのに代わって前記仮想化部へ遷移する設定を実行し、
前記第４のステップは、
前記仮想化部が、前記仮想化支援機能を無効化する命令と、プロセッサコアの初期化用割込みを自身のプロセッサコアへ発行する命令と、を前記第２のプロセッサコアグループ内の各プロセッサコアの前記割込みハンドラへ登録し、
前記第９のステップは、
前記第１のＯＳが、前記第２のプロセッサコアグループへスタートアップ用割込みを前記仮想化部へ発行するステップに加えて、
前記第２のプロセッサコアグループが、前記スタートアップ用割込みを受信して、前記仮想化支援機能を有効化する命令を前記第２のプロセッサコアグループの各プロセッサコアに発行するステップと、
前記第２のプロセッサコアグループが、仮想化部を再起動するステップと、を含むことを特徴とする計算機の制御方法。
【請求項８】
仮想化支援機能を有するマルチコアプロセッサと、メモリとを含む計算機であって、
前記マルチコアプロセッサのうち前記仮想化支援機能を無効にした第１のプロセッサグループと、
前記マルチコアプロセッサのうち前記仮想化支援機能を有効にした第２のプロセッサグループと、
前記メモリの一部領域からなる第１のメモリグループと、
前記メモリの残りの領域からなる第２のメモリグループと、
前記第１のプロセッサグループ及び前記第１のメモリグループを割り当てる第１のＯＳと、
前記第２のプロセッサグループ及び前記第２のメモリグループを割り当てて、仮想計算機を稼働させる仮想化部と、を有し、
前記仮想化部は、
前記第２のプロセッサコアグループをリセットするための割込みハンドラ処理を登録し、前記メモリのうちの所定の領域と、前記第２のプロセッサグループのうちの所定のマルチコアプロセッサとを前記仮想計算機に割り当てて、第２のＯＳを起動し、
前記第１のＯＳは、
前記仮想化部の稼働状態を監視して、所定の条件に基づいて前記仮想化部の再起動を行うか否かを決定する監視部と、
前記仮想化部の起動時に前記第２のプロセッサコアグループに所属する各プロセッサコアの識別子を取得して保持し、前記監視部が前記仮想化部の再起動を決定した場合は、前記保持した識別子に対応する第２のプロセッサコアグループに所属するプロセッサコアへリセット用割込みを発行する割込み制御部と、を有し、
前記仮想化部に割り当てられた前記第２のプロセッサコアグループは、
前記リセット用割込みを受信すると、前記割込みハンドラ処理を実行して、自身のプロセッサコアのリセットを実施し、
前記割込み制御部は、
前記第２のプロセッサコアグループへスタートアップ用割込みを発行することを特徴とする計算機。
【請求項９】
請求項８に記載の計算機であって、
前記仮想化部は、
前記第２のプロセッサコアグループをリセットする割込みハンドラとして、前記第２のプロセッサグループの各プロセッサコアに対応する割込みハンドラへ各プロセッサコアのセルフリセット処理を登録し、
前記第２のプロセッサコアグループは、
前記リセット用割込みを受け付けて、前記登録された割込みハンドラを呼び出して、前記セルフリセット処理を前記プロセッサコア毎に独立して実施することを特徴とする計算機。
【請求項１０】
請求項８に記載の計算機であって、
前記監視部は、
前記仮想化部の稼働状態を監視して異常が発生したか否かを判定し、前記異常が発生したときには前記仮想化部の再起動を決定することを特徴とする計算機。
【請求項１１】
請求項８に記載の計算機であって、
前記割込み制御部は、
前記リセット用割込みとして、ＮＭＩ（Non Maskable Interrupt）を発行することを特徴とする計算機。
【請求項１２】
請求項９に記載の計算機であって、
前記セルフリセット処理は、
前記プロセッサコアの初期化用割込みを自身のプロセッサコアへ発行することを特徴とする計算機。
【請求項１３】
請求項９に記載の計算機であって、
前記割込み制御部は、
前記第２のプロセッサコアグループに所属するプロセッサコアへリセット用割込みを発行してから所定時間が経過した後に、前記第２のプロセッサコアグループへＳＩＰＩ（Ｓｔａｒｔｕｐ  ＩＰＩ）を発行することを特徴とする計算機。
【請求項１４】
請求項１１に記載の計算機であって、
前記仮想計算機は、
前記第２のＯＳが稼働する状態で前記ＮＭＩを受信したときに、前記ＮＭＩを仮想計算機に転送するのに代わって前記仮想化部へ遷移する設定を実行し、
前記仮想化部は、
前記仮想化支援機能を無効化する命令と、プロセッサコアの初期化用割込みを自身のプロセッサコアへ発行する命令と、を前記第２のプロセッサコアグループ内の各プロセッサコアの前記割込みハンドラへ登録し、
前記第２のプロセッサコアグループが、
前記スタートアップ用割込みを受信して、前記仮想化支援機能を有効化する命令を前記第２のプロセッサコアグループの各プロセッサコアに発行した後に、前記仮想化部を再起動するステップと、を含むことを特徴とする計算機。
【請求項１５】
請求項８に記載の計算機であって、
前記第１のプロセッサグループは、
前記マルチコアプロセッサのブート管理機能を持つ唯一のＢＳＰコアを含むことを特徴とする計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチコアプロセッサを有する計算機で仮想化ソフトウェアを利用する場合の制御技術に関する。
【背景技術】
【０００２】
近年、企業で用いられるストレージ装置では、単体のアクセス性能に加えて、低価格、省エネや省スペースといったコストパフォーマンスが重視されている。従来、アクセスＩ／Ｆの種類やプロトコルに応じて個別の専用ストレージ装置が用意されてきた。しかし、近年では、ＳＡＮ（Storage Area Network）とＬＡＮ（Local Area Network）の両方のアクセスＩ／Ｆを備えた統合ストレージ装置が台頭しており、そのコストパフォーマンスの高さに注目が集まっている。
【０００３】
統合ストレージ装置では、同一の筐体内でＳＡＮ  Ｉ／Ｆからのブロックアクセス（セクタ単位でのＨＤＤアクセス手法）を処理するブロックＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）と、ＬＡＮ  Ｉ／Ｆからのファイルアクセス（ファイル単位でのデータアクセス手法）を処理するファイルＯＳの両方を同時に稼働させる必要がある。例えば、単一の計算機上で複数ＯＳの同時稼働を実現する手段として、ＶＭＭ（Virtual Machine Manager）等の仮想化ソフトウェアが知られている。
【０００４】
仮想化ソフトウェアは主にサーバ装置で使われてきた技術で、単一の計算機上で複数の論理区画を生成する。各論理区画では独立して個別のＯＳが実行できるため、統合ストレージ装置内に２つの論理区画を生成し、１つの論理区画ではブロックＯＳを稼働させ、もう一方の論理区画でゲストＯＳとしてファイルＯＳを稼働させ、両者を仮想的な通信経路で接続することにより同時稼働が実現できる。
【０００５】
仮想化ソフトウェアの主な役割は、計算機の物理資源（プロセッサやメモリ、Ｉ／Ｏデバイス）と論理区画との対応付けを管理することである。物理資源の管理のため、仮想化ソフトウェアは論理区画上でのプロセッサの利用状況や割込みによる通信状況等を常時監視し、論理区画上のゲストＯＳに割り当てた資源を超えてアクセスした場合に当該アクセスを抑制する、もしくは処理の代替を行う。
【０００６】
この処理を全てソフトウェアで行うと多大な性能低下(オーバヘッド)を生じるため、近年のｘ８６系のプロセッサでは、仮想化ソフトウェアによる物理資源の管理をハードウェアでサポートするための機能を備えている(例えば、特許文献１)。以下、この種の機能を仮想化支援機能とする。
【０００７】
仮想化ソフトウェアを利用する場合、ソケット内のプロセッサコアは全て仮想化有効状態で運用されている。同様にして仮想化ソフトウェアを利用しない場合では、ソケット内のプロセッサコアは全て仮想化無効状態で運用されている。そして、あるマルチコアプロセッサ上では単一のＶＭＭ、もしくは単一のＯＳが直接動作することを想定しており、マルチコアプロセッサのリセットが必要な場合には、マルチコアプロセッサのソケット上の全てのプロセッサコアが全てリセットされる（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１０−１０８２７１号公報
【特許文献２】特開平６−３２５００８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
マルチコアプロセッサで、ファイルＯＳ（第２のＯＳ）を稼働させる仮想化ソフトウェアと、仮想化ソフトウェアとは独立してファイルＯＳ（第１のＯＳ）を実行させる場合、仮想化ソフトウェアと第１のＯＳにそれぞれプロセッサコアを割り当てる。
【００１０】
しかしながら上記従来技術では、ファイルＯＳ（第２のＯＳ）を稼働させる仮想化ソフトウェアに障害が発生すると、マルチコアプロセッサの全てのプロセッサコアがリセットされてしまい、仮想化ソフトウェアとは独立して稼働しているブロックＯＳ（第１のＯＳ）のプロセッサコアまでリセットされてしまう、という問題があった。
【００１１】
そこで本発明は、上記問題点に鑑みてなされたもので、第２のＯＳを稼働させる仮想化ソフトウェアに障害が発生してプロセッサコアのリセットを行う際に、第１のＯＳのプロセッサコアをリセットすることなく、仮想化ソフトウェアを実行するプロセッサコアのみをリセットさせることを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、仮想化支援機能を有するマルチコアプロセッサと、メモリとを含む計算機の制御方法であって、前記計算機は、前記マルチコアプロセッサのうち前記仮想化支援機能を無効にした第１のプロセッサグループと、前記マルチコアプロセッサのうち前記仮想化支援機能を有効にした第２のプロセッサグループと、前記メモリの一部領域からなる第１のメモリグループと、前記メモリの残りの領域からなる第２のメモリグループとを含み、第１のＯＳに前記第１のプロセッサコアグループと前記第１のメモリグループを割り当てて、前記第１のＯＳを起動させる第１のステップと、仮想計算機を稼働させる仮想化部に前記第２のプロセッサコアグループと前記第２のメモリグループを割り当て、前記仮想化部を起動させる第２のステップと、前記仮想化部が、前記メモリのうちの所定の領域と、前記第２のプロセッサグループのうちの所定のプロセッサコアと、を前記仮想計算機に割り当てて第２のＯＳを起動させる第３のステップと、前記仮想化部が、前記第２のプロセッサコアグループをリセットするための割込みハンドラを登録する第４のステップと、前記第１のＯＳが、前記仮想化部の起動時に前記第２のプロセッサコアグループに所属する各プロセッサコアの識別子を取得して保持する第５のステップと、前記第１のＯＳが、前記仮想化部の稼働状態を監視して、所定の条件に基づいて前記仮想化部の再起動を行うか否かを決定する第６のステップと、前記仮想化部の再起動を行う場合は、前記第１のＯＳが、前記保持した識別子に対応する第２のプロセッサコアグループに所属するプロセッサコアへリセット用割込みを発行する第７のステップと、前記仮想化部に割り当てられた前記第２のプロセッサコアグループは、前記リセット用割込みを受信すると、前記割込みハンドラを実行して、自身のプロセッサコアのリセットを実施する第８のステップと、前記第１のＯＳが、前記第２のプロセッサコアグループへスタートアップ用割込みを発行する第９のステップと、を含む。
【発明の効果】
【００１３】
したがって、本発明は、マルチコアプロセッサで第２のＯＳを稼働させる仮想化部に障害が発生してプロセッサコアのリセットを行う際に、第１のＯＳを実行するプロセッサコアをリセットすることなく、仮想化部を実行するプロセッサコアのみをリセットさせることが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施例を示し、マルチコアプロセッサを有するひとつのハードウェアを用いてファイル機能とブロック機能を統合したストレージ装置の一例を示すブロック図である。
【図２】本発明の実施例を示し、仮想化機能を有効にした物理プロセッサコアグループＢのＬＡＰＩＣ  ＩＤの一例を示す図である。
【図３】本発明の実施例を示し、ＶＭＭが保持する仮想計算機管理状態データ群の一例を示す図である。
【図４】本発明の実施例を示し、第１のＯＳがＶＭＭを起動させる処理の一例を示すシーケンス図である。
【図５】本発明の実施例を示し、ＶＭＭに障害が発生したときの処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態を添付図面に基づいて説明する。
【００１６】
図１は、本発明の実施例を示し、マルチコアプロセッサを用いた計算機システムの一例を示すブロック図である。
【００１７】
本実施例では、統合ストレージ装置を構成するために仮想化ソフトウェア（ＶＭＭ）の非管理下のＯＳとしてブロックＯＳ１３０と、仮想化ソフトウェア上のゲストＯＳとしてファイルサーバＯＳ１６０を同一のハードウェア上で独立して稼働させ、前記第２のＯＳから発行されたストレージ制御コマンドを前記ブロックＯＳが処理し、その後、前記ブロックＯＳが割込みを利用してコマンド完了の通知を前記第２のＯＳへ行う例を説明する。なお、以下では、ブロックＯＳを第１のＯＳ１３０とし、ファイルサーバＯＳを第２のＯＳ１６０とする。
【００１８】
＜ハードウェア構成＞
本発明を実施する統合ストレージ装置のハードウェア構成例について、図１を参照しながら説明する。物理計算機１１０はハードウェアリソースとしてマルチコアプロセッサ１１１と、メモリリソース１１２と、を有する。なお、図示はしないが、ストレージやネットワークなどとの間でデータの送受信を行うＩ／Ｏリソースを含んでいても良い。
【００１９】
マルチコアプロセッサ１１１は、マルチコアプロセッサを利用して複数のプロセッサコアから構成される。各プロセッサコアは仮想化支援機能を有し、仮想化支援機能を有効に設定したコアの物理プロセッサコアグループＢ１１４と、仮想化支援機能を無効に設定したコアの物理プロセッサコアグループＡ１１３と、に分類される。なお、仮想化支援機能としては、例えば、Ｉｎｔｅｌ（登録商標）社のＶＴ−ｘを利用する例を示す。
【００２０】
ここで、マルチコアプロセッサ１１１は、仮想化支援機能が有効な状態をＶＭＸ  ＯＮとし、仮想化支援機能が無効な状態をＶＭＸ  ＯＦＦとする。そして、ＶＭＸ  ＯＮの物理プロセッサコアを物理プロセッサコアグループＢ１１４、プロセッサコア１１４０で示し、ＶＭＸ  ＯＦＦの物理プロセッサコアを物理プロセッサコアグループＡ１１３、プロセッサコア１１３０で示す。
【００２１】
メモリリソース１１２は、第１のＯＳに割り当てられるメモリグループＡ１１５ａと、仮想化ソフトウェアとしてのＶＭＭ（Virtual Machine Monitor）１４０に割り当てられるメモリグループＢ１１５ｂから構成される。メモリグループＡ１１５ａは物理プロセッサコアグループＡ１１３からアクセスされる。メモリグループＢ１１５ｂは物理プロセッサコアグループＢ１１４からアクセスされ、さらにメモリグループＢ１１５ｂの一部は第２のＯＳ１６０から利用される。また、メモリグループＢ１１５ｂのうちＶＭＭ１４０に割り当てられるメモリ領域の一部は、第１のＯＳから直接アクセス可能な共有メモリ領域１１６を含む。
【００２２】
＜ソフトウェア構成＞
次に、物理計算機１１０上で実行されるソフトウェアの構成の主要部について、図１を参照しながら詳述する。
【００２３】
ひとつの物理計算機１１０上では、第１のＯＳと、仮想化ソフトウェアとしてのＶＭＭ１４０がシステムソフトウェアとして独立してそれぞれ稼働する。なお、第１のＯＳはＳＡＮ等を介してＨＤＤ等をセクタ単位でアクセスするＯＳである。また、第２のＯＳ（ファイルＯＳ）ＯＳ１６０は、ＬＡＮ（図示省略）に接続されてファイル単位でデータを管理するＯＳである。
【００２４】
第１のＯＳ１３０は、物理計算機１１０のハードウェアを直接制御できるネイティヴパーティション１０１で稼働し、第２のＯＳ１６０は、ＶＭＭ１４０が管理するゲストパーティション１０２の仮想計算機１５０で稼働する。
【００２５】
まず、ネイティヴパーティション１０１の構成について説明する。
【００２６】
ネイティヴパーティション１０１のＶＭＸ  ＯＦＦの物理プロセッサコアグループＡ１１３では、第１のＯＳ１３０が実行される。第１のＯＳ１３０は、ＶＭＭ１４０の稼働状態を監視するＶＭＭ監視部１３１と、ＶＭＭ１４０に障害が発生したときに物理プロセッサコアグループＢ１１４に割込みをかけてリセットさせる割込み制御部１３２とを含む。なお、ストレージ制御コマンドを実行するコマンド処理部（図示省略）等については、公知または周知の技術を採用すれば良いので、ここでは詳述しない。
【００２７】
ＶＭＭ監視部１３０は、ＶＭＭ１４０の稼働状態を監視して（２０３）、障害が発生した場合には割込み制御部１３２にリセット要求２０２を送信する。ＶＭＭ監視部１３０がＶＭＭ１４０の稼働状態を監視する手法としては、ＶＭＭ１４０のハートビートの検出など、公知または周知の手法を用いることができる。
【００２８】
割込み制御部１３２は、ＶＭＭ１４０の起動時（または起動直後）に、ＶＭＭ１４０が利用するＶＭＸ  ＯＮの物理プロセッサコアグループＢのプロセッサコア１１４０の識別子としてＬＡＰＩＣ（Local Advanced Programmable Interrupt Controller）  ＩＤを取得して、物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１３３に保持する。
【００２９】
割込み制御部１３２は、ＶＭＭ監視部１３１からリセット要求２０２を受け付けると、物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１３３を参照して、ＶＭＭ１４０を実行する物理プロセッサコア１１４０を特定する。割込み制御部１３２は、特定した物理プロセッサコア１１４０に対してＮＭＩ（Non  Maskable Interrupt）を発行する。なお、このとき、物理プロセッサコア１１４０では、ＶＭＭもしくは第２のＯＳが実行されているものとする。
【００３０】
第２のＯＳ１６０を実行する物理プロセッサコアグループＢ１１４は、ＮＭＩを受信すると各プロセッサコア１１４０が、後述するように、割込みハンドラを起動する。
【００３１】
その後、割込み制御部１３２は、所定時間が経過した後に、上記特定した物理プロセッサコア１１４０に対してスタートアップ用割込みとして、ＳＩＰＩ (Ｓｔａｒｔｕｐ  ＩＰＩ：ＩＰＩ＝Inter Processor Interrupt) を発行する。ＮＭＩを受信した物理プロセッサコア１１４０においてＶＭＭ１４０が実行されている場合、割り込みハンドラに登録されたセルフリセットを実行する。一方、ＮＭＩを受信した物理プロセッサコア１１４０において第２のＯＳが実行されている場合、制御をＶＭＭ１４０へ移行してセルフリセットを実行し、その後、上記ＳＩＰＩによって、物理プロセッサコア１１４０のみが再起動して、ＶＭＭ１４０を再起動することになる。
【００３２】
第２のＯＳを実行する物理プロセッサコアグループＡ１１３には、マルチコアプロセッサ１１１を起動させるためブート管理機能を有する唯一の物理プロセッサコアであるＢＳＰ（Bootstrap Processor）コアを含み、統合ストレージ装置の起動を制御する。その他のプロセッサコア１１３０、１１４０はＢＳＰから初期化の指令（INIT IPI (Initialize IPI)）を受信して起動するApplication Processor（以下、ＡＰ）として機能する。なお、ＢＳＰは、図１の物理プロセッサコアグループＡ１１３のプロセッサコア１１３０（ＢＳＰ）として表示し、その他についてはプロセッサコア１１３０（ＡＰ）、１１４０（ＡＰ）として表示した。
【００３３】
また、ＶＭＭ監視部１３１、割込み制御部１３２は、プログラムとしてメモリグループＡ１１５ａにロードされ、物理プロセッサコアグループＡ１１３の各プロセッサコア１１３０で実行される。なお、プロセッサコア１１３０（ＢＳＰ）は、ＩＰＩの発行以外についてはプロセッサコア１１３０（ＡＰ）と同様であるので、上記プログラムの実行についてはプロセッサコア１１３０として区別せずに表記する。
【００３４】
各プロセッサコア１１３０は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、各プロセッサコア１１３０は、ＶＭＭ監視プログラムに従って処理することでＶＭＭ監視部１３１として機能する。他のプログラムについても同様である。さらに、プロセッサコア１１３０は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【００３５】
第２のＯＳの各機能を実現するプログラム、テーブル等の情報は、図示しないストレージサブシステムや不揮発性半導体メモリ、ハードディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶デバイス、または、ＩＣカード、ＳＤカード、ＤＶＤ等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【００３６】
次に、ゲストパーティション１０２のソフトウェア構成について説明する。
【００３７】
ゲストパーティション１０２では、ＶＭＸ  ＯＮの物理プロセッサコアグループＢ１１４がＶＭＭ１４０を実行し、ＶＭＭ１４０上の仮想計算機１５０では第２のＯＳ１６０が実行される。
【００３８】
ＶＭＭ１４０は、ゲストパーティション１０２の物理リソースを仮想計算機１５０に割り当てて、ゲストＯＳとしての第２のＯＳ１６０を稼働させる。仮想計算機１５０はＶＭＭ１４０により複数生成することができ、全ての仮想計算機１５０はゲストパーティション１０２に所属する。ＶＭＭ１４０は、物理リソースと仮想計算機１５０の仮想リソースの対応関係を管理する。
【００３９】
ＶＭＭ１４０は、物理プロセッサコアグループＢ１１４の１以上のプロセッサコア１１４０を、仮想計算機１５０の仮想プロセッサコアグループ１５１に割り当てる。仮想プロセッサコアグループ１５１は、１以上の仮想プロセッサコア１５１０を含んで第２のＯＳ１６０を実行する。なお、ゲストパーティション１０２の物理リソースは、ネイティヴパーティション１０１の第１のＯＳ１３０が起動し、当該第１のＯＳ１３０が所定の物理リソースをゲストパーティション１０２へ割り当てるようにしてもよい。
【００４０】
仮想計算機１５０が有する仮想プロセッサコア１５１０毎の実行ステートは、ＶＭＭ１４０が管理する仮想計算機管理状態データ群１４５によって保持される。仮想計算機管理状態データ群１４５は、例えば、前記特許文献１に開示されるようなＶＭＣＳ（Virtual Machine Control Structure）のようなデータ構造である。
【００４１】
ＶＭＸ  ＯＮの物理プロセッサコアグループＢ１１４のプロセッサコア１１４０は、前記特許文献１と同様に、ゲストＯＳとしての第２のＯＳ１６０を実行するＶＭＸノンルートと、ＶＭＭ１４０を実行するＶＭＸルートの２つの状態を遷移する。例えば、物理プロセッサコアグループＢ１１４のプロセッサコア１１４０は、ＶＭ  Ｅｎｔｒｙ命令を受け付けると、ＶＭＸルートからＶＭＸノンルートへ移行し、仮想計算機管理状態データ群１４５を読み込んで仮想計算機１５０の第２のＯＳ１６０を実行する。また、プロセッサコア１１４０は、ＶＭ  Ｅｘｉｔ命令を受け付けると、ＶＭＸノンルートからＶＭＸルートへ移行し、仮想計算機管理状態データ群１４５に第２のＯＳ１６０の状態を保存してＶＭＭ１４０を実行する。
【００４２】
なお、ＶＭＭ１４０を実行するモードと、第２のＯＳ１６０を実行するモードは、上記ＶＭＸルート、ＶＭＸノンルートに限定されるものではなく、マルチコアプロセッサ１１１のアーキテクチャなどに応じて異なるものである。
【００４３】
ＶＭＭ１４０は、仮想計算機管理状態データ群１４５の他に、物理プロセッサコアグループＢ１１４のプロセッサコア１１４０を特定するため、ＬＡＰＩＣ  ＩＤを保持する物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１４１と、プロセッサコア１１４０がＮＭＩを受け付けたときに呼び出される割込みハンドラ１４６と、を保持する。
【００４４】
ＶＭＭ１４０は、起動時に物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１４１を生成した後、第１のＯＳ１３０へ当該テーブル１４１転送する。転送されたテーブル１４１は、物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１３３として第１のＯＳ１３０に保持される。ＶＭＭ１４０の起動時に、物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１４１を第１のＯＳ１３０へ転送しておく。これにより、ＶＭＭ１４０に障害が発生したときでも、ＶＭＭ１４０が正常な状態のときに取得した情報によって、第１のＯＳ１３０はリセットすべきプロセッサコア１１４０を正確に特定できる。
【００４５】
図２は、物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１３３、１４１の一例を示す図である。
【００４６】
物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１３３、１４１は同一の内容であり、図示の例では、ＬＡＰＩＣ  ＩＤ＝４〜７のプロセッサコア１１４０がＶＭＭ１４０（ゲストパーティション１０２の物理プロセッサコアグループＢ１１４）に割り当てられている。
【００４７】
図３は、ＶＭＭ１４０が保持する仮想計算機管理状態データ群１４５の一例を示す図である。仮想計算機管理状態データ群１４５は、仮想プロセッサコア（図中ＰＵ）の識別子を示す仮想プロセッサ番号３０１と、ＮＭＩを受信したときの動作を設定する割込み転送設定フィールド３０２と、ゲストＯＳの状態を保持する仮想計算機管理状態データ３０３から構成される。
【００４８】
図示の例では、仮想プロセッサコアが＃０〜＃ｎのそれぞれについて、ＮＭＩを受信したときには、「ＶＭ  Ｅｘｉｔｉｎｇ」によりＶＭＸルートへ遷移することが、割込み転送設定フィールド３０２に設定されている。仮想計算機管理状態データ３０３は、前記特許文献１のＶＭＣＳと同様に仮想プロセッサコア１５１０のステータスや物理プロセッサコア１１３０、１１４０と仮想プロセッサコア１５１０の対応関係などが保持される。
【００４９】
＜処理の概要＞
本実施例の処理の概要を以下に説明する。本実施例の前提として、マルチコアプロセッサ１１１は、コア毎に仮想化支援機能の有効、無効を設定可能で、かつ、仮想化支援機能が有効なプロセッサコア１１４０は、リセット命令（ＩＮＩＴ  ＩＰＩ）は受け付けない（無効化する）が、ＮＭＩを受け付ける。この種のマルチコアプロセッサ１１１として、ＩＮＴＥＬ社のＶＴ−ｘをサポートしたｘ８６系プロセッサが知られている。
【００５０】
本実施例の統合ストレージ装置では、ひとつのマルチコアプロセッサ１１１が複数のプロセッサコア１１３０、１１４０を有し、ＶＭＸ  ＯＦＦの状態のネイティヴパーティション１０１で、ＢＳＰを含む物理プロセッサコアグループＡ１１３が、第１のＯＳ１３０を起動する。第１のＯＳ１３０は、ゲストパーティション１０２の物理プロセッサコアグループＢ１１４をＶＭＸ  ＯＮに設定してＶＭＭ１４０を起動させる。
【００５１】
ＶＭＭ１４０は、起動後に物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１４１を第１のＯＳ１３０に転送する。第１のＯＳ１３０は、起動直後のＶＭＭ１４０が取得したＬＡＰＩＣ  ＩＤを、割込み制御部１３２の物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１３３に保持する（２０１）。
【００５２】
ここで、物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１４１の転送は、メモリグループＢ１１５ｂの共有メモリ領域１１６を介して行われる。すなわち、ＶＭＭ１４０が、物理プロセッサコアグループＢ１１４のＬＡＰＩＣ  ＩＤテーブル１４１を共有メモリ領域１１６へ格納する。そして、ＶＭＭ１４０が、共有メモリ領域１１６のメモリアドレスを第１のＯＳ１３０へ通知する。当該通知を受信した第１のＯＳ１３０は、受信したメモリアドレスから物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１４１を取得し、割込み制御部１３２の物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１３３に格納する。
【００５３】
次に、ＶＭＭ１４０は、仮想計算機１５０を生成して第２のＯＳ１６０を起動する。このとき、ＶＭＭ１４０は、仮想計算機１５０に割り当てたプロセッサコア１１４０毎に割込みハンドラ１４６を設定し、メモリグループ１１５ｂの所定の領域に保持する。
【００５４】
また、ＶＭＭ１４０は、仮想計算機管理状態データ群１４５の割込み転送設定フィールド３０２に、「ＶＭ  Ｅｘｉｔｉｎｇ」を設定し、ＮＭＩを受信したときには第２のＯＳ１６０の実行を中断してＶＭＭ１４０を実行するＶＭＸルートへ遷移させる準備を行う。
【００５５】
第２のＯＳ１６０が起動すると、第１のＯＳ１３０のＶＭＭ監視部１３１は、ＶＭＭ１４０の監視を開始する（２０１）。ＶＭＭ監視部１３１は、ＶＭＭ１４０の異常を検出すると、割込み制御部１３２へリセット要求を送信する（２０２）。
【００５６】
割込み制御部１３２は、物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１３３を参照して、ＶＭＭ１４０の起動時のＬＡＰＩＣ  ＩＤで、リセット対象となる物理プロセッサコアグループＢ１１４及びプロセッサコア１１４０を特定する。割込み制御部１３２は、特定された各プロセッサコア１１４０に対してプロセッサコア１１３０（ＢＳＰ）からリセット用割込みとしてＮＭＩを送信する（２０４）。
【００５７】
このとき、物理プロセッサコアグループＢ１１４で第２のＯＳ１６０を実行するプロセッサコア１１４０は、ＮＭＩを受信すると仮想計算機管理状態データ群１４５の割込み転送設定フィールド３０２の「ＶＭ  Ｅｘｉｔｉｎｇ」の設定によって、ＶＭＸノンルートからＶＭＸルートのモードへ遷移する。
【００５８】
ＶＭＸルートのプロセッサコア１１４０は、ＮＭＩを受信すると割込みハンドラ１４６の実行を要求する（２０５）。割込みハンドラ１４６は、後述するように、物理プロセッサコアグループＢ１１４のプロセッサコア１１４０のそれぞれについて、ＶＭＸ  ＯＦＦへの変更と、セルフリセットの実施（２０６）、第１のＯＳ１３０からのＳＩＰＩの受信（２０７）と、ＶＭＸ  ＯＮへの変更及びＶＭＭ１４０の再起動という手順となる。
【００５９】
上記の処理により、ＶＭＭ１４０に障害が発生すると、ネイティヴパーティション１０１では、物理プロセッサコアグループＡ１１３で第１のＯＳ１３０を稼働させたまま、ゲストパーティション１０２の物理プロセッサコアグループＢ１１４をリセットさせてＶＭＭ１４０の再起動を実現することができるのである。
【００６０】
＜処理の詳細＞
図４は、第１のＯＳ１３０がＶＭＭ１４０を起動させる処理の一例を示すシーケンス図である。
【００６１】
まず、第１のＯＳ１３０が、ゲストパーティション１０２の物理プロセッサコアグループＢ１１４をＶＭＸ  ＯＮに設定する（Ｓ１）。次に、第１のＯＳ１３０がメモリグループＢ１１５ｂにＶＭＭ１４０をロードして、物理プロセッサコアグループＢ１１４をＶＭＭ１４０に割り当ててＶＭＭ１４０を起動させる（Ｓ２、Ｓ１１）。
【００６２】
ＶＭＭ１４０は、起動すると初期化を行う。ＶＭＭ１４０は、まず、メモリグループＢ１１５ｂに共有メモリ領域１１６を設定し、第１のＯＳ１３０が読み書き可能なメモリ領域を確保する。
【００６３】
次に、ＶＭＭ１４０は、自身に割り当てられた物理プロセッサコアグループＢ１１４のＬＡＰＩＣ  ＩＤを取得して、物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１４１に格納する。そして、ＶＭＭ１４０は、物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１４１を第１のＯＳ１３０へ転送する（Ｓ１２）。
【００６４】
この転送は、上述したように、共有メモリ領域１１６を介して実施される。ＶＭＭ１４０が、物理プロセッサコアグループＢ１１４のＬＡＰＩＣ  ＩＤテーブル１４１を共有メモリ領域１１６へ格納する。ＶＭＭ１４０は、共有メモリ領域１１６のメモリアドレスを第１のＯＳ１３０へ通知する。当該通知を受信した第１のＯＳ１３０は、受信したメモリアドレスから物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１４１を取得し、割込み制御部１３２の物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１３３に格納する（Ｓ３）。なお、物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１３３は、メモリグループＡ１１５ａに保持される。
【００６５】
ＶＭＭ１４０は、物理プロセッサコアグループＢ１１４のプロセッサコア１１４０のそれぞれについて割込みハンドラ１４６を設定する（Ｓ１３）。以上の初期化が終了してＶＭＭ１４０の起動が完了する（Ｓ１４）。
【００６６】
次に、ＶＭＭ１４０は第２のＯＳ１６０を稼働させるために、所定の仮想計算機（ＶＭ）１５０を生成する（Ｓ１５）。ＶＭＭ１４０はメモリグループＢ１１５ｂの一部を仮想メモリ（図示省略）に割り当て、物理プロセッサコアグループＢ１１４の一部のプロセッサコア１１４０を仮想プロセッサコアグループ１５１に割り当てて仮想計算機１５０を生成する。
【００６７】
ＶＭＭ１４０は、仮想計算機１５０に割り当てた仮想プロセッサコア１５１０について、図３に示した仮想計算機管理状態データ３０３と割込み転送設定フィールド３０２を設定する。割込み転送設定フィールド３０２には、上述のように「ＶＭ  Ｅｘｉｔｉｎｇ」を設定し、ＮＭＩを受信したときにＶＭ  ＥＸＩＴによってＶＭＸルートへ遷移するフラグを設定する（Ｓ１６）。すなわち、第２のＯＳ１６０を実行する仮想プロセッサコア１５１０は、ＮＭＩを受信すると第２のＯＳ１６０にＮＭＩを通知するのを抑止し、ＶＭＸルートへ遷移してＶＭＭ１４０でＮＭＩを処理する。
【００６８】
ＶＭＭ１４０は、上記生成した仮想計算機１５０の仮想メモリに第２のＯＳ１６０をロードし、仮想プロセッサコアグループ１５１で第２のＯＳ１６０を起動させる（Ｓ１２）。
【００６９】
一方、第１のＯＳ１３０では、物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１４１を受信してから所定時間後に、ＶＭＭ監視部１３１を起動してＶＭＭ１４０の監視を開始する（Ｓ４）。図示の例では、ＶＭＭ１４０の起動完了時点でＶＭＭ監視部１３１を起動する例を湿したが、これに限定されるものではなく、例えば、第２のＯＳ１６０が起動した後等の所定時間後にＶＭＭ監視部１３１の監視を開始しても良い。
【００７０】
図５は、ＶＭＭ１４０に障害が発生したときに統合ストレージ装置で行われる処理の一例を示すシーケンス図である。第１のＯＳ１３０のＶＭＭ監視部１３１が、ＶＭＭ１４０の監視を行い障害が発生したか否かを判定する（Ｓ２１）。ＶＭＭ１４０で障害が発生し（Ｓ３１）、ＶＭＭ監視部１３１が障害の発生を検出する（Ｓ２２）。ＶＭＭ監視部１３１は、障害の検出に基づいてＶＭＭ１４０の再起動を決定する。
【００７１】
第１のＯＳ１３０では、ＶＭＭ監視部１３１が割込み制御部１３２にリセット要求（２０２）を通知する。割込み制御部１３２は、上述のように、物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１３３を参照してリセット用の割込みを通知するプロセッサコア１１４０を特定する。ここで、物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１３３は起動直後に、ＶＭＭ１４０から取得したものであるので、障害の発生に係わらず、リセット対象のプロセッサコア１１４０を正確に特定することができる。
【００７２】
割込み制御部１３２は、上記特定した特定された各プロセッサコア１１４０に対して、プロセッサコア１１３０（ＢＳＰ）からリセット用割込みとしてＮＭＩを送信する（Ｓ２３）。
【００７３】
物理プロセッサコアグループＢ１１４の各プロセッサコア１１４０はＮＭＩを受信する（Ｓ３２）。物理プロセッサコアグループＢ１１４のうち第２のＯＳ１６０を実行しているプロセッサコア１１４０はＮＭＩを受信すると、仮想計算機管理状態データ群１４５の割込み転送設定フィールド３０２の「ＶＭ  Ｅｘｉｔｉｎｇ」の設定に基づいて、ＶＭＸノンルートからＶＭＸルートのモードへ遷移する（Ｓ３３）。
【００７４】
次に、ＶＭＸルートに遷移したプロセッサコア１１４０は、ＮＭＩの受信によって割込みハンドラ１４６を実行する（Ｓ３４）。
【００７５】
割込みハンドラ１４６は、物理プロセッサコアグループＢ１１４の各プロセッサコア１１４０でそれぞれ実行される。まず、プロセッサコア１１４０は、自コアの状態を仮想化支援機能の無効状態に変更するため、ＶＭＸ  ＯＦＦにする命令を発行する（Ｓ３５）。  次に、プロセッサコア１１４０は、自コアに対してプロセッサコア初期化用割込みとしてＩＮＩＴ  ＩＰＩを発行してセルフリセットを実施する（Ｓ３６）。
【００７６】
セルフリセットの結果、プロセッサコア１１４０は、起動待機状態（Ｗａｉｔ  Ｆｏｒ  Ｓｔａｒｔ）に遷移する（Ｓ３７）。
【００７７】
第１のＯＳ１３０は、第２のＯＳ１６０に対してＮＭＩを送信してから所定時間が経過した後に、物理プロセッサコアグループＢ１１４の各プロセッサコア１１４０に対してスタートアップ用割込み（ＳｔａｒｔｕｐＩＰＩ）を発行する。なお、この所定時間は、物理プロセッサコアグループＢ１１４でステップＳ３２〜Ｓ３７が完了するまでの時間を予め設定したものである。
【００７８】
ＳｔａｒｔｕｐＩＰＩを受信した物理プロセッサコアグループＢ１１４の各プロセッサコア１１４０は、仮想化支援機能を有効状態に変更するためＶＭＸ  ＯＮに遷移する命令を発行してから（Ｓ３８）、ＶＭＭ１４０をメモリグループ１１５ｂにロードして再起動する（Ｓ３９）。
【００７９】
以上の処理により、第１のＯＳ１３０はＶＭＭ１４０の障害を検出し、ＮＭＩを物理プロセッサコアグループＢ１１４に通知して割込みハンドラ１４６によりリセットする。一方、ネイティヴパーティション１０１では、物理プロセッサコアグループＡ１１３で第１のＯＳ１３０の稼働を継続することが可能となる。
【００８０】
そして、ネイティヴパーティション１０１の第１のＯＳ１３０は、ゲストパーティション１０２の物理プロセッサコアグループＢ１１４に対してＮＭＩを通知してから所定時間後に、Ｓｔａｒｔ  ＩＰＩを通知することでＶＭＭ１４０を再起動させる。
【００８１】
このように、ひとつのハードウェアリソースをネイティヴパーティション１０１とゲストパーティション１０２に分割し、ネイティヴパーティション１０１で第１のＯＳ１３０を稼働させたまま、障害の発生したゲストパーティション１０２の物理プロセッサコアグループＢ１１４のみをリセットして、ＶＭＭ１４０を再起動することが可能となる。
【００８２】
また、ＶＭＭ１４０が起動中に取得したゲストパーティション１０２の物理プロセッサコアグループＢ１１４のＬＡＰＩＣ  ＩＤテーブル１４１を、ネイティヴパーティション１０１の第１のＯＳ１３０へコピーしておき、リセット対象のプロセッサコア１１４０を起動時の情報で特定する。
【００８３】
障害が発生した後では、ＶＭＭ１４０からゲストパーティション１０２のプロセッサコア１１４０の情報を取得しても、正確な情報を取得できる保証はない。そこで、本発明では、ＶＭＭ１４０が起動中（または起動直後）に、ゲストパーティション１０２でＶＭＭ１４０を実行するプロセッサコア１１４０の識別子（ＬＡＰＩＣ  ＩＤ）を取得し、第１のＯＳ１３０へコピーし、正常な値を保持しておくことで、割込み制御部１３２はリセット対象のプロセッサコア１１４０を正確に特定することが可能となる。
【００８４】
また、本発明では、障害が発生したＶＭＭ１４０を実行するプロセッサコア１１４０にＮＭＩを送信することで、割込みハンドラ１４６でプロセッサコア１１４０をリセットさせる。これにより、ＶＭＸ  ＯＮ（仮想化支援機能有効）のときには、リセット命令（INIT  IPI）を受信できない（無効化される）プロセッサコア１１４０を採用した場合でも、ゲストパーティション１０２の物理プロセッサコアグループＢ１１４のみを確実にリセットさせることが可能となる。
【００８５】
そして、ＮＭＩの受信によってプロセッサコア１１４０が実行する割込みハンドラ１４６は、一旦、仮想化支援機能を無効（ＶＭＸ  ＯＦＦ）にしてからセルフリセットを実施させる。これにより、仮想化支援機能が有効（ＶＭＸ  ＯＮ）なときには、リセットを受け付けないプロセッサコア１１４０であっても、リセットさせることが可能となる。
【００８６】
また、仮想計算機１５０の仮想プロセッサコア１５１０の実行状態を保持する仮想計算機管理状態データ群１４５の割込み転送設定フィールド３０２に、ＮＭＩを受信したときにＶＭＸルートへ遷移させる命令（ＶＭ  Ｅｘｉｔ）を予め設定しておく。これにより、仮想計算機１５０で第２のＯＳ（ゲストＯＳ）１６０が実行されているときでも、ＮＭＩを受信すると、プロセッサコア１１４０は、ＶＭＸルートへ遷移して、割込みハンドラ１４６を実行することができる。
【００８７】
なお、上記実施例に示したマルチコアプロセッサ１１１は、ホモジニアスの構成でも良いし、ヘテロジニアスの構成であってもよい。
【００８８】
また、上記実施例では、統合ストレージ装置に本発明適用した例を示したが、計算機に適用してもよく、上記と同様の作用、効果を得ることができる。
【００８９】
また、上記実施例では、ＶＭＭ１４０を実行する物理プロセッサコアグループＢ１１４のリセットを、ＶＭＭ１４０の障害の検出時に実行する例を示したが、これに限定されるものではない。例えば、第１のＯＳ１３０が、所定の条件に基づいて、ＶＭＭ１４０の再起動が必要であるか否かを判定し、必要と判定したときに物理プロセッサコアグループＢ１１４のリセットを実施しても良い。
【００９０】
また、上記実施例では、ＶＭＭ１４０が物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１４１の転送を共有メモリ領域１１６を介して実施する例を示したが、これに限定されるものではない。例えば、ＶＭＭ１４０は、起動が完了した後に、図示しないネットワークを介して物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル１４１を第１のＯＳ１３０へ転送するようにしてもよい。
【００９１】
また、本発明において説明した計算機等の構成、処理部及び処理手段等は、それらの一部又は全部を、専用のハードウェアによって実現してもよい。
【００９２】
また、本実施例で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体（例えば、非一時的な記憶媒体）に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。
【００９３】
また、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明をわかりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
【符号の説明】
【００９４】
１０１  ネイティヴパーティション
１０２  ゲストパーティション
１１０  物理計算機
１１１  マルチコアプロセッサ
１１２  メモリリソース
１１３  物理プロセッサコアグループＡ
１１４  物理プロセッサコアグループＢ
１１５ａ、１１５ｂ  メモリグループＡ、Ｂ
１３０  第１のＯＳ
１３１  ＶＭＭ監視部
１３２  割込み制御部
１３３  物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル
１４０  ＶＭＭ
１４１  物理プロセッサコアグループＢ  ＬＡＰＩＣ  ＩＤテーブル
１４５  仮想計算機管理状態データ群
１４６  割込みハンドラ
１５０  仮想計算機
１５１  仮想プロセッサコアグループＡ
１６０  第２のＯＳ
３０１  仮想プロセッサ番号
３０２  割込み転送設定フィールド
３０３  仮想計算機管理状態データ
１１３０、１１４０  プロセッサコア
１５１０  仮想プロセッサコア
【図２】
2015088014.tif 000003
【図３】
2015088014.tif 000004
【図４】
2015088014.tif 000005
【図５】
2015088014.tif 000006
【図１】
2015088014.tif 000007