図面 (/)

技術 情報処理装置、資源割当方法、及びプログラム

出願人 富士通株式会社
発明者 峯崎純太郎
出願日 2013年3月21日 (4年8ヶ月経過) 出願番号 2015-506495
公開日 2017年2月16日 (10ヶ月経過) 公開番号 WO2014-147802
状態 特許登録済
技術分野 ハードウェアの冗長性 マルチプログラミング
主要キーワード CPUパッケージ コア管 各演算処理装置 仮想コントローラ 除外フラグ 割り当て優先度 中核部 累積情報

この技術の活用可能性のある市場・分野

関連する未来課題
重要な関連分野

この技術に関連する成長市場

関連メディア astavision

  • 地下大空間・地下構造物

    周口店洞窟の北京原人、ラスコーやアルタミラの壁画洞窟に象徴されるように、人類は太古から地下空間を生活…

  • 3Dプリンター医学応用

    3Dプリンタ、正しくは、積層造形(AM:Additive Manufacturing)技術は、今や家…

  • 画像診断・生体イメージング

    医療の診断において、非侵襲的あるいは低侵襲的な検査方法として、生体組織を可視化するin vivoイメ…

後で読みたい技術情報を見つけたら、ブックマークしておきましょう!

ページの右上にあるブックマークボタンからこのページをブックマークできます。
あなたがブックマークした技術情報は、いつでもマイページのリストから閲覧することが出来ます。

この項目の情報は公開日時点(2017年2月16日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題・解決手段

本発明を適用した1システムは、作成すべき仮想マシン毎に、仮想マシン割り当てるべき演算処理装置コアの数を指定する設定情報、及び設定情報が表す仮想マシンのなかで連携して動作する複数の仮想マシンをグループとして表すグループ情報記憶した記憶部と、設定情報が表す仮想マシンのなかで演算処理装置コアを割り当てる対象となる第1の仮想マシンが発生した場合に、演算処理装置コアを搭載する何れかの演算処理装置に発生する障害に伴う稼働可能な仮想マシン全体の稼働状態の低下を考慮した規則に従って、設定情報、及びグループ情報を参照し、設定情報が指定する数の演算処理装置コアを第1の仮想マシンに割り当てる割当部と、を有する。

背景

近年、情報処理装置コンピュータ)の仮想化技術一つである仮想マシン(VM:Virtual Machine)は、広く情報処理装置に採用されている。この仮想マシンの実行環境では、情報処理装置のハードウェア資源)が仮想化され、各仮想マシンは仮想化したハードウェア上で動作する。それにより、各仮想マシンは個々に完全に独立した形で動作する。このことから、仮想マシン技術を用いた場合、一台の情報処理装置を複数台サーバとして動作させることができる。

情報処理装置には、1つ以上の演算処理装置が搭載される。この演算処理装置は、通常、CPU(Central Processing Unit)、或いはMPU(Micro-Processing Unit)と呼ばれるプログラムを実行する装置である。以降、便宜的に、演算処理装置はCPUと表記する。

情報処理装置上に作成される各仮想マシンには、資源の一部として、1つCPUが割り当てられる。情報処理装置に搭載されるCPUは、通常、中核部分であるCPUコアを複数、備えている。それにより、仮想マシンへのCPUの割当は、CPUコア単位で行われるのが普通となっている。

図1は、仮想マシンへのCPUコアの割り当て例を表す図である。図1に表す例は、VMM(Virtual Machine Monitor)3上で4台の仮想マシン4(4−1〜4−4)を動作させる場合である。情報処理装置1は、資源2として、4つのCPU21(21−1〜21−4)、及び記憶装置22を備えている。VMM3はハイパーバイザーとも呼ばれる。

記憶装置22は、例えば補助記憶装置、及びメモリモジュール集合体である。作成すべき仮想マシン4に割り当てるべき資源は、記憶装置22に格納された設定情報22aにより指定される。VMM3は、設定情報22aを参照し、各仮想マシン4に資源を割り当てる。

各CPU21は、2つのCPUコア25(25−0、25−1)、共通資源26を備えている。共有資源26には、例えばLLC(Last Level Cache)、記憶装置22とのインターフェース、及び他のCPU21等との通信を可能にするインターフェース等が含まれる。CPUは、以降、「CPUパッケージ」と表記する。

図1において、各仮想マシン4に割り当てられたCPUコア25は、矢印により表している。それにより、図1に表す例では、各CPUパッケージ21−1〜21−4の1つのCPUコア21−0は、それぞれ仮想マシン4−0〜4−4に割り当てられている。各仮想マシン4にそれぞれ異なるCPUパッケージ21の1つのCPUコア25が割り当てられているのは、CPUパッケージ21に搭載された1つのCPUコア25当たりの処理性能は、使用されないCPUコア25が多くなるほど、高くなるからである。

上記のように、資源2は仮想化される。そのため、各CPUパッケージ21の各CPUコア25も仮想化される。各仮想マシン4へのCPUコア25の割り当ては、仮想化されたCPUコア25である仮想CPUコア4aを割り当てることで行われる。

VMM3は、仮想マシン4の可用性を高めるための複数の機能を有する。その機能としては、障害局所化機能、及び資源再割当機能代表的なものである。

障害局所化機能は、資源2を構成する何れかのハードウェアに障害が発生した場合に、その障害の影響範囲を局所化するための機能である。その障害局所化機能により、例えばCPUパッケージ21−1に障害が発生した場合には、そのCPUパッケージ21−1のCPUコア25−0を使用する仮想マシン4−1以外の仮想マシン4−2〜4−4は正常に稼働し続けることができる。

資源再割当機能は、資源2を構成する何れかのハードウェアに障害の予兆が現れた場合に、その予兆が現れたハードウェアを使用する仮想マシン4に、別のハードウェアを再度、割り当てる機能である。その資源再割当機能により、例えばCPUパッケージ21−1に障害の予兆が現れた場合には、そのCPUパッケージ21−1のCPUコア25−0を使用する仮想マシン4−1に、別のCPUパッケージ21のCPUコア25を割り当てる。そのようなCPUコア25の再割当(割当変更)により、仮想マシン4−1は稼働し続けることができる。

情報処理装置1上に作成される各仮想マシン4は、上記のように、個々に完全に独立した形で動作する。しかし、複数の仮想マシン4を連携させる場合がある。これは、例えば情報処理装置1が図3に表す情報処理装置30として用いられるような場合である。

図3は、ウェブシステムの構成例を表す図である。このウェブシステムは、ロードバランサ50、及び情報処理装置30を用いて、データベース(DB)サーバ40が管理するデータ(コンテンツ)、或いはそのデータから生成されるデータを提供するためのシステムである。情報処理装置30上には、1台のWebサーバとして動作する仮想マシン33、及び1台のアプリケーションAP)サーバとして動作する仮想マシン34を有する2つの処理系32(32−1、32−2)が構築されている。ロードバランサ50は、ネットワークを介して接続された端末装置からの要求を、2つの処理系32のうちの一方に振り分ける。2つの処理系32は、2台の仮想マシン33、34が連携し、要求を送信した端末装置にDBサーバ40が管理するデータを提供する等のサービスを行う。

図3に表す情報処理装置30として情報処理装置1を用いる場合を想定する。ここでは更に、仮想マシン4−1、及び4−2は、処理系32−1の仮想マシン33、及び34として動作し、仮想マシン4−3、及び4−4は、処理系32−2の仮想マシン33、及び34として動作すると想定する。

CPUパッケージ21−1に障害が発生するか、或いは障害の予兆が検知された場合、仮想マシン4−1に新たに割り当てるCPUコア25は、CPUパッケージ21−2〜21−4のなかから選択される。ここでは、混乱を避けるために、以降、特に断らない限り、障害の発生は、障害の予兆の検知を含む意味で用いる。

上記のような想定では、仮想マシン4−1にCPUコア25を新たに割り当てるCPUパッケージ21により、何れかのCPUパッケージ21の障害発生に伴う情報処理装置1(ウェブシステム)の運用状態の変化は異なる。

仮想マシン4−1にCPUパッケージ21−2のCPUコア25を新たに割り当てる場合、CPUパッケージ21−2〜21−4の何れか1つのCPUパッケージ21に障害が発生しても、1つの処理系32は稼働し続けることができる。CPUパッケージ21−2に障害が発生した場合、処理系32−2が稼働し続けることができ、CPUパッケージ21−3、或いは21−4に障害が発生した場合、処理系32−1が稼働し続けることができる。

仮想マシン4−1にCPUパッケージ21−3のCPUコア25を新たに割り当てる場合、CPUパッケージ21−3に障害が発生すると、2つの処理系32は共に稼働し続けることができない。しかし、CPUパッケージ21−2に障害が発生した場合、処理系32−2が稼働し続けることができ、CPUパッケージ21−4に障害が発生した場合、処理系32−1が稼働し続けることができる。

仮想マシン4−1にCPUパッケージ21−4のCPUコア25を新たに割り当てる場合、CPUパッケージ21−4に障害が発生すると、2つの処理系32は共に稼働し続けることができない。しかし、CPUパッケージ21−2に障害が発生した場合、処理系32−2が稼働し続けることができ、CPUパッケージ21−3に障害が発生した場合、処理系32−1が稼働し続けることができる。

上記のように、複数台の仮想マシン4を連携させるような場合、仮想マシン4に新たにCPUコア25を割り当てるCPUパッケージ21により、情報処理装置1の運用状態、つまり仮想マシン4全体の稼働状態の変化は異なる。CPUコア25を新たに割り当てるCPUパッケージ21によっては、1つのCPUパッケージ21に発生する障害は、情報処理装置1の運用継続を不可能にする。このことから、仮想マシン4への新たなCPUコア25の割り当てでは、その後に発生するCPUパッケージ21の障害に伴う仮想マシン4全体の稼働状態の低下を抑える、つまり実際に運用できなくなる仮想マシン4をより少なくすることが重要と云える。

従来の情報処理装置のなかには、仮想マシン毎に、その仮想マシンが使用しているCPUコアを備えたCPUパッケージに障害が発生した場合に、その仮想マシンにCPUコアを割り当てるCPUパッケージが満たすべき条件自動的に設定するものがある。条件は、優先順位を含め、複数、設定することができる。それにより、条件を自動的に設定する情報処理装置では、設定した条件を満たすCPUパッケージのCPUコアを仮想マシンに割り当てることができる。

この従来の情報処理装置で設定可能な条件としては、占有割り当て条件、排他連携を含む占有割り当て条件、等がある。占有割り当て条件とは、1つのCPUパッケージに1台の仮想マシンのみを割り当てる条件である。排他連携を含む占有割り当て条件とは、指定された仮想マシンと共に同じCPUパッケージのCPUコアを割り当てない条件である。

この従来の情報処理装置では、例えば占有割り当て条件、及び排他連携を含む占有割り当て条件を共に設定する場合、そのうちの一つが代替用と設定される。それにより、この従来の情報処理装置は、代替用でない条件を満たすCPUパッケージが存在しない場合、代替用の条件を満たすCPUパッケージのCPUコアを割り当てることにより、条件間の優先順位に沿った割り当てを行うようになっている。

この従来の情報処理装置では、排他連携を含む占有割り当て条件は、同一のCPUパッケージの共有による二重障害を防止するために設定される。そのために、排他連携を含む占有割り当て条件を設定する対象は、他の仮想マシンと連携させる仮想マシンとなっている。これは、図3に表す情報処理装置30を例にとれば、同じ処理系32に含まれる2台の仮想マシン33、34には、可能な限り、同じCPUパッケージのCPUコアを割り当てないようにすることを意味する。そのため、この従来の情報処理装置では、CPUコアを新たに割り当てた後のCPUパッケージに発生する障害によって稼働を継続できなくなる処理系の数を抑えるのは非常に困難となっている。このことから、この従来の情報処理装置では、複数の仮想マシンを連携させる場合、CPUパッケージに発生する障害の影響を大きくさせやすくなっている。

概要

本発明を適用した1システムは、作成すべき仮想マシン毎に、仮想マシンに割り当てるべき演算処理装置コアの数を指定する設定情報、及び設定情報が表す仮想マシンのなかで連携して動作する複数の仮想マシンをグループとして表すグループ情報記憶した記憶部と、設定情報が表す仮想マシンのなかで演算処理装置コアを割り当てる対象となる第1の仮想マシンが発生した場合に、演算処理装置コアを搭載する何れかの演算処理装置に発生する障害に伴う稼働可能な仮想マシン全体の稼働状態の低下を考慮した規則に従って、設定情報、及びグループ情報を参照し、設定情報が指定する数の演算処理装置コアを第1の仮想マシンに割り当てる割当部と、を有する。

目的

側面では、本発明は、CPUパッケージ(演算処理装置)に障害が発生したとしても、その障害に伴う情報処理装置の運用状態の低下をより抑えるための技術を提供することを目的とする。

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

作成すべき仮想マシン毎に、前記仮想マシン割り当てるべき演算処理装置コアの数を指定する設定情報、及び前記設定情報が表す仮想マシンのなかで連携して動作する複数の仮想マシンをグループとして表すグループ情報記憶した記憶部と、前記設定情報が表す仮想マシンのなかで前記演算処理装置コアを割り当てる対象となる第1の仮想マシンが発生した場合に、前記演算処理装置コアを搭載する何れかの演算処理装置に発生する障害に伴う稼働可能な仮想マシン全体の稼働状態の低下を考慮した規則に従って、前記設定情報、及び前記グループ情報を参照し、前記設定情報が指定する数の演算処理装置コアを前記第1の仮想マシンに割り当てる割当部と、を有することを特徴とする情報処理装置

請求項2

前記割当部は、前記設定情報が表す仮想マシンを作成する場合、前記規則に従い、各演算処理装置備える前記演算処理装置コアをそれぞれ異なる仮想マシンに割り当て、前記各演算処理装置が備える前記演算処理装置コアをそれぞれ異なる仮想マシンに割り当てられない状況時に、同じグループに属する2台以上の仮想マシンに対し、同一の演算処理装置が備える1つ以上の演算処理装置コアを割り当てる、ことを特徴とする請求項1記載の情報処理装置。

請求項3

前記仮想マシンが前記演算処理装置コアに割り当てられている演算処理装置に現れた障害の予兆検知する検知部、を有し、前記割当部は、何れかの演算処理装置に現れた障害の予兆を前記検知部が検知した場合、前記検知部が前記障害の予兆を検知した演算処理装置の演算処理装置コアが割り当てられている仮想マシンを前記第1の仮想マシンとして、前記第1の仮想マシンに新たな演算処理装置コアを割り当てる、ことを特徴とする請求項1、または2記載の情報処理装置。

請求項4

前記割当部は、前記規則に従い、何れの仮想マシンも演算処理装置コアに割り当てられていない演算処理装置、前記第1の仮想マシンと同じグループに属する他の仮想マシンが演算処理装置コアに割り当てられている演算処理装置、前記第1の仮想マシンと同じグループに属していない他の仮想マシンが演算処理装置コアに割り当てられている演算処理装置、の順に、前記第1の仮想マシンに演算処理装置コアを割り当てる演算処理装置を選択する、ことを特徴とする請求項3記載の情報処理装置。

請求項5

各演算処理装置の状態を表す状態情報取得する取得部、を有し、前記割当部は、前記規則に従い、前記取得部が取得する前記状態情報を更に参照し、前記第1の仮想マシンへの前記演算処理装置コアの割り当てを行う、ことを特徴とする請求項1〜4の何れか1項に記載の情報処理装置。

請求項6

前記取得部が取得する状態情報は、前記各演算処理装置にエラーが発生する頻度を表す情報である、ことを特徴とする請求項1〜4の何れか1項に記載の情報処理装置。

請求項7

複数の演算処理装置コアを備えた複数の演算処理装置が搭載され、設定情報が表す複数の仮想マシンを作成する情報処理装置に、前記複数の仮想マシンのなかで前記演算処理装置コアを割り当てるべき第1の仮想マシンに対し、何れの仮想マシンも演算処理装置コアに割り当てられていない演算処理装置の演算処理装置コアを割り当てる第1の割り当てを行わせ、前記第1の割り当てにより前記演算処理装置コアを割り当てられず、且つ前記第1の仮想マシンが前記予め設定したグループに属している場合に、前記第1の仮想マシンに対し、同じグループに属する他の仮想マシンに前記演算処理装置コアが割り当てられた演算処理装置の前記演算処理装置コアを割り当てる第2の割り当てを行わせ、前記第2の割り当てによって前記演算処理装置を割り当てられない場合に、前記第1の仮想マシンに対し、同じグループに属さない他の仮想マシンに前記演算処理装置コアが割り当てられた演算処理装置の前記演算処理装置コアを割り当てる第3の割り当てを行わせる、ことを特徴とする資源割当方法

請求項8

複数の演算処理装置コアを備えた複数の演算処理装置が搭載され、設定情報が表す複数の仮想マシンを作成する情報処理装置に、前記複数の仮想マシンのなかで前記演算処理装置コアを割り当てるべき第1の仮想マシンに対し、何れの仮想マシンも演算処理装置コアに割り当てられていない演算処理装置の演算処理装置コアを割り当てる第1の割り当てを行い、前記第1の割り当てにより前記演算処理装置コアを割り当てられず、且つ前記第1の仮想マシンが前記予め設定したグループに属している場合に、前記第1の仮想マシンに対し、同じグループに属する他の仮想マシンに前記演算処理装置コアが割り当てられた演算処理装置の前記演算処理装置コアを割り当てる第2の割り当てを行い、前記第2の割り当てによって前記演算処理装置を割り当てられない場合に、前記第1の仮想マシンに対し、同じグループに属さない他の仮想マシンに前記演算処理装置コアが割り当てられた演算処理装置の前記演算処理装置コアを割り当てる第3の割り当てを行う、処理を実行させるプログラム

技術分野

0001

本実施形態は、複数の仮想マシン作成される情報処理装置を制御する技術に関する。

背景技術

0002

近年、情報処理装置(コンピュータ)の仮想化技術一つである仮想マシン(VM:Virtual Machine)は、広く情報処理装置に採用されている。この仮想マシンの実行環境では、情報処理装置のハードウェア資源)が仮想化され、各仮想マシンは仮想化したハードウェア上で動作する。それにより、各仮想マシンは個々に完全に独立した形で動作する。このことから、仮想マシン技術を用いた場合、一台の情報処理装置を複数台サーバとして動作させることができる。

0003

情報処理装置には、1つ以上の演算処理装置が搭載される。この演算処理装置は、通常、CPU(Central Processing Unit)、或いはMPU(Micro-Processing Unit)と呼ばれるプログラムを実行する装置である。以降、便宜的に、演算処理装置はCPUと表記する。

0004

情報処理装置上に作成される各仮想マシンには、資源の一部として、1つCPUが割り当てられる。情報処理装置に搭載されるCPUは、通常、中核部分であるCPUコアを複数、備えている。それにより、仮想マシンへのCPUの割当は、CPUコア単位で行われるのが普通となっている。

0005

図1は、仮想マシンへのCPUコアの割り当て例を表す図である。図1に表す例は、VMM(Virtual Machine Monitor)3上で4台の仮想マシン4(4−1〜4−4)を動作させる場合である。情報処理装置1は、資源2として、4つのCPU21(21−1〜21−4)、及び記憶装置22を備えている。VMM3はハイパーバイザーとも呼ばれる。

0006

記憶装置22は、例えば補助記憶装置、及びメモリモジュール集合体である。作成すべき仮想マシン4に割り当てるべき資源は、記憶装置22に格納された設定情報22aにより指定される。VMM3は、設定情報22aを参照し、各仮想マシン4に資源を割り当てる。

0007

各CPU21は、2つのCPUコア25(25−0、25−1)、共通資源26を備えている。共有資源26には、例えばLLC(Last Level Cache)、記憶装置22とのインターフェース、及び他のCPU21等との通信を可能にするインターフェース等が含まれる。CPUは、以降、「CPUパッケージ」と表記する。

0008

図1において、各仮想マシン4に割り当てられたCPUコア25は、矢印により表している。それにより、図1に表す例では、各CPUパッケージ21−1〜21−4の1つのCPUコア21−0は、それぞれ仮想マシン4−0〜4−4に割り当てられている。各仮想マシン4にそれぞれ異なるCPUパッケージ21の1つのCPUコア25が割り当てられているのは、CPUパッケージ21に搭載された1つのCPUコア25当たりの処理性能は、使用されないCPUコア25が多くなるほど、高くなるからである。

0009

上記のように、資源2は仮想化される。そのため、各CPUパッケージ21の各CPUコア25も仮想化される。各仮想マシン4へのCPUコア25の割り当ては、仮想化されたCPUコア25である仮想CPUコア4aを割り当てることで行われる。

0010

VMM3は、仮想マシン4の可用性を高めるための複数の機能を有する。その機能としては、障害局所化機能、及び資源再割当機能代表的なものである。

0011

障害局所化機能は、資源2を構成する何れかのハードウェアに障害が発生した場合に、その障害の影響範囲を局所化するための機能である。その障害局所化機能により、例えばCPUパッケージ21−1に障害が発生した場合には、そのCPUパッケージ21−1のCPUコア25−0を使用する仮想マシン4−1以外の仮想マシン4−2〜4−4は正常に稼働し続けることができる。

0012

資源再割当機能は、資源2を構成する何れかのハードウェアに障害の予兆が現れた場合に、その予兆が現れたハードウェアを使用する仮想マシン4に、別のハードウェアを再度、割り当てる機能である。その資源再割当機能により、例えばCPUパッケージ21−1に障害の予兆が現れた場合には、そのCPUパッケージ21−1のCPUコア25−0を使用する仮想マシン4−1に、別のCPUパッケージ21のCPUコア25を割り当てる。そのようなCPUコア25の再割当(割当変更)により、仮想マシン4−1は稼働し続けることができる。

0013

情報処理装置1上に作成される各仮想マシン4は、上記のように、個々に完全に独立した形で動作する。しかし、複数の仮想マシン4を連携させる場合がある。これは、例えば情報処理装置1が図3に表す情報処理装置30として用いられるような場合である。

0014

図3は、ウェブシステムの構成例を表す図である。このウェブシステムは、ロードバランサ50、及び情報処理装置30を用いて、データベース(DB)サーバ40が管理するデータ(コンテンツ)、或いはそのデータから生成されるデータを提供するためのシステムである。情報処理装置30上には、1台のWebサーバとして動作する仮想マシン33、及び1台のアプリケーションAP)サーバとして動作する仮想マシン34を有する2つの処理系32(32−1、32−2)が構築されている。ロードバランサ50は、ネットワークを介して接続された端末装置からの要求を、2つの処理系32のうちの一方に振り分ける。2つの処理系32は、2台の仮想マシン33、34が連携し、要求を送信した端末装置にDBサーバ40が管理するデータを提供する等のサービスを行う。

0015

図3に表す情報処理装置30として情報処理装置1を用いる場合を想定する。ここでは更に、仮想マシン4−1、及び4−2は、処理系32−1の仮想マシン33、及び34として動作し、仮想マシン4−3、及び4−4は、処理系32−2の仮想マシン33、及び34として動作すると想定する。

0016

CPUパッケージ21−1に障害が発生するか、或いは障害の予兆が検知された場合、仮想マシン4−1に新たに割り当てるCPUコア25は、CPUパッケージ21−2〜21−4のなかから選択される。ここでは、混乱を避けるために、以降、特に断らない限り、障害の発生は、障害の予兆の検知を含む意味で用いる。

0017

上記のような想定では、仮想マシン4−1にCPUコア25を新たに割り当てるCPUパッケージ21により、何れかのCPUパッケージ21の障害発生に伴う情報処理装置1(ウェブシステム)の運用状態の変化は異なる。

0018

仮想マシン4−1にCPUパッケージ21−2のCPUコア25を新たに割り当てる場合、CPUパッケージ21−2〜21−4の何れか1つのCPUパッケージ21に障害が発生しても、1つの処理系32は稼働し続けることができる。CPUパッケージ21−2に障害が発生した場合、処理系32−2が稼働し続けることができ、CPUパッケージ21−3、或いは21−4に障害が発生した場合、処理系32−1が稼働し続けることができる。

0019

仮想マシン4−1にCPUパッケージ21−3のCPUコア25を新たに割り当てる場合、CPUパッケージ21−3に障害が発生すると、2つの処理系32は共に稼働し続けることができない。しかし、CPUパッケージ21−2に障害が発生した場合、処理系32−2が稼働し続けることができ、CPUパッケージ21−4に障害が発生した場合、処理系32−1が稼働し続けることができる。

0020

仮想マシン4−1にCPUパッケージ21−4のCPUコア25を新たに割り当てる場合、CPUパッケージ21−4に障害が発生すると、2つの処理系32は共に稼働し続けることができない。しかし、CPUパッケージ21−2に障害が発生した場合、処理系32−2が稼働し続けることができ、CPUパッケージ21−3に障害が発生した場合、処理系32−1が稼働し続けることができる。

0021

上記のように、複数台の仮想マシン4を連携させるような場合、仮想マシン4に新たにCPUコア25を割り当てるCPUパッケージ21により、情報処理装置1の運用状態、つまり仮想マシン4全体の稼働状態の変化は異なる。CPUコア25を新たに割り当てるCPUパッケージ21によっては、1つのCPUパッケージ21に発生する障害は、情報処理装置1の運用継続を不可能にする。このことから、仮想マシン4への新たなCPUコア25の割り当てでは、その後に発生するCPUパッケージ21の障害に伴う仮想マシン4全体の稼働状態の低下を抑える、つまり実際に運用できなくなる仮想マシン4をより少なくすることが重要と云える。

0022

従来の情報処理装置のなかには、仮想マシン毎に、その仮想マシンが使用しているCPUコアを備えたCPUパッケージに障害が発生した場合に、その仮想マシンにCPUコアを割り当てるCPUパッケージが満たすべき条件自動的に設定するものがある。条件は、優先順位を含め、複数、設定することができる。それにより、条件を自動的に設定する情報処理装置では、設定した条件を満たすCPUパッケージのCPUコアを仮想マシンに割り当てることができる。

0023

この従来の情報処理装置で設定可能な条件としては、占有割り当て条件、排他連携を含む占有割り当て条件、等がある。占有割り当て条件とは、1つのCPUパッケージに1台の仮想マシンのみを割り当てる条件である。排他連携を含む占有割り当て条件とは、指定された仮想マシンと共に同じCPUパッケージのCPUコアを割り当てない条件である。

0024

この従来の情報処理装置では、例えば占有割り当て条件、及び排他連携を含む占有割り当て条件を共に設定する場合、そのうちの一つが代替用と設定される。それにより、この従来の情報処理装置は、代替用でない条件を満たすCPUパッケージが存在しない場合、代替用の条件を満たすCPUパッケージのCPUコアを割り当てることにより、条件間の優先順位に沿った割り当てを行うようになっている。

0025

この従来の情報処理装置では、排他連携を含む占有割り当て条件は、同一のCPUパッケージの共有による二重障害を防止するために設定される。そのために、排他連携を含む占有割り当て条件を設定する対象は、他の仮想マシンと連携させる仮想マシンとなっている。これは、図3に表す情報処理装置30を例にとれば、同じ処理系32に含まれる2台の仮想マシン33、34には、可能な限り、同じCPUパッケージのCPUコアを割り当てないようにすることを意味する。そのため、この従来の情報処理装置では、CPUコアを新たに割り当てた後のCPUパッケージに発生する障害によって稼働を継続できなくなる処理系の数を抑えるのは非常に困難となっている。このことから、この従来の情報処理装置では、複数の仮想マシンを連携させる場合、CPUパッケージに発生する障害の影響を大きくさせやすくなっている。

先行技術

0026

特開2010−205209号公報
特開2007−207219号公報

発明が解決しようとする課題

0027

側面では、本発明は、CPUパッケージ(演算処理装置)に障害が発生したとしても、その障害に伴う情報処理装置の運用状態の低下をより抑えるための技術を提供することを目的とする。

課題を解決するための手段

0028

本発明を適用した1システムは、作成すべき仮想マシン毎に、仮想マシンに割り当てるべき演算処理装置コアの数を指定する設定情報、及び設定情報が表す仮想マシンのなかで連携して動作する複数の仮想マシンをグループとして表すグループ情報記憶した記憶部と、設定情報が表す仮想マシンのなかで演算処理装置コアを割り当てる対象となる第1の仮想マシンが発生した場合に、演算処理装置コアを搭載する何れかの演算処理装置に発生する障害に伴う稼働可能な仮想マシン全体の稼働状態の低下を考慮した規則に従って、設定情報、及びグループ情報を参照し、設定情報が指定する数の演算処理装置コアを第1の仮想マシンに割り当てる割当部と、を有する。

発明の効果

0029

本発明を適用した1システムでは、CPUパッケージ(演算処理装置)に障害が発生したとしても、その障害に伴う運用状態の低下をより抑えることができる。

図面の簡単な説明

0030

仮想マシンへのCPUコアの割り当て例を表す図である。
本実施形態による情報処理装置の構成例、及びその情報処理装置上に作成される仮想マシン例を説明する図である。
ウェブシステムの構成例を表す図である。
設定情報の構成例を説明する図である。
割り当て優先度の決定ポリシー例を説明する図である。
CPU管理情報の構成例を説明する図である。
割り当て優先度情報の構成例を説明する図である。
CPU管理情報の更新例を説明する図である。
CPUパッケージの数が仮想マシンの数より少ない場合に作成されるCPU管理情報の内容例を説明する図である。
CPUパッケージの数が仮想マシンの数より少ない場合のCPU管理情報の更新例を説明する図である。
CPUパッケージの数が仮想マシンの数より少ない場合のCPU管理情報の他の更新例を説明する図である。
VMMが実行する全体処理のフローチャートである。
CPU管理情報作成処理のフローチャートである。
CPUコア割り当て処理のフローチャートである。
CPU障害予兆監視処理のフローチャートである。
割り当て優先度決定処理のフローチャートである。
CPUコア切替処理のフローチャートである。
他の実施形態による情報処理装置の構成例、及びその情報処理装置上に作成される仮想マシン例を説明する図である。
他の実施形態で作成されるCPU管理情報の内容例を表す図である。
訂正可能エラー累積情報の構成例を説明する図である。
他の実施形態における割り当て優先度情報の構成例を説明する図である。
他の実施形態におけるCPUパッケージに障害が発生した場合のCPU管理情報の更新例を説明する図である。
管理コントローラが実行する全体処理のフローチャートである。
訂正可能エラー累積情報更新処理のフローチャートである。
割り当て優先度反映処理のフローチャートである。

実施例

0031

以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図2は、本実施形態による情報処理装置の構成例、及びその情報処理装置上に作成される仮想マシン例を説明する図である。

0032

本実施形態による情報処理装置200は、図2に表すように、資源210を備え、その資源210を用いて、VMM220、及び4台の仮想マシン231(231−1〜231−4)が動作する。図2では、資源210として、4つのCPUパッケージ211(211−1〜211−4)、記憶装置212、及びNIC(Network Interface Card)213のみを表しているが、資源210は図2に表す例に限定されない。

0033

上記記憶装置212は、実際にはハードディスク装置等の補助記憶装置、及びメモリモジュール等の主記憶装置を含む記憶装置群である。その記憶装置212には、設定情報212aの他に、VMM220を実現させるプログラム(以降「VMMソフトウェア」と表記)、各仮想マシン230上で実行される各種プログラム(OS(Operating System)、アプリケーション・プログラム、等)も格納されている。

0034

各CPUパッケージ211は、2つのCPUコア215(215−0、215−1)、共有リソース216、及び訂正可能エラーカウンタレジスタ217を備えている。共有リソース216とは、例えばLLC、記憶装置212とのインターフェース、及び他のCPUパッケージ211等との通信を可能にするインターフェース等が含まれる。各CPUコア215は、多くのハードウェア割り込みを生成可能なAPIC(Advanced Programmable Interrupt Controller)215aを備えている。図2中に表記の「APIC ID」は、APIC215aに割り当てられた識別情報を表している。以降、APIC IDは、APIC215aに割り当てられた識別情報の意味で用いる。

0035

訂正可能エラーカウンタレジスタ217は、例えばLLCに訂正可能なエラーが発生した回数計数するためのレジスタであり、その値は、訂正可能なエラーの発生を認識したCPUコア215によって更新される。障害が発生する前には、単位時間当たりに発生する訂正可能なエラーの数が多くなる。このことから、訂正可能エラーカウンタレジスタ217の値を監視することで、CPUパッケージ211に現れる障害の予兆を検知することができる。

0036

4台の仮想マシン231は、図3に表すように、2つの仮想マシングループ230(230−1、230−1)に分けられている。各仮想マシングループ230は、例えば図3に表す2つの処理系32のうちの一方に対応する。ここでは、仮想マシングループ230-1は処理系32−1、仮想マシングループ230−2は処理系32−2、にそれぞれ対応していると想定する。また、仮想マシングループ230−1の仮想マシン231−1、及び231−2は、処理系32−1の仮想マシン33、及び34として動作すると想定する。同様に、仮想マシングループ230−2の仮想マシン231−3、及び231−4は、処理系32−2の仮想マシン33、及び34として動作すると想定する。図2では、各仮想マシン231には、全て1つの仮想CPUコア232が割り当てられると想定している。

0037

VMM220上には、図2に表すように、CPUコア切替部221、及びCPU割り当て管理部222が実現されている。CPUコア切替部221は、障害予兆検知部221a、及びコア切替部221bを備え、CPU割り当て管理部222は、CPU管理情報作成部222a、CPUコア割り当て部222b、及びCPUグルピング部222cを備えている。また、VMM220は、CPU管理情報225、及び割り当て優先度情報226を管理する。

0038

CPUコア切替部221は、稼働中の仮想マシン231に新たにCPUコア215を割り当てるための機能である。障害予兆検知部221aは、各CPUパッケージ221の訂正可能エラーカウンタレジスタ217を監視し、現れた障害の予兆の検知を行う。コア切替部221bは、割り当て優先度情報226を参照し、CPUコア215を新たに割り当てるべき仮想マシン231に対してCPUコア215を割り当て、CPU管理情報225の更新を行う。CPUコア切替部221のより詳細な動作は後述する。

0039

多くの場合、CPUパッケージ211に障害が発生するまえに、障害の予兆が現れる。それにより、多くの場合、障害の予兆が検知され、仮想マシン231へのCPUコア215の割り当てが変更される。仮想マシン231へのCPUコア215の割り当ての変更方法は、障害発生時と、障害の予兆の検知時とで基本的に変化しない。このようなことから、ここでは、特に断らない限り、障害の予兆の検知は障害の発生を含む意味で用いる。

0040

CPU割り当て管理部222は、仮想マシン231の作成(稼働開始)時におけるCPUコア215の割り当てを管理するための機能である。CPU管理情報作成部222aは、設定情報212aを参照して、作成対象とする仮想マシン231、及び各仮想マシン231に割り当てるべきCPUコア215の数を特定する。その特定結果に従い、CPU管理情報作成部222aは、各仮想マシン231に割り当てるべきCPUコア215を選択し、その選択結果を表すCPU管理情報225を作成する。

0041

CPUコア割り当て部222bは、作成されたCPU管理情報225に従って、各仮想マシン231にCPUコア215を割り当てる。CPUグルーピング部222cは、割り当て優先度情報226を作成する。

0042

次に、図4図11に表す各種説明図を参照し、VMM220の動作についてより詳細に説明する。

0043

図4は、設定情報の構成例を説明する図である。この設定情報212aは、作成対象とする仮想マシン231毎に、その仮想マシン231に割り当てるべき資源量を指定するための情報である。図4では、本実施形態に特に係わる資源量として、割り当てるべきCPUコア215の数を表す情報である割り当てCPUコア数のみを表記している。仮想マシン番号は、仮想マシン231の識別情報であり、図4中に表記の「1」〜「4」の数値は、それぞれ仮想マシン231−1〜231−4に割り当てられた仮想マシン番号を表している。

0044

設定情報212aは、仮想マシン231毎に、グループ番号を指定する。このグループ番号は、仮想マシン231が属する仮想マシングループ230に割り当てられた識別情報である。図4中に表記の「1」、「2」の数値は、それぞれ仮想マシングループ230−1、230−2に割り当てられたグループ番号を表している。

0045

図5は、割り当て優先度の決定ポリシー例を説明する図である。この割り当て優先度の決定ポリシーは、各仮想マシン231にCPUコア215を割り当てるうえでのルールであり、パターン毎に、設定すべき優先度を指定する。図5では、優先度を「高」「中」及び「低」のうちの何れかにより表している。「高」は、最優先で割り当てるべきCPUパッケージ211に設定される優先度である。

0046

パターンは、CPUパッケージ211の状態に相当する。優先度として「中」或いは「低」が設定されるパターンは、想定する仮想マシン231に着目してのものである。想定する仮想マシン231としては、図5ではCPUコア215の割り当てを変更すべき仮想マシン231を想定しているが、想定する仮想マシン231は作成対象とする仮想マシン231でも内容は基本的に同じとなる。

0047

「高」の優先度は、図5に表すように、何れのCPUコア215にも仮想マシン231が割り当てられていないCPUパッケージ211に設定される。「中」の優先度は、CPUコア215に割り当てられた仮想マシン231のグループ番号が全て同じであり、且つ想定する仮想マシン231のグループ番号と一致するCPUパッケージ211に設定される。「低」の優先度は、CPUコア215に割り当てられた仮想マシン231のグループ番号の少なくとも一つが、想定する仮想マシン231のグループ番号と一致しないCPUパッケージ211に設定される。

0048

図5に表す割り当て優先度の決定ポリシーは、CPUコア割り当て部222b、及びCPUグルーピング部222cに適用される。CPU管理情報作成部222aは、割り当て優先度決定ポリシーに係わらない部分を対象に、CPU管理情報225を作成する。それにより、作成される各仮想マシン231、及びCPUコア215の割り当てが変更される仮想マシン231には、図5に表す割り当て優先度の決定ポリシーに従って、CPUコア215が割り当てられる。

0049

図6は、CPU管理情報の構成例を説明する図である。CPU管理情報225には、図6に表すように、CPUコア215毎に、コア管理番号、位置情報、割り当て仮想マシン情報、及び割当除外フラグが格納される。

0050

コア管理番号は、CPUコア215を管理するために割り当てた識別情報である。図6に表記の「1」「8」の数値は、コア管理番号の例である。位置情報は、コア管理番号が割り当てられたCPUコア215が存在する位置を表す情報である。位置情報として表記の「CPUパッケージ番号」は、対応するCPUコア215を搭載したCPUパッケージ211の識別番号(後述するシリアル番号とは異なる)を表している。CPUパッケージ番号の例として表記の「A」〜「D」は、それぞれCPUパッケージ211−1〜211−4を表している。位置情報として表記の「CPUコア番号」は、対応するCPUコア215の搭載されたCPUパッケージ211内での識別番号を表している。CPUコア番号の例として表記の「0」「1」は、それぞれCPUコア215−0、215−1を表している。

0051

割り当て仮想マシン情報は、対応するCPUコア215が割り当てられた仮想マシン231を表す情報である。その情報の例として表記の「仮想マシン1」〜「仮想マシン4」は、それぞれ仮想マシン231−1〜231−4を表している。

0052

障害が発生したCPUパッケージ211、及び障害の予兆が検知されたCPUパッケージ211には、共に、仮想マシン231を割り当てるべきではない。割当除外フラグは、そのようなCPUパッケージ211への仮想マシン231の割り当てを回避するための情報である。割当除外フラグの内容例として表記の「No」は、仮想マシン231への割り当てを行っても良いことを表している。仮想マシン231への割り当てを行うべきではないCPUパッケージ211の割当除外フラグは、「No」から「Yes」に更新される。

0053

図4に表すように、各仮想マシン231に割り当てるべきCPUコア215は1つであり、CPUパッケージ211は4つ情報処理装置200に搭載されている。このことから、最終的には、図6に表すように、図5に表す割り当て優先度の決定ポリシーに従って、各CPUパッケージ211の1つのCPUコア215にそれぞれ仮想マシン231を割り当てることを指示するCPU管理情報225が作成される。

0054

図7は、割り当て優先度情報の構成例を説明する図である。
この割り当て優先度情報226は、CPUパッケージ211毎に、仮想マシン231にCPUコア215を新たに割り当てるうえでの優先度を表す情報である。図7に表すように、割り当て優先度情報226には、CPUパッケージ211毎に、そのパッケージ番号、及び優先度が格納される。

0055

優先度は、上記のように、想定する仮想マシン231によって変化する。そのため、CPUグルーピング部222cは、割り当て優先度情報226を、想定する仮想マシン231毎に作成する。図7に内容例を表す割り当て優先度情報226は、仮想マシン231−1、或いは231−2を想定した場合のものである。

0056

図8は、CPU管理情報の更新例を説明する図である。
CPU管理情報225は、作成された仮想マシン231にそれぞれ割り当てられているCPUコア215を確認するために用いられる。そのため、CPU管理情報225は、仮想マシンへのCPUコアの割り当てを変更した場合、更新される。図8に内容例を表すCPU管理情報225は、仮想マシン231−1へのCPUコア215の割り当てをCPUパッケージ211−1のCPUコア215−0からCPUパッケージ211−2のCPUコア215−1に変更した場合のものである。この割り当ての変更は、CPUパッケージ211−1に発生した障害、或いはそのCPUパッケージ211−1に現れた障害の予兆の検知により行われる。そのため、CPUパッケージ211−1の各CPUコア215の割当除外フラグは「No」から「Yes」に更新されている。

0057

仮想マシン231−1へのCPUコア215の割り当ての変更を図8に表す内容例のように行った場合、CPUパッケージ211−2〜211−4の何れに障害が発生したとしても、2つの処理系32のうちの少なくとも一方は運用を継続することができる。これは、その後に障害が発生したとしても、情報処理装置200の運用状態の低下をより抑えられるように、仮想マシン231へのCPUコア215の割り当て変更最適に行われたことを意味する。

0058

各仮想マシン231に割り当てるべきCPUコア215が1つであっても、情報処理装置200に搭載されるCPUパッケージ211の数が仮想マシン231の数より少ない場合、各仮想マシン231に異なるCPUパッケージ211を割り当てることはできない。図2に表す構成例では、同じCPUパッケージ211が備える各CPUコア215に異なる仮想マシン231を割り当てなければならない。情報処理装置200に搭載されるCPUパッケージ211が3つの場合、CPU管理情報作成部222a及びCPUコア割り当て部222bによって、例えば図9に表す内容例のCPU管理情報225が作成される。図9に表す内容例のCPU管理情報225は、同じ仮想マシングループ230に属する2台の仮想マシン231−3、及び231−4をCPUパッケージ211−3のCPUコア215−0、215−1にそれぞれ割り当てることを指定する。

0059

図9に表す内容例のCPU管理情報225に従って、各仮想マシン231にCPUコア215を割り当てた後、CPUパッケージ211−1に障害が発生するか、或いは障害の予兆が検知された場合、図10に表すように、CPU管理情報225は更新される。図10に表すような内容例の更新を行った場合、CPUパッケージ211−2及び211−3の何れか一方に障害が発生しても、2つの処理系32のうちの一方は運用を継続することができる。このことから、障害が発生しても、情報処理装置200の運用は継続させることができる。

0060

図9に表す内容例のCPU管理情報225に従って、各仮想マシン231にCPUコア215を割り当てた後、CPUパッケージ211−3に障害が発生するか、或いは障害の予兆が検知された場合、図11に表すように、CPU管理情報225は更新される。図11に表すような内容例の更新を行った場合、CPUパッケージ211−1及び211−2の何れか一方に発生する障害、或いは障害の予兆の検知により、2つの処理系32は共に運用を停止することになる。

0061

上記のように、資源としてのCPUパッケージ211に余裕余りない場合であっても、同じ仮想マシングループ230に属する仮想マシン231へのCPUコア215の割り当てに、同一のCPUパッケージ211を優先させる。この結果、稼働可能な仮想マシン231は最適な形で残すことができる。それにより、発生する障害の影響はより抑えられることとなる。

0062

以降は、図12図17に表すフローチャートを参照し、VMM220の動作について詳細に説明する。

0063

図12は、VMMが実行する全体処理のフローチャートである。この全体処理は、VMM220が仮想マシン231への資源210の割り当てのために実行する処理を抜粋し、抜粋した処理の流れを表したものである。始めに図12を参照して、全体処理について詳細に説明する。

0064

VMM220には、各仮想マシン231を制御できるように、各仮想マシン231に割り当てられたCPUコア215(CPUパッケージ211)が割り当てられるのが普通である。VMM220を実現させるVMMソフトウェアは、CPUパッケージ211のCPUコア215によって実行される。このことから、処理を実行する主体としてはCPUコア215を想定する。

0065

この図12には、後述する他の実施形態でのみ実行される処理ステップも表している。その処理ステップはS10である。それにより、本実施形態では、S7の終了後、S8に移行するようになっている。

0066

VMMソフトウェアを記憶装置212から読み出して実行を開始したCPUコア215は、先ず、初期化処理を実行する(S1)。次にCPUコア215は、CPU管理情報225を作成するCPU管理情報作成処理を実行する(S2)。

0067

図13は、CPU管理情報作成処理のフローチャートである。ここで図13を参照し、CPU管理情報作成処理について詳細に説明する。

0068

先ず、CPUコア215は、例えば新規のCPU管理情報225を作成し、作成したCPU管理情報225を記憶装置212上に確保した領域に格納する(S11)。その後、CPU215は、情報処理装置200に搭載された各CPUパッケージ211から、そのCPUパッケージ211内の各CPUコア215からAPIC IDを取得し、取得したAPIC ID中の情報をCPU管理情報225に格納するための処理ループL10を実行する。

0069

APIC IDは、複数のビットで構成される識別情報である。APIC IDには、CPUパッケージ番号を表すビット列、及びCPUコア番号を表すビット列が含まれる。CPUパッケージ番号、及びCPUコア番号は共に、APIC IDから抽出する対象となる情報である。

0070

この処理ループL10では、先ず、CPUコア215は、情報を取得すべきCPUパッケージ211、及びそのCPUパッケージ211内で対象となるCPUコア215を選択し、選択したCPUコア215のAPIC215からそのIDを取得する(S12)。次に、CPUコア215は、取得したAPIC IDからCPUパッケージ番号を取り出し(S13)、更にそのAPIC IDからCPUコア番号を取り出す(S14)。CPUコア215は、そのようにして取り出したCPUパッケージ番号、及びCPUコア番号に、コア管理番号を割り当て、コア管理番号、及び位置情報としてのCPUパッケージ番号、及びCPUコア番号をCPU管理情報225に格納する(S15)。CPU管理情報225がテーブルであった場合、コア管理番号、及び位置情報の格納は、1エントリ追加し、追加したエントリにコア管理番号、及び位置情報を格納することで行われる。

0071

コア管理番号、及び位置情報を格納した後、他にAPIC IDを取得すべきCPUコア215が残っていない場合、処理ループL10が終了し、その処理ループL10の終了に伴い、このCPU管理情報作成処理も終了する。他にAPIC IDを取得すべきCPUコア215が残っている場合、上記S12に戻り、APIC IDを取得すべきCPUコア215の選択、選択したCPUコア215からのAPIC IDの取得が行われる。それにより、処理ループL10の実行が継続される。図2に表すCPU管理情報作成部222aは、このCPU管理情報作成処理をCPUコア215が実行することで実現される。

0072

図12の説明に戻る。
上記CPU管理情報作成処理を実行した後はS3に移行する。そのS3では、CPUコア215は、作成すべき仮想マシン231にそれぞれ資源210を割り当てる処理を実行する。

0073

図14は、CPUコア割り当て処理のフローチャートである。このCPUコア割り当て処理は、作成する各仮想マシン231にCPUコア215を割り当てるために、S3内で実行される処理である。図2に表すCPUコア割り当て部222bは、このCPUコア割り当て処理をCPUコア215が実行することで実現される。ここで図14を参照し、CPUコア割り当て処理について詳細に説明する。

0074

このCPUコア割り当て処理には、仮想マシン毎にCPUコア215を割り当てるための処理ループL20が形成されている。この処理ループL20内には、処理ループL20で対象とした仮想マシン231に割り当てるべき数のCPUコア215を探し出して割り当てるための処理ループL25が形成されている。各仮想マシン231に割り当てるべき数のCPUコア215を割り当てるために、CPU管理情報225、及び設定情報212aが参照される。

0075

この処理ループL25では、CPUコア215は、先ず、設定情報212a、及びCPU管理情報225を参照し、仮想マシン231が割り当てられていないCPUコア215毎に、優先度を決定する(S21)。この優先度の決定は、図5に表す割り当て優先度の決定ポリシーに沿って行われる。

0076

各CPUコア215の優先度を決定した後、CPUコア215は、決定した優先度のなかで最も高い優先度のCPUコア215を、対象とする仮想マシン231に割り当て、その割り当て結果をCPU管理情報225に反映させる(S22)。

0077

このようにして、対象とする仮想マシン231に、1つのCPUコア215が割り当てられる。対象とする仮想マシン231に更にCPUコア215を割り当てる必要がある場合、上記S21に戻り、優先度の決定が再度、行われる。対象とする仮想マシン231に更にCPUコア215を割り当てる必要がない場合、処理ループL25が終了し、処理ループL20に移行する。

