JP5953880B2 - 仮想化システム、マイグレーション管理サーバ、マイグレーション管理方法、及びマイグレーション管理プログラム - Google Patents

仮想化システム、マイグレーション管理サーバ、マイグレーション管理方法、及びマイグレーション管理プログラム Download PDF

Info

Publication number
JP5953880B2
JP5953880B2 JP2012079611A JP2012079611A JP5953880B2 JP 5953880 B2 JP5953880 B2 JP 5953880B2 JP 2012079611 A JP2012079611 A JP 2012079611A JP 2012079611 A JP2012079611 A JP 2012079611A JP 5953880 B2 JP5953880 B2 JP 5953880B2
Authority
JP
Japan
Prior art keywords
virtual machine
instruction group
virtualization server
management
manager
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.)
Expired - Fee Related
Application number
JP2012079611A
Other languages
English (en)
Other versions
JP2013210757A (ja
Inventor
関根 章浩
章浩 関根
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2012079611A priority Critical patent/JP5953880B2/ja
Publication of JP2013210757A publication Critical patent/JP2013210757A/ja
Application granted granted Critical
Publication of JP5953880B2 publication Critical patent/JP5953880B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、仮想マシンのマイグレーション技術に関し、特に、物理マシンのCPUが異なる複数の仮想化サーバ間で仮想マシンのマイグレーションを行う際、物理マシンのCPU命令群を有効に活用できるようにするマイグレーション技術に関する。
仮想化サーバでは、物理マシンのCPUが異なる仮想化サーバ間で仮想マシンのマイグレーションを行う際、物理マシン上で使用可能なCPU命令群の差異によって仮想マシン及びゲストOS上でのプログラムが動作不可となる場合がある。これを防ぐため、背景技術においては、マイグレーション後の仮想化サーバで使用不可となるCPU命令群をエミュレーションして補う方法が提案されている。
また、マイグレーション前後の仮想化サーバの何れでも使用できる(マイグレーション前後の仮想化サーバで共通的に使用できる)CPU命令群を仮想マシン及びゲストOS上で使用できるように、予めCPU命令群のマスクを設定する方法も提案されている。
ここで、本発明の関連技術が、特許文献2及び特許文献3に開示されている。特許文献2では、管理サーバが、サーバのハードウェア、VM、負荷に関する情報、及び移行するVMの構成情報を取得する旨が記載されている。また、特許文献3では、実計算機上で同時に動作可能なゲストOSの種類にかかわらず、仮想計算機上で同時に動作可能なゲストOSの種類を特定する旨が記載されている。
特開2010−272055号公報 特開2008−217302号公報 特開平07−129419号公報
小川大地、飯島 徹、"[VMotion]プロセッサの制約に注意"、[online]、2010年6月15日、日経ITPro、[平成23年12月8日検索]、インターネット<URL:http://itpro.nikkeibp.co.jp/article/COLUMN/20100604/348873/> Rajesh Dave、"WindowsServer2008R2 仮想マシンのプロセッサ互換性モード"、[online]、Microsoft Corporation、[平成23年12月8日検索]、インターネット<URL:http://download.microsoft.com/download/8/4/2/84235DD4−FC17−4565−8BE2−F69BBFA89636/VM_processor_compatibility_mode.doc>
しかし、背景技術においては、以下のような問題点を有していた。
第1の問題点は、マイグレーション後の仮想化サーバで使用不可となるCPU命令群をエミュレーションすると、仮想マシン及びゲストOS上でのプログラム実行速度が低下し、処理時間増加による消費電力増加も発生することである。
その理由は、エミュレーションによる実行は、CPU命令のネイティブ実行に比べてオーバーヘッドが大きくなるためである。また、使用可能なCPU命令群の異なる複数のCPU上での動作に対応したプログラムを作成する際、コンパイラはそれぞれのCPUでネイティブ実行可能な命令に最適化して実行ファイルを生成するため、エミュレーションするよりも実行効率が高くなるためである。
第2の問題点は、マイグレーション前後の仮想化サーバの何れでも使用可能なCPU命令群を仮想マシン及びゲストOS上で使用できるようにする場合、ネイティブ実行可能なCPU命令群が少ない仮想化サーバをマイグレーション先として追加し、該仮想化サーバに仮想マシンをマイグレーションすると、仮想マシン及びゲストOS上でのプログラム実行でエラーが発生する場合があることである。
その理由は、ネイティブ実行可能なCPU命令群が少ない仮想化サーバをマイグレーション先として追加したことにより、各マイグレーション先の何れでも使用可能なCPU命令群が少なくなるためである。
第3の問題点は、マイグレーション前後の仮想化サーバの何れでも使用可能なCPU命令群を仮想マシン及びゲストOS上で使用できるようにする場合、ネイティブ実行可能なCPU命令群が少ない仮想化サーバをマイグレーション先から削除し、マイグレーション先として残っている別の仮想化サーバにマイグレーションすると、仮想マシン及びゲストOS上でのプログラム実行効率が最適化されていない場合があることである。
その理由は、ネイティブ実行可能なCPU命令群が少ない仮想化サーバをマイグレーション先から削除したことにより、各マイグレーション先の何れでも使用可能なCPU命令群が多くなる場合があるが、使用可能となったCPU命令群を仮想マシンが有効活用できていない場合があるためである。
第4の問題点は、マイグレーション先となる複数の仮想化サーバの何れでも使用可能なCPU命令群をある時点で手動設定するシステムでは、マイグレーション先の追加及び削除を行う際に共通的に使用可能なCPU命令群を手動で再設定する必要があることである。
その理由は、マイグレーション先の追加及び削除に伴い、各マイグレーション先の何れでも使用可能なCPU命令群が増減するが、それを自動的に反映しないためである。
特許文献2は、異なる仮想化基盤の間でマイグレーションを行う際のVMのコンバートによるダウンタイムを短くする方法を開示しているものであり、上述の問題点を解決することはできない。また、特許文献3は、仮想化基盤の上で異なるHWアーキテクチャのVMを同時実行する方法を開示するものであり、上述の問題点を解決することはできない。
(発明の目的)
本発明の目的は、上述の課題を解決し、使用可能なCPU命令群の異なる複数の仮想化サーバ間で仮想マシンのマイグレーションを行う際、物理マシンがネイティブ実行可能なCPU命令群を有効活用できる仮想化システム、マイグレーション管理サーバ、マイグレーション管理方法、及びマイグレーション管理プログラムを提供することである。
本発明の他の目的は、仮想マシンのマイグレーション先となる仮想化サーバの増減があっても、各仮想化サーバの何れでも使用可能なCPU命令群を自動的に更新できる仮想化システム、マイグレーション管理サーバ、マイグレーション管理方法、及びマイグレーション管理プログラムを提供することである。
本発明のさらに他の目的は、仮想マシン及びゲストOS上でのプログラム実行の高速化とプログラム実行効率の向上を実現し、処理時間短縮による低消費電力化を図ることである。
本発明の第1の仮想化システムは、仮想マシンが動作する複数の仮想化サーバと、仮想マシンのマイグレーションを管理するマイグレーション管理サーバとを備え、マイグレーション管理サーバが、仮想マシンのマイグレーション先となる複数の仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を求める物理マシン命令群マネージャ管理手段を含む統合管理マネージャを備える。
本発明の第1のマイグレーション管理サーバは、仮想化サーバ上の仮想マシンのマイグレーションを管理するマイグレーション管理サーバであって、仮想マシンのマイグレーション先となる複数の仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を求める物理マシン命令群マネージャ管理手段を含む統合管理マネージャを備える。
本発明の第1のマイグレーション管理方法は、仮想化サーバ上の仮想マシンのマイグレーションを管理するマイグレーション管理サーバによるマイグレーション管理方法であって、統合管理マネージャが備える物理マシン命令群マネージャ管理手段が、仮想マシンのマイグレーション先となる複数の仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を求める物理マシン命令群マネージャ管理ステップを有する。
本発明の第1のマイグレーション管理プログラムは、仮想化サーバ上の仮想マシンのマイグレーションを管理するマイグレーション管理サーバを構成するコンピュータ上で動作するマイグレーション管理プログラムであって、統合管理マネージャが備える物理マシン命令群マネージャ管理手段に、仮想マシンのマイグレーション先となる複数の仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を求める物理マシン命令群マネージャ管理処理を実行させる。
本発明によれば使用可能なCPU命令群の異なる複数の仮想化サーバ間で仮想マシンのマイグレーションを行う際、物理マシンがネイティブ実行可能なCPU命令群を有効活用することができる。
また、本発明によれば、仮想マシンのマイグレーション先となる仮想化サーバの増減があっても、各仮想化サーバの何れでも使用可能なCPU命令群を自動的に更新できる。
さらに、本発明によれば、、仮想マシン及びゲストOS上でのプログラム実行の高速化とプログラム実行効率の向上を実現し、処理時間短縮による低消費電力化を図ることができる。
本発明の第1の実施の形態に係る仮想化システムの構成を示すブロック図である。 本発明の第1の実施の形態に係る仮想化サーバの構成を示すブロック図である。 本発明の第1の実施の形態に係るマイグレーション管理サーバの構成を示すブロック図である。 本発明の第1の実施の形態に係る物理マシン命令群マネージャ管理テーブルの構成例を示す図である。 本発明の第1の実施の形態に係るマイグレーション先マネージャ管理テーブルの構成例を示す図である。 本発明の第1の実施の形態に係る仮想化サーバAのマイグレーション先エージェント管理テーブルの構成例を示す図である。 本発明の第1の実施の形態に係る仮想化サーバCのマイグレーション先エージェント管理テーブルの構成例を示す図である。 本発明の第1の実施の形態に係る仮想化サーバDのマイグレーション先エージェント管理テーブルの構成例を示す図である。 本発明の第1の実施の形態に係る仮想マシン命令群マネージャ管理テーブルの構成例を示す図である。 本発明の第1の実施の形態に係る仮想化サーバAの仮想マシン命令群エージェント管理テーブルの構成例を示す図である。 本発明の第1の実施の形態に係る仮想化サーバCの仮想マシン命令群エージェント管理テーブルの構成例を示す図である。 本発明の第1の実施の形態に係る仮想化サーバDの仮想マシン命令群エージェント管理テーブルの構成例を示す図である。 本発明の第1の実施の形態に係る統合管理マネージャの動作を示すフローチャートである。 本発明の第1の実施の形態に係る統合管理エージェントの動作を示すフローチャートである。 本発明の第1の実施の形態に係る統合管理マネージャの動作を示すフローチャートである。 本発明の第1の実施の形態に係る統合管理マネージャの動作を示すフローチャートである。 本発明の第1の実施の形態に係る統合管理エージェントの動作を示すフローチャートである。 本発明の第1の実施の形態に係る統合管理マネージャの動作を示すフローチャートである。 本発明の第1の実施の形態に係る統合管理エージェントの動作を示すフローチャートである。 本発明の第1の実施の形態に係る統合管理マネージャの動作を示すフローチャートである。 本発明の第1の実施の形態に係る統合管理マネージャの動作を示すフローチャートである。 本発明の第1の実施の形態に係る統合管理エージェントの動作を示すフローチャートである。 本発明の第1の実施の形態に係る統合管理エージェントの動作を示すフローチャートである。 本発明の第1の実施の形態に係る統合管理エージェントの動作を示すフローチャートである。 本発明の第1の実施の形態に係る統合管理マネージャの動作を示すフローチャートである。 本発明の第1の実施の形態に係る統合管理マネージャの動作を示すフローチャートである。 本発明の実施例1に係るマイグレーション先マネージャ管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想化サーバAのマイグレーション先エージェント管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想化サーバBのマイグレーション先エージェント管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想マシン命令群マネージャ管理テーブル117の構成例を示す図である。 本発明の実施例1に係る仮想化サーバAの仮想マシン命令群エージェント管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想化サーバBの仮想マシン命令群エージェント管理テーブルの構成例を示す図である。 本発明の実施例1に係るマイグレーション先マネージャ管理テーブルの構成例を示す図出る。 本発明の実施例1に係る仮想化サーバCのマイグレーション先エージェント管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想化サーバのマイグレーション先エージェント管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想マシン命令群マネージャ管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想化サーバCの仮想マシン命令群エージェント管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想化サーバDの仮想マシン命令群エージェント管理テーブルの構成例を示す図である。 本発明の実施例1に係るマイグレーション先マネージャ管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想化サーバDのマイグレーション先エージェント管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想化サーバEのマイグレーション先エージェント管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想マシン命令群マネージャ管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想化サーバD上の仮想マシン命令群エージェント管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想化サーバEの仮想マシン命令群エージェント管理テーブルの構成例を示す図である。 本発明の実施例1に係るマイグレーション先マネージャ管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想化サーバCのマイグレーション先エージェント管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想化サーバDのマイグレーション先エージェント管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想マシン命令群マネージャ管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想化サーバCの仮想マシン命令群エージェント管理テーブルの構成例を示す図である。 本発明の実施例1に係る仮想化サーバDの仮想マシン命令群エージェント管理テーブルの構成例を示す図である。 本発明の第3及び第4の実施の形態に係る仮想化サーバの構成を示すブロック図である。 本発明の第5の実施の形態に係る仮想化サーバの構成を示すブロック図である。 本発明の第6の実施の形態に係る仮想化サーバの構成を示すブロック図である。 本発明の第7の実施の形態に係る仮想化サーバの構成を示すブロック図である。 本発明のマイグレーション管理サーバの最小限の構成を示すブロック図である。 本発明のマイグレーション管理サーバのハードウェア構成例を示すブロック図である。
本発明の上記及び他の目的、特徴及び利点を明確にすべく、添付した図面を参照しながら、本発明の実施の形態を以下に詳述する。なお、上述の本願発明の目的のほか、他の技術的課題、その技術的課題を解決する手段及びその作用効果についても、以下の実施の形態による開示によって明らかとなるものである。
なお、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
(第1の実施の形態)
本発明の第1の実施の形態について図面を参照して詳細に説明する。
図1は、本発明の第1の実施の形態による仮想化システム10の構成を示すブロック図である。図1を参照すると、本実施の形態による仮想化システム10は、マイグレーション管理サーバ100と、複数の仮想化サーバ200(200−1〜200−5)とを備える。仮想化サーバ200−1〜200−5は、説明上、仮想化サーバA〜Eとも称する。
マイグレーション管理サーバ100と各仮想化サーバ200はネットワークで接続されている。マイグレーション管理サーバ100は、配下にある各仮想化サーバ200を管理する。本実施の形態ではマイグレーション管理サーバ100配下の仮想化サーバ200が5つの場合を示しているが、仮想化サーバ200の数はこれに限定はされない。
図3は、本実施の形態によるマイグレーション管理サーバ100の構成を示すブロック図である。図3を参照すると、マイグレーション管理サーバ100は、物理マシン130の上に物理OS120を実装し、物理OS120の上に統合管理マネージャ110を実装する。
統合管理マネージャ110は、各仮想化サーバ200上で稼働する各仮想マシン260で使用可能なCPU命令群の管理を行う。また、統合管理マネージャ110は、各仮想化サーバ200上で稼働する各仮想マシン260のマイグレーション先の管理を行う機能を有する。
統合管理マネージャ110は、物理マシン命令群マネージャ管理手段111と、仮想マシンマネージャ管理手段112と、仮想マシン命令群マネージャ管理手段113と、マイグレーション先マネージャ管理手段114と、物理マシン命令群マネージャ管理テーブル115と、マイグレーション先マネージャ管理テーブル116と、仮想マシン命令群マネージャ管理テーブル117とを含む。
物理マシン命令群マネージャ管理手段111は、物理マシン命令群マネージャ管理テーブル115の管理を行うことで、仮想化サーバ200の物理マシン280で使用可能なCPU命令群を管理する機能を有する。
物理マシン命令群マネージャ管理テーブル115は、仮想化サーバ200の物理マシン280で使用可能なCPU命令群を登録するテーブルである。
ここで、図4を参照すると、図4は、物理マシン命令群マネージャ管理テーブル115の構成例を示す図である。
図4に示す”☆”は、該CPU命令群が”使用可能”であることを示す。一方、”★”は、該CPU命令群が”使用不可”であることを示す。例えば、図4の例では、仮想化サーバAの物理マシン280で使用可能なCPU命令群はCPU命令群1及びCPU命令群2となっている。
各仮想化サーバ200が実装するCPUが異なる場合、それぞれの仮想化サーバ200の物理マシン280で使用可能なCPU命令群も異なるが、各仮想化サーバ200では、特別な理由が無い限り、物理マシン280上で使用可能なCPU命令群と仮想マシン260上で使用可能なCPU命令群は同一であるものとする。
仮想マシンマネージャ管理手段112は、各仮想化サーバ200上での仮想マシン260の作成及び削除を管理する機能を有する。
マイグレーション先マネージャ管理手段114は、マイグレーション先マネージャ管理テーブル116の管理を行なうことで、各仮想マシン260のマイグレーション先を管理する機能を有する。
マイグレーション先マネージャ管理テーブル116は、各仮想マシン260のマイグレーション先を登録する。マイグレーション先マネージャ管理テーブル116の構成例を、図5に示す。
マイグレーション先マネージャ管理テーブル116は、各仮想マシン260のマイグレーション先について、”●”、”▲”、”▼”、”■”で管理する。”●”は、仮想化サーバ200が仮想マシン260のマイグレーション先として”登録済み”であることを示す。また、”▲”、”▼”、”■”は、それぞれ”登録中”、”削除中”、”削除済み”であることを示す。
仮想化サーバ200に仮想マシン260が作成されると、マイグレーション先マネージャ管理テーブル116には、該作成された仮想マシン260のマイグレーション先として、該仮想化サーバ200が登録される。この登録処理は、マイグレーション先マネージャ管理手段114が行う。
仮想マシン命令群マネージャ管理手段113は、仮想マシン命令群マネージャ管理テーブル117の管理を行なうことで、各仮想マシン260で使用可能なCPU命令群を管理する機能を有する。
仮想マシン命令群マネージャ管理テーブル117は、各仮想マシン260について、各CPU命令群の使用可否を登録するテーブルである。
ここで、仮想マシン命令群マネージャ管理テーブル117の構成例を図9に示す。
図9に示す”○”は、仮想マシン260でCPU命令群が”使用可能”であることを示す。また、”△”、”▽”、”□”は、それぞれ”使用可能保留中”、”使用不可保留中”、”使用不可”であることを示す。
仮想マシン命令群マネージャ管理テーブル117は、マイグレーション先マネージャ管理テーブル116及び物理マシン命令群マネージャ管理テーブル115の情報に基づいて設定される。
図5に示すマイグレーション先マネージャ管理テーブル116を参照すると、仮想マシンaは仮想化サーバA(仮想化サーバ200−1)で稼働していることがわかる。また、図4に示す物理マシン命令群マネージャ管理テーブル115を参照すると、仮想化サーバA(仮想化サーバ200−1)の物理マシン280で使用可能なCPU命令群は、CPU命令群1及びCPU命令群2であることがわかる。
仮想化サーバAで稼働する仮想マシンaは、仮想化サーバA(仮想化サーバ200−1)の物理マシン280で使用可能なCPU命令群を使用可能であるから、両テーブルに基づき、仮想マシンaは、CPU命令群1及びCPU命令群2を使用可能であることがわかる。
従って、図9に示す仮想マシン命令群マネージャ管理テーブル117において、仮想マシンaで使用可能なCPU命令群として、CPU命令群1及びCPU命令群2が登録されている。
同様に、両テーブルから、仮想マシンb及び仮想マシンcで使用可能なCPU命令群はCPU命令群1及びCPU命令群2であることがわかる。従って、仮想マシン命令群マネージャ管理テーブル117において、仮想マシンb及び仮想マシンc上で使用可能なCPU命令群として、CPU命令群1及びCPU命令群2が登録されている。
また、仮想マシンdについても、両テーブルから、CPU命令群2及びCPU命令群3が使用可能であることがわかる。従って、仮想マシン命令群マネージャ管理テーブル117において、仮想マシンdで使用可能なCPU命令群としてCPU命令群2及びCPU命令群3が登録されている。
統合管理マネージャ110は、後述する統合管理エージェント210との間で、各仮想マシン260のマイグレーション先、各仮想化サーバ200の物理マシン280で使用可能なCPU命令群、及び各仮想マシン260で使用可能なCPU命令群に関する情報を交換する。
図2は、本実施の形態による仮想化サーバ200の構成を示すブロック図である。図2を参照すると、仮想化サーバ200は、物理マシン280の上にHypervisor270を実装し、Hypervisor270の上にペアレントOS用仮想マシン230及び複数の仮想マシン260を実装する。また、ペアレントOS用仮想マシン230の上にHypervisorが提供する機能を管理するペアレントOS220を実装し、ペアレントOS220の上に統合管理エージェント210を実装する。
仮想マシン260上ではゲストOS250が動作し、ゲストOS250上では複数のプログラム240が実行される。
統合管理エージェント210は、物理マシン280上で使用可能なCPU命令群の取得、仮想マシン260のマイグレーション先の管理、及び仮想マシン260上で使用できるCPU命令群の管理を行う。
統合管理エージェント210は、物理マシン命令群エージェント管理手段211と、仮想マシンエージェント管理手段212と、仮想マシン命令群設エージェント管理手段213と、マイグレーション先エージェント管理手段214と、マイグレーション先エージェント管理テーブル215と、仮想マシン命令群エージェント管理テーブル216とを含む。
物理マシン命令群エージェント管理手段211は、物理マシン280上で使用可能なCPU命令群を取得する機能を有する。
仮想マシンエージェント管理手段212は、仮想マシン260の作成及び削除を管理する機能を有する。
仮想マシン命令群設エージェント管理手段213は、仮想マシン命令群エージェント管理テーブル216の管理を行うことで、仮想マシン260で使用可能なCPU命令群を管理する機能を有する。
マイグレーション先エージェント管理手段214は、マイグレーション先エージェント管理テーブル215の管理を行うことで、仮想マシン260のマイグレーション先を管理する機能を有する。
マイグレーション先エージェント管理テーブル215は、仮想化サーバ200にマイグレーション可能な仮想マシン260を登録する機能を有する。
マイグレーション先エージェント管理テーブル215は、マイグレーション管理サーバ100から通知される“マイグレーション先変更通知”に基づいて更新される。該更新作業はマイグレーション先エージェント管理手段214が行う。なお、“マイグレーション先変更通知”は、仮想マシン260のマイグレーション先の変更情報を通知するものである。
図6は、仮想化サーバA(仮想化サーバ200−1)のマイグレーション先エージェント管理テーブル215の構成例を示す図である。図6に示す記号の意味は図5と同様であるため説明を省略する。仮想化サーバA(仮想化サーバ200−1)のマイグレーション先エージェント管理テーブル215には、仮想化サーバA(仮想化サーバ200−1)にマイグレーション可能な仮想マシン260が登録される。このため、図6の例では、仮想マシンaが登録されている。
図7は、仮想化サーバC(仮想化サーバ200−3)のマイグレーション先エージェント管理テーブル215の構成例を示す図である。図7に示す記号の意味は図5と同様であるため、説明を省略する。仮想化サーバC(仮想化サーバ200−3)のマイグレーション先エージェント管理テーブル215には、仮想化サーバC(仮想化サーバ200−3)にマイグレーション可能な仮想マシン260が登録されるされる。このため、図7の例では、仮想マシンb及び仮想マシンcが登録されている。
図8は、仮想化サーバD(仮想化サーバ200−4)のマイグレーション先エージェント管理テーブル215の構成例を示す図である。図8に示す記号の意味は図5と同様であるため、説明を省略する。仮想化サーバD(仮想化サーバ200−4)のマイグレーション先エージェント管理テーブル215には、仮想化サーバD(仮想化サーバ200−4)にマイグレーション可能な仮想マシン260が登録される。このため、図8の例では、仮想マシンdが登録されている。
仮想マシン命令群エージェント管理テーブル216は、仮想マシン260で使用可能なCPU命令群を登録する機能を有する。仮想マシン命令群エージェント管理テーブル216は、仮想マシン命令群エージェント管理手段213により管理される。
仮想マシン命令群エージェント管理テーブル216は、マイグレーション管理サーバ100から通知される“CPU命令群変更通知”に基づいて更新される。該更新作業は仮想マシン命令群エージェント管理手段213が行う。なお、”CPU命令群変更通知”は、仮想マシン260で使用可能なCPU命令群の変更情報を通知するものである。
図10は、仮想化サーバA(仮想化サーバ200−1)の仮想マシン命令群エージェント管理テーブル216の構成例を示す図である。図10に示す記号の意味は図9と同様であるため、詳細については省略する。仮想化サーバA(仮想化サーバ200−1)の仮想マシン命令群エージェント管理テーブル216には、仮想化サーバA(仮想化サーバ200−1)にマイグレーション可能な仮想マシン260が登録される。このため、図10の例では、仮想マシンaが登録されている。
図11は、仮想化サーバC(仮想化サーバ200−3)の仮想マシン命令群エージェント管理テーブル216の構成例を示す図である。図11に示す記号の意味は図9と同様であるため、詳細については省略する。仮想化サーバC(仮想化サーバ200−3)の仮想マシン命令群エージェント管理テーブル216には、仮想化サーバC(仮想化サーバ200−3)にマイグレーション可能な仮想マシン260が登録される。このため、図11の例では、仮想マシンb及び仮想マシンcが登録されている。
図12は、仮想化サーバD(仮想化サーバ200−4)の仮想マシン命令群エージェント管理テーブル216の構成例を示す図である。図12に示す記号の意味は図9と同様であるため、詳細については省略する。仮想化サーバD(仮想化サーバ200−4)の仮想マシン命令群エージェント管理テーブル216には、仮想化サーバD(仮想化サーバ200−4)にマイグレーション可能な仮想マシン260が登録される。このため、図12の例では、仮想マシンdが登録されている。
(第1の実施の形態の動作の説明)
次に、本実施の形態による仮想化システム10の動作について、図面を参照して詳細に説明する。
(仮想化サーバ200の追加又は削除時の動作の説明)
図13及び図14は、マイグレーション管理サーバ100において管理対象とする仮想化サーバ200を追加したときにおける、マイグレーション管理サーバ100の統合管理マネージャ110及び該仮想化サーバ200の統合管理マネージャ210の動作を示すフローチャートである。
以下、図13、図14を参照しながら詳細な動作を説明する。
まず、マイグレーション管理サーバ100において管理対象とする仮想化サーバ200を追加すると、物理マシン命令群マネージャ管理手段111が、該仮想化サーバ200に対し、使用可能なCPU命令群を問い合わせる(ステップA101)。以下、この問い合わせを“物理マシン命令群問合せ”と称する。
仮想化サーバ200は、“物理マシン命令群問合せ”を受けると、物理マシン命令群エージェント管理手段211が、ペアレントOS220、ペアレントOS用仮想マシン230、及びHypervisor270を経由して、物理マシン280で使用可能なCPU命令群を取得する(ステップB101)。
次いで、物理マシン命令群エージェント管理手段211は、取得した該CPU命令群をマイグレーション管理サーバ100に回答する(ステップB102)。以下、この回答を”物理マシン命令群回答”と称する。
次いで、マイグレーション管理サーバ100は、“物理マシン命令群回答”を受け取ると、物理マシン命令群マネージャ管理手段111が、“物理マシン命令群回答”に基づいて、該仮想化サーバ200の物理マシン280で使用可能なCPU命令群を物理マシン命令群マネージャ管理テーブル115に登録する(ステップA102)。
図15は、マイグレーション管理サーバ100において、管理対象としている仮想化サーバ200を管理対象から削除した時の動作を示すフローチャートである。
マイグレーション管理サーバ100において、管理対象としている仮想化サーバ200を削除すると、物理マシン命令群マネージャ管理手段111が、削除対象の仮想化サーバ200に関する情報を物理マシン命令群マネージャ管理テーブル115から削除する(ステップC101)。
以上の動作を各仮想化サーバ200に対して繰り返すことにより、図4に示す物理マシン命令群マネージャ管理テーブル115が作成される。
(仮想化マシン260の作成及び削除時の動作の説明)
図16は、仮想化サーバ200に仮想マシン260を作成する時のマイグレーション管理サーバ100の統合管理マネージャ110の動作を示すフローチャートである。また、図17は“仮想マシン作成通知”を受信した時の仮想化サーバ200の統合管理マネージャ210動作を示すフローチャートである。
以下、図16、図17を参照しながら、仮想化サーバ200に仮想マシン260を作成する時の詳細な動作を説明する。
まず、仮想マシン260の作成処理は、仮想マシンマネージャ管理手段112が開始する。
仮想マシンマネージャ管理手段112が仮想マシン260の作成処理を実行すると、マイグレーション先マネージャ管理手段114が、仮想マシン260が作成される仮想化サーバ200を、マイグレーション先マネージャ管理テーブル116に登録する(ステップD101)。この結果、該仮想マシン260に対して、作成先の仮想化サーバ200が、マイグレーション先として”登録済み”となる。
次いで、仮想マシン命令群マネージャ管理手段113が、作成する仮想マシン260の情報を仮想マシン命令群マネージャ管理テーブル117に登録する(ステップD102)。
具体的には、物理マシン命令群マネージャ管理手段111はまず、物理マシン命令群マネージャ管理テーブル115を参照して、仮想マシン260を作成する仮想化サーバ200の物理マシン280で使用可能なCPU命令群を特定する。次に、仮想マシン命令群マネージャ管理手段113は、特定した該CPU命令群を、作成する仮想マシン260で使用可能なCPU命令群として仮想マシン命令群マネージャ管理テーブル117に登録する。
次いで、マイグレーション先マネージャ管理手段114が、仮想マシン260を作成する仮想化サーバ200に対し、“仮想マシン作成通知”を行う(ステップD103)。
仮想化サーバ200は、“仮想マシン作成通知”を受信すると、仮想マシンエージェント管理手段212が仮想マシン260を作成する(ステップE101)。
次いで、マイグレーション先エージェント管理手段214が、自サーバを、仮想マシン260のマイグレーション先としてマイグレーション先エージェント管理テーブル215に登録する(ステップE102)。
次いで、仮想マシン命令群エージェント管理手段213が、自サーバの物理マシン280で使用可能なCPU命令群を、作成した該仮想マシン260で使用可能なCPU命令群として仮想マシン命令群エージェント管理テーブル216に登録する(ステップE103)。
図18は、仮想化サーバ200から仮想マシン260を削除するときのマイグレーション管理サーバ100の動作を示すフローチャートである。また、図19は、“仮想マシン削除通知”を受信した時の仮想化サーバ200の動作を示すフローチャートである。
以下、図18、図19を参照しながら、仮想化サーバ200から仮想マシン260を削除するときの詳細な動作を説明する。
まず、仮想マシン260の削除処理は、仮想マシンマネージャ管理手段112が開始する。
仮想マシンマネージャ管理手段112が仮想化サーバ200上の仮想マシン260の削除処理を実行すると、マイグレーション先マネージャ管理手段114が、マイグレーション先マネージャ管理テーブル116から、削除対象の仮想マシン260の情報を削除する(ステップF101)。
次いで、仮想マシン命令群マネージャ管理手段113が、仮想マシン命令群マネージャ管理テーブル117から、削除対象の仮想マシン260に関する情報を削除する(ステップF102)。
次いで、マイグレーション先マネージャ管理手段114が、削除対象の仮想マシン260が稼働している仮想化サーバ200に対し、“仮想マシン削除通知”を行う(ステップF103)。
仮想化サーバ200は、“仮想マシン削除通知”を受信すると、仮想マシンエージェント管理手段212が対象の仮想マシン260を削除する(ステップG101)。
次いで、マイグレーション先エージェント管理手段214が、マイグレーション先エージェント管理テーブル215から、削除した仮想マシン260に関する情報を削除する(ステップG102)。
次いで、仮想マシン命令群エージェント管理手段213が、仮想マシン命令群エージェント管理テーブル216から、削除した仮想マシン260に関する情報を削除する(ステップG103)。
以上の動作を各仮想化サーバ200及び各仮想マシン260に対して繰り返すことにより、図5のマイグレーション先マネージャ管理テーブル116、図6、図7及び図8のマイグレーション先エージェント管理テーブル215、図9の仮想マシン命令群マネージャ管理テーブル117、図10、図11及び図12の仮想マシン命令群エージェント管理テーブル216が作成される。
(仮想化マシン260のマイグレーション先の追加及び削除時の動作の説明)
図20は、仮想マシン260のマイグレーション先を追加する時の、マイグレーション管理サーバ100の統合管理マネージャ110の動作を示すフローチャートである。
図20を参照すると、まず、物理マシン命令群マネージャ管理手段111と仮想マシン命令群マネージャ管理手段113が、それぞれ、物理マシン命令群マネージャ管理テーブル115と仮想マシン命令群マネージャ管理テーブル117を参照して、仮想マシン260のマイグレーション先を追加した場合に、マイグレーション先となる各仮想化サーバ200の何れでも使用可能なCPU命令群を求める(ステップH101)。
次いで、仮想マシン命令群マネージャ管理手段113が、マイグレーション先となる各仮想化サーバ200の何れでも使用可能なCPU命令群が存在するか否かを確認する(ステップH102)。マイグレーション先となる各仮想化サーバ200の何れでも使用可能なCPU命令群が無い場合(ステップH102”NO”)、統合管理マネージャ110は、マイグレーション先の追加はせずに処理を終了する(ステップH103)。
マイグレーション先となる各仮想化サーバ200の何れでも使用可能なCPU命令群がある場合(ステップH102”YES”)、マイグレーション先マネージャ管理手段114が、該仮想マシン260のマイグレーション先となる仮想化サーバ200に“マイグレーション先変更通知”を通知する(ステップH104)。
また、仮想マシン命令群マネージャ管理手段113が、該CPU命令群を、マイグレーション先となる仮想化サーバに“CPU命令群変更通知”で通知する(ステップH105)。
次いで、仮想マシン命令群マネージャ管理手段113は、マイグレーション先を追加した場合、該仮想マシン260が使用可能なCPU命令群が減少するかチェックする(ステップH106)。
使用可能なCPU命令群が減少しない場合(ステップH106”NO”)、マイグレーション先マネージャ管理手段114が、マイグレーション先マネージャ管理テーブル116において、該仮想マシン260に対する該仮想化サーバ200(マイグレーション先として追加する仮想化サーバ200)を、”登録済”に設定する(ステップH107)。
使用可能なCPU命令群が減少する場合(ステップH106”YES”)、統合管理マネージャ110は、仮想マシン260のマイグレーション先となるすべての仮想化サーバ200に対し“マイグレーション先変更通知”及び“CPU命令群変更通知”を通知したか否かをチェックする(ステップH108)。
全てに通知済みの場合(ステップH108”YES”)、マイグレーション先マネージャ管理手段114が、マイグレーション先マネージャ管理テーブル116において、マイグレーション先となる各仮想化サーバ200を、“登録済”に設定する(ステップH109)。
また、仮想マシン命令群マネージャ管理手段113が、仮想マシン命令群マネージャ管理テーブル117において、マイグレーション先を追加することによって該仮想マシンで使用不可となるCPU命令群を、“使用不可”に設定する(ステップH110)。
各仮想化サーバ200の全てに通知済みでない場合(ステップH108”NO”)、マイグレーション先マネージャ管理手段114が、マイグレーション先マネージャ管理テーブル116において、通知済みでない仮想化サーバ200を”登録中”に設定する(ステップH111)。なお、通知済みの仮想化サーバ200については、ステップH109同様”登録済”に設定する。
また、仮想マシン命令群マネージャ管理手段113が、仮想マシン命令群マネージャ管理テーブル117において、マイグレーション先を追加することによって該仮想マシン260で使用不可となるCPU命令群を、“使用不可保留中”に設定する(ステップH112)。
図21は、仮想マシン260の任意のマイグレーション先を削除する時の、マイグレーション管理サーバ100の統合管理マネージャ110の動作を示すフローチャートである。
図21を参照すると、まず、物理マシン命令群マネージャ管理手段111と仮想マシン命令群マネージャ管理手段113が、それぞれ、物理マシン命令群マネージャ管理テーブル115と仮想マシン命令群マネージャ管理テーブル117を参照して、仮想マシン260の任意のマイグレーション先を削除した場合に、削除後に残った該仮想マシン260のマイグレーション先の何れでも使用可能なCPU命令群を求める(ステップI101)。
次いで、マイグレーション先マネージャ管理手段114が、削除後の該仮想マシン260のマイグレーション先である仮想化サーバ200に“マイグレーション先変更通知”を通知する(ステップI102)。
次いで、仮想マシン命令群マネージャ管理手段113が、任意のマイグレーション先を削除した場合、該仮想マシン260が使用可能なCPU命令群が増加するかチェックする(ステップI103)。
使用可能なCPU命令群が増加しない場合(ステップI103”NO”)、マイグレーション先マネージャ管理手段114が、マイグレーション先マネージャ管理テーブル116において、該仮想マシン260に対する該仮想化サーバ200(マイグレーション先から削除する仮想化サーバ200)を、“削除済”に設定する(ステップI104)。
使用可能なCPU命令群が増加する場合(ステップI103”YES”)、仮想マシン命令群マネージャ管理手段113が、マイグレーション先の各仮想化サーバ200に“CPU命令群変更通知”を通知する(ステップI105)。
次いで、統合管理マネージャ110は、マイグレーション先の全ての仮想化サーバ200に対し“マイグレーション先変更通知”及び“CPU命令群変更通知”を通知しかた否かをチェックする(ステップI106)。
全てに通知済みの場合(ステップI106”YES”)、マイグレーション先マネージャ管理手段114が、マイグレーション先マネージャ管理テーブル116において、該仮想マシン260に対する該仮想化サーバ200(マイグレーション先から削除する仮想化サーバ200)を、“削除済”に設定する(ステップI107)。
また、仮想マシン命令群マネージャ管理手段113が、仮想マシン命令群マネージャ管理テーブル117において、削除後において該仮想マシンで使用可能となるCPU命令群を、“使用可能”に設定する(ステップI108)。
マイグレーション先の全ての仮想化サーバ200に通知済みでない場合(ステップI106”NO”)、マイグレーション先マネージャ管理手段114が、マイグレーション先マネージャ管理テーブル116において、該仮想マシン260に対する該仮想化サーバ200(マイグレーション先から削除する仮想化サーバ200)を、“削除中”に設定する(ステップI109)。
また、仮想マシン命令群マネージャ管理手段113が、仮想マシン命令群マネージャ管理テーブル117において、削除後において該仮想マシンで使用可能となるCPU命令群を、“使用可能保留中”に設定する(ステップI110)。
図22は、“マイグレーション先変更通知”を受信した時の、仮想化サーバ200の統合管理エージェント210の動作を示すフローチャートである。
“マイグレーション先変更通知”が任意の仮想マシン260のマイグレーション先の追加の通知を含む場合、マイグレーション先エージェント管理手段214が、マイグレーション先エージェント管理テーブル215において、該仮想マシン260に対する追加のマイグレーション先を、“登録済”に設定する(ステップJ101)。
次いで、“マイグレーション先変更通知”が任意の仮想マシン260のマイグレーション先の削除の通知を含む場合、仮想マシンエージェント管理手段212が、マイグレーション先を追加する仮想マシン260が稼働中であるかチェックする(ステップJ102)。
該仮想マシン260が稼働中でない場合(ステップJ102”NO”)、マイグレーション先エージェント管理手段214が、マイグレーション先マネージャ管理テーブル116において、該仮想マシン260に対する該仮想化サーバ200(マイグレーション先から削除する仮想化サーバ200)を、““削除済”に設定し(ステップJ103)、マイグレーション管理サーバ100に“マイグレーション先更完了通知”を通知する(ステップJ104)。
該仮想マシン260が稼働中の場合(ステップJ102”YES”)、マイグレーション先エージェント管理手段214が、マイグレーション先マネージャ管理テーブル116において、該仮想マシン260に対する該仮想化サーバ200(マイグレーション先から削除する仮想化サーバ200)を、“削除中”に設定する(ステップJ105)。
図23は、“CPU命令群変更通知”を受信した時の、仮想化サーバ200の統合管理エージェント210の動作を示すフローチャートである。
“CPU命令群変更通知”が任意の仮想マシン260において使用可能となるCPU命令群の通知を含む場合、仮想マシン命令群エージェント管理手段213が、仮想マシン命令群エージェント管理テーブル216において、該仮想マシン260に対する該CPU命令群(該仮想マシン260使用可能となるCPU命令群)を“使用可能”に設定する(ステップK101)。
次いで、“CPU命令群変更通知”が任意の仮想マシン260において使用不可となるCPU命令群の通知を含む場合、仮想マシンエージェント管理手段212が、該仮想マシン260が稼働中であるかチェックする(ステップK102)。
該仮想マシン260が稼働中でない場合(ステップK102”NO”)、仮想マシン命令群エージェント管理手段213が、仮想マシン命令群エージェント管理テーブル216において、該仮想マシン260に対する該CPU命令群(該仮想マシン260使用可能となるCPU命令群)を“使用不可”に更新し(ステップK103)、マイグレーション管理サーバ100に“CPU命令群変更完了通知”を通知する(ステップK104)。
該仮想マシン260が稼働中の場合(ステップK102”YES”)、仮想マシン命令群エージェント管理手段213が、仮想マシン命令群エージェント管理テーブル216において、該仮想マシン260に対する該CPU命令群(該仮想マシン260で使用不可となるCPU命令群)を“使用不可保留中”に設定する(ステップK105)。
図24は、仮想マシン260終了時の仮想化サーバ200の統合管理エージェント210の動作を示すフローチャートである。
図24を参照すると、まず、仮想マシンエージェント管理手段212が、仮想マシン260の終了を検出し、次いで、仮想マシン命令群エージェント管理手段213が、仮想マシン命令群エージェント管理テーブル216を参照して、終了した仮想マシン260について“使用不可保留中”となっているCPU命令群があるか否かをチェックする(ステップL101)。
“使用不可保留中”のCPU命令群がある場合(ステップL101”YES”)、仮想マシン命令群エージェント管理手段213は、仮想マシン命令群エージェント管理テーブル216において、終了した該仮想マシン260に対する該CPU命令群(“使用不可保留中”のCPU命令群)を“使用不可”に設定し(ステップK101)、次いで、マイグレーション管理サーバ100に“CPU命令群完了通知”を通知する(ステップL103)。
“使用不可保留中”のCPU命令群が無い場合は、ステップL104に進む(ステップL101”NO”)。
次に、マイグレーション先エージェント管理手段214が、マイグレーション先エージェント管理テーブル215を参照して、終了した仮想マシン260について“削除中”となっているマイグレーション先があるか否かをチェックする(ステップL104)。
“削除中”のマイグレーション先がある場合(ステップL104”YES”)、マイグレーション先エージェント管理手段214は、マイグレーション先エージェント管理テーブル215において、終了した該仮想マシン260に対する該仮想化サーバ200(終了した仮想マシン260について”削除中”となっている仮想化サーバ200)を“削除済”に設定し(ステップL105)、次いで、マイグレーション管理サーバ100に“マイグレーション先変更完了通知”をする(ステップL105)。
“削除中”のマイグレーション先が無い場合は、処理を終了する(ステップL104”NO”)。
図25は、仮想化サーバ200から“CPU命令群変更完了通知”を受信した時のマイグレーション管理サーバ100の統合管理マネージャ110の動作を示すフローチャートである。
統合管理マネージャ110が仮想化サーバ200の統合管理エージェント210から“CPU命令群変更完了通知”を受信すると、仮想マシン命令群マネージャ管理手段113が、“CPU命令群変更通知”を通知した全ての仮想化サーバ200から“CPU命令群変更完了通知”を受信したか否かをチェックする(ステップM101)。
全ての仮想化サーバ200から“CPU命令群変更完了通知”を受信している場合(ステップM101”YES”)、仮想マシン命令群マネージャ管理手段113は、仮想マシン命令群マネージャ管理テーブル117において、“CPU命令群変更完了通知”に係る仮想マシン260に対し“使用不可保留中”となっているCPU命令群を、“使用不可”に設定する。
全ての仮想化サーバ200から“CPU命令群変更完了通知”を受信していない場合は、処理を終了する(ステップM101”NO”)。
図26は、仮想化サーバ200から“マイグレーション先変更完了通知”を受信した時のマイグレーション管理サーバ100の統合管理マネージャ110の動作を示すフローチャートである。
統合管理マネージャ110が仮想化サーバ200の統合管理エージェント210から“マイグレーション先変更完了通知”を受信すると、マイグレーション先マネージャ管理手段114が、“マイグレーション先変更通知”を通知した全ての統合管理エージェント210から“マイグレーション先変更完了通知”を受信したか否かをチェックする(ステップN101)。
全ての仮想化サーバ200から“マイグレーション先変更完了通知”を受信している場合(ステップN101”YES”)、マイグレーション先マネージャ管理手段114は、マイグレーション先マネージャ管理テーブル116において、“マイグレーション先変更完了通知”に係る仮想マシン260に対し“登録中”となっている仮想化サーバ200を、“登録済”に設定する。
全ての仮想化サーバ200から“マイグレーション先変更完了通知”を受信していない場合は、処理を終了する(ステップN101”NO”)。
次に、具体的な実施例を用いて本実施の形態の動作を説明する。
本実施例では、以下の順序による動作を行い、この時におけるマイグレーション先マネージャ管理テーブル116、マイグレーション先エージェント管理テーブル215、仮想マシン命令群マネージャ管理テーブル117、仮想マシン命令群エージェント管理テーブル216の変化を示しながら、本発明の動作について具体的に説明する。
(1)ステップS11:仮想マシンaのマイグレーション先に仮想化サーバB(仮想化サーバ200−2)を追加する。
(2)ステップS12:仮想マシンbのマイグレーション先に仮想化サーバD(仮想化サーバ200−4)を追加する。
(3)ステップS13:仮想マシンdのマイグレーション先に仮想化サーバE(仮想化サーバ200−5)を追加する。
(4)ステップS14:仮想マシンbのマイグレーション先から仮想化サーバC(仮想化サーバ200−3)を削除する。
なお、マイグレーション管理サーバ100のマイグレーション先マネージャ管理テーブル116及び仮想マシン命令群マネージャ管理テーブル117は、それぞれ図5、図9の状態であるものとする。
また、仮想化サーバA(仮想化サーバ200−1)、仮想化サーバC(仮想化サーバ200−3)、仮想化サーバD(仮想化サーバ200−4)の各マイグレーション先エージェント管理テーブル215は、それぞれ図6、図7、及び図8の状態であるものとする。
また、仮想化サーバA(仮想化サーバ200−1)、仮想化サーバC(仮想化サーバ200−3)、仮想化サーバD(仮想化サーバ200−4)の各仮想マシン命令群エージェント管理テーブル216は、それぞれ図10、図11、及び図12状態であるものとする。
まず、ステップS11の動作について説明する。
図27は、仮想マシンaのマイグレーション先に仮想化サーバB(仮想化サーバ200−2)を追加する際のマイグレーション先マネージャ管理テーブル116の変化を示している。
また、図28は、仮想マシンaのマイグレーション先に仮想化サーバB(仮想化サーバ200−2)を追加する際の、仮想化サーバA(仮想化サーバ200−1)のマイグレーション先エージェント管理テーブル215の変化を示している。
また、図29は、仮想マシンaのマイグレーション先に仮想化サーバB(仮想化サーバ200−2)を追加する際の、仮想化サーバB(仮想化サーバ200−2)のマイグレーション先エージェント管理テーブル215の変化を示している。
また、図30は、仮想マシンaのマイグレーション先に仮想化サーバB(仮想化サーバ200−2)を追加する際の、仮想マシン命令群マネージャ管理テーブル117の変化を示している。
また、図31は、仮想マシンaのマイグレーション先に仮想化サーバB(仮想化サーバ200−2)を追加する際の、仮想化サーバA(仮想化サーバ200−1)の仮想マシン命令群エージェント管理テーブル216の変化を示している。
また、図32は、仮想マシンaのマイグレーション先に仮想化サーバB(仮想化サーバ200−2)を追加する際の、仮想化サーバB(仮想化サーバ200−2)の仮想マシン命令群エージェント管理テーブル216の変化を示している。
図27、図28、図29、図30、図31及び図32において、仮想化サーバA(仮想化サーバ200−1)に仮想マシンaが作成された時点では、仮想マシンaのマイグレーション先は仮想化サーバA(仮想化サーバ200−1)だけとなる。
従って、図27、図28では、仮想マシンaに係る各仮想化サーバ200のうち、仮想化サーバA(仮想化サーバ200−1)だけが登録済み(”●”)となっており、他の仮想化サーバ200は削除済み(”■”)となっている。
また、仮想化サーバA(仮想化サーバ200−1)に仮想マシンaが作成された時点では、仮想マシンaで使用可能なCPU命令群は、仮想化サーバA(仮想化サーバ200−1)の物理マシン280上で使用可能なCPU命令群と同じである。図4に示す物理マシン命令群マネージャ管理テーブル115を参照すると、仮想化サーバA(仮想化サーバ200−1)の物理マシン280上で使用可能なCPU命令群はCPU命令群1及びCPU命令群2であるため、図30では、仮想マシンaに係る各CPU命令群のうち、CPU命令群1及びCPU命令群2が使用可能(”☆”)となっている。
仮想マシンaのマイグレーション先に仮想化サーバB(仮想化サーバ200−2)が追加されると、仮想マシンaで使用可能なCPU命令群は、仮想化サーバA(仮想化サーバ200−1)及び仮想化サーバB(仮想化サーバ200−2)の何れの物理マシン280でも使用可能なCPU命令群となる。仮想マシンaは、仮想化サーバA(仮想化サーバ200−1)、仮想化サーバB(仮想化サーバ200−2)の何れにもマイグレーションされる可能性があるからである。
図4に示す物理マシン命令群マネージャ管理テーブル115を参照すると、仮想化サーバA(仮想化サーバ200−1)の物理マシン280上で使用可能なCPU命令群は、CPU命令群1及びCPU命令群2である。また、仮想化サーバB(仮想化サーバ200−2)の物理マシン280上で使用可能なCPU命令群は、CPU命令群1、CPU命令群2及びCPU命令群3である。
従って、仮想化サーバA(仮想化サーバ200−1)及び仮想化サーバB(仮想化サーバ200−2)の何れの物理マシン280上でも使用可能なCPU命令群は、CPU命令群はCPU命令群1及びCPU命令群2となる。このため、仮想マシンaのマイグレーション先に仮想化サーバB(仮想化サーバ200−2)を追加したしても、仮想マシンa上で使用可能なCPU命令群に変化は無いため、仮想マシン命令群マネージャ管理テーブル117も変化が無い(図30)。
仮想マシンaのマイグレーション先に仮想化サーバB(仮想化サーバ200−2)が追加されると、マイグレーション管理サーバ100の統合管理マネージャ110では、仮想マシン命令群マネージャ管理手段113が、仮想マシンaのマイグレーション先である仮想化サーバA(仮想化サーバ200−1)及び仮想化サーバB(仮想化サーバ200−2)の各統合管理エージェント210に対して、“CPU命令群変更通知”を通知する。CPU命令群変更通知”は、仮想マシン260で使用可能なCPU命令群の変更情報を通知するものである。
該通知を受け取った各統合管理エージェント210では、仮想マシン命令群エージェント管理手段213が、該通知に基づいて仮想マシン命令群エージェント管理テーブル216の情報を更新する。この点、仮想化サーバA(仮想化サーバ200−1)の仮想マシン命令群エージェント管理テーブル216には変化は無い(図31)。
一方、仮想化サーバB(仮想化サーバ200−2)の仮想マシン命令群エージェント管理テーブル216では、仮想マシンaで使用可能なCPU命令群が新規に登録される(図32)。具体的には、CPU命令群1及びCPU命令群2の使用可否が使用可能(”○”)で登録され、それ以外のCPU命令群の使用可否は使用不可(”□”)で登録される。
また、仮想マシンaのマイグレーション先に仮想化サーバB(仮想化サーバ200−2)が追加されても、仮想マシンaで使用可能なCPU命令群に変化が無いため、仮想化サーバB(仮想化サーバ200−2)をマイグレーション先として登録することに問題はない。このため、マイグレーション先マネージャ管理手段114は、マイグレーション先マネージャ管理テーブル116において、仮想マシンaに対する仮想化サーバB(仮想化サーバ200−2)を”削除済み”(”■”)から”登録済み”(”●”)に更新する(図27)。
一方で、仮想マシンaのマイグレーション先に仮想化サーバB(仮想化サーバ200−2)が追加されると、統合管理マネージャ110のマイグレーション先エージェント管理手段214が、“マイグレーション先変更通知”を、マイグレーション先である仮想化サーバA(仮想化サーバ200−1)及び仮想化サーバB(仮想化サーバ200−2)の各統合管理エージェント210に通知する。“マイグレーション先変更通知”は、仮想マシン260のマイグレーション先の変更情報を通知するものである。
該通知を受け取った各仮想化サーバ200の統合管理エージェント210では、マイグレーション先エージェント管理手段214が、該通知に基づいて、マイグレーション先エージェント管理テーブル215の情報を更新する。
この点、仮想化サーバA(仮想化サーバ200−1)のマイグレーション先エージェント管理テーブル215では、仮想マシンaに対する仮想化サーバB(仮想化サーバ200−2)が”削除済み”(”■”)から”登録済み”(”●”)に更新される(図28)。
一方、仮想化サーバB(仮想化サーバ200−2)のマイグレーション先エージェント管理テーブル215では、仮想マシンaのマイグレーション先が追加される(図29)。具体的には、仮想マシンaに対して、仮想化サーバA(仮想化サーバ200−1)及び仮想化サーバB(仮想化サーバ200−2)は”登録済み”(”●”)に設定され、仮想化サーバC(仮想化サーバ200−3)、仮想化サーバD(仮想化サーバ200−4)、仮想化サーバE(仮想化サーバ200−5)は”削除済み”(”■”)に設定される。
次に、ステップS12の動作について説明する。このステップでは、仮想マシンbのマイグレーション先に仮想化サーバD(仮想化サーバ200−4)を追加する。
図33は、ステップS12における、マイグレーション管理サーバ100のマイグレーション先マネージャ管理テーブル116の変化を示す図である。
図34は、ステップS12における、仮想化サーバC(仮想化サーバ200−3)のマイグレーション先エージェント管理テーブル215の変化を示す図である。
図35は、ステップS12における、仮想化サーバD(仮想化サーバ200−4)のマイグレーション先エージェント管理テーブル215の変化を示す図である。
図36は、ステップS12における、マイグレーション管理サーバ100の仮想マシン命令群マネージャ管理テーブル117の変化を示す図である。
図37は、ステップS12における、仮想化サーバC(仮想化サーバ200−3)の仮想マシン命令群エージェント管理テーブル216の変化を示す図である。
図38は、ステップS12における、仮想化サーバD(仮想化サーバ200−4)の仮想マシン命令群エージェント管理テーブル216の変化を示す図である。
図33、図34、図35、図36、図37及び図38において、仮想化サーバC(仮想化サーバ200−3)に仮想マシンbが作成された時点では、仮想マシンbのマイグレーション先は仮想化サーバC(仮想化サーバ200−3)だけとなる。このため、この時点では、マイグレーション先マネージャ管理テーブル116は、仮想マシンbのマイグレーション先の登録状態は、仮想化サーバC(仮想化サーバ200−3)だけが”登録済み”(”●”)となっており、他の仮想化サーバ200は”削除済み”(”■”)となっている(図33)。
また、仮想化サーバC(仮想化サーバ200−3)に仮想マシンbが作成された時点では、仮想マシンbで使用可能なCPU命令群は、仮想化サーバC(仮想化サーバ200−3)の物理マシン280で使用可能なCPU命令群となる。
図4に示す物理マシン命令群マネージャ管理テーブル115を参照すると、仮想化サーバC(仮想化サーバ200−3)の物理マシン280で使用可能なCPU命令群は、CPU命令群1及びCPU命令群2である。従って、CPU命令群1及びCPU命令群2が”使用可能”(”☆”)、CPU命令群3及びCPU命令群4が“使用不可”(”★“)となっているため、図36では、仮想マシンbに係る各CPU命令群のうち、CPU命令群1及びCPU命令群2が”使用可能”(”○“)となっている。
仮想マシンbのマイグレーション先に仮想化サーバD(仮想化サーバ200−4)を追加すると、仮想マシンbで使用可能なCPU命令群は、仮想化サーバC(仮想化サーバ200−3)及び仮想化サーバD(仮想化サーバ200−4)の何れの物理マシン280上でも使用可能なCPU命令群となる。仮想マシンbは仮想化サーバC(仮想化サーバ200−3)、仮想化サーバD(仮想化サーバ200−4)の何れにもマイグレーションされる可能性があるからである。
図4に示す物理マシン命令群マネージャ管理テーブル115を参照すると、仮想化サーバC(仮想化サーバ200−3)の物理マシン280で使用可能なCPU命令群は、CPU命令群1及びCPU命令群2である。また、仮想化サーバD(仮想化サーバ200−4)の物理マシン280で使用可能なCPU命令群は、CPU命令群2及びCPU命令群3である。
従って、仮想化サーバC(仮想化サーバ200−3)及び仮想化サーバD(仮想化サーバ200−4)の何れの物理マシン280でも使用可能なCPU命令群は、CPU命令群2となる。このため、CPU命令群1は”使用不可”となり、仮想マシン命令群マネージャ管理テーブル117では、仮想マシンbに対するCPU命令群1の使用可否が、”使用可能”(”○”)から”使用不可保留中”(”▽”)に更新される(図36)。
仮想マシンbのマイグレーション先に仮想化サーバD(仮想化サーバ200−4)が追加されると、統合管理マネージャ110の仮想マシン命令群マネージャ管理手段113が、仮想化サーバC(仮想化サーバ200−3)及び仮想化サーバD(仮想化サーバ200−4)の各統合管理エージェント210に対して、“CPU命令群変更通知”を通知する。CPU命令群変更通知”は、仮想マシン260上で使用可能なCPU命令群の変更情報を通知するものである。
該通知を受け取った各統合管理エージェント210では、仮想マシン命令群エージェント管理手段213が、仮想マシン命令群エージェント管理手段213が、該通知に基づいて仮想マシン命令群エージェント管理テーブル216の情報を更新する。
この点、仮想化サーバC(仮想化サーバ200−3)の仮想マシン命令群エージェント管理テーブル216では、仮想マシンbに対するCPU命令群1の使用可否が”使用可能”(”○”)から”使用不可保留中”(”▽“)に更新される(図37)。
一方、仮想化サーバD(仮想化サーバ200−4)の仮想マシン命令群エージェント管理テーブル216では、仮想マシンb上で使用可能なCPU命令群が新規に登録される(図38)。具体的には、CPU命令群1の使用可否が”使用可能”(”○”)で登録され、それ以外のCPU命令群の使用可否は”使用不可”(”□”)で登録される。
また、仮想マシンbのマイグレーション先に仮想化サーバD(仮想化サーバ200−4)が追加されると、統合管理エージェント210から統合管理マネージャ110に“CPU命令群変更完了通知”が通知される。
また、仮想マシンbのマイグレーション先に仮想化サーバD(仮想化サーバ200−4)が追加されると、仮想マシンb上で使用可能なCPU命令群が減少する。
このため、統合管理マネージャ110上のマイグレーション先マネージャ管理テーブル116上では、仮想マシンbに対する仮想化サーバD(仮想化サーバ200−4)のマイグレーション先の登録が、即時に”削除済み”(”■“)から”登録済み”(”●“)には更新されず、”削除済み”(”■“)から登録中(”▲“)に更新される(図33)。
一方で、仮想マシンbのマイグレーション先に仮想化サーバD(仮想化サーバ200−4)が追加されると、統合管理マネージャ110のマイグレーション先エージェント管理手段214が、“マイグレーション先変更通知”を、マイグレーション先である仮想化サーバC(仮想化サーバ200−3)及び仮想化サーバD(仮想化サーバ200−4)上の統合管理エージェント210に通知する。
該通知を受け取った各統合管理エージェント210では、該通知に基づいて、マイグレーション先エージェント管理テーブル215の情報を更新する。
この点、仮想化サーバC(仮想化サーバ200−3)のマイグレーション先エージェント管理テーブル215では、仮想マシンbに対する仮想化サーバC(仮想化サーバ200−3)のマイグレーション先の登録が”削除済み”(”■”)から”登録中”(”▲”)に更新される(図34)。この登録中の状態は、仮想マシンbが稼働停止するまで継続される。
一方、仮想化サーバD(仮想化サーバ200−4)のマイグレーション先エージェント管理テーブル215では、仮想マシンbのマイグレーション先が追加される(図35)。具体的には、仮想マシンaに対して、仮想化サーバC(仮想化サーバ200−3)、仮想化サーバD(仮想化サーバ200−4)は”登録済み”(”●”)で登録され、仮想化サーバA(仮想化サーバ200−1)、仮想化サーバB(仮想化サーバ200−2)、仮想化サーバE(仮想化サーバ200−5)は”削除済み”(”■”)で登録される。
マイグレーション先エージェント管理テーブル215の更新のあと、各統合管理エージェント210から統合管理マネージャ110に“マイグレーション先変更完了通知”が行われる。
仮想マシンbが稼働停止すると、仮想化サーバC(仮想化サーバ200−3)のマイグレーション先エージェント管理テーブル215で、仮想マシンbに対する仮想化サーバD(仮想化サーバ200−4)のマイグレーション先の登録が、”登録中”(”▲“)から”登録済み”(”●“)に更新され(図34)、仮想化サーバC(仮想化サーバ200−3)の統合管理エージェント210から統合管理マネージャ110に“マイグレーション先変更完了通知”が行われる。
また、仮想化サーバC(仮想化サーバ200−3)のマイグレーション先エージェント管理テーブル215で、仮想マシンbに対するCPU命令群1の使用可否が”使用不可保留中”(”▽”)から”使用不可”(”□“)に更新され(図37)、仮想化サーバC(仮想化サーバ200−3)の統合管理エージェント210から統合管理マネージャ110に“CPU命令群変更完了通知”が通知される。
統合管理マネージャ110は、仮想化サーバC(仮想化サーバ200−3)及び仮想化サーバD(仮想化サーバ200−4)の統合管理エージェント210から“マイグレーション先変更完了通知”を受信すると、マイグレーション先マネージャ管理テーブル116上で、仮想マシンbに対する仮想化サーバD(仮想化サーバ200−4)のマイグレーション先の登録が”登録中”(”▲“)から”登録済み”(”●“)に更新される(図33)。
また、統合管理マネージャ110が“CPU命令群変更完了通知”を受信すると、仮想マシン命令群マネージャ管理テーブル117で、仮想マシンbに対するCPU命令群1の使用可否が”使用不可保留中”(”▽”)から”使用不可”(”□“)に更新される(図36)。
次に、ステップS13の動作について説明する。このステップでは、仮想マシンdのマイグレーション先に仮想化サーバE(仮想化サーバ200−5)を追加する。
図39は、ステップS13における、マイグレーション管理サーバ100のマイグレーション先マネージャ管理テーブル116の変化を示す図である。
図40は、ステップS13における、仮想化サーバD(仮想化サーバ200−4)のマイグレーション先エージェント管理テーブル215の変化を示す図である。
図41は、ステップS13における、仮想化サーバE(仮想化サーバ200−5)のマイグレーション先エージェント管理テーブル215の変化を示す図である。
図42は、ステップS13における、マイグレーション管理サーバ100の仮想マシン命令群マネージャ管理テーブル117の変化を示す図である。
図43は、ステップS13における、仮想化サーバD(仮想化サーバ200−4)の仮想マシン命令群エージェント管理テーブル216の変化を示す図である。
図44は、ステップS13における、仮想化サーバE(仮想化サーバ200−5)の仮想マシン命令群エージェント管理テーブル216の変化を示す図である。
図5を参照すると、初期状態では、仮想マシンdに対して、仮想化サーバD(仮想化サーバ200−4)だけが”登録済み”(”●”)となっている。すなわち、仮想マシンdは、まず初めに仮想化サーバD(仮想化サーバ200−4)上に作成された事が分かる。
図39、図40、図41、図42、図43及び図44において、仮想化サーバD(仮想化サーバ200−4)上に仮想マシンdが作成された時点では、仮想マシンdのマイグレーション先は仮想化サーバD(仮想化サーバ200−4)だけとなる。このため、マイグレーション先マネージャ管理テーブル116において、仮想マシンdに対する各仮想化サーバ200のマイグレーション先としての登録状況は、この時点では仮想化サーバD(仮想化サーバ200−4)のみが”登録済み”(”●“)となっており、他の仮想化サーバ200は”削除済み”(”■”)となっている(図39)。
また、仮想化サーバD(仮想化サーバ200−4)上に仮想マシンdが作成された時点では、仮想マシンd上で使用可能なCPU命令群は、仮想化サーバD(仮想化サーバ200−4)の物理マシン280上で使用可能なCPU命令群となる。
図4に示す物理マシン命令群マネージャ管理テーブル115を参照すると、仮想化サーバD(仮想化サーバ200−4)の物理マシン280上で使用可能なCPU命令群は、CPU命令群2及びCPU命令群3である。
このため、仮想マシンd上で使用可能なCPU命令群は、CPU命令群2及びCPU命令群3となる(図42)。
仮想マシンdのマイグレーション先に仮想化サーバE(仮想化サーバ200−5)が追加されると、仮想マシンd上で使用可能なCPU命令群は、仮想化サーバD(仮想化サーバ200−4)及び仮想化サーバE(仮想化サーバ200−5)の何れの物理マシン280上でも使用可能なCPU命令群となる。仮想マシンdは、仮想化サーバD(仮想化サーバ200−4)、仮想化サーバE(仮想化サーバ200−5)の何れにもマイグレーションされる可能性があるからである。
図4に示す、マイグレーション管理サーバ100の物理マシン命令群マネージャ管理テーブル115を参照すると、仮想化サーバE(仮想化サーバ200−5)の物理マシン280上で使用可能なCPU命令群は、CPU命令群4である。とすれば、仮想化サーバD(仮想化サーバ200−4)の物理マシン280上で使用可能なCPU命令群は、CPU命令群2及びCPU命令群3であるから、仮想化サーバD(仮想化サーバ200−4)及び仮想化サーバE(仮想化サーバ200−5)の何れの物理マシン280上でも使用可能なCPU命令群は、存在しない。
従って、仮想マシンdのマイグレーション先に仮想化サーバE(仮想化サーバ200−5)を追加できないこととなる。この結果、マイグレーション管理サーバ100のマイグレーション先マネージャ管理テーブル116に更新は無い(図39)。また、マイグレーション管理サーバ100の仮想マシン命令群マネージャ管理テーブル117にも更新は無い(図42)。
また、仮想化サーバD(仮想化サーバ200−4)及び仮想化サーバE(仮想化サーバ200−5)の統合管理エージェント210に対する“マイグレーション先変更通知”も無いため、仮想化サーバD(仮想化サーバ200−4)のマイグレーション先エージェント管理テーブル215の更新も無く(図40)、仮想化サーバE(仮想化サーバ200−5)のマイグレーション先エージェント管理テーブル215への、仮想マシンdのマイグレーション先の登録もされない(図41)。
さらに、仮想化サーバD(仮想化サーバ200−4)及び仮想化サーバE(仮想化サーバ200−5)上の統合管理エージェント210に対する“CPU命令群変更通知”も無いため、仮想化サーバD(仮想化サーバ200−4)の仮想マシン命令群エージェント管理テーブル216の更新も無く(図43)、仮想化サーバE(仮想化サーバ200−5)の仮想マシン命令群エージェント管理テーブル216への、仮想マシンd上で使用可能なCPU命令群の登録されない(図44)。
次に、ステップS14の動作について説明するこのステップでは、仮想マシンbのマイグレーション先から仮想化サーバC(仮想化サーバ200−3)を削除する。
図45は、ステップS14における、マイグレーション管理サーバ100のマイグレーション先マネージャ管理テーブル116の変化を示す図である。
図46は、ステップS14における、仮想化サーバC(仮想化サーバ200−3)のマイグレーション先エージェント管理テーブル215の変化を示している。
図47は、ステップS14における、仮想化サーバD(仮想化サーバ200−4)のマイグレーション先エージェント管理テーブル215の変化を示す図である。
図48は、ステップS14における、マイグレーション管理サーバ100の仮想マシン命令群マネージャ管理テーブル117の変化を示す図である。
図49は、ステップS14における、仮想化サーバC(仮想化サーバ200−3)の仮想マシン命令群エージェント管理テーブル216の変化を示す図である。
図50は、ステップS14における、仮想化サーバD(仮想化サーバ200−4)の仮想マシン命令群エージェント管理テーブル216の変化を示す図である。
図45を参照すると、仮想マシンbのマイグレーション先から仮想化サーバC(仮想化サーバ200−3)を削除する前の状態では、仮想マシンbに対する各仮想化サーバ200のマイグレーション先としての登録状況は、仮想化サーバC(仮想化サーバ200−3)及び仮想化サーバD(仮想化サーバ200−4)が”登録済み”(”●“)となっており、仮想化サーバA(仮想化サーバ200−1)、仮想化サーバB(仮想化サーバ200−2)及び仮想化サーバE(仮想化サーバ200−5)が”削除済み”(”■“)となっている。
また、図48を参照すると、仮想マシンbのマイグレーション先から仮想化サーバC(仮想化サーバ200−3)を削除する前の状態では、仮想マシンb上で使用可能なCPU命令群は、CPU命令群2だけが”使用可能”(”○“)となっている。
図45から分かるように、仮想マシンbのマイグレーション先から仮想化サーバC(仮想化サーバ200−3)を削除すると、仮想マシンbのマイグレーション先は仮想化サーバD(仮想化サーバ200−4)だけとなる。
従って、仮想マシンbのマイグレーション先から仮想化サーバC(仮想化サーバ200−3)が削除されると、仮想マシンb上で使用可能なCPU命令群は、仮想化サーバD(仮想化サーバ200−4)の物理マシン280上で使用可能なCPU命令群となる。
ここで、図4に示す、マイグレーション管理サーバ100の物理マシン命令群マネージャ管理テーブル115を参照すると、仮想化サーバD(仮想化サーバ200−4)の物理マシン280上で使用可能なCPU命令群は、CPU命令群2及びCPU命令群3である。
従って、仮想マシンbのマイグレーション先から仮想化サーバC(仮想化サーバ200−3)が削除された後は、CPU命令群3が使用可能となるため、仮想マシン命令群マネージャ管理テーブル117において、仮想マシンbに対するCPU命令群3の使用可否が”使用不可”(”□“)から”使用可能”(”○“)に更新される(図48)。
また、仮想マシン管理サーバ100で仮想マシンbのマイグレーション先から仮想化サーバC(仮想化サーバ200−3)の削除処理が実行されると、該仮想マシン管理サーバ100の統合管理マネージャ110内にある仮想マシン命令群マネージャ管理手段113が 、仮想マシンbのマイグレーション先である仮想化サーバC(仮想化サーバ200−3)及び仮想化サーバD(仮想化サーバ200−4)の統合管理エージェント210に対して、“CPU命令群変更通知”を通知する。
そして、該通知に基づいて、仮想化サーバC(仮想化サーバ200−3)及び仮想化サーバD(仮想化サーバ200−4)の各仮想マシン命令群エージェント管理テーブル216が更新される。すなわち、各仮想マシン命令群エージェント管理テーブル216では、仮想マシンbに対するCPU命令群3の使用可否が”使用不可”(”□“)から”使用可能”(”○“)に更新される(図49、図50)。
仮想マシン管理サーバ100で仮想マシンbのマイグレーション先から仮想化サーバC(仮想化サーバ200−3)の削除処理が実行されても、仮想マシンbが仮想化サーバC(仮想化サーバ200−3)上で稼働している場合は、即時に仮想マシンbを削除することはできない。
このため、仮想マシン管理サーバ100マイグレーション先マネージャ管理テーブル116上では、仮想マシンbに対する仮想化サーバC(仮想化サーバ200−3)の登録状態は即時に”登録済み”(”●”)から”削除済み”(”■“)には更新されず、まず、”登録済み”(”●“)から”削除中”(”▼“)に更新される(図45)。
また、仮想マシン管理サーバ100で仮想マシンbのマイグレーション先から仮想化サーバC(仮想化サーバ200−3)の削除処理が実行されると、該仮想マシン管理サーバ100の統合管理マネージャ110内にある マイグレーション先マネージャ管理手段114が、仮想マシンbのマイグレーション先である仮想化サーバC(仮想化サーバ200−3)及び仮想化サーバD(仮想化サーバ200−4)の統合管理エージェント210に対して、“マイグレーション先変更通知”を通知する。
そして、該通知に基づいて、仮想化サーバC(仮想化サーバ200−3)及び仮想化サーバD(仮想化サーバ200−4)のマイグレーション先エージェント管理テーブル215が更新される。
この点、仮想マシンbが稼働している仮想化サーバC(仮想化サーバ200−3)のマイグレーション先エージェント管理テーブル215では、まず、仮想マシンbに対する仮想化サーバC(仮想化サーバ200−3)登録状態が”登録済み”(”●“)から”削除中”(”▼“)に更新され(図46)、仮想マシンbが稼働停止するまでこの状態が維持される。
そして、仮想マシンbが稼働停止すると、仮想マシンbに対する仮想化サーバC(仮想化サーバ200−3)の登録状態が、”削除中”(”▼“)から”削除済み”(”■“)に更新され(図46)、統合管理エージェント210から統合管理マネージャ110に“マイグレーション先変更完了通知”が行われる。
一方、仮想マシンbが稼働していない仮想化サーバD(仮想化サーバ200−4)のマイグレーション先エージェント管理テーブル215では、仮想マシンbに対する仮想化サーバC(仮想化サーバ200−3)の登録状態が”登録済み”(”●“)から”削除済み”(”■“)に更新され(図47)、統合管理エージェント210から統合管理マネージャ110に“マイグレーション先変更完了通知”が通知される。
次いで、仮想マシン管理サーバ100の統合管理マネージャ110が仮想化サーバC(仮想化サーバ200−3)及び仮想化サーバD(仮想化サーバ200−4)の統合管理エージェント210から“マイグレーション先変更完了通知”を受信すると、マイグレーション先マネージャ管理テーブル116において、仮想マシンbに対する仮想化サーバC(仮想化サーバ200−3)の登録状態が”削除中”(”▼“)から”削除済み”(”■“)に更新される(図45)。
(第1の実施の形態による効果)
第1の効果は、マイグレーション後でも仮想マシン及びゲストOS上でのプログラム実行速度が低下せず、処理時間増加による消費電力増加も発生しないことにある。
その理由は、処理性能低下の原因となるCPU命令のエミュレーションを行わず、ネイティブ実行可能なCPU命令群のみでプログラムを実行するためである。
第2の効果は、物理マシン上でネイティブ実行可能なCPU命令群が少ない仮想化サーバをマイグレーション先として追加し、該仮想化サーバにマイグレーションする場合でも、仮想マシン及びゲストOS上でのプログラム実行でエラーが発生しないことにある。
その理由は、物理マシン上でネイティブ実行可能なCPU命令群が少ない仮想化サーバをマイグレーション先として追加しても、即時にマイグレーション可能な仮想化サーバとして登録せず、マイグレーション前の仮想化サーバ上で動作している仮想マシン及びゲストOS上が使用しているCPU命令群がマイグレーション先として追加された仮想化サーバ上で使用可能なCPU命令群に包含される状態になってから該仮想化サーバをマイグレーション可能な仮想化サーバとして登録するためである。
第3の効果は、マイグレーション先となる複数の仮想化サーバの各物理マシンの何れでも使用可能なCPU命令群が増加した場合、それらのCPU命令群を有効活用できることにある。
その理由は、マイグレーション先となる複数の仮想化サーバの各物理マシンの何れでも使用可能なCPU命令群を随時更新することで、仮想マシン及びゲストOS上でそれらのCPU命令群を使用可能とするためである。また、マイグレーション先となる複数の仮想化サーバの各物理マシンの何れでも使用可能なCPU命令群を手動で再設定するのではなく、システムが自動的に再設定するためである。
第4の効果は、マイグレーション先の追加及び削除に伴ってマイグレーション先となる複数の仮想化サーバの各物理マシンの何れでも使用可能なCPU命令群が増減した場合でも、仮想マシン及びゲストOS上で使用可能なCPU命令群を手動で再設定する必要が無いことにある。
その理由は、マイグレーション先となる複数の仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群の増減に伴い、仮想マシン及びゲストOS上で使用可能なCPU命令群をシステムが自動的に再設定するためである。
ここで、本発明の課題を解決できる最小限の構成を図55に示す。仮想化システム10が、仮想マシン260が動作し、統合管理マネージャ110と連携して動作する統合管理エージェント210を備える複数の仮想化サーバ200と、仮想マシン260のマイグレーションを管理するマイグレーション管理サーバ100とを備え、マイグレーション管理サーバ100が、仮想マシン260のマイグレーション先となる複数の仮想化サーバ200の物理マシン280上の何れでも使用可能なCPU命令群を求める物理マシン命令群マネージャ管理手段111を含む統合管理マネージャ110を備えることで、本発明の課題を解決することができる。
(第2の実施の形態)
次に、本発明の第2の実施の形態について説明する。
第1の実施の形態では、各仮想化サーバ200上で動作する統合管理エージェント210には、該統合管理エージェント210が稼働している仮想化サーバ200に関する情報のみを管理させていた。このため、マイグレーション先エージェント管理テーブル215及び仮想マシン命令群エージェント管理テーブル216には該仮想化サーバ200に関連する仮想マシン260についての情報のみ管理するようにしていた。
これに対し、マイグレーション先マネージャ管理テーブル116とマイグレーション先エージェント管理テーブル215の内容を同一にし、仮想マシン命令群マネージャ管理テーブル117と仮想マシン命令群エージェント管理テーブル216の内容も同一にすることにより、統合管理エージェント210も統合管理マネージャ110と同様に全ての仮想化サーバ200についての情報を管理するようにする実施の形態もある。
このような実施の形態では、統合管理エージェント210で保持する管理情報が増加するが、統合管理マネージャ110から統合管理エージェント210にマイグレーション先や仮想マシン260上で使用可能な命令群についての情報を伝達する際のフィルタリングが不要となり、万一、統合管理マネージャ110上での管理情報が消失した場合でも統合管理エージェント210上で保持している管理情報によって復旧できるという利点がある。
(第3の実施の形態)
次に、本発明の第3の実施の形態について説明する。
第1の実施の形態では、統合管理マネージャ110を物理OS120上で稼働させる形態としているが、図51に示すように統合管理エージェント210と同様に統合管理マネージャ110をペアレントOS220上で稼働させる形態もある。
このような実施の形態では、図51に示すようにいずれかの仮想化サーバ200上で統合管理マネージャ110を統合管理エージェント210と同居させて、マイグレーション管理サーバ100を不要とすることができるメリットがある。
(第4の実施の形態)
次に、本発明の第4の実施の形態について説明する。
第1の実施の形態では、統合管理マネージャ110をマイグレーション管理サーバ100上で稼働させる形態としているが、図51に示すように統合管理マネージャ110を全ての仮想化サーバ200上で統合管理エージェント210と同居させる形態もある。
このような実施の形態では、マイグレーション管理サーバ100を不要とすることができるとともに、いずれかの仮想化サーバ200に障害が発生しても他の仮想化サーバ200上で統合管理マネージャ110が稼働しているため、障害の影響をシステム全体に波及させず局所化できるというメリットがある。
(第5の実施の形態)
次に、本発明の第5の実施の形態について説明する。
第1の実施の形態では、統合管理エージェント210をペアレントOS上で稼働する1つのモジュールとして実装する形態としているが、図52に示すように統合管理エージェント210をHypervisor 270の1つの機能として包含して実装する形態もある。
(第6の実施の形態)
次に、本発明の第6の実施の形態について説明する。
第1の実施の形態では、統合管理マネージャ110を物理OS上で稼働する1つのモジュールとして実装する形態としているが、図53に示すように統合管理エージェント210と同様に統合管理マネージャ110をHypervisor270の1つの機能として包含して実装する形態もある。
(第7の実施の形態)
次に、本発明の第7の実施の形態について説明する。
第1の実施の形態では、統合管理エージェント210をペアレントOS上で稼働する1つのモジュールとして、統合管理マネージャ110を物理OS上で稼働する1つのモジュールとして実装する形態としているが、図54に示すように統合管理エージェント210及び統合管理マネージャ110をHypervisor270の1つの機能として包含して実装する形態もある。
(第8の実施の形態)
次に、本発明の第8の実施の形態について説明する。
第1の実施の形態では、仮想マシン260の作成及び削除をマイグレーション管理サーバ100上で一元的に行い、統合管理マネージャ110から統合管理エージェント210に該仮想マシン260のマイグレーション先に関する情報及び該仮想マシン260上で使用可能なCPU命令群についての情報を通知する形態としているが、仮想マシン260の作成及び削除を各仮想化サーバ200上で行い、統合管理エージェント210から統合管理マネージャ110に該仮想マシン260のマイグレーション先に関する情報及び該仮想マシン260上で使用可能なCPU命令群についての情報を通知する形態もある。
このような実施の形態では、仮想マシン260の作成及び削除をマイグレーション管理サーバ100の稼働状況に関係なく各仮想化サーバ200側のみで行うことができるというメリットがある。
(第9の実施の形態)
次に、本発明の第9の実施の形態について説明する。
第1の実施の形態では、マイグレーション先の追加及び削除をマイグレーション管理サーバ100上で一元的に行い、統合管理マネージャ110から統合管理エージェント210にマイグレーション先に関する情報及び仮想マシン260上で使用可能なCPU命令群についての情報を通知する形態としているが、マイグレーション先の追加及び削除を各仮想化サーバ200上で行い、統合管理エージェント210から統合管理マネージャ110にマイグレーション先に関する情報及び仮想マシン260上で使用可能なCPU命令群についての情報を通知する形態もある。
(第10の実施の形態)
次に、本発明の第10の実施の形態について説明する。
第1の実施の形態では、マイグレーション先の増減に伴う仮想マシン260上で使用可能なCPU命令群の増減を管理対象としているが、物理マシンに実装されているGPUが異なる場合、マイグレーション先の増減に伴う仮想マシン260上で使用可能なGPU命令の増減も管理対象とする形態もある。
(第11の実施の形態)
次に、本発明の第11の実施の形態について説明する。
第1の実施の形態では、マイグレーション先の増減に伴う仮想マシン260上で使用可能なCPU命令群の増減を管理対象としているが、物理マシンに実装されているI/O機器やアクセラレータ等が異なる場合、マイグレーション先の増減に伴う仮想マシン260上で使用可能なI/O命令やアクセラレータ機能の増減も管理対象とする形態もある。
(第12の実施の形態)
次に、本発明の第12の実施の形態について説明する。
第11の実施の形態では、マイグレーション先の増減に伴う仮想マシン260上で使用可能なI/O命令、アクセラレータ機能の増減を管理対象としているが、更にI/O及びアクセラレータの負荷状態やメモリアクセス速度も管理対象とし、負荷の低い仮想化サーバ200を優先してマイグレーション先とする形態もある。
(第13の実施の形態)
次に、本発明の第13の実施の形態について説明する。
第1、第10、第11及び第12の実施の形態では、マイグレーション先の増減に伴う仮想マシン260上で使用可能なCPU命令群の増減、GPU命令の増減、I/O命令やアクセラレータ機能の増減、I/O及びアクセラレータの負荷状態やメモリアクセス速度を管理対象とするため、これらの管理対象を統合管理マネージャ110上でシステム管理者に提示し、マイグレーション先で使用できるリソースの増減を確認しながら、適切なマイグレーション先を決定する形態もある。
次に、本発明のマイグレーション管理サーバ100のハードウェア構成例について、図56を参照して説明する。図56は、本発明のマイグレーション管理サーバ100のハードウェア構成例を示すブロック図である。
図56を参照すると、本発明のマイグレーション管理サーバ100は、一般的なコンピュータ装置と同様のハードウェア構成であり、CPU(Central Processing Unit)101、RAM(Random Access Memory)等のメモリからなる、データの作業領域やデータの一時退避領域に用いられる主記憶部102、ネットワークを介してデータの送受信を行う通信部103、入力装置105や出力装置106及び記憶装置107と接続してデータの送受信を行う入出力インタフェース部104、上記各構成要素を相互に接続するシステムバス108を備えている。記憶装置107は、例えば、ROM(Read Only Memory)、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等で実現される。
本発明のマイグレーション管理サーバ100の各機能は、プログラムを組み込んだ、LSI(Large Scale Integration)等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、その機能を提供するプログラムを、記憶装置107に格納し、そのプログラムを主記憶部102にロードしてCPU101で実行することにより、ソフトウェア的に実現することも可能である。
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
また、本発明の方法及びコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法及びコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
また、本発明の方法及びコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
さらに、上記実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
(付記1)
仮想マシンが動作する複数の仮想化サーバと、
前記仮想マシンのマイグレーションを管理するマイグレーション管理サーバとを備え、
前記マイグレーション管理サーバが、
前記仮想マシンのマイグレーション先となる複数の仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を求める物理マシン命令群マネージャ管理手段を含む統合管理マネージャを備える
ことを特徴とする仮想化システム。
(付記2)
前記統合管理マネージャが、
前記仮想マシンのマイグレーション先を管理するマイグレーション先マネージャ管理手段を含み、
前記仮想マシンのマイグレーション先として任意の前記仮想化サーバを追加する場合、
前記物理マシン命令群マネージャ管理手段が、
前記任意の仮想化サーバを追加した場合において各仮想サーバの物理マシン上の何れでも使用可能なCPU命令群を特定し、
前記マイグレーション先マネージャ管理手段が、
前記物理マシン命令群マネージャ管理手段が特定した情報に基づき、前記仮想マシン上で使用可能なCPU命令群が減少すると判断した場合、当該仮想マシンが稼働停止してから、当該仮想マシン上で使用可能なCPU命令群を更新する
ことを特徴とする付記1に記載の仮想化システム。
(付記3)
前記統合管理マネージャが、
前記仮想マシンのマイグレーション先を管理するマイグレーション先マネージャ管理手段を含み、
前記仮想マシンのマイグレーション先として任意の前記仮想化サーバを追加する場合、
前記物理マシン命令群マネージャ管理手段が、
前記任意の仮想化サーバを追加した場合において各仮想サーバの物理マシン上の何れでも使用可能なCPU命令群を特定し、
前記マイグレーション先マネージャ管理手段が、
前記物理マシン命令群マネージャ管理手段が特定した情報に基づき、前記仮想マシン上で使用可能なCPU命令群が無くなると判断した場合、当該マイグレーション先の追加を中止する
ことを特徴とする付記1又は付記2に記載の仮想化システム。
(付記4)
前記統合管理マネージャが、
前記仮想マシンのマイグレーション先を管理するマイグレーション先マネージャ管理手段を含み、
前記仮想マシンのマイグレーション先として任意の前記仮想化サーバを追加する場合、
前記物理マシン命令群マネージャ管理手段が、
前記任意の仮想化サーバを追加した場合において各仮想サーバの物理マシン上の何れでも使用可能なCPU命令群を特定し、
前記マイグレーション先マネージャ管理手段が、
前記物理マシン命令群マネージャ管理手段が特定した情報に基づき、前記仮想マシン上で使用可能なCPU命令群が増えると判断した場合、即時に仮想マシン上で使用可能なCPU命令群を更新する
ことを特徴とする付記1から付記3の何れか1項に記載の仮想化システム。
(付記5)
前記仮想マシン上で使用可能なCPU命令群は、当該仮想マシンのマイグレーション先の各前記仮想化サーバの何れでも使用可能なCPU命令群であることを特徴とする付記2から付記4の何れか1項に記載の仮想化システム。
(付記6)
前記統合管理マネージャが、
各仮想マシン上で使用可能なCPU命令群を格納する仮想マシン命令群マネージャ管理テーブルと、
前記マイグレーション先マネージャ管理テーブルの情報を更新する仮想マシン命令群マネージャ管理手段とを備え、
前記マイグレーション先マネージャ管理手段は、
前記仮想マシン命令群マネージャ管理手段に、前記仮想マシン命令群マネージャ管理テーブルの更新を指示することで、前記仮想マシン上で使用可能なCPU命令群を更新する
ことを特徴とする付記2から付記5の何れか1項に記載の仮想化システム。
(付記7)
前記統合管理マネージャが、
各仮想化サーバの物理マシン上で使用可能な前記CPU命令群の情報を格納する物理マシン命令群マネージャ管理テーブルを備える
ことを特徴とする付記1から付記6の何れか1項に記載の仮想化システム。
(付記8)
前記統合管理マネージャが、
各仮想マシンのマイグレーション先の情報を格納するマイグレーション先マネージャ管理テーブルを備える
ことを特徴とする付記1から付記7の何れか1項に記載の仮想化システム。
(付記9)
前記仮想化サーバが、
前記統合管理マネージャが備える前記仮想マシン命令群マネージャ管理テーブル、前記物理マシン命令群マネージャ管理テーブル、及び前記マイグレーション先マネージャ管理テーブルと同一のテーブルを保持する
ことを特徴とする付記6から付記8の何れか1項に記載の仮想化システム。
(付記10)
前記仮想化サーバが、
物理マシン上で使用可能なCPU命令群を取得する物理マシン命令群エージェント管理手段と、
仮想マシンの作成および削除を管理する仮想マシンエージェント管理手段と、
仮想マシン上で使用可能なCPU命令群を管理する仮想マシン命令群エージェント管理手段と、
仮想マシンのマイグレーション先を管理するマイグレーション先エージェント管理手段を有する統合管理エージェントを備える
ことを特徴とする付記1から付記9の何れか1項に記載の仮想化システム。
(付記11)
前記統合管理マネージャと前記統合管理エージェントを同一の仮想化サーバ上に同居させ、前記マイグレーション管理サーバを不要とすることを特徴とする付記10に記載の仮想化システム。
(付記12)
前記統合管理マネージャと前記統合管理エージェントをすべての仮想化サーバ上に実装することを特徴とする付記10に記載の仮想化システム。
(付記13)
前記統合管理エージェントをHypervisorの1つの機能として実装することを特徴とする付記10から付記12の何れか1項に記載の仮想化サーバ。
(付記14)
前記統合管理エージェント及び前記統合管理マネージャをHypervisorの1つの機能として実装することを特徴とする付記10から付記12の何れか1項に記載の仮想化システム。
(付記15)
前記統合管理マネージャをHypervisorの1つの機能として実装することを特徴とする付記1から付記12の何れか1項に記載の仮想化システム。
(付記16)
前記統合管理マネージャを、前記仮想化サーバの物理OS上で稼働させることを特徴とする付記1から付記15の何れか1項に記載の仮想化システム。
(付記17)
前記統合管理マネージャを、前記仮想化サーバのペアレントOS上で稼働させることを特徴とする付記1から付記15の何れか1項に記載の仮想化システム。
(付記18)
前記仮想マシン上で共通的に使用可能なGPU命令の増減を管理対象とすることを特徴とする付記1から付記17の何れか1項に記載の仮想化システム。
(付記19)
仮想マシン上で共通的に使用可能なI/O命令、アクセラレータ機能の増減を管理対象とすることを特徴とする付記1から付記18の何れか1項に記載の仮想化システム。
(付記20)
仮想マシン上で共通的に使用可能なI/Oおよびアクセラレータの負荷状態やメモリアクセス速度も管理対象とすることを特徴とする付記1から付記19の何れか1項に記載の仮想化システム。
(付記21)
仮想化サーバ上の仮想マシンのマイグレーションを管理するマイグレーション管理サーバであって、
仮想マシンのマイグレーション先となる複数の仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を求める物理マシン命令群マネージャ管理手段を含む統合管理マネージャを備える
ことを特徴とするマイグレーション管理サーバ。
(付記22)
前記統合管理マネージャが、
前記仮想マシンのマイグレーション先を管理するマイグレーション先マネージャ管理手段を含み、
前記仮想マシンのマイグレーション先として任意の前記仮想化サーバを追加する場合、
前記物理マシン命令群マネージャ管理手段が、
前記任意の仮想化サーバを追加した場合において各仮想サーバの物理マシン上の何れでも使用可能なCPU命令群を特定し、
前記マイグレーション先マネージャ管理手段が、
前記物理マシン命令群マネージャ管理手段が特定した情報に基づき、前記仮想マシン上で使用可能なCPU命令群が減少すると判断した場合、当該仮想マシンが稼働停止してから、当該仮想マシン上で使用可能なCPU命令群を更新する
ことを特徴とする付記21に記載のマイグレーション管理サーバ。
(付記23)
前記統合管理マネージャが、
前記仮想マシンのマイグレーション先を管理するマイグレーション先マネージャ管理手段を含み、
前記仮想マシンのマイグレーション先として任意の前記仮想化サーバを追加する場合、
前記物理マシン命令群マネージャ管理手段が、
前記任意の仮想化サーバを追加した場合において各仮想サーバの物理マシン上の何れでも使用可能なCPU命令群を特定し、
前記マイグレーション先マネージャ管理手段が、
前記物理マシン命令群マネージャ管理手段が特定した情報に基づき、前記仮想マシン上で使用可能なCPU命令群が無くなると判断した場合、当該マイグレーション先の追加を中止する
ことを特徴とする付記21又は付記22に記載のマイグレーション管理サーバ。
(付記24)
前記統合管理マネージャが、
前記仮想マシンのマイグレーション先を管理するマイグレーション先マネージャ管理手段を含み、
前記仮想マシンのマイグレーション先として任意の前記仮想化サーバを追加する場合、
前記物理マシン命令群マネージャ管理手段が、
前記任意の仮想化サーバを追加した場合において各仮想サーバの物理マシン上の何れでも使用可能なCPU命令群を特定し、
前記マイグレーション先マネージャ管理手段が、
前記物理マシン命令群マネージャ管理手段が特定した情報に基づき、前記仮想マシン上で使用可能なCPU命令群が増えると判断した場合、即時に仮想マシン上で使用可能なCPU命令群を更新する
ことを特徴とする付記21から付記23の何れか1項に記載のマイグレーション管理サーバ。
(付記25)
前記仮想マシン上で使用可能なCPU命令群は、当該仮想マシンのマイグレーション先の各前記仮想化サーバの何れでも使用可能なCPU命令群であることを特徴とする付記22から付記24の何れか1項に記載のマイグレーション管理サーバ。
(付記26)
前記統合管理マネージャが、
各仮想マシン上で使用可能なCPU命令群を格納する仮想マシン命令群マネージャ管理テーブルと、
前記マイグレーション先マネージャ管理テーブルの情報を更新する仮想マシン命令群マネージャ管理手段とを備え、
前記マイグレーション先マネージャ管理手段は、
前記仮想マシン命令群マネージャ管理手段に、前記仮想マシン命令群マネージャ管理テーブルの更新を指示することで、前記仮想マシン上で使用可能なCPU命令群を更新する
ことを特徴とする付記22から付記25の何れか1項に記載のマイグレーション管理サーバ。
(付記27)
前記統合管理マネージャが、
各仮想化サーバの物理マシン上で使用可能な前記CPU命令群の情報を格納する物理マシン命令群マネージャ管理テーブルを備える
ことを特徴とする付記21から付記26の何れか1項に記載のマイグレーション管理サーバ。
(付記28)
前記統合管理マネージャが、
各仮想マシンのマイグレーション先の情報を格納するマイグレーション先マネージャ管理テーブルを備える
ことを特徴とする付記21から付記27の何れか1項に記載のマイグレーション管理サーバ。
(付記29)
前記仮想マシン上で共通的に使用可能なGPU命令の増減を管理対象とすることを特徴とする付記21から付記28の何れか1項に記載のマイグレーション管理サーバ。
(付記30)
仮想マシン上で共通的に使用可能なI/O命令、アクセラレータ機能の増減を管理対象とすることを特徴とする付記21から付記29の何れか1項に記載のマイグレーション管理サーバ。
(付記31)
仮想マシン上で共通的に使用可能なI/Oおよびアクセラレータの負荷状態やメモリアクセス速度も管理対象とすることを特徴とする付記21から付記30の何れか1項に記載のマイグレーション管理サーバ。
(付記32)
仮想化サーバ上の仮想マシンのマイグレーションを管理するマイグレーション管理サーバによるマイグレーション管理方法であって、
統合管理マネージャが備える物理マシン命令群マネージャ管理手段が、仮想マシンのマイグレーション先となる複数の仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を求める物理マシン命令群マネージャ管理ステップを有する
ことを特徴とするマイグレーション管理方法。
(付記33)
前記統合管理マネージャが備えるマイグレーション先マネージャ管理手段が、前記仮想マシンのマイグレーション先を管理するマイグレーション先マネージャ管理ステップを有し、
前記仮想マシンのマイグレーション先として任意の前記仮想化サーバを追加する場合、
前記物理マシン命令群マネージャ管理ステップで、
前記任意の仮想化サーバを追加した場合において各仮想サーバの物理マシン上の何れでも使用可能なCPU命令群を特定し、
前記マイグレーション先マネージャ管理ステップで、
前記物理マシン命令群マネージャ管理ステップで特定した情報に基づき、前記仮想マシン上で使用可能なCPU命令群が減少すると判断した場合、当該仮想マシンが稼働停止してから、当該仮想マシン上で使用可能なCPU命令群を更新する
ことを特徴とする付記32に記載のマイグレーション管理方法。
(付記34)
前記統合管理マネージャが備えるマイグレーション先マネージャ管理手段が、前記仮想マシンのマイグレーション先を管理するマイグレーション先マネージャ管理ステップを有し、
前記仮想マシンのマイグレーション先として任意の前記仮想化サーバを追加する場合、
前記物理マシン命令群マネージャ管理ステップで、
前記任意の仮想化サーバを追加した場合において各仮想サーバの物理マシン上の何れでも使用可能なCPU命令群を特定し、
前記マイグレーション先マネージャ管理ステップで、
前記物理マシン命令群マネージャ管理ステップで特定した情報に基づき、前記仮想マシン上で使用可能なCPU命令群が無くなると判断した場合、当該マイグレーション先の追加を中止する
ことを特徴とする付記32又は付記33に記載のマイグレーション管理方法。
(付記35)
前記統合管理マネージャが備えるマイグレーション先マネージャ管理手段が、前記仮想マシンのマイグレーション先を管理するマイグレーション先マネージャ管理ステップを有し、
前記仮想マシンのマイグレーション先として任意の前記仮想化サーバを追加する場合、
前記物理マシン命令群マネージャ管理ステップで、
前記任意の仮想化サーバを追加した場合において各仮想サーバの物理マシン上の何れでも使用可能なCPU命令群を特定し、
前記マイグレーション先マネージャ管理ステップで、
前記物理マシン命令群マネージャ管理ステップで特定した情報に基づき、前記仮想マシン上で使用可能なCPU命令群が増えると判断した場合、即時に仮想マシン上で使用可能なCPU命令群を更新する
ことを特徴とする付記32から付記34の何れか1項に記載のマイグレーション管理方法。
(付記36)
前記仮想マシン上で使用可能なCPU命令群は、当該仮想マシンのマイグレーション先の各前記仮想化サーバの何れでも使用可能なCPU命令群であることを特徴とする付記33から付記35の何れか1項に記載のマイグレーション管理方法。
(付記37)
前記統合管理マネージャが備える仮想マシン命令群マネージャ管理テーブルが、各仮想マシン上で使用可能なCPU命令群を格納する仮想マシン命令群マネージャ管理情報格納ステップと、
前記統合管理マネージャが備える仮想マシン命令群マネージャ管理手段が、前記マイグレーション先マネージャ管理テーブルの情報を更新する仮想マシン命令群マネージャ管理ステップとを有し、
前記マイグレーション先マネージャ管理ステップで、
前記仮想マシン命令群マネージャ管理手段に、前記仮想マシン命令群マネージャ管理テーブルの更新を指示することで、前記仮想マシン上で使用可能なCPU命令群を更新する
ことを特徴とする付記33から付記36の何れか1項に記載のマイグレーション管理方法。
(付記38)
前記統合管理マネージャが備える物理マシン命令群マネージャ管理テーブルが、各仮想化サーバの物理マシン上で使用可能な前記CPU命令群の情報を格納する物理マシン命令群マネージャ管理情報格納ステップを有する
ことを特徴とする付記32から付記37の何れか1項に記載のマイグレーション管理方法。
(付記39)
前記統合管理マネージャが備えるマイグレーション先マネージャ管理テーブルが、各仮想マシンのマイグレーション先の情報を格納するマイグレーション先マネージャ管理情報格納ステップを有する
ことを特徴とする付記32から付記38の何れか1項に記載のマイグレーション管理方法。
(付記40)
前記仮想マシン上で共通的に使用可能なGPU命令の増減を管理対象とすることを特徴とする付記32から付記39の何れか1項に記載のマイグレーション管理方法。
(付記41)
仮想マシン上で共通的に使用可能なI/O命令、アクセラレータ機能の増減を管理対象とすることを特徴とする付記32から付記40の何れか1項に記載のマイグレーション管理方法。
(付記42)
仮想マシン上で共通的に使用可能なI/Oおよびアクセラレータの負荷状態やメモリアクセス速度も管理対象とすることを特徴とする付記32から付記41の何れか1項に記載のマイグレーション管理方法。
(付記43)
仮想化サーバ上の仮想マシンのマイグレーションを管理するマイグレーション管理サーバを構成するコンピュータ上で動作するマイグレーション管理プログラムであって、
統合管理マネージャが備える物理マシン命令群マネージャ管理手段に、仮想マシンのマイグレーション先となる複数の仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を求める物理マシン命令群マネージャ管理処理を実行させる
ことを特徴とするマイグレーション管理プログラム。
(付記44)
前記統合管理マネージャが備えるマイグレーション先マネージャ管理手段に、前記仮想マシンのマイグレーション先を管理するマイグレーション先マネージャ管理処理を実行させ、
前記仮想マシンのマイグレーション先として任意の前記仮想化サーバを追加する場合、
前記物理マシン命令群マネージャ管理処理で、
前記任意の仮想化サーバを追加した場合において各仮想サーバの物理マシン上の何れでも使用可能なCPU命令群を特定し、
前記マイグレーション先マネージャ管理処理で、
前記物理マシン命令群マネージャ管理処理で特定した情報に基づき、前記仮想マシン上で使用可能なCPU命令群が減少すると判断した場合、当該仮想マシンが稼働停止してから、当該仮想マシン上で使用可能なCPU命令群を更新する
ことを特徴とする付記43に記載のマイグレーション管理プログラム。
(付記45)
前記統合管理マネージャが備えるマイグレーション先マネージャ管理手段に、前記仮想マシンのマイグレーション先を管理するマイグレーション先マネージャ管理処理を実行させ、
前記仮想マシンのマイグレーション先として任意の前記仮想化サーバを追加する場合、
前記物理マシン命令群マネージャ管理処理で、
前記任意の仮想化サーバを追加した場合において各仮想サーバの物理マシン上の何れでも使用可能なCPU命令群を特定し、
前記マイグレーション先マネージャ管理処理で、
前記物理マシン命令群マネージャ管理処理で特定した情報に基づき、前記仮想マシン上で使用可能なCPU命令群が無くなると判断した場合、当該マイグレーション先の追加を中止する
ことを特徴とする付記43又は付記44に記載のマイグレーション管理プログラム。
(付記46)
前記統合管理マネージャが備えるマイグレーション先マネージャ管理手段に、前記仮想マシンのマイグレーション先を管理するマイグレーション先マネージャ管理処理を実行させ、
前記仮想マシンのマイグレーション先として任意の前記仮想化サーバを追加する場合、
前記物理マシン命令群マネージャ管理処理で、
前記任意の仮想化サーバを追加した場合において各仮想サーバの物理マシン上の何れでも使用可能なCPU命令群を特定し、
前記マイグレーション先マネージャ管理処理で、
前記物理マシン命令群マネージャ管理処理で特定した情報に基づき、前記仮想マシン上で使用可能なCPU命令群が増えると判断した場合、即時に仮想マシン上で使用可能なCPU命令群を更新する
ことを特徴とする付記43から付記45の何れか1項に記載のマイグレーション管理プログラム。
(付記47)
前記仮想マシン上で使用可能なCPU命令群は、当該仮想マシンのマイグレーション先の各前記仮想化サーバの何れでも使用可能なCPU命令群であることを特徴とする付記44から付記46の何れか1項に記載のマイグレーション管理プログラム。
(付記48)
前記統合管理マネージャが備える仮想マシン命令群マネージャ管理テーブルに、各仮想マシン上で使用可能なCPU命令群を格納する仮想マシン命令群マネージャ管理情報格納処理を実行させ、
前記統合管理マネージャが備える仮想マシン命令群マネージャ管理手段に、前記マイグレーション先マネージャ管理テーブルの情報を更新する仮想マシン命令群マネージャ管理処理を実行させ、
前記マイグレーション先マネージャ管理処理で、
前記仮想マシン命令群マネージャ管理手段に、前記仮想マシン命令群マネージャ管理テーブルの更新を指示することで、前記仮想マシン上で使用可能なCPU命令群を更新する
ことを特徴とする付記44から付記47の何れか1項に記載のマイグレーション管理プログラム。
(付記49)
前記統合管理マネージャが備える物理マシン命令群マネージャ管理テーブルに、各仮想化サーバの物理マシン上で使用可能な前記CPU命令群の情報を格納する物理マシン命令群マネージャ管理情報格納処理を実行させる
ことを特徴とする付記43から付記48の何れか1項に記載のマイグレーション管理プログラム。
(付記50)
前記統合管理マネージャが備えるマイグレーション先マネージャ管理テーブルに、各仮想マシンのマイグレーション先の情報を格納するマイグレーション先マネージャ管理情報格納処理を実行させる
ことを特徴とする付記43から付記49の何れか1項に記載のマイグレーション管理プログラム。
(付記51)
前記仮想マシン上で共通的に使用可能なGPU命令の増減を管理対象とすることを特徴とする付記43から付記50の何れか1項に記載のマイグレーション管理プログラム。
(付記52)
仮想マシン上で共通的に使用可能なI/O命令、アクセラレータ機能の増減を管理対象とすることを特徴とする付記43から付記51の何れか1項に記載のマイグレーション管理プログラム。
(付記53)
仮想マシン上で共通的に使用可能なI/Oおよびアクセラレータの負荷状態やメモリアクセス速度も管理対象とすることを特徴とする付記43から付記52の何れか1項に記載のマイグレーション管理プログラム。
10:仮想化システム
100:マイグレーション管理サーバ
101:CPU
102:主記憶部
103:通信部
104:入出力インタフェース部
105:入力装置
106:出力装置
107:記憶装置
108:システムバス
110:統合管理マネージャ
111:物理マシン命令群マネージャ管理手段
112:仮想マシンマネージャ管理手段
113:仮想マシン命令群マネージャ管理手段
114:マイグレーション先マネージャ管理手段
115:物理マシン命令群マネージャ管理テーブル
116:マイグレーション先マネージャ管理テーブル
117:仮想マシン命令群マネージャ管理テーブル
120:物理OS
130:物理マシン
200(200−1〜2005):仮想化サーバ(仮想化サーバA〜仮想化サーバE)
210:統合管理エージェント
211:物理マシン命令群エージェント管理手段
212:仮想マシンエージェント管理手段
213:仮想マシン命令群エージェント管理手段
214:マイグレーション先エージェント管理手段
215:マイグレーション先エージェント管理テーブル
216:仮想マシン命令群エージェント管理テーブル
220:ペアレントOS
230:ペアレントOS用仮想マシン
240:プログラム
250:ゲストOS
260:仮想マシン
270:Hypervisor
280:物理マシン

Claims (10)

  1. 仮想マシンが動作する複数の仮想化サーバと、
    前記仮想マシンのマイグレーションを管理するマイグレーション管理サーバとを備え、
    前記マイグレーション管理サーバが、
    前記仮想マシンのそれぞれの、マイグレーション先となる前記仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を管理する仮想マシン命令群マネージャ管理手段を含む統合管理マネージャを備え
    前記仮想マシン命令群マネージャ管理手段は、前記仮想マシンのマイグレーション先の変更がある場合に、当該仮想マシンのマイグレーション先となる仮想化サーバが何れであるかを示す情報と、各仮想化サーバの物理マシンの使用可能なCPU命令群を示す情報とに基づいて、当該仮想マシンのマイグレーション先となる前記仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を求める、
    ことを特徴とする仮想化システム。
  2. 前記統合管理マネージャが、
    前記仮想マシンのマイグレーション先を管理するマイグレーション先マネージャ管理手段を含み、
    前記仮想マシンのマイグレーション先として任意の前記仮想化サーバを追加する場合、
    前記仮想マシン命令群マネージャ管理手段が、
    前記任意の仮想化サーバを追加した場合において各仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を特定し、前記仮想マシン上で使用可能なCPU命令群が減少すると判断した場合、当該仮想マシンが稼働停止してから、当該仮想マシン上で使用可能なCPU命令群を更新する
    ことを特徴とする請求項1に記載の仮想化システム。
  3. 前記統合管理マネージャが、
    前記仮想マシンのマイグレーション先を管理するマイグレーション先マネージャ管理手段を含み、
    前記仮想マシンのマイグレーション先として任意の前記仮想化サーバを追加する場合、
    前記仮想マシン命令群マネージャ管理手段が、
    前記任意の仮想化サーバを追加した場合において各仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を特定し
    前記マイグレーション先マネージャ管理手段が、
    前記仮想マシン命令群マネージャ管理手段が特定した情報に基づき、前記仮想マシン上で使用可能なCPU命令群が無くなると判断した場合、当該マイグレーション先の追加を中止する
    ことを特徴とする請求項1又は請求項2に記載の仮想化システム。
  4. 前記統合管理マネージャが、
    前記仮想マシンのマイグレーション先を管理するマイグレーション先マネージャ管理手段を含み、
    前記仮想マシンのマイグレーション先として任意の前記仮想化サーバを削除する場合、
    前記仮想マシン命令群マネージャ管理手段が、
    前記任意の仮想化サーバを削除した場合において各仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を特定し、前記仮想マシン上で使用可能なCPU命令群が増えると判断した場合、即時に当該仮想マシン上で使用可能なCPU命令群を更新する
    ことを特徴とする請求項1から請求項3の何れか1項に記載の仮想化システム。
  5. 前記仮想マシン上で使用可能なCPU命令群は、当該仮想マシンのマイグレーション先の各前記仮想化サーバの何れでも使用可能なCPU命令群であることを特徴とする請求項2から請求項4の何れか1項に記載の仮想化システム。
  6. 各前記仮想化サーバは、
    自身の仮想化サーバ上で使用可能なCPU命令群を格納する仮想マシン命令群エージェント管理テーブルと、
    前記仮想マシン命令群エージェント管理テーブルの情報を更新する仮想マシン命令群エージェント管理手段とを備え、
    前記仮想マシン命令群マネージャ管理手段は、前記仮想マシン命令群エージェント管理手段に、前記仮想マシン命令群エージェント管理テーブルの更新を指示することで、前記仮想マシン上で使用可能なCPU命令群を更新する
    ことを特徴とする請求項2から請求項5の何れか1項に記載の仮想化システム。
  7. 前記統合管理マネージャが、
    各仮想化サーバの物理マシン上で使用可能な前記CPU命令群の情報を格納する物理マシン命令群マネージャ管理テーブルを備える
    ことを特徴とする請求項1から請求項6の何れか1項に記載の仮想化システム。
  8. 仮想化サーバ上の仮想マシンのマイグレーションを管理するマイグレーション管理サーバであって、
    前記仮想マシンのそれぞれの、マイグレーション先となる前記仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を管理する仮想マシン命令群マネージャ管理手段を含む統合管理マネージャを備え
    前記仮想マシン命令群マネージャ管理手段は、前記仮想マシンのマイグレーション先の変更がある場合に、当該仮想マシンのマイグレーション先となる仮想化サーバが何れであるかを示す情報と、各仮想化サーバの物理マシンの使用可能なCPU命令群を示す情報とに基づいて、当該仮想マシンのマイグレーション先となる前記仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を求める、
    ことを特徴とするマイグレーション管理サーバ。
  9. 仮想化サーバ上の仮想マシンのマイグレーションを管理するマイグレーション管理サーバによるマイグレーション管理方法であって、
    前記仮想マシンのそれぞれの、マイグレーション先となる前記仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を管理する仮想マシン命令群マネージャ管理ステップを有し、
    前記仮想マシン命令群マネージャ管理ステップは、前記仮想マシンのマイグレーション先の変更がある場合に、当該仮想マシンのマイグレーション先となる仮想化サーバが何れであるかを示す情報と、各仮想化サーバの物理マシンの使用可能なCPU命令群を示す情報とに基づいて、当該仮想マシンのマイグレーション先となる前記仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を求める、
    ことを特徴とするマイグレーション管理方法。
  10. 仮想化サーバ上の仮想マシンのマイグレーションを管理するマイグレーション管理サーバを構成するコンピュータ上で動作するマイグレーション管理プログラムであって、
    前記仮想マシンのそれぞれの、マイグレーション先となる前記仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を管理する仮想マシン命令群マネージャ管理処理を実行させ
    前記仮想マシン命令群マネージャ管理処理は、前記仮想マシンのマイグレーション先の変更がある場合に、当該仮想マシンのマイグレーション先となる仮想化サーバが何れであるかを示す情報と、各仮想化サーバの物理マシンの使用可能なCPU命令群を示す情報とに基づいて、当該仮想マシンのマイグレーション先となる前記仮想化サーバの物理マシン上の何れでも使用可能なCPU命令群を求める、
    ことを特徴とするマイグレーション管理プログラム。
JP2012079611A 2012-03-30 2012-03-30 仮想化システム、マイグレーション管理サーバ、マイグレーション管理方法、及びマイグレーション管理プログラム Expired - Fee Related JP5953880B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012079611A JP5953880B2 (ja) 2012-03-30 2012-03-30 仮想化システム、マイグレーション管理サーバ、マイグレーション管理方法、及びマイグレーション管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012079611A JP5953880B2 (ja) 2012-03-30 2012-03-30 仮想化システム、マイグレーション管理サーバ、マイグレーション管理方法、及びマイグレーション管理プログラム

Publications (2)

Publication Number Publication Date
JP2013210757A JP2013210757A (ja) 2013-10-10
JP5953880B2 true JP5953880B2 (ja) 2016-07-20

Family

ID=49528551

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012079611A Expired - Fee Related JP5953880B2 (ja) 2012-03-30 2012-03-30 仮想化システム、マイグレーション管理サーバ、マイグレーション管理方法、及びマイグレーション管理プログラム

Country Status (1)

Country Link
JP (1) JP5953880B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101647099B1 (ko) * 2014-12-18 2016-08-09 권영민 가상화 멀티 세션 지원을 위한 서버 구조

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4438807B2 (ja) * 2007-03-02 2010-03-24 日本電気株式会社 仮想マシンシステム、管理サーバ、仮想マシン移行方法及びプログラム
JP2010272055A (ja) * 2009-05-25 2010-12-02 Sony Corp 情報処理装置および方法、並びにプログラム

Also Published As

Publication number Publication date
JP2013210757A (ja) 2013-10-10

Similar Documents

Publication Publication Date Title
CN107515776B (zh) 业务不间断升级方法、待升级节点和可读存储介质
JP5106036B2 (ja) コンピュータ・システム上のハイパーバイザ内にポリシ・ベースのオペレーティング・システム・サービスを提供する方法、コンピュータ・システム及びコンピュータ・プログラム
US8732705B2 (en) Method and system for virtual machine migration
CN107423619B (zh) 一种基于虚拟化技术构建智能终端web运行时的方法
US7275183B2 (en) Method of restoring processes within process domain
US20210224100A1 (en) Virtual machine migration using multiple, synchronized streams of state data
WO2012054219A1 (en) Online database availability during upgrade
JPH06301555A (ja) マイクロカーネル上の複数の共存オペレーティング・システム・パーソナリティ用のシステム
EP3584998A1 (en) Method for virtual machine capacity expansion and reduction and virtual management device
US20210389966A1 (en) Micro kernel based extensible hypervisor and embedded system
EP3869336A1 (en) Method and apparatus for processing development machine operation task, device and storage medium
JP2007304845A (ja) 仮想計算機システムおよびソフトウェア更新方法
JP2012524312A (ja) ユーザ端末で利用可能なアプリケーションを作成するためのシステム
US20050251803A1 (en) Method of performing kernel task upon initial execution of process at user level
CN103246545A (zh) 面向多虚拟域可定制的PICe外设设备树生成方法
JP5953880B2 (ja) 仮想化システム、マイグレーション管理サーバ、マイグレーション管理方法、及びマイグレーション管理プログラム
JP2001216171A (ja) 仮想計算機システム
US11755297B2 (en) Compiling monoglot function compositions into a single entity
CN102959513A (zh) 虚拟机器合并方法和系统
CN112152988B (zh) 用于异步nbmp请求处理的方法、系统以及计算机设备和介质
KR20140039779A (ko) 안드로이드 운영 체제의 부팅 성능 향상 방법
US20240054000A1 (en) Container scheduling and deployment method and apparatus, and domain controller system
CN117519908B (zh) 一种虚拟机热迁移方法、计算机设备及介质
Li et al. VM migration and live-update for reliable embedded hypervisor
US10389802B1 (en) Flexible associativity in multitenant clustered environments

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20131023

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151218

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: 20160517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160530

R150 Certificate of patent or registration of utility model

Ref document number: 5953880

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees