説明

リソース連携システム及びリソース連携方法

【課題】あるクラウドにおいて実行されているサービスを、他のクラウドのリソースを利用して提供する。
【解決手段】各クラウド連携管理装置1は、上位システムを構成する仮想マシンの停止または起動の手順を示す上位システム手順データを相互に交換し、記憶する。クラウドAのクラウド連携管理装置1は、リソース制御対象の上位システムをクラウドBのクラウド連携管理装置1に送信するとともに、該上位システムに対応した上位システム手順データが示すリソース制御元手順に従って、上位システムを構成する仮想マシンの停止または起動を自クラウド内の仮想化装置5に指示する。クラウドBのクラウド連携管理装置1は、クラウドAから受信して記憶していた、リソース制御対象の上位システムに対応した上位システム手順データが示すリソース制御先手順に従って、当該上位システムを構成する仮想マシンの起動を自クラウド内の仮想化装置5に指示する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クラウドサービスシステム間のリソース連携システム及びリソース連携方法に関する。
【背景技術】
【0002】
安価で柔軟なシステム提供環境として、契約した利用者に従量課金で仮想マシンやストレージを貸し出すクラウドサービス(IaaS:Infrastructure as a Service)の利用が拡大している。当初は大規模なパブリッククラウドのみがサービスとして提供されていたが、最近ではプライベートクラウドやコミュニティクラウドといった比較的小さな組織規模で共有される「小さなクラウド」が増加する傾向にあり、利用者が用途に応じて「クラウドを選ぶ」ようになってきている。
一方、特許文献1には、複数拠点に設置したコンピュータシステムに仮想マシンシステム技術を適用し、マスタシステムとバックアップシステムを切り替えることが記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−173751号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のような小さなクラウドでは、大規模なクラウドと比較し、サービス提供のためのリソースが不足する状況が発生しやすいと考えられる。しかし、リソース不足が発生してすぐにリソースを増強することは難しい。そこで、他のクラウドのリソースを一部利用したり、比較的リソースに余裕がある他のクラウドにサービスを移行したりすることが考えられる。
ところが、各クラウドは別々の事業者により完全に独立して提供されていることが多く、それぞれに仕様も異なる。複数クラウドを扱うという意味では、RightScale社が複数のクラウドを統一して操作できるウェブインタフェースを利用者に提供しているが、各クラウドに対する操作や状況閲覧といった「利用者にとっての入口」を1つのウェブシステムで実施できるようにしたものであり、クラウド間でリソースの相互運用性や移行容易性を高めるようなものではない。
特許文献1の技術は、通常の運用状態において複数の拠点のコンピュータシステムに仮想マシンシステムを起動しておき、故障が発生した際にマスタシステムからバックアップシステムへと切り換えるものであり、リソースが不足したときにクラウド間でリソースを相互利用したり、クラウドサービス自体を移行したりする場合には適用できない。
【0005】
本発明は、上記の事情に鑑みてなされたものであり、その目的は、あるクラウドにおいて実行されているサービスを、他のクラウドのリソースを利用して提供することができるリソース連携システム、及び、リソース連携方法を実現することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明は、仮想化装置及びクラウド連携管理装置を有する複数のクラウドシステムをネットワークを介して接続してなるリソース連携システムであって、リソース制御元の前記クラウド連携管理装置は、上位システムを構成する仮想マシンの停止または起動の手順を示す上位システム手順データを記憶する制御元記憶部と、前記制御元記憶部に記憶されている前記上位システム手順データを他の前記クラウド連携管理装置に送信する制御元クラウド間情報更新部と、リソース制御対象の上位システムをリソース制御先の前記クラウド連携管理装置に通知する指示出力部と、前記リソース制御対象の上位システムに対応した前記上位システム手順データを前記制御元記憶部から読み出し、読み出した前記上位システム手順データが示すリソース制御元の手順に従って当該上位システムを構成する前記仮想マシンを自クラウドシステム内の前記仮想化装置上に起動する、あるいは、自クラウドシステム内の前記仮想化装置に起動されている、当該上位システムを構成する前記仮想マシンを停止する制御元手順実行部とを備え、リソース制御先の前記クラウド連携管理装置は、前記上位システム手順データを記憶する制御先記憶部と、リソース制御元の前記クラウド連携管理装置から前記上位システム手順データを受信して前記制御先記憶部に書き込む制御先クラウド間情報更新部と、リソース制御元の前記クラウド連携管理装置から通知された前記リソース制御対象の上位システムにより前記制御先記憶部に記憶されている前記上位システム手順データを特定し、特定された前記上位システム手順データが示すリソース制御先の手順に従って当該上位システムを構成する前記仮想マシンを自クラウドシステム内の前記仮想化装置上に起動する制御先手順実行部とを備える、ことを特徴とするリソース連携システムである。
【0007】
また、本発明は、上述したリソース連携システムであって、前記制御元記憶部は、複数の仮想マシンによる上位システムの構成を示す上位システム構成情報をさらに記憶し、前記制御元クラウド間情報更新部は、前記制御元記憶部に記憶されている前記上位システム構成情報を前記他のクラウド連携管理装置に送信し、前記制御元手順実行部は、前記リソース制御対象の上位システムに対応した前記上位システム構成情報を前記制御元記憶部から読み出し、読み出した前記上位システム構成情報が示す仮想マシンの依存関係に従って停止すべき仮想マシンの順序を決定し、決定した順序に従って自クラウド内の前記仮想化装置に起動されている前記仮想マシンを停止し、前記制御先クラウド間情報更新部は、リソース制御元の前記クラウド連携管理装置から前記上位システム構成情報を受信して前記制御先記憶部に書き込み、前記制御先手順実行部は、前記リソース制御対象の上位システムに対応した前記上位システム構成情報を前記制御先記憶部から読み出し、読み出した前記上位システム構成情報が示す仮想マシンの依存関係に従って起動すべき仮想マシンの順序を決定し、決定した順序に従って自クラウド内の前記仮想化装置上に前記仮想マシンを起動する、ことを特徴とする。
【0008】
また、本発明は、上述したリソース連携システムであって、前記第1の手順実行部及び前記第2の手順実行部は、起動した前記仮想マシンのアドレス情報を、前記上位システムにおいて依存関係を有する他の仮想マシンに設定する、ことを特徴とする。
【0009】
また、本発明は、上述したリソース連携システムであって、前記上位システム手順データは、前記リソース制御対象の上位システムを構成する前記仮想マシンの起動または停止、前記仮想マシンが提供するサービスの起動または停止、前記サービスの設定ファイル更新、前記仮想マシンに対する外部ストレージの割り当てまたは割り当て解除、リソース制御元またはリソース制御先への通知の送信、リソース制御元またはリソース制御先からの通知待ちの処理のうち1以上からなる手順を示す、ことを特徴とする。
【0010】
また、本発明は、上述したリソース連携システムであって、前記制御元記憶部は、他の前記クラウドシステムにおいて起動可能な仮想マシンの種類を記憶し、前記リソース制御元のクラウド連携管理装置は、前記リソース制御対象の上位システムを構成する前記仮想マシンを起動可能な他の前記クラウドシステムのリストを前記制御元記憶部から読み出して出力するリスト出力部をさらに備え、前記指示出力部は、前記リスト出力部が出力した候補の中から選択された他クラウドシステムのクラウド連携管理装置をリソース制御先として前記リソース制御対象の上位システムを通知する、ことを特徴とする。
【0011】
また、本発明は、上述したリソース連携システムであって、前記制御元記憶部は、自クラウドシステム及び他クラウドシステムの料金の情報を記憶しており、前記リソース制御元のクラウド連携管理装置は、前記制御元記憶部に記憶されている自クラウドシステム及び他クラウドシステムの料金の情報を参照して自クラウドシステムと料金の差が所定以内の他クラウドシステムを選択し、選択した他クラウドシステムをリソース制御先の候補として出力するリスト出力部をさらに備え、前記指示出力部は、前記リスト出力部が出力した候補の中から選択された他クラウドシステムのクラウド連携管理装置をリソース制御先として前記リソース制御対象の上位システムを通知する、ことを特徴とする。
【0012】
また、本発明は、上述したリソース連携システムであって、前記クラウド連携管理装置は、自クラウドシステム内の前記仮想化装置のリソース状態を取得し、前記リソース制御元の前記クラウド連携管理装置に通知する通知部を備え、前記リソース制御元のクラウド連携管理装置は、他の前記クラウド連携管理装置から受信したリソース状態により示されるリソース空き状態に基づいて選択した他クラウドシステムをリソース制御先の候補として出力するリスト出力部をさらに備え、前記指示出力部は、前記リスト出力部が出力した候補の中から選択された他クラウドシステムのクラウド連携管理装置をリソース制御先として前記リソース制御対象の上位システムを通知する、ことを特徴とする。
【0013】
また、本発明は、仮想化装置及びクラウド連携管理装置を有する複数のクラウドシステムをネットワークを介して接続してなるリソース連携システムにおけるクラウド間リソース連携方法であって、リソース制御元の前記クラウド連携管理装置において、制御元クラウド間情報更新部が、上位システムを構成する仮想マシンの停止または起動の手順を示す上位システム手順データを制御元記憶部から読み出し、他の前記クラウド連携管理装置に送信する制御元クラウド間情報更新過程と、リソース制御先の前記クラウド連携管理装置において、制御先クラウド間情報更新部が、リソース制御元の前記クラウド連携管理装置から前記上位システム手順データを受信して制御先記憶部に書き込む制御先クラウド間情報更新過程とを有する一方、リソース制御元の前記クラウド連携管理装置において、指示出力部が、リソース制御対象の上位システムをリソース制御先の前記クラウド連携管理装置に通知する指示出力過程と、制御元手順実行部が、前記リソース制御対象の上位システムに対応した前記上位システム手順データを前記制御元記憶部から読み出し、読み出した前記上位システム手順データが示すリソース制御元の手順に従って当該上位システムを構成する前記仮想マシンを自クラウドシステム内の前記仮想化装置上に起動する、あるいは、自クラウドシステム内の前記仮想化装置に起動されている、当該上位システムを構成する前記仮想マシンを停止する制御元手順実行過程と、リソース制御先の前記クラウド連携管理装置において、制御先手順実行部が、リソース制御元の前記クラウド連携管理装置から通知された前記リソース制御対象の上位システムにより前記制御先記憶部に記憶されている前記上位システム手順データを特定し、特定された前記上位システム手順データが示すリソース制御先の手順に従って当該上位システムを構成する前記仮想マシンを自クラウドシステム内の前記仮想化装置上に起動する制御先手順実行過程とを有する、ことを特徴とするリソース連携方法である。
【発明の効果】
【0014】
本発明によれば、あるクラウドにおいて上位システム(クラウドサービス)提供環境のリソースが不足した場合に、他のクラウドのリソースを一部利用し、あるいは、リソースに余裕のある他のクラウドに上位システム提供環境全体を移行し、継続して上位システムを提供することが可能となる。
また、上記のように上位システム提供環境全体をクラウド間で移行させることができるため、ユーザが一つのクラウド事業者から他のクラウド事業者へ移行することが困難なベンダロックイン状態が発生せず、利用者はクラウド事業者間の競争の恩恵を受けやすくなる。クラウドは数多くのシステムの統一基盤となるが、このように、特定クラウド事業者へ依存しなくてもよくなるため、クラウドサービスを利用する利用者のリスクが解消される。加えて、激甚災害などによって、クラウドを構成するコンピュータ装置群の大部分あるいは全部がダメージを負った場合でも、引き続き他のクラウドにおいてサービスの提供を継続することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施形態によるクラウド間リソース連携システムの全体構成図である。
【図2】同実施形態によるクラウドの構成を示すブロック図である。
【図3】同実施形態による上位システムの構成例を示す図である。
【図4】同実施形態による上位システム構成情報の初期値の例を示す。
【図5】同実施形態による上位システムの構成の具体的な例を示す図である。
【図6】同実施形態による上位システム構成情報の具体的な例を示す図である。
【図7】同実施形態による上位システムの移行手順を記述した上位システム手順データを示す図である。
【図8】同実施形態による上位システムのスケールアウト手順を記述した上位システム手順データを示す図である。
【図9】同実施形態による他クラウド情報のデータ構成例を示す図である。
【図10】同実施形態によるリソース情報のデータ構成例を示す図である。
【図11】同実施形態による仮想マシンリスト情報のデータ構成例を示す図である。
【図12】同実施形態によるCPUアーキテクチャ情報のデータ構成例を示す図である。
【図13】同実施形態によるOS情報のデータ構成例を示す図である。
【図14】同実施形態による料金情報のデータ構成例を示す図である。
【図15】同実施形態による関連上位システム構成情報のデータ構成例を示す図である。
【図16】同実施形態による上位システムのクラウド間移行手順を示す図である。
【図17】同実施形態による上位システムのクラウド間移行手順を示す図である。
【図18】同実施形態による上位システムのクラウド間移行手順を示す図である。
【図19】同実施形態による上位システムのクラウド間移行手順を示す図である。
【図20】同実施形態による上位システムのクラウド間スケールアウト手順を示す図である。
【図21】同実施形態による上位システムのクラウド間スケールアウト手順を示す図である。
【発明を実施するための形態】
【0016】
以下、図面を参照して本発明の実施形態の例について説明する。
図1は、本発明の一実施形態によるクラウド間リソース連携システムの全体構成図である。
同図に示すように、クラウド間リソース連携システムは、複数のクラウドシステム(以下、単に「クラウド」と記載)をIPネットワークであるネットワーク7を介して接続してなる。ネットワーク7には、DNS(Domain Name System)サーバ8、ユーザ端末9が接続される。同図において、ユーザ端末9は1台のみ記載しているが、複数台が接続されうる。
【0017】
クラウドA、クラウドB、…、クラウドNの各クラウドは、クラウド連携管理装置1及びクラウドサービスシステムからなる。ユーザ端末9に対してクラウドサービスを提供するクラウドサービスシステムは、クラウドフロントエンド装置3、及び、仮想化装置5を備える。同図において、仮想化装置5は1台のみ記載しているが、複数台の仮想化装置5を備えてもよい。
【0018】
以下、クラウド連携管理装置1、クラウドフロントエンド装置3、仮想化装置5などの装置が属しているクラウドを当該装置の「自クラウド」、当該装置が属するクラウドとは異なるクラウドを「他クラウド」と記載する。例えば、クラウドAのクラウド連携管理装置1であれば、自クラウドはクラウドAであり、他クラウドはクラウドB、…、クラウドNである。
【0019】
図2は、本実施の形態によるクラウドの構成を示すブロック図である。
仮想化装置5は、自身のコンピュータリソースを仮想化する機能を備えたコンピュータ装置であり、仮想マシンのインスタンスを生成する。つまり、仮想化装置5は、自身のCPU(central processing unit)、メモリ、ディスクなどの物理的なハードウェアリソースを仮想的に分割し、定められたプログラムが含まれる仮想マシンのイメージファイルに基づいて、分割したコンピュータリソース(スロット)上に仮想マシンを起動する。
【0020】
仮想マシンは、サービスを実行する機能とエージェント機能を有する。仮想マシンはエージェント機能によって、クラウド連携管理装置1から指示されたサービスの起動・終了、サービス設定ファイルの更新、外部ストレージの取り付け・切り離し等の各種処理を行う。仮想マシンは、他の仮想マシンと協働して動作し、クラウドサービスを提供するシステムを構成することができる。このクラウド上で動作し、クラウドサービスを提供するシステムを「上位システム」と記載する。具体的には、この「上位システム」は、仮想マシン上で処理を行なう複数のソフトウェアによって実行されるサービスを組み合わせて実現されるものである。上位システムは、通常、同一のクラウド内の仮想化装置5において起動されている仮想マシンのみからなるが、スケールアウトを行なった場合、他のクラウドの仮想化装置5において起動されている仮想マシンを含んで上位システムを構成することができる。
【0021】
クラウドフロントエンド装置3は、1または複数のコンピュータ装置によって実現され、自クラウドの仮想マシンの起動や停止、自クラウドの仮想マシンリストの取得、自クラウドの仮想マシンへのストレージの割り当て及び割り当て解除、自クラウドの仮想マシンのリソース状態の取得等を行う。
【0022】
クラウド連携管理装置1は、記憶部11、管理インタフェース(以下、インタフェースを「IF」と記載)部12、連携IF部13、構成管理部14、構成制御部15、クラウド操作IF部16、及び、仮想マシン操作IF部17を備えて構成される。
【0023】
記憶部11は、他クラウド情報、及び、関連上位システム構成情報、ならびに、自クラウド及び他クラウドの上位システム構成情報、上位システム手順データ、仮想マシンリスト情報、リソース情報、CPU(central processing unit)アーキテクチャ情報、OS(Operation System)情報、及び、料金情報などの各種情報を記憶する。
【0024】
他クラウド情報は、他クラウドに属するクラウド連携管理装置1のIPアドレスを示す。関連上位システム構成情報は、自クラウドで提供可能な上位システムと、当該上位システムの移行先となる他クラウド、及び、当該上位システムを構成する仮想マシンのスケールアウト先となる他クラウドとを対応付けた情報である。他クラウドを特定する情報としては、当該他クラウドに属するクラウド連携管理装置1のIDを用いることができる。
【0025】
上位システム構成情報は、上位システムを構成する仮想マシンの構成を示し、上位システムを構成する各仮想マシンの属性情報、当該各仮想マシンの起動台数及びIPアドレスの情報を含む。属性情報には、上位システムを構成するサービス間の依存関係や、各仮想マシンのデフォルト台数、スケールアウト可能か否か、起動要件等の情報が含まれる。起動要件の情報は、仮想マシンのソフトウェアやミドルウェアのファイルであるイメージファイルや、仮想マシンが動作するOS、仮想マシンの動作に必要なCPU等のハードウェア要件など、仮想マシンを起動し、動作させるために必要な要件を示す。
上位システム手順データは、クラウド間の上位システム全体の移行、クラウド間の仮想マシンのスケールアウト、上位システムの起動、上位システムの停止の手順を記述したデータである。
【0026】
仮想マシンリスト情報は、クラウドサービスシステムにおいてサポートしている仮想マシンのイメージファイルの一覧を示す。リソース情報は、クラウドサービスシステムのリソースの状態を示し、クラウドサービスシステム全体のメモリ総量及び空きメモリ総量、ディスク総量及び空きディスク総量、ならびに、CPU総数及び空きCPU数の情報が含まれる。CPUアーキテクチャ情報は、クラウドサービスシステムがサポートするCPUアーキテクチャ名を示す。OS情報は、クラウドサービスシステムがサポートするOS名を示す。料金情報は、課金の単位と、当該単位当たりの料金を示す。
【0027】
管理IF部12は、上位システム手順の実行開始に関する各種指示を受信する。また、管理IF部12は、記憶部11に対する情報の登録や変更なども受け付ける。連携IF部13は、ネットワーク7を介して他のクラウド連携管理装置1との間でデータを送受信する。クラウド操作IF部16は、自クラウドのクラウドフロントエンド装置3との間でデータを送受信する。仮想マシン操作IF部17は、自クラウドの仮想マシンとの間でデータを送受信する。
【0028】
構成管理部14は、記憶部11に記憶されている情報を管理する。構成管理部14は、クラウド内情報更新部141、クラウド間情報更新部142、及び、関連上位システム情報更新部143を備える。
クラウド内情報更新部141は、自クラウドのクラウドフロントエンド装置3が自クラウド内の仮想化装置5から収集した各種情報を受信し、受信した情報に基づいて記憶部11に記憶している自クラウドの情報を更新する。また、管理IF部12からの入力に従って記憶部11に記憶している自クラウドの情報を更新する。
クラウド間情報更新部142は、記憶部11から定期的に自クラウドの上位システム構成情報、上位システム手順データ、仮想マシンリスト情報、リソース情報、CPUアーキテクチャ情報、OS情報、及び、料金情報読み出して他のクラウド連携管理装置1に送信する。また、クラウド間情報更新部142は、上位システム構成情報が更新された際に、その更新情報を他のクラウド連携管理装置1に送信する。さらに、クラウド間情報更新部142は、他のクラウド連携管理装置1から受信した各種情報を記憶部11へ書き込む。
関連上位システム情報更新部143は、記憶部11に記憶されている自クラウドの上位システム構成情報、他クラウドの仮想マシンリスト、自クラウド及び他クラウドのリソース情報、CPUアーキテクチャ情報、OS情報、料金情報等を参照して関連上位システム構成情報を生成し、記憶部11に書き込む。
【0029】
構成制御部15は、管理IF部12から受信した指示に従って、上位システムの起動、停止、移行や、仮想マシンのスケールアウト等の上位システム手順を実行する。構成制御部15は、リスト提示部151、指示出力部152及び手順実行部153からなる。
リスト提示部151は、管理IF部12から受信した指示がクラウド間の上位システム移行あるいはスケールアウトであった場合、移行先あるいはスケールアウト先となりうるクラウドのリストを出力する。
指示出力部152は、リスト提示部151が出力したリストの中から選択されたクラウドの情報を受信し、手順実行部153と選択されたクラウドのクラウド連携管理装置1に上位システム手順の実行を指示する。
手順実行部153は、指示出力部152あるいは他のクラウド連携管理装置1から受信した指示に従って記憶部11から上位システム手順データ及び上位システム構成情報を読み出し、これらの情報に基づいて仮想マシンの起動や停止等の処理を行なう。上位システム手順データに含まれる各手順は、構成制御部15が提供するAPI(Application Program Interface)により実行される。
【0030】
以下、各クラウドのクラウド連携管理装置1、クラウドフロントエンド装置3、仮想化装置5を、クラウドに対応した符号を付加することによって表す。例えば、クラウドAのクラウド連携管理装置1、クラウドフロントエンド装置3、仮想化装置5をそれぞれクラウド連携管理装置1a、クラウドフロントエンド装置3a、仮想化装置5aと記載し、クラウドBのクラウド連携管理装置1、クラウドフロントエンド装置3、仮想化装置5をそれぞれクラウド連携管理装置1b、クラウドフロントエンド装置3b、仮想化装置5bと記載する。同様に、各クラウドのクラウド連携管理装置1内の機能ブロックを、クラウドに対応した符号を付加することによって表す。例えば、クラウドAのクラウド連携管理装置1aの記憶部11を記憶部11aと記載し、クラウドBのクラウド連携管理装置1bの記憶部11を記憶部11bと記載する。
【0031】
次に、クラウド連携管理装置1が記憶する各種情報について説明するが、この説明の前に上位システムの構成を説明する。
図3は、上位システムの構成例を示す図である。
図3(a)は、スケールアウト前の上位システムWの構成を、図3(b)は、スケールアウト後の上位システムWの構成を示す。
図3(a)及び図3(b)に示すように、上位システムWは、サービスα及びサービスβを実行する仮想マシンXと、サービスγを実行する仮想マシンYと、サービスδを実行する仮想マシンZとからなる。そして、サービスαとサービスβ、サービスβとサービスγ、サービスγとサービスδ間には依存関係がある。図3(a)においては、仮想マシンX、仮想マシンYが2台、仮想マシンZが1台であるが、図3(b)に示すように仮想マシンYのスケールアウト後は、仮想マシンYが4台となっている。
【0032】
図4は、クラウド連携管理装置1の記憶部11に記憶される上位システム構成情報の初期設定の例を示す。同図に示す上位システム構成情報は、図3に示す上位システムWの構成を記述している。上位システム構成情報の外部参照ファイル群は、各仮想マシンX,Y,Zの外部参照ファイルからなり、各外部参照ファイルには、仮想マシンの識別情報と、当該仮想マシンの属性情報が記述されている。属性情報には、デフォルトの仮想マシンの台数、スケールアウトの可否、及び、仮想マシンで実行されるサービス、当該サービスが依存する他のサービス、当該サービスに関する動的パラメータ、及び、起動要件が記述される。動的パラメータは、当該仮想マシンの起動に伴って動的に設定値が変更となるパラメータである。
【0033】
図4に記載の上位システム構成情報の初期設定は、クラス、つまり、上位システム構成情報の雛形であり、上位システム手順の実行時にはこのクラスを利用し、実際の動的パラメータ(IPアドレス等)を設定してインスタンスを生成する。インスタンスの生成によって、クラス(雛形)に基づいて個別に上位システム構成情報の実体が生成され、メモリ上に配置される。そして、この生成されたインスタンスを用いて上位システム手順が実行される。
【0034】
同図に示すように、上位システム構成情報には、上位システムWのIDが記述され、外部参照ファイルにはそれぞれ仮想マシンX、Y、ZのIDが記述されている。仮想マシンXの属性情報は、デフォルト台数が2台、スケールアウトは不可、サービスα及びβが実行され、サービスαはサービスβに依存し、サービスβはサービスγに依存することを示している。また、仮想マシンYの属性情報は、デフォルト台数が2台、仮想マシンZに依存しており、スケールアウトは可、サービスγが実行され、サービスγはサービスδに依存し、IPアドレスが動的パラメータであることを示しており、仮想マシンZの属性情報は、デフォルト台数が1台、スケールアウトは不可、サービスδが実行され、サービスδは他のサービスに依存せず、IPアドレスが動的パラメータであることを示している。
また、仮想マシンX、Y,Zの起動要件として、仮想マシンイメージファイル名、OS名、CPUアーキテクチャ名が示されている。
なお、各仮想マシンが起動された場合、起動された仮想マシンのIPアドレスと起動台数が上位システム構成情報に設定される。IPアドレスには、ポート番号を含んでもよい。
【0035】
図5は、上位システムの構成の具体的な例を、図6は、図5に示す上位システムに対応した上位システム構成情報の具体的な例を示す。
図5に示すように、上位システム「Web3層システム」は、サービス「UltraMonxxx」及びサービス「Apaxxx」を実行する仮想マシン「LB/Web」と、サービス「Tomxxx」を実行する仮想マシン「App」と、サービス「PostxxxSQL」を実行する仮想マシン「DB」とからなっている。
【0036】
図6は、IDが「BSID‐00000001」により特定される上位システム(Web3層システム)は、IDが「LB/Web」、「App」、「DB」により特定される仮想マシンから構成されることが記述されている。
そして、仮想マシン「LB/Web」は、デフォルト2台(default="2")、スケールアウトは不可(scalable="false")、サービス「UltraMonxxx」とサービス「Apaxxx」を実行すること、サービス「UltraMonxxx」は、仮想マシン「LB/Web」のサービス「Apaxxx」に依存し("dependon" value="Apaxxx#LB/Web")、IPアドレス(ipAddress)が動的パラメータであること、サービス「Apaxxx」は、仮想マシン「App」のサービス「Tomxxx」に依存し("dependon" value="Tomxxx#App")、IPアドレス(ipAddress)が動的パラメータであることが記述されている。
【0037】
同様に、ID「App」により特定される仮想マシンは、デフォルト2台かつ最大10台、スケールアウトは可、サービス「Tomxxx」を実行すること、サービス「Tomxxx」は、仮想マシン「DB」のサービス「PostxxxSQL」に依存し、IPアドレスが動的パラメータであることが記述されており、ID「DB」により特定される仮想マシンは、デフォルト1台、スケールアウトは不可、サービス「PostxxxSQL」を実行すること、サービス「PostxxxSQL」はIPアドレスが動的パラメータであることが記述されている。
さらに、仮想マシン「LB/Web」,「App」,「DB」のイメージフィアル名はそれぞれ「lbweb - image」、「ap - image」、「db - image」であり、仮想マシン「LB/Web」、「App」、「DB」ともCPUアーキテクチャは「x86_yy」、OSは「Linxx」であることが記述されている。
上記のように、IPアドレスが動的に設定されることを宣言しておくことにより、上位システム手順においてサービスの設定ファイルの更新を行なう際、この動的に設定したIPアドレスを取得して設定ファイルに埋め込むことが可能となる。
【0038】
図7及び図8は、クラウド連携管理装置1の記憶部11に記憶される上位システム手順データの構成例を示す図である。上位システム手順データが示す手順には、上位システムの起動手順、停止手順、移行手順、スケールアウト手順がある。
【0039】
図7は、上位システムWの移行手順を記述した上位システム手順データを示す。移行手順の上位システム手順データには、上位システムWのIDと、手順が「移行手順」であることを示す情報と、移行元手順及び移行先手順とが記述される。移行元手順は、仮想マシンの終了順序の決定、決定された終了順序に応じた各仮想マシンの終了スクリプト実行、移行先のクラウド連携管理装置1への仮想マシンの終了通知を行なう手順、及び、各仮想マシンの終了スクリプトからなる。また、移行先手順は、移行元のクラウド連携管理装置1からの仮想マシンの終了通知待ち、仮想マシンの起動順序の決定、決定された起動順序に応じた各仮想マシンの起動スクリプト実行、DNS更新を行なう手順、及び、各仮想マシンの起動スクリプトからなる。
【0040】
終了スクリプトは、例えば、各仮想マシン内のサービスの停止、仮想マシンからの外部ストレージ(外部ディスク)の切り離し(アンマウント)、仮想マシンからの外部ストレージの割り当て解除(デタッチ)、仮想マシンの停止などの手順を含んで構成することができる。
起動スクリプトは、例えば、各仮想マシンの起動、仮想マシンの起動待ち、仮想マシンへの外部ストレージの割り当て(アタッチ)、仮想マシンへの外部ストレージの取り付け(マウント)、仮想マシン内のサービス用の設定ファイル更新、仮想マシン内のサービスの起動などの手順を含んで構成することができる。設定ファイル更新において設定する内容は、予めスクリプト中に設定ファイルとして記述されるが、上位システム構成情報に動的であるとして宣言されたパラメータ(例えば、IPアドレス)を取得して、設定ファイル内に含めることができる。
【0041】
なお、停止手順の上位システム手順データは、移行手順の上位システム手順データ内の移行元手順と同様の手順であり、起動手順の上位システム手順データは、移行手順の上位システム手順データ内の移行先手順と同様の手順となる。但し、移行先と移行元との間の通知の送受信や通知待ちの手順については除く。
【0042】
図8は、仮想マシンP及びQを含んで構成される上位システムVのスケールアウト手順を記述した上位システム手順データを示す。同図に示すように、スケールアウト手順の上位システム手順データは、上位システムVのIDと、手順が「スケールアウト手順」であることを示す情報と、スケールアウト元手順及びスケールアウト先手順とが記述される。ここでは、スケールアウト対象の仮想マシンPは、例えば、仮想マシンQに依存する分散処理ミドルウェアであり、仮想マシンPはサービスεを実行し、仮想マシンQはサービスζを実行する。
【0043】
仮想マシンPのスケールアウト元手順は、スケールアウト先への仮想マシン起動開始通知、スケールアウト対象の仮想マシンPの起動スクリプト実行、スケールアウト先への仮想マシン起動完了通知、スケールアウト先からの仮想マシン起動完了通知待ち、仮想マシンQのサービスζに対する設定ファイル更新、仮想マシンPのサービスεに対する設定ファイル更新、スケールアウト先への設定ファイル更新完了通知、スケールアウト先からの設定ファイル更新完了通知待ち、仮想マシンPのサービスε及び仮想マシンQのサービスζの再起動を行なう手順、及び、スケールアウト対象の仮想マシンの起動スクリプトからなる。
【0044】
また、仮想マシンPのスケールアウト先手順は、スケールアウト元からの仮想マシン起動開始通知待ち、仮想マシンPの起動スクリプト実行、スケールアウト元への仮想マシン起動完了通知、スケールアウト元からの仮想マシン起動完了通知待ち、仮想マシンPのサービスεに対する設定ファイル更新、スケールアウト元への設定ファイル更新完了通知を行なう手順、及び、スケールアウト対象の仮想マシンの起動スクリプトからなる。
起動スクリプトには、例えば、各仮想マシンの起動、仮想マシンの起動待ちなどの指示が含まれる。
【0045】
上位システム手順データに記述される処理、すなわち、手順実行部153が提供するAPIにより実行可能な処理には、上述したように、仮想マシンの起動及び停止、ストレージの切り離し及び取り付け、割り当て及び割り当て解除、所定の手順ブロックの終了待ち、所定の通知及び通知受信待ち等があるが、その他に、例えば、仮想マシンへのIPアドレス割り当て、仮想マシン上でのコマンド実行、別スレッドでの処理実行などがあり、これらの処理の組み合わせによって一連の手順を記述することができる。
【0046】
図9は、クラウド連携管理装置1の記憶部11に記憶される他クラウド情報のデータ構成例を示す図である。同図に示すように、他クラウド情報は、連携している他のクラウド連携管理装置1のID(id)と、当該他のクラウド連携管理装置1のIPアドレス(address)とを対応付けたリストからなる。
【0047】
図10は、クラウド連携管理装置1の記憶部11に記憶されるリソース情報のデータ構成例を示す図である。リソース情報は、クラウド連携管理装置1のIDと対応付けられており、このIDで特定されるクラウド連携管理装置1が属するクラウド内の仮想化装置5全体のメモリ総量(memory)、空きメモリ総量(available_memory)、ディスク総量(disk)、空きディスク総量(available_disk)、CPU総数(cpu)、空きCPU数(available_cpu)の情報を含む。
【0048】
図11は、クラウド連携管理装置1の記憶部11に記憶される仮想マシンリスト情報のデータ構成例を示す図である。仮想マシンリスト情報は、クラウド連携管理装置1のIDと対応付けられており、このIDで特定されるクラウド連携管理装置1が属するクラウド内の仮想化装置5がサポートしている仮想マシンのイメージファイル名(vm_image)のリストを示す。仮想マシンのイメージファイル名によって、起動可能な仮想マシンの種類を表すことができる。
【0049】
図12は、クラウド連携管理装置1の記憶部11に記憶されるCPUアーキテクチャ情報のデータ構成例を示す図である。CPUアーキテクチャ情報は、クラウド連携管理装置1のIDと対応付けられており、このIDで特定されるクラウド連携管理装置1が属するクラウド内の仮想化装置5がサポートしているCPUアーキテクチャ名(arch)のリストを示す。
【0050】
図13は、クラウド連携管理装置1の記憶部11に記憶されるOS情報のデータ構成例を示す図である。OS情報は、クラウド連携管理装置1のIDと対応付けられており、このIDで特定されるクラウド連携管理装置1が属するクラウド内の仮想化装置5がサポートしているOS名(os)のリストを示す。
【0051】
図14は、クラウド連携管理装置1の記憶部11に記憶される料金情報のデータ構成例を示す図である。料金情報は、クラウド連携管理装置1のIDと対応付けられており、このIDで特定されるクラウド連携管理装置1が属するクラウドにおける上位システムの課金の単位(unit)と、当該単位当たりの料金(price)とを対応づけたリストからなる。課金の単位は、例えば、CPU数やメモリサイズ等、あるいは、それらの組み合わせを用いることができる。
【0052】
図15は、クラウド連携管理装置1の記憶部11に記憶される関連上位システム構成情報のデータ構成例を示す図である。同図に示すように、関連上位システム構成情報は、クラウド連携管理装置1が起動、停止、移行、スケールアウトの対象とする可能性がある上位システムのID(id)と、当該上位システムの移行先となりうる他クラウドのクラウド連携管理装置1のID(recovery_dst)、及び、当該上位システムのスケールアウト先となりうる他のクラウドのクラウド連携管理装置1のID(scaleout_dst)とを対応付けたリストからなる。
【0053】
続いて、本実施形態のクラウド間リソース連携システムの動作について説明する。
まず、各クラウドにおいて、クラウド連携管理装置1のクラウド内情報更新部141は、管理IF部12により入力された他クラウド情報及び料金情報を記憶部11に書き込む。また、クラウド連携管理装置1のクラウド内情報更新部141は、自クラウドのクラウドフロントエンド装置3へ仮想マシン、CPUアーキテクチャ、OSの情報を要求する。クラウドフロントエンド装置3には、予め自クラウドの仮想化装置5がサポートする仮想マシンのイメージフィル名、CPUアーキテクチャ情報、OS情報が登録されている。クラウドフロントエンド装置3は、問合せに対応して、予め記憶していた仮想マシンのイメージファイル名、CPUアーキテクチャ情報、OS情報を自クラウドのクラウド連携管理装置1へ送信する。クラウド連携管理装置1のクラウド内情報更新部141は、クラウドフロントエンド装置3から受信した仮想マシンのイメージファイル名、CPUアーキテクチャ情報、OS情報をそれぞれ、自クラウド連携管理装置1のIDに対応した記憶部11内の仮想マシンリスト情報、CPUアーキテクチャ情報、OS情報に書き込む。
【0054】
また、各クラウドにおいて、クラウド連携管理装置1のクラウド内情報更新部141は、定期的に自クラウドのクラウドフロントエンド装置3へリソース状態の問合せを出力する。クラウドフロントエンド装置3は、リソース状態の問合せを受信すると、自クラウド内の全ての仮想化装置5それぞれからメモリ量、空きメモリ量、ディスク容量、空きディスク容量、CPU数、及び、空きCPU数などのリソース状態を読み出してクラウド連携管理装置1へ出力する。クラウド連携管理装置1のクラウド内情報更新部141は、クラウドフロントエンド装置3から受信した各仮想化装置5のリソース状態に基づき、クラウド全体のメモリ総量、空きメモリ総量、ディスク総量、空きディスク総量、CPU総数、及び、空きCPU総数を算出し、算出結果により自クラウド連携管理装置1のIDに対応した記憶部11内のリソース情報を更新する。なお、クラウド全体のメモリ総量、ディスク総量、CPU総数については、管理IF11から入力された内容を書き込んでもよい。
【0055】
一方、各クラウドにおいて、クラウド連携管理装置1のクラウド間情報更新部142は、定期的に、記憶部11に記憶している自クラウドの上位システム構成情報、上位システム手順データ、リソース情報、CPUアーキテクチャ情報、OS情報、及び、料金情報を連携情報として読み出すと、読み出した連携情報に自クラウド連携管理装置1のIDを付加し、他クラウド情報に設定されている他のクラウド連携管理装置1のIPアドレスをあて先として送信する。あて先となったクラウド連携管理装置1のクラウド間情報更新部142は、受信した更新情報と、この更新情報送信元のクラウド連携管理装置1のIDとを対応づけて記憶部11に書き込む。
【0056】
上記の手順により、各クラウドのクラウド連携管理装置1間は、定期的に上位システム構成情報、上位システム手順データ、リソース情報、CPUアーキテクチャ情報、OS情報、及び、料金情報を交換して更新する。
【0057】
各クラウドにおいて、クラウド連携管理装置1の関連上位システム情報更新部143は、記憶部11に記憶されている自クラウドの上位システム構成情報を1つ特定し、特定した上位システム構成情報から仮想マシンの起動要件を読み出す。関連上位システム情報更新部143は、他のクラウド連携管理装置1のIDと対応付けられている記憶部11内の仮想マシンリスト情報、CPUアーキテクチャ情報、及び、OS情報を参照して、上位システムの仮想マシンの起動要件を満たす他のクラウドを特定し、移行先クラウドと判断する。例えば、クラウドAのクラウド連携管理装置1aの関連上位システム情報更新部143aは、自クラウドの上位システムWの上位システム構成情報から各仮想マシンの起動要件を読み出す。関連上位システム情報更新部143aは、クラウド連携管理装置1bのIDに対応付けられた仮想マシンリスト情報、CPUアーキテクチャ情報、OS情報に、読み出した各仮想マシンの起動要件により示される全ての仮想マシンイメージフィアル名、全てのOS名、全てのCPUアーキテクチャ名が含まれていれば、クラウドBは上位システムWの移行先クラウドと判断する。関連上位システム情報更新部143は、同様の判断をさらに他のクラウドの仮想マシンリスト情報についても行う。
【0058】
また、関連上位システム情報更新部143は、特定した自クラウドの上位システム構成情報からスケールアウト可能な仮想マシンの起動要件IDを読み出す。関連上位システム情報更新部143は、他のクラウド連携管理装置1のIDと対応付けけられている記憶部11内の仮想マシンリスト情報、CPUアーキテクチャ情報、及び、OS情報を参照して、上位システムを構成するスケールアウト可能な仮想マシンの起動要件を満たす他のクラウドを特定し、スケールアウト先クラウドと判断する。例えば、クラウドAのクラウド連携管理装置1aの関連上位システム情報更新部143aは、自クラウドの上位システムWの上位システム構成情報からスケールアウト可能な仮想マシンの起動要件を読み出す。さらに関連上位システム情報更新部143aは、クラウド連携管理装置1nのIDに対応付けられた仮想マシンリスト情報、CPUアーキテクチャ情報、OS情報に、読み出したスケールアウト可能な各仮想マシンの起動要件により示される全ての仮想マシンイメージフィアル名、全てのOS名、全てのCPUアーキテクチャ名が含まれていれば、クラウドNは上位システムWのスケールアウト先クラウドと判断する。関連上位システム情報更新部143は、同様の判断をさらに他のクラウドの仮想マシンリスト情報についても行う。
【0059】
関連上位システム情報更新部143は、自クラウドの上位システム構成情報から読み出した上位システムIDと、移行先クラウドと判断した他のクラウドのクラウド連携管理装置1のIDと、スケールアウト先クラウドと判断した他のクラウドのクラウド連携管理装置1のIDとを関連上位システム構成情報に書き込む。
関連上位システム情報更新部143は、記憶部11に記憶されている自クラウドの上位システム構成情報を順に特定し、上記と同様の処理を行なう。
【0060】
なお、関連上位システム情報更新部143は、以下の処理により、移行先クラウド、スケールアウト先クラウドと判断したクラウドについて優先度付けを行なったり、移行先クラウド、スケールアウト先クラウドの対象外としたりすることも可能である。
【0061】
(1)自クラウドの料金情報と、移行先クラウド、スケールアウト先クラウドの料金情報を比較し、金額が近いほど移行先クラウド、スケールアウト先クラウドの優先度を高くする。また、金額に所定以上の乖離がある場合、移行先クラウド、スケールアウト先クラウドの対象外としてもよい。
【0062】
(2)移行先クラウド、スケールアウト先クラウドのリソース情報を参照し、空きメモリ総量、空きディスク総量、空きCPU総数が大きい順に移行先クラウド、スケールアウト先クラウドの優先度を高くする。メモリ総量に対する空きメモリ総量の割合、ディスク総量に対する空きディスク総量の割合、CPU総数に対する空きCPU総数の割合が高い順に移行先クラウド、スケールアウト先クラウドの優先度を高くしてもよい。メモリ、ディスク、CPUのいずれを優先するかは任意である。
【0063】
なお、関連上位システム情報更新部143は、(1)、(2)のいずれかを用いてもよく、両方を用いてもよい。両方を用いる場合、いずれを優先するかは任意である。
【0064】
図16〜図19は、上位システムのクラウド間移行手順を示す図である。以下では、移行元クラウドをクラウドA、移行先クラウドをクラウドB、移行対象の上位システムをクラウドA内において起動している仮想マシンから構成される上位システムWとして説明する。
【0065】
図16において、クラウドAに属するクラウド連携管理装置1aの管理IF部12aは、クラウド間移行指示と、クラウド間移行対象の上位システムWのIDとを含んだコマンドを受信し、構成制御部15aへ出力する(ステップS105)。このコマンドは、クラウド連携管理装置1aに備えられた入力手段によりユーザが入力してもよく、クラウド連携管理装置1aとネットワーク7を介して接続される他の装置から受信してもよい。構成制御部15aのリスト提示部151aは、コマンドに設定されている上位システムWのIDをキーにして記憶部11aに記憶されている関連上位システム構成情報を特定し、特定した関連上位システム構成情報から、移行先となりうる他クラウドのクラウド連携管理装置1のIDを読み出す。リスト提示部151aは、読み出した他クラウド連携管理装置1のIDのリスト、または、これらの他クラウド連携管理装置1のIDによって特定されるクラウドの名称のリストを移行先候補情報として管理IF部12aに出力する。管理IF部12aは、リスト提示部151aから受信した移行先候補情報を、クラウド連携管理装置1が備えるディスプレイ、あるいは、コマンド送信元の他の装置のディスプレイに出力する(ステップS110)。読み出した他クラウド連携管理装置1のIDに優先度が付加されている場合は、その優先度順に表示するなど、各移行先クラウドの優先度の情報も併せて出力する。
【0066】
ユーザは、出力された移行先候補情報の中から移行先としてクラウドBを選択し、選択したクラウドBを特定するクラウド選択情報を入力する。クラウド連携管理装置1aの管理IF部12aは、入力されたクラウド選択情報を構成制御部15aに出力する(ステップS115)。
構成制御部15aの指示出力部152aは、上位システムWのIDと、クラウド間移行の移行元手順の実行指示とを手順実行部153aに出力する(ステップS120)。さらに、指示出力部152aは、クラウド選択情報によりクラウドBが選択されたことを検出すると、クラウドBに属するクラウド連携管理装置1bのIDをキーにして、他クラウド情報からクラウド連携管理装置1bのIPアドレスを読み出す。指示出力部152aは、読み出したIPアドレスをあて先として、上位システムWのID、及び、自クラウド連携管理装置1aのIDと、クラウド間移行の移行先手順の実行指示とを送信する(ステップS125)。
【0067】
クラウド連携管理装置1aの手順実行部153aは、自クラウド連携管理装置1aのIDに対応して記憶部11aに記憶されている上位システム手順データの中から、上位システムWのIDが設定されている移行手順の上位システム手順データを特定する。手順実行部153aは、特定した上位システム手順データから移行元手順を読み出すと(ステップS130)、この読み出した移行元手順の実行を開始する(ステップS135)。ここでは、移行対象が上位システムWであり、図7に示す上位システム手順データから移行元手順が読み出されたものとして説明する。
【0068】
一方、クラウド連携管理装置1bの手順実行部153bは、連携IF部13bを介して、クラウド連携管理装置1aから送信された上位システムWのID、及び、クラウド連携管理装置1aのIDと、クラウド間移行の移行先手順の実行指示とを受信する。手順実行部153bは、クラウド連携管理装置1aのIDに対応して記憶部11bに記憶されている上位システム手順データの中から、上位システムWのIDが設定されている移行手順の上位システム手順データを特定する。手順実行部153bは、この特定した上位システム手順データから移行先手順を読み出すと(ステップS140)、この読み出した移行先手順の実行を開始する(ステップS145)。ここでは、移行対象が上位システムWであり、図7に示す上位システム手順データから移行先手順が読み出されたものとして説明する。
【0069】
クラウド連携管理装置1aの手順実行部153aは、移行元手順が開始されると、まず、仮想マシン終了順序を決定するため、クラウド連携管理装置1aのID及び上位システムWのIDに対応した上位システム構成情報を特定し、記憶部11aから読み出す。手順実行部153aは、上位システム構成情報により示される各仮想マシン内のサービスの依存関係に基づき、他の仮想マシンへの依存が最も深い仮想マシンから順に終了順序を決定する(ステップS150)。図4に示す上位システム構成情報の場合、仮想マシンXのサービスβが仮想マシンYのサービスγに依存していることから、仮想マシンXが仮想マシンYに依存していることが、仮想マシンYのサービスγが仮想マシンZのサービスδに依存していることから、仮想マシンYが仮想マシンZに依存していることが、仮想マシンZのサービスδが他のサービスに依存していないことから、γ仮想マシンZは他の仮想マシンに依存していないことがわかる。手順実行部153aは、他の仮想マシンに依存しない仮想マシンZを最後に終了し、この仮想マシンZに依存する仮想マシンYを仮想マシンZの前に終了し、仮想マシンYに依存する仮想マシンXを仮想マシンYの前に終了すると判断する。よって、終了順序は仮想マシンX、Y、Zの順となる。手順実行部153aは、この決定した終了順序に従って仮想マシンを終了する。
【0070】
図17において、手順実行部153aは、まず、仮想マシンXを最初に終了するため、移行元手順に含まれる仮想マシンX終了スクリプトを読み出して実行する。手順実行部153aは、ステップS150において読み出した上位システム構成情報から全ての仮想マシンXのIPアドレスを読み出すと、読み出したIPアドレスをあて先として仮想マシンXにサービスαの停止指示を送信する(ステップS205)。仮想マシンXのエージェントは、サービスαを停止する(ステップS210)。次に、手順実行部153aは、仮想マシンX終了スクリプトに従ってサービスβの停止指示を仮想マシンXに送信する(ステップS215)。仮想マシンXのエージェントは、サービスβを停止する(ステップS220)。これは、サービスαはサービスβに依存しているため、サービスαから終了するものである。
【0071】
続いて、手順実行部153aは、仮想マシンX終了スクリプトに従い、クラウドフロントエンド装置3aに対して仮想マシンXの停止指示を送信する(ステップS225)。クラウドフロントエンド装置3aは、仮想マシンXを起動している仮想化装置5aに対して仮想マシンXの停止指示を出力する。仮想マシンXの停止指示を受信した仮想化装置5aは、仮想マシンXを停止する。これにより、仮想化装置5aにおいて実行されていた仮想マシンXのインスタンスが解放される。手順実行部153aは、ステップS150において特定した記憶部11a内の上位システム構成情報から仮想マシンX(サービスα及びサービスβ)のIPアドレスを削除し、仮想マシンXの起動台数を0に更新する。
【0072】
手順実行部153aは、仮想マシンX終了スクリプトの実行を終了すると、続いて仮想マシンY終了スクリプトを実行する。手順実行部153aは、上位システム構成情報から全ての仮想マシンYのIPアドレスを読み出すと、読み出したIPアドレスをあて先として仮想マシンYにサービスγの停止指示を送信し(ステップS230)、仮想マシンYのエージェントはサービスγを停止する(ステップS235)。続いて、手順実行部153aは、クラウドフロントエンド装置3aに仮想マシンYの停止指示を送信し(ステップS240)、クラウドフロントエンド装置3aは、仮想マシンYを起動している仮想化装置5aに対して仮想マシンYの停止指示を出力する。仮想マシンYの停止指示を受信した仮想化装置5aは、仮想マシンYを停止する。手順実行部153aは、ステップS150において特定した記憶部11a内の上位システム構成情報から仮想マシンYのIPアドレスを削除し、仮想マシンYの起動台数を0に更新する。
【0073】
手順実行部153aは、仮想マシンY終了スクリプトの実行を終了すると、続いて仮想マシンZ終了スクリプトを実行する。手順実行部153aは、上位システム構成情報から仮想マシンZのIPアドレスを読み出すと、読み出したIPアドレスをあて先として仮想マシンZにサービスδの停止指示を送信し(ステップS245)、仮想マシンZのエージェントはサービスδを停止する(ステップS250)。さらに、手順実行部153aは、仮想マシンZに外部ストレージ切り離し指示を送信し(ステップS255)、仮想マシンZのエージェントは外部ストレージを切り離す(ステップS260)。
【0074】
手順実行部153aは、クラウドフロントエンド装置3aに外部ストレージ割り当て解除指示を送信し(ステップS265)、クラウドフロントエンド装置3aは、仮想マシンZを起動している仮想化装置5aに対して仮想マシンZの外部ストレージ割り当て解除指示を出力する。当該指示を受信した仮想化装置5aは、仮想マシンZへの外部ストレージの割り当てを解除する。
さらに、手順実行部153aは、クラウドフロントエンド装置3aに仮想マシンZの停止指示を送信し(ステップS270)、クラウドフロントエンド装置3aは、仮想マシンZを起動している仮想化装置5aに対して仮想マシンZの停止指示を出力する。仮想マシンZの停止指示を受信した仮想化装置5aは、仮想マシンZを停止する。手順実行部153aは、ステップS150において特定した記憶部11a内の上位システム構成情報から仮想マシンZのIPアドレスを削除し、仮想マシンZの起動台数を0に更新する。
【0075】
クラウド連携管理装置1aのクラウド間情報更新部142aは、クラウド連携管理装置1aのID及び上位システムWのIDと、上位システム構成情報から削除された仮想マシンX,Y,ZのIPアドレス、及び、更新された仮想マシンX、Y、Zの起動台数とをクラウド連携管理装置1bを含む他のクラウド連携管理装置1に上位システム構成更新情報として送信する。他のクラウド連携管理装置1のクラウド間情報更新部142は、受信した上位システム構成更新情報により、クラウド連携管理装置1aのID及び上位システムWのIDに対応して記憶部11に記憶されている上位システム更新情報を更新する。
【0076】
手順実行部153aは、仮想マシンの終了スクリプトの実行を終えると、移行先クラウドのクラウド連携管理装置1bに対して、仮想マシン終了通知を送信する(ステップS275)。移行先クラウドのクラウド連携管理装置1bの手順実行部153bは、移行先スクリプトの開始後、移行元からの仮想マシン終了待ち状態となっている(ステップS280)。
【0077】
図18において、移行先クラウドのクラウド連携管理装置1bの手順実行部153bは、クラウド連携管理装置1aから送信された仮想マシン終了通知を受信すると、仮想マシン起動順序を決定するため、クラウド連携管理装置1aのID及び上位システムWのIDに対応した上位システム構成情報を特定し、記憶部11bから読み出す。手順実行部153bは、上位システム構成情報により示される各仮想マシンの依存関係に基づき、他の仮想マシンへ依存していない仮想マシンから順に起動順序を決定する(ステップS305)。図4に示す上位システム構成情報の場合、他の仮想マシンには依存しない仮想マシンZを最初に起動し、この仮想マシンZに依存する仮想マシンYを仮想マシンZの次に起動し、仮想マシンYに依存する仮想マシンXを仮想マシンYの次に起動すると判断する。よって、起動順序は仮想マシンZ、Y、Xの順となる。また、各仮想マシンのデフォルト台数を読み出す。手順実行部153bは、この決定した起動順序に従って仮想マシンを起動する。
【0078】
手順実行部153bは、まず、仮想マシンZを最初に起動するため、移行先手順に含まれる仮想マシンZ起動スクリプトを読み出して実行する。手順実行部153bは、仮想マシンZ起動スクリプトに従い、クラウドフロントエンド装置3bに対して仮想マシンZの起動指示を送信する(ステップS310)。この仮想マシンの起動指示には、仮想マシンZのデフォルト台数「1」が起動数として設定される。手順実行部153bは、仮想マシンZの起動指示を送信した後、仮想マシンZとの通信が可能となるまで待ち状態となる。
【0079】
クラウドフロントエンド装置3bは、仮想マシンZの起動指示を受信すると、仮想マシンZを起動すべき仮想化装置5bを選択するとともに、仮想マシンZに対してIPアドレスを割り当てる。クラウドフロントエンド装置3bは、選択した仮想化装置5bに、仮想マシンZの起動指示と割り当てたIPアドレスとを送信するとともに、割り当てたIPアドレスをクラウド連携管理装置1bに通知する。仮想マシンZの起動指示及びIPアドレスを受信した仮想化装置5bは、仮想マシンZを起動し、受信したIPアドレスを起動した仮想マシンZに設定すると、当該IPアドレスを送信元として設定した起動通知信号をブロードキャスト等により送信する(ステップS315)。クラウド連携管理装置1bの手順実行部153bは、クラウドフロントエンド装置3bから受信したIPアドレスが送信元として設定された起動通知信号を受信すると(ステップS320)、ステップS305において特定した記憶部11b内の上位システム構成情報に仮想マシンZのIPアドレスと、仮想マシンZの起動台数を書き込む。
【0080】
次に、手順実行部153bは、仮想マシンZ起動スクリプトに従い、クラウドフロントエンド装置3bに対して外部ストレージの割り当て指示を送信する(ステップS325)。クラウドフロントエンド装置3bは、仮想マシンZを起動している仮想化装置5bに、仮想マシンZへの外部ストレージの割当て指示を送信し、当該指示を受信した仮想化装置5bは、仮想マシンZに外部ストレージを割り当てる。
さらに、手順実行部153bは、仮想マシンZ起動スクリプトに従い、受信した仮想マシンのIPアドレスをあて先として仮想マシンZに外部ストレージの取り付け指示を送信する(ステップS330)、仮想マシンZのエージェントは、外部ストレージの取り付けを実行する(ステップS335)。
続いて、手順実行部153bは、仮想マシンZ起動スクリプトに従い、仮想マシンZにサービスδの起動指示を送信する(ステップS340)、仮想マシンZのエージェントは、サービスδを起動する(ステップS345)。
【0081】
クラウド連携管理装置1bの手順実行部153bは、仮想マシンZ起動スクリプトの実行を終了すると、移行先手順に含まれる仮想マシンY起動スクリプトを読み出して実行する。
手順実行部153bは、仮想マシンY起動スクリプトに従い、クラウドフロントエンド装置3bに対して仮想マシンYの起動指示を送信する(ステップS350)。この仮想マシンの起動指示には、仮想マシンYのデフォルト台数「2」が起動数として設定される。手順実行部153bは、仮想マシンYの起動指示を送信した後、仮想マシンYとの通信が可能となるまで待ち状態となる。
【0082】
クラウドフロントエンド装置3bは、仮想マシンYの起動指示を受信すると、起動数分の仮想マシンYを起動すべき仮想化装置5bを選択するとともに、仮想マシンYに対してIPアドレスを割り当てる。仮想マシンYを起動すべき仮想化装置5bは、1台でもよく2台でもよい。クラウドフロントエンド装置3bは、選択した仮想化装置5bに、仮想マシンYの起動指示と割り当てたIPアドレスとを送信するとともに、割り当てたIPアドレスをクラウド連携管理装置1bに通知する。仮想マシンYの起動指示及びIPアドレスを受信した仮想化装置5bは、仮想マシンYを起動し、受信したIPアドレスを起動した仮想マシンYに設定すると、当該IPアドレスを送信元として設定した起動通知信号をブロードキャスト等により送信する(ステップS355)。クラウド連携管理装置1bの手順実行部153bは、クラウドフロントエンド装置3bから受信したIPアドレスが送信元として設定された起動通知信号を受信すると(ステップS360)、ステップS305において特定した記憶部11b内の上位システム構成情報に仮想マシンYのIPアドレスと、仮想マシンYの起動台数を書き込む。
【0083】
次に、手順実行部153bは、仮想マシンY起動スクリプトに従い、仮想マシンYにサービスγの設定ファイル更新指示を送信する(ステップS365)。設定ファイル更新指示に含まれるサービスγの設定ファイルには、上位システム構成情報に記述されている可変パラメータ指定に従って取得した仮想マシンZのIPアドレスが含まれる。仮想マシンYのエージェントは、設定ファイル更新指示に含まれる設定ファイルに従って、サービスγの設定ファイルを更新する(ステップS370)。
続いて、手順実行部153bは、仮想マシンY起動スクリプトに従い、仮想マシンYにサービスγの起動指示を送信する(ステップS375)、仮想マシンYのエージェントは、サービスγを起動する(ステップS380)。
【0084】
図19において、クラウド連携管理装置1bの手順実行部153bは、仮想マシンY起動スクリプトの実行を終了すると、移行先手順に含まれる仮想マシンX起動スクリプトを読み出して実行する。
手順実行部153bは、仮想マシンX起動スクリプトに従い、クラウドフロントエンド装置3bに対して仮想マシンXの起動指示を送信する(ステップS405)。この仮想マシンの起動指示には、仮想マシンXのデフォルト台数「2」が起動数として設定される。手順実行部153bは、仮想マシンXの起動指示を送信した後、仮想マシンXとの通信が可能となるまで待ち状態となる。
【0085】
クラウドフロントエンド装置3bは、仮想マシンXの起動指示を受信すると、起動数分の仮想マシンXを起動すべき仮想化装置5bを選択するとともに、仮想マシンXに対してIPアドレスを割り当てる。クラウドフロントエンド装置3bは、選択した仮想化装置5bに、仮想マシンXの起動指示と割り当てたIPアドレスとを送信するとともに、割り当てたIPアドレスをクラウド連携管理装置1bに通知する。仮想マシンXの起動指示及びIPアドレスを受信した仮想化装置5bは、仮想マシンXを起動し、受信したIPアドレスを起動した仮想マシンXに設定すると、当該IPアドレスを送信元として設定した起動通知信号をブロードキャスト等により送信する(ステップS410)。クラウド連携管理装置1bの手順実行部153bは、クラウドフロントエンド装置3bから受信したIPアドレスが送信元として設定された起動通知信号を受信すると(ステップS415)、ステップS305において特定した記憶部11b内の上位システム構成情報に仮想マシンX(サービスα及びサービスβ)のIPアドレスと、仮想マシンXの起動台数を書き込む。
【0086】
次に、手順実行部153bは、仮想マシンX起動スクリプトに従い、仮想マシンXにサービスαの設定ファイル更新指示を送信する(ステップS420)。仮想マシンXのエージェントは、受信した設定ファイル更新指示に含まれる設定ファイルに従って、サービスβの設定ファイルを更新する(ステップS425)。続いて、手順実行部153bは、仮想マシンX起動スクリプトに従い、仮想マシンXにサービスβの起動指示を送信する(ステップS430)、仮想マシンXのエージェントは、サービスβを起動する(ステップS435)。
【0087】
さらに、手順実行部153bは、仮想マシンX起動スクリプトに従い、仮想マシンXにサービスαの設定ファイル更新指示を送信する(ステップS440)。設定ファイル更新指示に含まれるサービスαの設定ファイルには、上位システム構成情報に記述されている可変パラメータ指定に従って取得した仮想マシンYのIPアドレスが含まれる。仮想マシンXのエージェントは、受信した設定ファイル更新指示に含まれる設定ファイルに従って、サービスαの設定ファイルを更新する(ステップS445)。続いて、手順実行部153bは、仮想マシンX起動スクリプトに従い、仮想マシンXにサービスαの起動指示を送信する(ステップS450)、仮想マシンXのエージェントは、サービスαを起動する(ステップS455)。
【0088】
クラウド連携管理装置1bのクラウド間情報更新部142bは、クラウド連携管理装置1aのID及び上位システムWのIDと、上位システム構成情報に書き込んだ仮想マシンX,Y,ZのIPアドレス、及び、更新された仮想マシンX、Y、Zの起動台数を他のクラウド連携管理装置1に上位システム構成更新情報として送信する。他のクラウド連携管理装置1のクラウド間情報更新部142は、受信した上位システム構成更新情報により、クラウド連携管理装置1aのID及び上位システムWのIDに対応して記憶部11に記憶されている上位システム更新情報を更新する。
【0089】
続いてクラウド連携管理装置1bの手順実行部153bは、移行先手順に従って、DNS更新を行なう(ステップS460)。手順実行部153bは、DNSサーバ8に対して、上位システムXのURLなどのウェブアドレスと、仮想マシンXのIPアドレスの登録指示を出力する。DNSサーバ8は、受信した上位システムXのウェブアドレスと、仮想マシンXのIPアドレスとを対応付けて記憶する。これにより、DNSサーバ8は、ユーザ端末9から上位システムXのウェブアドレスを受信した場合、仮想マシンXのIPアドレスを返送する。
【0090】
なお、上位システムが用いるユーザ設定のデータベースの内容は、通常、なんらかの方法によってクラウド外の装置等にバックアップされていることがほとんどである。そのため、上位システムにおいてデータベースとして動作する仮想マシンに記憶させるデータの設定内容は、この別途保存しておいたバックアップデータから取得して設定する。
【0091】
上記手順において、移行元のクラウド連携管理装置1は、全ての仮想マシンが停止した後に移行先のクラウド連携管理装置1に終了を通知しているが、最初の仮想マシンを停止した時点で移行先のクラウド連携管理装置1に終了を通知してもよい。これは、何れかの仮想マシンが停止した時点で移行元クラウドにおける上位システムの提供が停止するためである。
【0092】
移行手順は、リソースが不足した場合のほか、例えば、激甚災害などが発生し、上位システムを提供しているクラウドサービス提供システムを構成する全てあるいは広範囲の装置がダメージを負った場合に、他のクラウドにおいて上位システムをリカバリするために使用することができる。このような場合、移行元からの通知が移行先クラウドに送信されない場合があるため、上位システム手順データの移行先手順は、移行元側からの終了通知待ち開始から所定時間が経過し、終了通知待ちタイマがタイムアウトすると、次の手順を行なうようにする。
【0093】
起動手順、終了手順はそれぞれ、上述した移行手順における移行先手順、移行元手順と同様であるが、移行先リストの提示は行わない。また、起動手順、終了手順には、移行先手順、移行元手順におけるクラウド間の通知の送受信や、クラウド間の通知待ち手順は含まれない。
【0094】
なお、クラウドフロントエンド装置3は、1つの仮想マシンに対して外向IPアドレスと内向IPアドレスの2つのIPアドレス割り当ててもよい。この場合、クラウド連携管理装置1の構成制御部15は、外向IPアドレスをDNSサーバ8に登録し、他の仮想マシンには内向IPアドレスを通知する。これにより、ユーザ端末9はDNSサーバ8から通知された外向IPアドレスを用いてクラウドフロントエンド装置3にアクセスし、クラウドフロントエンド装置3において外向IPアドレスから内向IPアドレスへ変換を行ってユーザ端末9からのアクセスを振り分けるようにする。一方、仮想マシン間では内向IPアドレスを用いて直接通信を行う。
【0095】
図20及び図21は、上位システムのクラウド間スケールアウト手順を示す図である。以下では、スケールアウト元クラウドをクラウドA、スケールアウト先クラウドをクラウドB、スケールアウト対象の仮想マシンをクラウドA内において起動している仮想マシンから構成される上位システムVの仮想マシンPとして説明する。仮想マシンPは、分散処理ミドルウェアであり、他の仮想マシンPと相互動作するため、各仮想マシンPにおいて、他の仮想マシンPのIPアドレスが必要となる。
【0096】
図20において、クラウドAに属するクラウド連携管理装置1aの管理IF部12aは、クラウド間スケールアウト指示と、スケールアウトを行なう上位システムVのIDとを含んだコマンドを受信し、構成制御部15aへ出力する(ステップS505)。構成制御部15aのリスト提示部151aは、コマンドに設定されている上位システムVのIDをキーにして記憶部11aに記憶されている関連上位システム構成情報を特定し、特定した関連上位システム構成情報から、スケールアウト先となりうる他クラウドのクラウド連携管理装置1のIDを読み出す。リスト提示部151aは、読み出した他クラウド連携管理装置1のIDのリスト、または、これらの他クラウド連携管理装置1のIDによって特定されるクラウドの名称のリストをスケールアウト先候補情報として管理IF部12aに出力する。管理IF部12aは、リスト提示部151aから受信したスケールアウト先候補情報をディスプレイに出力する(ステップS510)。読み出した他クラウド連携管理装置1のIDに優先度が付加されている場合は、その優先度順に表示するなど、各スケールアウト先クラウドの優先度の情報も併せて出力する。
【0097】
ユーザは、出力されたスケールアウト先候補情報の中からスケールアウト先のクラウドBを選択し、選択したクラウドBを特定するクラウド選択情報を入力するとともに、スケールアウト対象の仮想マシンPと、クラウドAにおける仮想マシンPの追加起動数、及び、クラウドBにおける仮想マシンPの起動数とを入力する。クラウド連携管理装置1aの管理IF部12aは、入力されたこれらの情報をスケールアウト指示情報として構成制御部15aに出力する(ステップS515)。
【0098】
構成制御部15aの指示出力部152aは、上位システムVのIDと、スケールアウト指示情報と、スケールアウト元手順の実行指示とを手順実行部153aに出力する(ステップS520)。さらに、指示出力部152aは、スケールアウト指示情報内のクラウド選択情報によりクラウドBが選択されたことを検出すると、クラウドBに属するクラウド連携管理装置1bのIDをキーにして、他クラウド情報からクラウド連携管理装置1bのIPアドレスを読み出す。指示出力部152aは、読み出したIPアドレスをあて先として、上位システムVのID、及び、自クラウド連携管理装置1aのIDと、スケールアウト先手順の実行指示とを送信する(ステップS525)。スケールアウト先手順実行指示には、スケールアウト対象の仮想マシンPのIDと、クラウドBにおける仮想マシンPの起動数とが含まれる。
【0099】
クラウド連携管理装置1aの手順実行部153aは、自クラウド連携管理装置1aのIDに対応して記憶部11aに記憶されている上位システム手順データの中から、上位システムVのIDが設定されているスケールアウト手順の上位システム手順データを特定する。手順実行部153aは、特定した上位システム手順データからスケールアウト元手順を読み出すと(ステップS530)、この読み出したスケールアウト元手順の実行を開始する(ステップS535)。ここでは、図8に示す上位システム手順データからスケールアウト元手順が読み出されたものとして説明する。
【0100】
一方、クラウド連携管理装置1bの手順実行部153bは、連携IF部13bを介して、クラウド連携管理装置1aから送信された上位システムVのID、及び、クラウド連携管理装置1aのIDと、スケールアウト先手順の実行指示とを受信する。クラウド連携管理装置1bの手順実行部153bは、クラウド連携管理装置1aのIDに対応して記憶部11bに記憶されている上位システム手順データの中から、上位システムVのIDが設定されているスケールアウト手順の上位システム手順データを特定する。手順実行部153bは、この特定した上位システム手順データからスケールアウト先手順を読み出すと(ステップS540)、この読み出したスケールアウト先手順の実行を開始し(ステップS545)、スケールアウト元からの仮想マシン起動受信待ち状態となる(ステップS550)。ここでは、図8に示す上位システム手順データからスケールアウト先手順が読み出されたものとして説明する。
【0101】
クラウド連携管理装置1aの手順実行部153aは、スケールアウト元手順に従い、スケールアウト先クラウドであるクラウドBに属するクラウド連携管理装置1bに対して仮想マシン起動開始信号を送信する(ステップS555)。
【0102】
図21において、クラウド連携管理装置1aの手順実行部153aは、クラウドフロントエンド装置3aに対して仮想マシンPの起動指示を送信する(ステップS605)。この仮想マシンの起動指示には、仮想マシンPの追加起動数が設定される。手順実行部153aは、仮想マシンPの起動指示を送信した後、仮想マシンPとの通信が可能となるまで待ち状態となる。
【0103】
クラウドフロントエンド装置3a及び仮想化装置5aは、図18のステップS350〜S360と同様の処理を行なう(ステップS610、S615)。すなわち、クラウドフロントエンド装置3aは、仮想マシンPを起動する対象として選択した仮想化装置5aに対して、仮想マシンPの起動指示と割り当てたIPアドレスとを送信するとともに、割り当てたIPアドレスをクラウド連携管理装置1aに通知する。仮想化装置5aは、仮想マシンPを起動して受信したIPアドレスを設定し、起動通知信号を送信する。クラウド連携管理装置1aの手順実行部153aは、起動通知信号を受信すると、上位システムVのIDと対応づけて記憶部11aに記憶されている自クラウドの上位システム構成情報に、仮想マシンPのIPアドレスを書き込むとともに、起動台数を更新する。クラウド間情報更新部142aは、クラウド連携管理装置1aのID及び上位システムVのIDと、仮想マシンPのIPアドレス及び起動台数とを他のクラウド連携管理装置1に通知する。クラウド連携管理装置1bを含む他のクラウド連携管理装置1のクラウド間情報更新部142は、クラウド連携管理装置1aのID及び上位システムVのIDに対応した上位システム構成情報に、受信した仮想マシンPのIPアドレス及び起動台数を書き込む。
【0104】
手順実行部153aは、スケールアウト元手順に従い、クラウド連携管理装置1bに仮想マシン立ち上げ完了を通知すると(ステップS620)、スケールアウト先からの仮想マシン立ち上げ完了通知の受信待ち状態となる。
【0105】
一方、図20において、クラウド連携管理装置1bの手順実行部153bは、スケールアウト先手順に従い、スケールアウト元からの仮想マシン起動開始信号待ち状態となっており、ステップS560においてクラウド連携管理装置1aから送信された仮想マシン起動開始信号を受信する(ステップS560)。
【0106】
図21において、クラウド連携管理装置1b、クラウドフロントエンド装置3b、及び、仮想化装置5bは、上述したステップS605〜S615におけるクラウド連携管理装置1a、クラウドフロントエンド装置3a、及び、仮想化装置5aと同様の処理を行なう(ステップS630〜S645)。これにより、仮想化装置5b上に仮想マシンPが起動され、クラウド連携管理装置1bはクラウド連携管理装置1aに仮想マシン立ち上げ完了通知を送信した後、スケールアウト元からの仮想マシン立ち上げ完了通知の受信待ち状態となる。なお、ステップS645においては、クラウド連携管理装置1bの手順実行部153bは、クラウド連携管理装置1aのID及び上位システムVのIDと対応づけて記憶部11bに記憶されている上位システム構成情報に、仮想マシンPのIPアドレスを書き込むとともに、起動台数を更新する。そして、クラウド間情報更新部142bは、クラウド連携管理装置1aのID及び上位システムVのIDと、クラウドBの仮想マシンPのIPアドレス及び起動台数とを他のクラウド連携管理装置1に通知する。クラウド連携管理装置1aを含む他のクラウド連携管理装置1のクラウド間情報更新部142は、クラウド連携管理装置1aのID及び上位システムVのIDに対応した上位システム構成情報に、受信した仮想マシンPのIPアドレス及び起動台数を書き込む。
【0107】
クラウド連携管理装置1aの手順実行部153aは、スケールアウト先のクラウド連携管理装置1bから仮想マシン立ち上げ完了通知を受信すると、スケールアウト元手順に従い、仮想マシンPが依存している仮想マシンQに対してサービスζの設定ファイル更新指示を送信する(ステップS655)。設定ファイル更新指示に含まれるサービスζの設定ファイルには、上位システム構成情報から取得した全ての仮想マシンP、つまり、クラウドA及びクラウドBにおいて起動されている仮想マシンPのIPアドレスが含まれる。仮想マシンQのエージェントは、受信した設定ファイル更新指示に含まれる設定ファイルに従って、内部に保持しているサービスζの設定ファイルを更新する(ステップS660)。
【0108】
続いて、クラウド連携管理装置1aの手順実行部153aは、スケールアウト元手順に従い、仮想マシンPに対してサービスεの設定ファイル更新指示を送信する(ステップS665)。設定ファイル更新指示に含まれるサービスεの設定ファイルには、上位システム構成情報から取得した仮想マシンQのIPアドレス及び全仮想マシンPのIPアドレスが含まれる。仮想マシンPのエージェントは、受信した設定ファイル更新指示に含まれる設定ファイルに従って、内部に保持しているサービスεの設定ファイルを更新する(ステップS670)。
手順実行部153aは、スケールアウト元手順に従い、クラウド連携管理装置1bにスケールアウト元の設定完了を通知すると、スケールアウト先からの設定完了受信待ち状態となる(ステップS675)。
【0109】
クラウド連携管理装置1bの手順実行部153bは、スケールアウト先からの仮想マシン立ち上げ完了通知を受信すると、スケールアウト先手順に従い、仮想マシンPに対してサービスεの設定ファイル更新指示を送信する(ステップS685)。設定ファイル更新指示に含まれるサービスεの設定ファイルには、上位システム構成情報から取得した仮想マシンQのIPアドレス及び全仮想マシンPのIPアドレスが含まれる。仮想マシンPのエージェントは、受信した設定ファイル更新指示に含まれる設定ファイルに従って、内部に保持しているサービスεの設定ファイルを更新する(ステップS690)。
【0110】
手順実行部153bは、スケールアウト先手順に従い、クラウド連携管理装置1aにスケールアウト元の設定完了を通知し、スケールアウト先手順を終了する(ステップS695)。
【0111】
そして、クラウド連携管理装置1aの手順実行部153aは、スケールアウト先からの設定完了通知を受信すると、スケールアウト元手順に従い、仮想マシンQに対して、配下の仮想マシンPも併せたサービスの停止指示を送信する(ステップS700)。仮想マシンQのエージェントは、サービスζの設定ファイルに記述されている仮想マシンPのアドレスを用いて、全ての仮想マシンPにサービスの停止を指示し、さらに、仮想マシンQ内のサービスζを停止する。仮想マシンPは、サービスεを停止する(ステップS705)。
【0112】
その後、クラウド連携管理装置1aの手順実行部153aは、スケールアウト元手順に従い、仮想マシンQに対して、配下の仮想マシンPも併せたサービスの起動指示を送信する(ステップS710)。仮想マシンQのエージェントは、全ての仮想マシンPにサービスの起動を指示し、さらに、仮想マシンQ内のサービスζを起動する。仮想マシンPは、サービスεを起動する(ステップS715)。
【0113】
なお、上記手順においては、ユーザにより入力されたクラウド選択情報、スケールアウト指示情報等に基づいて、クラウド連携管理装置1aの指示出力部152aからクラウド連携管理装置1bの手順実行部153bにクラウド間移行先手順の実行指示、スケールアウト先手順の実行指示を出力しているが、別の実施形態として、例えば、クラウド連携管理装置1bの管理IF12bが、クラウド連携管理装置1bに備えられた入力手段、あるいは、ネットワーク7を介して接続される他の装置から、ユーザにより入力された指示を直接受け、手順実行部153bにクラウド間移行先手順、スケールアウト先手順の実行を指示してもよい。
【0114】
以上説明した本実施の形態のクラウド間リソース連携システムは、以下の特徴を有する。
【0115】
(1)上位システムの手順の記述ならびに交換及び実行が可能。
クラウド間リソース連携システムは、上位システム独自の手順を記述した上位システム手順データをクラウド間で交換し実行する。手順には、上位システムの動的情報、すなわち、仮想マシンやサービスの起動、停止、設定変更等であり、各クラウドにおける動作を記述する。
【0116】
(2)上位システムの構成情報の記述及び交換が可能。
クラウド間リソース連携システムは、上位システムの構成を記述した上位システム構成情報をクラウド間で交換する。この上位システム構成情報は、上位システムの静的情報な情報、すなわち、仮想マシンへのサービスの配置、必要なハードウェアスペック、基本的なネットワーク設定などであり、各クラウドによらない統一した記述となる。
【0117】
(3)上位システムの構成に関する更新を交換可能。
クラウド間リソース連携システムは、上位システム構成情報を定期的に交換し、また、更新があった場合にはその更新内容を通知するため、上位システムの構成に対する変更などの更新情報をクラウド間で交換可能である。
【0118】
上記により、クラウド間において上位システムの移行を行なう場合にも、既存の(クラウドを用いない)冗長化システムとは異なり、別途設備投資を行なう必要がない。また、リソース不足のために移行を行なう際の移行先クラウドや、激甚災害等により故障したクラウドシステムをリカバリできるクラウドを利用者に提示することが可能となる。この場合、移行先(リカバリ先)を選択する指標として、仮想マシンの種類、仮想マシン上で稼動可能なOSやアプリケーションの種類、CPUやディスクの空き状況、料金などを用いることができる。そして、移行先(リカバリ先)のクラウドが決定した後は、リカバリ処理が行われる。
【0119】
また、本実施の形態のクラウド間リソース連携システムは、クラウドを跨ってスケールアウトすることが可能である。
この場合、どの仮想マシンをスケールアウトするかを利用者が予め記述した上位システム構成情報に基づいてクラウド連携管理装置が決定する。また、その際の上位システム構成情報の記述条件としてスケールアウト可/不可、スケールアウトした場合の依存関係(スケールアウト先のインスタンスを参照するための設定条件の変更)などを柔軟に変更することができる。また、スケールアウト先のクラウド連携管理装置が、上位システム手順データを読み取り、上位システム構成情報に基づいてスケールアウトを実行する。その際にインスタンス間の依存関係を元に設定を変更するため、スケールアウト元のクラウド連携管理装置と情報(IPアドレス/ポート番号等)の交換や同期処理のやりとりを行う。
【0120】
本実施形態によれば、複数のクラウドを連携させることにより、複数クラウド間における相互運用性及び移行容易性を高めることが可能となる。具体的な利用例としては、クラウドにおけるリソース不足や障害時に、別クラウドにおいて上位システムを復旧させるクラウド間移行や、クラウドにおけるリソース不足時に別クラウドのリソースを使用してシステムを拡張するスケールアウトを挙げることができる。
【0121】
上述のクラウド連携管理装置1、クラウドフロントエンド装置3、仮想化装置5、DNSサーバ8及びユーザ端末9は、内部にコンピュータシステムを有している。そして、クラウド連携管理装置1の構成管理部14及び構成制御部15、クラウドフロントエンド装置3、仮想化装置5、DNSサーバ8ならびにユーザ端末9の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
【0122】
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0123】
なお、本発明は、上記において説明した実施形態に限定されるものではなく、その主旨を逸脱しない範囲において種々変更可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【符号の説明】
【0124】
1…クラウド連携管理装置
11…記憶部(制御元記憶部、制御先記憶部)
12…管理IF部
13…連携IF部
14…構成管理部
141…クラウド内情報更新部
142…クラウド間情報更新部(制御元クラウド間情報更新部、制御先クラウド間情報更新部)
143…関連上位システム情報更新部
15…構成制御部
151…リスト提示部
152…指示出力部
153…手順実行部(制御元手順実行部、制御先手順実行部)
16…クラウド操作IF部
17…仮想マシン操作IF部
3…クラウドフロントエンド装置
5…仮想化装置
8…DNSサーバ
9…ユーザ端末