0078

移行先の処理ループL20では、CPUコア215の割り当てを行うべき仮想マシン231が他に存在する場合、別の仮想マシン231が対象に選択される。CPUコア215の割り当てを行うべき仮想マシン231が他に存在しない場合、処理ループL20が終了し、その処理ループL20の終了に伴い、このCPUコア割り当て処理も終了する。

0079

図12の説明に戻る。
上記CPUコア割り当て処理を含むS3を実行することにより、作成すべき全ての仮想マシン231への資源210の割り当てが終了する。そのS3を実行した後に移行するS4では、CPUコア215は、作成した全ての仮想マシン231を起動させる。

0080

作成した全ての仮想マシン231を起動させたCPUコア215は、次に、各CPUパッケージに現れる障害の予兆を検知するためのCPU障害予兆監視処理を実行する(S5)。

0081

図15は、CPU障害予兆監視処理のフローチャートである。ここで図15を参照し、CPU障害予兆監視処理について詳細に説明する。

0082

上記のように、CPUパッケージ211に現れる障害の予兆の検知は、訂正可能エラーカウンタレジスタ217の値を監視することで行われる。本実施形態では、単位時間当たりに発生する訂正可能なエラーの数がしきい値を超えた場合に、障害の予兆が現れたと見なすようにしている。このことから、CPU障害予兆監視処理は、例えば一定時間が経過する度に実行される。

0083

このCPU障害予兆監視処理では、始めに、CPUパッケージ211毎に、現れた障害の予兆を検知するための処理ループL30が実行される。

0084

この処理ループL30では、CPUコア215は、先ず、対象とするCPUパッケージ211に要求して、訂正可能エラーカウンタレジスタ217の値を取得する(S31)。次に、CPUコア215は、取得した値から前回、取得した値を減算することにより、一定時間の経過による増分を計算し、今回、取得した値を保存する(S32)。その後、CPUコア215は、増分が上記しきい値を超えているか否か判定する(S33)。計算した増分がしきい値より大きい場合、S33の判定はyesとなってS34に移行する。計算した増分がしきい値以下であった場合、S33の判定はnoとなって、処理ループL30内の一連の処理が終了する。

0085

一連の処理が終了した処理ループL30は、他に対象とすべきCPUパッケージ211が存在しない場合、終了する。他に対象とすべきCPUパッケージ211が残っている場合、処理ループL30は、残っているCPUパッケージ211を対象に設定し、上記S31に戻る。それにより、処理ループL30の実行が継続される。

0086

S34では、CPUコア215は、障害の予兆が検知されたと見なす。それにより、CPUコア215は、CPU管理情報225内の対象とするCPUパッケージ211の割当除外フラグを「No」から「Yes」に更新する。その後、このCPU障害予兆監視処理が終了する。

0087

本実施形態では、上記のように、障害の予兆の検知により、CPU障害予兆監視処理を終了するようにしている。これは、複数のCPUパッケージ211に一度に障害の予兆が現れる確率は極めて低い、障害の予兆が現れたCPUパッケージ211のCPUコア215を使用している仮想マシン231に別のCPUコア215をより迅速に割り当てる、といった理由からである。

0088

図12の説明に戻る。
上記CPU障害予兆監視処理の実行が終了すると、次にCPUコア215は、CPUパッケージ211に障害の予兆が検知されたか否か判定する(S6)。CPU管理情報225が表す何れかのCPUパッケージ211の割当除外フラグが「No」から「Yes」に更新された場合、S6の判定はyesとなって処理ループL1に移行する。割当除外フラグが「No」から「Yes」に更新されたCPUパッケージ211が存在しない場合、S6の判定はnoとなる。その場合、一定時間の経過を待ってS5に移行し、再度、CPU障害予兆監視処理が実行される。

0089

上記処理ループL1では、障害の予兆が検知されたCPUパッケージ211のCPUコア215を使用している仮想マシン231毎に、その仮想マシン231に別のCPUコア215を割り当てるための一連の処理が行われる。

0090

先ず、CPUコア215は、障害の予兆が検知されたCPUパッケージ211のCPUコア215を使用している1台の仮想マシン231を選択し、選択した仮想マシン231を想定して割り当て優先度情報226を作成する割り当て優先度決定処理を実行する(S7)。次に、CPUコア215は、作成した割り当て優先度情報226、及びCPU管理情報225を参照し、想定した仮想マシン231に割り当てられているCPUコア215を変更するCPUコア切替処理を実行する(S8)。

0091

このCPUコア切替処理の終了により、処理ループL1の一連の処理が終了する。それにより、CPUコア215の割り当てを変更すべき仮想マシン231が他に存在しない場合、処理ループL1が終了し、一定時間が経過した後、上記S5に戻る。CPUコア215の割り当てを変更すべき仮想マシン231が他に存在する場合、上記S7に戻る。

0092

図16は、上記S7として実行される割り当て優先度決定処理のフローチャートである。次に、図16を参照し、その割り当て優先度決定処理について詳細に説明する。

0093

この割り当て優先度決定処理では、CPUパッケージ211毎に、優先度を決定するための処理ループL40が実行される。その処理ループL40では、先ず、CPUコア215は、対象とするCPUパッケージ211に対する優先度を設定する(S41)。次に、CPUコア215は、割り当て優先度情報226の各エントリに、設定した優先度(初期値)として「高」を格納する(S42)。初期値の格納を行った後は処理ループL45に移行する。

0094

この処理ループL45では、対象とするCPUパッケージ211に搭載されているCPUコア215毎に、設定すべき優先度を設定するための処理が行われる。

0095

先ず、CPUコア215は、CPU管理情報225を参照し、対象とするCPUコア215に既に仮想マシン231が割り当てられているか否か判定する(S43)。対象とするCPUコア215に仮想マシン231が割り当てられていた場合、S43の判定はyesとなってS44に移行する。対象とするCPUコア215に仮想マシン231が割り当てられていない場合、S43の判定はnoとなり、ここで処理ループL45内の一連の処理が終了する。

0096

S44では、CPUコア215は、設定情報212aを参照し、対象とするCPUコア215を使用している仮想マシン231が属する仮想マシングループ230が、想定する仮想マシン231が属する仮想マシングループ230と同じか否か判定する。それら仮想マシングループ230が同じであった場合、S44の判定はyesとなる。それにより、CPUコア215は、対象とするCPUパッケージ211の優先度を「中」に変更する(S45)。その後、処理ループL45内の一連の処理が終了する。一方、それら仮想マシングループ230が同じでない場合、S44の判定はnoとなる。それにより、CPUコア215は、対象とするCPUパッケージ211の優先度を「低」に変更する(S46)。その後、処理ループL45内の一連の処理が終了する。

0097

一連の処理が終了した処理ループL45は、他に対象とすべきCPUコア215が存在しない場合、終了し、処理ループL40に戻る。他に対象とすべきCPUコア215が存在する場合、上記S43に戻り、他のCPUコア215を対象にした処理が行われる。

0098

移行した処理ループL40は、他に対象とすべきCPUパッケージ211が存在しない場合、終了し、処理ループL40の終了に伴い、この割り当て優先度決定処理も終了する。他に対象とすべきCPUパッケージ211が存在する場合、上記S41に戻り、他のCPUパッケージ211を対象にした処理が行われる。

0099

処理ループL45を実行することにより、対象とするCPUパッケージ211の優先度は、図5に表す割り当て優先度の決定ポリシーに従って決定されることになる。それにより、CPUコア215の割り当てを変更すべき仮想マシン231には、CPUパッケージ211に発生する障害、及び障害の予兆の検知への耐性が最適となるCPUコア215が新たに割り当てられることとなる。図2に表すCPUグルーピング部222cは、CPUコア215がこの割り当て優先度決定処理を実行することで実現される。

0100

図17は、上記S8として実行されるCPUコア切替処理のフローチャートである。最後に、図17を参照し、そのCPUコア切替処理について詳細に説明する。図2に表すコア切替部221bは、CPUコア215が、このCPUコア切替処理を実行することで実現される。対象とする仮想マシン231は、図12に表す処理ループL1で対象として選択された仮想マシン231である。

0101

このCPUコア切替処理では、先ず、CPUコア215は、直前のS7での割り当て優先度決定処理の実行により作成された割り当て優先度情報226、及びCPU管理情報225を取得する(S51)。その後、CPUコア215は、処理ループL50を実行する。

0102

処理ループL50は、優先度別に、対象とする優先度が割り当てられたCPUパッケージ211のCPUコア215のなかで割り当て可能なCPUコア215を探し出し、探し出したCPUコア215を対象とする仮想マシン231に割り当てるためのものである。この処理ループL50内で実行される処理ループL55は、対象とする優先度が割り当てられたCPUパッケージ211のCPUコア215を対象としたものである。

0103

処理ループL55では、先ず、CPUコア215は、対象とする優先度が割り当てられたCPUパッケージ211内の1つのCPUコア215に着目し、着目したCPUコア215の割当除外フラグが「Yes」か否か判定する(S52)。その割当除外フラグが「Yes」であった場合、S52の判定はyesとなり、ここで処理ループL55内の一連の処理が終了する。その割当除外フラグが「No」であった場合、S52の判定はnoとなってS53に移行する。

0104

S53では、CPUコア215は、着目したCPUコア215が空いているか否か判定する。着目したCPUコア215に何れかの仮想マシン231が割り当てられている場合、S53の判定はnoとなり、ここで処理ループL55内の一連の処理が終了する。着目したCPUコア215に何れかの仮想マシン231も割り当てられていない場合、S53の判定はyesとなってS54に移行する。

0105

S54では、CPUコア215は、対象とする仮想マシン231に、着目したCPUコア215を新たに割り当てる。次に、CPUコア215は、対象とする仮想マシン231に新たに割り当てるべき数のCPUコア215の割り当てが実行済みか否か判定する(S55)。対象とする仮想マシン231に新たに割り当てるべき数のCPUコア215の割り当てが実行済みであった場合、S55の判定はyesとなり、ここでCPUコア切替処理が終了する。対象とする仮想マシン231に新たに割り当てるべきCPUコア215が残っている場合、S55の判定はnoとなり、ここで処理ループL55内の一連の処理が終了する。

0106

一連の処理が終了した処理ループL55は、他に着目すべきCPUコア215が存在しない場合、終了し、処理ループL50に戻る。他に対象とすべきCPUコア215が存在する場合、上記S52に戻り、他のCPUコア215に着目した処理が行われる。

0107

移行した処理ループL50は、他に対象とすべきCPUパッケージ211が存在しない場合、終了し、処理ループL50の終了に伴い、このCPUコア切替処理も終了する。他に対象とすべきCPUパッケージ211が存在する場合、処理ループL55で他のCPUパッケージ211が対象として選択された後、上記S52に戻る。

0108

対象とする他のCPUパッケージ211は、対象とする優先度と同じ優先度が設定されたCPUパッケージ211のなかから選択される。対象とする優先度と同じ優先度が設定され、且つ対象としていないCPUパッケージ211が存在しない場合、対象とする優先度より一つ低い優先度が新たに対象として選択される。それにより、新たに対象とする優先度と同じ優先度が設定されたCPUパッケージ211のなかから対象とする他のCPUパッケージ211が選択される。

0109

(他の実施形態)
図18は、他の実施形態による情報処理装置の構成例、及びその情報処理装置上に作成される仮想マシン例を説明する図である。

0110

他の実施形態による情報処理装置の構成は、上記本実施形態による情報処理装置200と大部分は同じである。また、他の実施形態による情報処理装置上に作成される仮想マシンは、本実施形態による情報処理装置200上に作成される仮想マシン231と区別する必要はない。他の実施形態による情報処理装置上で動作するVMMの動作の大部分は、本実施形態による情報処理装置200上で動作するVMM220と同じである。このようなことから、ここでは、本実施形態から異なる部分についてのみ着目する形で説明を行うこととする。

0111

他の実施形態では、図18に表すように、情報処理装置200の資源210は、6つのCPUパッケージ211(211−1〜211−6)を備えている。他の実施形態では、各CPUパッケージ211が備えているレジスタ2110に格納された自身の識別情報であるシリアル番号が処理に用いられる。

0112

他の実施形態では、情報処理装置200上に計6台の仮想マシン231(231−1〜231−6)が作成される。6台の仮想マシン231は、3台の仮想マシン231−1〜231−3が仮想マシングループ230−1に属し、残り3台の仮想マシン231−4〜231−6が仮想マシングループ230−2に属している。各仮想マシングループ230は、本実施形態と同様に、図3に表す2つの処理系32のうちの一方に対応すると想定する。その想定では、3台の仮想マシン231のうちの2台の仮想マシン231をAPサーバ34として用いることが考えられる。

0113

図19は、他の実施形態で作成されるCPU管理情報の内容例を表す図である。
他の実施形態でも、各仮想マシン231には1つのCPUコア215が割り当てられると想定している。情報処理装置200に搭載されているCPUパッケージ211の数は6である。このことから、作成されるCPU管理情報225は、図19に表すように、各CPUパッケージ211には、1つのCPUコア215にのみ、異なる仮想マシン231が割り当てられることを表している。

0114

管理コントローラ800は、仮想マシン231の管理に用いられる管理装置である。管理コントローラ800は、資源810として、例えばCPU811、メモリ(メモリモジュール)812、フラッシュメモリ813、及び各CPUパッケージ211との通信を可能にするインターフェース814を備えている。

0115

この管理コントローラ800上には、記憶装置820、情報処理装置通信部830、及びCPU監視部840が実現されている。

0116

記憶装置820は、例えばメモリ812、及びフラッシュメモリ813のうちの少なくとも一方によって実現される。この記憶装置820には、訂正可能エラー累積情報821が格納される。情報処理装置通信部830は、例えばインターフェース814である。

0117

図20は、訂正可能エラー累積情報の構成例を説明する図である。
この訂正可能エラー累積情報821は、各CPUパッケージ211に訂正可能エラーが発生する頻度を把握するための情報である。この訂正可能エラー累積情報821には、図20に表すように、CPUパッケージ211毎に、そのシリアル番号、及び発生した訂正可能エラーの累積値を表すエラー累積値情報が格納される。各CPUパッケージ211のエラー累積値情報が表す累算値は、各CPUパッケージ211間で適切な比較が行えるように、全て同じタイミングからの累算値である。

0118

情報処理装置200に搭載されるCPUパッケージ211は、普通、交換可能となっている。CPUパッケージ211が交換されたか否かを確認できるように、他の実施形態ではシリアル番号を訂正可能エラー累積情報821に格納するようにしている。

0119

CPU監視部840は、各CPUパッケージ211を監視し、何れかのCPUパッケージ211に発生した障害に対応する。CPU監視部840には、訂正可能エラー取得部841が含まれている。この訂正可能エラー取得部841は、各CPUパッケージ211から訂正可能エラーカウンタレジスタ217の値を定期的に取得し、取得した値から前回に取得した値を減算して増分を計算し、計算した増分を用いて、訂正可能エラー累積情報821を更新する。その更新は、各エラー累積値情報が表す累積値を、それまでの累積値に増分を加算した値に変更することで行われる。

0120

訂正可能エラー取得部841は、訂正可能エラーカウンタレジスタ217の値を取得する前に、レジスタ2110に格納されたシリアル番号を取得し、取得したシリアル番号が訂正可能エラー累積情報821に存在するか否かの確認を行う。それにより、訂正可能エラー累積情報821に存在しないシリアル番号を取得したことが確認できた場合、訂正可能エラー取得部841は、訂正可能エラー累積情報821に格納されている全てのエラー累積値情報をクリアする。そのようにして全てのエラー累積値情報をリセットした状態から、訂正可能エラー取得部841は、各エラー累積値情報の格納、及び格納後の更新を行う。

0121

図18では、管理コントローラ800を、各CPUパッケージ211、及びVMM220と線で結んでいる。これは、資源210の構成要素としては各CPUパッケージ211が通信対象であり、各仮想マシン231とVMM220のなかではVMM220が通信対象であるためである。

0122

仮想マシン231が作成される情報処理装置200には、普通、情報処理装置200全体の管理を行う管理装置であるBMC(Baseboard Management Controller)が搭載される。このBMCは、情報処理装置200に搭載された各CPUパッケージ211の状態を監視し、必要な処理を行う。このことから、上記管理コントローラ800は、専用の管理装置として情報処理装置200に搭載させても良いが、既に情報処理装置200に搭載されている処理装置上に実現させても良い。管理コントローラ800は、情報処理装置200の外にあっても良い。

0123

他の実施形態では、VMM220のCPU割り当て管理部222に、CPU累積情報取得部222dが追加されている。このCPU累積情報取得部222dは、管理コントローラ800から訂正可能エラー累積情報821を取得し、取得した訂正可能エラー累積情報821を割り当て優先度情報226に反映させる。

0124

図21は、他の実施形態における割り当て優先度情報の構成例を説明する図である。図21に表す内容例は、CPUパッケージ211−1〜211−3のうちの何れかに障害が発生するか、或いは障害の予兆が検知された場合の例である。

0125

上記実施形態では、割り当て優先度情報226には、図7に表すように、CPUパッケージ211毎に、そのパッケージ番号、及び優先度が格納される。他の実施形態では、図21に表すように、更にエラー累積値情報が格納されるようになっている。それにより、CPU累積情報取得部222dによる割り当て優先度情報226への反映は、取得した訂正可能エラー累積情報821中の各エラー累積値情報を対応するエラー累積値情報に上書きすることで行われる。

0126

割り当て優先度情報226は、上記実施形態と同じく、仮想マシン231に割り当てるCPUコア215を変更する場合に作成される。そのため、他の実施形態でも、CPUコア切替部221のコア切替部221bは、割り当て優先度情報226を参照し、CPUコア215の割り当てを変更すべき仮想マシン231に新たにCPUコア215を割り当てる。

0127

CPUコア215の割り当てでは、上記実施形態と同じく、優先度の高いCPUパッケージ211のCPUコア215が優先される。優先度が同じCPUパッケージ211が複数、存在する場合、CPUコア215の割り当ては、エラー累積値情報が表す累積値が低いCPUパッケージ211を優先させる。それにより、他の実施形態では、より優先度が高く、且つ訂正可能エラーの発生がより少ないCPUパッケージ211を優先して、仮想マシン231に新たにCPUコア215を割り当てるようにしている。

0128

訂正可能エラーの発生が少ないCPUパッケージ211ほど、障害が発生する、或いは障害の予兆が検知されるまでの時間が長いと期待することができる。このため、訂正可能エラーの発生がより少ないCPUパッケージ211のCPUコア215を優先して割り当てることにより、仮想マシン231全体が安定的に稼働できる期間がより長くなる可能性を高くすることができる。

0129

図22は、他の実施形態におけるCPUパッケージに障害が発生した場合のCPU管理情報の更新例を説明する図である。図22に表す更新例は、CPUパッケージ211−1に障害が発生した場合の例である。

0130

図19に表すように、CPUパッケージ211−1のCPUコア215−0に仮想マシン231−1が割り当てられている。CPUパッケージ211−1に障害が発生するか、或いは障害の予兆が検知された場合、図21に表すような内容例の割り当て優先度情報226が作成される。仮想マシン231−1に新たに割り当てるCPUコア215は、作成された割り当て優先度情報226、及びCPU管理情報225を参照して決定される。このとき、CPU管理情報225では、CPUパッケージ211−1の各CPUコア215の割当除外フラグは共に「Yes」となっている。そのため、優先度が「中」となっている2つのCPUパッケージ211−2及び211−3のなかでエラー累積値情報が表す累積値が小さいCPUパッケージ211−3のCPUコア215−1が仮想マシン231−1に新たに割り当てられることとなる。結果、CPU管理情報225は、図19に表す内容から図22に表す内容に更新される。

0131

