(57)【要約】【課題】ユーザのサービス要求を処理するユーザ実行環境を、セキュアかつ効率的に提供する。【解決手段】連動動作する複数のプログラム及びゲストＯＳが起動された状態を保存した実行環境スナップショットイメージの情報および動的・静的な計算機資源情報をストレージ装置に記憶して一元的に管理する。ユーザ要求に応じてサービスを処理するアプリケーションプログラムを有するゲストＯＳを、ストレージ装置から計算機にロードして、ホストＯＳ上に動的に割り当て、そのゲストＯＳ上でアプリケーションプログラムを実行する実行環境をユーザに提供する。【選択図】図１
2008107966.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してユーザの端末からアクセスされる少なくとも１つの計算機を含み、ユーザ要求に応じて仮想的な計算機資源を提供する計算機システムにおいて、
ホストＯＳと、ユーザ要求に応じて該ホストＯＳ上で実行可能なゲストＯＳを搭載することができる該計算機と、
ゲストＯＳ、及びユーザ要求に応じたサービスを実現するアプリケーションプログラムを含む複数の仮想化された実行環境スナップショットイメージを記憶するストレージ装置と、
ユーザ要求に応じて、該ストレージ装置に記憶された実行環境スナップショットイメージを選択して該計算機にロードし、該ホストＯＳ上に該ゲストＯＳを搭載するための制御を行う制御手段と、を有し、
該計算機は、ロードされた該ゲストＯＳ上で該アプリケーションを実行する実行環境をユーザに提供することを特徴とする計算機システム。
【請求項２】
該ユーザ要求を処理した後に、該ホストＯＳ上の該実行環境スナップショットイメージが占有していた計算機資源を解放することを特徴とする請求項１記載の計算機システム。
【請求項３】
先に該計算機にロードされた実行環境スナップショットイメージを他の実行環境スナップショットイメージに切り替える手段と有し、該切替え手段は、ユーザ要求に応じて、複数の計算機から適合するある計算機の資源利用を予約し、該資源が開放される時に、ユーザ要求に応じた実行環境スナップショットイメージを前記ストレージ装置から選択して、該計算機の該ホストＯＳ上に配備することを特徴とする請求項１記載の計算機システム。
【請求項４】
前記ストレージ装置は、既に起動された状態のゲストＯＳを含む実行環境スナップショットイメージを記憶し、該計算機は既に起動された状態のゲストＯＳをロードして、該ゲストＯＳ上でアプリケーションを実行する請求項１乃至３のいずれかの計算機システム。
【請求項５】
ホストＯＳ、及び該ホストＯＳ上で実行可能なゲストＯＳを搭載し、ユーザ要求に応じて仮想的な計算機資源を提供することができる計算機の制御方法において、
既に起動された状態のゲストＯＳ、及びユーザ要求に応じたサービスを実現するアプリケーションプログラムを含む複数の仮想化された実行環境スナップショットイメージを予めストレージ装置に記憶して用意するステップと、
ユーザ要求に応じて、該ストレージ装置に記憶されたある実行環境スナップショットイメージを選択して該計算機にロードして、該ホストＯＳ上に該ゲストＯＳを搭載するステップと、
ロードされた該ゲストＯＳ上で該アプリケーションをする実行環境をユーザに提供するステップと、を有することを特徴とする計算機の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムに係り、特にユーザの要求に応じてサービス利用環境をセキュアに保ちながら仮想的な計算機資源を効率的に配分し、かつユーザの実行環境の管理を容易にする計算機システム及び計算機の制御方法に関する。
【背景技術】
【０００２】
近年、複数の分散されたホモジニアスな計算機をクラスタ管理ミドルウェアが管理するクラスタリングシステムにアプリケーションプログラムを搭載し、そのアプリケーションプログラムを多数のユーザが利用できるサービスが実用化されて来ている。また、複数の分散されたホモジニアスまたはヘテロニアスな計算機をグリッドミドルウェアが管理することで計算機資源を仮想化し、ユーザが計算機資源を意識することなく、かつセキュアにさまざまなアプリケーションプログラムをサービスとして利用するグリッドコンピューティングシステムと呼ばれるシステムが注目されている。
【０００３】
このシステム環境では、計算機に搭載された１つのＯＳ（Operating System）上に複数のユーザ実行環境が構築される。つまり、異なるユーザのプロセスやデータは同じＯＳ上で管理されることになる。そのため、例えば資本の異なる複数の企業ユーザが同じクラスタリングシステムまたはグリッドコンピューティングシステム上のサービスを利用する場合、相互のプロセスを参照でき、他の企業ユーザからアプリケーションプログラムでの処理内容の一部を知られてしまい、十分なセキュリティを確保することができないという問題が生じる。
また、前提とするＯＳ条件の異なる複数のアプリケーションを１つの計算機で処理することが出来ないため、１つの計算機で処理できるサービスが制限され、計算機資源の利用が非効率になる。
【０００４】
この問題を解決する１つの方法として、最近、ＶＭＷａｒｅ（Ｒ）、ＶｉｒｔｕａｌＰＣ（Ｒ）、Ｘｅｎ（Ｒ）といった仮想化ソフトウェアを用いる方法が提唱されている。仮想化ソフトウェアは、計算機上のＯＳをホストＯＳとして、このホストＯＳ上に複数のゲストＯＳを含む仮想化システムを構築するソフトウェア技術である。この技術により、１つのゲストＯＳ上に１つのユーザ実行環境を構築することが出来るため、１つの計算機にセキュリティを確保した複数のユーザ実行環境を搭載することが可能となり、また、１つの計算機上で前提ＯＳ条件の異なる複数のアプリケーションを動作させることが可能となる。
なお、ゲストＯＳとホストＯＳの間の通信メカニズムに言及した仮想マシン環境に関する技術として、特開２００６−１８８２０公報（特許文献１）が知られている。
【０００５】
【特許文献１】特開２００６−１８８２０公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記従来技術によれば、複数のゲストＯＳを１つのホストＯＳ上に共存させているので、アプリケーションプログラムが実行されない時にも、それぞれのゲストＯＳがプロセッサやメモリ、Ｉ／Ｏインターフェースといったハードウェア資源を一定量占有している。そのため、あるユーザのアプリケーションプログラム実行要求があっても、そのアプリケーションプログラムを処理するユーザ実行環境を含むゲストＯＳに対して効率的に計算機資源が割り当てられないという問題が生じる。
【０００７】
そこで、クラスタリングシステムやグリッドコンピューティングシステムにさまざまなアプリケーションプログラムを搭載し、遠隔地の複数のユーザが、これらアプリケーションプログラムをセキュアに利用でき、かつ、アプリケーションプログラムを処理するユーザ実行環境に対して効率的に計算機資源を割り当てるしくみが求められる。
【０００８】
本発明の目的は、ユーザのサービス要求を処理するユーザ実行環境をセキュアかつ効率的に実現する、仮想化計算機システム及び計算機の制御方法を提供することにある。
【課題を解決するための手段】
【０００９】
本発明に係る計算機システムは、好ましくは、ネットワークを介してユーザの端末からアクセスされる少なくとも１つの計算機を含み、ユーザ要求に応じて仮想的な計算機資源を提供する計算機システムにおいて、ホストＯＳとユーザ要求に応じてホストＯＳ上で実行可能なゲストＯＳを搭載することができる計算機と、ゲストＯＳ及びユーザ要求に応じたサービスを実現するアプリケーションプログラムを含む複数の仮想化された実行環境スナップショットイメージを記憶するストレージ装置と、ユーザ要求に応じて、ストレージ装置に記憶された実行環境スナップショットイメージを選択して計算機にロードし、ホストＯＳ上にゲストＯＳを搭載するための制御を行う制御手段と、を有し、計算機は、ロードされたゲストＯＳ上でアプリケーションを実行する実行環境をユーザに提供することを特徴とする計算機システムとして構成される。
好ましい例では、ユーザ要求を処理した後に、ホストＯＳ上の実行環境スナップショットイメージが占有していた計算機資源を解放する。
また、好ましくは、先に計算機にロードされた実行環境スナップショットイメージを他の実行環境スナップショットイメージに切り替える手段と有し、切替え手段は、ユーザ要求に応じて、複数の計算機から適合するある計算機の資源利用を予約し、資源が開放される時に、ユーザ要求に応じた実行環境スナップショットイメージを前記ストレージ装置から選択して、計算機のホストＯＳ上に配備する。
また、好ましくは、前記ストレージ装置は、既に起動された状態のゲストＯＳを含む実行環境スナップショットイメージを記憶し、計算機は既に起動された状態のゲストＯＳをロードして、ゲストＯＳ上でアプリケーションを実行する。
【００１０】
本発明に係る計算機の制御方法は、ホストＯＳ、及びホストＯＳ上で実行可能なゲストＯＳを搭載し、ユーザ要求に応じて仮想的な計算機資源を提供することができる計算機の制御方法において、既に起動された状態のゲストＯＳ、及びユーザ要求に応じたサービスを実現するアプリケーションプログラムを含む複数の仮想化された実行環境スナップショットイメージを予めストレージ装置に記憶して用意するステップと、ユーザ要求に応じて、ストレージ装置に記憶されたある実行環境スナップショットイメージを選択して計算機にロードして、ホストＯＳ上にゲストＯＳを搭載するステップと、ロードされたゲストＯＳ上でアプリケーションをする実行環境をユーザに提供するステップと、を有することを特徴とする計算機の制御方法として構成される。
【発明の効果】
【００１１】
本発明によれば、サービスを処理するアプリケーションプログラムおよびゲストＯＳを含んだ実行環境スナップショットイメージをホストＯＳ上に動的に割り当て、かつユーザ要求ごとに実行環境スナップショットイメージを動的に切り替えることができる。これにより、ユーザのサービス要求を処理するユーザ実行環境を、セキュアかつ効率的に提供することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の一実施例について説明する。
本発明の実施例は、ネットワーク上に分散された複数のホモジニアスまたはヘテロジニアスな計算機を備え、複数のユーザがネットワークを経由して複数複種類のサービスを利用する計算機システムに適用することができる。
図１は、一実施例による計算機システムの構成を示す。計算機システムは、１台の管理サーバ３１０、３台の計算機４１０〜４３０、及びネットワーク共有型ストレージ装置５００が、ネットワーク２１０〜２３０を通して接続して構成される。
【００１３】
管理サーバ３１０は計算機システム全体を管理するサーバであり、ネットワーク２１０を介して複数のユーザ実行端末１１０〜１２０に接続されると共に、ネットワーク２１０を介して計算機４１０〜４３０に接続される。とりわけ、ユーザ端末からのサービス要求に応じて計算機４１０〜４３０を制御し、ユーザ端末に対して仮想化計算機システムを提供する。管理サーバ３１０は、制御プログラム部３１１と情報管理プログラム部３１２を有する。
【００１４】
ここで、制御プログラム部３１１は、ユーザからのサービス要求に応じて最適なゲストＯＳの実行環境を準備して提供する機能を有する。すなわち、遠隔地の複数のユーザからの要求に応じて、情報管理プログラム部３１０と連携しユーザの要求を処理するアプリケーションプログラムおよびゲストＯＳを含んだ実行環境スナップショットイメージと該当実行環境スナップショットイメージの動作に最適な計算機を検出して、その計算機を予約する。そして、その計算機の処理が空いた後に実行環境スナップショットイメージをその計算機のホストＯＳの仮想化ソフトウェアを用いてストレージ装置５００からロードして、実行環境を同期させ、ユーザ要求を実行環境上のアプリケーションプログラムで処理する。処理が終了すると、ユーザに実行結果を通知するとともに実行環境スナップショットイメージが占有していた計算資源を解放する、といった一連の処理を動的に制御する。また、制御プログラム部３１１は、ゲストＯＳが起動された状態を保存した実行環境スナップショットイメージを、ユーザまたは計算機システム管理者が複製・削除・変更する機能を備える。
【００１５】
情報管理プログラム３１２は、計算機４１０〜４３０で実行されるジョブのステータスを管理する機能を有する。すなわち、計算機４１０〜４３０間で共有されるストレージ装置５００に記憶されたユーザ単位・サービス単位に異なる実行環境スナップショットイメージの情報と、どこにどのような計算機が存在するかを明確にする静的な計算機資源情報と、その計算機資源が現在どのように利用・予約されているかを確認する動的な計算機資源情報を一元的に管理する。ここで、静的な計算機資源情報とは、使用されるＣＰＵの数や計算速度、メモリの容量に関する情報をいう。また、動的な計算機資源情報とは、ジョブの実行時間等をいう。
【００１６】
次に、３台の計算機４１０〜４３０は、ハードウェア仕様の同じホモジニアスな計算機群、または、ハードウェア仕様が多種多様なヘテロジニアスな計算機群である。計算機４１０は、ホストＯＳ部４１１と、ジョブの実行のステータスを監視するモニタプログラム部４１２と、ロードされたゲストＯＳを実行させる例えばＶＭｗａｒｅのような仮想化ソフトウェア部４１３、ユーザの要求を処理するアプリケーションプログラムおよびゲストＯＳを含んだ実行環境スナップショットイメージを搭載するスナップショットイメージ搭載部４１４を有する。なお、計算機４２０及び４３０も同様の構成であり、それぞれホストＯＳ部４２１，４３１、モニタプログラム部４２２，４３２、仮想化ソフトウェア部４２３，４３３、スナップショットイメージ搭載部４２４，４３４を有する。
【００１７】
ここで、計算機４１０のホストＯＳ部４１１は例えばＷｉｎｄｏｗｓ（登録商標）であり、それに搭載されるゲストＯＳ（スナップショットイメージ５１０、５２０中のゲストＯＳ部）はＬｉｎｕｘであったり、他のＯＳであったりする。また、計算機４２０、４３０のホストＯＳ部４２１，４３１はＬｉｎｕｘであり、それに搭載されるゲストＯＳはＷｉｎｄｏｗｓ（登録商標）であったり、他のＯＳであったりする。勿論、共通型ストレージ装置５００からロードされるゲストＯＳの種類は、ユーザ要求に応じて適宜変わることがある。
【００１８】
ネットワーク共有型ストレージ装置５００は、計算機４１０〜４３０からネットワーク２３０経由で同時に参照可能なファイルシステムを有するストレージ装置である。共有型ストレージ装置のハードウェア自体は、単体形式でも、分散形式でもどちらでもよい。ネットワーク共有型ストレージ装置５００は、ユーザ実行環境スナップショットイメージ５１０、５２０を記憶する。
【００１９】
実行環境スナップショットイメージ５１０、５２０は、ユーザＡ及びＢからのサービス要求Ａ，Ｂを処理可能な、アプリケーションプログラムおよびゲストＯＳを有する実行環境である。図示の例では、ユーザＡに対しては、実行環境スナップショットイメージ５１０を記憶しているが、１つのユーザＢに対しては、異なる２つの実行環境スナップショットイメージ５２０を記憶している。すなわち、実行環境スナップショットイメージ５１０は、ユーザ＃ＡゲストＯＳ部５１１、ユーザ＃Ａアプリケーションプログラム部５１２を有する。ユーザ＃Ｂ実行環境スナップショットイメージ５２０は、ユーザ＃Ｂサービス要求Ｂ−１，及びＢ−２が処理可能な実行環境であり、それぞれゲストＯＳ部５２１１，５２１２、アプリケーションプログラム部５２２１，５２２２を有する。
【００２０】
次に、計算機システムの制御動作について説明する。
以下の例では、ユーザ＃Ａ実行端末１１０から発行されるサービス要求Ａ、及びユーザ＃Ｂ実行端末１２０から発行されるサービス要求Ｂに対して、管理サーバ３１０が、ゲストＯＳの最適な仮想化実行環境を提供する場合について説明する。ここで、サービス要求Ａを処理するために、アプリケーションプログラム＃Ａ−１部５１２を１セット実行することとし、また、サービス要求Ｂを処理するために、アプリケーションプログラム＃Ｂ−１部５２２１及びアプリケーションプログラム＃Ｂ−２部５２２２を連動させながら実行するものとする。
【００２１】
また、アプリケーションプログラム＃Ａ−１部５１２を含む実行環境＃Ａ−１スナップショットイメージ５１０は計算機４１０のスナップショットイメージ搭載部４１４に搭載することが可能であり、アプリケーションプログラム＃Ｂ−１部５２２１を含む実行環境＃Ｂ−１スナップショットイメージ５２０は計算機４２０のスナップショットイメージ搭載部４２４に搭載することが可能であり、アプリケーションプログラム＃Ｂ−２部５２２２を含む実行環境＃Ｂ−２スナップショットイメージ５２０は計算機４３０のスナップショットイメージ搭載部４３４に搭載することが可能であるとする。
【００２２】
さて、実行端末１１０からサービス要求Ａが発行されると、まず、管理サーバ３１０の制御プログラム部３１１は、ネットワーク２１０を経由してサービス要求Ａを受け付け、情報管理プログラム部３１２にアクセスする。
情報管理プログラム部３１２は、サービス要求Ａを処理可能な実行環境＃Ａ−１スナップショットイメージ５１０の静的な情報、５１０が搭載可能な計算機４１０の静的な情報、モニタプログラム部４１２と４２２から情報管理プログラム３１２に提供される各計算機利用の動的なステータス情報を、制御プログラム３１１に対して提供する。
【００２３】
制御プログラム３１１は、情報管理プログラム部３１２より提供される情報を基に、サービス要求Ａを処理する最適な計算機として計算機４１０を選択し、計算機を予約する。計算機システムに対して予約されたキューは、制御プログラム３１１が一元管理する。計算機の予約の管理は、例えば予約キューをテーブルに順次登録していき、ある計算機の処理が終了した時に、次のサービス要求をその計算機に割り当てて実行するようにする。
【００２４】
例えば、予約の順番がサービス要求Ａを処理する順番になると、実行環境＃Ａ−１スナップショットイメージ５１０−１が、仮想化ソフトウェア部４１３を介して、計算機４１０のスナップショットイメージ搭載部４１４にロードされる。この際、モニタプログラム４１２は、情報管理プログラム部３１２に対してスナップショットイメージがロード中のステータスであることを報告する。
ロードが完了すると、計算機４１０のスナップショットイメージ搭載部４１４の実行環境＃Ａ−１スナップショットイメージ５１０に含まれるゲストＯＳ＃Ａ−１部５１１とアプリケーションプログラム＃Ａ−１部５１２がアクティブとなる。計算機４１０の搭載部４１４でアクティブとなったゲストＯＳ＃Ａ−１部５１１は、サービス要求Ａを処理する実行環境を整えるためにネットワーク２２０上の汎用的なサーバにアクセスして時刻の同期、ＩＰアドレスやホスト名の動的な設定を行う。
【００２５】
スナップショットイメージ搭載部４１４のゲストＯＳ＃Ａ−１部５１１の実行環境が整った後、制御プログラム部３１１は、サービス要求Ａをアプリケーションプログラム＃Ａ−１で実行可能な形式に翻訳し、計算機４１０のスナップショットイメージ搭載部４１４のアプリケーションプログラム＃Ａ−１部５１１でサービス要求Ａを処理する。この際、モニタプログラム４１２は、情報管理プログラム部３１２に対して、スナップショットイメージがサービス要求処理中のステータスであることを報告する。
【００２６】
サービス要求Ａの処理が正常終了または異常終了すると、実行環境＃Ａ−１スナップショットイメージ５１０はサービス要求Ａに対する処理結果を制御プログラム３１１に報告する。制御プログラム部３１１は仮想化ソフトウェア４１３に対してスナップショットイメージ搭載部４１４の実行環境＃Ａスナップショットイメージ５１０が占有している計算機資源を解放するよう命令する。
【００２７】
仮想化ソフトウェア４１３は、高速な実行環境スナップショットイメージの切り替えを実現するため、ゲストＯＳ＃Ａ−１部５１１の終了処理を行わず、強制的に実行環境＃Ａスナップショットイメージ５１０が占有している計算機資源を解放する。計算機資源の解放が完了すると、モニタプログラム４１２は、情報管理プログラム部３１２に対して、サービス要求受け付け可能なステータスであることを報告する。
制御プログラム３１１は、サービス要求Ａに対する処理結果を受けると、その結果をユーザ＃Ａ実行端末１１０に返してサービス要求Ａに対する一連の処理を終了する。
【００２８】
さらに、ユーザ＃Ｂサービス要求Ｂに対する制御動作も、実質的には同様である。ユーザ＃Ｂサービス要求Ｂを処理するためには、アプリケーションプログラム＃Ｂ−１部５２２１と、アプリケーションプログラム＃Ｂ−２部５２２２を連動させながら実行するものとしているので、この場合、例えば計算機４２０と４３０を並列して動作させる必要がある。管理サーバ３１０は、計算機４２０，４３０に、実行環境＃Ｂ−１スナップショットイメージ５２０、及び実行環境＃Ｂ−２スナップショットイメージ５２０をそれぞれロードして実行させる。計算機２０，４３０の予約や、予約された計算機への実行環境スナップショットイメージ５２０のロードの動作、及び計算機で実行されるジョブのステータスの管理等は、上述したユーザ＃Ｂサービス要求Ａに対する処理と同様である。
【００２９】
このようにして、複数の実行端末からの複数のサービス要求に対して、複数の計算機４１０〜４３０を用いて、それぞれ異なるゲストＯＳの実行環境を提供することができる。すなわち、ゲストＯＳとサービスを実現するアプリケーションプログラムを有する複数の仮想化された実行環境スナップショットイメージを記憶する共有型ストレージ装置から、ユーザのサービスの要求に適合するホストＯＳ上の仮想化された実行環境スナップショットイメージを、選択された計算機にロードして動作させることで、ユーザのサービス利用環境をセキュアに保ちかつ計算機資源を効率的に管理してユーザの実行環境を実現することができる。
【００３０】
以上説明したように、本実施例によれば、既に起動された状態のゲストＯＳをロードすることによりゲストＯＳの起動にかかる時間を省略することができる。また、実行環境スナップショットイメージが占有していた計算機資源を解放する場合に要求サービス処理完了時のゲストＯＳおよびアプリケーションプログラムの状態を該当の実行環境スナップショットイメージに反映しないことによりゲストＯＳの終了にかかる時間を削減することができ、実行環境スナップショットイメージ切り替えの時間を高速化することが可能である。
【００３１】
なお、本発明は上記した実施例に限定されずに、種々変形して実施することができる。例えば、図１の計算機システムでは、複数の計算機４１０〜４３０を用いているが、１台の計算機の場合でも本発明の趣旨は変わらない。１台の計算機を用いたシステムの場合、ユーザ要求に対する予約のキューは増加する可能性があるが、複数のユーザ要求にそれぞれ適合する仮想化実行環境スナップショットイメージを共有型ストレージ装置から、順番に計算機にロードしてその実行環境を実現することができる。
【００３２】
また、本発明の他の例によれば、実行環境スナップショットイメージの情報の一元的な管理に関して、複種類のマスタとなる実行環境スナップショットイメージを管理し、異なる複数のユーザが、マスタとなる実行環境スナップショットイメージを複製することにより、ユーザが容易に新しい実行環境を作成することもできる。
【図面の簡単な説明】
【００３３】
【図１】一実施例による計算機システムの構成を示すブロック図。
【符号の説明】
【００３４】
１１０、１２０：実行端末  １１１、１２１：サービス要求  ２１０、２２０、２３０：ネットワーク  ３１０：管理サーバ  ３１１：制御プログラム部  ３１２：情報管理プログラム部  ４１０、４２０、４３０：計算機  ４１１、４２１、４３１：ホストＯＳ部  ４１２、４２２、４３２：モニタプログラム部  ４１３、４２３、４３３：仮想化ソフトウェア部  ４１４、４２４、４３４：スナップショットイメージ搭載部  ５００：ネットワーク共有型ストレージ装置  ４１４、４２４、４３４：スナップショットイメージ搭載部  ５１０、５２０：実行環境スナップショットイメージ  ５１１、５２１１，５２１２：ゲストＯＳ部  ５１２、５２２１、５２２２：アプリケーションプログラム部。
【図１】
2008107966.tif 000003