【特許請求の範囲】
【請求項1】
仮想化装置及びクラウド連携管理装置を有する複数のクラウドシステムをネットワークを介して接続してなるリソース連携システムであって、
リソース制御元の前記クラウド連携管理装置は、
上位システムを構成する仮想マシンの停止または起動の手順を示す上位システム手順データを記憶する制御元記憶部と、
前記制御元記憶部に記憶されている前記上位システム手順データを他の前記クラウド連携管理装置に送信する制御元クラウド間情報更新部と、
リソース制御対象の上位システムをリソース制御先の前記クラウド連携管理装置に通知する指示出力部と、
前記リソース制御対象の上位システムに対応した前記上位システム手順データを前記制御元記憶部から読み出し、読み出した前記上位システム手順データが示すリソース制御元の手順に従って当該上位システムを構成する前記仮想マシンを自クラウドシステム内の前記仮想化装置上に起動する、あるいは、自クラウドシステム内の前記仮想化装置に起動されている、当該上位システムを構成する前記仮想マシンを停止する制御元手順実行部とを備え、
リソース制御先の前記クラウド連携管理装置は、
前記上位システム手順データを記憶する制御先記憶部と、
リソース制御元の前記クラウド連携管理装置から前記上位システム手順データを受信して前記制御先記憶部に書き込む制御先クラウド間情報更新部と、
リソース制御元の前記クラウド連携管理装置から通知された前記リソース制御対象の上位システムにより前記制御先記憶部に記憶されている前記上位システム手順データを特定し、特定された前記上位システム手順データが示すリソース制御先の手順に従って当該上位システムを構成する前記仮想マシンを自クラウドシステム内の前記仮想化装置上に起動する制御先手順実行部とを備える、
ことを特徴とするリソース連携システム。
【請求項2】
前記制御元記憶部は、複数の仮想マシンによる上位システムの構成を示す上位システム構成情報をさらに記憶し、
前記制御元クラウド間情報更新部は、前記制御元記憶部に記憶されている前記上位システム構成情報を前記他のクラウド連携管理装置に送信し、
前記制御元手順実行部は、前記リソース制御対象の上位システムに対応した前記上位システム構成情報を前記制御元記憶部から読み出し、読み出した前記上位システム構成情報が示す仮想マシンの依存関係に従って停止すべき仮想マシンの順序を決定し、決定した順序に従って自クラウド内の前記仮想化装置に起動されている前記仮想マシンを停止し、
前記制御先クラウド間情報更新部は、リソース制御元の前記クラウド連携管理装置から前記上位システム構成情報を受信して前記制御先記憶部に書き込み、
前記制御先手順実行部は、前記リソース制御対象の上位システムに対応した前記上位システム構成情報を前記制御先記憶部から読み出し、読み出した前記上位システム構成情報が示す仮想マシンの依存関係に従って起動すべき仮想マシンの順序を決定し、決定した順序に従って自クラウド内の前記仮想化装置上に前記仮想マシンを起動する、
ことを特徴とする請求項1に記載のリソース連携システム。
【請求項3】
前記第1の手順実行部及び前記第2の手順実行部は、起動した前記仮想マシンのアドレス情報を、前記上位システムにおいて依存関係を有する他の仮想マシンに設定する、
ことを特徴とする請求項1または請求項2に記載のリソース連携システム。
【請求項4】
前記上位システム手順データは、前記リソース制御対象の上位システムを構成する前記仮想マシンの起動または停止、前記仮想マシンが提供するサービスの起動または停止、前記サービスの設定ファイル更新、前記仮想マシンに対する外部ストレージの割り当てまたは割り当て解除、リソース制御元またはリソース制御先への通知の送信、リソース制御元またはリソース制御先からの通知待ちの処理のうち1以上からなる手順を示す、
ことを特徴とする請求項1から請求項3のいずれかの項に記載のリソース連携システム。
【請求項5】
前記制御元記憶部は、他の前記クラウドシステムにおいて起動可能な仮想マシンの種類を記憶し、
前記リソース制御元のクラウド連携管理装置は、前記リソース制御対象の上位システムを構成する前記仮想マシンを起動可能な他の前記クラウドシステムのリストを前記制御元記憶部から読み出して出力するリスト出力部をさらに備え、
前記指示出力部は、前記リスト出力部が出力した候補の中から選択された他クラウドシステムのクラウド連携管理装置をリソース制御先として前記リソース制御対象の上位システムを通知する、
ことを特徴とする請求項1から請求項4のいずれかの項に記載のリソース連携システム。
【請求項6】
前記制御元記憶部は、自クラウドシステム及び他クラウドシステムの料金の情報を記憶しており、
前記リソース制御元のクラウド連携管理装置は、前記制御元記憶部に記憶されている自クラウドシステム及び他クラウドシステムの料金の情報を参照して自クラウドシステムと料金の差が所定以内の他クラウドシステムを選択し、選択した他クラウドシステムをリソース制御先の候補として出力するリスト出力部をさらに備え、
前記指示出力部は、前記リスト出力部が出力した候補の中から選択された他クラウドシステムのクラウド連携管理装置をリソース制御先として前記リソース制御対象の上位システムを通知する、
ことを特徴とする請求項1から請求項4のいずれかの項に記載のリソース連携システム。
【請求項7】
前記クラウド連携管理装置は、
自クラウドシステム内の前記仮想化装置のリソース状態を取得し、前記リソース制御元の前記クラウド連携管理装置に通知する通知部を備え、
前記リソース制御元のクラウド連携管理装置は、他の前記クラウド連携管理装置から受信したリソース状態により示されるリソース空き状態に基づいて選択した他クラウドシステムをリソース制御先の候補として出力するリスト出力部をさらに備え、
前記指示出力部は、前記リスト出力部が出力した候補の中から選択された他クラウドシステムのクラウド連携管理装置をリソース制御先として前記リソース制御対象の上位システムを通知する、
ことを特徴とする請求項1から請求項4のいずれかの項に記載のリソース連携システム。
【請求項8】
仮想化装置及びクラウド連携管理装置を有する複数のクラウドシステムをネットワークを介して接続してなるリソース連携システムにおけるリソース連携方法であって、
リソース制御元の前記クラウド連携管理装置において、
制御元クラウド間情報更新部が、上位システムを構成する仮想マシンの停止または起動の手順を示す上位システム手順データを制御元記憶部から読み出し、他の前記クラウド連携管理装置に送信する制御元クラウド間情報更新過程と、
リソース制御先の前記クラウド連携管理装置において、
制御先クラウド間情報更新部が、リソース制御元の前記クラウド連携管理装置から前記上位システム手順データを受信して制御先記憶部に書き込む制御先クラウド間情報更新過程とを有する一方、
リソース制御元の前記クラウド連携管理装置において、
指示出力部が、リソース制御対象の上位システムをリソース制御先の前記クラウド連携管理装置に通知する指示出力過程と、
制御元手順実行部が、前記リソース制御対象の上位システムに対応した前記上位システム手順データを前記制御元記憶部から読み出し、読み出した前記上位システム手順データが示すリソース制御元の手順に従って当該上位システムを構成する前記仮想マシンを自クラウドシステム内の前記仮想化装置上に起動する、あるいは、自クラウドシステム内の前記仮想化装置に起動されている、当該上位システムを構成する前記仮想マシンを停止する制御元手順実行過程と、
リソース制御先の前記クラウド連携管理装置において、
制御先手順実行部が、リソース制御元の前記クラウド連携管理装置から通知された前記リソース制御対象の上位システムにより前記制御先記憶部に記憶されている前記上位システム手順データを特定し、特定された前記上位システム手順データが示すリソース制御先の手順に従って当該上位システムを構成する前記仮想マシンを自クラウドシステム内の前記仮想化装置上に起動する制御先手順実行過程とを有する、
ことを特徴とするリソース連携方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2011−186637(P2011−186637A)
【公開日】平成23年9月22日(2011.9.22)
【国際特許分類】
【出願番号】特願2010−49504(P2010−49504)
【出願日】平成22年3月5日(2010.3.5)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成21年度 総務省、「セキュアクラウドネットワーキング技術の研究開発」委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)