なお、他の実施形態では、各CPUパッケージ211の状態を表す情報として、エラー累積値を採用しているが、他の情報を採用しても良い。複数の情報を採用しても良い。採用可能な他の情報としては、例えばCPUパッケージ211の総稼働時間、CPUパッケージ211の温度(及びその変化)、負荷、等を挙げることができる。

0132

上記エラー累積値は、CPUパッケージ211の利用状態、例えば割り当てられた仮想マシン231の数、その種類、稼働時間、等に依存して変化する。このことから、実際に用いるエラー累積値としては、各CPUパッケージ211の利用状態の違いに応じて正規化したものが望ましい。

0133

以降は、図23図25を参照し、管理コントローラ800、及びVMM220の各動作について詳細に説明する。

0134

図23は、管理コントローラが実行する全体処理のフローチャートである。この図23、及び図24を参照し、始めに管理コントローラ800の動作について詳細に説明する。

0135

図23にフローチャートを表す全体処理は、仮想コントローラ800がVMM220との連携のために実行する処理を抜粋し、抜粋した処理の流れを表したものである。管理コントローラ800の説明では、始めに図23を参照して、全体処理について詳細に説明する。この全体処理は、前回、実行してから一定時間が経過するか、或いはVMM220(実際には何れかのCPUパッケージ211)からの要求を受信することを契機に起動される。

0136

管理コントローラ800は、上記のように、CPU811が、フラッシュメモリ813に格納されたファームウェアをメモリ812に読み出して実行することで動作する。このことから、処理を実行する主体としてはCPU811を想定する。

0137

先ず、CPU811は、前回、全体処理を実行してから一定時間(図23中「ウェイト時間」と表記)が経過したか否か判定する(S101)。前回、全体処理を実行してから一定時間が経過していない場合、S101の判定はnoとなってS103に移行する。前回、全体処理を実行してから一定時間が経過している場合、S101の判定はyesとなってS102に移行する。

0138

S102では、CPU811は、各CPUパッケージ211から訂正可能エラーカウンタレジスタ217の値を取得し、訂正可能エラー管理情報821を更新するための訂正可能エラー累積情報更新処理を実行する。その後、CPU811は、VMM220からエラー訂正可能エラー累積情報821の送信要求を受信したか否か判定する(S103)。何れかのCPUパッケージ211がその送信要求を送信した場合、S103の判定はyesとなってS104に移行する。何れのCPUパッケージ211もその送信要求を送信していない場合、S103の判定はnoとなり、ここで全体処理が終了する。

0139

S104では、CPU811は、訂正可能エラー累積情報821を、要求したCPUパッケージ211に送信する。訂正可能エラー累積情報821の送信後、全体処理が終了する。

0140

図24は、上記S102で実行される訂正可能エラー累積情報更新処理のフローチャートである。次に図24を参照して、この訂正可能エラー累積情報更新処理について詳細に説明する。

0141

この訂正可能エラー累積情報更新処理には、CPUパッケージ211毎に、訂正可能エラーカウンタレジスタ217の値を取得し、訂正可能エラー累積情報821中の対応するエラー累積値情報を更新するための処理ループ110が形成されている。訂正可能エラー累積情報更新処理は、この処理ループL110の終了に伴い、終了するようになっている。

0142

この処理ループL110では、CPU811は、先ず、認識しているCPUパッケージ211のうちの1つを選択し、選択したCPUパッケージ211から訂正可能エラーカウンタレジスタ217の値を取得する(S111)。次に、CPU811は、選択したCPUパッケージ211からシリアル番号を取得する(S112)。その後、CPU811は、取得したシリアル番号が訂正可能エラー累積情報821に登録されているか否か判定する(S113)。取得したシリアル番号が訂正可能エラー累積情報821に格納されている場合、S113の判定はyesとなってS115に移行する。取得したシリアル番号が訂正可能エラー累積情報821に格納されていない場合、言い換えれば、それまでに存在していなかったCPUパッケージ211が新たに確認できた場合、S113の判定はnoとなってS114に移行する。

0143

S114では、CPU811は、訂正可能エラー累積情報821を初期化する。訂正可能エラー累積情報821の初期化とは、例えば全てのエラー累積値情報をクリアすることである。取得したシリアル番号は、訂正可能エラー累積情報821に新たに登録する。そのような処理をS114で行った後、処理ループL110内の一連の処理が終了する。

0144

一方、S115では、CPU811は、今回、取得した訂正可能エラーカウンタレジスタ217の値から前回、取得したその値を減算することにより、訂正可能エラーカウンタレジスタ217の値の増分、つまり一定時間の間に発生した訂正可能エラーの数を計算する。S116には、その後に移行する。

0145

S116では、CPU811は、計算した増分を用いて、訂正可能エラー累積情報821を更新する。その更新は、訂正可能エラー累積情報821中の対応するエラー累積値情報を、それまでの値に増分を加算した値に書き換えることで行われる。訂正可能エラー累積情報821の更新により、処理ループL110内の一連の処理が終了する。

0146

一連の処理が終了した処理ループL110は、他に対象とすべきCPUパッケージ211が存在しない場合、終了する。このとき、例えば訂正可能エラー累積情報821に格納されているシリアル番号のなかで取得できなかったシリアル番号は削除される。これは、シリアル番号が取得できなかったCPUパッケージ211は、情報処理装置200から取り外されているか、或いは障害が発生している可能性が高いためである。それにより、訂正可能エラー移籍情報更新処理は、そのような操作を訂正可能エラー累積情報821に行った後、終了する。一方、他に対象とすべきCPUパッケージ211が残っている場合、上記S111に戻る。それにより、処理ループL110の実行が継続される。

0147

他の実施形態では、上記のように、図12にフローチャートを表す全体処理の一部が上記実施形態とは異なっている。他の実施形態では、S7の次にS10として、割り当て優先度反映処理を実行する。

0148

この割り当て優先度反映処理は、管理コントローラ800から訂正可能エラー累積情報821を取得し、取得した訂正可能エラー累積情報821を用いて、S7で作成された割り当て優先度情報226を更新するための処理である。CPUエラー累積情報取得部222dは、CPUコア215が、この割り当て優先度反映処理を実行することで実現される。次に、この割り当て優先度反映処理について、図25に表すそのフローチャートを参照して詳細に説明する。

0149

先ず、CPUコア215は、管理コントローラ800に対し、訂正可能エラー累積情報821の送信要求を送信する(S121)。次にCPUコア215は、訂正可能エラー累積情報821が受信されるのを待って、受信された訂正可能エラー累積情報821を取得する(S122)。

0150

訂正可能エラー累積情報821を取得したCPU811は、取得した訂正可能エラー累積情報821から全てのエラー累積値情報を抽出し、抽出した各エラー累積値情報を、作成された割り当て優先度情報226に上書きする(S123)。そのようにして、訂正可能エラー累積情報821を割り当て優先度情報226に反映させた後、この割り当て優先度反映処理が終了する。

0151

他の実施形態では、上記割り当て優先度反映処理をS10で実行した後、S8としてCPUコア切替処理を実行する。

0152

上記実施形態では、図17にフローチャートを表すCPUコア切替処理が実行される。他の実施形態では、同じ優先度のCPUパッケージ211のなかでエラー累積値情報の表す累積値がより小さいCPUパッケージ211のCPUコア215を優先的に仮想マシン231に割り当てるようにしている。そのため、他の実施形態では、処理ループL50で対象とする優先度が設定されたCPUパッケージ211のCPUコア215は、処理ループL55で累積値がより小さいCPUパッケージ211のCPUコア215から対象とするようになっている。上記実施形態との相違は、処理ループL55で対象とするCPUパッケージ211のCPUコア215を選択する順序が異なる点のみである。

0153

なお、上記本実施形態、及び他の実施形態では共に、仮想マシングループ230間の優先関係は考慮していないが、その優先関係を考慮するようにしても良い。仮想マシングループ230間の優先関係を考慮するようにした場合、より重要なほうの仮想マシングループ230の運用をより維持させることができる。また、重要性の低い、或いは運用を維持できなくなった仮想マシングループ230に属する仮想マシン231へのCPUコア215の割り当ての解除選択肢となることから、運用を維持すべき仮想マシングループ230の運用はより安定的に行えるようになる。仮想マシングループ230に属さない1台の仮想マシン231は、1つの仮想マシングループ230と見なすのが望ましい。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する未来の課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

おすすめの成長市場

関連メディア astavision

  • 音声認識・音声合成・ボーカロイド

    米国Apple社は、2011年、iPhone向け知能型音声認識サービスSiriを市場に試験投入して以…

  • 機械学習・深層学習(Deep Learning)

    2012年6月26日、Google Official Blog は、ネコと思しき1枚の画像とともにあ…

  • 生体情報デバイス・バイオセンサ

    「音楽を学習した人工知能は、人間を感動させることができるか?」をテーマに、クラブイベント「2045」…

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

新着 最近公開された関連が強い技術

  • 日本電気株式会社の「同期処理ユニット、デバイス、システムおよび方法」が公開されました。(2017/10/05)

    【課題】拡張バスで接続された複数のプロセッサ間で同期処理を行う際に、性能を低下させることなく、同期処理に用いるメモリに対するメモリアクセスの順序を保証する技術を提供する。【解決手段】同期処理ユニット2... 詳細

  • 日本無線株式会社の「CPUスタンバイ復帰構造および復帰方法」が公開されました。(2017/09/28)

    【課題】外部割込が入らない場合でも復帰を可能にするCPUスタンバイ復帰構造を提供する。【解決手段】 スリープ状態のCPU1に所定の周期で外部割込を入れて、CPU1を起動させる外部割込部2と、外部タイ... 詳細

  • カシオ計算機株式会社の「タスク管理装置及びプログラム」が公開されました。(2017/09/28)

    【課題】実施するべきタスクの内容とそのタスクの実施期限を容易に入力及び把握できるようにするとともに、実施期限までにタスクが確実に実施されるよう支援することである。【解決手段】サーバ10は、それぞれに所... 詳細

この技術と関連性が強い技術

この技術と関連性が強い人物

この技術と関連する未来の課題

該当するデータがありません

この技術と関連する公募課題

該当するデータがありません

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