JP2013080275A - 設定制御装置、設定制御方法および設定制御プログラム - Google Patents

設定制御装置、設定制御方法および設定制御プログラム Download PDF

Info

Publication number
JP2013080275A
JP2013080275A JP2011218495A JP2011218495A JP2013080275A JP 2013080275 A JP2013080275 A JP 2013080275A JP 2011218495 A JP2011218495 A JP 2011218495A JP 2011218495 A JP2011218495 A JP 2011218495A JP 2013080275 A JP2013080275 A JP 2013080275A
Authority
JP
Japan
Prior art keywords
software
server
setting
parameter
storage unit
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.)
Granted
Application number
JP2011218495A
Other languages
English (en)
Other versions
JP5903822B2 (ja
Inventor
Naoki Akiyama
尚樹 秋山
Takayuki Maeda
隆之 前田
Norihiko Sakamoto
憲彦 坂本
Hideo Shimizu
英雄 清水
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011218495A priority Critical patent/JP5903822B2/ja
Priority to US13/625,014 priority patent/US9223601B2/en
Priority to EP12185658A priority patent/EP2575042A1/en
Publication of JP2013080275A publication Critical patent/JP2013080275A/ja
Application granted granted Critical
Publication of JP5903822B2 publication Critical patent/JP5903822B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Abstract

【課題】複数の仮想マシンの動作環境の設定において、ソフトウェア間の処理の依存関係に起因するエラーを抑制することを課題とする。
【解決手段】設定制御装置は、配備した仮想システムが有する各仮想サーバに対して、動作環境やソフトウェア等にパラメータを設定し、正常にシステム全体を動作させる。設定制御装置は、決定部と動作環境設定部とを有し、これらによって、仮想サーバの動作環境を設定する。決定部は、複数の仮想マシンで実行されるソフトウェア間の処理の依存関係にしたがって、複数の仮想マシンのそれぞれを動作させる動作環境の設定順序を決定する。動作環境設定部は、決定部によって決定された設定順序で、前記仮想マシンのそれぞれの動作環境を設定する。
【選択図】図1

Description

本発明は、設定制御装置、設定制御方法および設定制御プログラムに関する。
従来、仮想システムをユーザに提供する技術として、複数のネットワークとサーバとを含むシステムをテンプレートとして登録し、ユーザの要求にしたがってシステムを配備する技術が知られている。テンプレートで登録されるシステムを配備することで、テンプレートに含まれるサーバのイメージはクローニングされ、独立した仮想システムとして動作する。
仮想システムを配備した場合、仮想システムに含まれる仮想サーバに新しいIP(Internet Protocol)アドレスやホスト名が割り与えられ、これに伴って、OS(Operating System)またはソフトウェアのIPアドレスやホスト名も自動的に変更される。ところが、ソフトウェアの接続先を指定するIPアドレスやホスト名のパラメータ、すなわちソフトウェア間の接続関係を示すパラメータなどについては、手動で設定変更することになる。なお、ソフトウェアの接続関係を示すパラメータの一例としてはポート番号などがある。例えば、WebサーバAのソフトウェアAが利用するポート番号200を自動設定できたとしても、ソフトウェアAの接続先であるWebサーバBのソフトウェアBに対しては、ポート番号200を自動で設定することができず、手動で設定することになる。
近年では、仮想システムを配備した場合に、ソフトウェア間の接続関係を示すパラメータの設定にかかる負荷を軽減する技術が知られている。例えば、配備する仮想システムごとにフローを生成し、生成したフローに基づいてソフトウェア間の接続関係を示すパラメータを設定する技術が知られている。
特開2010−39626号公報 特開2003−318900号公報
しかしながら、従来技術では、ソフトウェア間の接続関係を示すパラメータを自動で設定することができないという問題がある。
例えば、テンプレートを用いて仮想システムを配備する場合、配備されるシステムは顧客や業務によって異なることが一般的である。また、顧客や業務が異なれば、使用されるソフトウェアの種類や数も異なる。このため、配備されるシステムごとにソフトウェアの種類や数を確認して各システムに適したフローを生成することは、非常に手間のかかる作業である。このように、従来技術では、仮想システムを配備するたびに、手間のかかるフローを毎回生成することになるので、ソフトウェア間の接続関係を示すパラメータを自動で設定できるとは言い難い。
1つの側面では、複数の仮想マシンの動作環境の設定において、ソフトウェア間の処理の依存関係に起因するエラーを抑制することを目的とする。
第1の案では、設定制御装置は、複数の仮想マシンで実行されるソフトウェア間の処理の依存関係にしたがって、前記複数の仮想マシンのそれぞれを動作させる動作環境の設定順序を決定する決定部を有する。設定制御装置は、前記決定部によって決定された設定順序で、前記仮想マシンのそれぞれの動作環境を設定する動作環境設定部を有する。
複数の仮想マシンの動作環境の設定において、ソフトウェア間の処理の依存関係に起因するエラーを抑制することができる。
図1は、実施例1に係るシステムの全体構成例を示す図である。 図2は、実施例2に係る設定制御装置の構成を示す機能ブロック図である。 図3は、システムテンプレート記憶部に記憶されるテンプレートの例を示す図である。 図4は、ソフトウェアテンプレート記憶部に記憶されるテンプレートの例を示す図である。 図5は、サーバ情報記憶部に記憶される情報の例を示す図である。 図6は、NIC情報記憶部に記憶される情報の例を示す図である。 図7は、ソフトウェア情報記憶部に記憶される情報の例を示す図である。 図8は、ソフトウェアパラメータ記憶部に記憶される情報の例を示す図である。 図9は、ソフトウェア接続関係記憶部に記憶される情報の例を示す図である。 図10は、サーバOS優先順記憶部に記憶される情報の例を示す図である。 図11は、ソフトウェア優先順記憶部に記憶される情報の例を示す図である。 図12は、スクリプトに定義するパラメータとメソッドの例を示す図である。 図13は、実施例2に係る設定制御装置が実行する処理の全体的な流れを示すフローチャートである。 図14は、実施例2に係る設定制御装置が実行する構成情報抽出処理の流れを示すフローチャートである。 図15は、実施例2に係る設定制御装置が実行する接続関係抽出処理の流れを示すフローチャートである。 図16は、変数であるパラメータの値にさらに変数があるかないかを説明するソフトウェアパラメータ記憶部の例を示す図である。 図17は、変数の参照が循環参照でない例を示すソフトウェアパラメータ記憶部を示す図である。 図18は、変数の参照が循環参照である例を示すソフトウェアパラメータ記憶部を示す図である。 図19は、実施例2に係る設定制御装置が実行する優先順決定処理1の流れを示すフローチャートである。 図20は、実施例2に係る設定制御装置が実行する優先順決定処理2の流れを示すフローチャートである。 図21は、実施例2に係る設定制御装置が実行する設定起動処理の流れを示すフローチャートである。 図22は、設定制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。
以下に、本願の開示する設定制御装置、設定制御方法および設定制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、実施例1に係るシステムの全体構成例を示す図である。図1に示す設定制御装置10は、複数のネットワークとサーバとを含むシステムをテンプレートとして登録し、ユーザの要求にしたがってシステムを配備して、仮想システムを提供するサーバ装置である。こうすることで、テンプレートに含まれるサーバのイメージはクローニングされ、独立した仮想システムとして動作する。
図1の場合、設定制御装置10は、内部の記憶装置または外部の記憶装置に、2台のWebサーバと1台のAP(アプリケーション)サーバと1台のDB(DataBase)サーバとから形成されるシステムの構成をテンプレートとして保持する。そして、設定制御装置10は、ユーザからシステム構築の要求を受信した場合に、保持するシステムのテンプレートと同様の構成であるシステム1やシステム2を、1台または複数の物理サーバ上に配備する。つまり、設定制御装置10は、クラウドシステム上に存在する物理リソースを用いて、2台の仮想Webサーバ、1台の仮想APサーバ、1台の仮想DBサーバから形成される仮想システムを構築し、プライベートクラウドとしてユーザに提供する。
そして、設定制御装置10は、このようにして配備した仮想システムが有する各仮想サーバに対して、動作環境やソフトウェア等にパラメータを設定し、正常にシステム全体を動作させる。具体的には、設定制御装置10は、決定部10aと動作環境設定部10bとを有し、これらによって、仮想サーバの動作環境を設定する。
決定部10aは、複数の仮想マシンで実行されるソフトウェア間の処理の依存関係にしたがって、複数の仮想マシンのそれぞれを動作させる動作環境の設定順序を決定する処理部である。動作環境設定部10bは、決定部10aによって決定された設定順序で、前記仮想マシンのそれぞれの動作環境を設定する処理部である。
このように、設定制御装置10は、仮想サーバで動作するソフトウェア間の接続状況から仮想サーバの設定について、実行する順序を決定することができる。つまり、設定制御装置10は、仮想サーバ間の接続状況を物理的または論理的な構成ではなく、ソフトウェアでどのように接続されているかに基づいて、設定順序を決定する。したがって、設定制御装置10は、配備する仮想システムごとにフローを生成することなく、ソフトウェア間の接続関係を示すパラメータを自動で設定することができる。
次に、実施例1で説明した設定制御装置について具体的に説明する。実施例2では、設定制御装置10の構成、処理の流れについて説明する。
[設定制御装置の構成]
図2は、実施例2に係る設定制御装置の構成を示す機能ブロック図である。図2に示すように、設定制御装置10は、通信インタフェース11と記憶部12と制御部30とを有する。なお、設定制御装置10が有する処理部等はあくまで例示であり、これに限定されるものではない。例えば、設定制御装置10は、マウスなどの入力部、ディスプレイなどの表示部、記憶媒体を受け付けた情報を読み書きする媒体読取装置等を有していてもよい。
通信インタフェース11は、他の装置との間の通信を制御するNIC(Network Interface Card)などである。例えば、通信インタフェース11は、ユーザ端末からシステムの配備要求を受信し、配備した仮想サーバに動作環境を設定するコマンドや仮想サーバの動作を開始させるコマンドやスクリプト等を送信する。また、通信インタフェース11は、配備した仮想サーバのソフトウェアにパラメータを設定するコマンドやスクリプト等を送信し、当該ソフトウェアの動作を開始させるコマンドやスクリプト等を送信する。また、通信インタフェース11は、仮想システムの設定および動作開始が完了したことを示す完了通知をユーザ端末に送信する。
記憶部12は、制御部30が実行するプログラムやデータを記憶する記憶装置であり、例えば半導体素子やハードディスクなどである。図2に示すように、記憶部12は、システムテンプレート記憶部13、ソフトウェアテンプレート記憶部14、サーバ情報記憶部15、NIC情報記憶部16、ソフトウェア情報記憶部17を有する。また、記憶部12は、ソフトウェアパラメータ記憶部18、ソフトウェア接続関係記憶部19、サーバOS優先順記憶部20、ソフトウェア優先順記憶部21を有する。なお、記憶部12が有する各記憶部は、テーブルやDBなどで形成される。
システムテンプレート記憶部13は、仮想システムの構成を定義するテンプレートおよびテンプレートで指定された情報を記憶する記憶部である。具体的には、システムテンプレート記憶部13は、ネットワーク、サーバ、NIC、ソフトウェアを要素とした構成を表したテンプレートを記憶する。なお、テンプレートは、例えばXML(eXtensible Markup Language)構造で定義することができる。
図3は、システムテンプレート記憶部に記憶されるテンプレートの例を示す図である。図3に示すように、システムのテンプレートは、「name」、「vnets」、「servers」で定義される。ユーザは、このテンプレートにおいて「name」、「vnets」、「servers」に設定を記述する。
「name」は、仮想システムの名称を定義するものであり、図3の場合、「Web−AP−DBシステム」と定義されている。「vnets」は、仮想システムに設定される仮想ネットワークを定義するものである。図3の場合、IDとしてnet1が割り与えられたDMZ(DeMilitarized Zone)と、IDとしてnet2が割り与えられたSubnetAと、IDとしてnet3が割り与えられたSubnetBとが定義されている。
「servers」は、仮想サーバを定義するものであり、「no」、「name」、「imageId」、「vnics」、「software」が定義される。「no」は、仮想サーバを識別するサーバの識別子を定義し、「name」は、仮想サーバのホスト名を定義し、「imageId」は、仮想サーバのOS(Operating System)やCドライブのイメージを定義する。また、「vnics」は、仮想サーバが使用する仮想ネットワークを定義し、「software」は、仮想サーバが実行するソフトウェアを定義する。
図3を用いて一例を説明すると、識別子として「1」を割り与えられた「Web1サーバ」は、イメージとして「image1」が定義されている。また、「Web1サーバ」には、仮想ネットワーク1として「net1」すなわち外部ネットワークに接続されることが定義されており、仮想ネットワーク2として「net2」すなわち内部ネットワークであるSubnetAに接続されることが定義されている。また、「Web1サーバ」には、識別子として「1」が割り与えられたソフトウェアである「SW01」を実行することが定義されている。
図2に戻り、ソフトウェアテンプレート記憶部14は、ソフトウェアのパラメータに設定する値を定義するテンプレートを記憶する記憶部である。ユーザは、ソフトウェアテンプレート記憶部14に記憶されるテンプレートにパラメータ値を記述することで、ソフトウェアのパラメータに設定する値を定義できる。また、ユーザは、ソフトウェアのパラメータで接続関係がある場合は、接続元のパラメータの値に、接続先のパラメータの値を記述する。これにより、接続先のパラメータの値を参照する変数を記述でき、パラメータの設定値に別のパラメータを参照する変数が存在する場合に、接続関係があると判断される。なお、テンプレートは、例えばXML(eXtensible Markup Language)構造で定義することができる。
図4は、ソフトウェアテンプレート記憶部に記憶されるテンプレートの例を示す図である。図4に示すように、ソフトウェアのテンプレートは、「key」と「value」とを定義する少なくとも1つの「parameter」で定義される。「parameter」は、ソフトウェアに定義するパラメータを定義するものであり、「key」は、パラメータの名称を定義するものであり、「value」は、パラメータに設定する値、言い換えるとパラメータの参照値を定義するものである。パラメータの参照値は、「#」以降に定義される。
図4を用いて一例を説明すると、「server1」の「ソフトウェア1」の「web.ap.connection.ipaddress」というパラメータには、設定する値として「server[3].nic[1].ipaddress」が定義されている。つまり、サーバの識別子として「1」が割り与えられた「Web1サーバ」でソフトウェアの識別子「1」が割り与えられた「SW01」の「web.ap.connection.ipaddress」には、「server[3].nic[1].ipaddress」が設定されることを示す。
図2に戻り、サーバ情報記憶部15は、仮想サーバの情報を記憶する記憶部である。ここで記憶される情報は、後述する構成情報抽出部33によって格納される。図5は、サーバ情報記憶部に記憶される情報の例を示す図である。図5に示すように、サーバ情報記憶部15は、「サーバNo、名前」を対応付けて記憶する。ここで記憶される「サーバNo」は、サーバを識別するサーバの識別子であり、図3の「server」内の「no」に定義される値が該当する。「名前」は、サーバに設定されるホスト名であり、図3の「server」内の「name」に定義される値が該当する。
図5の場合、「Web1 Server」には、サーバNoとして「1」が与えられており、「Web2 Server」には、サーバNoとして「2」が与えられていることを示す。また、「AP Server」には、サーバNoとして「3」が与えられており、「DB Server」には、サーバNoとして「4」が与えられていることを示す。
NIC情報記憶部16は、仮想サーバのNICに設定されたアドレス情報を記憶する記憶部である。ここで記憶される情報は、後述する構成情報抽出部33によって格納される。図6は、NIC情報記憶部に記憶される情報の例を示す図である。図6に示すように、NIC情報記憶部16は、「サーバNo、NIC No、IP(Internet Protocol)アドレス」を対応付けて記憶する。
ここで記憶される「サーバNo」は、サーバを識別するサーバの識別子であり、図3の「server」内の「no」に定義される値が該当する。「NIC No」は、NICを識別するインタフェースの識別子であり、図3の「server」内の「vnics」の「no」に定義される値が該当する。「IPアドレス」は、NICに設定されるIPアドレスであり、後述する構成情報抽出部33等によって設定される。
図6の場合、「サーバNo=1」が有する「NIC No=1」のNICには、IPアドレスとして「192.168.1.2」が設定されていることを示す。また、「サーバNo=1」が有する「NIC No=2」のNICには、IPアドレスとして「192.168.2.2」が設定されていることを示す。つまり、Web1サーバのNIC1には「192.168.1.2」が設定されており、Web1サーバのNIC2には「192.168.2.2」が設定されていることを示す。
また、「サーバNo=3」が有する「NIC No=1」のNICには、IPアドレスとして「192.168.2.4」が設定されていることを示す。また、「サーバNo=3」が有する「NIC No=2」のNICには、IPアドレスとして「192.168.3.2」が設定されていることを示す。つまり、APサーバのNIC1には「192.168.2.4」が設定されており、APサーバのNIC2には「192.168.3.2」が設定されていることを示す。なお、図6に示したIPアドレス等は一例であり、数値等を限定するものではない。
ソフトウェア情報記憶部17は、仮想サーバが実行するソフトウェアの情報を記憶する記憶部である。ここで記憶される情報は、後述する構成情報抽出部33によって格納される。図7は、ソフトウェア情報記憶部に記憶される情報の例を示す図である。図7に示すように、ソフトウェア情報記憶部17は、「サーバNo、ソフトNo、パラメータ定義ID」を対応付けて記憶する。
ここで記憶される「サーバNo」は、サーバを識別するサーバの識別子であり、図3の「server」内の「no」に定義される値が該当する。「ソフトNo」は、仮想サーバが実行するソフトウェアを識別するソフトウェアの識別子であり、図3の「server」内の「software」の「no」に定義される値が該当する。「パラメータ定義ID」は、パラメータの設定先となるソフトウェアを識別する識別子であり、図3の「server」内の「software」の「id」に定義される値が該当する。
図7の場合、「サーバNo=1」が実行する「ソフトNo=1」のソフトウェアには、パラメータ定義IDとして「SW01」が設定されていることを示す。つまり、Web1サーバは「SW01」が設定されたソフトウェアを実行する。「サーバNo=2」が実行する「ソフトNo=1」のソフトウェアには、パラメータ定義IDとして「SW01」が設定されていることを示す。つまり、Web2サーバは「SW01」が設定されたソフトウェアを実行する。
同様に、「サーバNo=3」が実行する「ソフトNo=1」のソフトウェアには、パラメータ定義IDとして「SW02」が設定されていることを示す。また、「サーバNo=4」が実行する「ソフトNo=1」のソフトウェアには、パラメータ定義IDとして「SW03」が設定されていることを示す。つまり、APサーバは「SW02」が設定されたソフトウェアを実行し、DBサーバは「SW03」が設定されたソフトウェアを実行する。
図2に戻り、ソフトウェアパラメータ記憶部18は、ソフトウェアに設定するパラメータの情報を記憶する記憶部である。ここで記憶される情報は、後述する構成情報抽出部33によって格納される。図8は、ソフトウェアパラメータ記憶部に記憶される情報の例を示す図である。図8に示すように、ソフトウェアパラメータ記憶部18は、「サーバNo、ソフトNo、パラメータのキー、パラメータの値」を対応付けて記憶する。
ここで記憶される「サーバNo」は、サーバを識別するサーバの識別子であり、図4の「key」に定義される「server[※].software[$]・・・」の[※]に設定される値が該当する。なお、※および$は整数である。「ソフトNo」は、仮想サーバが実行するソフトウェアを識別するソフトウェアの識別子であり、図4の「key」に定義される「server[※].software[$]・・・」の[$]に設定される値が該当する。「パラメータのキー」は、設定するパラメータの名称を示し、図4の「key」に定義される「server[※].software[$]・・・」の[・・・]に記述されるパラメータが該当する。
図8の場合、「サーバNo=1」が実行する「ソフトNo=1」のソフトウェアには、パラメータのキーとして「web.ap.connection.ipaddress」が設定されており、パラメータの値として「#{server[3].nic[1].ipaddress}」が設定されていることを示す。つまり、Web1サーバのソフトウェアである「SW01」のパラメータ「web.ap.connection.ipaddress」には、「#{server[3].nic[1].ipaddress}」が設定されることを示す。
また、「サーバNo=3」が実行する「ソフトNo=1」のソフトウェアには、パラメータのキーとして「ap.connection.port」が設定されており、パラメータの値として「9008」が設定されていることを示す。つまり、APサーバのソフトウェアである「SW02」のパラメータ「ap.connection.port」には、「9008」が設定されることを示す。
ソフトウェア接続関係記憶部19は、仮想サーバが実行するソフトウェア間の接続関係を記憶する記憶部である。ここで記憶される情報は、後述する接続関係抽出部34によって格納される。図9は、ソフトウェア接続関係記憶部に記憶される情報の例を示す図である。図9に示すように、ソフトウェア接続関係記憶部19は、「設定側のサーバNo、設定側のソフトNo、設定側のパラメータのキー、参照側のサーバNo、参照側のソフトNo、参照側のパラメータのキー」を対応付けて記憶する。
ここで記憶される「設定側のサーバNo」は、パラメータを設定するサーバを識別するサーバの識別子を示し、「設定側のソフトNo」は、パラメータを設定するサーバのソフトウェアを識別する識別子を示す。「設定側のパラメータのキー」は、設定側のソフトウェアに設定するパラメータの名称を示す。また、「参照側のサーバNo」は、設定側のソフトウェアのパラメータとして参照されるサーバを識別するサーバの識別子を示し、「参照側のソフトNo」は、設定側のソフトウェアのパラメータとして参照されるソフトウェアを識別するサーバの識別子を示す。「参照側のパラメータのキー」は、設定側に参照される、参照側のソフトウェアに設定されるパラメータの名称を示す。
図9の場合、「サーバNo=1」が実行する「ソフトNo=1」のソフトウェアのパラメータ「web.ap.connection.ipaddress」は、「サーバNo=3」に設定されるパラメータ「nic[1].ipaddress」を参照して設定されることを示す。つまり、Web1サーバのSW01は、APサーバに設定される「nic[1].ipaddress」を「web.ap.connection.ipaddress」に設定することを示す。
また、「サーバNo=1」が実行する「ソフトNo=1」のソフトウェアのパラメータ「web.ap.connection.port」は、「サーバNo=3」が実行する「ソフトNo=1」に設定されるパラメータ「ap.connection.port」を参照して設定されることを示す。つまり、Web1サーバのSW01は、APサーバのSW02に設定される「ap.connection.port」を「web.ap.connection.port」に設定することを示す。
図2に戻り、サーバOS優先順記憶部20は、仮想サーバのOSに対してパラメータ等を設定する順序や仮想サーバのOSを起動させる順序を記憶する記憶部である。なお、ここで記憶される情報は、後述する優先順決定部35によって格納される。図10は、サーバOS優先順記憶部に記憶される情報の例を示す図である。図10に示すように、サーバOS優先順記憶部20は、「サーバNo、接続関係の分類、優先順位」を対応付けて記憶する。
ここで記憶される「サーバNo」は、設定および起動対象となる仮想サーバの識別子を示す。「接続関係の分類」は、なし、参照のみ、設定と参照、設定のみのいずれに該当するかを示す。なお、参照のみとは、他の仮想サーバから参照されるパラメータを有する仮想サーバであることを示し、設定と参照とは、他の仮想サーバから参照されるパラメータと他の仮想サーバから参照されないパラメータとを有する仮想サーバであることを示す。設定のみとは、他の仮想サーバから参照されないパラメータを有する仮想サーバであることを示し、なしは、上記参照のみ、設定と参照、設定のみのいずれに該当しない仮想サーバを示す。「優先順位」は、設定および起動の優先順位を示し、低い数字ほど優先順位が高い。
図10の場合、設定および起動の優先順位が最も高い仮想サーバは、参照のみ分類された「サーバNo=4」のDBサーバであることを示す。次に優先順位が高い仮想サーバは、設定と参照に分類された「サーバNo=3」のAPサーバであることを示す。次に優先順位が高い仮想サーバは、設定のみに分類された「サーバNo=2」のWeb2サーバであることを示す。優先順位が最も低い仮想サーバは、設定のみに分類された「サーバNo=1」のWeb1サーバであることを示す。
ソフトウェア優先順記憶部21は、仮想サーバが実行するソフトウェアに対してパラメータ等を設定する順序やソフトウェアを起動させる順序を記憶する記憶部である。なお、ここで記憶される情報は、後述する優先順決定部35によって格納される。図11は、ソフトウェア優先順記憶部に記憶される情報の例を示す図である。図11に示すように、ソフトウェア優先順記憶部21は、「サーバNo、ソフトNo、接続関係の分類、優先順位」を対応付けて記憶する。
ここで記憶される「サーバNo」は、設定および起動対象となるソフトウェアを実行する仮想サーバの識別子を示し、「ソフトNo」は、設定および起動対象となるソフトウェアの識別子を示す。「接続関係の分類」は、なし、参照のみ、設定と参照、設定のみのいずれに該当するかを示す。なお、参照のみとは、他のソフトウェアから参照されるパラメータを有するソフトウェアであることを示し、設定と参照とは、他のソフトウェアから参照されるパラメータと他のソフトウェアから参照されないパラメータとを有するソフトウェアであることを示す。設定のみとは、他のソフトウェアから参照されないパラメータを有するソフトウェアであることを示し、なしは、上記参照のみ、設定と参照、設定のみのいずれに該当しないソフトウェアを示す。「優先順位」は、設定および起動の優先順位を示し、低い数字ほど優先順位が高い。
図11の場合、設定および起動の優先順位が最も高いソフトウェアは、参照のみに分類された「サーバNo=4」のDBサーバが実行する「ソフトNo=1」の「SW03」であることを示す。次に優先順位が高いソフトウェアは、設定と参照に分類された「サーバNo=3」のAPサーバが実行する「ソフトNo=1」の「SW02」であることを示す。次に優先順位が高いソフトウェアは、設定のみに分類された「サーバNo=2」のWeb2サーバが実行する「ソフトNo=1」の「SW01」であることを示す。優先順位が最も低いソフトウェアは、設定のみに分類された「サーバNo=1」のWeb1サーバが実行する「ソフトNo=1」の「SW01」であることを示す。
図2に戻り、制御部30は、OSなどを実行して設定制御装置10の全体を司る処理部であり、例えばCPU(Central Processing Unit)などの電子回路である。制御部30は、情報受付部31とシステム配備制御部32と構成情報抽出部33と接続関係抽出部34と優先順決定部35と開始制御部36とを有し、これらによって仮想システムを構築する。
情報受付部31は、ユーザ端末からシステム構築の要求を受け付けた場合に、システムのテンプレートやソフトウェアのテンプレートをユーザ端末に送信して、システムの構成情報を受け付ける処理部である。例えば、情報受付部31は、システムテンプレート記憶部13に記憶されるシステムのテンプレートをWeb画面としてユーザ端末に表示させて、当該Web画面上で「server」の「id」や「name」、「software」の「no」や「id」などの設定情報を受け付ける。そして、情報受付部31は、設定情報が記述されたシステムのテンプレートをシステムテンプレート記憶部13に格納する。なお、システムのテンプレートは、システムにおいて外部ネットワークに近いサーバから順に定義される。
また、情報受付部31は、ソフトウェアテンプレート記憶部14に記憶されるソフトウェアのテンプレートをWeb画面としてユーザ端末に表示させて、当該Web画面上で「key」や「value」の設定情報を受け付ける。そして、情報受付部31は、設定情報が記述されたソフトウェアのテンプレートをソフトウェアテンプレート記憶部14に格納する。なお、ソフトウェアのテンプレートは、システムにおいて外部ネットワークに近いサーバから順に定義される。
システム配備制御部32は、ユーザに指定されたシステムを物理サーバ上に配備する処理部である。例えば、システム配備制御部32は、システムテンプレート記憶部13やソフトウェアテンプレート記憶部14が更新されたことを検出する。すると、システム配備制御部32は、システムテンプレート記憶部13に定義された各「server」をクラウドシステム上に配備する。すなわち、システム配備制御部32は、クラウドシステム内の存在する物理リソースを用いて、システムテンプレート記憶部13に定義された各「server」が動作できる領域を確保する。
構成情報抽出部33は、システムテンプレート記憶部13やソフトウェアテンプレート記憶部14が記憶する情報を先頭から読み出して、サーバ情報、NIC情報、ソフトウェア情報、ソフトウェアパラメータ情報を抽出する処理部である。起動する契機としては、構成情報抽出部33は、情報受付部31から処理開始を通知された場合や、システムテンプレート記憶部13やソフトウェアテンプレート記憶部14が更新されたことを検出した場合などがある。ここでは、構成情報抽出部33が抽出する情報各々について説明する。なお、構成情報抽出部33は、システムのテンプレートの先頭から順に定義を参照して、後述する処理を実行する。
(サーバ情報の抽出)
構成情報抽出部33は、システムテンプレート記憶部13に記憶されるテンプレートであり、ユーザによってシステム構成が記述されたテンプレートからサーバに関する情報を抽出してサーバ情報記憶部15に格納する。例えば、図3を用いて説明する。構成情報抽出部33は、「server」内の「no」に定義される「1」と「name」に定義される「Web1Server」を抽出する。そして、構成情報抽出部33は、抽出した「1、Web1 Server」を「サーバNo、名前」としてサーバ情報記憶部15に格納する。同様に、構成情報抽出部33は、Web2 Server、AP Server、DB Serverのそれぞれについても同様の処理を実行して、システムのテンプレートから「サーバNo、名前」を抽出してサーバ情報記憶部15に格納する。
(NICへの割当)
構成情報抽出部33は、システムのテンプレートに定義された各仮想サーバのNICにIPアドレスを割り与えて、割り与えた情報等をNIC情報記憶部16に格納する。例えば、図3を例にして説明すると、構成情報抽出部33は、「server」内の「no」に定義される「1」と、「server」内の「vnics」に定義される「net1」および「net2」とを抽出する。そして、構成情報抽出部33は、抽出した「1、net1」および「1、net2」を「サーバNo、NIC No」としてNIC情報記憶部16に格納する。続いて、構成情報抽出部33は、「net1」にIPアドレスとして「192.168.1.2」を割り与え、「net2」にIPアドレスとして「192.168.2.2」を割り与える。そして、構成情報抽出部33は、割り与えたIPアドレスをそれぞれのNIC Noに対応付けて、NIC情報記憶部16に格納する。
なお、構成情報抽出部33は、Web2 Server、AP Server、DB Serverのそれぞれについても同様の処理を実行して、「サーバNo、NIC No、IPアドレス」を生成する。また、構成情報抽出部33は、DMZ、SubnetA、SubnetB各々で使用できるIPアドレスの範囲を記憶しておき、各NIC Noが使用するネットワークをシステムのテンプレートから特定して、未使用のIPアドレスを割り当てるようにしてもよい。
(ソフトウェア情報の抽出)
構成情報抽出部33は、システムテンプレート記憶部13に記憶されるテンプレートであり、ユーザによってシステム構成が記述されたテンプレートからソフトウェアに関する情報を抽出してソフトウェア情報記憶部17に格納する。例えば、図3を用いて説明する。構成情報抽出部33は、「server」内の「no」に定義される「1」と、「software」内の「no」に定義される「1」および「id」に定義される「SW01」とを抽出する。そして、構成情報抽出部33は、抽出した「1、1、SW01」を「サーバNo、ソフトNo、パラメータ定義ID」としてソフトウェア情報記憶部17に格納する。なお、構成情報抽出部33は、Web2 Server、AP Server、DB Serverのそれぞれについても同様の処理を実行して、システムのテンプレートから「サーバNo、ソフトNo、パラメータ定義ID」を抽出してソフトウェア情報記憶部17に格納する。
(ソフトウェアパラメータ情報の抽出)
構成情報抽出部33は、ソフトウェアテンプレート記憶部14に記憶されるテンプレートであり、ユーザによって記述されたテンプレートからパラメータを抽出してソフトウェアパラメータ記憶部18に格納する。図4を用いて具体的に説明すると、構成情報抽出部33は、ソフトウェアテンプレート記憶部14に記憶されるテンプレートから「key=server[1].software[1].web.ap.connection.ipaddress」と「value=#{server[3].nic[1].ipaddress}」とを抽出する。そして、構成情報抽出部33は、抽出したkeyにしたがってserver[1]からサーバNo=1、software[1]からソフトNo=1、パラメータのキー=web.ap.connection.ipaddressを抽出し、パラメータの値=value=#{server[3].nic[1].ipaddress}を抽出する。その後、構成情報抽出部33は、抽出した情報各々を対応付けてソフトウェアパラメータ記憶部18に格納する。なお、構成情報抽出部33は、図4に示す他の「key、value」についても同様の処理を実行する。
図2に戻り、接続関係抽出部34は、ソフトウェアパラメータ記憶部18に記憶される情報に基づいて、仮想サーバで実行されるソフトウェア間の接続関係を抽出してソフトウェア接続関係記憶部19に格納する処理部である。例えば、構成情報抽出部33が生成した図8のソフトウェアパラメータ記憶部18に記憶される情報から、図9に示すソフトウェア接続関係記憶部19に記憶される情報を生成する例で説明する。
接続関係抽出部34は、図8の1行目である「サーバNo=1、ソフトNo=1、パラメータのキー=web.ap.connection.ipaddress、パラメータの値=#{server[3].nic[1].ipaddress}」を読み込む。そして、接続関係抽出部34は、「サーバNo=1」の「ソフトNo=1」のパラメータである「web.ap.connection.ipaddress」に、「サーバNo=3」の「nic1」に割り与えられる「ipaddress」を設定すると判定する。この結果、接続関係抽出部34は、パラメータを設定する側が「サーバNo=1、ソフトNo=1」であり、参照される側が「サーバNo=3」のパラメータ「nic[1].ipaddress」と判定する。したがって、図9の1行目に示すように、接続関係抽出部34は、「1、1、web.ap.connection.ipaddress、3、-、nic[1].ipaddress」をソフトウェア接続関係記憶部19に記憶させる。
別例を説明すると、接続関係抽出部34は、図8の2行目である「サーバNo=1、ソフトNo=1、パラメータのキー=web.ap.connection.port、パラメータの値=#{server[3].software[1].ap.connection.port}」を読み込む。そして、接続関係抽出部34は、「サーバNo=1」の「ソフトNo=1」のパラメータである「web.ap.connection.port」に、「サーバNo=3」の「ソフトNo=1」に設定される「ap.connection.port」を設定すると判定する。この結果、接続関係抽出部34は、パラメータを設定する側が「サーバNo=1、ソフトNo=1」であり、参照される側が「サーバNo=3、ソフトNo=1」のパラメータ「ap.connection.port」と判定する。したがって、図9の2行目に示すように、接続関係抽出部34は、「1、1、web.ap.connection.port、3、1、ap.connection.port」をソフトウェア接続関係記憶部19に記憶させる。
別例を説明すると、接続関係抽出部34は、図8の5行目である「サーバNo=3、ソフトNo=1、パラメータのキー=ap.db.jdbc.url、パラメータの値=#{server[4].nic[1].ipaddress}、#{server[4].software[1].db.port}」を読み込む。そして、接続関係抽出部34は、「サーバNo=3」の「ソフトNo=1」のパラメータである「ap.db.jdbc.url」に、「サーバNo=4」の「nic1」に割り与えられる「ipaddress」を設定すると判定する。さらに、接続関係抽出部34は、「サーバNo=3」の「ソフトNo=1」のパラメータである「ap.db.jdbc.url」に、「サーバNo=4」の「ソフトNo=1」に設定される「db.port」を設定すると判定する。
この結果、接続関係抽出部34は、パラメータを設定する側が「サーバNo=3、ソフトNo=1」であり、参照される側が「サーバNo=4」のパラメータ「nic[1].ipaddress」であると認識する。さらに、接続関係抽出部34は、パラメータを設定する側が「サーバNo=3、ソフトNo=1」であり、参照される側が「サーバNo=4、ソフトNo=1」のパラメータ「db.port」と認識する。したがって、図9の5行目に示すように、接続関係抽出部34は、「3、1、ap.db.jdbc.url、4、-、nic[1].ipaddress」をソフトウェア接続関係記憶部19に記憶させる。さらに、図9の6行目に示すように、接続関係抽出部34は、「3、1、ap.db.jdbc.url、4、1、db.port」をソフトウェア接続関係記憶部19に記憶させる。
図2に戻り、優先順決定部35は、サーバOSの優先順位とソフトウェアの優先順位を決定して、サーバOS優先順記憶部20とソフトウェア優先順記憶部21に格納する処理部である。ここでは、サーバOSの優先順位を決定する場合と、ソフトウェアの優先順位を決定する場合の各々について説明する。
(サーバOSの優先順位)
優先順決定部35は、サーバ情報記憶部15に記憶されるサーバNoの記憶順と、サーバの接続分類とを用いて優先順位を決定する。サーバのデフォルトの優先順位は、サーバ情報記憶部15に記憶されるサーバNoの記憶順の逆順、言い換えると、外部ネットワークから最も遠いサーバから順に優先度が高い。図1の場合では、優先順決定部35は、DBサーバ、APサーバ、Webサーバの順に、デフォルトの優先度が設定される。
また、ソフトウェア接続関係記憶部19の参照側のソフトNoが設定されていない行が、サーバOSのパラメータを参照しているものである。接続関係の分類は、この行の値を以下のように判断して分類したものになる。具体的には、優先順決定部35は、ソフトウェア接続関係記憶部19の設定側のサーバNoだけに存在する仮想サーバについては「設定のみ」と判定する。また、優先順決定部35は、ソフトウェア接続関係記憶部19の参照側のサーバNoだけに存在する仮想サーバについては「参照のみ」と判定する。優先順決定部35は、ソフトウェア接続関係記憶部19の設定側のサーバNoと参照側のサーバNoの両方に存在する仮想サーバについては「設定と参照」と判定する。優先順決定部35は、ソフトウェア接続関係記憶部19の設定側のサーバNoにも参照側のサーバNoにも存在しない仮想サーバについては「なし」と判定する。
図5と図8と図9を用いて図10を生成する例を説明する。優先順決定部35は、図5に示すように、サーバ情報記憶部15に記憶される順番が「サーバNo=1」、「サーバNo=2」、「サーバNo=3」、「サーバNo=4」であると認識する。このため、優先順決定部35は、デフォルトの優先順位が高い順に「サーバNo=4」、「サーバNo=3」、「サーバNo=2」、「サーバNo=1」となる。
続いて、優先順決定部35は、図9を参照し、「サーバNo=4」が「参照側のサーバNo」にしか記憶されていないことから、「サーバNo=4」の接続関係の分類を「参照のみ」と決定して、図10に示すようにサーバOS優先順記憶部20に格納する。同様に、優先順決定部35は、図9を参照し、「サーバNo=3」が「設定側のサーバNo」と「参照側のサーバNo」とに記憶されていることから、「サーバNo=3」の接続関係の分類を「設定と参照」と決定してサーバOS優先順記憶部20に格納する。また、優先順決定部35は、図9を参照し、「サーバNo=2」が「設定側のサーバNo」にしか記憶されていないことから、「サーバNo=2」の接続関係の分類を「設定のみ」と決定してサーバOS優先順記憶部20に格納する。同様に、優先順決定部35は、図9を参照し、「サーバNo=1」が「設定側のサーバNo」にしか記憶されていないことから、「サーバNo=1」の接続関係の分類を「設定のみ」と決定してサーバOS優先順記憶部20に格納する。
そして、優先順決定部35は、接続状態の分類が「なし」の優先度が最も高く、順に「参照のみ」、「設定と参照」、「設定のみ」となるように優先度を設定する。また、優先順決定部35は、同じ接続状態の分類に該当するサーバが複数ある場合には、デフォルトの優先度が高いサーバの優先度を高くする。この結果、優先順決定部35は、図10に示すように、「サーバNo=4」、「サーバNo=3」、「サーバNo=2」、「サーバNo=1」の順に優先順位を「1」、「2」、「3」、「4」と決定してサーバOS優先順記憶部20に格納することができる。
(ソフトウェアの優先順位)
優先順決定部35は、サーバOS優先順記憶部20に記憶される優先順位と、ソフトウェアの接続分類とを用いて、ソフトウェアの設定および起動の優先順位を決定する。ソフトウェアのデフォルトの優先順位は、サーバOS優先順記憶部20に記憶されるサーバNoの記憶順とソフトウェア情報記憶部17に記憶されるソフトウェアの順序とを組み合わせた順序である。
つまり、優先順決定部35は、サーバOS優先順記憶部20に記憶されるサーバの順序に基づいてソフトウェアの優先順位が高く、1台のサーバに複数のソフトウェアが実行されている場合には、ソフトウェア情報記憶部17に記憶される順番で優先順位が高くなる。上述した実施例の場合は、図10において優先度が最も高いサーバNo=4で実行されるソフトウェアのデフォルトの優先度が最も高く、続けて、サーバNo=3のソフトウェア、サーバNo=2のソフトウェア、サーバNo=1のソフトウェアの順となる。
図7と図9と図10とを用いて図11を生成する例を説明する。優先順決定部35は、図10を参照し、サーバOS優先順記憶部20に記憶される順番が「サーバNo=4」、「サーバNo=3」、「サーバNo=2」、「サーバNo=1」であると認識する。このため、優先順決定部35は、ソフトウェアの優先順位を決定する順番をデフォルトの優先順位が低い「サーバNo=1」、「サーバNo=2」、「サーバNo=3」、「サーバNo=4」の順番に決定する。
続いて、優先順決定部35は、図9を参照し、「サーバNo=1」の「ソフトNo=1」が「設定側のソフトNo」にしか記憶されていないことから、「サーバNo=1」の「ソフトNo=1」の接続関係の分類を「設定のみ」と決定する。また、優先順決定部35は、図9を参照し、「サーバNo=2」の「ソフトNo=1」が「設定側のソフトNo」にしか記憶されていないことから、「サーバNo=2」の「ソフトNo=1」の接続関係の分類を「設定のみ」と決定する。優先順決定部35は、図9を参照し、「サーバNo=3」の「ソフトNo=1」が「設定側のソフトNo」と「参照側のソフトNo」とに記憶されていることから、「サーバNo=3」の「ソフトNo=1」の接続関係の分類を「設定と参照」と決定する。また、優先順決定部35は、図9を参照し、「サーバNo=4」の「ソフトNo=1」が「参照側のソフトNo」にしか記憶されていないことから、「サーバNo=4」の「ソフトNo=1」の接続関係の分類を「参照のみ」と決定する。
そして、優先順決定部35は、接続状態の分類が「なし」の優先度が最も高く、順に「参照のみ」、「設定と参照」、「設定のみ」となるように優先度を設定する。また、優先順決定部35は、同じ接続状態の分類に該当するソフトウェアが複数ある場合には、デフォルトの優先度が高いソフトウェアの優先度を高くする。この結果、優先順決定部35は、図11に示すように、「サーバNo=4のソフトNo=1」、「サーバNo=3のソフトNo=1」、「サーバNo=2のソフトNo=1」、「サーバNo=1のソフトNo=1」の順に優先順位を決定する。つまり、優先順決定部35は、図11に示すように、上記順番で優先度を「1」、「2」、「3」、「4」と決定してソフトウェア優先順記憶部21に格納することができる。
図2に戻り、開始制御部36は、優先順決定部35によって決定されたサーバOSの優先順位にしたがって、仮想サーバの動作環境を設定し、各仮想サーバの動作を開始させる処理部である。また、開始制御部36は、優先順決定部35によって決定されたソフトウェアの優先順位にしたがって、ソフトウェアを動作させるパラメータを設定し、ソフトウェアの動作を開始させる処理部である。
具体的には、開始制御部36は、サーバのOS等に対して設定および起動し、ソフトウェアの設定および起動を実行する。なお、サーバのOS等に対する設定とは、例えば、仮想サーバを動作させるためのプロセッサやメモリなどのリソースを確保したり、仮想サーバのOSイメージを物理サーバ上に保存したりすることである。また、仮想サーバが使用するホスト名やIPアドレス等を設定したりすることも該当する。ソフトウェアに対する設定とは、例えば、ソフトウェアに仮想サーバのホスト名やIPアドレスを設定したり、ソフトウェアが他のソフトウェア等を通信するためのポート番号等を設定したりすることである。
開始制御部36は、上記設定や起動をスクリプトを用いて制御する。スクリプトは、ソフトウェア固有のコマンドなどを呼び出す。これにより、ソフトウェア毎に異なる仕様を吸収し、依存性をなくす役割を果たす。パラメータとメソッドの定義は、名前と値の型を指定する。ソフトウェア固有のスクリプトも定義する。このスクリプトは、例えば、ソフトウェアの固有のコマンドと、引数にパラメータで指定された値を指定するように記述する。このようにソフトウェアの接続する仕様をパラメータとして定義することにより、ソフトウェア間のインタフェースを統一する。
図12は、スクリプトに定義するパラメータとメソッドの例を示す図である。図12に示すように、パラメータ定義IDが「SW01」であるWebサーバのソフトウェアについては、「script_web.zip」を実行する。スクリプト「script_web.zip」には、接続先IPアドレスを設定するstring型の「web.ap.connection.ipaddress」と、接続先ポートを設定するnumber型の「web.ap.connection.port」とを定義することができる。また、スクリプト「script_web.zip」によって、起動、終了、再起動などのoperationを示すメソッドを実行することもできる。
また、パラメータ定義IDが「SW02」であるAPサーバのソフトウェアについては、「script_ap.zip」を実行する。スクリプト「script_ap.zip」には、AP接続ポートを設定するstring型の「ap.connection.port」と、JDBC(Java(登録商標) Database Connection)ドライバを設定するstring型のap.db.jdbc.driver」とを定義することができる。スクリプト「script_ap.zip」には、JDBCの接続先を設定するstring型の「ap.db.jdbc.url」を定義することができる。また、スクリプト「script_ap.zip」によって、起動、終了、再起動などのoperationを示すメソッドを実行することもできる。
また、パラメータ定義IDが「SW03」であるDBサーバのソフトウェアについては、「script_db.zip」を実行する。スクリプト「script_db.zip」には、DB接続ポートを設定するstring型の「db.port」を定義することができる。また、スクリプト「script_db.zip」によって、起動、終了、再起動などのoperationを示すメソッドを実行することもできる。
なお、各スクリプトに定義される「nic.[nic No].ipadddres」は、NIC情報記憶部16に記憶される値を指定する。また、「web.ap.connection.port」などの各スクリプトに定義されるソフトウェアパラメータは、ソフトウェアパラメータ記憶部18に記憶される値を指定する。なお、開始制御部36は、「web_setup −ip %ap.connection.ipaddress% -port %ap.connection.port%」などのように定義してスクリプトを実行する。
[処理の流れ]
次に、実施例2に係る設定制御装置10が実行する各処理について説明する。ここでは、はじめに設定制御装置10が実行する全体的な処理を説明した後に、詳細な処理を順次説明する。
(全体的な処理の流れ)
図13は、実施例2に係る設定制御装置が実行する処理の全体的な流れを示すフローチャートである。図13に示すように、設定制御装置10は、システムの配備を要求したユーザがシステムのテンプレートに設定した情報から、システムの構成情報を抽出して保存する構成情報抽出処理を実行する(S101)。なお、設定制御装置10は、S101の前または後ろで、ユーザが要求したシステムを配備する。
続いて、設定制御装置10は、システムの配備を要求したユーザがソフトウェアのテンプレートに設定した情報に基づいて、仮想サーバで実行されるソフトウェア間の接続関係を抽出して保存する接続関係抽出処理を実行する(S102)。
そして、設定制御装置10は、サーバのOSの設定順序および起動順序を決定する優先順決定処理1を実行し(S103)、ソフトウェアの設定順序および起動順序を決定する優先順決定処理2を実行する(S104)。
その後、設定制御装置10は、S103およびS104で決定した順序にしたがって、サーバのOS、ハードウェア、ソフトウェアの設定や起動を実行する(S105)。このようにすることで、設定制御装置10は、仮想サーバの動作環境や仮想サーバのソフトウェア等にパラメータを設定し、正常にシステム全体を動作させてユーザに提供する。
(構成情報抽出処理の流れ)
図14は、実施例2に係る設定制御装置が実行する構成情報抽出処理の流れを示すフローチャートである。なお、ここで実行される処理は、図13のS101で実行される。
図14に示すように、設定制御装置10の構成情報抽出部33は、システムテンプレート記憶部13に記憶されるシステムのテンプレートから、ユーザが設定した仮想サーバの情報を抽出して、サーバ情報記憶部15に格納する(S201)。
続いて、構成情報抽出部33は、システムテンプレート記憶部13に記憶されるシステムのテンプレートにユーザが定義した各仮想サーバのNICにIPアドレスを割り与えて、割り与えた情報等をNIC情報記憶部16に格納する(S202)。
そして、構成情報抽出部33は、システムテンプレート記憶部13に記憶されるシステムのテンプレートから、ユーザが定義したソフトウェアに関する情報を抽出してソフトウェア情報記憶部17に格納する(S203)。
その後、構成情報抽出部33は、ソフトウェアテンプレート記憶部14に記憶されるテンプレートから、ユーザが定義したソフトウェアのパラメータを抽出してソフトウェアパラメータ記憶部18に格納する(S204)。
このように、構成情報抽出部33は、S201からS204を実行することで、図5から図8に示したサーバ情報記憶部15、NIC情報記憶部16、ソフトウェア情報記憶部17、ソフトウェアパラメータ記憶部18を生成することができる。
(接続関係抽出処理の流れ)
図15は、実施例2に係る設定制御装置が実行する接続関係抽出処理の流れを示すフローチャートである。なお、ここで実行される処理は、図13のS102で実行される。
図15に示すように、設定制御装置10の接続関係抽出部34は、ソフトウェアパラメータ記憶部18に記憶されるレコードを1つ先頭から選択し(S301)、パラメータの値に変数が含まれているか否かを判定する(S302)。すなわち、接続関係抽出部34は、ソフトウェア間に接続関係があるかないかを判定する。なお、接続関係抽出部34は、ソフトウェアパラメータ記憶部18に記憶されるレコードで図15の処理が未処理のレコードのうち、先頭に記憶されているレコードを選択する。
続いて、接続関係抽出部34は、選択したレコードのパラメータの値に変数が含まれていると判定した場合(S302肯定)、変数であるパラメータの値にさらに変数が含まれているか否かを判定する(S303)。
ここで、接続関係抽出部34が変数であるパラメータの値にさらに変数があるかないかを判定する例を説明する。図16は、変数であるパラメータの値にさらに変数があるかないかを説明するソフトウェアパラメータ記憶部の例を示す図である。図16に示す例は、「サーバNo=1」の「ソフトNo=1」に設定されるパラメータ「web.ap.connection.port」は、「サーバNo=3」の「ソフトNo=1」に設定される「ap.connection.port」を参照することを示している。また、「サーバNo=3」の「ソフトNo=1」に設定されるパラメータ「ap.connection.port」の値が固定値「9008」であることを示している。
この場合、接続関係抽出部34は、「サーバNo=1」の「ソフトNo=1」に設定されるパラメータ「web.ap.connection.port」が「サーバNo=3」の「ソフトNo=1」に設定される「ap.connection.port」を参照すると判定する。また、接続関係抽出部34は、参照先となる「サーバNo=3」の「ソフトNo=1」に設定される「ap.connection.port」の値が変数ではなく、固定値「9008」であると判定する。この結果、接続関係抽出部34は、「サーバNo=1」の「ソフトNo=1」に設定されるパラメータ「web.ap.connection.port」には、変数が入っていないと判定する。一方、接続関係抽出部34は、「サーバNo=3」の「ソフトNo=1」に設定される「ap.connection.port」に、さらに参照先が指定されている場合には、「web.ap.connection.port」には変数がさらにあると判定する。
図15に戻り、接続関係抽出部34は、変数であるパラメータの値にさらに変数が含まれていないと判定した場合(S303否定)、読み出したレコードに格納される情報にしたがって、S304を実行する。すなわち、接続関係抽出部34は、読み出したレコードのパラメータの値にしたがって、設定側のサーバNo、ソフトNo、パラメータのキーと、参照側のサーバNo、ソフトNo、パラメータのキーとをソフトウェア接続関係記憶部19に格納する。このとき、接続関係抽出部34は、ソフトウェア接続関係記憶部19の末尾に新たなレコードを追加する。
また、接続関係抽出部34は、読み出したレコードのパラメータの値に複数の変数が含まれている場合には、変数の数だけレコードをソフトウェア接続関係記憶部19に追加する(S305)。例えば、接続関係抽出部34は、図8の5行目のように、パラメータの値に「#」で始まる変数が複数ある場合に、変数各々つまり「#」で始まる変数ごとに、接続関係を格納する。
一方、接続関係抽出部34は、変数であるパラメータの値にさらに変数が含まれていると判定した場合(S303肯定)、パラメータの値に格納される変数の参照が循環参照となっているか否かを判定する(S306)。具体的には、接続関係抽出部34は、パラメータの値に変数があるかを1度だけではなく、パラメータの値に変数がある限り、複数回繰り返す。そして、接続関係抽出部34は、変数を参照しているパラメータが以前に参照したものである場合は、循環参照であると判定する。
ここで、循環参照か否かを判定する例を説明する。図17は、変数の参照が循環参照でない例を示すソフトウェアパラメータ記憶部を示す図であり、図18は、変数の参照が循環参照である例を示すソフトウェアパラメータ記憶部を示す図である。図17に示す例は、「サーバNo=1」の「ソフトNo=1」に設定されるパラメータ「web.ap.connection.port」は、「サーバNo=2」の「ソフトNo=1」に設定される「web.ap.connection.port」を参照することを示している。また、「サーバNo=2」の「ソフトNo=1」に設定されるパラメータ「web.ap.connection.port」は、「サーバNo=3」の「ソフトNo=1」に設定される「ap.connection.port」を参照することを示している。また、「サーバNo=3」の「ソフトNo=1」に設定されるパラメータ「ap.connection.port」は、固定値「9008」を参照することを示している。
図17の場合、1行目のパラメーターの値は「#{server[2].software[1].web.ap.connection.port}」である。これは2行目のパラメータを参照している。2行目のパラメータの値は「#{server[3].software[1].ap.connection.port}」である。これは3行目のパラメータを参照している。3行目のパラメータの値は「9008」である。このように、図17の例では、1行目から3行目までで以前に参照したパラメータが登場しないので、接続関係抽出部34は、循環参照ではないと判定する。
図18に示す例は、「サーバNo=1」の「ソフトNo=1」に設定されるパラメータ「web.ap.connection.port」は、「サーバNo=2」の「ソフトNo=1」に設定される「web.ap.connection.port」を参照することを示している。また、「サーバNo=2」の「ソフトNo=1」に設定されるパラメータ「web.ap.connection.port」は、「サーバNo=3」の「ソフトNo=1」に設定される「ap.connection.port」を参照することを示している。また、「サーバNo=3」の「ソフトNo=1」に設定されるパラメータ「ap.connection.port」は、「サーバNo=1」の「ソフトNo=1」に設定される「web.ap.connection.port」を参照することを示している。
図18の場合、1行目のパラメータの値は「#{server[2].software[1].web.ap.connection.port}」である。これは2行目のパラメータを参照している。2行目のパラメータの値は「#{server[3].software[1].ap.connection.port}」である。これは3行目のパラメータを参照している。3行目のパラメーターの値は「#{server[1].software[1].ap.connection.port}」である。これは以前に参照した1行目のパラメータを参照している。このため、接続関係抽出部34は、循環参照であると判定する。
図15に戻り、接続関係抽出部34は、パラメータの値に格納される変数の参照が循環参照となっていると判定した場合(S306肯定)、パラメータ設定に誤りがあるとして、エラーをディスプレイやユーザ端末に出力する。
一方、接続関係抽出部34は、パラメータの値に格納される変数の参照が循環参照となっていないと判定した場合(S306否定)、読み出したレコードに格納される情報にしたがって、S307を実行した後、S305を実行する。すなわち、接続関係抽出部34は、読み出したレコードのパラメータの値にしたがって、設定側のサーバNo、ソフトNo、パラメータのキーをソフトウェア接続関係記憶部19に格納する。また、接続関係抽出部34は、最終的に参照されるサーバNo、ソフトNo、パラメータのキーを参照側の情報としてソフトウェア接続関係記憶部19に格納する。なお、このときも、接続関係抽出部34は、ソフトウェア接続関係記憶部19の末尾に新たなレコードを追加する。
その後、接続関係抽出部34は、ソフトウェアパラメータ記憶部18に記憶されるレコードのうち上述した処理が未処理のレコードがある場合には(S308肯定)、S301に戻って以降の処理を繰り返す。一方、接続関係抽出部34は、ソフトウェアパラメータ記憶部18に記憶されるレコードのうち上述した処理が未処理のレコードがない場合には(S308否定)、処理を終了する。
(優先順決定処理1の流れ)
図19は、実施例2に係る設定制御装置が実行する優先順決定処理1の流れを示すフローチャートである。なお、ここで実行される処理は、図13のS103で実行される。また、ここでは、接続状態の分類が「なし」のサーバの優先度が最も高く、順に「参照のみ」、「設定と参照」、「設定のみ」となるように優先度を決定する。つまり、サーバOS優先順記憶部20には、「なし」を先頭のレコード群、次が「参照のみ」のレコード群、次が「設定と参照」のレコード群、最後が「設定のみ」のレコード群となるように、レコードが格納される。なお、レコード群とは、0以上のレコードを示し、あるレコード群がなくてもよい。
図19に示すように、設定制御装置10の優先順決定部35は、サーバ情報記憶部15に記憶されるレコードで図19の処理が未処理のレコードのうち、先頭に記憶されるレコードを優先順位の決定対象として1つ選択する(S401)。
続いて、優先順決定部35は、選択したレコード、すなわち優先順位の決定対象である仮想サーバについて、ソフトウェア接続関係記憶部19を参照してサーバの接続関係を分類する(S402)。
そして、優先順決定部35は、「設定のみ」と分類した場合、「設定のみ」の分類の先頭レコードとして、優先順位の決定対象であるサーバNoをサーバOS優先順記憶部20に追加する(S403)。この結果、新たに格納したサーバNoの優先度が分類「設定のみ」の中で最も高くなる。
また、優先順決定部35は、「設定と参照」と分類した場合、サーバOS優先順記憶部20に「設定と参照」の分類で記憶されるサーバと比較して、デフォルトの優先順位が高いか否かを判定する(S404)。つまり、優先順決定部35は、現在優先順位の決定対象であるサーバNoが、既に「設定と参照」で格納されているサーバNoよりも、サーバ情報記憶部15の末尾側に記憶されているか否かを判定する。
そして、優先順決定部35は、現在優先順位の決定対象であるサーバNoのデフォルトの優先度が、既に格納されているサーバNoのデフォルトの優先度よりも高い場合(S404肯定)、S405を実行する。すなわち、優先順決定部35は、「設定と参照」の分類の先頭レコードとして、優先順位の決定対象であるサーバNoをサーバOS優先順記憶部20に追加する。この結果、新たに格納したサーバNoの優先度が分類「設定と参照」の中で最も高くなる。
一方、優先順決定部35は、現在優先順位の決定対象であるサーバNoのデフォルトの優先度が、既に格納されているサーバNoのデフォルトの優先度よりも低い場合(S404否定)、S406を実行する。すなわち、優先順決定部35は、「設定と参照」の分類のレコードとして、優先順位を入れ替えて、優先順位の決定対象であるサーバNoをサーバOS優先順記憶部20に追加する。つまり、優先順決定部35は、既に格納されているサーバNoの優先度が高くなるように、既に格納されているサーバNoの次に、優先順位の決定対象であるサーバNoを追加する。この結果、新たに格納したサーバNoよりも既に格納されているサーバNoの優先度の方が高くなる。
また、優先順決定部35は、「参照のみ」と分類した場合、「参照のみ」の分類の先頭レコードとして、優先順位の決定対象のサーバNoをサーバOS優先順記憶部20に追加する(S407)。この結果、新たに格納したサーバNoの優先度が分類「参照のみ」の中で最も高くなる。
また、優先順決定部35は、「なし」と分類した場合、「なし」の分類の先頭レコードとして、優先順位の決定対象のサーバNoをサーバOS優先順記憶部20に追加する(S408)。この結果、新たに格納したサーバNoの優先度が分類「なし」の中で最も高くなる。
そして、上記S403からS408を実行した後、優先順決定部35は、サーバ情報記憶部15に記憶されるレコードで図19の処理が未処理であるレコードがある場合には(S409肯定)、S401に戻って以降の処理を繰り返す。一方、優先順決定部35は、サーバ情報記憶部15に記憶されるレコードで図19の処理が未処理であるレコードがない場合には(S409否定)、処理を終了する。
なお、優先順決定部35は、S401からS409の処理が終了した後には、サーバOS優先順記憶部20に優先度が高い順でサーバNoが格納されていることになるので、S401からS409の処理が終了した後に優先度を割り振って格納してもよい。また、優先順決定部35は、S401からS409の処理を実行中に、サーバOS優先順記憶部20にサーバNoを記憶するたびに、記憶されているサーバNoに対して優先度を割り振って格納してもよい。
(優先順決定処理2の流れ)
図20は、実施例2に係る設定制御装置が実行する優先順決定処理2の流れを示すフローチャートである。なお、ここで実行される処理は、図13のS104で実行される。また、ここでは、接続状態の分類が「なし」のソフトウェアの優先度が最も高く、順に「参照のみ」、「設定と参照」、「設定のみ」となるように優先度を決定する。つまり、ソフトウェア優先順記憶部21には、「なし」を先頭のレコード群、次が「参照のみ」のレコード群、次が「設定と参照」のレコード群、最後が「設定のみ」のレコード群となるように、レコードが格納される。なお、レコード群とは、0以上のレコードを示し、あるレコード群がなくてもよい。
図20に示すように、設定制御装置10の優先順決定部35は、デフォルトの優先順位とは逆順に、ソフトウェア情報記憶部17に記憶されるレコードのうち図20の処理が未処理のレコードで先頭に記憶されるレコードを1つ選択する(S501)。つまり、優先順決定部35は、デフォルトの優先順位が最も低いソフトウェアを優先順位の決定対象として1つ選択する。
続いて、優先順決定部35は、選択したレコード、すなわち優先順位の決定対象であるソフトウェアについて、ソフトウェア接続関係記憶部19を参照してソフトウェア間の接続関係を分類する(S502)。
そして、優先順決定部35は、「設定のみ」と分類した場合、「設定のみ」の分類の先頭レコードとして、優先順位の決定対象であるレコードのサーバNoとソフトNoとの組のレコードをソフトウェア優先順記憶部21に追加する(S503)。この結果、新たに格納したソフトNoの優先度が分類「設定のみ」の中で最も高くなる。
また、優先順決定部35は、「設定と参照」と分類した場合、ソフトウェア優先順記憶部21に「設定と参照」の分類で記憶されるソフトウェアと比較して、デフォルトの優先順位が高いか否かを判定する(S504)。つまり、優先順決定部35は、現在優先順位の決定対象であるサーバNoとソフトNoとの組が、既に「設定と参照」で格納されているサーバNoとソフトNoとの組よりも、デフォルトの優先度が高いか否かを判定する。
そして、優先順決定部35は、現在優先順位の決定対象であるサーバNoとソフトNoの組のデフォルトの優先度が、既に格納されている組のデフォルトの優先度よりも高い場合(S504肯定)、S505を実行する。すなわち、優先順決定部35は、「設定と参照」の分類の先頭レコードとして、優先順位の決定対象であるサーバNoとソフトNoの組のレコードをソフトウェア優先順記憶部21に追加する。この結果、新たに格納したソフトNoの優先度が分類「設定と参照」の中で最も高くなる。
一方、優先順決定部35は、現在優先順位の決定対象であるサーバNoとソフトNoの組のデフォルトの優先度が、既に格納されている組のデフォルトの優先度よりも低い場合(S504否定)、S506を実行する。すなわち、優先順決定部35は、「設定と参照」の分類のレコードとして、優先順位を入れ替えて、優先順位の決定対象であるサーバNoとソフトNoの組のレコードをソフトウェア優先順記憶部21に追加する。つまり、優先順決定部35は、既に格納されているサーバNoとソフトNoの組の優先度が高くなるように、既に格納されているサーバNoとソフトNoの組の次のレコードとして、優先順位の決定対象であるサーバNoとソフトNoの組のレコードを追加する。この結果、新たに格納したソフトNoよりも既に格納されているソフトNoの優先度の方が高くなる。
また、優先順決定部35は、「参照のみ」と分類した場合、「参照のみ」の分類の先頭レコードとして、優先順位の決定対象のサーバNoとソフトNoとの組のレコードをソフトウェア優先順記憶部21に追加する(S507)。この結果、新たに格納したソフトNoの優先度が分類「参照のみ」の中で最も高くなる。
また、優先順決定部35は、「なし」と分類した場合、サーバOS優先順記憶部20を参照し、対象となるソフトウェアを搭載するサーバが「参照のみ」または「設定と参照」であるか否かを判定する(S508)。そして、優先順決定部35は、対象となるソフトウェアを搭載するサーバが「参照のみ」または「設定と参照」であると判定した場合(S508肯定)、S507を実行する。一方、優先順決定部35は、対象となるソフトウェアを搭載するサーバが「参照のみ」でも「設定と参照」でもないと判定した場合(S508否定)、S509を実行する。すなわち、優先順決定部35は、「なし」の分類の先頭レコードとして、優先順位の決定対象のサーバNoとソフトNoとの組のレコードをソフトウェア優先順記憶部21に追加する(S509)。この結果、新たに格納したソフトNoの優先度が分類「なし」の中で最も高くなる。
そして、上記S503からS508を実行した後、優先順決定部35は、ソフトウェア情報記憶部17に記憶されるレコードのうち図20の処理が未処理のレコードがある場合には(S510肯定)、S501に戻って以降の処理を繰り返す。一方、優先順決定部35は、ソフトウェア情報記憶部17に記憶されるレコードのうち図20の処理が未処理のレコードで先頭に記憶されるレコードがない場合には(S510否定)、処理を終了する。
なお、優先順決定部35は、S501からS509の処理が終了した後には、ソフトウェア優先順記憶部21に優先度が高い順でソフトNoが格納されていることになるので、S501からS509の処理が終了した後に優先度を割り振って格納してもよい。また、優先順決定部35は、S501からS509の処理を実行中に、ソフトウェア優先順記憶部21にソフトNoを記憶するたびに、記憶されているソフトNoに対して優先度を割り振って格納してもよい。
(設定起動処理の流れ)
図21は、実施例2に係る設定制御装置が実行する設定起動処理の流れを示すフローチャートである。なお、ここで実行される処理は、図13のS105で実行される。
図21に示すように、設定制御装置10の開始制御部36は、サーバOS優先順記憶部20を参照し、最も優先度が高い、接続関係の分類が「なし」であるサーバのハードウェアとOSの設定および起動を順番に実行する(S601)。
また、開始制御部36は、サーバOS優先順記憶部20を参照し、次に優先度が高い、接続関係の分類が「参照のみ」であるサーバのハードウェアとOSの設定および起動を順番に実行する(S602)。
また、開始制御部36は、サーバOS優先順記憶部20を参照し、次に優先度が高い、接続関係の分類が「設定と参照」であるサーバのハードウェアとOSの設定および起動を順番に実行する(S603)。
また、開始制御部36は、サーバOS優先順記憶部20を参照し、次に優先度が高い、接続関係の分類が「設定のみ」であるサーバのハードウェアとOSの設定および起動を順番に実行する(S604)。
そして、開始制御部36は、S601で実行した接続関係の分類が「なし」であるサーバのハードウェアとOSの設定および起動が完了すると、S605を実行する。すなわち、開始制御部36は、ソフトウェア優先順記憶部21を参照し、最も優先度が高い、接続関係の分類が「なし」であるソフトウェアの設定および起動を順番に行うスクリプトを実行する。
また、開始制御部36は、S602で実行した接続関係の分類が「参照のみ」であるサーバのハードウェアとOSの設定および起動が完了すると、S606を実行する。すなわち、開始制御部36は、ソフトウェア優先順記憶部21を参照し、次に優先度が高い、接続関係の分類が「参照のみ」であるソフトウェアの設定および起動を順番に開始させるスクリプトを実行する。
そして、開始制御部36は、S601からS605を実行し、S606で実行した接続関係の分類が「参照のみ」であるソフトウェアの設定および起動が終了するまで待機する(S607)。
その後、開始制御部36は、S606の処理が終了すると(S607肯定)、S603で実行した接続関係の分類が「設定と参照」であるサーバのハードウェアとOSの設定および起動が終了するまで待機する(S608)。
そして、開始制御部36は、S603の処理が終了すると(S608肯定)、ソフトウェア優先順記憶部21を参照し、次に優先度が高い、接続関係の分類が「設定と参照」であるソフトウェアの設定を順番に行うスクリプトを実行する(S609)。
その後、開始制御部36は、接続関係の分類が「設定と参照」であるソフトウェアの設定が完了すると、ソフトウェア優先順記憶部21にしたがって接続関係の分類が「設定と参照」であるソフトウェアの起動を順番に開始させるスクリプトを実行する(S610)。
そして、起動に失敗したソフトウェアが存在する場合には(S611肯定)、開始制御部36は、起動に失敗したソフトウェアを再起動させるスクリプトを実行する(S612)。なお、再起動する回数は、任意に設定できる。
その後、起動に失敗したソフトウェアが存在せず(S611否定)、接続関係の分類が「設定と参照」であるソフトウェアの起動が完了すると(S613肯定)、開始制御部36は、S614を実行する。すなわち、開始制御部36は、S604で実行した処理が完了するまで待機し、S603で実行した処理が完了すると、S615を実行する。具体的には、開始制御部36は、ソフトウェア優先順記憶部21にしたがって接続関係の分類が「設定のみ」であるソフトウェアの設定と起動を順番に行うスクリプトを実行する。
このようにすることで、開始制御部36は、優先順決定部35が決定したサーバの設定と起動の順序、ソフトウェアの設定と起動の順序にしたがって、スクリプトを実行して、配備した仮想システムを使用可能な状態に遷移させることができる。
上述したように、設定制御装置10は、仮想サーバ間の接続状況を物理的または論理的な構成ではなく、ソフトウェアでどのように接続されているかに基づいて決定した設定および動作開始の順序で、仮想サーバの設定や起動、ソフトウェアの設定や起動を実行する。したがって、設定制御装置10は、配備した仮想システムに含まれる仮想サーバに新しいIPアドレスやホスト名を割り当てることができる。また、設定制御装置10は、OSやソフトウェアについてもIPアドレスやホスト名を変更することができる。さらに、設定制御装置10は、ソフトウェアの接続先を指定するIPアドレスやホスト名のパラメータを自動で変更することができる。
設定制御装置10は、上述したように、ソフトウェア間の接続状況にしたがって各種パラメータを設定するので、ソフトウェアの接続関係を示すパラメータであるポート番号についても、自動で変更することができる。また、IPアドレスとホスト名はサーバやOSごとのパラメータであり、ポート番号はソフトウェアごとのパラメータである。設定制御装置10は、これら2つのレベルのパラメータの関係を自動で解決し、フロー作成することなく、自動で設定することができる。
また、接続のソフトウェアに接続関係を示すパラメータを設定すると、対象のソフトウェアに接続を試みる。このため、接続先のパラメータが未設定の場合にはエラーが発生する。これに対しては、設定制御装置10は、接続関係がなし、設定と参照、参照のみ、設定のみの順で、各種設定を実行することができるので、接続元のソフトウェアのパラメータを設定する前に、接続先のソフトウェアのパラメータの設定を完了させることができる。また、設定制御装置10は、循環参照となるエラーを検出することができるので、システムが稼動する前にエラーを検出することができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
(スクリプト)
上記実施例で説明したスクリプトの定義例等は、あくまで例示であり、これに限定されるものではない。例えば、スクリプトでなくても、コマンドやシェルなど様々な手法を用いることができる。
(構成情報)
上記実施例で説明したシステムの構成情報やパラメータはあくまで例示であり、これに限定されるものではない。例えば、一般的なシステムにおいて構成情報として用いられるメモリやプロセッサの割当状況等を含んでもよく、ネットワークの帯域制限等を含んでもよい。また、パラメータとしても、ポート番号やIPアドレス以外の様々な情報を適用することができ、例えばソフトウェア間で接続先を認証するのに用いる認証情報等を適用してもよい。
(テンプレート)
上記実施例では、テンプレートを用いてシステムやソフトウェアの情報を受け付ける例を説明したが、これに限定されるものではない。例えば、単なるWeb画面上で入力を受け付けてもよく、DBやテーブルで受け付けることもできる。また、テンプレートとして保持されるシステム構成はあくまで例示であり、実施例で説明したWebサーバ−APサーバ−DBサーバで形成されるシステムに限定されない。
(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(ハードウェア構成)
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
図22は、設定制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。図22に示すように、コンピュータ100は、CPU102、入力装置103、出力装置104、通信インタフェース105、媒体読取装置106、HDD(Hard Disk Drive)107、RAM(Random Access Memory)108を有する。また、図15に示した各部は、バス101で相互に接続される。
入力装置103は、マウスやキーボードであり、出力装置104は、ディスプレイなどであり、通信インタフェース105は、NICなどのインタフェースである。HDD107は、設定制御プログラム107aとともに、図2に示した各記憶部が記憶する情報等を記憶する。記憶媒体の例としてHDD107を例に挙げたが、ROM(Read Only Memory)、RAM、CD−ROM等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記録媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。
CPU102は、設定制御プログラム107aを読み出してRAM108に展開することで、図2等で説明した各機能を実行する設定制御プロセス108aを動作させる。すなわち、設定制御プロセス108aは、図2に記載した情報受付部31、システム配備制御部32、構成情報抽出部33、接続関係抽出部34、優先順決定部35、開始制御部36と同様の機能を実行する。このようにコンピュータ100は、プログラムを読み出して実行することで設定制御方法を実行する情報処理装置として動作する。
また、コンピュータ100は、媒体読取装置106によって記録媒体から設定制御プログラム107aを読み出し、読み出された設定制御プログラム107aを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、コンピュータ100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
10 設定制御装置
10a 決定部
10b 動作環境設定部
11 通信インタフェース
12 記憶部
13 システムテンプレート記憶部
14 ソフトウェアテンプレート記憶部
15 サーバ情報記憶部
16 NIC情報記憶部
17 ソフトウェア情報記憶部
18 ソフトウェアパラメータ記憶部
19 ソフトウェア接続関係記憶部
20 サーバOS優先順記憶部
21 ソフトウェア優先順記憶部
30 制御部
31 情報受付部
32 システム配備制御部
33 構成情報抽出部
34 接続関係抽出部
35 優先順決定部
36 開始制御部

Claims (10)

  1. 複数の仮想マシンで実行されるソフトウェア間の処理の依存関係にしたがって、前記複数の仮想マシンのそれぞれを動作させる動作環境の設定順序を決定する決定部と、
    前記決定部によって決定された設定順序で、前記仮想マシンのそれぞれの動作環境を設定する動作環境設定部と、
    を有することを特徴とする設定制御装置。
  2. 前記決定部は、さらに、
    前記複数の仮想マシンで実行されるソフトウェアについての設定順序を決定し、
    前記決定部によって決定された設定順序で、前記ソフトウェアを動作させるパラメータを設定するソフトウェア設定部
    をさらに有することを特徴とする請求項1に記載の設定制御装置。
  3. 前記決定部は、さらに、
    前記依存関係に従って、前記動作環境の動作開始順序および前記ソフトウェアについての動作開始順序を決定し、
    前記決定部によって決定された動作開始順序で、前記各仮想マシンの動作を開始させる動作環境制御部と、
    前記決定部によって決定された動作開始順序で、前記ソフトウェアの動作を開始させるソフトウェア制御部と、
    をさらに有することを特徴とする請求項2に記載の設定制御装置。
  4. 前記決定部は、前記ソフトウェアの動作開始よりも、前記仮想マシンの動作開始を先に実行すると決定することを特徴とする請求項3に記載の設定制御装置。
  5. 前記決定部は、前記複数の仮想マシンで形成される仮想システムのシステム構成を定義するテンプレートに入力された情報と、前記ソフトウェアのパラメータを定義するテンプレートに入力された情報とを用いて、前記ソフトウェアの接続関係を抽出し、抽出したソフトウェアの接続関係にしたがって、前記仮想マシンのそれぞれの動作環境の設定順序を決定することを特徴とする請求項1に記載の設定制御装置。
  6. 前記決定部は、他の仮想マシンから参照されるパラメータを有する仮想マシン、他の仮想マシンから参照されるパラメータと他の仮想マシンから参照されないパラメータとを有する仮想マシン、他の仮想マシンから参照されないパラメータを有する仮想マシンの順番で、前記各仮想マシンのそれぞれの動作環境を設定すると決定することを特徴とする請求項1に記載の設定制御装置。
  7. 前記決定部は、他のソフトウェアから参照されるパラメータを有するソフトウェア、他のソフトウェアから参照されるパラメータと他のソフトウェアから参照されないパラメータとを有するソフトウェア、他のソフトウェアから参照されないパラメータを有するソフトウェアの順番で、前記ソフトウェアを動作させるパラメータを設定すると決定することを特徴とする請求項2に記載の設定制御装置。
  8. 前記決定部は、動作を開始させた前記他のソフトウェアから参照されるパラメータと他のソフトウェアから参照されないパラメータとを有するソフトウェアが起動に失敗した場合に、前記ソフトウェアを再起動させることを特徴とする請求項7に記載の設定制御装置。
  9. コンピュータが、
    複数の仮想マシンで実行されるソフトウェア間の処理の依存関係にしたがって、前記複数の仮想マシンのそれぞれを動作させる動作環境の設定順序を決定し、
    決定した設定順序で、前記仮想マシンのそれぞれの動作環境を設定する、
    処理を実行することを特徴とする設定制御方法。
  10. コンピュータに、
    複数の仮想マシンで実行されるソフトウェア間の処理の依存関係にしたがって、前記複数の仮想マシンのそれぞれを動作させる動作環境の設定順序を決定し、
    決定した設定順序で、前記仮想マシンのそれぞれの動作環境を設定する、
    処理を実行させることを特徴とする設定制御プログラム。
JP2011218495A 2011-09-30 2011-09-30 設定制御装置、設定制御方法および設定制御プログラム Expired - Fee Related JP5903822B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011218495A JP5903822B2 (ja) 2011-09-30 2011-09-30 設定制御装置、設定制御方法および設定制御プログラム
US13/625,014 US9223601B2 (en) 2011-09-30 2012-09-24 Control device, control method, and non-transitory computer-readable storage medium for a virtual system deployment
EP12185658A EP2575042A1 (en) 2011-09-30 2012-09-24 Control device, control method, and control progam

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011218495A JP5903822B2 (ja) 2011-09-30 2011-09-30 設定制御装置、設定制御方法および設定制御プログラム

Publications (2)

Publication Number Publication Date
JP2013080275A true JP2013080275A (ja) 2013-05-02
JP5903822B2 JP5903822B2 (ja) 2016-04-13

Family

ID=47044806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011218495A Expired - Fee Related JP5903822B2 (ja) 2011-09-30 2011-09-30 設定制御装置、設定制御方法および設定制御プログラム

Country Status (3)

Country Link
US (1) US9223601B2 (ja)
EP (1) EP2575042A1 (ja)
JP (1) JP5903822B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015035161A (ja) * 2013-08-09 2015-02-19 富士通株式会社 管理プログラム、管理装置および管理方法
JP2015090692A (ja) * 2013-11-07 2015-05-11 富士通株式会社 仮想マシン配備方法、仮想マシン配備プログラム及び情報処理装置
WO2015194139A1 (ja) * 2014-06-17 2015-12-23 日本電気株式会社 情報処理装置、配備方法、及び、記録媒体
WO2017017937A1 (ja) * 2015-07-27 2017-02-02 日本電気株式会社 配備装置、配備方法、及び、記録媒体
JP2020030743A (ja) * 2018-08-24 2020-02-27 株式会社Idcフロンティア ホスティングシステムおよびホスティング環境製造処理装置
WO2023170961A1 (ja) * 2022-03-11 2023-09-14 日本電信電話株式会社 データ処理装置、方法およびプログラム

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140245159A1 (en) * 2013-02-28 2014-08-28 Hewlett-Packard Development Company, L.P. Transport script generation based on a user interface script
US9634948B2 (en) 2013-11-07 2017-04-25 International Business Machines Corporation Management of addresses in virtual machines
KR101588295B1 (ko) * 2014-01-28 2016-01-25 현대모비스 주식회사 단말의 애플리케이션 부팅 시스템 및 방법
WO2016182923A1 (en) 2015-05-08 2016-11-17 Citrix Systems, Inc. Systems and methods for improving security of secure socket layer (ssl) communications
US10437604B2 (en) * 2016-02-29 2019-10-08 Samsung Electronics Co., Ltd. Electronic apparatus and booting method thereof
KR102447854B1 (ko) * 2016-02-29 2022-09-27 삼성전자주식회사 전자 장치 및 이의 부팅 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002196939A (ja) * 2000-12-27 2002-07-12 Nec Corp 常駐プロセスの起動・終了制御装置とその制御方法及びその方法を記録した記録媒体
JP2011186637A (ja) * 2010-03-05 2011-09-22 Ntt Data Corp リソース連携システム及びリソース連携方法
JP2011186793A (ja) * 2010-03-09 2011-09-22 Hitachi Ltd ハイパバイザ、計算機システム、及び、仮想プロセッサのスケジューリング方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191440B2 (en) * 2001-08-15 2007-03-13 Intel Corporation Tracking operating system process and thread execution and virtual machine execution in hardware or in a virtual machine monitor
US7577722B1 (en) * 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
JP3884989B2 (ja) 2002-04-22 2007-02-21 株式会社日立製作所 ネットワーク構成情報管理システム及び該システムによるシステム構成情報取得方法、ネットワーク構成情報表示装置及び該装置を利用したネットワーク構成情報提供サービス方法
US8819673B1 (en) * 2007-05-24 2014-08-26 United Services Automobile Association (Usaa) Systems and methods for java virtual machine management
US8370802B2 (en) * 2007-09-18 2013-02-05 International Business Machines Corporation Specifying an order for changing an operational state of software application components
CN101960464B (zh) * 2008-02-25 2013-01-16 松下电器产业株式会社 信息处理装置
JP2009223842A (ja) 2008-03-19 2009-10-01 Fujitsu Ltd 仮想計算機制御プログラム及び仮想計算機システム
JP5125659B2 (ja) * 2008-03-24 2013-01-23 富士通株式会社 情報処理装置、情報処理方法及びコンピュータプログラム
JP5365051B2 (ja) * 2008-03-31 2013-12-11 富士通株式会社 管理プログラム、管理装置及び管理方法
JP4924514B2 (ja) * 2008-03-31 2012-04-25 富士通株式会社 仮想マシン管理プログラム、管理サーバ装置及び仮想マシン管理方法
JP2010039626A (ja) 2008-08-01 2010-02-18 Fujitsu Ltd ネットワーク設定プログラム,ネットワーク設定方法及びネットワーク設定装置
US8799893B2 (en) * 2008-10-15 2014-08-05 International Business Machines Corporation Method, system and computer program product for solution replication
US7904540B2 (en) * 2009-03-24 2011-03-08 International Business Machines Corporation System and method for deploying virtual machines in a computing environment
WO2011046813A2 (en) * 2009-10-12 2011-04-21 Veeam Software International Ltd. Item-level restoration and verification of image level backups
US8756597B2 (en) * 2010-02-05 2014-06-17 Novell, Inc. Extending functionality of legacy services in computing system environment
CN102238208A (zh) * 2010-04-29 2011-11-09 国际商业机器公司 用于激活虚拟方案中的虚拟机的方法和装置
JP5569197B2 (ja) * 2010-07-06 2014-08-13 富士通株式会社 計算機装置およびリセット制御プログラム
US8910156B1 (en) * 2011-04-29 2014-12-09 Netapp, Inc. Virtual machine dependency

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002196939A (ja) * 2000-12-27 2002-07-12 Nec Corp 常駐プロセスの起動・終了制御装置とその制御方法及びその方法を記録した記録媒体
JP2011186637A (ja) * 2010-03-05 2011-09-22 Ntt Data Corp リソース連携システム及びリソース連携方法
JP2011186793A (ja) * 2010-03-09 2011-09-22 Hitachi Ltd ハイパバイザ、計算機システム、及び、仮想プロセッサのスケジューリング方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015035161A (ja) * 2013-08-09 2015-02-19 富士通株式会社 管理プログラム、管理装置および管理方法
JP2015090692A (ja) * 2013-11-07 2015-05-11 富士通株式会社 仮想マシン配備方法、仮想マシン配備プログラム及び情報処理装置
WO2015194139A1 (ja) * 2014-06-17 2015-12-23 日本電気株式会社 情報処理装置、配備方法、及び、記録媒体
US10180830B2 (en) 2014-06-17 2019-01-15 Nec Corporation Information processing device, deployment method, and recording medium
WO2017017937A1 (ja) * 2015-07-27 2017-02-02 日本電気株式会社 配備装置、配備方法、及び、記録媒体
US10416976B2 (en) 2015-07-27 2019-09-17 Nec Corporation Deployment device, deployment method, and recording medium
JP2020030743A (ja) * 2018-08-24 2020-02-27 株式会社Idcフロンティア ホスティングシステムおよびホスティング環境製造処理装置
WO2023170961A1 (ja) * 2022-03-11 2023-09-14 日本電信電話株式会社 データ処理装置、方法およびプログラム

Also Published As

Publication number Publication date
JP5903822B2 (ja) 2016-04-13
US20130086584A1 (en) 2013-04-04
US9223601B2 (en) 2015-12-29
EP2575042A1 (en) 2013-04-03

Similar Documents

Publication Publication Date Title
JP5903822B2 (ja) 設定制御装置、設定制御方法および設定制御プログラム
AU2020200723B2 (en) Systems and methods for blueprint-based cloud management
CN107896162B (zh) 监控系统的部署方法、装置、计算机设备及存储介质
JP6005706B2 (ja) 異種移動環境用の仮想マシンモーフィング
WO2019179453A1 (zh) 虚拟机创建方法及装置
RU2419854C2 (ru) Основанное на шаблоне управление службами
CN112965700B (zh) 基于路由的微服务处理方法、装置、计算机设备和介质
WO2018040525A1 (zh) 资源池的处理方法、装置和设备
WO2019242162A1 (zh) 中间件安装方法、装置、计算机设备及存储介质
JP2014534537A (ja) 専用のキャッシュを管理するためのシステム及び方法
CN108776587B (zh) 数据获取方法、装置、计算机设备以及存储介质
CN110633130B (zh) 一种基于内存热插拔技术的虚拟内存管理方法和装置
CN113382077B (zh) 微服务调度方法、装置、计算机设备和存储介质
CN111930290B (zh) 资源部署方法及装置
JPWO2014171130A1 (ja) 情報処理システム、配備方法、処理装置、及び、配備装置
CN113986539A (zh) 实现pod固定IP的方法、装置、电子设备和可读存储介质
JP6274758B2 (ja) ネットワーク機器管理装置、ネットワーク機器管理方法、およびネットワーク機器管理方法を実行するプログラム
CN111831567A (zh) 应用的测试环境配置方法、装置、系统和介质
CN113312148B (zh) 一种大数据服务部署方法、装置、设备及介质
US11487570B1 (en) Efficient creation of endpoints for accessing services directly within a cloud-based system
JPWO2018230352A1 (ja) 変更手順生成装置、変更手順生成方法および変更手順生成プログラム
CN116089020B (zh) 虚拟机运行方法、扩容方法、扩容系统
US20240028346A1 (en) Linking kubernetes resources with underlying cloud infrastructure
JP2011008361A (ja) 機器管理装置、機器管理システム、機器設定方法、機器設定プログラム、及びそのプログラムを記録した記録媒体
US20170206070A1 (en) Information processing device, deployment method, and recording medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140603

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160229

R150 Certificate of patent or registration of utility model

Ref document number: 5903822

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees