JPWO2012053393A1 - 仮想計算機を配置する方法及び装置 - Google Patents

仮想計算機を配置する方法及び装置 Download PDF

Info

Publication number
JPWO2012053393A1
JPWO2012053393A1 JP2012539680A JP2012539680A JPWO2012053393A1 JP WO2012053393 A1 JPWO2012053393 A1 JP WO2012053393A1 JP 2012539680 A JP2012539680 A JP 2012539680A JP 2012539680 A JP2012539680 A JP 2012539680A JP WO2012053393 A1 JPWO2012053393 A1 JP WO2012053393A1
Authority
JP
Japan
Prior art keywords
server
virtual
virtual machine
computer
resource
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.)
Pending
Application number
JP2012539680A
Other languages
English (en)
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.)
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
Publication of JPWO2012053393A1 publication Critical patent/JPWO2012053393A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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]
    • 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]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】物理計算機のハードウェア資源の過不足がなるべく生じないように仮想計算機(VM)を配置する。【解決手段】複数の物理計算機に複数のVMを配置するVM配置装置が構築される。VM配置装置は、複数の時区間のそれぞれにおけるVMの資源負荷値をVM毎に表す情報であるVM負荷情報を記憶する。VM配置装置は、VM負荷情報を基に、各時区間について資源負荷値の差が最も大きくなるような2以上のVMを選択し、選択した2以上のVMを同一の物理計算機に配置する。

Description

本発明は,仮想計算機を配置する技術に関する。
計算機の物理資源を複数の論理資源に見せかける仮想化ソフトウェアにより、一台の計算機上に複数の仮想計算機(VM)を稼動させることができる。また、仮想化ソフトウェアがハードウェアの特性を吸収するため、VMは計算機のハードウェアの特性に依存せず、VMのハードウェア間の移動が容易である。以下、仮想化ソフトウェアを実行することにより複数のVMを動作させる計算機を単に「サーバ」と言う。
例えば、VMに業務サーバ用のOS(Operating System)を導入して、VMを業務サーバとして運用する企業がある。この場合、通常、1つのVMは複数のクライアントに利用される。
一方、VMにデスクトップ用のOSを導入し、VMを仮想デスクトップとして利用する技術がある。この場合、通常、1つのVMは1つのクライアントに利用される。
VMを利用する場合、複数のVMが同じサーバのハードウェア資源を共有するため、VM間でハードウェア資源の利用が競合する可能性がある。このため、1サーバに何台のVMを稼動させるかを決定することが難しい。
特許文献1によれば、VM種別の組合せ毎に、その組合せのVM種別同士が同じサーバに配置される適切度(スコア)が用意される。VM種別の組合せ毎のスコアを基に、新規のVMを配置可能な各サーバについて、新規のVMを当該サーバに配置する適切度(指標値)が計算される。この計算した指標値を基に、新規のVMの配置先サーバが決定される。
国際公開第2007/136021号パンフレット
VMを仮想デスクトップとして利用する場合には、仮想デスクトップのクライアントのユーザの操作により、仮想デスクトップが必要とするハードウェア資源(例えば、CPU処理時間、メモリ量、HDDアクセス帯域およびHDDアクセス時間、又はネットワーク帯域)が急激に変化することがある。そのため、VMをサーバへ配置する際に、各VMに常に快適なパフォーマンスを提供するためには、業務サーバを仮想化する場合と比較すると、相当な余裕を持たせた配置を実施する必要がある。しかし、それでは、サーバの資源の浪費となる。
そこで、本発明の目的は、物理計算機(例えばサーバ)のハードウェア資源の過不足がなるべく生じないようにVMを配置することにある。
複数の物理計算機に複数の仮想計算機(VM)を配置するVM配置装置が構築される。VM配置装置が、複数の時区間のそれぞれにおけるVMの資源負荷値をVM毎に表す情報であるVM負荷情報を記憶する。VM配置装置は、VM負荷情報を基に、各時区間について資源負荷値の差が最も大きくなるような2以上のVMを選択し、選択した2以上のVMを同一の物理計算機に配置する。
このVM配置装置によって配置されるVMのタイプは、どのようなタイプでも良い。このVM配置装置は、仮想デスクトップとして利用される仮想計算機のように、必要とされるハードウェア資源が急激に変化することがあるタイプの仮想計算機の配置に適している。
本発明によれば、物理計算機のハードウェア資源の過不足がなるべく生じないようにVMを配置することができる。
本発明の実施例1に係るVM配置装置を含んだシステム全体の構成例を示す。 パターンDB201の構成例を示す。 配置評価結果DB114の構成例を示す。 管理部118の構成例を示す。 配置結果DB117の構成例を示す。 実施例1で行われる処理の全体の流れの一例を示すフローチャートである。 ステップ402およびステップ403の詳細な流れの一例を示すシーケンス図である。 図7のステップ504の詳細な流れの一例を示すフローチャートである。 図9は、図8のステップ602の詳細な流れの一例を示すフローチャートである。 図6のステップ405の詳細な流れの一例を示すシーケンス図である。 本発明の実施例2に係るVM配置装置を含んだシステム全体の構成例を示す。 VM配置装置907の構成例を示す。 VM詳細情報DB1006の構成例を示す。 実施例2で行われる処理の全体の流れの一例を示すフローチャートである。 図14のステップ1103の詳細な流れの一例を示すシーケンス図である。 図14のステップ1104の詳細な流れの一例を示すシーケンス図である。
以下、本発明の幾つかの実施例を、図面を参照して詳細に説明する。
なお、以下の説明では「xxxDB」、「xxxリスト」の表現にて各種情報を説明することがあるが(DBは「データベース」の略)、各種情報は、DBやリスト以外のデータ構造で表現されていても良い。データ構造に依存しないことを示すために「xxxDB」や「xxxリスト」を「xxx情報」と言うことができる。
また、以下の説明では、要素を特定するために名称が使用されるが、名称に代えて、識別情報として、ID又は番号などが使用されて良い。
また、以下の説明では、プログラムがプロセッサ(例えばCPU(Central Processing Unit))によって実行されることで発揮される機能(又はプログラム)を主語にして処理を説明することがあるが、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インタフェース装置(例えば通信ポート)を用いながら行うため、処理の主語がプロセッサとされても良い。プロセッサは、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。コンピュータプログラムは、プログラムソースから各計算機にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
本実施例は、VMの資源利用率の時間による変化を考慮した配置方法の一例に関する。なお、以下の説明では、仮想デスクトップとして利用される仮想計算機を「VM」と記載し、複数のVMの各々について、「VM#」と標記することがある(#は、a、b、…といった小文字のアルファベットである)。
図1は、本発明の実施例1に係るVM配置装置を含んだシステム全体の構成例を示す。
データセンタ100では、管理端末105を操作する管理者の要求に従い、VMを生成、配置及び動作させることができる。クライアント計算機(以下、クライアント)171のユーザが、このデータセンタ100上のVMへいわゆる画面転送型シンクライアントと呼ばれる形態でリモート接続し、VMを利用することができる。データセンタ100の一つの例は、企業のデータセンタであり、仮想デスクトップを集中管理する基盤を含む。本実施例では、一つのVMが一つの仮想デスクトップになる。クライアント171は、LAN172を介してVMにアクセスして良い。LAN172に代えて、他種の通信ネットワークが採用されても良い。
本実施例に係るデータセンタ100には、サーバ103及びサーバ104を含んだサーバ群と、サーバにVMを配置する機能を有するVM配置装置101と、VM配置装置101を操作する機能を有する管理端末105とがある。各サーバ、VM配置装置101及び管理端末105は、LAN(Local Area Network)102に接続されている。LAN102に代えて他種の通信ネットワークが採用されても良い。
サーバについて、サーバ103を例に取り説明する。
サーバ103は、通信インタフェース装置(例えばNIC(Network Interface Card))、記憶資源(例えばメモリ及びHDD(Hard Disk Drive))、及びそれらに接続されたCPUを有する。記憶資源が、仮想化機能を備えたソフトウェアである仮想化ソフト131を記憶し、CPUが、仮想化ソフト131を実行する。仮想化ソフト131上に、1又は複数のVM、例えば、VMa133およびVMb134が配置される。
サーバ103が有する記憶資源として、例えば、サーバ103にLAN102を介することなく接続された記憶装置(以下、ローカル記憶装置)132がある。ローカル記憶装置132には、VMa133の仮想的な記憶資源(例えば仮想HDD)のイメージであるVDa(仮想ディスクファイルa)135と、VMb134の仮想的な記憶資源(例えば仮想HDD)のイメージであるVDb(仮想ディスクファイルb)136とが格納される。VMa133(VMb134)は、動作する際に、仮想化ソフト131を介して、VDa135(VDb136)を参照及び/又は変更する。
なお、仮想化ソフト131は、そのソフト131を有するサーバ103の外部の装置(例えば、別のサーバ、或いは、VM配置装置101)から命令を受け、その命令に従い、VMの作成、起動、停止又は移動(或るサーバから別のサーバへのVMの移動)を実行する機能を有する。また、仮想化ソフト131は、そのソフト131上で動作するVM及びそのソフト131を有するサーバ103の資源利用状況(CPU利用率、メモリ利用率、HDD利用率、及び、利用したネットワーク帯域幅のうちの少なくとも1つ)を監視する機能を有する。
サーバ群におけるサーバ103以外の各サーバの構成及び機能は、サーバ103の構成及び機能と実質的に同じである。ただし、サーバ群における全てのサーバのハードウェア資源の性能(例えば、CPUの処理性能)が同じであるとは限らない。
VM配置装置101は、サーバ群中のサーバにVMを生成及び配置する。VM配置装置101は、例えば、1以上の計算機であり、通信インタフェース装置(例えばNIC(Network Interface Card))、記憶資源(例えばメモリ及びHDD(Hard Disk Drive))、及びそれらに接続されたCPUを有する。通信インタフェース装置が、LAN102を介して管理端末105及び複数のサーバに接続される。記憶資源が、VMリスト111と、サーバリスト112と、ログDB113と、配置評価結果DB114と、配置結果DB117と、1以上のコンピュータプログラムを記憶する。CPUが、その記憶資源内の1以上のコンピュータプログラムを実行することにより、配置実行部115と、配置決定部116と、管理部118としての機能を発揮することができる。VM配置装置101の各構成要素に関しては後述する。
管理端末105は、VM配置装置101と通信する機能と、VM配置装置101へ情報を入力する機能と、VM配置装置101の中のプログラムの起動や動作状況を監視する機能とを有する。管理者は、管理端末105を操作して、データセンタ100を管理する。すなわち、本実施例では、VM配置装置101が、管理サーバとして機能し、管理端末105が、VM配置装置101にアクセスする管理クライアントとして機能することができる。
次に、VM配置装置101が各構成要素に関して説明する。
VMリスト111は、サーバ群に存在する複数のVMのうち管理者が稼働させたい各VMに関する情報のリストである。VMに関する情報は、例えば、VMの名称と、そのVMの仕様(CPUの動作周波数、メモリ容量、又はHDD容量)を表す情報とを含んだ情報である。
サーバリスト112は、サーバ群における各サーバに関する情報のリストである。サーバに関する情報は、例えば、サーバのIPアドレスを表す情報を含んだ情報である。
図2は、パターンDB201の構成例を示す。
パターンDB201は、一定期間における各VMの資源利用率の変化を示す情報を格納するデータベースである。「VMの資源利用率の変化を示す情報」は、例えば、一定期間における各時区間(例えば6時間毎)でのVMの資源利用率を示す情報である。より具体的には、パターンDB201は、例えば、VM毎に、下記の情報、
(1)VMの名称であるVM名211、
(2)各時区間でのVMのCPU利用率(すなわち、一定期間におけるVMのCPU利用率変化)を示すCPU利用率変化212、
(3)各時区間でのVMのHDD利用率(すなわち、一定期間におけるVMのHDD利用率変化)を示すHDD利用率変化213、
を有する。HDD利用率は、或る期間内(例えば一秒間内)にVMがHDDにアクセスする時間の割合であってもよい。また、HDD利用率は、或る期間中(例えば一秒間内)にVMがHDDにデータ書き込みまたは読み出しに用いた帯域の、サーバの物理的なHDDの最大送受信可能な帯域に対する割合であってもよい。本実施例では、CPU利用率及びHDD利用率を示す情報が一日単位で記録されるが、この期間の長さは、一週間或いは一ヶ月といった別の長さであっても良い。なお、VM資源利用率として、CPU利用率及びHDD利用率の少なくとも一方に代えて又は加えて、VMのメモリ利用率の変化、ネットワーク帯域の利用率の変化を示す情報が、パターンDB201に格納されもよい。また、本実施例では、時区間における資源利用率は、その時区間における資源利用率の平均値であるが、平均値に代えて、時区間における所定の条件を満たす値(例えば最大値又は最小値)であっても良い。
図3は、配置評価結果DB114の構成例を示す。
配置評価結果DB114は、VMの配置結果に従う評価を示す情報をサーバ毎に有する。具体的には、配置評価結果DB114は、例えば、サーバ毎に、
(1)サーバの名称であるサーバ名311、
(2)サーバ内の全てのVMのCPU利用率の合計を示す配置CPU利用率312、
(3)サーバが稼動したときのCPU利用率を示す稼働CPU利用率313、
(4)サーバへのVMの配置が適切かどうかを示す評価結果314、
を有する。評価結果314の値としては、「不足」、「浪費」及び「適切」の3種類がある。
図4は、管理部118の構成例を示す。
管理部118は、管理コンソール2401と、パラメータDB2402と、初期配置管理部2403と、再配置管理部2404を有する。
管理コンソール2401は、VMリスト111、サーバリスト112が有する情報及びパラメータDB204が有する情報を入力する。管理コンソール2401は、配置結果DB117が有する情報を表示する。また、管理コンソール2401は、初期配置管理部2403及び再配置管理部2404を起動する。
パラメータDB2402は、初期配置管理部2403及び再配置管理部2404を動作させるためのパラメータを有するデータベースである。パラメータDB2402は、例えば、下記の(1)〜(5)のパラメータ、
(1)配置すべきVMの集合: L、
(2)利用可能なサーバの集合: S、
(3)サーバの資源状況を判断するための基準: HighCPULevel, LowCPULevel、
(4)サーバにどれぐらいVMを乗せるかを判断するための基準(許容範囲): K、
(5)再配置が必要か否かの判断(再配置要否判断)を実行する時間間隔(再配置間隔): T
を有する。HighCPULevel、LowCPULevel、及びKは、0から100%におけるいずれかの値となる。
なお、「許容範囲」とは、サーバの資源の何パーセントまでVMで利用するかを示す指標である。例えば、サーバ上に配置する1以上のVMのCPUの平均利用率(平均CPU利用率)はサーバのCPU処理能力のK%以下になるように配置する必要がある。Kが100に近いほど、サーバに多くのVMを配置することができるが、VMの資源利用率が急に高くなった場合、サーバが対応できなくなる可能性が高い。逆に、Kが0に近いほど、サーバの資源の浪費が発生する可能性がある。なお、本実施例では、資源利用率の代表としてCPUの処理能力(CPU利用率)が採用されるが、他種の資源利用率も考慮されて、許容範囲が設定されてもよい。設定範囲は、資源利用率の種類毎に異なっていても良い。
「再配置間隔」は、例えば、「毎週の最終勤務日の勤務時間終了後」或いは「毎週の週末」である。
初期配置管理部2403は、一回目のVM配置を管理する。初期配置管理部2403は、配置決定部116を起動し、パラメータDB2402に格納されるパラメータを配置決定部116に渡す。また、再配置管理部2404は、再配置間隔Tごとに配置決定部116に再配置命令を出す。
図5は、配置結果DB117の構成例を示す。
配置結果DB117は、どのサーバにどのVMを配置するかを示すデータベースである。具体的には、配置結果DB117は、例えば、サーバ毎に、下記の情報、
(1)サーバの名称であるサーバ名2501、
(2)サーバに配置された配置されるVMの名称の集合であるVM集合2502、
を有する。
配置決定部116は、パラメータDB2402に格納されているパラメータであるHighCPULevel、LowCPULevel、及びKを参照し、パラメータSが示す1以上のサーバに、パラメータLが表す1以上のVMを配置し、配置の結果を配置結果DB117に格納する。
配置実行部115は、仮想化ソフト131や142と通信し、配置結果DB117に従う、VMの配置を、実行する。
本実施例では、VMの配置として、「初期配置」と「再配置」の2種類がある。
初期配置は、下記の(a)又は(b)の条件、
(a)データセンタ100の起動後に初めてサーバ群にVMを配置すること、
(b)n回目のVM配置で配置されたVMの数と(直前回VM数)、次のVM配置((n+1)回目のVM配置)で配置されるVMの数(今回VM数)との差が、所定数を超えている(例えば、配置されるVMの数が大幅に変更される)、
(c)管理者から初期配置であることが指定された、
に適合する配置である。条件(b)については、直前回VM数と今回VM数のどちらが大きくても良い。初期配置のためには、管理者からの情報入力が必要である。
再配置は、サーバ群における複数のVMのうちの少なくとも1つの配置先を或るサーバから別のサーバに変更することである。再配置のために、管理者からの情報入力は格別必要としない。
図6は、実施例1で行われる処理の全体の流れの一例を示すフローチャートである。
まず、ステップ400では、データセンタ100が起動する。具体的には、例えば、管理者が、仮想化ソフト131(141)を導入済みのサーバ133(104)を起動し、各サーバにLAN102を接続する。また、管理者が、VM配置装置101および管理端末105を起動し、装置101及び端末105をLAN102に接続する。ステップ400は、例えば、企業の業務時間開始の所定時間前(例えば30分前)に行われて良い。
次に、ステップ401で、初期配置か否かが判断される。初期配置か否かの判断は、管理者が行っても良いしコンピュータ(例えば、VM配置装置101)が行っても良い。ステップ401の判断の結果が肯定的の場合、ステップ402及び403が行われる。ステップ401の判断の結果が否定的の場合、ステップ402及び403がスキップされ、ステップ404が行われる。
ステップ402では、管理端末105が、管理者から、特定の情報(例えば、配置対象のVMに関する情報や配置する際の条件など)の入力を受け、その特定の情報を、VM配置装置101に入力する。
ステップ403では、VM配置装置101が、入力された特定の情報を基に、VMの配置を実行する。
次に、ステップ404で、再配置要否判断が行われる。再配置か否かの判断は、管理者が行っても良いしコンピュータ(例えば、VM配置装置101)が行っても良い。本実施例では、VM配置装置101は、一定期間ごとにステップ404を行う。再配置間隔T毎に、再配置要否判断が実行される。再配置間隔Tは、例えば、ステップ402で管理者が入力した特定の情報に含まれる値であって、パラメータDB2402に含まれるパラメータ値である。ステップ404の判断の結果が肯定的の場合、ステップ405及び406が行われる。ステップ404の判断の結果が否定的の場合、ステップ405がスキップされ、ステップ406が行われる。
ステップ405では、VM配置装置101が、ステップ403においてVM配置済みの複数のVMの一部(又は全て)のVMを再配置する。
ステップ406では、VMの動作に従うサービスが提供される。例えば、一日の業務時間など、一定期間VMが動作し、その結果として、クライアント171のユーザへサービスが提供される。具体的には、VMで画面転送ソフトウェアが実行されることで、VMが提供する仮想デスクトップが、そのVMに接続したクライアント171のディスプレイ画面に表示される。VMが動作している間に、仮想化ソフト131(141)が、そのソフト131(141)を実行するサーバ103(104)の資源利用率、及び、VMの資源利用率を監視し、その監視結果を表す情報をVM配置装置101に蓄積する。具体的には、例えば、下記の通りである。
(1)仮想化ソフト131(141)が、そのソフト131(141)を有するサーバ103(104)で実行される各VMについて、CPU利用率及びHDD利用率を監視する。一定期間毎(例えば6時間毎)に、仮想化ソフト131(141)が、CPU利用率及びHDD利用率(例えば、その一定期間におけるCPU利用率の平均及びHDD利用率の平均)を表す情報を、VM配置装置101のパターンDB113に格納する。
(2)仮想化ソフト131(141)が、そのソフト131(141)を有するサーバ103(104)の一定時間(例えば1時間)におけるCPU利用率を一定時間毎に算出する。仮想化ソフト131(141)は、算出したCPU利用率を表す値を、配置評価結果DB114に格納する。
なお、仮想化ソフト131(141)に代えて、VMが、VMの資源利用状況とそのVMが配置されたサーバの資源利用状況とを監視する監視ツール(例えばアプリケーションプログラム)を実行して良い。この場合、その監視ツールが、周期的に、データベース(例えば、パターンDB113又は配置評価結果DB114)を更新して良い。
一定期間終了後(例えば一日の業務時間が終了すると)、ステップ406が終了する。
ステップ407では、データセンタ100が停止する。ステップ407は、例えば、企業の業務時間後、サーバ群におけるVMが利用されなくなることであっても良い。具体的には、例えば、仮想化ソフト131(141)がVMを停止し、そして、サーバ103(104)の電源がターンオフされる。管理者が、VM配置装置101および管理端末105を停止させてもよい。
図7は、ステップ402およびステップ403の詳細な流れの一例を示すシーケンス図である。
まず、ステップ402では、管理者が管理端末105を使用して入力した情報が、VM配置装置101における管理部118内の管理コンソール2401へ送信される。具体的には、例えば、ステップ402では、下記が行われる。
(1)管理者によって入力された情報は、稼動したいVMに関する情報(例えば、VM名)を含む。管理コンソール2401が、そのVMに関する情報を、VMリスト111に登録する。
(2)管理者によって入力された情報は、利用されるサーバに関する情報(例えば、サーバのIPアドレス)を含む。管理コンソール2401が、そのサーバに関する情報を、サーバリスト112に登録する。
(3)管理コンソール2401が、VMリスト111から特定されるVM毎に、VMの資源利用率を表す情報を、パターンDB113に格納する。パターンDB113に格納される、VMの資源利用率の値は、例えば、利用者が過去に利用した仮想デスクトップ(VM)の資源利用率を基に決定されて良いし、所定の試験運用期間中での仮想デスクトップ(VM)の資源利用率を表す値であっても良い。
(4)管理者によって入力された情報は、パラメータ「HighCPULevel」及び「LowCPULevel」を含む。管理コンソール2401が、それらのパラメータを、パラメータDB2402に格納する。
(5)管理者によって入力された情報は、前述したパラメータK(許容範囲:K)を含む。管理コンソール2401が、パラメータKを、パラメータDB2402に格納する。
(6)管理者によって入力された情報は、前述したパラメータT(再配置間隔:T)を含む。管理コンソール2401が、パラメータTを、パラメータDB2402に格納する。
次に、ステップ501では、管理端末105が、管理者の操作に従い、管理部118にVM配置命令を送信する。管理部118は、VM配置命令を受け、ステップ502において、配置決定部116を起動し、ステップ503で、配置決定部116に複数のパラメータを渡す。それら複数のパラメータは、例えば、下記のパラメータ、
(1)配置すべきVMの集合: L、
(2)利用可能なサーバの集合: S、
(3)HighCPULevel及びLowCPULevel、
(4)許容範囲: K、
である。ただし、Lの値は、VMリスト111に登録されている全てのVMに関する情報(例えば、全てのVMのVM名)である。また、Sの値は、サーバリスト112に登録されている全てのサーバに関する情報(例えば、全てのサーバのIPアドレス)である。また、HighCPULevel、LowCPULevel及びKの値は、ステップ402において管理者が入力した値である。
ステップ504では、配置決定部116が、管理部118から受けた複数のパラメータに基づいて、VMの配置を決定し、配置結果(どのサーバにどのVMを配置するかを表す情報)を、ステップ505において、配置結果DB117に格納する。
ステップ506では、配置決定部116が、配置結果の格納が完了したことを、配置実行部115に通知する。配置実行部115は、その通知を受けて、ステップ507およびステップ508において、配置結果DB117から、どのサーバにどのVMを配置すべきかを特定し、ステップ509において、特定した通りにVMを配置するべくVM配置を実行する。具体的には、例えば、配置実行部115は、配置結果DB117のサーバ名2501に該当するサーバ(以下、この段落において「対象サーバ」と言う)を起動する。配置実行部115は、対象サーバに対応するVM集合2502に属する全てのVMを対象サーバに配置する。対象サーバに対応するVM集合2502に属する1つのVM(以下、この段落において「対象VM」と言う)を例に取ると、その処理は、例えば次の通りである。すなわち、配置実行部115は、対象VMが対象サーバに存在するか否かの第1の判断を行う。この第の判断の結果が否定的の場合、配置実行部115は、対象サーバ以外のサーバに対対象VMが存在するか否かの第2の判断を行う。この第2の判断の結果が肯定的の場合、配置実行部115は、対象サーバ以外のサーバから対象サーバに対象VMを移動する。この第2の判断の結果が否定的の場合、配置実行部115は、対象サーバに対象VMを新規に作成させる。このようなVM配置の完了後、配置実行部115が、ステップ510で、管理部118に完了を通知する。ステップ511において、管理者は、管理コンソール2401から管理端末105を通じて、配置の結果を確認することができる。なお、ここで確認される配置結果(管理コンソール2401から管理端末105に送信される配置結果)は、例えば、
(*)どのサーバにどのVMが配置されたかを表す情報、
(*)VM配置後におけるサーバの資源利用率とVMの資源利用率を表す情報、
である。
次に、図7のステップ504を説明する。
図8は、図7のステップ504の詳細な流れの一例を示すフローチャートである。
まず、ステップ601において、配置決定部116が、パラメータSが表す複数のサーバの中から、1つのサーバを選ぶ。サーバは、ランダムに選択されても良いし、所定の規則に従って選択されても良い(例えば、新規導入されてからの稼動時間が少ない順にサーバが選択されるようになっていても良い)。図8及び図9の説明において、ステップ601で選択されたサーバを「選択サーバ」と言い、選択サーバを表す情報を、「NextServer」と言う。
ステップ602では、配置決定部116が、NextServerに配置するVMの集合を、パラメータLが表す1以上のVMの中から選択する。図8及び図9の説明において、選択されたVM集合を「選択VM集合」と言い、選択VM集合を表す情報を「Q_in」と意う。
ステップ603では、配置決定部116が、NextServerとQ_inとを配置結果DB117へ格納し、Q_inに属するVMを示す情報を、パラメータLより削除する。
ステップ601およびステップ602は、パラメータLが表すVMの数がゼロになるまで繰り返し実行される。なお、本実施例では、配置するVMの数及びVMに要求される性能に比べて、サーバの数及び性能は十分あると仮定する。データセンタ100に設置されたサーバだけでは足りない場合は、データセンタ100の外部のサーバ(例えば、パブリッククラウドのサーバ)にVMが配置されても良い。
図9は、図8のステップ602の詳細な流れの一例を示すフローチャートである。
ステップ602では、配置決定部116が、選択サーバ(NextServerが表すサーバ)に配置するVMを、パラメータLが表すVM集合より選択し、選択したVMを選択VM集合(Q_inが表すVM集合)に格納する。ここでは、例えば、既に先に選択されているVMとCPU利用時間帯が最も違うVMが優先的に選択されて良い。最初に選択されるVMは、パラメータLが表すVM集合のうちのいずれのVMであっても良いし、所定の規則に従うVM(例えば、CPU利用率が最も高いVM)であっても良い。
ステップ701では、配置決定部116が、選択サーバに配置するVMの候補を表す情報として、Q_outを作成する。Q_outは、VMの集合を表す情報である。Q_outの初期値はLである。そして、選択サーバに配置されるVMの集合を表すQ_inの初期値は、ゼロである。
ステップ702では、配置決定部116が、Q_outが表すVM集合のうち、CPU利用率の一番高いVMを選択する。ここで選択されたVMを、「第1種の選択VM」と言い、第1種の選択VMを表す情報を「BigVM」と言う。配置決定部116が、BigVMをQ_inに含める。そして、配置決定部116が、BigVMをQ_outから削除する。
次に、ステップ703では、配置決定部116が、Q_inが表す1以上のVM(VM集合)のCPU利用率の和を、時区間別に計算する。その計算結果を、分布Pとする。例えば、分布Pは、時間をx軸(又はy軸)としCPU利用率の和をy軸(又はx軸)としたxy直行座標系のグラフとすることができる。なお、分布Pの計算を、例えば次のように行ってもよい。すなわち、ステップ703では、Q_inが表すVMの集合が、{VM_1,VM_2,…,VM_N}とで良い。ここで、Nは、Q_inが表すVMの数である。なお、VM_nのCPU利用率の変化212は、以下の値を持つと仮定して良い。すなわち、VM_nのw番目の時区間のCPU利用率=Value_n_w、下記数1。
Figure 2012053393
Hは、VMのCPU利用率の変化212の時区間の数である。図2に示す例では、0時〜6時,7時〜12時,13時〜18時,19時〜24時という4時区間があるため、この場合、H=4となる。そこで、分布PのH個の時区間のCPU利用率をP_1,P_2,…,P_Hとする。P_1,P_2,…,P_Hの各値は、以下のように計算されてもよい。P_w=Value_1_w+Value_2_w+…+Value_N_w、下記数2。
Figure 2012053393
次に、ステップ704では、配置決定部116が、Q_outが表すVM集合から、分布Pと相関係数が一番低いVMを選択する。ここで選択されたVMを、「第2種の選択VM」と言い、第2種の選択VMを表す情報を「MinVM」と言う。配置決定部116が、MinVMをQ_inに含める。そして、配置決定部116が、MinVMをQ_outから削除する。なお、Q_outの中にあるVM_checkという任意のVMとPの相関係数の計算は、例えば、次のように行ってもよい。すなわち、VM_checkのCPU利用率の変化212は、以下の値を持つ、
(*)VM_checkのh番目の時区間のCPU利用率の値は、Value_check_hである。
(*)hは1からHまでの間の値を取る。
と仮定して良い。そこで、VM_checkとPの相関係数は、下記数3でもよい。ここで、Value_check_aveは、Value_check_1,Value_check_2,..,Value_check_Hの H個の値の平均値である。なおP_ave は、P_1,P_2,..,P_Hの H個の値の平均値である。
Figure 2012053393
次に、ステップ705では、配置決定部116が、Q_inが表す全てのVMのCPU利用率の平均値(平均CPU利用率)が許容範囲Kよりも高いか否かを判断する。この判断の結果が肯定的の場合(ステップ705:YES)、ステップ706及び707が実行され、この判断の結果が否定的の場合(ステップ705:NO)、ステップ706がスキップされ、ステップ707が実行される。
ステップ706では、配置決定部116が、MinVMをQ_inから削除する。
ステップ707では、配置決定部116が、Q_outが表すVMの数がゼロか否かを判断する。この判断の結果が肯定的の場合(ステップ707:YES)、図8のステップ602が終了となり、この判断の結果が否定的の場合(ステップ707:NO)、ステップ703が実行される。
図8のステップ602の結果として、選択サーバ(NextServerが表すサーバ)に格納すべきVMの集合を表す情報であるQ_inができる。Q_inが表すVM集合(VMの組合せ)は、パラメータLが表す複数のVMから構成し得る他の全てのVM集合に比べて、複数の時区間でのCPU利用率の重複が小さい(但し、例えば、VM集合を構成するVMの数は、同じである)。言い換えれば、Q_inが表すVM集合(VMの組合せ)は、パラメータLが表す複数のVMから構成し得る他の全てのVM集合に比べて、各時区間でのCPU利用率の差が大きい。具体的には、例えば、Q_inが表すVM集合に、第1の時区間でのCPU利用率が非常に高く第2の時区間でのCPU利用率が非常に低いVMがあった場合には、第1の時区間でのCPU利用率が非常に低く第2の時区間でのCPU利用率が非常に高いVMが、Q_inが表すVM集合に新たに追加されることになる。
次に、図6のステップ405での再配置を説明する。
「再配置」とは、前述したように、サーバ群における複数のVMのうちの少なくとも1つの配置先を或るサーバから別のサーバに変更することである。これにより、サーバの負荷状況の改善が期待できる。
再配置間隔Tは、図6のステップ402で管理者により入力されるパラメータである。再配置管理部2404は、再配置間隔T毎に、配置決定部116に再配置命令を出す。これにより、管理者が別途指示をすることなく自動で再配置要否判断が開始される。
図10は、図6のステップ405の詳細な流れの一例を示すシーケンス図である。
まず、ステップ800において、配置管理部118が、配置命令を配置決定部116に出す。
そして、ステップ801において、配置決定部116が、配置評価結果DB114内のサーバ毎の稼働CPU利用率313を基に、サーバ毎に評価結果314を決定する。決定される評価結果314は、例えば、以下の通りである。
(1)稼働CPU利用率313の値がHighCPULevel以上の場合、評価結果314の値は「不足」である。
(2)稼働CPU利用率313の値がLowCPULevel以上の場合、評価結果314の値は「浪費」である。
(3)稼働CPU利用率313の値がHighCPULevelとLowCPULevelの間の場合、評価結果314の値は「適切」である。
また、本実施例では、説明をわかりやすくするため、資源利用率としてCPU利用率だけに着目するが、CPU利用率だけではなく、HDD、メモリ、ネットワーク帯域に関しても同じような評価が可能である。また、複数種類のハードウェア資源の負荷(利用率)を考慮した評価も可能である。例えば、CPU、HDD及びメモリのそれぞれの利用率を同時に考慮した場合、以下のような評価基準が採用されても良い。
(1)CPU利用率が「不足」、HDD利用率が「不足」、又はメモリ利用率が「不足」の場合、評価結果314の値は「不足」である。
(2)上記の(1)の条件に該当せず、且つ、CPU利用率が「浪費」、HDD利用率が「浪費」又はメモリ利用率が「浪費」の場合、評価結果314の値は「浪費」である。
(3)上記の(1)と(2)のいずれの条件も満たされない場合、:評価結果314の値は「適切」である。
ステップ802では、配置決定部116が、配置評価結果DB114を基に、以下のパラメータを設定する。
(1)パラメータLは、配置評価結果DB114の評価結果314が「不足」又は「浪費」となったサーバ上のVMの集合である。
(2)パラメータSは、配置評価結果DB114の評価結果314が「不足」又は「浪費」となったサーバと、サーバリスト112が表すサーバとの集合である。
(3)HighCPULevel及びLowCPULevelは、管理者がステップ402で入力した値である。
(4)許容範囲Kは、配置評価結果DB114の評価結果314が「成功」のサーバ上の初期配置時のVMのCPU利用率(平均CPU利用率)の平均である。ただし、初期配置から2回目以降の再配置の場合では、許容範囲Kは、配置評価結果DB114の評価結果314が「成功」のサーバ上の前回の再配置時のVMのCPU利用率(平均CPU利用率)の平均である。
ステップ803では、ステップ802において設定された複数のパラメータを基に、ステップ504、505、506、507、508、509及び510が実行される。
ステップ803が終了した後、配置決定部116が、配置完了したことを再配置管理部118へ通知する。
本実施例では、まず、図6のステップ403において、複数のVMについて初期配置が行われる。そして、サーバ上のVMが運用されている間、再配置間隔T毎に、サーバの負荷状況が評価される。資源が不足又は浪費となったサーバだけを対象に、ステップ405において、再配置が実行される。これによって、資源が不足及び浪費しているサーバの数をなるべく少なくすることができる。
本実施例によれば、サーバが一台ずつ選択され、選択されたサーバに、CPU利用率の合計が許容範囲K以下になるようにVMが配置される。これにより、サーバの台数を事前に決める必要がなく、必要最小限のサーバ数で必要なVMを稼動させることができる。
また、本実施例によれば、サーバに既に配置されることが決定された1以上のVMのCPU利用率の分布Pと相関関係が最も小さいVMが、そのサーバに配置されるVMとして決定される。これにより、各時区間で、1つのサーバにおいて、複数のCPU利用率がバランス良くばらつくので、サーバの資源に過不足が生じないようにすることが期待できる。
さらに、本実施例によれば、再配置の場合、許容範囲Kが、配置評価結果DB114の中のサーバ稼動実績により更新される。このため、許容範囲Kが、サーバの稼働状況に応じた適切な値になることが期待できる。つまり、本実施例によれば、再配置の際に、すでに運用したサーバの評価結果を参考に、より適切にVMを配置することの確率を上げることが期待できる。
なお、実施例1で述べた配置対象のVMは、仮想的な記憶資源(仮想HDD、以下「VD」と呼ぶ)がサーバのローカル記憶装置に格納されるVM(以下、ローカルVMと呼ぶ)に限らず、VDがインターネット或いはWAN(Wide Area Network)或いはLAN)(Local Area Network)などのネットワークを介してアクセスされる記憶装置(以下、ネットワークストレージと呼ぶ)に格納されるVM(以下、ネットワークVMと呼ぶ)でもよい。ネットワークVMの場合、VMとVDの間の接続には、例えばiSCSI(Internet Small Computer System Interface)またはNFS(ネットワークファイルシステム)など、ネットワーク経由でデータを送受信できるプロトコルが使用されてもよい。また、VMの動作基盤であるサーバは、iSCSIやNFSなどを用いたネットワーク通信機能を有して、ネットワークストレージとして利用されても良い。サーバがネットワークストレージとしても利用される場合、ネットワークVMのVDがサーバのローカル記憶装置に格納されても、VMとVDの間の通信はiSCSIやNFSなど、ネットワーク経由でデータ送受信するプロトコルが使用されて良い。ネットワークVMの一つの特徴は、ステップ403および405は、VM稼働中でも実行できることにある。
なお、実施例1で述べた配置の対象は、ローカルVMとネットワークVMが混在したVMのグループであってもよい。
実施例1で述べた配置の対象がネットワークVMの場合、VMのサーバへの配置とは独立して、VDのネットワークストレージへの配置が行われてもよい。具体的には、例えば、実施例1で述べたVM配置手法と同様の手法でVDが各ネットワークストレージへ配置されてもよい。この場合、実施例1で用いられたCPU利用率の変化212に代えて又は加えて、HDD利用率の変化213が利用されてもよい。
実施例1で述べた配置の対象がネットワークVMの場合、VMがVDへアクセスしやすくするために、VDが格納されるネットワークストレージと高速に通信できるサーバにVMが配置されるように配置方法が調整されてもよい。
以下、本発明の実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略或いは簡略する。
本実施例では、異なる複数のタイプのVMが配置される。
図11は、本発明の実施例2に係るVM配置装置を含んだシステム全体の構成例を示す。
本実施例によれば、内部資源902におけるサーバ(内部サーバ)103(104)の他に、外部資源903におけるサーバ(外部サーバ)904にも、VMが配置され得る。内部資源902は、サーバ103(104)と、ネットワークファイルサーバ(以下、ファイルサーバ)906とを含む。外部資源903は、外部サーバ904を含む。VM配置装置907が、LAN102を介してファイルサーバ906と通信することができ、且つ、WAM905を介して外部サーバ904と通信することができる。以下、内部サーバと外部サーバを特に区別しない場合には、単に「サーバ」と言う。
外部資源903は、いわゆるパブリッククラウドなど、情報処理能力を貸し出す基盤である。外部サーバ904は、仮想化ソフト(以下、外部仮想かソフト)911を有する。外部サーバ904の仮想化ソフト911により、VMを動作させることが可能である。また、外部仮想化ソフト912と仮想化ソフト131(141)は、動作中のVMをサーバ間で移動する機能を有する。ただし、移動されるVM(ネットワークVM)のVD(仮想HDD)は、ファイルサーバ906に置かれる必要がある。
図12は、VM配置装置907の構成例を示す。
VM配置装置907は、ローカルVM配置部1001と、資源監視部1003と、ネットワークVM移動部1004と、外部資源利用情報DB1005と、VM詳細情報DB1006とを有する。各機能1001、1003及び1004は、VM配置装置907内のCPUで所定のコンピュータプログラムが実行されることにより発揮される機能である。
ローカルVM配置部1001は、内部サーバ103(104)へVMを配置する。
資源監視部1003は、各サーバの資源使用状況を定期的に監視する。
ネットワークVM移動部1004は、サーバ上のローカルVMを選択してネットワークVMへ変える。また、ネットワークVM移動部1004は、内部サーバ103(104)と外部サーバ904との間でのネットワークVMの移動を実行する。
外部資源利用情報DB1005は、アカウント情報など外部資源903を利用するための情報を格納する。
VM詳細情報DB1006は、ネットワークVMを選択するための情報を格納する。
管理端末105は、外部資源利用情報DB1005及びVM詳細情報DB1006の情報の更新、及び、VM配置装置907の動作状況を表す情報を表示する。
図13は、VM詳細情報DB1006の構成例を示す。
VM詳細情報DB1006は、VM毎に、下記の情報、
(1)VMの名称であるVM名2301、
(2)VMで重要なデータを扱うかどうかを表す重要性2302、
(3)VMへ外部(例えば社外)からのアクセスがあるかどうかを表す外部アクセス2303、
を有する。例えば、社内ポリシー上で機密情報と決めたデータを扱うVMについては、重要性2032の値が「YES」となり、それ以外のVMについては、重要性2032の値が「NO」となって良い。また、例えば、内部(例えば社内)のIPアドレスからの画面転送の接続が一度もないVMについては、外部アクセス2303の値が「NO」となり、それ以外のVMについては、外部アクセス2303の値が「YES」であって良い。
図14は、実施例2で行われる処理の全体の流れの一例を示すフローチャートである。
まず、ステップ1100において、内部サーバ群、VM配置装置907および管理端末105が起動され、LAN102に接続される。
次に、ステップ1101において、ローカルVM配置部1001が、内部サーバ103(104)上にVMを配置する。なお、VM配置装置901が配置するVMは、全て、内部サーバのローカル記憶装置132に格納されるVD(仮想HDD)を利用するローカルVMである。
ローカルVM配置部1001は、実施例1で述べたVM配置装置101と同じ機能を実現してもよい。この場合、ステップ1101におけるVM配置手法は、実施例1で述べた手法と同様の手法であって良い。
ステップ1102では、管理端末105が、管理者から情報の入力を受け、その情報を、外部資源利用情報DB1005及び/又はVM詳細情報DB1006へ格納する。
その後、ステップ1103及びステップ1104が行われ、その後、ステップ1105で、例えば図6のステップ407と同様処理が終了する。
図15は、図14のステップ1103の詳細な流れの一例を示すシーケンス図である。
まず、ステップ1200において、管理者が、ネットワークVM移動部1004を起動する。
次に、ステップ1201では、ネットワークVM移動部1004が、外部資源利用情報DB1005を基に、外部サーバ904に接続し、内部サーバからVMを移動できるような準備(例えば、事前にログインすること)を行う。ステップ1201の結果、外部サーバ904が、ステップ1202において、VMを受け入れ可能な状態になる。
次に、ステップ1203において、ネットワークVM移動部1004が、VMを配置したサーバごとに、ネットワークVMに変更する対象として、一つのローカルVMを選択する。ネットワークVM移動部1004は、次の基準により、ローカルVMを選択することができる。
(1)ステップ1101におけるVM配置手法が、実施例1で述べた配置方法と同様である場合、ステップ704において最後にQ_inが表すVM集合に含められるVMが、ネットワークVMとして選択される。その選択されたVMを別のサーバに移動することにより、サーバ内のVMの資源利用時区間の重複度が低くなることが期待できる。
(2)ステップ1101で利用するVM配置手法に依存せず、以下の基準で、ローカルVMがネットワークVMとして選択されて良い。
(*)VM詳細情報DB1006内の重要性2302の値が「NO」のローカルVMが優先的に選択される。つまり、重要なデータがないVMが選択される。
(*)VM詳細情報DB1006内の外部アクセス2303の値が「YES」のローカルVMが優先的に選択される。つまり、社外からアクセスされるVMが選択される。社外からのアクセスの数がカウントされ、そのカウント値が多いVMほど優先的に先に選択されても良い。これにより、社外からのアクセスが多いVMが選択されることになる。「社外からのアクセス」とは、WAN又はインターネットを介したアクセスである。
(*)資源監視部1003の監視結果を表す情報を基に、HDD利用率が小さいVMほど優先的に選択されて良い。
ステップ1204では、ネットワークVM移動部1004が、ステップ1203で選択されたVMのVDをファイルサーバ906へ移動する。これにより、そのVMがネットワークVMとなる。
次に、ステップ1205では、ネットワークVM移動部1004が、資源監視部1003へ監視を開始するように命令する。
すると、ステップ1206において、資源監視部1003が、内部サーバ群の資源利用状況の監視を開始する。資源利用状況の監視とは、サーバの資源利用率(例えばCPU利用率)がG%より高くなる場合に、ネットワークVM移動部1004へ通知を行うことである。なお、閾値Gのデフォルト値は、管理者任意の値(例えば85%)でよい。なお、管理者が閾値Gの値を変更してもよい。
図16は、図14のステップ1104の詳細な流れの一例を示すシーケンス図である。
ステップ1104では、資源監視部1003が、VM運用中のサーバの負荷を監視し、負荷が高い時に、ネットワークVMを移動させる。
まず、ステップ1300において、資源監視部1003が、内部サーバ103(104)の資源を監視する状態(モード)となる。
ステップ1301では、内部サーバ103でVMが稼動する。
ステップ1302において、サーバ103のCPU利用率がG%より高くなる。
そこで、ステップ1303において、資源監視部1003が、サーバ103の資源不足(サーバ103のCPU利用率がG%(例えばHighCPULevel)を越えたこと)を検出し、ステップ1304において、ネットワークVM移動部1004への第1の通知を送信する。第1の通知は、例えば、サーバ103のCPU利用率とG%との差分を表す値を含んで良い。
ステップ1305において、ネットワークVM移動部1004が、その第1の通知を受けて、サーバ103へ1以上のネットワークVM(例えば、VMb134)を外部サーバ904へ移動する命令を出す。1以上のネットワークVMは、第1の通知を基に決定された1以上のVM、例えば、サーバ103のCPU利用率とG%(例えばHighCPULevel)との差分よりもCPU利用率の合計が大きい1以上のVMであって良い。CPU利用率が大きいVMほど優先的にネットワークVMとして選択されて良い。
すると、ステップ1306において、サーバ103が、VMb134を外部サーバ904へ移動する。
ステップ1307では、VMb134が、外部サーバ904上の外部仮想化ソフト911上で動作する。
ステップ1308では、サーバ103の状態が、VMb134が動作するための資源を十分に確保されている状態になる。例えば、サーバ103のCPU利用率がG%(例えばHighCPULevel)以下の状態が一定時間続いている。
すると、ステップ1309で、資源監視部1003が、サーバ103の状態が、VMb134が動作するための資源を十分に確保されている状態になっていることを検出し、ネットワークVM移動部1004へ第2の通知を送信する。第2の通知は、例えば、サーバ103のCPU利用率とG%との差分を表す値を含んで良い。
ステップ1310において、VM移動部1004が、第2の通知を受けて、外部サーバ904へVMb134をサーバ103へ戻す命令を出す。ステップ1211において、外部サーバ904の外部仮想化ソフト911が、VMb134をサーバ103へ移動する。外部サーバから戻される1以上のVM(戻す命令の対象となる1以上のVM)は、第2の通知を基に決定された1以上のVM、例えば、サーバ103のCPU利用率とG%(例えばHighCPULevel)との差分よりもCPU利用率の合計が小さい1以上のVMであって良い。CPU利用率が小さいVMほど優先的にネットワークVMとして選択されて良い。
なお、ステップ1308で想定した状況が発生しない場合は、VMb134がシステム動作終了まで外部サーバ904で動作することになる。この場合は、次回システム起動する時に、ネットワークVM移動部1004が、ステップ1310を実行することで、VMb134をサーバ103に戻しても良い。
上記のように、本実施例においては、VDへのアクセス速度が速いローカルVMをメインに利用することで利用者の満足度を高く維持することができる。一方、サーバの資源変動になるべく迅速に対応できるように、VM稼働中でもVMを或るサーバから別のサーバへ移動することができる。つまり、本実施例は、VMのタイプを基に、そのVMの配置先として適切なサーバを選択することができる。
また、本実施例によれば、サーバの資源不足が発生した時、外部資源へ移動するVMとして、サーバに残るVM同士の資源利用時区間が互いにかさならないようなVMを選択することができる。これにより、サーバの資源を有効に活用することが期待できる。
また、本実施例によれば、VMの扱うデータの重要性、VMにアクセスするクライアントの存在場所(例えば、社外か社内か)、及び、VMのHDD利用率を少なくとも1つを基に、外部資源へ移動するVMが選択される。これにより、VMの移動によるユーザへの影響が少ないことが期待できる。
また、本実施例によれば、サーバの資源の不足が発生した際に、外部資源(例えばパブリッククラウド)903にVMが移動され、サーバの資源が浪費となった際に、外部資源903からVMが戻されるといったことを、管理者の操作を必要とせずに実現することができる。
以上、本発明の幾つかの実施例を説明したが、これらは、本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。すなわち、本発明は、他の種々の形態でも実施する事が可能である。
例えば、VMの配置先のサーバは、1つのサーバでも良いし、複数のサーバからなるグループ(サーバプール)であっても良い。後者の場合、上述した「サーバ群」は、複数のサーバプールを含んで良い。
また、例えば、実施例1と実施例2が独立して動作することもできるし、実施例1と2が組み合わされた1つのシステムが実現されても良い。また、或る実施例の構成の一部が他の実施例の構成を加えられても良い。また、各実施例の構成の一部について、他の構成の追加、削除又は置換が可能である。
たとえば、以下のように実施例1と実施例2が組み合わされた1つのシステムが実現されてもよい。
また、上記の各構成、機能、処理部等は、それらの一部または全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。また、上記の各構成、機能等は、CPUがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、データベースなどの情報は、メモリやHDDなどの記憶装置またはICメモリカード、SDメモリカード、DVD(Digital Versatile Disk)などの記憶媒体に置くことができる。
101…VM配置装置 103,104…サーバ 105…管理端末 131,141…仮想化ソフト

