(57)【要約】【課題】サーバやボリュームの利用効率を高め、予め準備するサーバの資源量負担を軽減させる。【解決手段】複数のサーバ１をＬＡＮなどのネットワークＮ１に並列に接続して１台の仮想的なサーバに見立てるクラスタを形成し、このネットワークＮ１に負荷分散装置としてのロードバランサ２と各サーバ１のリソースを束ねて管理する管理サーバ３を付加する。サーバ１は、通常サービスを提供する実サーバ１１と、サービスを引き継ぐために待機している予備サーバ１２で構成し、ＳＡＮやＮＡＳなどのネットワークＮ２を介して共有ディスク１３を接続する。ロードバランサ２は、予備機２´を設けて冗長化し、サーバ１集合体のフロントエンドに配置してインターネットなどのネットワークＮ３に接続し、ネットワークＮ３を介して複数のクライアント４と交信する。【選択図】図１
2009265778.tif 000002
【特許請求の範囲】
【請求項１】
サーバに仮想マシンモニタを搭載して複数の仮想マシンを並列構成で設置し、
各仮想マシンの負荷を計測する負荷計測手段と、
計測した負荷に応じて必要な資源量を決定する資源量決定手段と、
決定した資源量を各仮想マシンに割り当てる資源割り当て手段とを備え、
各仮想マシンの資源割り当てを一元的に管理することを特徴とする仮想化サーバ。
【請求項２】
資源割り当て手段は、予め応答時間の目標値を設定し、応答時間と割り当て量の対応表から目標を達成する資源割り当て量を求めることを特徴とする請求項１記載の仮想化サーバ。
【請求項３】
前記資源が十分に確保できないときは、別のサーバに新たな仮想マシンを設置し、その仮想マシンに資源を割り当てることを特徴とする請求項１又は請求項２記載の仮想化サーバ。
【請求項４】
前記資源を割り当てる際に、一定期間の中で利用する資源量を制限することを特徴とする請求項１ないし請求項３のいずれか記載の仮想化サーバ。
【請求項５】
前記資源を割り当てる際に、一定期間の中で利用する最小の資源量を設定することを特徴とする請求項１ないし請求項３のいずれか記載の仮想化サーバ。
【請求項６】
前記仮想マシンをグループ化してＶＬＡＮを構成することを特徴とする請求項１ないし請求項５のいずれか記載の仮想化サーバ。
【請求項７】
前記グループ化した仮想マシンに共有ストレージを備えることを特徴とする請求項６記載の仮想化サーバ。
【請求項８】
前記共有ストレージの残量が設定値を下回ったときは、利用者に通知して追加割り当てを促すことを特徴とする請求項７記載の仮想化サーバ。
【請求項９】
前記資源の将来利用する分を利用者の設定により予約できることを特徴とする請求項１ないし請求項８のいずれか記載の仮想化サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ資源を仮想化してＷｅｂサービスを提供する仮想化サーバに関する。
【背景技術】
【０００２】
インターネットにサービスを提供する事業者（個人を含む）は、通常そのサービスが必要とする瞬間最大の資源（ＣＰＵ／メモリ／ストレージ）を有するサーバを予め固定的に準備しなくてはならない。
ところがサーバは通常、短時間集中的に利用されることが多く、フルに使われる時間帯は限られている。
そのため必要とする瞬間最大の資源を準備しても、ピーク時以外はほとんど空いている状態になってしまう。
また、特定の業務のボリュームが満杯になると、サーバ全体では余裕があっても、他の業務の空領域を使用できないので、新たなボリュームを追加する必要があった。
従来、設定時に容量を選択できるシステムや内部領域を変更可能なシステムは存在するが、このようなシステムにおいても上記の問題は解決されない。
【特許文献１】特開２００７−２２００６１号公報
【特許文献２】特開２００７−２２００６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、サーバやボリュームの利用効率を高め、予め準備するサーバの資源量負担を軽減させることを目的になされたものである。
【課題を解決するための手段】
【０００４】
本発明では、上記の問題を解決するためにサーバの仮想化技術を用いる。
サーバ仮想化は、物理的に１台のサーバを論理的に複数のサーバのように扱い、１台のサーバの中に複数の仮想マシンを構築し、それぞれの仮想マシン上でＯＳを稼動して同時に複数の業務を処理する。
これにより、例えばそれまで別々のサーバで処理していた昼にピークがある業務と、夜にピークがある業務をそれぞれ仮想マシンに移行し、１台のサーバに処理を統合すると、サーバが常に高水準で利用されるようになり、それまで２台必要だったサーバが半分の１台で済むことになる。
サーバの統合化に伴い、それまでの消費電力や冷却コスト、設置スペース、運用コストなども半減する。
また、ボリュームは共有資源（プール）として管理され、そこから各業務に必要な容量が動的に割り当てられるので、他の業務の空領域を効率よく使用できるようになる。
【０００５】
本発明では、すべてのサーバを仮想マシンの並列構成で実現する。また、利用者の設定により、負荷計測部が仮想マシンの利用状況を分析して必要な仮想マシンに資源を割り当てる。そして、物理サーバの資源を管理し、各仮想マシンの資源割り当てを一元的に管理する。また、各物理サーバの利用量が平準化するように各仮想マシンをマイグレーションする。すなわち、本発明は、サーバに仮想マシンモニタを搭載して複数の仮想マシンを並列構成で設置し、各仮想マシンの負荷を計測する負荷計測手段と、計測した負荷に応じて必要な資源量を決定する資源量決定手段と、決定した資源量を各仮想マシンに割り当てる資源割り当て手段とを備え、各仮想マシンの資源割り当てを一元的に管理することを最も主要な特徴とする。
前記資源割り当て手段は、予め応答時間の目標値を設定し、応答時間と割り当て量の対応表から目標を達成する資源割り当て量を求めることを特徴とする。
また、前記資源が十分に確保できないときは、別のサーバに新たな仮想マシンを設置し、その仮想マシンに資源を割り当てる。
あるいは、前記資源を割り当てる際には、一定期間の中で利用する資源量を制限すること、又は、一定期間の中で利用する最小の資源量を設定することを特徴とする。
さらには、前記仮想マシンをグループ化してＶＬＡＮを構成することを特徴とする。
前記グループ化した仮想マシンに共有ストレージを備えることもできる。
前記共有ストレージの残量が設定値を下回ったときは、利用者に通知して追加割り当てを促す。また、前記資源の将来利用する分を利用者の設定により予約することができることを特徴とする。
【発明の効果】
【０００６】
本発明は、サーバに仮想マシンモニタを搭載してサーバ資源を仮想化するので、利用者は資源割り当て部を通して並列構成の仮想マシンで実現された各仮想マシンを任意に増減したり、各仮想マシンに割り当てられている資源を増減したりする事が出来る。したがって、従来に比べサーバ資源が共有資源として効率的に利用されるようになり、予め準備するサーバの資源量が大幅に削減される。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施の形態について説明する。
【０００８】
図１に、本発明を実施した仮想化サーバのシステム構成図を示す。
仮想化サーバは、複数のサーバ１をＬＡＮなどのネットワークＮ１に並列に接続して１台の仮想的なサーバに見立てるクラスタを形成し、このネットワークＮ１に負荷分散装置としてのロードバランサ２と各サーバ１のリソースを束ねて管理する管理サーバ３を付加する。
クラスタを形成する目的は構成要素を冗長化して耐障害性を高め、複数のサーバ１で異なるリクエストを同時並行処理してサーバ１の負荷を分散させるためである。
【０００９】
サーバ１は、通常サービスを提供する実サーバ１１と、サービスを引き継ぐために待機している予備サーバ１２で構成し、ＳＡＮやＮＡＳなどのネットワークＮ２を介して共有ディスク１３を接続する。
【００１０】
ロードバランサ２は、予備機２´を設けて冗長化し、サーバ１集合体のフロントエンドに配置してインターネットなどのネットワークＮ３に接続し、ネットワークＮ３を介して複数のクライアント４と交信する。クライアント４からのリクエストを受信すると、設定された負荷分散アルゴリズムに従って稼動中のサーバ１の中から最適なサーバ１を選択して処理を割り振り、サーバ１の負荷を分散させる。
負荷分散アルゴリズムには、例えば順番にサーバ１を選択するラウンドロビン方式、処理コネクション数が最少のサーバ１を選択する最小接続方式、最も応答が早いサーバ１を選択する最速方式などがある。
【００１１】
サーバ１には、図２に示すように、公知の仮想マシンモニタ５を搭載して１台に複数の仮想マシン６を構築し、それぞれの仮想マシン６上でゲストＯＳ７を稼動させる。
仮想マシンモニタ５は、サーバ１が持つＣＰＵ、メモリ、周辺機器（Ｉ／Ｏ）などのハードウエア８を仮想的なリソースに分割して独立にプールし、ゲストＯＳ７に対して必要なリソースを必要なとき必要なだけ動的に割り当てる。
リソースは、物理的な単位以下に分割が可能なため、リソースサイズの変更が容易で、高い集約効果が得られる。
ゲストＯＳ７は、１台のサーバ１上で同時並列稼動され、異種ＯＳ、複数バージョンのＯＳが混在可能である。
【００１２】
仮想マシンモニタ５には、図２（ａ）に示すように、ホストＯＳ９上でミドルウエアとして動作するタイプ（VMware ServerやVirtual Serverがこれに相当する）と、図２（ｂ）に示すように、直接ハードウエア８上でＯＳのように動いてオーバヘッドを低減するタイプ（VMware ESX ServerやXenがこれに相当する）がある。
また、ゲストＯＳ７やホストＯＳ９には、Windows（登録商標）やUnix（登録商標）などがある。
【００１３】
管理サーバ３は、図３に示すように、ＩＰアドレス管理部３１、負荷計測部３２、資源割り当て部３３、ＶＭテンプレート管理部３４、ＶＭ再配置部３５、ＶＬＡＮ管理部３６、ＶＭグループ管理部３７で構成し、ＩＰアドレス管理部３１、資源割り当て部３３、ＶＭグループ管理部３７にはＩＰアドレス、資源割り当てルール、ＶＭグループＩＤなどの管理情報を格納したデータベースＤ１〜Ｄ３を備える。
【００１４】
ＩＰアドレス管理部３１は、どのサーバ１上にどの仮想マシン６が稼働しているか、実サーバと仮想サーバのマッピング状況を把握するために、クラスタを形成する各サーバ１のＩＰアドレスと、各サーバ１に割り当てた仮想マシン６の対応を管理する。
【００１５】
負荷計測部３２は、クラスタを形成する各サーバ１のＩＰアドレスを指定して定期的に「ping」コマンドを送信し、その応答時間を計測して負荷を把握する。
「ping」は、TCP/IPで利用される管理・制御用の通信機構である「ICMP」を実装したネットワーク管理プログラムで、「ping」を実行すると宛先にＩＰパケットが配送され、正常に受信された場合、宛先からの返信が得られる。
「ping」コマンドは、サーバ１の死活監視を定期的に行う「ハートビート」通信にも利用される。
【００１６】
資源割り当て部３３は、負荷計測部３２が把握した負荷に応じて資源割り当て量を決定し、必要な資源を各仮想マシン６に割り当てる。
資源割り当て量は、ベンチマーク用に開発したプログラムを実際のサーバ１で稼動し、応答時間と割り当て量の関係を調べてデータとして蓄積し、そのデータを基に決定する。
具体的には、予め応答時間の目標値を設定し、応答時間と割り当て量の対応表から目標を達成する資源割り当て量を求める。
【００１７】
仮想マシン６の負荷状況が予め分かっている場合はスケジュール表を作成し、例えば「昼間と夜間」、「平日と休日」、「月末とそれ以外」など予測できる負荷の変化の状況に応じて必要な資源を割り当てる。
【００１８】
また、データベースＤ２から資源割り当てルールを読み出し、ポリシーに従って資源割り当て量を制限する。
ポリシーは、業務の優先度に応じて利用者がクライアント４を通して設定することができ、一定期間中に利用できる資源量の上限や下限を細かく規制できる。さらに、将来利用する予定の資源量を予約することもできる。
これにより資源割り当て量に応じたきめ細かい課金を可能し、よりが経済的なシステム運営を実現する。
【００１９】
割り当てがＣＰＵの場合、例えば時分割で各仮想マシン６に対するＣＰＵの割り当てを切替える。
割り当てがメモリの場合、メモリをページ単位に分割し、ディスクへの退避（スワップアウト）、メモリへの回復（スワップイン）を繰り返すことで同一ページの共有を可能にし、各仮想マシン６に実メモリ以上の容量を割り当てる。
割り当てがストレージの場合、ストレージ全体の実記憶領域を論理的なプールとして管理し、データの書き込み時にプールの一部を動的に割り当てることで、プール容量が不足しない限り、各仮想マシン６に必要なサイズの容量を自由に割り当てる。
【００２０】
ＶＭテンプレート管理部３４は、ゲストＯＳの基本的なインストールイメージファイルをテンプレートとして管理する。
このテンプレートをコピー・配布することで、同一構成の仮想マシン６を迅速に手間なく構築できる。
【００２１】
ＶＭ再配置部３５は、現状の処理能力が不足したり過剰になったりした場合、サーバ１を無停止で増減し、仮想マシン６を動的に再配置する。
サーバ１を追加するときは、予備サーバ１２に仮想マシン６のイメージファイルをコピーし、ブート・コマンドを発行して新たな仮想マシン６を立ち上げる。
その後、ロードバランサ２は新たに立ち上げた仮想マシン６にもリクエストを振り分け、サーバ１の負荷を軽減させる。
サーバ１を削減するときは、不要になった仮想マシン６を削除し、使用していた予備サーバ１２を切り離す。
【００２２】
稼働中の仮想マシン６のデータや状態は、共有ディスク１３に格納してサーバ１間で共有し、障害発生時の「フェイルオーバ」や輻輳時の「ライブ・マイグレーション」を可能にする。
具体的には、共有ディスク１３に格納した移動元の仮想マシン６のデータや状態を移動先のサーバ１に順次コピーし、切り替えが可能になった時点で移動先に仮想マシン６を引き渡し、セッションを切らずに処理を継続する。
【００２３】
ＶＬＡＮ管理部３６は、ＶＬＡＮを識別するVLAN=IDとＶＬＡＮに接続する仮想マシン６の対応を管理する。
ＶＬＡＮは、１つのEthernet（登録商標）ネットワークを仮想的な複数の論理ネットワークに分割できるので、一度構築したネットワークを後から物理的な配線を変えずに部署別に分けたりすることができる。
【００２４】
ＶＭグループ管理部３７は、仮想マシン６をグループ化し、このグループとＶＬＡＮの対応を管理する。
図４の例では、仮想マシン（１、４、７）はグループＡに、仮想マシン（２、３、８）はグループＢに、仮想マシン（６、９）はグループＣに、仮想マシン（５）はグループＢ、Ｃの両方にそれぞれ属し、グループＡをＶＬＡＮ（１）に、グループＢをＶＬＡＮ（２）に、グループＣをＶＬＡＮ（３）にそれぞれ接続している。
仮想マシン６をグループ化することにより、従来１つ１つ個別に分散管理していた仮想マシン６を、例えば業務別に一括管理できるようになり、管理コストが低減する。
【００２５】
本発明を実施した仮想化サーバは以上のような構成で、利用者は、外部ネットワークから仮想化サーバにアクセスし、利用規約に同意し利用登録をする。
利用登録が認められ、アカウントが発行された時点で利用ができる。
仮想マシン６の能力（ＣＰＵ／メモリ）は、予め分割されたうちのいくつをそれぞれの仮想マシン６に割り当てるかを設定することができる。また、各仮想マシン６にマウントするディスク容量を設定できる。
【００２６】
利用者は、複数の仮想マシン６をまとめサーバグループを作成することで、ＶＬＡＮが設定される。利用者はサーバグループ内の仮想マシン６について外部ネットワークから参照できるＩＰドレスを設定する。仮想化サーバは、指定されたＩＰアドレスを設定するために、ロードバランサ２に外部アドレスと内部アドレスの対応付けを指示する。
【図面の簡単な説明】
【００２７】
【図１】本発明を実施した仮想化サーバのシステム構成図である。
【図２】本発明を実施した仮想化サーバのソフトウエア構成図である。
【図３】管理サーバのブロック図である。
【図４】グループとＶＬＡＮの関連図である。
【符号の説明】
【００２８】
１            サーバ
１１          実サーバ
１２          予備サーバ
１３          共有ディスク
２            ロードバランサ
３            管理サーバ
３１          ＩＰアドレス管理部
３２          負荷計測部
３３          資源割り当て部
３４          ＶＭテンプレート管理部
３５          ＶＭ再配置部
３６          ＶＬＡＮ管理部
３７          ＶＭグループ管理部
４            クライアント
５            仮想マシンモニタ
６            仮想マシン
７            ゲストＯＳ
８            ハードウエア
９            ホストＯＳ
Ｄ１〜Ｄ３    データベース
Ｎ１〜Ｎ３    ネットワーク
【図１】
2009265778.tif 000003
【図２】
2009265778.tif 000004
【図３】
2009265778.tif 000005
【図４】
2009265778.tif 000006