仮想化サーバ

【課題】サーバやボリュームの利用効率を高め、予め準備するサーバの資源量負担を軽減させる。
【解決手段】複数のサーバ1をLANなどのネットワークN1に並列に接続して1台の仮想的なサーバに見立てるクラスタを形成し、このネットワークN1に負荷分散装置としてのロードバランサ2と各サーバ1のリソースを束ねて管理する管理サーバ3を付加する。サーバ1は、通常サービスを提供する実サーバ11と、サービスを引き継ぐために待機している予備サーバ12で構成し、SANやNASなどのネットワークN2を介して共有ディスク13を接続する。ロードバランサ2は、予備機2´を設けて冗長化し、サーバ1集合体のフロントエンドに配置してインターネットなどのネットワークN3に接続し、ネットワークN3を介して複数のクライアント4と交信する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバ資源を仮想化してWebサービスを提供する仮想化サーバに関する。
【背景技術】
【0002】
インターネットにサービスを提供する事業者(個人を含む)は、通常そのサービスが必要とする瞬間最大の資源(CPU/メモリ/ストレージ)を有するサーバを予め固定的に準備しなくてはならない。
ところがサーバは通常、短時間集中的に利用されることが多く、フルに使われる時間帯は限られている。
そのため必要とする瞬間最大の資源を準備しても、ピーク時以外はほとんど空いている状態になってしまう。
また、特定の業務のボリュームが満杯になると、サーバ全体では余裕があっても、他の業務の空領域を使用できないので、新たなボリュームを追加する必要があった。
従来、設定時に容量を選択できるシステムや内部領域を変更可能なシステムは存在するが、このようなシステムにおいても上記の問題は解決されない。
【特許文献1】特開2007−220061号公報
【特許文献2】特開2007−220060号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
本発明は、サーバやボリュームの利用効率を高め、予め準備するサーバの資源量負担を軽減させることを目的になされたものである。
【課題を解決するための手段】
【0004】
本発明では、上記の問題を解決するためにサーバの仮想化技術を用いる。
サーバ仮想化は、物理的に1台のサーバを論理的に複数のサーバのように扱い、1台のサーバの中に複数の仮想マシンを構築し、それぞれの仮想マシン上でOSを稼動して同時に複数の業務を処理する。
これにより、例えばそれまで別々のサーバで処理していた昼にピークがある業務と、夜にピークがある業務をそれぞれ仮想マシンに移行し、1台のサーバに処理を統合すると、サーバが常に高水準で利用されるようになり、それまで2台必要だったサーバが半分の1台で済むことになる。
サーバの統合化に伴い、それまでの消費電力や冷却コスト、設置スペース、運用コストなども半減する。
また、ボリュームは共有資源(プール)として管理され、そこから各業務に必要な容量が動的に割り当てられるので、他の業務の空領域を効率よく使用できるようになる。
【0005】
本発明では、すべてのサーバを仮想マシンの並列構成で実現する。また、利用者の設定により、負荷計測部が仮想マシンの利用状況を分析して必要な仮想マシンに資源を割り当てる。そして、物理サーバの資源を管理し、各仮想マシンの資源割り当てを一元的に管理する。また、各物理サーバの利用量が平準化するように各仮想マシンをマイグレーションする。すなわち、本発明は、サーバに仮想マシンモニタを搭載して複数の仮想マシンを並列構成で設置し、各仮想マシンの負荷を計測する負荷計測手段と、計測した負荷に応じて必要な資源量を決定する資源量決定手段と、決定した資源量を各仮想マシンに割り当てる資源割り当て手段とを備え、各仮想マシンの資源割り当てを一元的に管理することを最も主要な特徴とする。
前記資源割り当て手段は、予め応答時間の目標値を設定し、応答時間と割り当て量の対応表から目標を達成する資源割り当て量を求めることを特徴とする。
また、前記資源が十分に確保できないときは、別のサーバに新たな仮想マシンを設置し、その仮想マシンに資源を割り当てる。
あるいは、前記資源を割り当てる際には、一定期間の中で利用する資源量を制限すること、又は、一定期間の中で利用する最小の資源量を設定することを特徴とする。
さらには、前記仮想マシンをグループ化してVLANを構成することを特徴とする。
前記グループ化した仮想マシンに共有ストレージを備えることもできる。
前記共有ストレージの残量が設定値を下回ったときは、利用者に通知して追加割り当てを促す。また、前記資源の将来利用する分を利用者の設定により予約することができることを特徴とする。
【発明の効果】
【0006】
本発明は、サーバに仮想マシンモニタを搭載してサーバ資源を仮想化するので、利用者は資源割り当て部を通して並列構成の仮想マシンで実現された各仮想マシンを任意に増減したり、各仮想マシンに割り当てられている資源を増減したりする事が出来る。したがって、従来に比べサーバ資源が共有資源として効率的に利用されるようになり、予め準備するサーバの資源量が大幅に削減される。
【発明を実施するための最良の形態】
【0007】
以下、本発明の実施の形態について説明する。
【0008】
図1に、本発明を実施した仮想化サーバのシステム構成図を示す。
仮想化サーバは、複数のサーバ1をLANなどのネットワークN1に並列に接続して1台の仮想的なサーバに見立てるクラスタを形成し、このネットワークN1に負荷分散装置としてのロードバランサ2と各サーバ1のリソースを束ねて管理する管理サーバ3を付加する。
クラスタを形成する目的は構成要素を冗長化して耐障害性を高め、複数のサーバ1で異なるリクエストを同時並行処理してサーバ1の負荷を分散させるためである。
【0009】
サーバ1は、通常サービスを提供する実サーバ11と、サービスを引き継ぐために待機している予備サーバ12で構成し、SANやNASなどのネットワークN2を介して共有ディスク13を接続する。
【0010】
ロードバランサ2は、予備機2´を設けて冗長化し、サーバ1集合体のフロントエンドに配置してインターネットなどのネットワークN3に接続し、ネットワークN3を介して複数のクライアント4と交信する。クライアント4からのリクエストを受信すると、設定された負荷分散アルゴリズムに従って稼動中のサーバ1の中から最適なサーバ1を選択して処理を割り振り、サーバ1の負荷を分散させる。
負荷分散アルゴリズムには、例えば順番にサーバ1を選択するラウンドロビン方式、処理コネクション数が最少のサーバ1を選択する最小接続方式、最も応答が早いサーバ1を選択する最速方式などがある。
【0011】
サーバ1には、図2に示すように、公知の仮想マシンモニタ5を搭載して1台に複数の仮想マシン6を構築し、それぞれの仮想マシン6上でゲストOS7を稼動させる。
仮想マシンモニタ5は、サーバ1が持つCPU、メモリ、周辺機器(I/O)などのハードウエア8を仮想的なリソースに分割して独立にプールし、ゲストOS7に対して必要なリソースを必要なとき必要なだけ動的に割り当てる。
リソースは、物理的な単位以下に分割が可能なため、リソースサイズの変更が容易で、高い集約効果が得られる。
ゲストOS7は、1台のサーバ1上で同時並列稼動され、異種OS、複数バージョンのOSが混在可能である。
【0012】
仮想マシンモニタ5には、図2(a)に示すように、ホストOS9上でミドルウエアとして動作するタイプ(VMware ServerやVirtual Serverがこれに相当する)と、図2(b)に示すように、直接ハードウエア8上でOSのように動いてオーバヘッドを低減するタイプ(VMware ESX ServerやXenがこれに相当する)がある。
また、ゲストOS7やホストOS9には、Windows(登録商標)やUnix(登録商標)などがある。
【0013】
管理サーバ3は、図3に示すように、IPアドレス管理部31、負荷計測部32、資源割り当て部33、VMテンプレート管理部34、VM再配置部35、VLAN管理部36、VMグループ管理部37で構成し、IPアドレス管理部31、資源割り当て部33、VMグループ管理部37にはIPアドレス、資源割り当てルール、VMグループIDなどの管理情報を格納したデータベースD1〜D3を備える。
【0014】
IPアドレス管理部31は、どのサーバ1上にどの仮想マシン6が稼働しているか、実サーバと仮想サーバのマッピング状況を把握するために、クラスタを形成する各サーバ1のIPアドレスと、各サーバ1に割り当てた仮想マシン6の対応を管理する。
【0015】
負荷計測部32は、クラスタを形成する各サーバ1のIPアドレスを指定して定期的に「ping」コマンドを送信し、その応答時間を計測して負荷を把握する。
「ping」は、TCP/IPで利用される管理・制御用の通信機構である「ICMP」を実装したネットワーク管理プログラムで、「ping」を実行すると宛先にIPパケットが配送され、正常に受信された場合、宛先からの返信が得られる。
「ping」コマンドは、サーバ1の死活監視を定期的に行う「ハートビート」通信にも利用される。
【0016】
資源割り当て部33は、負荷計測部32が把握した負荷に応じて資源割り当て量を決定し、必要な資源を各仮想マシン6に割り当てる。
資源割り当て量は、ベンチマーク用に開発したプログラムを実際のサーバ1で稼動し、応答時間と割り当て量の関係を調べてデータとして蓄積し、そのデータを基に決定する。
具体的には、予め応答時間の目標値を設定し、応答時間と割り当て量の対応表から目標を達成する資源割り当て量を求める。
【0017】
仮想マシン6の負荷状況が予め分かっている場合はスケジュール表を作成し、例えば「昼間と夜間」、「平日と休日」、「月末とそれ以外」など予測できる負荷の変化の状況に応じて必要な資源を割り当てる。
【0018】
また、データベースD2から資源割り当てルールを読み出し、ポリシーに従って資源割り当て量を制限する。
ポリシーは、業務の優先度に応じて利用者がクライアント4を通して設定することができ、一定期間中に利用できる資源量の上限や下限を細かく規制できる。さらに、将来利用する予定の資源量を予約することもできる。
これにより資源割り当て量に応じたきめ細かい課金を可能し、よりが経済的なシステム運営を実現する。
【0019】
割り当てがCPUの場合、例えば時分割で各仮想マシン6に対するCPUの割り当てを切替える。
割り当てがメモリの場合、メモリをページ単位に分割し、ディスクへの退避(スワップアウト)、メモリへの回復(スワップイン)を繰り返すことで同一ページの共有を可能にし、各仮想マシン6に実メモリ以上の容量を割り当てる。
割り当てがストレージの場合、ストレージ全体の実記憶領域を論理的なプールとして管理し、データの書き込み時にプールの一部を動的に割り当てることで、プール容量が不足しない限り、各仮想マシン6に必要なサイズの容量を自由に割り当てる。
【0020】
VMテンプレート管理部34は、ゲストOSの基本的なインストールイメージファイルをテンプレートとして管理する。
このテンプレートをコピー・配布することで、同一構成の仮想マシン6を迅速に手間なく構築できる。
【0021】
VM再配置部35は、現状の処理能力が不足したり過剰になったりした場合、サーバ1を無停止で増減し、仮想マシン6を動的に再配置する。
サーバ1を追加するときは、予備サーバ12に仮想マシン6のイメージファイルをコピーし、ブート・コマンドを発行して新たな仮想マシン6を立ち上げる。
その後、ロードバランサ2は新たに立ち上げた仮想マシン6にもリクエストを振り分け、サーバ1の負荷を軽減させる。
サーバ1を削減するときは、不要になった仮想マシン6を削除し、使用していた予備サーバ12を切り離す。
【0022】
稼働中の仮想マシン6のデータや状態は、共有ディスク13に格納してサーバ1間で共有し、障害発生時の「フェイルオーバ」や輻輳時の「ライブ・マイグレーション」を可能にする。
具体的には、共有ディスク13に格納した移動元の仮想マシン6のデータや状態を移動先のサーバ1に順次コピーし、切り替えが可能になった時点で移動先に仮想マシン6を引き渡し、セッションを切らずに処理を継続する。
【0023】
VLAN管理部36は、VLANを識別するVLAN=IDとVLANに接続する仮想マシン6の対応を管理する。
VLANは、1つのEthernet(登録商標)ネットワークを仮想的な複数の論理ネットワークに分割できるので、一度構築したネットワークを後から物理的な配線を変えずに部署別に分けたりすることができる。
【0024】
VMグループ管理部37は、仮想マシン6をグループ化し、このグループとVLANの対応を管理する。
図4の例では、仮想マシン(1、4、7)はグループAに、仮想マシン(2、3、8)はグループBに、仮想マシン(6、9)はグループCに、仮想マシン(5)はグループB、Cの両方にそれぞれ属し、グループAをVLAN(1)に、グループBをVLAN(2)に、グループCをVLAN(3)にそれぞれ接続している。
仮想マシン6をグループ化することにより、従来1つ1つ個別に分散管理していた仮想マシン6を、例えば業務別に一括管理できるようになり、管理コストが低減する。
【0025】
本発明を実施した仮想化サーバは以上のような構成で、利用者は、外部ネットワークから仮想化サーバにアクセスし、利用規約に同意し利用登録をする。
利用登録が認められ、アカウントが発行された時点で利用ができる。
仮想マシン6の能力(CPU/メモリ)は、予め分割されたうちのいくつをそれぞれの仮想マシン6に割り当てるかを設定することができる。また、各仮想マシン6にマウントするディスク容量を設定できる。
【0026】
利用者は、複数の仮想マシン6をまとめサーバグループを作成することで、VLANが設定される。利用者はサーバグループ内の仮想マシン6について外部ネットワークから参照できるIPドレスを設定する。仮想化サーバは、指定されたIPアドレスを設定するために、ロードバランサ2に外部アドレスと内部アドレスの対応付けを指示する。
【図面の簡単な説明】
【0027】
【図1】本発明を実施した仮想化サーバのシステム構成図である。
【図2】本発明を実施した仮想化サーバのソフトウエア構成図である。
【図3】管理サーバのブロック図である。
【図4】グループとVLANの関連図である。
【符号の説明】
【0028】
1 サーバ
11 実サーバ
12 予備サーバ
13 共有ディスク
2 ロードバランサ
3 管理サーバ
31 IPアドレス管理部
32 負荷計測部
33 資源割り当て部
34 VMテンプレート管理部
35 VM再配置部
36 VLAN管理部
37 VMグループ管理部
4 クライアント
5 仮想マシンモニタ
6 仮想マシン
7 ゲストOS
8 ハードウエア
9 ホストOS
D1〜D3 データベース
N1〜N3 ネットワーク
【特許請求の範囲】
【請求項1】
サーバに仮想マシンモニタを搭載して複数の仮想マシンを並列構成で設置し、
各仮想マシンの負荷を計測する負荷計測手段と、
計測した負荷に応じて必要な資源量を決定する資源量決定手段と、
決定した資源量を各仮想マシンに割り当てる資源割り当て手段とを備え、
各仮想マシンの資源割り当てを一元的に管理することを特徴とする仮想化サーバ。
【請求項2】
資源割り当て手段は、予め応答時間の目標値を設定し、応答時間と割り当て量の対応表から目標を達成する資源割り当て量を求めることを特徴とする請求項1記載の仮想化サーバ。
【請求項3】
前記資源が十分に確保できないときは、別のサーバに新たな仮想マシンを設置し、その仮想マシンに資源を割り当てることを特徴とする請求項1又は請求項2記載の仮想化サーバ。
【請求項4】
前記資源を割り当てる際に、一定期間の中で利用する資源量を制限することを特徴とする請求項1ないし請求項3のいずれか記載の仮想化サーバ。
【請求項5】
前記資源を割り当てる際に、一定期間の中で利用する最小の資源量を設定することを特徴とする請求項1ないし請求項3のいずれか記載の仮想化サーバ。
【請求項6】
前記仮想マシンをグループ化してVLANを構成することを特徴とする請求項1ないし請求項5のいずれか記載の仮想化サーバ。
【請求項7】
前記グループ化した仮想マシンに共有ストレージを備えることを特徴とする請求項6記載の仮想化サーバ。
【請求項8】
前記共有ストレージの残量が設定値を下回ったときは、利用者に通知して追加割り当てを促すことを特徴とする請求項7記載の仮想化サーバ。
【請求項9】
前記資源の将来利用する分を利用者の設定により予約できることを特徴とする請求項1ないし請求項8のいずれか記載の仮想化サーバ。
【図1】
【図2】
【図3】
【図4】
【公開番号】特開2009−265778(P2009−265778A)
【公開日】平成21年11月12日(2009.11.12)
【国際特許分類】
物理学 | 計算;計数 | 電気的デジタルデータ処理 | プログラム制御のための装置,例.制御装置 | プログラム記憶方式を用いるもの,すなわちプログラムを受取りそして保持するために処理装置の内部記憶装置を用いるもの | マルチプログラミング装置
物理学 | 計算;計数 | 電気的デジタルデータ処理 | プログラム制御のための装置,例.制御装置 | プログラム記憶方式を用いるもの,すなわちプログラムを受取りそして保持するために処理装置の内部記憶装置を用いるもの | マルチプログラミング装置 | リソースの割り当て,例.中央処理装置
【出願番号】特願2008−111889(P2008−111889)
【出願日】平成20年4月22日(2008.4.22)
【出願人】(300087363)株式会社ディノ
[ Back to top ]