Claims (15)

  1. 複数の物理計算機に複数の仮想計算機を配置する装置であって、
    複数の時区間のそれぞれにおける仮想計算機の資源負荷値を仮想計算機毎に表す情報である仮想計算機負荷情報を記憶する記憶部と、
    前記仮想計算機負荷情報を基に、各時区間について資源負荷値の差が最も大きくなるような2以上の仮想計算機を選択し、選択した2以上の仮想計算機を同一の物理計算機に配置する制御部と
    を有する装置。
  2. 請求項1記載の装置であって、
    前記制御部が、複数の仮想計算機が配置された後の複数の物理計算機の資源負荷値を基に、前記複数の物理計算機のうち、資源の過不足が生じている物理計算機を特定し、特定した物理計算機に対して、仮想計算機の追加又は削除である再配置を行う、
    装置。
  3. 請求項2記載の装置であって、
    前記複数の物理計算機は、1以上の内部物理計算機と外部物理計算機とを含み、
    前記制御部が、資源が不足している内部物理計算機である対象内部物理計算機を特定した場合、前記対象内部物理計算機から前記外部物理計算機に或る仮想計算機を移動する、
    装置。
  4. 請求項3記載の装置であって、
    前記或る仮想計算機は、前記対象物理計算機がアクセスするローカル型の記憶装置に格納される仮想計算機であるローカル型の仮想計算機であり、
    前記制御部が、前記ローカル型の仮想計算機の仮想的な記憶資源のイメージである仮想資源ファイルを、前記ローカル型の記憶装置から前記外部物理計算機がアクセス可能なファイルサーバに移動することで、前記ローカル型の仮想計算機をネットワーク型の仮想計算機に変更し、その後、前記ネットワーク型の仮想計算機を前記対象内部物理計算機から前記外部物理計算機に移動する、
    装置。
  5. 請求項4記載の装置であって、
    各仮想計算機は、仮想デスクトップとして利用される仮想計算機である、
    装置。
  6. 請求項4記載の装置であって、
    前記外部物理計算機は、パブリッククラウドの物理計算機である、
    装置。
  7. 請求項4記載の装置であって、
    前記制御部は、同一の内部物理計算機に配置する仮想計算機を、前記同一の内部物理計算機に配置されるVMの資源負荷値の合計が所定の値以下の範囲で、1つずつ選択するようになっており、その際、選択される仮想計算機は、既に選択されている1以上の仮想計算機の各時区間での資源負荷値との差がなるべく大きくなるような資源負荷値となった仮想計算機であり、
    前記ネットワーク型の仮想計算機は、前記対象内部物理計算機に配置される仮想計算機として最後に選択された仮想計算機である、
    装置。
  8. 請求項4記載の装置であって、
    前記ネットワーク型の仮想計算機は、重要ではないデータを扱う仮想計算機である、
    装置。
  9. 請求項4記載の装置であって、
    前記ネットワーク型の仮想計算機は、WAN又はインターネットを介してアクセスされる仮想計算機である、
    装置。
  10. 請求項4記載の装置であって、
    前記ネットワーク型の仮想計算機は、記憶資源の利用率が最も小さい仮想計算機である、
    装置。
  11. 請求項3記載の装置であって、
    前記制御部が、前記対象内部物理計算機の資源不足が解消したことを検出した場合、前記外部物理計算機から前記移動した仮想計算機を前記対象内部物理計算機に戻す、
    装置。
  12. 請求項2記載の装置であって、
    前記記憶部が、配置結果評価情報を記憶し、
    前記配置結果評価情報は、物理計算機毎に、物理計算機の資源負荷値を示す情報を含み、
    資源が不足している物理計算機は、前記配置結果評価情報が表す資源負荷値が、第1の値以上の物理計算機であり、
    資源が過剰な物理計算機は、前記配置結果評価情報が表す資源負荷値が、前記第1の値より小さい第2の閾値以下の物理計算機である、
    装置。
  13. 請求項1記載の装置であって、
    前記制御部は、前記同一の物理計算機に配置する仮想計算機を、前記同一の物理計算機に配置されるVMの資源負荷値の合計が所定の値以下の範囲で、1つずつ選択する、
    装置。
  14. 複数の物理計算機に複数の仮想計算機を配置する方法であって、
    複数の時区間のそれぞれにおける仮想計算機の資源負荷値を仮想計算機毎に表す情報である仮想計算機負荷情報を基に、各時区間について資源負荷値の差が最も大きくなるような2以上の仮想計算機を選択し、
    選択した2以上の仮想計算機を同一の物理計算機に配置する、
    方法。
  15. 複数の物理計算機に複数の仮想計算機を配置することをコンピュータに実行させるためのコンピュータプログラムであって、
    複数の時区間のそれぞれにおける仮想計算機の資源負荷値を仮想計算機毎に表す情報である仮想計算機負荷情報を基に、各時区間について資源負荷値の差が最も大きくなるような2以上の仮想計算機を選択し、
    選択した2以上の仮想計算機を同一の物理計算機に配置する、
    ことコンピュータに実行させるためのコンピュータプログラム。
JP2012539680A 2010-10-19 2011-10-11 仮想計算機を配置する方法及び装置 Pending JPWO2012053393A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010234778 2010-10-19
JP2010234778 2010-10-19
PCT/JP2011/073332 WO2012053393A1 (ja) 2010-10-19 2011-10-11 仮想計算機を配置する方法及び装置

Publications (1)

Publication Number Publication Date
JPWO2012053393A1 true JPWO2012053393A1 (ja) 2014-02-24

Family

ID=45975110

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012539680A Pending JPWO2012053393A1 (ja) 2010-10-19 2011-10-11 仮想計算機を配置する方法及び装置

Country Status (4)

Country Link
US (1) US20130275974A1 (ja)
JP (1) JPWO2012053393A1 (ja)
CN (1) CN103154896A (ja)
WO (1) WO2012053393A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016177559A (ja) * 2015-03-20 2016-10-06 日本電気株式会社 情報処理資源管理装置、情報処理資源管理方法、及び、情報処理資源管理プログラム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5684170B2 (ja) * 2012-02-28 2015-03-11 株式会社東芝 情報処理装置、クライアント管理システムおよびクライアント管理方法
US8938541B2 (en) * 2012-10-29 2015-01-20 Ericsson Ab Method and system to allocate bandwidth in cloud computing networks
US9569233B2 (en) * 2012-12-31 2017-02-14 F5 Networks, Inc. Elastic offload of prebuilt traffic management system component virtual machines
US9065734B2 (en) 2013-03-08 2015-06-23 Telefonaktiebolaget L M Ericsson (Publ) Network bandwidth allocation in multi-tenancy cloud computing networks
US9817699B2 (en) * 2013-03-13 2017-11-14 Elasticbox Inc. Adaptive autoscaling for virtualized applications
US9621425B2 (en) 2013-03-27 2017-04-11 Telefonaktiebolaget L M Ericsson Method and system to allocate bandwidth for heterogeneous bandwidth request in cloud computing networks
US9253052B2 (en) * 2013-08-28 2016-02-02 Institute For Information Industry Integration network device and service integration method thereof
US10255652B2 (en) * 2017-01-18 2019-04-09 Amazon Technologies, Inc. Dynamic and application-specific virtualized graphics processing

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03219360A (ja) * 1990-01-24 1991-09-26 Nec Corp マルチプロセッサ制御方式
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
JP2005115653A (ja) * 2003-10-08 2005-04-28 Ntt Data Corp 仮想マシン管理装置及びプログラム
WO2007136021A1 (ja) * 2006-05-24 2007-11-29 Nec Corporation 仮想マシン管理装置、仮想マシン管理方法およびプログラム
WO2008062864A1 (en) * 2006-11-24 2008-05-29 Nec Corporation Virtual machine locating system, virtual machine locating method, program, virtual machine management device and server
JP2009237859A (ja) * 2008-03-27 2009-10-15 Nec Corp 仮想マシン管理システム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9047083B2 (en) * 2008-09-15 2015-06-02 Vmware, Inc. Reducing power consumption in a server cluster
CN101452406B (zh) * 2008-12-23 2011-05-18 北京航空航天大学 一种对操作系统透明的机群负载平衡方法
US9384062B2 (en) * 2008-12-27 2016-07-05 Vmware, Inc. Artificial neural network for balancing workload by migrating computing tasks across hosts
CN101504620A (zh) * 2009-03-03 2009-08-12 华为技术有限公司 一种虚拟化集群系统负载平衡方法、装置及系统
CN101593133B (zh) * 2009-06-29 2012-07-04 北京航空航天大学 虚拟机资源负载均衡方法及装置
US8316125B2 (en) * 2009-08-31 2012-11-20 Red Hat, Inc. Methods and systems for automated migration of cloud processes to external clouds
CN101719081B (zh) * 2009-12-01 2012-10-10 北京大学 一种虚拟机调度方法
US8887172B2 (en) * 2009-12-31 2014-11-11 Microsoft Corporation Virtualized management of remote presentation sessions using virtual machines having load above or below thresholds
EP3699758B1 (en) * 2010-02-04 2021-08-18 Telefonaktiebolaget LM Ericsson (publ) Network performance monitor for virtual machines
US8271814B2 (en) * 2010-03-22 2012-09-18 Microsoft Corporation Migrating a client computer to a virtual machine server when the client computer is deemed to be idle

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03219360A (ja) * 1990-01-24 1991-09-26 Nec Corp マルチプロセッサ制御方式
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
JP2005115653A (ja) * 2003-10-08 2005-04-28 Ntt Data Corp 仮想マシン管理装置及びプログラム
WO2007136021A1 (ja) * 2006-05-24 2007-11-29 Nec Corporation 仮想マシン管理装置、仮想マシン管理方法およびプログラム
WO2008062864A1 (en) * 2006-11-24 2008-05-29 Nec Corporation Virtual machine locating system, virtual machine locating method, program, virtual machine management device and server
JP2009237859A (ja) * 2008-03-27 2009-10-15 Nec Corp 仮想マシン管理システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016177559A (ja) * 2015-03-20 2016-10-06 日本電気株式会社 情報処理資源管理装置、情報処理資源管理方法、及び、情報処理資源管理プログラム

Also Published As

Publication number Publication date
US20130275974A1 (en) 2013-10-17
WO2012053393A1 (ja) 2012-04-26
CN103154896A (zh) 2013-06-12

Similar Documents

Publication Publication Date Title
WO2012053393A1 (ja) 仮想計算機を配置する方法及び装置
US10574505B2 (en) Endpoint data centers of different tenancy sets
JP7138126B2 (ja) リソース配置を最適化するための適時性リソース移行
JP4367406B2 (ja) コンピュータ割り当て方法
US9621654B2 (en) Intelligent data propagation using performance monitoring
CN103399778B (zh) 一种虚拟机在线整体迁移方法和设备
JP4696089B2 (ja) 分散ストレージシステム
US20120233315A1 (en) Systems and methods for sizing resources in a cloud-based environment
US20130227585A1 (en) Computer system and processing control method
US20130326515A1 (en) Device, recording medium, and method
JP2017529585A (ja) マルチテナント・システムにおける処理変更
JP7143434B2 (ja) クラウドサービスのデータキャッシング
WO2012125144A1 (en) Systems and methods for sizing resources in a cloud-based environment
US20150154042A1 (en) Computer system and control method for virtual machine
EP3058703B1 (en) Optimizing data transfers in cloud computing platforms
JP2004318741A (ja) ネットワーク管理プログラム、管理計算機及び管理方法
JP2015132887A (ja) 要求分散プログラム、要求分散方法および情報処理装置
JP6501694B2 (ja) 計算機システム及び計算機システムのタスク実行方法
US8621260B1 (en) Site-level sub-cluster dependencies
US20180278542A1 (en) Autonomous resource governor in distributed systems for protecting shared resources
US8650330B2 (en) Self-tuning input output device
JP5612223B1 (ja) ストレージシステム、ストレージ装置の制御方法及びプログラム
JP2010097566A (ja) 情報処理装置、及び情報処理システムにおけるバッチ処理の割り当て方法
US11989109B2 (en) Managing power consumption for a computing cluster
US9270548B2 (en) System and method for data transfer of object properties

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140218

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140318