JP2009151745A - 仮想マシンモニタ及びマルチプロセッサシステム - Google Patents

仮想マシンモニタ及びマルチプロセッサシステム Download PDF

Info

Publication number
JP2009151745A
JP2009151745A JP2008169803A JP2008169803A JP2009151745A JP 2009151745 A JP2009151745 A JP 2009151745A JP 2008169803 A JP2008169803 A JP 2008169803A JP 2008169803 A JP2008169803 A JP 2008169803A JP 2009151745 A JP2009151745 A JP 2009151745A
Authority
JP
Japan
Prior art keywords
memory
virtual server
processor
physical
allocated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008169803A
Other languages
English (en)
Other versions
JP5210730B2 (ja
Inventor
Keitaro Uehara
敬太郎 上原
Yuji Tsushima
雄次 對馬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008169803A priority Critical patent/JP5210730B2/ja
Priority to US12/222,227 priority patent/US8819675B2/en
Priority to EP08014080A priority patent/EP2065804A1/en
Priority to KR1020080079105A priority patent/KR101090651B1/ko
Priority to CN2008102106429A priority patent/CN101446928B/zh
Publication of JP2009151745A publication Critical patent/JP2009151745A/ja
Application granted granted Critical
Publication of JP5210730B2 publication Critical patent/JP5210730B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)

Abstract

【課題】 I/Oデバイスの専有割付機能を有する仮想マシンモニタ上で、I/Oデバイスの物理位置情報を取得するインタフェースを持ち、取得した物理位置情報を使って仮想サーバに対するリソースの割付を、指定されたポリシーに従って最適化する。
【解決手段】 ゲストOSに要求されるI/Oデバイス、CPU数、メモリ量に対して、与えられたポリシー(リソース配分において何を優先するかを決めるパラメータ)に従いリソースを割り当てるインタフェースを仮想マシンモニタが備える。また、仮想マシンモニタが割り当てたリソースの物理位置情報を、ゲストOSに対して適切に変換して通知するインタフェースを仮想マシンモニタに備える。
【選択図】 図1

Description

本発明は、仮想マシンモニタによって物理計算機上で仮想サーバを稼動させ、I/Oデバイスを仮想サーバに割り当てる仮想計算機に関する。
近年の半導体技術の進行に伴い、1つのダイ上に複数のコアを集積するマルチコアプロセッサや、メモリコントローラをプロセッサダイ上に搭載するメモリコントローラ統合プロセッサが登場している。このように集積された計算機リソースを有効活用するために、従来複数のサーバに分散していた処理を一つのサーバに集約しコストを削減する動きが多
く見られる。このようなサーバの集約に際して有効となる手段が、サーバ分割により、複
数のオペレーティングシステムを1台のサーバ上で稼動させる方法である。サーバ分割に
は、ノード単位、あるいはプロセッサ(コア)やI/Oデバイスなどのコンポーネント単
位でハードウェアによる分割をサポートする物理分割方式と、ハイパバイザや仮想マシン
モニタと呼ばれるファームウェアによって実現される論理分割方式とがある。
論理分割方式では、各オペレーティングシステム(ゲストOS)は仮想マシンモニタが
提供する論理プロセッサ上で実行され、仮想マシンモニタにより複数の論理プロセッサが
物理プロセッサへマッピングされることにより、ノードよりも細かい単位に区画を分割で
きる。さらにプロセッサ(コア)に関しては複数の論理区画間で1つの物理プロセッサ(
コア)を時分割で切り替えながら実行することもできる。これにより、物理プロセッサ(
コア)の数よりも多くの論理区画を生成して同時に実行することが可能になる。論理分割
を目的とした仮想マシンモニタソフトウェアとしては特許文献1に記載されるような技術
が代表的である。
しかし高集積化が比較的易しいプロセッサやメモリに比べて、入出力の口(経路)を持
つ必要があるため本質的に集積しにくいI/Oデバイスに関しては数が減らせず、従来の
CPUとI/Oデバイスとのバランスが崩れていく傾向が見られる。I/Oデバイスの数
を増やすためには、I/Oスイッチを用いてスロットを増設するといった対策が考えられ
る。しかしI/OスイッチによってプロセッサやメモリとI/Oデバイスとの距離が離れ
ることでI/O性能を十分に引き出せないケースが出てきた。
そこで従来は複数の仮想サーバで共有してきたI/Oデバイスを、特定の仮想サーバに
専有させ、十分なI/O性能を確保するというアプローチが採られるようになってきてい
る。このような仮想サーバによるI/Oデバイスの専有をサポートする機能として、非特
許文献1に開示されるように、Intel社の制定しているVT−dなどが知られている。
一方、マルチコア化の進行やメモリコントローラを統合したプロセッサの登場により、
プロセッサ・メモリ・I/Oデバイスといったリソースの配置が不均衡となる傾向にある
。このような不均衡なシステム上で性能や信頼性を確保するためには、物理位置情報を用
いたリソース配分が必要である。従来のOSでは、特定のプロセッサとメモリを対応付け
るAffinity制御という仕組みがあり、これをサポートするために物理位置情報を取得する
標準インタフェースとしてACPI(Advanced Configuration and Power Interface)が規
定されている(非特許文献2)。このaffinity制御では、OSあるいはアプリケーションが
どのCPUとメモリを使用するかという関係付けにより、リソースの割り当てを行う。
米国特許第6496847号 Intel Virtualization Technology for Directed I/O Architecture Specification、[online]、Intel Corp,、平成19年8月24日検索、 インターネット<ftp://download.intel.com/technology/computing/vptech/Intel(r)_VT_for_Direct_IO.pdf> Advanced Configuration and Power Interface Specification Revision 3.0、[online]、Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba、平成19年8月24日検索、 インターネット<http://www.acpi.info/>
しかしながら、上記のような従来のOSでは、プロセッサとメモリの位置情報はACP
Iの仕組みを使って制御することができる。しかしI/Oデバイスは全アプリケーション
から共通的に参照されるリソースであるため、I/Oデバイスの物理位置情報を使ったAf
finity制御という概念は存在しなかった。実際、ACPIの中で規定されているSystem R
esource Affinity Table(SRAT)やSystem Locality Distance Information Table(
SLIT)では、プロセッサとメモリの物理的な位置情報のみが対象であり、I/Oデバ
イスの物理位置情報は管理の対象外である。
一方、仮想マシンモニタを使ってI/Oデバイスを特定の仮想サーバに専有させるよう
に割り付けようとすると、I/Oデバイスの物理位置情報は、仮想サーバの性能や信頼性
を確保する上で重要なパラメータとなる。しかし従来のACPIベースのインタフェース
では、I/Oの物理位置情報を取得する手段がなかった。
また、仮に仮想マシンモニタが適切なリソースを仮想サーバに対して割り当てたとして
も、仮想サーバ上のゲストOSがその物理位置情報を正しく利用できない場合、ゲストO
SのAffinity制御が正しく働かず、結果として物理サーバと同等の性能や信頼性を確保で
きない、という問題点があった。
本発明は、I/Oデバイスの専有割付機能を有する仮想マシンモニタ上で、I/Oデバ
イスの物理位置情報を取得するインタフェースを持ち、取得した物理位置情報を使って仮
想サーバに対するリソースの割付を、指定されたポリシーに従って最適化することを目的
とする。さらに仮想マシンモニタが取得した物理位置情報を仮想サーバへと適切に変換し
て通知するインタフェースを持ち、ゲストOSを物理サーバ上で実行した時と同様のAffi
nity制御を仮想サーバ上のゲストOSに対しても実行可能にすることを目的とする。
本発明は、1つ以上のプロセッサと、1つ以上のメモリと1つ以上のI/Oデバイスと
を内部ネットワークで接続し、前記プロセッサとメモリ及びI/Oデバイスを仮想サーバ
に割り当てる仮想マシンモニタを備えたマルチプロセッサシステムであって、前記仮想マ
シンモニタは、前記マルチプロセッサシステムの前記プロセッサとメモリとI/Oデバイ
ス及びネットワークを含むハードウェアの物理的な位置情報を含むハードウェアの構成情
報を取得する物理ハードウェア情報取得部と、生成する仮想サーバのプロセッサの数とメ
モリ量とI/Oデバイス及びリソースの割り当てポリシーとを含む生成要求を受け付ける
受付部と、前記受け付けた生成要求に基づいてI/Oデバイスを前記仮想サーバに割り当
ててから、前記割り当てポリシーを満たすように前記プロセッサとメモリを前記仮想サー
バに割り当てる割り当て処理部と、を備える。
さらに、前記仮想マシンモニタは、前記仮想サーバに対して割り当てたプロセッサとメ
モリ及びI/Oデバイスの物理的な位置情報を前記仮想サーバに通知する通知部をさらに
備える。
したがって、本発明は、I/Oデバイスの物理位置情報を取得して、取得した物理位置
情報を用いて仮想サーバに対するリソースの割り当てを、生成要求で指定されたリソース
の割当ポリシーに従って最適化することが可能となる。
さらに、仮想マシンモニタが割り当てたリソースの物理位置情報を仮想サーバへ通知す
ることで、物理サーバ上と同様の制御を仮想サーバ上で実現することができる。
以下、本発明の一実施形態を添付図面に基づいて説明する。
図1は第1の実施形態を示し、本発明を適用するマルチプロセッサシステム(計算機)
、およびその上で動作する仮想マシンモニタとゲストOSとの関係を示したブロック図で
ある。
マルチプロセッサシステム100は、1つ以上のCPUソケット(プロセッサパッケー
ジ)110、メモリコントローラ130、I/Oハブ160a、160bをモジュール間
接続I/F(インターフェース)200にて接続した構成を採る。なお、モジュール間接
続I/F200は、マルチプロセッサシステム100の内部ネットワークを構成する。こ
こでCPUソケット110とメモリコントローラ130間、CPUソケット110とI/
Oハブ160a、160b間、メモリコントローラ130とI/Oハブ160a、160
b間のモジュール間接続I/F200が必ずしも同じI/Fである必要はない。それらが
異なるI/Fであったとしても以下の説明には差異を生じない。なお、I/Oハブ160
a、160bの総称をI/Oハブ160とする。また、メモリコントローラ130やI/
Oハブ160の機能を搭載したチップセットが存在していても良い。さらに、図1に示す
ように、メモリコントローラ130がCPUソケット110上に搭載されたような構成で
あっても良い。CPUソケット110は1つ以上のCPUコア(プロセッサコア)120
を含む。メモリコントローラ130はメモリI/F140を介して1つ以上のDIMM(
Dual Inline Memory Module)150と接続する。I/Oハブ160はI/O接続I/F
170を介して1つ以上のI/Oアダプタ180a〜180fを搭載し、I/Oアダプタ
180a〜180fの先にはI/Oデバイス190dが接続される。さらにI/O接続I
/F170の先にI/OブリッジやI/Oスイッチがあり、多段のI/Oを構成していて
も良い。なお、I/Oアダプタ180a〜180fは、NICやHBA(Host Bus Ada
pter)などで構成され、これらの総称をI/Oアダプタ180とする。
マルチプロセッサシステム100上には1つ以上のサービスプロセッサ220があり、
上記各モジュール(物理的構成要素)の物理位置情報や接続情報をモジュール情報取得I
/F210を介して収集する。サービスプロセッサ220はマルチプロセッサシステム1
00のオプションとして外付けされる形で搭載されても良いし、I/Oデバイスの一つと
して搭載される形態でも良い。また、LANなどで接続された別のコンピュータ上にサー
ビスプロセッサ220の機能があっても良い。また、I/Oデバイスは、データの入出力
を行う装置で構成される。
マルチプロセッサシステム100上には、仮想マシンモニタ300が実行され、マルチ
プロセッサシステム100上のリソースを1つ以上の仮想サーバへと分割してゲストOS
360a〜360cに対して提供する。仮想マシンモニタ300はサービスプロセッサ2
20が収集したモジュールの物理構成情報と接続情報を、物理ハードウェア構成情報取得
インタフェース320を介して受け取る。なお、ゲストOS360a〜360cの総称を
ゲストOS360とする。
ゲストOS360は、仮想サーバとして必要なリソースを論理ハードウェア要求I/F
350によって仮想マシンモニタ300へと通知する。なお、ゲストOS360の起動時
(すなわち、仮想サーバの起動時)では、マルチプロセッサシステム100の管理者がコ
ンソール230で設定した論理ハードウェア要求I/F310を仮想マシンモニタ300
へ通知する。仮想マシンモニタ300は、仮想マシンモニタ300上にある物理−論理ハ
ードウェア割当表310などを参照し、論理ハードウェア要求I/F350に含まれるリ
ソース割当ポリシーを考慮した上で、必要な物理リソースの情報を物理−論理ハードウェ
ア割当インタフェース330を通じて取得する。仮想マシンモニタ300は、取得した物
理リソースの情報と、論理ハードウェア要求I/F310に基づいて物理リソースを論理
ハードウェアとして割り当てる論理ハードウェア割当処理部801を備える。仮想マシン
モニタ300が割り当てた物理リソースの情報は、仮想マシンモニタ300によって論理
ハードウェア構成情報へと変換され、論理ハードウェア構成情報通知I/F340を介し
てゲストOS360へと通知される。
また、マルチプロセッサシステム100には、入力装置と出力装置を備えて管理者が使
用するコンソール230が接続され、仮想マシンモニタ300やサービスプロセッサ22
0に指令を与えたり、仮想マシンモニタ300やサービスプロセッサ220から処理の結
果を受信して出力装置に表示を行う。
<マルチプロセッサシステムの構成>
さらに本第1実施形態におけるマルチプロセッサシステム100の構成をより詳細に説
明する。110a〜110dの4つのCPUソケットがモジュール間接続I/F200に
よってリング状に接続されている。それぞれのCPUソケット110はCPUコア120
を2つずつ持ち、マルチプロセッサシステム100全体では、8つのCPUコア120が
ある。以下の説明において、この8つのCPUコアを図中左からCPUコアの通し番号を
#0〜#7と呼ぶ場合がある。
それぞれのCPUソケット110上のメモリコントローラ130はそれぞれ4本のメモ
リI/F140を有し、それぞれ4つのDIMM(メモリ)150が接続されている。こ
こでは後の説明を簡単にするために、各DIMM150は1GBで、1CPUソケット当
たり4GB、マルチプロセッサシステム全体では16GBのメモリを搭載しているとする
。以下の説明において、この16枚のDIMM150の通し番号を図中左からDIMM#
0〜#15と呼ぶ場合がある。
I/Oハブ160は、2つのI/Oハブ160aと160bで構成され、それぞれ2つ
ずつのモジュール間接続I/F200を持ち、I/Oハブ160aはCPUソケット11
0aと110b、I/Oハブ160bはCPUソケット110cと110dとそれぞれ接
続している。I/Oハブ160はI/O接続I/F170をそれぞれ4つずつ持ち、I/
O接続I/F170の先にI/Oスロット175を備え、I/Oアダプタ180が接続さ
れている。
I/Oスロット175はマルチプロセッサシステム100全体で8つあり、I/Oスロ
ット175の通し番号を図中左から番号を#0〜7とすると、I/Oスロット#0にはI
/Oアダプタ180aが、I/Oスロット#2にはI/Oアダプタ180bが、I/Oス
ロット#3にはI/Oアダプタ180cが、I/Oスロット#4にはI/Oアダプタ18
0dが、I/Oスロット#5にはI/Oアダプタ180eが、I/Oスロット#7にはI
/Oアダプタ180fがそれぞれ接続されている。この例ではI/Oスロット#1および
I/Oスロット#6には何も接続されていない。
図64は,図1の構成に対応するマルチプロセッサシステム100上で,仮想マシンモニタ300,ゲストOS1 360a,ゲストOS2 360b,ゲストOS3 360cが実行されている様子を示した構成図である。仮想マシンモニタ300のプログラムは,いずれかのI/Oデバイス190上,あるいはサービスプロセッサ200のROM201上に存在し,マルチプロセッサシステム300の起動時に前記格納場所からメモリ150(本例ではメモリ150#0)上へと展開され,仮想マシンCPUコア120のいずれかの上で実行される。仮想マシンモニタ300を実行するCPUコア120は,固定されていても良いし,例えばその時空いているCPUコアや処理負荷が少ないCPUコアが実行するなどCPUコアの稼動状態に応じて実行するCPUコアが可変でも良い。
ゲストOS 360は,仮想マシンモニタ300によって分割された論理サーバ370に割り当てられたI/Oデバイス190のいずれかの上にプログラムが存在し,論理サーバ370の起動時に370に割り当てられたメモリ150の上に展開され, 370に割り当てられたCPUコア300によって実行される。図64の例では,ゲストOS1 360aはメモリ150#5上に,ゲストOS2 360bはメモリ150#10上に,ゲストOS3 360cはメモリ150#13へと展開され,実行されている。なお,本例ではわかりやすいように一つのメモリモジュール上にゲストOS 360を配置した例を示したが,ゲストOSのサイズやメモリインタリーブの設定によっては複数のメモリモジュール上に分散配置されることもあり得る。
図2〜図6で仮想マシンモニタ300がサービスプロセッサ220経由で得たマルチプ
ロセッサシステム100の物理ハードウェア構成情報取得I/F320について示す。図
2は物理ハードウェア構成情報取得I/F320の内訳を示す。物理ハードウェア構成情
報取得I/F320は、物理コンポーネント構成表400、I/Oアダプタ構成表450
、コンポーネント間距離対応表500、物理ネットワーク構成表550の4種類の表(テ
ーブル)で構成される。これらのテーブルは、仮想マシンモニタ300が所定の周期また
は所定のタイミングで、サービスプロセッサ220がモジュール情報取得I/F210を
介して収集したハードウェアリソースの情報を問い合わせて生成(または更新)するもの
である。仮想マシンモニタ300が設定した物理ハードウェア構成情報取得I/F320
は、図1に示すI/Oハブ160の物理位置情報格納メモリ165またはメモリ150に
格納される。
図3は物理ハードウェア構成情報取得I/F320の物理コンポーネント構成表400
の構成を示す。物理コンポーネント構成表400は、リソースの通し番号を示すリソース
#405、リソースの種類を示すリソース種別410、通し番号に対応するリソースの範
囲を示す範囲415、コンポーネント毎の通し番号を示すコンポーネント#420、コン
ポーネントの種類を示すコンポーネント種別425、通し番号で特定されたリソースの消
費電力430、このリソースを動作させるためのコンポーネントの消費電力435、から
構成される。
本実施形態の説明においては、コンポーネント#420はCPUソケット110やI/
Oハブ160のように物理的に挿抜あるいは電源のon/offの対象となるオブジェク
トを指しており、複数のリソースが1つのコンポーネント#420上に接続され得る。本
実施形態の例では、CPUコア120やDIMM150はCPUソケット110というコ
ンポーネントに接続され、I/Oアダプタ180はI/Oハブ160というコンポーネン
トに接続される。メモリコントローラ130がCPUソケット110とは別の場合や、チ
ップセットが存在する場合などは、それらもまた独立したコンポーネントになり得る。物
理コンポーネント構成表400は、このようなリソースとコンポーネントとの包含関係を
示す表である。範囲415で示されるリソースがコンポーネント#420に含まれること
を示している。リソース種別410がメモリの場合は、対応するDIMM150の番号に
加えて、物理アドレスの範囲も示される。この例では1DIMM当たり1GBずつである
ため、0x0_0000_0000から0x0_3_FFFF_FFFFまでの16GB
が属するCPUソケットに応じて4分割されている。各リソースが稼動状態となった場合
の消費電力[W]が430に、リソースの土台となっているコンポーネントが稼動状態とな
った場合の消費電力が435に示される。例えばコア#0が稼動していてコア#1は稼動
していないとする。この場合リソースの消費電力はコア当たり20であるため20だが、
土台となるコンポーネントのCPUソケットの消費電力は物理コンポーネント構成表40
0によると80であるため、合計20+80=100がコア#0のみが稼動している場合
の消費電力となる。なお、ここでは物理コンポーネント構成表400のサイズを小さくす
るために範囲415で同じコンポーネントに属する複数のリソースをまとめて1エントリ
で示しているが、リソースごとに異なるエントリを使っても構わない。
また、リソースの消費電力430とコンポーネントの消費電力435は、サービスプロ
セッサ220のROM221に予め設定したデータを用いる。なお、このROMにはI/
Oアダプタ180の消費電力や各コンポーネント間の帯域やレイテンシなどコンポーネン
トの性能に係る情報を格納しておく。
図4はI/Oアダプタ構成表450の構成を示す。I/Oアダプタ構成表450は、マ
ルチプロセッサシステム100上の全てのI/Oアダプタ180分のエントリが存在し、
I/Oアダプタ180の通し番号を示すI/Oアダプタ#455、I/Oアダプタの識別
子を示すI/Oアダプタ460、このI/Oアダプタが装着されたI/Oスロット#46
5、I/Oアダプタの種類を示すアダプタ種別470、このI/Oアダプタの消費電力4
75の各項目から構成される。アダプタ種別470は、ネットワークインタフェースカー
ド(NIC)やホストバスアダプタ(HBA)といったアダプタの種類が記述される。
図5はコンポーネント間距離対応表500の構成を示す。コンポーネント間距離対応表
500は、マルチプロセッサシステム100上の全てのコンポーネントに対応するエント
リが存在し、コンポーネントの識別子を示すコンポーネント#420と、コンポーネント
の種類を示すコンポーネント種別425と、このコンポーネントと他のコンポーネントの
距離を示す対コンポーネント間距離510から構成される。対コンポーネント間距離51
0はまた全てのコンポーネント分だけ分けられており、コンポーネント#420のコンポ
ーネントから対コンポーネント間距離510のコンポーネントに到達するまでの距離を示
している。システム全体でN個のコンポーネントがある時、対コンポーネント間距離51
0はN×Nのマトリックスを構成する。通常、自分自身に到達する距離は0であると考え
られるので、このマトリックスの対角線部分には0が並ぶのが普通である。本実施形態で
はモジュール間接続I/F200の性能は全て等価であると仮定したため、何回モジュー
ル間接続I/F200を渡れば目的のコンポーネントまで辿り着くかという回数を距離と
している。この距離を、コンポーネントの物理的な位置情報として扱う。例えば、CPU
ソケット110aからI/Oハブ160bまでの距離は、図1において、CPUソケット
110aからCPUソケット110dまでの距離がモジュール間接続I/F200を1回
経由し、CPUソケット110dからI/Oハブ160bまででモジュール間接続I/F
200を1回経由するのでコンポーネント間の距離は合計2となる。
なお、モジュール間接続I/Fが不均一な場合は、後述の物理ネットワーク構成表55
0にあるレイテンシ570の合計値を使って距離を示す、といった方法が考えられる。
また、本実施形態では、メモリ150はCPUソケット110に直接接続されるため、
CPUソケット110とメモリ150の距離は0であるためコンポーネント間距離対応表
500に含まれないが、メモリ150が内部ネットワーク(モジュール間接続I/F20
0)に接続されている場合では、メモリ150をコンポーネント#420に加え、各コン
ポーネント間の距離をコンポーネント間距離対応表500に設定すればよい。
また、コンポーネント間距離対応表500は、仮想マシンモニタ300が、物理ハード
ウェア構成情報取得I/F320の情報に基づいて生成することができる。なお、サービ
スプロセッサ220が物理ハードウェア構成情報取得I/F320の情報に基づいてコン
ポーネント間距離対応表500を生成し、仮想マシンモニタ300へ通知するようにして
もよい。
図6は物理ネットワーク構成表550の構成を示している。物理ネットワーク構成表5
50は、マルチプロセッサシステム100上の全てのモジュール間接続I/F200に対
して、モジュール間接続I/F200の接続の通し番号を示すネットワーク#555と、
どのコンポーネント420aからどのコンポーネント420bをつないでいるのか、そし
てコンポーネント420aと420b間の帯域560とレイテンシ570を示す項目から
なる。本実施形態では、CPUソケット110間をつなぐネットワークの帯域560は6
なのに対して、CPUソケット110とI/Oハブ160の間をつなぐネットワーク帯域
560は半分の3であるとした。なお、帯域560の単位は、例えば[Gbps]であり、
レイテンシ570の単位は、例えば、[nsec]である。
以上が物理ハードウェア構成情報取得I/F320の内訳である。これらの情報を、サ
ービスプロセッサ220は、モジュール情報取得I/F210を介して各リソース・コン
ポーネントから収集する。そして、仮想マシンモニタ300はサービスプロセッサ220
から物理ハードウェア構成情報取得I/F320を取得する。物理ネットワーク構成表5
50やコンポーネント間距離対応表500のように、サービスプロセッサ220がモジュ
ール単体に問い合わせただけでは得られない情報に関しては、マルチプロセッサシステム
100の初期化時やあるいは構成変更時に、モジュール情報取得I/F210およびモジ
ュール間接続I/F200を介する問合せプロトコルを使って接続関係を自動的に検出す
る方法や、構成変更時に管理者が用いるシステム管理ツール(マルチプロセッサシステム
100の外に存在)の情報をサービスプロセッサ220等が不揮発性メモリ等に保存して
おき、その情報を元に構成する、といった方法が考えられる。
<仮想サーバの構成>
図7〜図9で、第一の実施形態における仮想サーバ1_370aの論理ハードウェア要
求I/F350と、それに対応する仮想サーバの構成を示す。
図7は、ゲストOS360を起動する際に、仮想マシンモニタ300に対して仮想サー
バ1_370a(図9、図16参照)の起動に必要なリソースを要求する論理ハードウェ
ア要求I/F350aの構成を示す。この論理ハードウェア要求I/F350aは、コン
ソール230で管理者が設定したものである。
論理ハードウェア要求I/F350aは、仮想サーバの通し番号を示す#351、仮想
サーバで稼動するゲストOS360の識別子を示すゲスト名352、仮想サーバに割り当
てるI/Oアダプタ353、仮想サーバに割り当てるCPUコア数354、仮想サーバに
割り当てるメモリ量355、仮想サーバに割り当てるリソースのポリシーを示すリソース
割当ポリシー356、仮想サーバの優先度357から構成される。仮想サーバ#351は
システム上の仮想サーバを識別するための識別子であり、必ずしも要求するゲスト側が設
定する必要はない。ゲスト名352は各ゲストOS360を識別するための情報で、例え
ばゲストOS360の種類(Windows(登録商標)/Linux等)もここに含ま
れる。I/Oアダプタ353は当該ゲストOSが要求するI/Oアダプタ180のリスト
である。ここではI/Oアダプタ180aと180cを要求している。CPUコア数35
4はゲストOS360aが必要なCPUコアの数である。ここでは4コア必要としている
。メモリ量355はゲストOS360aが必要とするメモリ量である。ここでは4GB分
必要としている。リソース割当ポリシー356はリソースを割り当てる際のポリシーを示
しており、本発明におけるキーとなるパラメータである。リソース割当ポリシー356と
しては、例えば、次のようなポリシーが考えられる。
・性能優先:コンポーネント間の距離を短くするような配置を選ぶ
*CPU−メモリ優先:CPUとメモリ間の距離が短くなるようにする(CPUのメモ
リアクセスが多い場合に有効)
*CPU−I/O優先:CPUとI/Oデバイス間の距離が短くなるようにする(I/
O割り込みが多い場合などに有効)
*I/Oデバイス−メモリ優先:I/Oデバイスとメモリ間の距離が短くなるようにす
る(I/OデバイスからのDMA転送が多い場合などに有効)
*CPU−I/Oデバイス−メモリ優先:各リソースを近くに配置するようにする(仮
想サーバの全体の性能をバランスさせる場合)
・信頼性優先:仮想サーバ間の共通のコンポーネント・ネットワークが少なくなるように
する
・帯域優先:ネットワークの実効帯域が大きくなるようにする
・省電力優先:システム全体の消費電力が小さくなるようにする
本実施形態の以下の説明では、設定するポリシーの一例を性能優先のうちCPU−I/
O優先としている。ただし、仮想サーバ1(360a)はマルチプロセッサシステム10
0上の最初の仮想サーバであるため、基本的に要求したリソースは獲得できる可能性が高
い。優先度357は、仮想サーバ間で要求したリソースが競合した場合にどの仮想サーバ
を優先するかを決めるために使うパラメータである。優先度を示す一例としては、ここで
は整数で値が大きいほど優先度が高いことを示すとした。ただし、第一の実施形態では全
ての仮想サーバは等しい優先度を持つとする。
また、本実施形態では仮想サーバに与えるポリシーを1つだけとしているが、優先度の
高いプライマリーポリシーと優先度の低いセカンダリーポリシーを与え、プライマリーポ
リシーを満たす構成の中でさらにセカンダリーポリシーをなるべく満たすような構成を選
択してもよい。さらに複数のポリシーに数値で重み付けを与えるようなインタフェースも
考えられる。ここでは説明の簡略化のために、ポリシーは一つだけとした。
図8は図7に示した仮想サーバ1_370aの論理ハードウェア要求I/F350aに
基づいて仮想マシンモニタ300の論理ハードウェア割当処理部801が物理リソースの
割り当てを行った結果に対応した物理−論理ハードウェア割当表310の構成と内容を示
している。なお、仮想マシンモニタ300がハードウェアリソースを割り当てる処理につ
いては、後述の図55〜図63で詳述する。
物理−論理ハードウェア割当表310は、仮想サーバの通し番号を示す#351仮想サ
ーバ#351、当該仮想サーバの起動状態を示すon/off311、当該仮想サーバが
使用するリソースを示す使用リソース#としてI/Oアダプタ312、CPUコア313
、メモリ314、使用コンポーネント#315、使用ネットワーク#316から構成され
る。本実施形態では、論理ハードウェア要求I/F350aに従い、I/Oアダプタ#1
、3、CPUコア#0、1、2、3、DIMM#4、5、6、7を仮想サーバ1_370
aに割り当てている。また、使用リソース#のメモリ314には対応する物理アドレスが
0x1_0000_0000から4GB分となっている(この0x1_0000_000
0を仮想サーバ1のベースアドレスと呼ぶことがある)。また、これらのリソースが搭載
されたコンポーネントの識別子として110a、110b、160aが使用コンポーネン
ト#315に設定され、接続に使用するネットワーク#として#1、5、6が使用ネット
ワーク#316に設定された例を示している。
図7の論理ハードウェア(HW)要求I/F350から図8の物理−論理H/W割当表
310を生成する具体的な手順については、後述する。
図9は、上記論理ハードウェア要求I/F350aと物理−論理ハードウェア(HW)
割当表310に基づいて、仮想マシンモニタ300の論理ハードウェア割当処理部801
がマルチプロセッサシステム100上に割り当てた仮想サーバ1_370aを示す。図中
点線で囲まれた部分は図1のリソースのうち仮想サーバ1_370aに割り当てられたリ
ソースを示す。
<第1実施形態における動作>
以下、図10〜17で、本第1実施形態の動作について説明する。
図10と図11は、仮想マシンモニタ300の論理ハードウェア割当処理部801によ
って上記図9で示したように仮想サーバ1_370aが割り当てられた後で、次の仮想サ
ーバ2に対する論理ハードウェア要求I/F350bおよび350cを示している。論理
ハードウェア要求I/F350bと350cは、どちらも同じI/Oアダプタ353、C
PUコア数354、メモリ量355を要求している。違いはリソース割当ポリシー356
のみで、論理ハードウェア要求I/F350bにおいては「CPU−メモリ優先」となっ
ているのに対して、論理ハードウェア要求I/F350cにおいては「I/O−メモリ優
先」となっている。以下の例では、これらのポリシーの違いにより、異なるリソースが割
り当てられる様子を示す。
図12と図13は、仮想サーバ2に対する上記図10,図11の論理ハードウェア要求
I/F350に対して、仮想マシンモニタ300の論理ハードウェア割当処理部801が
割り当てを行った結果の2通りの物理−論理ハードウェア割当表310を示している。ど
ちらもI/Oアダプタ312は#2で同じだが、使用CPUコア313とメモリ314が
異なっている。図12の物理−論理ハードウェア割当表310bの方ではCPUコア#4
、5とDIMM#8、9、10、11を割り当てているのに対して、図13の物理−論理
ハードウェア割当表310cではCPUコア#6、7とDIMM#0、1、2、3を割り
当てている。この2通り以外にもリソースの割り当て方は考えられるが、本質的に変わら
ない割り当て方は排除する等として、いくつか割り当て方の候補を絞り込む。
図10の論理ハードウェア要求I/F350bでは、CPU−メモリ優先のポリシーを
要求しているため、CPUソケット110cのCPUコア#4,#5と、CPUソケット
110cに接続されるメモリ#8〜11を仮想サーバ2へ割り当てて、リソースの距離を
0とすることでCPUとメモリの距離が短いものを選択している。一方、図11の論理ハ
ードウェア要求I/F350cでは、I/O−メモリ優先のポリシーを要求しているため
、I/Oデバイスとメモリの距離が最も短くなるように、I/Oアダプタ#2に最も近い
メモリ#0〜#3を選択している。このように、仮想マシンモニタ300の論理ハードウ
ェア割当処理部801は、要求されたポリシーに応じて、仮想サーバに割り当てるハード
ウェアリソースを最適化することができる。
図14は、図12に示した割当表310bに対応して、仮想マシンモニタ300が各リ
ソース間の距離を計算したリソース間距離計算表600bを示している。リソース間距離
計算表600bは、仮想サーバの識別子(または連番)を示す仮想サーバの番号#351
と、各仮想サーバ番号#351ごとに、仮想サーバ内のリソース間の距離を計算するため
の表である。カテゴリ601には、リソース割当ポリシーに対応したCPU−メモリ、I
/O−メモリ、CPU−I/Oの3種類のカテゴリが存在する。それぞれのカテゴリ60
1ごとにリソースfrom602からリソースto603までのコンポーネント間距離6
04を、所属するコンポーネント#と、コンポーネント間距離対応表500に従って仮想
マシンモニタ300が計算する。この例では、CPUコア#4、#5とDIMM#8、9
、10、11はいずれも同一のコンポーネント110c上に搭載されているので、コンポ
ーネント間距離604は0となる。一方、I/Oアダプタ#2が搭載されたコンポーネン
ト160aと、DIMM#8、9、10、11が搭載されたコンポーネント110cとの
距離は、コンポーネント間距離対応表500に従うと2であるため、コンポーネント間距
離604は2となる。CPUコア#4、5とI/Oアダプタ#2との間の距離も同様に2
となる。最後にカテゴリ601ごとにコンポーネント間距離の総和605を計算する。こ
の例では、CPU−メモリは0、I/O−メモリは2、CPU−I/Oは4、となる。
図15は、図13に示した物理−論理ハードウェア割当表310cに対応したリソース
間距離計算表600cを示している。CPUコア#6、#7の搭載されたコンポーネント
110dと、DIMM#0、1、2、3の搭載されたコンポーネント110aとの間の距
離は1なので、コンポーネント間距離604は1となる。一方I/Oアダプタ#2の搭載
されたコンポーネント160aとDIMM#0、1、2、3の搭載されたコンポーネント
110aとの間の距離は1なので、コンポーネント間距離604は1となる。最後にCP
Uコア#6、7の搭載されたコンポーネント110dとI/Oアダプタ#2の搭載された
コンポーネント160aとの距離は2なので、コンポーネント間距離604は2となる。
コンポーネント間距離の総和605は、CPU−メモリが2、I/O−メモリが1、CP
U−I/Oが4となる。
以上のようにしてリソース間距離計算表600を計算したリソース割当候補の中から、
リソース割当ポリシーを最も満たす候補を選択する。350bにおける「CPU−メモリ
優先」の場合は、コンポーネント間距離の総和605のCPU−メモリの値が小さくなる
リソース割当を選ぶ。それに対して「I/O−メモリ優先」の場合は、コンポーネント間
距離の総和605のI/O−メモリの値が小さくなるリソース割当を選ぶ。物理−論理ハ
ードウェア割当表310bと310cを比べた場合、「CPU−メモリ優先」の場合は3
10b、「I/O−メモリ優先」の場合は310cのリソース割当がそれぞれ選択される
図16は図12に示した物理−論理ハードウェア割当表310bに対応する仮想サーバ
2_370bの構成図である。仮想サーバ2_370bは図中一点鎖線で示すように、C
PUソケット110cとそれに接続されたメモリ、およびI/Oアダプタ180bとから
構成される。
図17は図13に示した物理−論理ハードウェア割当表310cに対応する仮想サーバ
の構成図である。仮想サーバ2_370bは図中一点鎖線で示すように、CPUソケット
110d上のCPUコア#6、7と、CPUソケット110a上のDIMM#0、1、2
、3と、I/Oアダプタ180bとから構成される。
以上の例により、論理ハードウェア要求I/F350のリソース割当ポリシーの違いに
より、同じI/Oアダプタ・CPUコア数・メモリ量を要求した場合でも、異なるリソー
スが割り当てることができ、管理者の希望する仮想サーバを、自動的に構成することが可
能となる。
<変形例1>
続いて第一の実施形態の第一の変形例を示す。図18〜図20に、本変形例1における
仮想サーバ1_370aの論理ハードウェア要求I/F350dを図18に示し、この論
理ハードウェア要求I/F350dから仮想マシンモニタ300の論理ハードウェア割当
処理部801が割り当てを行った結果の物理−論理ハードウェア割当表310dを図19
に示し、および仮想サーバ1_370aの構成を図20に示す。I/Oアダプタとして1
80aと180cを要求しているのは前記第1実施形態と同じだが、上述の第一の実施形
態と違い、仮想サーバ1は2つのCPUコアと8GBのメモリを要求している。この要求
に対して仮想マシンモニタ300の論理ハードウェア割当処理部801は要求ポリシーで
あるCPU−I/O優先のポリシーから図19、20に示すようなリソースの割当を行っ
た。
続いて図21〜28で上記図18〜図20の仮想サーバ1の割当後に、図21に示す論
理ハードウェア要求I/F350eによる仮想サーバ2のリソース要求を行い、図22に
示す論理ハードウェア要求I/F350fによる仮想サーバ2のリソース要求を行った場
合を示す。仮想サーバ2は、前記第一の実施形態と同じく、I/Oアダプタ180bとC
PUコア数2、4GBのメモリを要求している。それに対して、図21の論理ハードウェ
ア要求I/F350eではリソース割当ポリシー356として「CPU−メモリ優先」を
、350fではリソース割当ポリシー356として「CPU−I/O優先」を指定してい
る。
図23と図24は、それぞれ上記図21、図22の物理−論理ハードウェア割当表31
0e、310fの仮想サーバ2に対する異なるリソース割当の例で、仮想マシンモニタ3
00の論理ハードウェア割当処理部801が割り当てを行った結果である。物理−論理ハ
ードウェア割当表310eではCPUコアとメモリが同一のCPUソケット110c上に
割り当てられているのに対して、物理−論理ハードウェア割当表310fではCPUコア
はCPUソケット110a上に、DIMMはCPUソケット110d上に割り当てられて
いる。
図25と図26は物理−論理ハードウェア割当表310eと310fのそれぞれの割当
に従ってリソース間距離計算表600e、600fを計算した結果である。図25のリソ
ース間距離計算表600eではコンポーネント間距離の総和605はCPU−メモリが0
、I/O−メモリが2、CPU−I/Oが4となる。一方、図26のリソース間距離計算
表600fではコンポーネント間距離の総和605はCPU−メモリが2、I/O−メモ
リが2、CPU−I/Oが2、となる。この結果、「CPU−メモリ優先」の場合にはC
PU−メモリのコンポーネント間距離の総和605が小さい310eの割当が、「CPU
−I/O優先」の場合には、CPU−I/Oのコンポーネント間距離の総和605が小さ
い310fの割当が選択される。
図27は上記図23の物理−論理ハードウェア割当表310eに対応する仮想サーバの
構成図である。仮想サーバ2_370bはCPUソケット110c上のCPUコア#4、
5とDIMM#8、9、10、11と、I/Oアダプタ180bとから構成される。
図28は上記図24の物理−論理ハードウェア割当表310fに対応する仮想サーバの
構成図である。仮想サーバ2_370bはCPUソケット110a上のCPUコア#0、
1と、CPUソケット110d上のDIMM#12、13、14、15と、I/Oアダプ
タ180bとから構成される。
以上が第一の実施形態の第一の変形例である。
<変形例2>
続いて第一の実施形態の第二の変形例を示す。図29〜図31に、本変形例2における
仮想サーバ1_370aの論理ハードウェア要求I/F350gを図29に示し、物理−
論理ハードウェア割当表310gを図30に示し、および仮想サーバ1_370aの構成
を図31に示す。I/Oアダプタとしては180aと180cを要求しているのは前述の
第1実施形態と同じであるが、CPUコアは1つ、メモリも2GBしか要求していない。
また、ポリシーとしてはCPU−メモリ−I/O優先ということで、なるべく各コンポー
ネント間の距離が近くなるような配置を選ぶことになる。この場合は最初の仮想サーバで
あるため、まず必要なI/Oアダプタ180a、180cが接続されたI/Oハブ160
aに近いCPUソケット110aを選択し、110a上のCPUコアとDIMMを割り当
てることでこのポリシーは満足させることができる。
図32〜図34は、仮想サーバ2に対する、リソース割当ポリシー356だけが異なる
3つの論理ハードウェア要求I/F350を示している。全てに共通して、要求I/Oア
ダプタ353は180b、要求CPUコア数354は1、要求メモリ量355は2GB、
優先度は5で共通である。図32の論理ハードウェア要求I/F350hは リソース割
当ポリシー356として「信頼性優先」を指定している。図33の論理ハードウェア要求
I/F350iはリソース割当ポリシー356として「帯域優先」を指定している。図3
4の論理ハードウェア要求I/F350jはリソース割当ポリシー356として「省電力
優先」を指定している。以下、各ポリシーに従って、どのような構成が選択されるのかを
見ていく。
図35〜図36は、2通りのリソース割当に対応した物理−論理ハードウェア割当表3
10を示している。図35の物理−論理ハードウェア割当表310hでは、CPUコアと
メモリとして、仮想サーバ1が使用しているのとは異なるCPUソケット110b上のC
PUコア#2とDIMM#4、5を割り当てて、要求された信頼性優先のポリシーを満足
している。一方、図36の物理−論理ハードウェア割当表310iにおいては、仮想サー
バ1が使用しているのと同じCPUソケット110a上のCPUコア#1とDIMM#2
、3を割り当てて、要求された帯域優先のポリシーを満足している。
割当ポリシーが、前述の実施形態までのような距離優先でない場合には、リソース割当
の基準として前記リソース間距離計算表600に代わる別の指標が必要となる。
図37〜図38は、前記リソース間距離計算表600に代わるコンポーネント・ネット
ワーク割当表650を示している。コンポーネント・ネットワーク割当表650は、複数
仮想サーバ間で共用しているコンポーネントやネットワーク、および実効ネットワーク帯
域を仮想マシンモニタ300の論理ハードウェア割当処理部801が調べるための表であ
り、仮想サーバの識別子または連番を示す仮想サーバ#351、仮想サーバ間で共用して
いるコンポーネントの識別子を示す共用コンポーネント#651、共用しているコンポー
ネントを使用するために利用しているネットワークの識別子を示す共用ネットワーク#6
52の項目と、さらに各仮想サーバ内で使用しているネットワーク全てに対応して、ネッ
トワーク#653、共用数654、実効帯域655、といった各項目から構成される。
図37のコンポーネント・ネットワーク割当表650hは、図35の物理−論理ハード
ウェア割当表310hのリソース割当に対応した表である。共用コンポーネント#651
としてはI/Oハブ160aが該当し、共用ネットワーク#652は無しとなる。各ネッ
トワーク#653に対して共用していないため共用数654は1となる。実効帯域655
は、物理ネットワーク構成表550の各ネットワーク#555に対応した帯域560の値
を、共用数654(つまり仮想サーバの数)で割った値となる。この場合、共用数は1な
ので、ネットワークの帯域560の値がそのまま実効帯域655となる。
図38のコンポーネント・ネットワーク割当表650iは、図36の物理−論理ハード
ウェア割当表310iのリソース割当に対応した表である。共用コンポーネント#651
としてはI/Oハブ160aとCPUソケット110aが該当する。また、共用ネットワ
ーク#652として、I/Oハブ160aとCPUソケット110aを接続するネットワ
ーク#5が相当する。この場合共用数654は2であるため、実効帯域655は元のネッ
トワークの帯域560の半分の値となる。
リソース割当ポリシー356が「信頼性優先」であった場合、共用コンポーネント数・
共用ネットワーク数がなるべく少なくなるような構成を選択する。この場合、仮想サーバ
1と仮想サーバ2の要求するI/Oアダプタが同じI/Oハブ160a上にあるため、共
用コンポーネント数を0とすることは不可能である。しかし物理−論理ハードウェア割当
表310hと310iにそれぞれ対応したコンポーネント・ネットワーク割当表650h
、650iを比較した場合、図35に示した物理−論理ハードウェア割当表310hに対
応する方が共用コンポーネント数が少ないことがわかる。従って要求されたポリシーが「
信頼性優先」である図32の論理ハードウェア要求I/F350hの要求に対しては、図
35に示した物理−論理ハードウェア割当表310hの割当が選択される。
リソース割当ポリシー356が「帯域優先」だった場合、ネットワークの実効帯域がな
るべく大きくなるような構成を選択する。この場合、図37のコンポーネント・ネットワ
ーク割当表650hと650iを比較すると、コンポーネント・ネットワーク割当表65
0hの構成の方が実効帯域が大きい。従ってポリシーが「帯域優先」である論理ハードウ
ェア要求I/F350iの要求に対しては、実効帯域が最大となる図37の物理−論理ハ
ードウェア割当表310hの割当が選択される。
図39は、要求されたポリシーが省電力優先の場合に用いられる図35の物理−論理ハ
ードウェア割当表310hに対応した割当リソース消費電力計算表700hを示している
。本表は仮想サーバ単位ではなく、システム全体で使用されているリソースとコンポーネ
ントに対して仮想マシンモニタ300によって構成され、対象のハードウェアがリソース
かコンポーネントかを示すカテゴリ701、リソース種別/コンポーネント種別を示す7
02、使用リソースまたはコンポーネントの識別子を示す使用リソース/コンポーネント
#703、各リソース毎の消費電力を示す消費電力704、そして消費電力の総和705
から構成される。リソースとしてはCPUコア、メモリ、I/Oスロット、I/Oアダプ
タの各項目があり、使用されているリソースが列挙されていく。また、消費電力704は
、物理コンポーネント構成表400のリソース消費電力430、およびI/Oアダプタ構
成表450の消費電力475の項目を参照し、それぞれの値を設定する。カテゴリ701
がコンポーネントのエントリでは、各リソースを使用する際に必要となるコンポーネント
が列挙され、コンポーネントの消費電力704は、物理コンポーネント構成表400のコ
ンポーネント消費電力435に従って設定される。消費電力の総和705は、消費電力7
04の総和として仮想マシンモニタ300によって計算される。
図40は、図36の物理−論理ハードウェア割当表310iに対応した割当リソース消
費電力計算表700iを示している。使用しているリソースの数自体は物理−論理ハード
ウェア割当表310hと310iで変わらないため、リソースの項目は使用しているリソ
ースの番号#こそ違うもののほとんど同じある。違いが出るのはコンポーネントの項目で
、物理−論理ハードウェア割当表310hでは使用するコンポーネントは合計3つであっ
たが、物理−論理ハードウェア割当表310iでは使用するコンポーネントは合計2つと
なっている。このため、消費電力の総和705を比較すると、図39の割当リソース消費
電力計算表700hでは345[W]という値なのに対して700iでは265[W]という
値になっている。
論理ハードウェア要求I/F350のリソース割当ポリシー356が「省電力優先」だ
った場合、仮想マシンモニタ300は消費電力の総和705がなるべく小さくなるような
割当方法を選択する。従って、ポリシーが「省電力優先」である図34の論理ハードウェ
ア要求I/F350jの要求に対しては、仮想マシンモニタ300の論理ハードウェア割
当処理部801は図36の物理−論理ハードウェア割当表310iの割当を選択する。
図41は、図36の物理−論理ハードウェア割当表310hに対応する仮想サーバの構
成図である。
図42は、図37の物理−論理ハードウェア構成表310iに対応する仮想サーバの構
成図である。
以上が第一の実施形態の第二の変形例である。
なお、上記において消費電力を優先するポリシーの場合、消費電力に代わって各リソー
ス及びコンポーネントの発熱量を用いても良い。
<第1実施形態1におけるリソース割当の具体的手順>
ここで、第1の実施形態における、論理ハードウェア構成要求I/F350から物理−
論理ハードウェア構成表310を生成する手順について、図55〜62を用いて詳しく説
明する。
図55は仮想マシンモニタ300の論理ハードウェア割当処理部801で行われる論理
ハードウェア割当処理全体のフローチャートを示している。まず、ゲストOS360に要
求されたI/Oアダプタを割り当て、さらに未割当のCPU・メモリの中から選んで割り
当て、要求されたポリシーに従って評価を行い、最も要求されたポリシーに近いCPU・
メモリの組み合わせを選ぶ、という手順となる。
まずステップ800へと進む。仮想マシンモニタ300の論理ハードウェア割当処理部
801は、物理−論理ハードウェア割り当て表310に、仮想サーバ351のエントリを
確保する。ステップ805へと進む。
ステップ805は、論理ハードウェア要求I/F350aで要求されたI/Oアダプタ
353の割り当て要求が専有か共有かを判定する。判定の結果専有であればステップ81
0へ、共有であればステップ830へと進む。
ステップ810は、要求されたI/Oアダプタ353が割り当て可能かを判定する。既
に他の仮想サーバに割り当てられていて割り当て不可である場合はステップ820へ、割
り当て可能であればステップ830へと進む。
ステップ820は、論理ハードウェア要求I/F350に対してエラーを応答するステ
ップである。エラー応答後、ステップ890へと進む。
ステップ830は、I/Oアダプタ割り当て処理となる。I/Oアダプタ割り当て処理
830のサブルーチンのフローは図56に示す。このサブルーチンの完了後、ステップ8
40へと進む。
ステップ840は、割り当て候補CPU841と割り当て候補メモリ842を空集合(
Ф)に設定するステップである。ここで割り当て候補CPU841と割り当て候補メモリ
842は、それまでの組み合わせの中で最も割り当てポリシーに近いCPUとメモリの組
み合わせの候補を示す。この時点ではまだCPU・メモリは選んでいないため、空集合(
Ф)とする。ステップ850へと進む。
ステップ850は、未割り当てのCPU・メモリの中から要求を満たすCPU・メモリ
を選択する処理である。CPU/メモリ選択処理850のサブルーチンのフローは図57
に示す。このサブルーチンの完了時、エラー応答があった場合はステップ820へと進む
。そうでない場合はステップ860へと進む。
ステップ860は、ステップ850で選んだCPU・メモリに対して、割り当てポリシ
ーに従った評価を行うステップである。ポリシー評価860のサブルーチンのフローは図
58に示す。このサブルーチンの完了後、ステップ870へと進む。
ステップ870は、未割り当てのCPU/メモリの組み合わせがまだあるか判定するス
テップである。まだ残っている場合はステップ850へと戻る。そうでない場合はステッ
プ880へと進む。
ステップ880は割当候補CPU841と割当候補メモリ842を物理−論理ハードウ
ェア割当表310の仮想サーバ351へ割り当てる処理である。CPU/メモリ割当処理
880のサブルーチンのフローは図63に示す。このサブルーチンが完了すると論理ハー
ドウェア割当処理は完了となる。
ステップ890は、ステップ850で割り当ての途中でエラーとなった場合(またはス
テップ810で割り当てるリソースが足りなかった場合)に、物理−論理ハードウェア割
当表310の仮想サーバ351のエントリを抹消するステップである。このエントリの抹
消後、論理ハードウェア割当処理は完了となる。
図56にI/Oアダプタ割当処理830のサブルーチンのフローを示す。まずステップ
900へと進む。
ステップ900は、論理ハードウェア要求I/F350aのI/Oアダプタ353に対
応するI/Oアダプタ#455をI/Oアダプタ構成表450から選択し、物理−論理ハ
ードウェア構成表310の仮想サーバ351のエントリの使用I/Oアダプタ312へ追
加するステップである。ステップ901へ進む。
ステップ901は、I/Oアダプタ353に対応するI/Oスロット#465をI/O
アダプタ構成表450から選択し、物理コンポーネント構成表400のリソース種別41
0がI/OスロットのエントリからI/Oスロット#465に対応するエントリを探し、
対応するコンポーネント420を物理−論理ハードウェア構成表310の仮想サーバ35
1のエントリの使用コンポーネント315へ追加するステップである。ステップ902へ
進む。
ステップ902は、全てのI/Oアダプタ353を割り当てたか判定するステップであ
る。まだ割り当てていないアダプタが残っている場合はステップ900へ戻る。そうでな
い場合はI/Oアダプタ割り当て処理830は完了となる。
図57にCPU/メモリ選択処理850のサブルーチンのフローを示す。まずステップ
905へと進む。
ステップ905は、論理ハードウェア要求I/F350aで要求されたCPUコア数3
54とメモリ量355が割り当て可能かどうか判定するステップである。割り当て不可能
である場合、ステップ907へと進む。割り当て可能ならばステップ906へと進む。
ステップ906は、未割り当ての組み合わせの中から、論理ハードウェア要求I/F3
50aで要求されたCPUコア数354とメモリ量355を満たすCPUコアとメモリを
選び、仮割当CPU851と仮割当メモリ852に設定するステップである。これにより
CPU/メモリ選択処理850は完了となる。
ステップ907は、エラー応答するステップである。これによってCPU/メモリ選択
処理850は完了となる。
図58に、ポリシー評価860のサブルーチンのフローを示す。まずステップ910へ
と進む。
ステップ910は、論理ハードウェア要求I/F350aの割り当てポリシー356に
従って条件分岐を行うステップである。割り当てポリシー356がCPU−メモリ優先、
CPU−I/O優先、I/O−メモリ優先、CPU−I/O−メモリ優先のいずれかであ
る場合、ステップ920へと進む。ポリシー356が信頼性優先である場合、ステップ9
30へと進む。ポリシー356が帯域優先である場合、ステップ940へと進む。ポリシ
ー356が省電力優先である場合、ステップ950へと進む。
ステップ920はコンポーネント間距離算出処理である。図59にサブルーチンのフロ
ーを示す。このサブルーチンの完了後ステップ911へと進む。
ステップ930はコンポーネント共有数算出処理である。図60にサブルーチンのフロ
ーを示す。完了後ステップ911へと進む。
ステップ940は実効帯域算出処理である。図61にサブルーチンのフローを示す。完
了後ステップ911へと進む。
ステップ950は消費電力算出処理である。図62にサブルーチンのフローを示す。完
了後ステップ911へと進む。
ステップ911は、割当候補CPU841と割当候補メモリ842が空集合(Ф)かど
うかを判定するステップである。空集合(Ф)である場合、ステップ913へ進む。そう
でない場合、ステップ912へ進む。
ステップ912は、割当候補ポリシー値843と比較して、仮割当ポリシー値853の
方が小さいかどうかを判定するステップである。ここでポリシー値とは、各割当ポリシー
356に従って、割り当てたリソース・コンポーネントの構成を定量的に評価するための
指数であり、小さい値である程より要求されたポリシーに近いと定義する。仮割当ポリシ
ー値853の方が割当候補ポリシー値843よりも小さい場合にはステップ913へと進
む。そうでない場合、ポリシー評価860は完了する。
ステップ913は、仮割当CPU851、仮割当メモリ852、仮割当ポリシー値85
3を、それぞれ割当候補CPU841、割当候補メモリ842、割当候補ポリシー値84
3へと代入するステップである。この処理によって、割当候補CPU841、割当候補メ
モリ842、割当候補ポリシー値843には、これまで割り当てた中で最もポリシー値が
小さな組み合わせのCPU・メモリの組み合わせが保持される。この処理により、ポリシ
ー評価860は完了する。
なお、図58のステップ913において、割当候補ポリシー値843は仮割当ポリシー
値853の値を引き継ぐ形で設定されまており、初回のステップ912では割当候補ポリ
シー値843の初期値は不定となるが、初回は図55のステップ840において、割当候
補CPU841と割当候補メモリ842がФに設定されるので、ステップ911の判定に
て必ずステップ913へと向かうことになり、ステップ912は通過しない。なお、割当
候補ポリシー値843を所定の最大値で初期化しておいてもよい。
図59にコンポーネント間距離算出920のサブルーチンのフローを示す。まずステッ
プ921へと進む。
ステップ921は、論理ハードウェア要求I/F350aの仮想サーバ351のI/O
アダプタ353と、仮割当CPU851と、仮割当メモリ852とを使って、リソース間
距離計算表600を作成するステップである。具体的には、
(1) 各リソースの所属するコンポーネントを物理コンポーネント構成表400より求
める。
(2) 各コンポーネント間の距離をコンポーネント間距離対応表500に従い、リソー
ス間距離計算表600のコンポーネント間距離604へと設定する。
(3) カテゴリ601別にコンポーネント間距離604の合計を求めΣ605へと代入
する。
といった処理から構成される。次に、ステップ922へと進む。
ステップ922は、論理ハードウェア要求I/F350aの割当ポリシー356に従っ
て条件分岐を行うステップである。ポリシー356がCPU−メモリ優先である場合、ス
テップ923へと進む。ポリシー356がCPU−I/O優先である場合、ステップ92
4へと進む。ポリシー356がI/O−メモリ優先である場合、ステップ925へと進む
。ポリシー356がCPU−I/O−メモリ優先である場合、ステップ926へと進む。
ステップ923は、リソース間距離計算表600のカテゴリ601のCPU−メモリに
対応するΣ605を仮割当ポリシー値853とするステップである。これによりコンポー
ネント間距離算出920は完了する。
ステップ924は、リソース間距離計算表600のカテゴリ601のCPU−I/Oに
対応するΣ605を仮割当ポリシー値853とするステップである。これによりコンポー
ネント間距離算出920は完了する。
ステップ925は、リソース間距離計算表600のカテゴリ601のI/O−メモリに
対応するΣ605を仮割当ポリシー値853とするステップである。これによりコンポー
ネント間距離算出920は完了する。
ステップ926は、リソース間距離計算表600の全てのカテゴリ601のΣ605の
合計を仮割当ポリシー値853とするステップである。これによりコンポーネント間距離
算出920は完了する。
図60に、コンポーネント共用数算出930のサブルーチンのフローを示す。まずステ
ップ931へと進む。
ステップ931は、論理ハードウェア要求I/F350aのI/Oアダプタ353と、
仮割当CPU851と、仮割当メモリ852とを使った仮想サーバ351を含む、全ての
割当済みの仮想サーバに対して、コンポーネント・ネットワーク割当表650を作成する
ステップである。具体的には、
(1) 各リソースの所属するコンポーネントを物理コンポーネント構成表400より求
める。
(2) 異なる仮想サーバ間で共用されるコンポーネントを共用コンポーネント#651
へと設定する。
(3) 共用コンポーネント#の数を共用数654へと設定する。
といった処理から構成される。ステップ932へと進む。
ステップ932は、コンポーネント・ネットワーク割当表650の仮想サーバ351に対
応する共用数654を仮割当ポリシー値853とするステップである。これによりコンポ
ーネント共用数算出930は完了する。
図61に、実効帯域算出940のサブルーチンのフローを示す。まずステップ941へ
と進む。
ステップ941は、論理ハードウェア要求I/F350aのI/Oアダプタ353と、
仮割当CPU851と、仮割当メモリ852とを使った仮想サーバ351を含む、全ての
割当済みの仮想サーバに対して、コンポーネント・ネットワーク割当表650を作成する
ステップである。具体的には、
(1) 各リソースの所属するコンポーネントを物理コンポーネント構成表400より求
める。
(2) コンポーネント間で使用するネットワークを物理ネットワーク構成表550より
求め、ネットワーク#653へと設定する。
(3) 異なる仮想サーバ間で共用されるネットワーク#653共用ネットワーク#65
2へと設定する。
(4) 各ネットワークの帯域を物理ネットワーク構成表550の帯域560より求め、
これを共有数654で割った値を実効帯域655へと設定する、
といった処理を含む。ステップ942へと進む。
ステップ942は、コンポーネント・ネットワーク割当表650の仮想サーバ351に
対応する実効帯域655のマイナスを仮割当ポリシー値853とするステップである。こ
こでポリシー値853は小さいほどより要求したポリシーに近いと定義されている。一方
、実効帯域の絶対値は大きいほど良い。そこで実効帯域の値をマイナスとした値を仮割当
ポリシー値853とすることで、最も実効帯域の大きな構成が最終的には選ばれるように
している。これにより、実行帯域算出940は完了である。
図62に、消費電力算出950のサブルーチンのフローを示す。まずステップ951へ
と進む。
ステップ951は、論理ハードウェア要求I/F350aのI/Oアダプタ353と、
仮割当CPU851と、仮割当メモリ852とを使った仮想サーバ351を含む、全ての
割当済みの仮想サーバに対して、割当リソース消費電力計算表700を計算するステップ
である。具体的には、
(1) 各リソースの所属するコンポーネントを物理コンポーネント構成表400より求
める。
(2) 物理コンポーネント構成表400から、割当済の全てのリソースのリソース消費
電力430およびコンポーネントについて消費電力を求め、計算表700の消費電力70
4へと設定。
(3)全ての消費電力704の合計を計算しΣ705へと設定。
といった処理を含む。ステップ952へと進む。
ステップ952は、割当リソース消費電力計算表700の消費電力合計705を仮割当
ポリシー値853とするステップである。これにより、消費電力算出950は完了する。
図63に、CPU/メモリ割当処理880のサブルーチンのフローを示す。まずステッ
プ960へと進む。
ステップ960は、割当候補CPU841を物理−論理ハードウェア構成表310の仮
想サーバ351のエントリの使用CPUコア313へ、割当候補メモリ842を使用メモ
リ314へ追加するステップである。ステップ961へと進む。
ステップ961は、物理コンポーネント構成表400のリソース種別410がCPUコ
アのエントリからCPUコア313に対応するエントリを探し、対応するコンポーネント
420を物理−論理ハードウェア構成表310の仮想サーバ351のエントリの使用コン
ポーネント315へ追加し、同じくリソース種別410がメモリのエントリからメモリ3
14に対応するエントリの使用コンポーネント315へ追加するステップである。ステッ
プ962へと進む。
ステップ962は、全ての割当候補CPU841および割当候補メモリ842を割り当
てたかどうか判定するステップである。まだ未割当の割当候補CPU841または割当候
補メモリ842が残っている場合はステップ960へと戻る。そうでなければCPU/メ
モリ割当処理880は完了する。
以上の一連の動作により、仮想マシンモニタ300は、コンソール230から指示され
た論理ハードウェア要求I/F350から、物理−論理ハードウェア割当表310を作る
ことができる。
以上のように本第1実施形態によれば、仮想マシンモニタ300は、マルチプロセッサ
システム100内のコンポーネントの物理的な位置情報を示すコンポーネント間の距離を
取得して、コンポーネント間距離対応表500を予め設定し、また、物理的なネットワー
クの構成や各リソースの消費電力を取得して物理コンポーネント構成表400とI/Oア
ダプタ構成表450及び物理ネットワーク構成表を予め設定しておく。そして、仮想マシ
ンモニタ300は、コンソール230から仮想サーバの生成(または設定)要求である論
理ハードウェア要求I/F350を受け付けて、まず、要求されたI/Oアダプタ180
を選択し、要求された仮想サーバへI/Oアダプタ180の専有割当を行う。次に、仮想
マシンモニタ300は、仮想サーバに上記コンポーネント間距離対応表500や物理コン
ポーネント構成表400からリソースの物理的な位置情報や消費電力を参照し、専有割当
を行ったI/Oデバイスから、要求されるポリシーを満たすCPUとメモリを選択して仮
想サーバに割り当てることで、要求されたポリシーに対して最適の仮想サーバを提供する
ことができる。
特に、一つの物理計算機で複数の仮想サーバ(ゲストOS)を稼動させる場合、仮想サ
ーバ毎にポリシーが異なっても、I/Oデバイス、CPUソケット、メモリの物理的な位
置情報から各仮想サーバに最適な構成を自動的に割り当てることが可能となり、仮想計算
機の可用性を向上させることが可能となるのである。
<第2実施形態>(論理ハードウェア構成通知I/F)
図43〜図48にて本発明の第2の実施形態を示す。なお、本第2の実施形態のマルチ
プロセッサシステム100の構成は、前記第1実施形態と同様である。
図43は仮想サーバ1_370aの論理ハードウェア要求I/F350kを示している
。論理ハードウェア要求I/F350kでは、4つのCPUコアと8GBのメモリ、I/
Oアダプタとして180dと180fを要求している。
図44は上記図43の論理ハードウェア要求I/F350kに対応した物理−論理ハー
ドウェア割当表310kを示している。図45に図1のマルチプロセッサシステム100
上に割り当てた仮想サーバ1_370aの配置を示す。図中点線で囲まれた部分が仮想サ
ーバ1_370aである。
ここで仮想サーバ1_370a上のゲストOS1_360aの動作について考える。ゲ
ストOS1_360aはマルチプロセッサシステム100上のOSであり、上述のような
ACPIに準拠したCPUとメモリに関するAffinity制御の機能を持っているとする。Af
finity制御の機能により、ゲストOS360上のアプリケーションに対してCPUソケッ
ト110c上のCPUコア#4、5とDIMM#8、9、10、11を割り当てる、ある
いはCPUソケット110d上のCPUコア#6、7とDIMM#12、13、14、1
5を割り当てることにより、CPUコアからメモリへのアクセスのレイテンシを短くし、
性能向上を図る。しかしこのようなAffinity制御の機能を使うためには、ゲストOS1_
360aが仮想サーバ1のハードウェアの配置を知っている必要がある。そのために、仮
想マシンモニタ300からゲストOS360への構成情報通知I/F(論理ハードウェア
構成情報通知I/F340)が必要となる。
図46に仮想マシンモニタ300上にある物理ハードウェア構成情報750を示す。こ
れは物理−論理ハードウェア割当表310から二次的に作られる情報であり、CPUコア
120の識別子または連番を示すホストCPUコア#751、割り当てたメモリ150の
物理アドレスの始点を示すホスト物理アドレスベース752、および割り当てたメモリ1
50の量を示すホスト物理アドレス範囲753から成る。しかしこの情報をそのままゲス
トOS1_360aに対して通知しても、ゲストOS1_360aは正しくAffinity制御
を行うことはできない。なぜならば、仮想マシンモニタ300がゲストOS360aに割
り当てたマルチプロセッサシステム100上のホスト物理アドレスベースと、ゲストOS
1_360aにおけるゲスト物理アドレスベースとは異なるからである。
図48にホスト物理アドレス空間とゲスト物理アドレス空間の関係を示す。ホスト物理
アドレスベースの0x2_0000_0000に対してゲストOS1_360aを割り当
てた場合、ゲスト物理アドレスベースの0x0_0000_0000がホスト物理アドレ
スベースの0x2_0000_0000に相当するようにアドレスのずれが生じる。従っ
て、論理ハードウェア構成情報をゲストOS1_360aに対して通知する場合には、こ
のずれを考慮して通知する必要がある。
図47に仮想マシンモニタ300からゲストOS1_360aに対する論理ハードウェ
ア構成情報通知I/F340を示す。論理ハードウェア構成情報通知I/F340は、ゲ
ストOS360に割り当てたCPUコア120の識別子または連番を示すゲストCPUコ
ア#341、ゲストOS360に割り当てたベースアドレスを示すゲスト物理アドレスベ
ース342、ゲストOS360に割り当てたアドレス範囲を示すゲスト物理アドレス範囲
343から成る。図47においてゲストCPUコア#341は、ゲストOS360内で0
から順番に付け直す。ゲスト物理アドレスベース342は、ホスト物理アドレスベース7
52から、仮想サーバ1_370aのベースアドレス0x2_0000_0000を引い
た値とする。ゲスト物理アドレス範囲343は、ホスト物理アドレス範囲753と同じ値
とする。以上により、ゲストOS1_360aがACPIに準拠したAffinity制御のため
に利用可能な使用論理ハードウェア構成情報が作られる。仮想マシンモニタ300は、こ
の論理ハードウェア構成情報通知I/F340を生成してゲストOS360に通知する。
なお、ここではCPU#341とメモリのアドレス範囲の組だけを通知するとしたが、よ
り高度な情報(たとえばリソース間距離計算表600のような距離の情報まで含めた)を
通知することも可能である。その場合でも、ホスト物理アドレスをゲスト物理アドレスへ
と変換する、という原則は変わらない。
以上のように本発明の第二の実施形態によれば仮想マシンモニタ300が適切なリソー
スを仮想サーバに対して割り当てて、仮想サーバ上のゲストOS360は仮想マシンモニ
タ300が生成した論理ハードウェア構成情報通知I/F340を取得することで、使用
するコンポーネントの物理位置情報を正しく利用することが可能となって、ゲストOS3
60のAffinity制御を正しく動作させて、物理サーバと同等の性能や信頼性を確保するこ
とが可能となる。
<第3実施形態>(リソースの再割当)
図43〜図45および図49〜図54を使って、本発明の第三の実施形態を説明する。
前記第二の実施形態と同じく、図43に示す論理ハードウェア要求I/F350kに従っ
て、仮想マシンモニタ300が図44に示す物理−論理ハードウェア割当表310kのよ
うに仮想サーバ1_370aを割り当てた結果を図45に示す。
仮想サーバ1_370aが図45のように割り当てられた状態で、図49に示す仮想サ
ーバ2に関する論理ハードウェア要求I/F350mがコンソール230から仮想マシン
モニタ300へ入力されたと仮定する。図49の論理ハードウェア要求I/F350mで
は、優先度357が10となっており、仮想サーバ1の論理ハードウェア要求I/F35
0kの優先度5よりも大きな値となっている。この場合、より優先度の高い仮想サーバ2
のリソース割当ポリシーを満たすように、仮想サーバ1に既に割り当てられたリソースを
再配置することが仮想マシンモニタ300に求められる。
図50は仮想サーバ1_370aに割当済みのリソースをそのままにして、仮想マシン
モニタ300が仮想サーバ2_370bに対してリソースを割り当てた場合の物理−論理
ハードウェア割当表310mを示す。また、図51に仮想サーバ1_370aから割当済
みのリソースを一旦取り上げ、仮想サーバ2_370bに対してリソースを割り当てた後
で仮想サーバ1_370aに改めてリソースを割り当てた場合の物理−論理ハードウェア
割当表310nを示す。また、図52に図50の物理−論理ハードウェア割当表310m
に従って計算したリソース間距離計算表600mを示し、図53に図51の物理−論理ハ
ードウェア割当表310nに従って計算したリソース間距離計算表600nを示す。
図49の論理ハードウェア要求I/F350mのリソース割当ポリシー356は「I/
O−メモリ優先」となっており、リソース間距離計算表600の「I/O−メモリ」のコ
ンポーネント間距離の総和605を比較すると、図52の計算表600mでは2なのに対
して図53の計算表600nでは1となっており、リソースの再配置を行った方が、より
仮想サーバ2のリソース割当ポリシーを満たす配置が可能となっていることがわかる。図
54に物理−論理ハードウェア割当表310nに従って仮想マシンモニタ300がマルチ
プロセッサシステム100上に仮想サーバ1_370aと仮想サーバ2_370bを割り
当てた様子を示す。
このように、優先度が異なる複数の論理ハードウェア要求がある場合、優先度の高い論
理ハードウェア要求I/F350から順にリソースを割り当てることで、より優先度の高
い要求に対して優先的にリソースを割り当てることが可能となる。ただし、リソースの再
配置を行う場合には、CPUおよびメモリの移動が必要となるケースがある。CPUの移
動に関しては、レジスタの内容のコピー、キャッシュやTLBのフラッシュ、等が必要に
なり、またメモリの移動に関してはメモリのコピーが必要となる。CPUやメモリの具体
的な移動手法については公知または周知の手法を適用すればよい。
以上のように、本発明の第三の実施形態によれば、新たに仮想サーバをマルチプロセッ
サシステム100へ割り当てる際に、既に割り当てたリソースを一旦解放させてから、仮
想サーバの優先度の高い順にリソースの再割当を行うことで、より最適な仮想サーバを構
成することが可能となる。
以上のように、本発明は複数のプロセッサやI/Oデバイスによって構成され、複数の
仮想サーバに分割された計算機システムおよびその仮想マシンモニタに対して適用できる
第1の実施形態を示し、本発明を適用するマルチプロセッサシステムと仮想マシンモニタの構成を示すブロック図。 第1の実施形態を示し、物理ハードウェア構成情報取得I/Fの構成を示す説明図。 第1の実施形態を示し、物理コンポーネント構成表の構成を示す説明図。 第1の実施形態を示し、I/Oアダプタ構成表の構成を示す説明図。 第1の実施形態を示し、コンポーネント間距離対応表の構成を示す説明図。 第1の実施形態を示し、物理ネットワーク構成表の構成を示す説明図。 第1の実施形態を示し、仮想サーバ1の論理ハードウェア要求I/Fの構成を示す説明図。 第1の実施形態を示し、仮想サーバ1の物理−論理ハードウェア割当表の構成を示す説明図。 第1の実施形態を示し、マルチプロセッサシステム上の仮想サーバ1の一例を示すブロック図。 第1の実施形態を示し、ポリシーをCPU−メモリ優先とした仮想サーバ2の論理ハードウェア要求I/Fの構成を示す説明図。 第1の実施形態を示し、ポリシーをI/O−メモリ優先とした仮想サーバ2の論理ハードウェア要求I/Fの構成を示す説明図。 第1の実施形態を示し、ポリシーをCPU−メモリ優先とした仮想サーバ2の物理−論理ハードウェア割当表の構成を示す説明図。 第1の実施形態を示し、ポリシーをI/O−メモリ優先とした仮想サーバ2の論理ハードウェア要求I/Fの構成を示す説明図。 第1の実施形態を示し、ポリシーをCPU−メモリ優先とした仮想サーバ2のリソース間距離計算表の構成を示す説明図。 第1の実施形態を示し、ポリシーをI/O−メモリ優先とした仮想サーバ2のリソース間距離計算表の構成を示す説明図。 第1の実施形態を示し、ポリシーをCPU−メモリ優先としたマルチプロセッサシステム上の仮想サーバ1,2の構成を示すブロック図。 第1の実施形態を示し、ポリシーをI/O−メモリ優先としたマルチプロセッサシステム上の仮想サーバ1,2の構成を示すブロック図。 第1の変形例を示し、論理ハードウェア要求I/Fの構成を示す説明図。 第1の変形例を示し、物理−論理ハードウェア割当表の構成を示す説明図。 第1の変形例を示し、マルチプロセッサシステム上の仮想サーバ1の構成を示すブロック図。 第1の変形例を示し、ポリシーをCPU−メモリ優先とした仮想サーバ2の論理ハードウェア要求I/Fの構成を示す説明図。 第1の変形例を示し、ポリシーをCPU−I/O優先とした仮想サーバ2の論理ハードウェア要求I/Fの構成を示す説明図。 第1の変形例を示し、ポリシーをCPU−メモリ優先とした仮想サーバ2の物理−論理ハードウェア割当表の構成を示す説明図。 第1の変形例を示し、ポリシーをCPU−I/O優先とした仮想サーバ2の物理−論理ハードウェア割当表の構成を示す説明図。 第1の変形例を示し、ポリシーをCPU−メモリ優先とした仮想サーバ2のリソース間距離計算表の構成を示す説明図。 第1の変形例を示し、ポリシーをCPU−I/O優先とした仮想サーバ2のリソース間距離計算表の構成を示す説明図。 第1の変形例を示し、ポリシーをCPU−メモリ優先とした場合のマルチプロセッサシステム上の仮想サーバ1、2のブロック図。 第1の変形例を示し、ポリシーをCPU−I/O優先とした場合のマルチプロセッサシステム上の仮想サーバ1、2のブロック図。 第2の変形例を示し、仮想サーバ1の論理ハードウェア要求I/Fの構成を示す説明図。 第2の変形例を示し、仮想サーバ1の物理−論理ハードウェア割当表の構成を示す説明図。 第2の変形例を示し、マルチプロセッサシステム上の仮想サーバ1の構成を示すブロック図。 第2の変形例を示し、ポリシーを信頼性優先とした仮想サーバ2の論理ハードウェア要求I/Fの構成を示す説明図。 第2の変形例を示し、ポリシーを帯域優先とした仮想サーバ2の論理ハードウェア要求I/Fの構成を示す説明図。 第2の変形例を示し、ポリシーを省電力優先とした仮想サーバ2の論理ハードウェア要求I/Fの構成を示す説明図。 第2の変形例を示し、ポリシーを信頼性優先とした仮想サーバ1、2の物理−論理ハードウェア割当表の構成を示す説明図。 第2の変形例を示し、ポリシーを帯域優先とした仮想サーバ1,2の物理−論理ハードウェア割当表の構成を示す説明図。 第2の変形例を示し、ポリシーを信頼性優先とした仮想サーバ1、2のコンポーネント・ネットワーク割当表の構成を示す説明図。 第2の変形例を示し、ポリシーを帯域優先とした仮想サーバ1、2のコンポーネント・ネットワーク割当表の構成を示す説明図。 第2の変形例を示し、ポリシーを信頼性優先とした場合の割当リソース消費電力計算表の構成を示す説明図。 第2の変形例を示し、ポリシーを消費電力優先とした場合のコンポーネント・ネットワーク割当表の構成を示す説明図。 第2の変形例を示し、ポリシーを信頼性優先とした仮想サーバ1、2のマルチプロセッサシステム上のブロック図。 第2の変形例を示し、ポリシーを帯域優先とした仮想サーバ1、2のマルチプロセッサシステム上のブロック図。 第2の実施形態を示し、仮想サーバ1の論理ハードウェア要求I/Fの構成を示す説明図。 第2の実施形態を示し、仮想サーバ1の物理−論理ハードウェア割当表の構成を示す説明図。 第2の実施形態を示し、マルチプロセッサシステム上の仮想サーバ1の構成を示すブロック図。 第2の実施形態を示し、物理ハードウェア構成情報の構成を示す説明図。 第2の実施形態を示し、論理ハードウェア構成情報通知I/Fの構成を示す説明図。 第2の実施形態を示し、ホスト物理アドレスとゲスト物理アドレスの関係を示すマップ。 第3の実施形態を示し、仮想サーバ2の論理ハードウェア要求I/Fの構成を示す説明図。 第2の実施形態を示し、仮想サーバ1、2の物理−論理ハードウェア割当表の構成を示す説明図。 第2の実施形態を示し、仮想サーバ1、2の物理−論理ハードウェア割当表の他の構成を示す説明図。 第2の実施形態を示し、仮想サーバ2のリソース消費電力計算表の構成を示す説明図。 第2の実施形態を示し、仮想サーバ2のリソース消費電力計算表の他の構成を示す説明図。 第2の実施形態を示し、マルチプロセッサシステム上の仮想サーバ1、2を示すブロック図。 第1の実施形態を示し、仮想マシンモニタで行われる論理ハードウェア割当処理の一例を示すフローチャート。 第1の実施形態を示し、同じく論理ハードウェア割当処理のI/Oアダプタ割り当て処理のサブルーチンを示すフローチャート。 第1の実施形態を示し、同じく論理ハードウェア割当処理のCPU及びメモリ選択処理のサブルーチンを示すフローチャート。 第1の実施形態を示し、同じく論理ハードウェア割当処理のポリシー評価処理のサブルーチンを示すフローチャート。 第1の実施形態を示し、同じく論理ハードウェア割当処理のコンポーネント間距離算出処理のサブルーチンを示すフローチャート。 第1の実施形態を示し、同じく論理ハードウェア割当処理のコンポーネント共用数算出処理のサブルーチンを示すフローチャート。 第1の実施形態を示し、同じく論理ハードウェア割当処理の実効帯域算出処理のサブルーチンを示すフローチャート。 第1の実施形態を示し、同じく論理ハードウェア割当処理の消費電力算出処理のサブルーチンを示すフローチャート。 第1の実施形態を示し、同じく論理ハードウェア割当処理のCPU及びメモリ割り当て処理のサブルーチンを示すフローチャート。 第1の実施形態を示し、マルチプロセッサシステムの構成図。
符号の説明
100 マルチプロセッサシステム
110 CPUソケット
120 CPUコア
130 メモリコントローラ
140 メモリインタフェース
150 メモリ
160 I/Oハブ
170 I/O接続インタフェース
180 I/Oアダプタ
190 I/Oデバイス
200 モジュール間接続インタフェース
210 モジュール情報取得インタフェース
220 サービスプロセッサ
300 仮想マシンモニタ
310 物理−論理ハードウェア割当表
320 物理ハードウェア構成情報取得インタフェース
330 物理−論理ハードウェア割当インタフェース
340 論理ハードウェア構成情報通知インタフェース
350 論理ハードウェア要求インタフェース
400 物理コンポーネント構成表
500 コンポーネント間距離対応表
550 物理ネットワーク構成表
600 リソース間距離計算表
650 コンポーネント・ネットワーク割当表
700 割当リソース消費電力系計算表
750 物理HW構成情報
801 論理ハードウェア割当処理部

Claims (17)

  1. 1つ以上のプロセッサと、1つ以上のメモリと1つ以上のI/Oデバイスとを内部ネットワークで接続したマルチプロセッサシステム上で仮想サーバを稼働させる仮想マシンモニタであって、
    前記仮想マシンモニタは、
    前記マルチプロセッサシステムの前記プロセッサとメモリとI/Oデバイス及びネットワークを含むハードウェアの物理的な位置情報を含むハードウェアの構成情報を取得する物理ハードウェア情報取得部と、
    生成する仮想サーバのプロセッサの数とメモリ量とI/Oデバイス及びリソースの割り当てポリシーとを含む生成要求を受け付ける受付部と、
    前記受け付けた生成要求に基づいてI/Oデバイスを前記仮想サーバに割り当ててから、前記割り当てポリシーを満たすように前記プロセッサとメモリを前記仮想サーバに割り当てる割り当て処理部と、
    を備えたことを特徴とする仮想マシンモニタ。
  2. 前記仮想マシンモニタは、
    前記仮想サーバに対して割り当てたプロセッサとメモリ及びI/Oデバイスの物理的な位置情報を前記仮想サーバに通知する通知部をさらに備えたことを特徴とする請求項1に記載の仮想マシンモニタ。
  3. 前記受付部が、第2の仮想サーバの生成要求を受け付け、
    前記割り当て処理部は、
    前記仮想サーバに対して既に割り当てたプロセッサとメモリ及びI/Oデバイスの物理的な位置情報を保存し、前記第2の仮想サーバの生成要求に含まれるプロセッサの数とメモリ量及びI/Oデバイスの情報とリソース割当ポリシーから、前記マルチプロセッサ上で割り当て可能なプロセッサとメモリ及びI/Oデバイスの位置情報に基づいて、当該第2の仮想サーバに前記利用可能なI/Oデバイスとプロセッサ及びメモリを割り当てて、前記割り当て済みの仮想サーバのリソースの割当ポリシーに基づいて当該仮想サーバのプロセッサとメモリを再配置することを特徴とする請求項1に記載の仮想マシンモニタ。
  4. 前記物理ハードウェア情報取得部は、前記ハードウェアの物理的な位置情報からプロセッサとメモリ及びI/Oデバイスの距離を求め、
    前記割り当て処理部は、
    前記リソースの割当ポリシーに基づいて前記プロセッサとメモリ及びI/Oデバイスの距離の総和が最小となるように、前記仮想サーバへプロセッサとメモリ及びI/Oデバイスを割り当てることを特徴とする請求項1に記載の仮想マシンモニタ。
  5. 前記割り当て処理部は、
    前記ひとつのI/Oデバイスをひとつの仮想サーバに割り当てることを特徴とする請求項1に記載の仮想マシンモニタ。
  6. 1つ以上のプロセッサと、1つ以上のメモリと1つ以上のI/Oデバイスとを内部ネットワークで接続し、前記プロセッサとメモリ及びI/Oデバイスを仮想サーバに割り当てる仮想マシンモニタを備えたマルチプロセッサシステムであって、
    前記仮想マシンモニタは、
    前記マルチプロセッサシステムの前記プロセッサとメモリとI/Oデバイス及びネットワークを含むハードウェアの物理的な位置情報を含むハードウェアの構成情報を取得する物理ハードウェア情報取得部と、
    生成する仮想サーバのプロセッサの数とメモリ量とI/Oデバイス及びリソースの割り当てポリシーとを含む生成要求を受け付ける受付部と、
    前記受け付けた生成要求に基づいてI/Oデバイスを前記仮想サーバに割り当ててから、前記割り当てポリシーを満たすように前記プロセッサとメモリを前記仮想サーバに割り当てる割り当て処理部と、
    を備えたことを特徴とするマルチプロセッサシステム。
  7. 前記物理ハードウェア情報取得部は、前記ハードウェアの物理的な位置情報からプロセッサとメモリ及びI/Oデバイスの距離を求め、
    前記割り当て処理部は、
    前記リソースの割当ポリシーが、プロセッサのメモリへのアクセスを優先する場合には、前記プロセッサとメモリの距離の総和が最小となるように、前記仮想サーバへプロセッサとメモリ及びI/Oデバイスを割り当てることを特徴とする請求項6に記載のマルチプロセッサシステム。
  8. 前記物理ハードウェア情報取得部は、前記ハードウェアの物理的な位置情報からプロセッサとメモリ及びI/Oデバイスの距離を求め、
    前記割り当て処理部は、
    前記リソースの割当ポリシーが、プロセッサとI/Oデバイスのアクセスを優先する場合には、前記プロセッサとI/Oデバイスの距離の総和が最小となるように、前記仮想サーバへプロセッサとメモリ及びI/Oデバイスを割り当てることを特徴とする請求項6に記載のマルチプロセッサシステム。
  9. 前記物理ハードウェア情報取得部は、前記ハードウェアの物理的な位置情報からプロセッサとメモリ及びI/Oデバイスの距離を求め、
    前記割り当て処理部は、
    前記リソースの割当ポリシーが、メモリとI/Oデバイスのアクセスを優先する場合には、前記メモリとI/Oデバイスの距離の総和が最小となるように、前記仮想サーバへプロセッサとメモリ及びI/Oデバイスを割り当てることを特徴とする請求項6に記載のマルチプロセッサシステム。
  10. 前記物理ハードウェア情報取得部は、前記ハードウェアの物理的な位置情報からプロセッサとメモリ及びI/Oデバイスの距離を求め、
    前記割り当て処理部は、
    前記リソースの割当ポリシーが、仮想サーバの全体の性能を確保する場合には、前記プロセッサとメモリ及びI/Oデバイスの距離の総和が最小となるように、前記仮想サーバへプロセッサとメモリ及びI/Oデバイスを割り当てることを特徴とする請求項6に記載のマルチプロセッサシステム。
  11. 前記物理ハードウェア情報取得部は、前記ハードウェアの物理的な位置情報からプロセッサとメモリ及びI/Oデバイスを接続する内部ネットワークの経路を求め、
    前記割り当て処理部は、
    前記リソースの割当ポリシーが、仮想サーバの信頼性を優先する場合には、既に割り当てた仮想サーバが使用する内部ネットワークと、前記生成要求のあった新たな仮想サーバが使用する内部ネットワークで、重複する内部ネットワークの数の総和が最小となるように、前記新たな仮想サーバへプロセッサとメモリ及びI/Oデバイスを割り当てることを特徴とする請求項6に記載のマルチプロセッサシステム。
  12. 前記物理ハードウェア情報取得部は、前記ハードウェアの物理的な位置情報からプロセッサとメモリ及びI/Oデバイスを接続する内部ネットワークの経路を求め、
    前記割り当て処理部は、
    前記リソースの割当ポリシーが、内部ネットワークの帯域を優先する場合には、既に割り当てた仮想サーバが使用する内部ネットワークと、前記生成要求のあった新たな仮想サーバが使用する内部ネットワークで、重複する内部ネットワークの帯域を仮想サーバの数で除した値を実効帯域とし、当該実効帯域が最大となるように、前記新たな仮想サーバへプロセッサとメモリ及びI/Oデバイスを割り当てることを特徴とする請求項6に記載のマルチプロセッサシステム。
  13. 前記物理ハードウェア情報取得部は、前記プロセッサとメモリとI/Oデバイス及び前記ハードウェアを動作させるコンポーネントの消費電力をそれぞれ求め、
    前記割り当て処理部は、
    前記リソースの割当ポリシーが、消費電力を優先する場合には、既に割り当てた仮想サーバのプロセッサとメモリとI/Oデバイス及びコンポーネントの消費電力と、前記生成要求のあった新たな仮想サーバが使用するプロセッサとメモリとI/Oデバイス及びコンポーネントの消費電力の総和が最小となるように、前記新たな仮想サーバへプロセッサとメモリ及びI/Oデバイスを割り当てることを特徴とする請求項6に記載のマルチプロセッサシステム。
  14. 前記仮想マシンモニタは、
    前記仮想サーバに対して割り当てたプロセッサとメモリ及びI/Oデバイスの物理的な位置情報を前記仮想サーバに通知する通知部をさらに備えたことを特徴とする請求項6に記載のマルチプロセッサシステム。
  15. 前記通知部は、
    前記仮想サーバに対してACPIに準拠した物理的な位置情報に変換して通知することを特徴とする請求項14に記載のマルチプロセッサシステム。
  16. 前記受付部が、第2の仮想サーバの生成要求を受け付け、
    前記割り当て処理部は、
    前記仮想サーバに対して既に割り当てたプロセッサとメモリ及びI/Oデバイスの物理的な位置情報を保存し、前記第2の仮想サーバの生成要求に含まれるプロセッサの数とメモリ量及びI/Oデバイスの情報とリソース割当ポリシーから、前記マルチプロセッサ上で割り当て可能なプロセッサとメモリ及びI/Oデバイスの位置情報に基づいて、当該第2の仮想サーバに前記利用可能なI/Oデバイスとプロセッサ及びメモリを割り当てて、前記割り当て済みの仮想サーバのリソースの割当ポリシーに基づいて当該仮想サーバのプロセッサとメモリを再配置することを特徴とする請求項6に記載のマルチプロセッサシステム。
  17. 前記割り当て処理部は、
    前記ひとつのI/Oデバイスをひとつの仮想サーバに割り当てることを特徴とする請求項6に記載のマルチプロセッサシステム。
JP2008169803A 2007-11-28 2008-06-30 仮想マシンモニタ及びマルチプロセッサシステム Expired - Fee Related JP5210730B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2008169803A JP5210730B2 (ja) 2007-11-28 2008-06-30 仮想マシンモニタ及びマルチプロセッサシステム
US12/222,227 US8819675B2 (en) 2007-11-28 2008-08-05 Virtual machine monitor and multiprocessor system
EP08014080A EP2065804A1 (en) 2007-11-28 2008-08-06 Virtual machine monitor and multi-processor system
KR1020080079105A KR101090651B1 (ko) 2007-11-28 2008-08-12 가상 머신 모니터 및 멀티프로세서 시스템
CN2008102106429A CN101446928B (zh) 2007-11-28 2008-08-13 虚拟机器监视器

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007307626 2007-11-28
JP2007307626 2007-11-28
JP2008169803A JP5210730B2 (ja) 2007-11-28 2008-06-30 仮想マシンモニタ及びマルチプロセッサシステム

Publications (2)

Publication Number Publication Date
JP2009151745A true JP2009151745A (ja) 2009-07-09
JP5210730B2 JP5210730B2 (ja) 2013-06-12

Family

ID=40742614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008169803A Expired - Fee Related JP5210730B2 (ja) 2007-11-28 2008-06-30 仮想マシンモニタ及びマルチプロセッサシステム

Country Status (3)

Country Link
JP (1) JP5210730B2 (ja)
KR (1) KR101090651B1 (ja)
CN (1) CN101446928B (ja)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011048550A (ja) * 2009-08-26 2011-03-10 Nec Corp コンピュータのメモリ再配置制御方法およびプログラム並びにコンピュータシステム
JP2011113571A (ja) * 2009-11-27 2011-06-09 Korea Electronics Telecommun 資源間の物理的/論理的な関係をマッピングする方法及び装置
WO2011068091A1 (ja) 2009-12-04 2011-06-09 日本電気株式会社 サーバ及びフロー制御プログラム
WO2011083505A1 (en) 2010-01-05 2011-07-14 Hitachi, Ltd. Method and server system for testing and executing migration between virtual servers
JP2012069056A (ja) * 2010-09-27 2012-04-05 Hitachi Systems Ltd クラウドサービス再配置システムと方法およびプログラム
WO2012104940A1 (ja) * 2011-02-04 2012-08-09 パナソニック株式会社 仮想計算機システム、デバイス共有制御方法、プログラム、及び集積回路
JP2012215936A (ja) * 2011-03-31 2012-11-08 Nec Corp Io構成によるジョブスケジューリング方法
JP2013506898A (ja) * 2009-11-13 2013-02-28 ブル・エス・アー・エス 複数の入力/出力コントローラと補助演算ユニットとを備えるマルチプロセッサアーキテクチャにおけるソフトウェアアプリケーションの実行を最適化するための方法および装置
JP2013514584A (ja) * 2009-12-16 2013-04-25 シマンテック コーポレーション 仮想環境におけるストレージの可視性
WO2013072978A1 (ja) * 2011-11-18 2013-05-23 株式会社日立製作所 計算機、仮想マシン配備方法及びプログラム
JP2014170363A (ja) * 2013-03-04 2014-09-18 Nec Corp 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム
JP2015504224A (ja) * 2012-01-17 2015-02-05 アルカテル−ルーセント ネットワークおよびストレージアウェア仮想マシン配置のための方法および装置
US9288155B2 (en) 2013-02-13 2016-03-15 Hitachi, Ltd. Computer system and virtual computer management method
WO2016056060A1 (ja) * 2014-10-07 2016-04-14 株式会社日立製作所 計算機及びベクタの設定方法
US9614747B2 (en) 2011-02-24 2017-04-04 Nec Corporation Network system, controller, and flow control method
US9733986B2 (en) 2011-09-22 2017-08-15 Fujitsu Limited Computer system and virtual machine arranging method
US9910709B2 (en) 2014-03-20 2018-03-06 Fujitsu Limited Allocation control method and apparatus

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101068537B1 (ko) * 2008-12-18 2011-09-28 한국전자통신연구원 가상화 플랫폼을 이용한 가상화 관리 장치 및 그 제어방법
KR101334842B1 (ko) * 2010-03-02 2013-12-02 한국전자통신연구원 가상화 지원 단말 플랫폼을 위한 가상머신 관리장치 및 방법
CN102915292B (zh) * 2011-08-02 2015-12-09 北京大学 基于多核处理器的通信方法及其检测方法和控制方法
KR101867960B1 (ko) 2012-01-05 2018-06-18 삼성전자주식회사 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법
CN104303168B (zh) * 2012-04-25 2016-12-07 英派尔科技开发有限公司 用于灵活资源需求应用的认证
WO2014076799A1 (ja) * 2012-11-15 2014-05-22 三菱電機株式会社 仮想計算機システム
CN103620558A (zh) * 2013-05-21 2014-03-05 华为技术有限公司 实现物理资源和虚拟资源对应的方法和基础输入输出系统
US10229043B2 (en) * 2013-07-23 2019-03-12 Intel Business Machines Corporation Requesting memory spaces and resources using a memory controller
CN104811361B (zh) * 2014-01-24 2018-06-15 新华三技术有限公司 一种生成虚拟化网络设备的方法和装置
KR101647099B1 (ko) * 2014-12-18 2016-08-09 권영민 가상화 멀티 세션 지원을 위한 서버 구조
US9535606B2 (en) * 2014-12-22 2017-01-03 Intel Corporation Virtual serial presence detect for pooled memory
US20160179582A1 (en) * 2014-12-23 2016-06-23 Intel Corporation Techniques to dynamically allocate resources for local service chains of configurable computing resources
US20180341482A1 (en) * 2015-12-18 2018-11-29 Telefonaktiebolaget Lm Ericsson (Publ) Method and arrangement for utilization of a processing arrangement
CN106412075A (zh) * 2016-10-14 2017-02-15 郑州云海信息技术有限公司 一种基于云计算的资源配置方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001282560A (ja) * 2000-03-31 2001-10-12 Hitachi Ltd 仮想計算機制御方法及びその実施装置並びにその処理プログラムを記録した記録媒体
JP2004005443A (ja) * 2002-02-26 2004-01-08 Internatl Business Mach Corp <Ibm> 区画に分割されたコンピュータ・システムのある区画から別の区画へデータを転送する装置および方法
WO2006117394A2 (en) * 2005-05-05 2006-11-09 International Business Machines Corporation Managing computer memory in a computing environment with dynamic logical partitioning
JP2007257097A (ja) * 2006-03-22 2007-10-04 Nec Corp 仮想計算機システム及びその物理リソース再構成方法並びにプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6912625B2 (en) * 2003-01-09 2005-06-28 International Business Machines Corporation Method, system, and computer program product for creating and managing memory affinity in logically partitioned data processing systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001282560A (ja) * 2000-03-31 2001-10-12 Hitachi Ltd 仮想計算機制御方法及びその実施装置並びにその処理プログラムを記録した記録媒体
JP2004005443A (ja) * 2002-02-26 2004-01-08 Internatl Business Mach Corp <Ibm> 区画に分割されたコンピュータ・システムのある区画から別の区画へデータを転送する装置および方法
WO2006117394A2 (en) * 2005-05-05 2006-11-09 International Business Machines Corporation Managing computer memory in a computing environment with dynamic logical partitioning
JP2008541214A (ja) * 2005-05-05 2008-11-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 動的論理パーティショニングによるコンピューティング環境におけるコンピュータ・メモリの管理
JP2007257097A (ja) * 2006-03-22 2007-10-04 Nec Corp 仮想計算機システム及びその物理リソース再構成方法並びにプログラム

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8381003B2 (en) 2009-08-26 2013-02-19 Nec Corporation Memory relocation in computer for power saving
JP2011048550A (ja) * 2009-08-26 2011-03-10 Nec Corp コンピュータのメモリ再配置制御方法およびプログラム並びにコンピュータシステム
US8966483B2 (en) 2009-11-13 2015-02-24 Bull Sas Method and device for optimizing execution of software applications in a multiprocessor architecture comprising several input/output controllers and secondary computing units
JP2013506898A (ja) * 2009-11-13 2013-02-28 ブル・エス・アー・エス 複数の入力/出力コントローラと補助演算ユニットとを備えるマルチプロセッサアーキテクチャにおけるソフトウェアアプリケーションの実行を最適化するための方法および装置
JP2011113571A (ja) * 2009-11-27 2011-06-09 Korea Electronics Telecommun 資源間の物理的/論理的な関係をマッピングする方法及び装置
US8346816B2 (en) 2009-11-27 2013-01-01 Electronics And Telecommunications Research Institute Method and apparatus for physical/logical relationship mapping between resources
US9130867B2 (en) 2009-12-04 2015-09-08 Nec Corporation Flow control for virtualization-based server
JP5720577B2 (ja) * 2009-12-04 2015-05-20 日本電気株式会社 サーバ及びフロー制御プログラム
WO2011068091A1 (ja) 2009-12-04 2011-06-09 日本電気株式会社 サーバ及びフロー制御プログラム
JP2013514584A (ja) * 2009-12-16 2013-04-25 シマンテック コーポレーション 仮想環境におけるストレージの可視性
US8346934B2 (en) 2010-01-05 2013-01-01 Hitachi, Ltd. Method for executing migration between virtual servers and server system used for the same
WO2011083505A1 (en) 2010-01-05 2011-07-14 Hitachi, Ltd. Method and server system for testing and executing migration between virtual servers
JP2012069056A (ja) * 2010-09-27 2012-04-05 Hitachi Systems Ltd クラウドサービス再配置システムと方法およびプログラム
US9009509B2 (en) 2011-02-04 2015-04-14 Panasonic Intellectual Property Corporation Of America Virtual computer system, device sharing control method, computer-readable recording medium, and integrated circuit
WO2012104940A1 (ja) * 2011-02-04 2012-08-09 パナソニック株式会社 仮想計算機システム、デバイス共有制御方法、プログラム、及び集積回路
JP5830038B2 (ja) * 2011-02-04 2015-12-09 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム、デバイス共有制御方法、プログラム、及び集積回路
US9614747B2 (en) 2011-02-24 2017-04-04 Nec Corporation Network system, controller, and flow control method
JP2012215936A (ja) * 2011-03-31 2012-11-08 Nec Corp Io構成によるジョブスケジューリング方法
US9733986B2 (en) 2011-09-22 2017-08-15 Fujitsu Limited Computer system and virtual machine arranging method
WO2013072978A1 (ja) * 2011-11-18 2013-05-23 株式会社日立製作所 計算機、仮想マシン配備方法及びプログラム
US9372707B2 (en) 2011-11-18 2016-06-21 Hitachi, Ltd. Computer, virtual machine deployment method and program
JP2015504224A (ja) * 2012-01-17 2015-02-05 アルカテル−ルーセント ネットワークおよびストレージアウェア仮想マシン配置のための方法および装置
US9626222B2 (en) 2012-01-17 2017-04-18 Alcatel Lucent Method and apparatus for network and storage-aware virtual machine placement
US9288155B2 (en) 2013-02-13 2016-03-15 Hitachi, Ltd. Computer system and virtual computer management method
US9244740B2 (en) 2013-03-04 2016-01-26 Nec Corporation Information processing device, job scheduling method, and job scheduling program
JP2014170363A (ja) * 2013-03-04 2014-09-18 Nec Corp 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム
US9910709B2 (en) 2014-03-20 2018-03-06 Fujitsu Limited Allocation control method and apparatus
WO2016056060A1 (ja) * 2014-10-07 2016-04-14 株式会社日立製作所 計算機及びベクタの設定方法

Also Published As

Publication number Publication date
CN101446928B (zh) 2011-05-25
JP5210730B2 (ja) 2013-06-12
KR20090055459A (ko) 2009-06-02
KR101090651B1 (ko) 2011-12-07
CN101446928A (zh) 2009-06-03

Similar Documents

Publication Publication Date Title
JP5210730B2 (ja) 仮想マシンモニタ及びマルチプロセッサシステム
EP2065804A1 (en) Virtual machine monitor and multi-processor system
US9250947B2 (en) Determining placement fitness for partitions under a hypervisor
CN112099941B (zh) 实现硬件加速处理的方法、设备和系统
RU2571366C2 (ru) Виртуальная архитектура неоднородного доступа к памяти для виртуальных машин
KR100998298B1 (ko) 하이퍼트랜스포트 환경에서 i/o 어댑터 lpar 구분
US8762999B2 (en) Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement
US8782657B2 (en) Dynamic creation and destruction of IO resources based on actual load and resource availability
US20140282584A1 (en) Allocating Accelerators to Threads in a High Performance Computing System
WO2016135875A1 (ja) 情報処理装置
US20120179844A1 (en) Dynamically assigning virtual functions to client applications
US8615586B2 (en) Discovery of logical images at storage area network endpoints
JP2010009567A (ja) 動的にマージされた物理パーティションを含む情報処理システムおよびこれを動作させる方法
US10409519B2 (en) Interface device, and computer system including interface device
US9111046B2 (en) Implementing capacity and user-based resource allocation for a shared adapter in a virtualized system
US20170132044A1 (en) Storage management computer
US20220327080A1 (en) PCIe DEVICE AND OPERATING METHOD THEREOF
JP2015504541A (ja) マルチプロセッサ・コンピューティング・システムにおけるメモリ・アクセスを動的に最適化する方法、プログラム、及びコンピューティング・システム
JP5195756B2 (ja) Pciデバイスのi/o空間要求抑止方法
JP2008021252A (ja) 計算機システム及びアドレス割当方法
WO2017181851A1 (zh) 一种bios启动方法及装置
US9176669B2 (en) Address resource mapping in a shared memory computer system
Ha et al. Dynamic Capacity Service for Improving CXL Pooled Memory Efficiency
JP2011221634A (ja) 計算機システム、論理区画管理方法及び論理分割処理プログラム
KR20170094911A (ko) 반도체 장치의 동작 방법 및 반도체 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110523

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120731

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130111

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130225

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160301

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160301

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees