(57)【特許請求の範囲】
【請求項１】
要求に応じた処理を行う仮想マシンをネットワーク上のリソースを用いて構築する管理装置を備えた情報処理システムであって、
前記管理装置は、
前記要求に応じて前記リソースを割り当てて、前記仮想マシンを構築する実行部と、
前記実行部により構築された前記仮想マシンに割り当てられた前記リソースを示すリソース情報を生成して出力するリソース情報管理部と、を有し、
前記仮想マシンは、
前記要求に応じた処理を行うために必要となる、前記仮想マシンに対する設定内容のうち、前記仮想マシンへの前記リソースの割り当てに応じて変化する部分が所定の文字列で記述されたテンプレートを記憶する記憶部と、
前記テンプレートにおける前記所定の文字列を前記リソース情報管理部から出力されたリソース情報に基づき置換して、前記要求に応じた処理を行うために必要となる、前記仮想マシンに対する設定内容を示す設定ファイルを生成する設定ファイル生成部と、
前記仮想マシン上で動作するＯＳのスタートアッププログラムにより参照可能な位置に格納された起動用スクリプトに従い、前記設定ファイル生成部により生成された設定ファイルに応じた設定を前記仮想マシンに行って前記要求に応じた処理を行うスクリプト実行部と、を有することを特徴とする情報処理システム。
【請求項２】
要求に応じた処理を行う仮想マシンをネットワーク上のリソースを用いて構築する情報処理システムの制御方法であって、
管理装置が、前記要求に応じて前記リソースを割り当てて、前記仮想マシンを構築し、
前記管理装置が、前記構築した仮想マシンに割り当てた前記リソースを示すリソース情報を生成し、
前記仮想マシンが、前記要求に応じた処理を行うために必要となる、前記仮想マシンに対する設定内容のうち、前記仮想マシンへの前記リソースの割り当てに応じて変化する部分が所定の文字列で記述されたテンプレートを読み出し、
前記仮想マシンが、前記テンプレートにおける前記所定の文字列を前記リソース情報に基づき置換して、前記要求に応じた処理を行うために必要となる、前記仮想マシンに対する設定内容を示す設定ファイルを生成し、
前記仮想マシンが、前記仮想マシン上で動作するＯＳのスタートアッププログラムにより参照可能な位置に格納された起動用スクリプトに従い、前記設定ファイルに応じた設定を前記仮想マシンに行って前記要求に応じた処理を行うことを特徴とする情報処理システムの制御方法。
【請求項３】
要求に応じた処理を行う仮想マシンをネットワーク上のリソースを用いて構築する情報処理システムを、
前記要求に応じて前記リソースを割り当てて、前記仮想マシンを構築する仮想マシン実行手段と、
前記構築した仮想マシンに割り当てた前記リソースを示すリソース情報を生成するレイヤ情報管理手段と、
前記要求に応じた処理を行うために必要となる、前記仮想マシンに対する設定内容のうち、前記仮想マシンへの前記リソースの割り当てに応じて変化する部分が所定の文字列で記述されたテンプレートを記憶する記憶手段と、
前記テンプレートにおける前記所定の文字列を前記リソース情報に基づき置換して、前記要求に応じた処理を行うために必要となる、前記仮想マシンに対する設定内容を示す設定ファイルを生成する設定ファイル生成手段と、
前記仮想マシン上で動作するＯＳのスタートアッププログラムにより参照可能な位置に格納された起動用スクリプトに従い、前記設定ファイルに応じた設定を前記仮想マシンに行って前記要求に応じた処理を行うスクリプト実行手段と、として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンを構築する情報処理システム、情報処理システムの制御方法、および、プログラムに関する。
【背景技術】
【０００２】
ユーザからの要求に応じた処理を行い、処理結果を返す仮想マシンをネットワーク上のリソースを用いて構築するクラウド技術を適用した情報処理システムの利用が拡大している。このような情報処理システムにおけるリソースは、ＣＰＵ（Central Processing Unit）、メモリ、ストレージ、ＩＰアドレス、ＶＬＡＮＩＤ（Virtual Local Area Network ID）などの下位レイヤリソースから、ＯＳ（Operating System）、ミドルウェア、アプリケーションなどの上位レイヤリソースにまで至る。
【０００３】
上述した情報処理システムにおいては、仮想マシン上で上位レイヤリソースであるＯＳ、ミドルウェア、アプリケーションなどを動作させ、要求に応じた処理を行うために、その仮想マシン、あるいは、他の仮想マシンのＩＰアドレスなどの下位レイヤリソースの情報を上位レイヤリソースに設定する必要があることがある。
【０００４】
上位レイヤリソースに設定を行う方法としては、システム管理者が上位レイヤリソースにアクセスし、手動で設定を行う方法がある。しかし、この方法では、設定に時間がかかり、迅速なサービスの提供ができないという問題がある。そのため、自動的に上位レイヤリソースに設定を行う方法が求められている。
【０００５】
特許文献１（特開２００５−４４２０１号公報）には、ネットワーク装置とホームゲートウェイサーバとを備えるシステムにおいて、ホームゲートウェイサーバが、ネットワーク装置に関する情報を予め把握した上で、ネットワーク装置がネットワーク接続するためのリソースの設定を自動的に行う方法が開示されている。
【０００６】
また、非特許文献１には、リソースの設定に関する情報を有するサーバとリソースに設定を行うクライアントとがネットワークを介して接続され、クライアントがサーバからリソースの設定に関する情報を取得して、設定を行う方法が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−４４２０１号公報
【非特許文献】
【０００８】
【非特許文献１】“連載  オープンソースな自動管理ツール  Puppet”  [平成２３年８月２２日検索]  インターネット＜http://gihyo.jp/admin/serial/01/puppet＞
【発明の概要】
【発明が解決しようとする課題】
【０００９】
近年、クラウド技術を適用した情報処理システムにおいて、サービスの多様化を図るために、下位レイヤリソースおよび上位レイヤリソースを異なる事業者が提供する水平分業が進展している。このような水平分業の下では、簡易に仮想マシンを構築し、動作させるには、下位レイヤリソースを提供する下位レイヤ事業者と上位レイヤリソースを提供する上位レイヤ事業者との関係が、互いにそれぞれが管理するリソースの詳細を知らない、いわゆる疎結合であることが望ましい。
【００１０】
特許文献１に開示の方法を上述した情報処理システムに適用し、下位レイヤ事業者側で上位レイヤリソースの設定を行おうとする場合、下位レイヤ事業者側において上位レイヤリソースに関する情報の詳細を把握した上で設定を行うことになるため、下位レイヤ事業者と上位レイヤ事業者との関係が密結合となり、簡易に仮想マシンを構築し、動作させることができない。
【００１１】
また、非特許文献１に開示の方法は、クライアントとサーバとがネットワーク接続された上でリソースの設定を行うものであり、ネットワーク接続のためのＩＰアドレスなどは自動で設定することができない。
【００１２】
本発明の目的は、簡易に仮想マシンを構築し、動作させることができる情報処理システム、情報処理システムの制御方法、および、プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するために本発明の情報処理システムは、
要求に応じた処理を行う仮想マシンをネットワーク上のリソースを用いて構築する管理装置を備えた情報処理システムであって、
前記管理装置は、
前記要求に応じて前記リソースを割り当てて、前記仮想マシンを構築する実行部と、
前記実行部により構築された前記仮想マシンに割り当てられた前記リソースを示すリソース情報を生成して出力するリソース情報管理部と、を有し、
前記仮想マシンは、
前記リソース情報管理部から出力された前記リソース情報に基づき、前記要求に応じた処理を行うために必要となる、前記仮想マシンに対する設定内容を示す設定ファイルを生成し、該生成した設定ファイルに応じた設定を前記仮想マシンに行って前記要求に応じた処理を行う。
【００１４】
上記目的を達成するために本発明の情報処理システムの制御方法は、
要求に応じた処理を行う仮想マシンをネットワーク上のリソースを用いて構築する情報処理システムの制御方法であって、
前記要求に応じて前記リソースを割り当てて、前記仮想マシンを構築し、
前記構築した仮想マシンに割り当てた前記リソースを示すリソース情報を生成し、
前記リソース情報に基づき、前記要求に応じた処理を行うために必要となる、前記仮想マシンに対する設定内容を示す設定ファイルを生成し、該生成した設定ファイルに応じた設定を前記仮想マシンに行って前記要求に応じた処理を行う。
【００１５】
上記目的を達成するために本発明のプログラムは、
要求に応じた処理を行う仮想マシンをネットワーク上のリソースを用いて構築するコンピュータに、
前記要求に応じて前記リソースを割り当てて、前記仮想マシンを構築する処理と、
前記構築した仮想マシンに割り当てた前記リソースを示すリソース情報を生成する処理と、
前記リソース情報に基づき、前記要求に応じた処理を行うために必要となる、前記仮想マシンに対する設定内容を示す設定ファイルを生成し、該生成した設定ファイルに応じた設定を前記仮想マシンに行って前記要求に応じた処理を行う処理と、を実行させる。
【発明の効果】
【００１６】
本発明によれば、簡易に仮想マシンを構築し、動作させることができる。また、下位レイヤ事業者と上位レイヤ事業者との関係が疎結合となることが望ましいクラウド技術を適用した情報処理システムなどにおいても、仮想マシンにおいて自動的に上位レイヤリソースに設定が行われるため、下位レイヤ事業者と上位レイヤ事業者との関係を疎結合とすることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態の情報処理システムの構成を示す図である。
【図２】図１に示す情報処理システムにおける設定ファイル生成時の動作を示すシーケンス図である。
【図３】図１に示す設定ファイル生成部の動作を示すフローチャートである。
【図４】下位レイヤ情報の一例を示す図である。
【図５】上位レイヤリソース識別情報の一例を示す図である。
【図６】上位レイヤ設定ターゲット情報の一例を示す図である。
【図７】上位レイヤリソース設定テンプレートの一例を示す図である。
【図８】本発明の一実施形態における設定ファイルの一例を示す図である。
【発明を実施するための形態】
【００１８】
以下に、本発明を実施するための形態について図面を参照して説明する。
【００１９】
図１は、本発明の一実施形態の情報処理システム１の構成を示す図である。
【００２０】
図１に示す情報処理システム１は、下位レイヤ管理装置１０と仮想マシン２０とを有する。
【００２１】
下位レイヤ管理装置１０は、ユーザからの要求に応じて、ネットワーク上の物理マシンのＣＰＵ、メモリ、ストレージ、また、ＩＰアドレス、ＶＬＡＮＩＤなどの下位レイヤリソースを割り当てて仮想マシン２０を構築する。なお、図１においては、仮想マシン２０を１つだけ記載しているが、通常は、複数の仮想マシン２０が構築される。
【００２２】
仮想マシン２０は、下位レイヤ管理装置１０により割り当てられた下位レイヤリソースを用いて、ＯＳ、ミドルウェア、アプリケーションなどの上位レイヤリソースを動作させ、要求に応じた処理を行う。
【００２３】
次に、下位レイヤ管理装置１０の構成について説明する。
【００２４】
下位レイヤ管理装置１０は、仮想マシン実行部１１と、下位レイヤ情報管理部１２と、下位レイヤ情報送信部１３と、を有する。
【００２５】
仮想マシン実行部１１は、いわゆる仮想マシンモニタ、ハイパーバイザなどであり、ユーザからの要求に応じて、下位レイヤリソースを割り当てて仮想マシン２０を構築する。
【００２６】
下位レイヤ情報管理部１２は、仮想マシン実行部１１により各仮想マシン２０に割り当てられた下位レイヤリソースを示す下位レイヤ情報、仮想マシンを識別する仮想マシン識別情報、および、その仮想マシンがユーザからの要求に応じた処理を行うのに必要な上位レイヤリソースを識別する上位レイヤリソース識別情報を生成し、下位レイヤ情報送信部１３に出力する。
【００２７】
下位レイヤ情報送信部１３は、下位レイヤ情報管理部１２から出力された仮想マシン識別情報に示される仮想マシン２０に、下位レイヤ情報、および、その仮想マシン２０に対応する上位レイヤリソース識別情報を送信する。
【００２８】
次に、仮想マシン２０の構成について説明する。
【００２９】
仮想マシン２０は、下位レイヤ情報受信部２１と、記憶部２２と、設定ファイル生成部２３と、スクリプト実行部２４と、を有する。なお、説明の便宜上、仮想マシン２０が上述した各部を有するものとして説明するが、各部の動作は、ＣＰＵ、メモリ、ストレージなどを用いて、仮想マシン２０のＯＳのスタートアッププログラムとして、「ｉｎｉｔ．ｄ」などのディレクトリに格納されるプログラムの処理が行われることで実現される。
【００３０】
下位レイヤ情報受信部２１は、下位レイヤ管理装置１０から送信されてきた下位レイヤ情報および上位レイヤリソース識別情報を受信し、設定ファイル生成部２３に出力する。
【００３１】
記憶部２２は、各上位レイヤリソースを動作させ、要求に応じた処理を行うために必要となる設定内容のうち、各仮想マシン２０への下位レイヤリソースの割り当てなどに応じて変化する部分が所定の文字列で記述された上位レイヤリソース設定テンプレートを格納する。以下では、所定の文字列を置換文字列と称する。なお、上位レイヤリソース設定テンプレートは、予め上位レイヤ事業者により作成され、記憶部２２に格納される。
【００３２】
また、記憶部２２は、上位レイヤリソース毎の上位レイヤリソース設定テンプレートの格納位置、その上位レイヤリソースを動作させ、要求に応じた処理を行うために必要となる、仮想マシン２０の上位レイヤリソースに対する設定内容を示す設定ファイルの配置先、および、その設定ファイルへのアクセスの可否を示すパーミッション設定を示す上位レイヤ設定ターゲット情報を格納する。
【００３３】
設定ファイル生成部２３は、上位レイヤ設定ターゲット情報および上位レイヤリソース設定テンプレートと、下位レイヤ情報受信部２１から出力された下位レイヤ情報および上位レイヤリソース識別情報と、を用いて設定ファイルを生成する。
【００３４】
スクリプト実行部２４は、仮想マシン２０上で動作するＯＳのスタートアッププログラムにより参照可能な位置に格納された起動用スクリプトを取得し、その起動用スクリプトに従い、設定ファイル生成部２３により生成された設定ファイルに応じた設定を仮想マシン２０（の上位レイヤリソース）に対して行って、上位レイヤリソースを動作させ、要求に応じた処理を行わせる。なお、起動用スクリプトは、予め上位レイヤ事業者により作成され、所定の位置に格納される。
【００３５】
次に、本実施形態の情報処理システム１の動作について説明する。
【００３６】
図２は、本実施形態の情報処理システム１における設定ファイル生成時の動作を示すシーケンス図である。
【００３７】
下位レイヤ情報管理部１２は、各仮想マシン２０に割り当てられたＩＰアドレスなどの下位レイヤリソースを示す下位レイヤ情報を生成する（ステップＳ１０１）。また、下位レイヤ情報管理部１２は、仮想マシンを識別する仮想マシン識別情報と、その仮想マシンがユーザからの要求に応じた処理を行うのに必要な上位レイヤリソースを識別する上位レイヤリソース識別情報とを生成する。下位レイヤ情報管理部１２は、生成した下位レイヤ情報、仮想マシン識別情報および上位レイヤリソース識別情報を下位レイヤ情報送信部１３に出力する（ステップＳ１０２）。
【００３８】
下位レイヤ情報送信部１３は、下位レイヤ情報と、仮想マシン識別情報に示される仮想マシン２０に対応する上位レイヤリソース識別情報と、を埋め込んだＩＳＯイメージを作成し（ステップＳ１０３）、その仮想マシン２０に送信する（ステップＳ１０４）。なお、ＩＳＯイメージとは、例えば、ＣＤ−ＲＯＭなどの記録媒体にデータを記録する際に用いられる形式のデータである。
【００３９】
ＩＳＯイメージを送信された仮想マシン２０においては、下位レイヤ情報受信部２１が、ＩＳＯイメージを受信し (ステップＳ１０５)、ＩＳＯイメージに埋め込まれた下位レイヤ情報および上位レイヤリソース識別情報を読み込み、設定ファイル生成部２３に出力する（ステップＳ１０６）。なお、ＩＳＯイメージの作成およびＩＳＯイメージに埋め込まれた情報の読み込みは、当業者にとってよく知られており、また、本発明とは直接関係しないので、詳細な説明を省略する。
【００４０】
設定ファイル生成部２３は、下位レイヤ情報受信部２１から下位レイヤ情報および上位レイヤリソース識別情報が出力されると、記憶部２２に格納されている上位レイヤ設定ターゲット情報および上位レイヤリソース設定テンプレートを読み出し（ステップＳ１０７）、設定ファイルを生成する（ステップＳ１０８）。
【００４１】
設定ファイル生成時の設定ファイル生成部２３の動作について、図３に示すフローチャートを参照して説明する。
【００４２】
図３においては、ある仮想マシンで動作するミドルウェアであるＡｐａｃｈｅに、ミドルウェアであるＴｏｍｃａｔを動作させる仮想マシンに割り当てられたＩＰアドレスを設定する場合を例として説明する。
【００４３】
上述したように、下位レイヤ情報および上位レイヤリソース識別情報が埋め込まれたＩＳＯイメージが下位レイヤ管理装置１０から送信される。
【００４４】
図４は、下位レイヤ情報の一例を示す図である。また、図５は、上位レイヤリソース識別情報の一例を示す図である。
【００４５】
図４においては、Ｔｏｍｃａｔを動作させる仮想マシンに割り当てられたＩＰアドレスが、「192.168.10.3」であることを示している。また、図５においては、処理を行うのに必要な上位レイヤリソースが、ＡｐａｃｈｅおよびＴｏｍｃａｔであることを示している。
【００４６】
設定ファイル生成部２３は、ＩＳＯイメージを受信した下位レイヤ情報受信部２１から、そのＩＳＯファイルに埋め込まれた下位レイヤ情報および上位レイヤリソース識別情報を取得する（ステップＳ２０１）。
【００４７】
次に、設定ファイル生成部２３は、記憶部２２に格納されている上位レイヤ設定ターゲット情報を読み出す。
【００４８】
図６は、上位レイヤ設定ターゲット情報の一例を示す図である。
【００４９】
図６に示すように、上位レイヤ設定ターゲット情報は、上位レイヤリソースの識別情報（Ａｐａｃｈｅ，Ｔｏｍｃａｔ）に対応して、上位レイヤリソース設定テンプレートの格納位置、設定ファイルの配置先、および、設定ファイルのパーミッション設定を示す。
【００５０】
設定ファイル生成部２３は、上位レイヤ設定ターゲット情報から、上位レイヤリソース設定テンプレートの格納位置、設定ファイルの配置先、および、設定ファイルのパーミッション設定を取得する（ステップＳ２０２）。
【００５１】
次に、設定ファイル生成部２３は、上位レイヤリソース識別情報に示される上位レイヤリソースに対応する上位レイヤリソース設定テンプレートを、上位レイヤ設定ターゲット情報から読み出した格納位置にアクセスして取得する（ステップＳ２０３）。
【００５２】
図７は、上位レイヤリソース設定テンプレートの一例を示す図である。
【００５３】
図７に示すように、上位レイヤリソース設定テンプレートにおいては、Ａｐａｃｈｅを動作させるための設定として、データの入出力を行うポートのポート番号、処理結果などの提供を受けるホスト（Ｔｏｍｃａｔを動作させる仮想マシン）のＩＰアドレスなどが記述されている。ここで、Ｔｏｍｃａｔを動作させる仮想マシンのＩＰアドレスは、下位レイヤリソースの割り当て環境などに応じて変わる。そのため、Ｔｏｍｃａｔを動作させる仮想マシンのＩＰアドレスには、置換文字列[$tomcat_ip_address]が記述されている。このように、上位レイヤリソース設定テンプレートにおいては、上位レイヤリソースの設定のうち、環境に応じて変わる部分が置換文字列で記述されている。
【００５４】
次に、設定ファイル生成部２３は、上位レイヤリソース設定テンプレートに記述されている置換文字列[$tomcat_ip_address]に対応する下位レイヤ情報を抽出する。下位レイヤ情報においては、「tomcat_ip_address=192.168.10.3」と記述されているため、設定ファイル生成部２３は、ＩＰアドレス「192.168.10.3」を抽出する（ステップＳ２０４）。
【００５５】
次に、設定ファイル生成部２３は、上位レイヤリソース設定テンプレートの置換文字列[$tomcat_ip_address]を、ステップＳ２０４で抽出したＩＰアドレス「１９２．１６８．１０．３」に置換して、設定ファイルを生成する（ステップＳ２０５）。
【００５６】
図８は、設定ファイルの一例を示す図である。
【００５７】
図８に示すように、上位レイヤリソース設定テンプレートにおいては置換文字列が記述されていた箇所に、ＩＰアドレス「１９２．１６８．１０．３」が記述される。なお、置換文字列の置換は、例えば、プログラミング言語であるＰｅｒｌの「Text::Template」を利用したテンプレートエンジンを用いて行われる。
【００５８】
次に、設定ファイル生成部２３は、生成した設定ファイルをステップＳ２０２で取得した配置先に配置するとともに、パーミッション設定を行う（ステップＳ２０６）。
【００５９】
次に、設定ファイル生成部２３は、設定ファイルの生成が必要な全ての上位レイヤリソースに対して設定ファイルの作成が完了したか否かを判定する（ステップＳ２０７）。
【００６０】
全ての上位レイヤリソースに対して設定ファイルの作成が完了していない場合には（ステップＳ２０７：Ｎｏ）、設定ファイル生成部２３は、ステップＳ２０２の処理に戻る。
【００６１】
全ての上位レイヤリソースに対して設定ファイルの作成が完了した場合には（ステップＳ２０７：Ｙｅｓ）、設定ファイル生成部２３は、処理を終了する。
【００６２】
このように本実施形態によれば、下位レイヤ管理装置１０は、仮想マシンに割り当てた下位レイヤリソースを示す下位レイヤ情報を生成して出力し、仮想マシン２０は、その下位レイヤ情報に基づき、仮想マシン２０の上位レイヤリソースに対する設定内容のうち、一部が置換文字列で記述された上位レイヤリソース設定テンプレートにおける置換文字列を置換して設定ファイルを生成し、その設定ファイルに応じた設定を上位レイヤリソースに行って、要求に応じた処理を行う。
【００６３】
上述したように、下位レイヤ管理装置１０から下位レイヤ情報を出力するのみで、仮想マシン２０において自動的に上位レイヤリソースに設定が行われる。そのため、下位レイヤリソースおよび上位レイヤリソースを異なる事業者が提供する水平分業が行われた場合にも、上位レイヤ事業者と下位レイヤ事業者との関係は疎結合のまま、上位レイヤリソースを設定することができ、簡易に仮想マシンを構築し、動作させることができる。
【００６４】
なお、本発明の情報処理システムにおいて行われる方法は、コンピュータに実行させるためのプログラムに適用してもよい。また、そのプログラムを記憶媒体に格納することも可能であり、ネットワークを介して外部に提供することも可能である。
【符号の説明】
【００６５】
１    情報処理システム
１０    下位レイヤ管理装置
１１    仮想マシン実行部
１２    下位レイヤ情報管理部
１３    下位レイヤ情報送信部
２０    仮想マシン
２１    下位レイヤ情報受信部
２２    記憶部
２３    設定ファイル生成部
２４    スクリプト実行部
【図１】
0005450549.tif 000002
【図２】
0005450549.tif 000003
【図３】
0005450549.tif 000004
【図４】
0005450549.tif 000005
【図５】
0005450549.tif 000006
【図６】
0005450549.tif 000007
【図７】
0005450549.tif 000008
【図８】
0005450549.tif 000009