(57)【特許請求の範囲】
【請求項１】
外部装置に接続されて当該外部装置にデータ処理サービスを提供するアプリケーションシステムが構築されている第一のデータセンタと、前記第一のデータセンタと同等の構成を有する第二のデータセンタとを少なくとも備えているデータセンタシステムの管理方法であって、
前記アプリケーションシステムは互いに通信可能に接続されている複数の構成要素を有し、
前記第一のデータセンタの前記アプリケーションシステムが有する前記複数の構成要素の中から、前記第二のデータセンタに移動する候補としての移動候補となる第一の構成要素を選択するステップと、
前記アプリケーションシステムに含まれる前記複数の構成要素間の通信に関する必要条件を示す指標である結合度を、前記複数の構成要素の各々について設定するステップと、
前記移動候補である前記第一の構成要素について設定されている前記結合度と、前記第一のデータセンタと前記第二のデータセンタとの間の通信回線の通信状況に関する情報であるデータセンタ間通信回線情報とを比較評価するステップと、
前記比較評価の結果、前記結合度が前記データセンタ間通信回線情報より優れていると判定された場合に、前記第一の構成要素と共に前記第二のデータセンタに移動する必要のある前記構成要素である第二の構成要素を決定し、新たな移動候補として選定するステップと、
前記第一のデータセンタの前記アプリケーションシステムが有する前記複数の構成要素の一部を前記第二のデータセンタに移動した後に、前記第一のデータセンタと前記第二のデータセンタとの間での通信回線状況の変化を前記データセンタ間通信回線情報として検出するステップと、
変化後の前記データセンタ間通信回線情報に関して、前記アプリケーションシステムにおいて、前記第一のデータセンタにある前記複数の構成要素と前記第二のデータセンタにある前記複数の構成要素との間に設定されている前記結合度を維持できるかどうかを評価するステップと、
前記結合度を維持できないと判定した場合に、前記第二のデータセンタにある前記アプリケーションシステムの前記第一及び第二の構成要素を、前記第一のデータセンタに移動することができるかどうかを、前記第一のデータセンタにおいて前記アプリケーションシステムに含まれる前記複数の構成要素についてのリソース条件及び前記結合度を用いて判定するステップと、
前記第一のデータセンタに移動することができないと判定した場合に、前記第一のデータセンタ及び前記第二のデータセンタ以外の他のデータセンタであって、当該判定された前記第一及び第二の構成要素に関する結合度を維持可能な回線状況であるデータセンタを選択し、当該データセンタに前記第一及び第二の構成要素の受け入れ可否判定の実施を依頼するステップと、
を含むデータセンタシステムの管理方法。
【請求項２】
前記結合度は、前記通信回線についての通信帯域、及び応答速度が含まれている、請求項１に記載のデータセンタシステムの管理方法。
【請求項３】
前記アプリケーションシステムの前記複数の構成要素と、当該複数の構成要素を移動することができる範囲との対応付けをそれぞれ示す重み情報を前記第一のデータセンタ及び前記第二のデータセンタについて設定するステップと、
前記移動候補とされた前記第一及び第二の構成要素について、前記第一のデータセンタについて設定されている重み情報を基に前記第一及び第二の構成要素の前記第二のデータセンタへの移動の可否を決定するステップと、をさらに含む、請求項１に記載のデータセンタシステムの管理方法。
【請求項４】
前記移動候補に含まれる一つ以上の前記構成要素間の結合度と、前記第二のデータセンタ内にある各前記複数の構成要素間の通信回線の通信状況に関する情報である構成要素間通信回線情報とを比較評価するステップと、
前記比較評価の結果、前記第二のデータセンタ内の前記複数の構成要素間通信回線情報が前記移動候補である前記第一及び第二の構成要素間で設定されている前記結合度より優れているかどうかを評価するステップと、をさらに含む、請求項１に記載のデータセンタシステムの管理方法。
【請求項５】
前記アプリケーションシステムの前記複数の構成要素のうち、当該アプリケーションシステム内で行われる通信についてのサービスを提供する通信サービス装置が有するべきサービス内容に関する要件を示すサービス要件情報を、前記通信サービス装置に関して設定するステップと、
前記移動候補とされている前記第一及び第二の構成要素が、前記第二のデータセンタにおいて前記第一のデータセンタで受けていたサービス内容と同等の内容を有する前記サービス要件情報を持つ前記通信サービス装置を利用可能かどうか評価するステップと、をさらに含む、請求項１に記載のデータセンタシステムの管理方法。
【請求項６】
前記通信サービス装置の前記サービス内容には、負荷分散機能、ファイアウォール機能、あるいは侵入検知機能を含む、通信制御ポリシー又はセキュリティポリシーを通信に対して適用する機能が含まれている、請求項５に記載のデータセンタシステムの管理方法。
【請求項７】
前記第二のデータセンタ内にある各前記複数の構成要素間の通信回線の通信状況に関する情報である構成要素間通信回線情報が、前記移動候補である前記第一及び第二の構成要素について設定されている前記結合度より優れており、且つ、前記移動候補である前記第一及び第二の構成要素が前記第一のデータセンタで受けていたサービス内容と同等の内容を有する前記サービス要件情報を持つ前記通信サービス装置を利用可能であると判定された場合に、前記移動候補である前記第一及び第二の構成要素を前記第二のデータセンタに受け入れ可能であると判定するステップと、
前記受け入れ可能であるという判定結果を前記第二のデータセンタから前記第一のデータセンタに通知するステップと、をさらに含む、
請求項５に記載のデータセンタシステムの管理方法。
【請求項８】
前記アプリケーションシステムの前記複数の構成要素間で設定されている前記結合度を、前記複数の構成要素間の通信回線における実際の通信状況をもとに算出するステップ、を含む請求項１に記載のデータセンタシステムの管理方法。
【請求項９】
外部装置に接続されて当該外部装置にデータ処理サービスを提供するアプリケーションシステムが構築されている第一のデータセンタと、前記第一のデータセンタと同等の構成を有する第二のデータセンタとを備えているデータセンタシステムであって、
前記アプリケーションシステムは互いに通信可能に接続されている複数の構成要素を有し、
各前記データセンタにおいて各前記複数の構成要素と通信可能に接続されて前記アプリケーションシステムを管理する管理装置が、
前記第一のデータセンタの前記アプリケーションシステムが有する前記複数の構成要素の中から、前記第二のデータセンタに移動する候補としての第一の移動候補となる第一の構成要素を選択するステップと、
前記アプリケーションシステムに含まれる前記複数の構成要素間の通信に関する必要条件を示す指標である結合度を、前記複数の構成要素の各々について設定するステップと、
前記アプリケーションシステムの前記複数の構成要素と、当該複数の構成要素を移動することができる範囲との対応付けをそれぞれ示す重み情報を前記第一のデータセンタ及び前記第二のデータセンタについて設定し、
前記アプリケーションシステムの前記複数の構成要素のうち、当該アプリケーションシステム内で行われる通信についてのサービスを提供する通信サービス装置が有するべきサービス内容に関する要件を示すサービス要件情報を、前記通信サービス装置に関して設定し、
前記第一の移動候補である前記第一の構成要素について設定されている前記結合度と、前記第一のデータセンタと前記第二のデータセンタとの間の通信回線の通信状況に関する情報であるデータセンタ間通信回線情報とを比較評価し、
前記比較評価の結果、前記結合度が前記データセンタ間通信回線情報より優れていると判定された場合に、前記第一の構成要素と共に前記第二のデータセンタに移動する必要のある前記構成要素である第二の構成要素を決定し、第二の移動候補として選定し、
前記第一及び第二の移動候補とされた前記第一及び第二の構成要素について、前記第一のデータセンタについて設定されている重み情報を基に、前記第二のデータセンタへ移動することができる前記第一及び第二の構成要素を第三の移動候補として決定し、
前記第三の移動候補に含まれる一つ以上の前記構成要素間の結合度と、前記第二のデータセンタ内にある各前記構成要素間の通信回線の通信状況に関する情報である構成要素間通信回線情報とを比較評価し、
前記比較評価の結果、前記第二のデータセンタ内の前記構成要素間通信回線情報が前記第三の移動候補について設定されている前記結合度より優れているかどうかを評価し、
前記第三の移動候補とされている前記第一及び第二の構成要素が、前記第二のデータセンタにおいて前記第一のデータセンタで受けていたサービス内容と同等の内容を有する前記サービス要件情報を持つ前記通信サービス装置を利用可能かどうか評価し、
前記第二のデータセンタ内にある各前記複数の構成要素間の通信回線の通信状況に関する情報である構成要素間通信回線情報が前記第三の移動候補について設定されている前記結合度より優れており、且つ、前記第三の移動候補である前記第一及び第二の構成要素が前記第一のデータセンタで受けていたサービス内容と同等の内容を有する前記サービス要件情報を持つ前記通信サービス装置を利用可能であると判定された場合に、前記第三の移動候補である前記第一及び第二の構成要素を前記第二のデータセンタに受け入れ可能であると判定し、前記第三の移動候補である前記第一及び第二の構成要素を前記第一のデータセンタから前記第二のデータセンタに移動させ、
前記第一のデータセンタの前記アプリケーションシステムが有する前記複数の構成要素の一部を前記第二のデータセンタに移動した後に、前記第一のデータセンタと前記第二のデータセンタとの間での通信回線状況の変化を前記データセンタ間通信回線情報として検出し、
変化後の前記データセンタ間通信回線情報に関して、前記アプリケーションシステムにおいて、前記第一のデータセンタにある前記複数の構成要素と前記第二のデータセンタにある前記複数の構成要素との間に設定されている前記結合度を維持できるかどうかを評価し、
前記結合度を維持できないと判定した場合に、前記第二のデータセンタにある前記アプリケーションシステムの前記第一及び第二の構成要素を、前記第一のデータセンタに移動することができるかどうかを、前記第一のデータセンタにおいて前記アプリケーションシステムに含まれる前記複数の構成要素についてのリソース条件及び前記結合度を用いて判定し、
前記第一のデータセンタに移動することができないと判定した場合に、前記第一のデータセンタ及び前記第二のデータセンタ以外の他のデータセンタであって、当該判定された前記第一及び第二の構成要素に関する結合度を維持可能な回線状況であるデータセンタを選択し、当該データセンタに前記第三の移動候補である前記第一及び第二の構成要素の受け入れ可否判定の実施を依頼する、
データセンタシステム。
【請求項１０】
互いに通信可能に接続されている複数の構成要素を有し、外部装置に接続されて当該外部装置にデータ処理サービスを提供するアプリケーションシステムが構築されている第一のデータセンタと、前記第一のデータセンタと同等の構成を有する第二のデータセンタとを備えているデータセンタシステムで各前記データセンタにおいて各前記構成要素と通信可能に接続されて前記アプリケーションシステムを管理する管理装置であって、
前記管理装置が、
前記第一のデータセンタの前記アプリケーションシステムが有する前記複数の構成要素の中から、前記第二のデータセンタに移動する候補としての第一の移動候補となる第一の構成要素を選択するステップと、
前記アプリケーションシステムに含まれる前記複数の構成要素間の通信に関する必要条件を示す指標である結合度を、前記複数の構成要素の各々について設定するステップと、
前記アプリケーションシステムの前記構成要素と、当該複数の構成要素を移動することができる範囲との対応付けをそれぞれ示す重み情報を前記第一のデータセンタ及び前記第二のデータセンタについて設定し、
前記アプリケーションシステムの前記複数の構成要素のうち、当該アプリケーションシステム内で行われる通信についてのサービスを提供する通信サービス装置が有するべきサービス内容に関する要件を示すサービス要件情報を、前記通信サービス装置に関して設定し、
前記第一の移動候補である前記第一の構成要素について設定されている前記結合度と、前記第一のデータセンタと前記第二のデータセンタとの間の通信回線の通信状況に関する情報であるデータセンタ間通信回線情報とを比較評価し、
前記比較評価の結果、前記結合度が前記データセンタ間通信回線情報より優れていると判定された場合に、前記第一の構成要素と共に前記第二のデータセンタに移動する必要のある前記構成要素である第二の構成要素を決定し、第二の移動候補として選定し、
前記第一及び第二の移動候補とされた前記第一及び第二の構成要素について、前記第一のデータセンタについて設定されている重み情報を基に、前記第二のデータセンタへ移動することができる前記第一及び第二の構成要素を第三の移動候補として決定し、
前記第三の移動候補に含まれる一つ以上の前記構成要素間の結合度と、前記第二のデータセンタ内にある各前記複数の構成要素間の通信回線の通信状況に関する情報である構成要素間通信回線情報とを比較評価し、
前記比較評価の結果、前記第二のデータセンタ内の前記構成要素間通信回線情報が前記第三の移動候補について設定されている前記結合度より優れているかどうかを評価し、
前記第三の移動候補とされている前記第一及び第二の構成要素が、前記第二のデータセンタにおいて前記第一のデータセンタで受けていたサービス内容と同等の内容を有する前記サービス要件情報を持つ前記通信サービス装置を利用可能かどうか評価し、
前記第二のデータセンタ内にある各前記複数の構成要素間の通信回線の通信状況に関する情報である構成要素間通信回線情報が前記第三の移動候補について設定されている前記結合度より優れており、且つ、前記第三の移動候補である前記第一及び第二の構成要素が前記第一のデータセンタで受けていたサービス内容と同等の内容を有する前記サービス要件情報を持つ前記通信サービス装置を利用可能であると判断された場合に、前記第三の移動候補である前記第一及び第二の構成要素を前記第二のデータセンタに受け入れ可能であると判断し、前記第三の移動候補である前記第一及び第二の構成要素を前記第一のデータセンタから前記第二のデータセンタに移動させるべく指示し、
前記第一のデータセンタの前記アプリケーションシステムが有する前記複数の構成要素の一部を前記第二のデータセンタに移動した後に、前記第一のデータセンタと前記第二のデータセンタとの間での通信回線状況の変化を前記データセンタ間通信回線情報として検出し、
変化後の前記データセンタ間通信回線情報に関して、前記アプリケーションシステムにおいて、前記第一のデータセンタにある前記複数の構成要素と前記第二のデータセンタにある前記構成要素との間に設定されている前記結合度を維持できるかどうかを評価し、
前記結合度を維持できないと判定した場合に、前記第二のデータセンタにある前記アプリケーションシステムの前記第一及び第二の構成要素を、前記第一のデータセンタに移動することができるかどうかを、前記第一のデータセンタにおいて前記アプリケーションシステムに含まれる前記複数の構成要素についてのリソース条件及び前記結合度を用いて判定し、
前記第一のデータセンタに移動することができないと判定した場合に、前記第一のデータセンタ及び前記第二のデータセンタ以外の他のデータセンタであって、当該判定された前記第一及び第二の構成要素に関する結合度を維持可能な回線状況であるデータセンタを選択し、当該データセンタに前記第三の移動候補である前記第一及び第二の構成要素の受け入れ可否判定の実施を依頼する、
データセンタシステムの管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データセンタシステム管理方法、データセンタシステム、及び管理装置に関するものである。
【背景技術】
【０００２】
近年、企業や組織のデータセンタにおいて、コンピューティングリソースの有効利用やコスト低減、リソースのオンデマンドでの利用等を実現するために、仮想化技術を活用して物理的なリソースを集約し、論理化するクラウドコンピューティング基盤（以下、単にクラウドと呼称する）の構築が進展している。クラウドにおいては、例えば企業等の組織のビジネスユニット（以下、クラウド利用者と呼称する）は、セルフサービスポータルと呼ばれるポータル画面にアクセスして仮想マシン等の論理リソースの割り当てを申請し、割り当てられた論理リソースを用いてアプリケーションシステムを構築及び運用管理する（以下、テナント管理と呼称する）。一方、例えば企業等の組織のＩＴ部門、あるいはベンダ（以下、クラウド管理者と呼称する）は、クラウド基盤の構築及び運用管理、論理リソースのクラウド利用者への割り当て等を行う（以下、クラウド管理と呼称する）。このように、クラウドの運用管理と論理リソースの利用及び運用管理を分離することで、クラウド利用者は論理リソースの物理的な場所及び状態を意識することなく論理リソースの利用及び運用管理に専念し、クラウド管理者は論理リソースを用いて構築及び運用されているアプリケーションシステムの詳細を知ることなく、クラウドの運用管理に専念することが可能になると期待されている。またクラウドにおいては、仮想化技術によって、仮想マシンをある物理ホストコンピュータ上から他の物理ホストコンピュータ上に移動させることが可能である。これにより、クラウド管理者はクラウドにおける負荷、リソースについて利用の平準化を柔軟に行うことが出来るようになった。さらに、非特許文献１に記載の通り、ホストコンピュータの負荷等の状況に応じて仮想マシンを自動的に移動させる技術も開発されている。また特許文献１においては、複数の仮想マシンを移動させる技術も提案されている。
【０００３】
一方、一つのデータセンタに配置できる物理的なリソースに限りがある場合、クラウドは複数のデータセンタにまたがって構築される構成になり得る。また実際のアプリケーションシステムは、一般に、複数の仮想マシン、物理的なホストコンピュータに加えて、負荷分散装置、ファイアウォール、及び侵入防御システム等の、通信を制御するための要素（以下、ミドルボックスと呼称する）から構成される。ミドルボックスは仮想化されているとは限らず、また、データセンタにおいてアプリケーションシステム間で共有されている場合がある。このような現状により、クラウド利用者がアプリケーションシステムをクラウド上に構築する場合、データセンタのリソースの空き状況によっては、アプリケーションシステムを構成する個々の構成要素を異なるデータセンタに配置しなければならない場合があり得る。また、アプリケーションシステムが当初は同じデータセンタ内で構成された場合においても、非特許文献１、特許文献１等の文献に記載の方法は仮想マシンが構成するアプリケーションシステムあるいは仮想マシン間の関係を考慮せずに仮想マシンを移動するため、あるアプリケーションシステムを構成する個々の仮想マシンが異なるデータセンタに再配置される状況が起こり得る。データセンタが互いに地理的に離れた位置に存在する場合、個々の仮想マシンあるいはホストコンピュータの間の通信が比較的遅延の大きいデータセンタ間ネットワークを往復するため、クラウド利用者が意識しないうちにアプリケーションシステムのパフォーマンスが低下する、あるいは、法規制等によって許可されていない地域にデータが転送され得る、という課題がある。さらに、データセンタ毎に複数のアプリケーションシステムがミドルボックスを共有する場合、クラウド利用者が複数のデータセンタにまたがるアプリケーションシステムにおいてどのミドルボックスを利用すべきか判断できず、アプリケーションシステムの設計、構築、及び運用が複雑化する場合があるという課題がある。
【０００４】
以上のような、アプリケーションシステムを構成する個々の仮想マシンが複数のデータセンタをまたがって設置されることに起因する、パフォーマンス、コンプライアンスの課題、及び、ミドルボックス利用の課題に対応するために、様々な方法が提案されている。例えば、クラウド利用者に仮想マシンを配置する場所（いずれのデータセンタか、あるいはどの地域か、等）、使用するミドルボックスを指定させる方法が実運用されている。例えば非特許文献２には、クラウド利用者が仮想マシンの場所を指定することができると記載されている。また、非特許文献３には、クラウド利用者がどのデータセンタのどの負荷分散装置を使うか指定することができると記載されている。別の方法として、アプリケーションの状態を考慮して仮想マシンを移動する方法も提案されている。例えば特許文献２及び特許文献３においては、アプリケーションのマイグレーション時に、アプリケーションが必要とするサーバリソース、ネットワークリソース、あるいはストレージリソースに応じて、アプリケーションを実行するのに適切なデータセンタを自動的に発見する方法が記載されている。特許文献４には、システム全体のマイグレーションポリシーに加えて個々のアプリケーション固有のポリシーを考慮して仮想マシン配置の最適化を行う方法が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１１６８５９号公報
【特許文献２】特開２００９−１３４６８７号公報
【特許文献３】米国特許第７８０１９９４号明細書
【特許文献４】特開２００９−１１６８５２号公報
【非特許文献】
【０００６】
【非特許文献１】"VMware vSphere TM"、http://www.vmware.com/products/drs/
【非特許文献２】"Amazon Elastic Compute Cloud (Amazon EC2)"、 http://aws.amazon.com/jp/ec2/
【非特許文献３】"F5 Load Balancer User Manual"、 http://wiki.gogrid.com/wiki/index.php/F5_Load_Balancer_User_Manual
【発明の概要】
【発明が解決しようとする課題】
【０００７】
非特許文献２あるいは非特許文献３で開示されている手法では、クラウド利用者が特定の仮想マシンの配置場所やミドルボックスの具体的な場所を指定することはできるが、それら制限事項や他の構成要素との関係を踏まえた上でアプリケーションシステム全体の配置を複数のデータセンタにまたがって最適化する手段を提供していない。そのため、全体の最適化のためにはアプリケーションシステムを構成する全ての構成要素の場所を指定する必要があり煩雑である。
【０００８】
特許文献２及び特許文献３で開示されている手法においても同様に、アプリケーション単体の移動先となるデータセンタを発見することはできるが、複数の仮想マシン、複数の物理ホストコンピュータ、それらの上で稼動する複数のアプリケーション、及びミドルボックスから構成されるアプリケーションシステムについては考慮しておらず、個々の構成要素の関係を踏まえて仮想マシンを移動することが出来ない。
【０００９】
特許文献４で開示されている手法においては、アプリケーション固有のポリシー適用事例として、サイト間でのアプリケーションの移動が述べられているが、アプリケーション間の連携の有無のみでサイト間の移動の可否を決定しており、複数のアプリケーションが連携するアプリケーションシステムをデータセンタ間にまたがって構成できない。
【００１０】
以上のことから、これまでのデータセンタ連携管理においては、アプリケーションシステムの構成を複数のデータセンタにまたがって適切に最適化できないという課題があった。
【課題を解決するための手段】
【００１１】
前記の課題及び他の課題を解決するための、本発明の一実施態様は、外部装置に接続されて当該外部装置にデータ処理サービスを提供するアプリケーションシステムが構築されている第一のデータセンタと、前記第一のデータセンタと同等の構成を有する第二のデータセンタとを少なくとも備えているデータセンタシステムの管理方法であって、前記アプリケーションシステムは互いに通信可能に接続されている複数の構成要素を有し、前記第一のデータセンタの前記アプリケーションシステムが有する前記複数の構成要素の中から、前記第二のデータセンタに移動する候補としての移動候補となる第一の構成要素を選択するステップと、前記アプリケーションシステムに含まれる前記複数の構成要素間の通信に関する必要条件を示す指標である結合度を、前記複数の構成要素の各々について設定するステップと、前記移動候補である前記第一の構成要素について設定されている前記結合度と、前記第一のデータセンタと前記第二のデータセンタとの間の通信回線の通信状況に関する情報であるデータセンタ間通信回線情報とを比較評価するステップと、前記比較評価の結果、前記結合度が前記データセンタ間通信回線情報より優れていると判定された場合に、前記第一の構成要素と共に前記第二のデータセンタに移動する必要のある前記構成要素である第二の構成要素を決定し、前記移動候補として選定するステップと、前記第一のデータセンタの前記アプリケーションシステムが有する前記複数の構成要素の一部を前記第二のデータセンタに移動した後に、前記第一のデータセンタと前記第二のデータセンタとの間での通信回線状況の変化を前記データセンタ間通信回線情報として検出するステップと、変化後の前記データセンタ間通信回線情報に関して、前記アプリケーションシステムにおいて、前記第一のデータセンタにある前記複数の構成要素と前記第二のデータセンタにある前記複数の構成要素との間に設定されている前記結合度を維持できるかどうかを評価するステップと、前記結合度を維持できないと判定した場合に、前記第二のデータセンタにある前記アプリケーションシステムの前記第一及び第二の構成要素を、前記第一のデータセンタに移動することができるかどうかを、前記第一のデータセンタにおいて前記アプリケーションシステムに含まれる前記複数の構成要素についてのリソース条件及び前記結合度を用いて判定するステップと、前記第一のデータセンタに移動することができないと判定した場合に、前記第一のデータセンタ及び前記第二のデータセンタ以外の他のデータセンタであって、当該判定された前記第一及び第二の構成要素に関する結合度を維持可能な回線状況であるデータセンタを選択し、当該データセンタに前記第一及び第二の構成要素の受け入れ可否判定の実施を依頼するステップとを含むデータセンタシステムの管理方法である。
【発明の効果】
【００１２】
本発明の一態様によれば、複数のデータセンタにまたがるアプリケーションシステムについて、その詳細な構成を知ることなく、アプリケーションシステム内の特定の構成要素が具備すべき性能上の要件、あるいは構成要素間で維持すべき要件を満たしつつ、当該構成要素をデータセンタ間で移動させることが可能となる。さらに、構成要素間の実際の通信状況を踏まえてリソースの負荷および利用率の平準化を行うことが可能となる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の一実施形態によるデータセンタシステム１０００のシステム構成を示す図である。
【図２】図２は、ホストコンピュータ１０のハードウェア及びソフトウェア構成を示す図である。
【図３】図３は、ホストコンピュータ１０のもう一つのハードウェア及びソフトウェア構成を示す図である。
【図４】図４は、管理サーバ１１のハードウェア及びソフトウェア構成を示す図である。
【図５】図５は、監視サーバ１２のハードウェア及びソフトウェア構成を示す図である。
【図６】図６は、ミドルボックス１３のハードウェア及びソフトウェア構成を示す図である。
【図７】図７は、コンピュータ３０００のハードウェア及びソフトウェア構成を示す図である。
【図８】図８は、アプリケーションシステム２０００の論理構成を示す図である。
【図９】図９は、アプリケーションシステム２０００のもう一つの論理構成を示す図である。
【図１０】図１０は、結合度定義テーブル１７０の一例を示す図である。
【図１１】図１１は、重み定義テーブル１７１の一例を示す図である。
【図１２】図１２は、ノード管理テーブル１７９の一例を示す図である。
【図１３】図１３は、結合度管理テーブル１７２の一例を示す図である。
【図１４】図１４は、ノード重み情報管理テーブル１７３の一例を示す図である。
【図１５】図１５は、ミドルボックス管理テーブル１７４の一例を示す図である。
【図１６】図１６は、サービスプロファイル１７５の一例を示す図である。
【図１７】図１７は、ノード移動要求プロファイル１７６の一例を示す図である。
【図１８】図１８は、ノード移動確認画面９００の一例を示す図である。
【図１９】図１９は、重み及び結合度設定処理手順の一例を示す図である。
【図２０】図２０は、ノード移動の全体処理手順の一例を示す図である。
【図２１】図２１は、ノード移動可否の検証処理手順の一例を示す図である。
【図２２】図２２は、重み及び結合度の検証処理手順の一例を示す図である。
【図２３】図２３は、受け入れ可否の検証処理手順の一例を示す図である。
【図２４】図２４は、アプリケーションシステム２０００の再構成処理手順の一例を示す図である。
【図２５】図２５は、実施例２における結合度の導出処理手順の一例を示す図である。
【図２６】図２６は、実施例２における結合度関連設定の処理手順の一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照しながら本発明の一実施形態を説明する。なお、この実施形態により本発明が限定されるものではない。
【実施例１】
【００１５】
図１は、本発明の一実施例によるデータセンタシステム１０００のシステム構成例を示している。本実施例においてデータセンタシステム１０００は、データセンタ１、データセンタ２、クラウド利用端末３、クラウド管理端末４、クライアント端末５、及び通信ネットワーク６から構成され、データセンタ１、データセンタ２、クラウド利用端末３、クラウド管理端末４、及びクライアント端末５は通信ネットワーク６を介して接続される。データセンタ１とデータセンタ２とは、それぞれホストコンピュータ１０、管理サーバ１１、監視サーバ１２、ミドルボックス１３、ルーティング機器１４、及び通信ネットワーク１５から構成され、ホストコンピュータ１０、管理サーバ１１、監視サーバ１２、ミドルボックス１３、ルーティング機器１４は通信ネットワーク１５を介して接続される。クラウド利用端末３、クラウド管理端末４、及びクライアント端末５はデータセンタ１又はデータセンタ２内の通信ネットワーク１５に接続されていてもよい。
【００１６】
クラウド利用者は、クラウド利用端末３を用いてデータセンタ１あるいはデータセンタ２の管理サーバ１１にアクセスする。クラウド管理者は、クラウド管理端末４を用いてデータセンタ１あるいはデータセンタ２の管理サーバ１１にアクセスする。エンドユーザは、外部装置であるクライアント端末３を用いてデータセンタ１あるいはデータセンタ２のホストコンピュータ１０あるいはホストコンピュータ１０上に構築されている仮想マシンにアクセスし、ホストコンピュータ１０あるいは仮想マシン上のアプリケーションを利用する。
【００１７】
通信ネットワーク６及び通信ネットワーク１５は、公衆網、インターネット、ＩＳＤＮ、専用線、ＬＡＮ等の有線網、あるいは移動体通信用基地局、通信用人工衛星等の設備を利用した無線網等によって実現できる。通信ネットワーク４及び通信ネットワーク１５において各機器は、個々の機器に予め付与された識別情報によって識別され、これによって各機器は他の機器に接続して通信を行う。
【００１８】
ミドルボックス１３（通信サービス装置）は、例えば負荷分散装置、ファイアウォール、侵入検知システム、侵入防御システム等の、各機器間で行われる通信に対して通信制御ポリシーやセキュリティポリシーを適用するために設置される装置である。ミドルボックス１３は別個のハードウェアとして実装されていても、ソフトウェアとして実装されてホストコンピュータ１０あるいはホストコンピュータ１０上に構築された仮想マシンで動作していてもよい。ルーティング機器１４は通信ネットワーク間を接続して通信を制御するためのものであり、本実施例においては通信ネットワーク６と通信ネットワーク１５を接続する。
【００１９】
次に、本実施例のホストコンピュータ１０について説明する。図２はホストコンピュータ１０のハードウェア及びソフトウェアの構成の一例を示している。ホストコンピュータ１０は、ＣＰＵ（Central Processing Unit）、ＭＰＵ（MicroProcessing Unit）等のプロセッサからなる制御部１００、記憶部１０１、通信ネットワーク１５に接続するためのネットワークインタフェース部１０２、表示部１０３、入力部１０４、及びこれらを接続するデータバス１０５によって構成することができる。
【００２０】
記憶部１０１は、ＲＡＭ（Random Access Memory）等の半導体メモリを含む揮発性記憶装置、あるいはハードディスクドライブ（以下「ＨＤＤ」）、ＳＳＤ（Solid State Drive）等の読み書き可能な不揮発性記憶装置、光磁気メディア等の読み出し専用不揮発性記憶装置等から構成できる。表示部１０３はＣＲＴディスプレイ、液晶ディスプレイ等の表示装置によって、入力部１０４はキーボード、マウス、ペンタブレット等の入力装置によって構成できる。
【００２１】
ホストコンピュータ１０において、例えばソフトウェアの実行に伴う演算処理は制御部１００によって実行される。制御部１００が実行するプログラム、及びプログラムが使用するデータは、記憶部１０１に格納されていても良いし、通信ネットワーク１５あるいは通信ネットワーク１５上を伝播する搬送波やデジタル信号を介して他の機器から導入されても良い。またホストコンピュータ１０は、表示部３３あるいは入力部３４を省略した構成にすることもできる。
【００２２】
記憶部１０１に格納されている仮想マシンモニタプログラム１６０は、一つ以上の仮想マシン１６１をホストコンピュータ１０上で動作させるために実装されている仮想化プログラムである。仮想マシンモニタプログラム１６０は、例えば制御部１００、記憶部１０１、及びネットワークインタフェース部１０２を論理的に分割することで、ホストコンピュータ１０上でホストコンピュータ１０と同様に振る舞う一つ以上の仮想マシン１６１が動作することを可能とする。また仮想マシンモニタプログラム１６０は、管理サーバ１１より仮想マシン１６１の移動指示を受け、移動先のホストコンピュータ１０上の仮想マシンモニタプログラム１６０との間で仮想マシン１６１の移動処理を行う。仮想マシンモニタプログラム１６０の構成及び動作、仮想マシン１６１の移動処理については、前記した先行技術文献に記載の公知技術を使うことができる。
【００２３】
なお、記憶部１０１には、一般的なコンピュータのデータ入出力処理、メモリ管理等の基本機能を提供するオペレーティングシステム（ＯＳ）も格納され、制御部１００によって実行される。この構成は、後述する管理サーバ１１、監視サーバ１２、ミドルボックス１３、クラウド利用端末３、クラウド管理端末４、及びクライアント端末６についても同様である。
【００２４】
アプリケーションプログラム１６２はクライアント端末５に対して何らかのデータ処理機能を提供するためのプログラムであり、例えばウェブサーバあるいはメールサーバ、アプリケーションサーバ、データベース等の各機能を実現するプログラムの形態をとることが可能である。
【００２５】
図３はホストコンピュータ１０のハードウェア及びソフトウェアの他の構成例を示している。図３に例示するホストコンピュータ１０は、図２の構成例と同様に、ＣＰＵ等からなる制御部１００、記憶部１０１、通信ネットワーク１５に接続するためのネットワークインタフェース部１０２、表示部１０３、入力部１０４、及びこれらを接続するデータバス１０５によって構成できる。ホストコンピュータ１０は、表示部１０３あるいは入力部１０４を省略した構成にすることもできる。本構成によるホストコンピュータ１０は、図２の構成例とは異なり、ホストコンピュータ１０が仮想マシンモニタプログラム１６０を介することなくアプリケーションプログラム１６２を実行する。
【００２６】
本実施例においては以降、アプリケーションプログラム１６２を実行する仮想マシン１６１、ホストコンピュータ１０、あるいは後述するミドルボックス１３を、特に個々の構成上の違いを意識する必要が無い限り、「ノード」（後述するアプリケーションシステム２０００の構成要素）と総称する。また本実施例において、クラウド利用者はデータセンタ１又は２に、複数のノードから構成されるアプリケーションシステムを構築することが出来る。
【００２７】
次に、本実施例の管理サーバ１１について説明する。図４は管理サーバ１１のハードウェア及びソフトウェアの構成例を示している。管理サーバ１１は、図２あるいは図３に例示したホストコンピュータ１０と同様に、ＣＰＵ等からなる制御部１１０、記憶部１１１、通信ネットワーク１１４に接続するためのネットワークインタフェース部１１２、表示部１１３、入力部１１４、及びこれらを接続するデータバス１１５によって構成できる。また管理サーバ１１は、表示部１１３あるいは入力部１１４を省略した構成にすることもできる。
【００２８】
記憶部１１１には、本実施例の管理サーバ１１としての機能を実現するためのプログラムとそれらのプログラムが使用するテーブル類が格納されている。
【００２９】
まずテーブル類について説明する。なお、各テーブルの構成例については後述する。結合度定義テーブル１７０は、ノード間の結合度を定義するためのテーブルであり、結合度と結合度に紐付く関連情報との対応関係が格納されている。結合度はノード間の結びつきの強さを表す指標であり、本実施例においては、例えばノード間で実行される通信に必要となる帯域と応答速度とによって定義される。結合度と帯域及び応答速度との定量的な対応関係は、あらかじめクラウド利用者が決定してもよいし、クラウド管理者が事前に決定したものをクラウド利用者が利用してもよい。本実施例においてクラウド利用者は、クラウド利用端末３を介して後述の結合度設定プログラム１７７にアクセスし、アプリケーションシステムの個々のノード間の結合度を、結合度定義テーブル１７０で定義された結合度を用いて指定する。
【００３０】
重み定義テーブル１７１は、各ノードに割り当てられる重み情報を定義するためのテーブルである。重みは、現在ノードが設置されている場所に対するノードの結びつきの強さを表す指標である。重みの定義は、クラウド利用者が決定してもよいし、クラウド管理者が事前に決定したものをクラウド利用者が利用してもよい。本実施例においては、重みは、現在の場所からのノードの移動の可否あるいは移動範囲を決定するための閾値として表現される。例えば、重みが小さくなるほど、ノードの移動範囲は同一ラック内、同一データセンタ内、同一地域内、等に広がる。一方でノードが物理的なホストコンピュータ１０である場合、仮想マシン１６１のように簡単に移動できるものではないため、ノードの重みは非常に大きくなる。また、ノードに含まれるデータの種類によっては、他の場所へのノードの移動が設置場所において適用される法令によって規制され得るため、ノードの重みは同様に非常に大きい。
【００３１】
ノード管理テーブル１７９は、クラウド利用者とアプリケーションシステム、アプリケーションシステムに含まれるノード、当該ノードが本来設置されていた場所、当該ノードの現在の設置場所、の対応関係が格納される。ノードが本来設置されていた場所は、当該ノードが最初に配置された場所を指し示す。ノードを移動させた場合、ノードの現在の場所は当該移動先を指し示す。
【００３２】
結合度管理テーブル１７２には、クラウド利用者とアプリケーションシステム、アプリケーションシステムに含まれるノード、当該ノードと他ノードとの間の結合度、他ノードがミドルボックス１３である場合にはミドルボックス１３に対する要件、の対応関係が格納される。前記ノードがミドルボックス１３に対して要求する要件は後述するサービスプロファイル１７５として定義される。本テーブルの内容は、クラウド利用者がクラウド利用端末３を介して後述の結合度設定プログラム１７７に登録した結果をもとに、結合度設定プログラム１７７によって設定される。本実施例においてクラウド管理プログラム１７８は、後述のように、本テーブルに記載の結合度、あるいはミドルボックス１３への要件を踏まえてノードの移動の可否を判定する。
【００３３】
ノード重み情報管理テーブル１７３には、クラウド利用者とアプリケーションシステム、アプリケーションシステムに含まれるノード、ノードの重み情報との対応関係が格納されている。本テーブルの内容は、クラウド利用者がクラウド利用端末３を介して、後述する結合度設定プログラム１７７に登録した結果をもとに、結合度設定プログラム１７７によって設定される。本実施例においてクラウド管理プログラム１７８は、後述のように、本テーブルに記載されている重みを踏まえてノードの移動の可否あるいは移動可能範囲を決定する。
【００３４】
ミドルボックス管理テーブル１７４には、ミドルボックス１３と、当該ミドルボックス１３がサポートしている外部要件との対応関係が格納される。ミドルボックス１３がサポートする外部要件は、後述するサービスプロファイル１７５として定義される。本テーブルの内容は、クラウド管理者がクラウド管理端末４を介して事前に設定する。また本テーブルにおけるサービスプロファイル１７５の内容は、クラウド管理者がクラウド管理端末４を介して事前に設定してもよいし、ミドルボックス１３のベンダから提供されてもよい。
【００３５】
サービスプロファイル１７５（サービス要件情報）には、アプリケーションシステムに含まれているミドルボックス１３がサポートしている機能、性能、他ノードとの連携のためのインタフェース等の情報が格納される。サービスプロファイル１７５は、クラウド利用者がミドルボックス１３に対する要件を定義するため、あるいは、ミドルボックス１３がサポートしている機能等を定義するために用いられる。サービスプロファイル１７５はＸＭＬ等の公知技術を用いて記述することができる。
【００３６】
ノード移動要求プロファイル１７６には、移動候補の仮想マシン１６１の数や、個々の仮想マシン１６１が必要とするリソース量、他ノードとの間で必要となる結合度、他ノードがミドルボックス１３の場合は当該ノードがミドルボックス１３に求める要件、等の情報が格納される。ミドルボックス１３に対する要件はミドルボックス１３について記述されたサービスプロファイル１７５として定義される。クラウド管理者がデータセンタ１、２間で仮想マシン１６１を移動させる際には、移動元のデータセンタ１又は２のクラウド管理プログラム１７８が移動先のデータセンタ１又は２のクラウド管理プログラム１７８に対してノード移動要求プロファイル１７６を送信し、移動先のデータセンタ１又は２のクラウド管理プログラム１７８は仮想マシン１６１を受け入れ可能かどうかを判定するためにノード移動要求プロファイル１７６を用いる。
【００３７】
次に、管理サーバの機能を実現するためのプログラムについて説明する。まず、結合度設定プログラム１７７は、クラウド利用端末３を介してクラウド利用者に、ノード間の結合度や、データセンタ１又は２に対するノードの重みを設定するためのインタフェースを提供するプログラムである。本実施例において結合度設定プログラム１７７は、クラウド利用者が入力した結合度情報及びノード重み情報をクラウド利用端末３経由で受け取り、結合度管理テーブル１７２及びノード重み情報管理テーブル１７３に保存する。
【００３８】
次に、クラウド管理プログラム１７８は、ホストコンピュータ１０間の仮想マシン１６１の移動を管理するためのプログラムであり、ノード間の結合度及び各ノードの重みを基に、データセンタ間での仮想マシン１６１の移動の可否を判定する。移動の可否の判定に当たって、クラウド管理プログラム１７８は、データセンタ間の回線状況、移動先データセンタのリソース空き状況、移動先データセンタ内の回線状況、及び移動先データセンタにあるミドルボックス１３のサービスレベルについても考慮する。
【００３９】
具体的には、クラウド管理者がデータセンタ１のホストコンピュータ１０からデータセンタ２のホストコンピュータ１０に仮想マシン１６１を移動させる場合、クラウド管理者はクラウド管理端末４を介して、データセンタ１のクラウド管理プログラム１７８に対して移動候補である仮想マシン１６１を指定する。次いでクラウド管理プログラム１７８は、各ノードについて設定された重み情報を基に、クラウド管理者が指定した仮想マシン１６１がデータセンタ２に移動可能かどうかを判定する。またクラウド管理プログラムは、当該仮想マシン１６１と同じアプリケーションシステムに属する他の仮想マシン１６１との結合度とデータセンタ１、２間の回線状況を基に、当該仮想マシン１６１をデータセンタ２に移動可能かどうか、当該仮想マシン１６１と共に移動する必要のある仮想マシン１６１があるかどうかを判定する。さらにクラウド管理プログラム１７８は、データセンタ２のクラウド管理プログラム１７８に対して仮想マシン１６１群の受け入れが可能かどうかを、ノード移動要求プロファイル１７６を用いて問い合わせ、移動の可否を決定する。
【００４０】
本実施例においてクラウド管理プログラム１７８は、クラウド管理者の最終的な判断をもって仮想マシン１６１を他のデータセンタに移動する指示を仮想マシンモニタプログラム１６０に発行する。クラウド管理プログラム１７８は、クラウド管理者の判断を介さずに自動的に仮想マシンモニタプログラム１６０に移動指示を発行するように構成してもよい。
【００４１】
一方データセンタ２で稼働しているクラウド管理プログラム１７８は、データセンタ１のクラウド管理プログラム１７８より仮想マシン１６１群の受け入れの問い合わせをノード移動要求プロファイル１７６として受け取り、プロファイル１７６内に記載の要求リソース量あるいは要求結合度を、データセンタ２のホストコンピュータ１０の空き状況やホストコンピュータ１０間のリンクの空き状況と比較する。さらにクラウド管理プログラム１７８は、データセンタ２のミドルボックス１３が、当該仮想マシン１６１が必要とするサービスレベルを満たすことが出来るかどうかを、ミドルボックス１３がサポートするサービス内容が記述されているサービスプロファイル１７５と仮想マシン１６１が要求するサービスプロファイル１７５とを比較して判定し、受け入れ可否をデータセンタ１のクラウド管理プログラム１７８に返す。なお、以上の結合土設定プログラム１７７及びクラウド管理プログラム１７８によるデータ処理については、関連する処理フロー例等により後述する。
【００４２】
次に、本実施例の監視サーバ１２について説明する。図５は監視サーバ１２のハードウェア及びソフトウェアの構成例を示している。監視サーバ１２は、ホストコンピュータ１０あるいは管理サーバ１１と同様に、ＣＰＵ等からなる制御部１２０、記憶部１２１、通信ネットワーク１５に接続するためのネットワークインタフェース部１２２、表示部１２３、入力部１２４、及びこれらを接続するデータバス１２５によって構成できる。また監視サーバ１２は、表示部１２３や入力部１２４を省略した構成にすることもできる。
【００４３】
記憶部１２１には、制御部１２０によって実行されることにより監視サーバ１２の機能を実現するネットワーク監視プログラム１８０及びノード監視プログラム１８１が格納されている。ネットワーク監視プログラム１８０は、データセンタ１又は２内の通信ネットワーク１５上に設けられている各機器から通信量、稼動状況、障害情報等の情報を収集するためのプログラムである。各機器からの情報の収集は、例えばＳＮＭＰ（Simple Network Monitoring Protocol）、各機器に固有の情報取得インタフェース等の公知技術を用いて実現できる。本実施例においてネットワーク監視プログラム１８０は、各ノード間の通信状況と、ノードとミドルボックス１３との間の通信状況、データセンタ間の帯域状況を、ノード、ミドルボックス１３、ルーティング装置１４より収集する。またネットワーク監視プログラム１８０は、管理サーバ１１にあるクラウド管理プログラム１７８からの問い合わせに応じて、収集した情報をクラウド管理プログラム１７８に送信する。
【００４４】
ノード監視プログラム１８１は、各ノードのリソース空き状況を監視するためのプログラムである。各機器からの情報の収集は、例えばＳＮＭＰや各機器に固有の情報取得インタフェース等の公知技術を用いて実現できる。またノード監視プログラム１８１は、管理サーバ１１にあるクラウド管理プログラム１７８からの問い合わせに応じて、収集した情報をクラウド管理プログラム１７８に送信する。
【００４５】
次に、本実施例のミドルボックス１３について説明する。図６はミドルボックス１３のハードウェア及びソフトウェアの構成例を示している。ミドルボックス１３は、ホストコンピュータ１０あるいは管理サーバ１１と同様に、ＣＰＵ等からなる制御部１３０、記憶部１３１、通信ネットワーク１５に接続するためのネットワークインタフェース部１３２、表示部１３３、入力部１３４、及びこれらを接続するデータバス１３５によって構成することができる。またミドルボックス１３は、表示部１３３、入力部１３４を省略した構成にすることもできる。
【００４６】
記憶部１３１には、制御部１３０によって実行されることによりミドルボックス１３の機能を実現するプログラム、例えば侵入検知プログラム１８２、ファイアウォールプログラム１８３が格納されている。侵入検知プログラム１８２、ファイアウォールプログラム１８３としては、一般に通信ネットワーク１５を介したデータ処理においてセキュリティを確保するために使用されるプログラムを適用することができる。ミドルボックス１３は、図２に例示したホストコンピュータ１１と同様に、仮想マシン１６１を備え、個々の仮想マシン１６１上でウイルス検出プログラム１８２等のプログラムが実行されるように構成してもよい。
【００４７】
次に、本実施例のクラウド利用端末３、クラウド管理端末４、クライアント端末５として好適に適用されるコンピュータ３０００について説明する。図７はコンピュータ３０００のハードウェア及びソフトウェアの構成例を示している。コンピュータ３０００は、ホストコンピュータ１０あるいは管理サーバ１１と同様に、ＣＰＵ等からなる制御部３０３０、記憶部３０３１、通信ネットワーク１５に接続するためのネットワークインタフェース部３０３２、表示部３０３３、入力部３０３４、及びこれらを接続するデータバス３０３５によって構成することができる。
【００４８】
記憶部３０３１には、制御部３０３０によって実行されることによりクラウド利用端末３、クラウド管理端末４、あるいはクライアント端末５の機能を実現するプログラム、例えばユーザインタフェースプログラム１８４、アプリケーションプログラム１８５４が格納されている。ユーザインタフェースプログラム１８４は、クラウド利用端末３、クラウド管理端末４、あるいはクライアント端末５として機能するコンピュータ３０００と他のノードとのデータ入出力のためのユーザインタフェースを提供するプログラムであり、例えばＷＷＷブラウザプログラムである。アプリケーションプログラム１８５は、クラウド利用端末３、クラウド管理端末４、あるいはクライアント端末５としてのその他の機能を提供するためのプログラムである。
【００４９】
次に、本実施例におけるアプリケーションシステム２０００の構成について説明する。図８は、アプリケーションシステム２０００の論理構成例を示している。クラウド利用者が例えばデータセンタ１内に構築するアプリケーションシステム２０００は、複数のノード及び複数のミドルボックス１３から構成され得る。例えば一般的なウェブアプリケーションサービスシステムの場合、ウェブサーバを稼動させるノード群、アプリケーションサーバを稼動させるノード群、データベースを稼動させるノード群、及び、ファイアウォールや負荷分散装置等のミドルボックスから構成され得る。図８に示す構成例においては、アプリケーションシステム２０００は複数の仮想マシン２０２〜２０７と複数のホストコンピュータ２０８、２０９とから構成される。クライアント端末２００からのアクセスは負荷分散装置２０１によってウェブサーバを担う仮想マシン２０２〜２０４に振り分けられる。ウェブサーバである仮想マシン２０２及び仮想マシン２０３は、アプリケーションサーバを担う仮想マシン２０５及び仮想マシン２０６とそれぞれ接続され、仮想マシン２０５及び仮想マシン２０６は、データベースを担うホストコンピュータ２０８及びホストコンピュータ２０９とそれぞれ接続されている。
【００５０】
一方でウェブサーバを担う仮想マシン２０４は、アプリケーションサーバを担う仮想マシン２０７と、仮想マシン２０７はデータベースを担うホストコンピュータ２０９と接続されている。またホストコンピュータ２０８及びホストコンピュータ２０９は互いに接続され、データベース間の同期が行われている。
【００５１】
次に、アプリケーションシステム２０００におけるノードの移動について説明する。図９は、クラウド管理者がデータセンタ１で稼働中の、図８の構成を有するアプリケーションシステム２０００内の仮想マシン２０７を、データセンタ２に移動させようとする際に、本実施例に開示の方法で移動が行われた場合の最終的な論理構成の例を示している。ここで、クラウド管理者が指定した仮想マシン２０７と仮想マシン２０４との間、仮想マシン２０４と負荷分散装置２０１との間は結合度が高く、仮想マシン２０７とホストコンピュータ２０９との間の結合度がデータセンタ１、２間の回線状況に比べて低いと判定される場合、仮想マシン２０４は仮想マシン２０７と共に移動される。また、データセンタ２の負荷分散装置２１０がデータセンタ１において仮想マシン２０４が利用していた負荷分散装置２０１と同じサービスプロファイル１７５をサポートする場合、仮想マシン２０４はデータセンタ２の負荷分散装置２１０を利用することが出来る。仮想マシン２０７をデータセンタ１からデータセンタ２へ移動させた場合、図９に記載のように、アプリケーションシステム２０００がサービスレベルを維持したまま、データセンタ１とデータセンタ２にまたがって構成される。ここで、クライアント端末２００から負荷分散装置２０１及び負荷分散装置２１０へのアクセスの振り分けは、ＤＮＳやグローバルロードバランシング等の公知技術を用いて実現できる。
【００５２】
次に、本実施例において使用されるテーブル類について説明する。図４に例示する管理サーバ１１に関して説明したように、テーブル類は管理サーバ１１の記憶部１１１に格納されている。まず、結合度定義テーブル１７０について説明する。図８は、結合度定義テーブル１７０の一例を示す図である。結合度定義テーブル１７０には、結合度３００、帯域３０１、及び応答速度３０２の項目が関連づけられて記憶されている。結合度３００は、ノード間の結合度を示す値であり、図１０の例では１〜５の数値指標で示される。帯域３０１は、ノード間において当該結合度を満たすために必要とする帯域幅である。応答速度３０２は、ノード間において当該結合度を満たすために必要とする平均応答速度である。
【００５３】
次に、重み定義テーブル１７１について説明する。図１１は、重み定義テーブル１７１の一例を示す図である。重み定義テーブル１７１は、重み４００、移動範囲４０１、及びデータセンタ４０２の項目が関連づけられて記憶されている。重み４００は、ノードの物理的な設置場所に対するノードの結びつきの強さを示す値であり、０〜５の数値指標で示される。移動範囲４０１は、重み４００の値を持つノードが移動可能な範囲を示す指標である。データセンタ４０２は、移動範囲４０１に含まれるデータセンタ（ＤＣ）を一意に識別するための識別情報である。
【００５４】
次に、ノード管理テーブル１７９について説明する。図１２は、ノード管理テーブル１７９の一例を示す図である。ノード管理テーブル１７９は、利用者ＩＤ４５０、システムＩＤ４５１、ノードＩＤ４５２、場所４５３、及び現在場所４５４の項目が関連づけられて記憶されている。利用者ＩＤ４５０は、データセンタシステム１０００において、クラウド利用者を一意に識別するための識別情報である。システムＩＤ４５１は、クラウド利用者が構築するアプリケーションシステム２０００を一意に識別するための識別情報である。ノードＩＤ４５２は、各ノードを一意に識別するための識別情報である。図１２で、符号「ＶＭ」はノードが仮想マシン１６１であることを、符号「Ｈｏｓｔ」はノードが物理的なホストコンピュータ１０であることを示す。場所４５３は、ノードが本来設置された場所を一意に識別するための識別情報である。現在場所４５４は、本実施例に開示の方法でノードが他のデータセンタに移動した場合に、現在のノードの場所を一意に識別するための識別情報である。
【００５５】
次に、結合度管理テーブル１７２について説明する。図１３は、結合度管理テーブル１７２の一例を示す図である。結合度管理テーブル１７２には、利用者ＩＤ５００、システムＩＤ５０１、ノードＩＤ５０２、関連ノードＩＤ５０３、結合度５０４、及びサービスプロファイル５０５の項目が関連づけられて記録されている。利用者ＩＤ５００は、データセンタシステム１０００において、クラウド利用者を一意に識別するための識別情報であり、ノード管理テーブル１７９の利用者ＩＤ４５０と同じである。システムＩＤ５０１は、クラウド利用者が構築するアプリケーションシステム２０００を一意に識別するための識別情報であり、ノード管理テーブル１７９のシステムＩＤ４５１と同じである。ノードＩＤ５０２は、各ノードを一意に識別するための識別情報であり、ノード管理テーブル１７９のノードＩＤ４５２と同じである。関連ノードＩＤ５０３は、各ノードと同じアプリケーションシステム２０００に属する他ノードや、各ノードが利用するミドルボックス１３を一意に識別するための識別情報である。結合度５０４は、ノードＩＤ５０２と関連ノードＩＤ５０３で示されるノード間の結合度を示す値であり、結合度定義テーブル１７０の結合度３００と同じである。サービスプロファイル５０５は、関連ノードＩＤ５０３がミドルボックス１３である場合に、移動対象であるノードが関連しているミドルボックス１３に要求するサービスプロファイル１７５の識別情報である。
【００５６】
次に、ノード重み情報管理テーブル１７３について説明する。図１４は、ノード重み情報管理テーブル１７３の一例を示す図である。ノード重み情報管理テーブル１７３には、利用者ＩＤ６００、システムＩＤ６０１、ノードＩＤ６０２、及び重み６０３の項目が対応付けて記録されている。利用者ＩＤ６００は、データセンタシステム１０００において、クラウド利用者を一意に識別するための識別情報であり、ノード管理テーブル１７９の利用者ＩＤ４５０と同じである。システムＩＤ６０１は、クラウド利用者が構築するアプリケーションシステム２０００を一意に識別するための識別情報であり、ノード管理テーブル１７９のシステムＩＤ４５１と同じである。ノードＩＤ６０２は、各ノードを一意に識別するための識別情報であり、ノード管理テーブル１７９のノードＩＤ４５２と同じである。重み６０３は各ノードの重みを示す値であり、重み定義テーブル１７１の重み４００と同じである。
【００５７】
次に、ミドルボックス管理テーブル１７４について説明する。図１５は、ミドルボックス管理テーブル１７４の一例を示す図である。ミドルボックス管理テーブル１７４には、ミドルボックスＩＤ７００とサービスプロファイルＩＤ７０１とが対応付けられて記録されている。ミドルボックスＩＤ７００は、データセンタシステム１０００において、ミドルボックス１３を一意に識別するための識別情報である。サービスプロファイルＩＤ７０１は、ミドルボックス１３がサポートしている機能等を記述したサービスプロファイル１７５の識別情報であり、結合度管理テーブル１７２のサービスプロファイル５０５と同じである。
【００５８】
次に、サービスプロファイル１７５について説明する。図１６は、サービスプロファイル１７５の一例を示す図である。本実施例においては、サービスプロファイル１７５を公知技術であるＸＭＬのような構造化言語を用いて記載することができる。サービスプロファイル１７５には、サービスプロファイルＩＤ８００に対応付けて対象ノードに提供されるサービス内容が記述されている。サービス内容は、機能８０１、性能８０２の項目に分類して記述されている。サービスプロファイルＩＤ８００は、データセンタシステム１０００において、サービスプロファイル１７５を一意に識別するための識別情報であり、ミドルボックス管理テーブル１７４のサービスプロファイルＩＤ７０１と同じである。機能８０１は、ミドルボックス１３の機能を記載するための記述子である。図１６の例では、対応するミドルボックス１３がレイヤー４に対応する負荷分散機能及びヘルスチェック機能を有していることを示す。性能８０２は、ミドルボックス１３の性能を記載するための記述子である。
【００５９】
次に、ノード移動要求プロファイル１７６について説明する。図１７は、ノード移動要求プロファイル１７６の一例を示す図である。本実施例においては、ノード移動要求プロファイル１７６を公知技術であるＸＭＬのような構造化言語を用いて記載することができる。ノード移動要求プロファイル１７６には、ノード数８１１、ノードＩＤ８１２、関連ノード数８１３、関連ノードＩＤ８１４、リソース８１５、結合度８１６、帯域８１７、応答速度８１８、及びサービスプロファイルＩＤ８１９の項目が記録される。
【００６０】
ノード数８１１は、ノード移動要求プロファイル１７６において移動先データセンタに受け入れを求めるノード数を記載するための記述子である。ノードＩＤ８１２は、移動先データセンタに受け入れを求める各ノードを一意に識別する識別子を記載するための記述子である。関連ノード数８１３は、ノードＩＤ８１２で識別されるノードとの間で何らかの結合度を持つノード数を記載するための記述子である。関連ノードＩＤ８１４は、ノードＩＤ８１２で識別されるノードが関連しているノードの識別子を記載するための記述子である。リソース８１５は、ノードＩＤ８１２で識別されるノードが必要とするＣＰＵ、メモリ、ＨＤＤ等の補助記憶装置、ネットワークインタフェース等に関するリソース値を記載するための記述子であり、例えばＣＰＵのクロック速度、及びメモリ、補助記憶装置の記憶容量が含まれる。結合度８１６は、ノードＩＤ８１２で識別されるノードと関連ノードＩＤ８１４で識別されるノードとの間で満たすべき結合度を結合度定義テーブル１７０の定義に従って記載するための記述子である。帯域８１７は、結合度定義テーブル１７０において、結合度列３００が結合度８１６に合致するレコードにおける、帯域列３０１の値である。応答速度８１８は、結合度定義テーブル１７０において、結合度列３００が結合度８１６に合致するレコードにおける、応答速度３０２の値である。ノード移動要求プロファイル１７６において、結合度８１６だけでなく対応する帯域８１７及び応答速度８１８を記載するのは、データセンタ１とデータセンタ２とが同じ事業者によって運営されているとは限らず、両者が同じ結合度定義テーブル１７０を保有していない可能性があるためである。サービスプロファイルＩＤ８１９は、関連ノードＩＤ８１４で識別されるノードがミドルボックス１３である場合に、当該ミドルボックス１３に求められる要件が記載されたサービスプロファイル１７５の識別子を記載するための記述子である。
【００６１】
次に、本実施例においてクラウド管理者に提供されるユーザインタフェースについて説明する。図１８は、クラウド管理プログラム１７８がクラウド管理者に提供する、ノードの移動管理のためのインタフェースの一例を示すための図であり、クラウド管理者にノード移動の最終確認を求める画面例である。このユーザインタフェースは、管理サーバ１１で稼働しているクラウド管理プログラム１７８が、クラウド管理端末４の表示部１０３３を通じてユーザに提供する。画面９００は、クラウド管理者が指定した移動候補のノードの表示部位９０１、クラウド管理プログラム１７８が本実施例に記載の方法を用いて判定した移動候補ノードの表示部位９０２、クラウド管理プログラム１７８が本実施例に記載の方法で判定したミドルボックス１３の変更内容の表示部位９０３を含む。なお、画面９００には図１８に例示している表示内容以外の表示内容を表示させてもよい。また画面９００は、図１８に例示する画面構成例以外の画面構成を有するようにしてもよい。
【００６２】
次に、以上の構成を有する本実施例のデータセンタシステム１０００において実行されるデータ処理について説明する。まず、データ処理の前提となる重み及び結合度を設定するために実行されるデータ処理フローについて説明する。図１９は、本実施例における、アプリケーションシステム２０００を構成しているノードの重み及びノード間の結合度の設定手順の一例を示すフローチャートである。なお、以降参照するフローチャートにおいて、各処理ステップに付した参照符号に含まれる「Ｓ」の記号は「ステップ」を示す。
【００６３】
まず、クラウド利用端末３を用いて、設定開始を通知する指令が結合度設定プログラム１７７に送信される（Ｓ１００１）。具体的には、クラウド利用者によりクラウド利用端末３からユーザインタフェースを通じて管理サーバ１１の結合度設定プログラム１７７に設定開始指令が入力される。
【００６４】
次に、結合度設定プログラム１７７が提供するインタフェースを介して、アプリケーションシステム２０００に含まれる個々のノードの重み情報が、結合度設定プログラム１７７に入力される（Ｓ１００２）。
【００６５】
次いで、結合度設定プログラム１７７が提供するインタフェースを介して、アプリケーションシステム２０００に含まれる個々のノード間の結合度が、結合度設定プログラム１７７に入力される（Ｓ１００３）。
【００６６】
次に、結合度設定プログラム１７７が提供するインタフェースを介して、ミドルボックス１３に求める要件がサービスプロファイル１７５として、結合度設定プログラム１７７に入力される（Ｓ１００４）。
【００６７】
結合度設定プログラム１７７は、Ｓ１００２においてクラウド利用者がクラウド利用端末３を通じて設定した情報を基に、ノード重み情報管理テーブル１７３にノードの重み情報を格納する。また結合度設定プログラム１７７は、Ｓ１００３においてクラウド利用者がクラウド利用端末３を通じて指定した情報を基に、結合度管理テーブル１７２にノード間の結合度情報を格納する。関連ノードがミドルボックス１３である場合は、Ｓ１００４においてクラウド利用者がクラウド利用端末３を通じて指定したサービスプロファイル１７５の識別情報を結合度管理テーブル１７２に格納する（Ｓ１００５）。
【００６８】
以上の重み及び結合度設定処理フローにより、アプリケーションシステム２００に含まれるノードについての移動可否判定に使用するデータが収集される。
【００６９】
次に、アプリケーションシステム２０００に含まれるいずれかのノードを移動する場合に実行されるノード移動全体処理について説明する。図２０は、本実施例における、ノードの移動全体手順の一例を示すフローチャートである。
【００７０】
まず、クラウド管理プログラム１７８は、移動候補となるノードと移動先の指定をクラウド管理端末４から受領する（Ｓ１１０１）。クラウド管理者がクラウド管理端末４から移動手続きの開始を指示するきっかけは、例えばあるノードの負荷が高くなることで監視サーバ１２がクラウド管理者に警告を発する事象等があり得る。
【００７１】
クラウド管理プログラム１７８は、ステップ１１０１において指定されたノードを起点としてノード移動可否検証フローを実施する。当該フローについては後述する（Ｓ１１０２）。
【００７２】
クラウド管理プログラム１７８はステップ１１０２において実施したノード移動可否検証フローの結果を評価する（Ｓ１１０３）。移動可能ノード有りと判定された場合（Ｓ１１０３、Ｙｅｓ）、クラウド管理プログラム１７８はクラウド管理端末４に対して、ステップ１１０１において指定されたノードの移動が可能である旨を通知する（Ｓ１１０４）。ステップ１１０２において当該ノードと共に移動させる必要のある他ノードが発見された場合、クラウド管理プログラム１７８は当該他ノードを併せてクラウド管理端末４を通じてクラウド管理者に提示する。ステップ１１０２において当該ノードの移動に伴いミドルボックス１３の変更が必要になると判定された場合、クラウド管理プログラム１７８は当該変更を併せてクラウド管理端末４を通じてクラウド管理者に提示する。画面例は図１５で示した通りである。
【００７３】
クラウド管理者がノード移動実施の判定を行い、クラウド管理端末４を通じてその旨を入力した場合（Ｓ１１０５、Ｙｅｓ）、Ｓ１１０６において、クラウド管理プログラム１７８は仮想マシン１６１が稼動しているホストコンピュータ１０の仮想マシンモニタプログラム１６０に対して、移動先のデータセンタ２のホストコンピュータ１０の仮想マシンモニタプログラム１６０との間で仮想マシン１６１の移動手続きを行うよう指示し、完了通知を受け取る（Ｓ１１０６）。
【００７４】
次いで、クラウド管理プログラム１７８は、ノード管理テーブル１７９において、ノードＩＤ列４５２が移動を完了したノードに合致するレコードについて、現在場所４５４列を移動先のデータセンタ２に更新して処理を終了する（Ｓ１１０７）。
【００７５】
一方、Ｓ１１０３において、移動可能ノード無しと判定された場合（Ｓ１１０３、Ｎｏ）、クラウド管理プログラム１７８はクラウド管理端末４を通じてクラウド管理者に対して、Ｓ１１０１においてクラウド管理者が指定したノードの移動が不可である旨を通知し（Ｓ１１０８）、Ｓ１１０１に戻って異なる移動候補の仮想マシン、あるいはクラウド管理端末４を通じて、異なる移動先を選択させる画面をクラウド管理者に提示する。
【００７６】
ステップ１１０５において、クラウド管理者がクラウド管理端末４を通じてノードの移動を取りやめる旨通知した場合（Ｓ１１０５、Ｎｏ）、クラウド管理プログラム１７８は、Ｓ１１０１に戻って異なる移動候補の仮想マシン、あるいは異なる移動先を選択させる画面を、クラウド管理端末４を通じてクラウド管理者に提示する。
【００７７】
以上のノード移動全体フローにより、種々の制約条件を考慮したデータセンタ１、２間のノードの移動処理を実行させることができる。
【００７８】
次に、ノード移動全体処理におけるノード移動可否検証処理について説明する。図２１は、本実施例における、ノード移動可否検証処理の詳細処理手順の一例を示すフローチャートである。
【００７９】
まず、クラウド管理プログラム１７８は監視サーバ１２に対してデータセンタ１とデータセンタ２との間の回線状況を問い合わせる。監視サーバ１２はネットワーク監視プログラム１８０により収集したデータセンタ１、２間の帯域及び応答速度をクラウド管理プログラム１７８に通知する（Ｓ１２０１）。
【００８０】
クラウド管理プログラム１７８は、空の検証済みノードリスト及び移動候補ノードリストを作成する（Ｓ１２０２）。これらのリストは、ノード移動可否検証フローにおいて使用する一時的なリストである。検証済みノードリスト及び移動候補ノードリストは、キューやリストといった一般的な公知のデータ構造でよい。
【００８１】
次に、クラウド管理プログラム１７８は、本ステップがノード移動全体フローを開始して以降に１回目に実行されている場合、Ｓ１１０１においてクラウド管理者が選択したノードについて、ノードの重み及び関連ノードとの間の結合度検証フローを実施する（Ｓ１２０３）。当該フローについては後述する。本ステップがノード移動全体フローを開始して２回目以降に実行されている場合、後述するＳ１２０７で選択されたノードについて、ノードの重み及び関連ノードとの間の結合度検証フローを実施する。
【００８２】
クラウド管理プログラム１７８は、Ｓ１２０３における重み及び結合度検証フローの実行結果に基づいて、ノードの移動可否を判定する（Ｓ１２０４）。重み及び結合度検証の結果、ノードが移動可能と判定された場合（Ｓ１２０４、Ｙｅｓ）、クラウド管理プログラム１７８は当該ノードを検証済みノードリストに追加する（Ｓ１２０５）。重み及び結合度検証の結果、ノードが移動不可と判定された場合（Ｓ１２０５、Ｎｏ）、クラウド管理プログラム１７８は、処理をＳ１２０６に進める。
【００８３】
クラウド管理プログラム１７８は、移動候補ノードリストと検証済みノードリストを比較し、移動候補ノードリストに含まれていて検証済みノードリストに含まれていないノードの有無、すなわち、未検証の移動候補ノードの有無を判定する（Ｓ１２０６）。未検証の移動候補ノードが有る場合（Ｓ１２０６、Ｙｅｓ）、クラウド管理プログラム１７８は、処理をＳ１２０７に進める。未検証の移動候補ノードが無い場合（Ｓ１２０６、Ｎｏ）、クラウド管理プログラム１７８は、処理をＳ１２０８に進める。
【００８４】
Ｓ１２０７において、クラウド管理プログラム１７８は、移動候補ノードリストの中から検証済みノードリストに含まれていない移動候補ノードを一つ選択してＳ１２０３〜Ｓ１２０６の処理を繰り返し実行する。
【００８５】
次に、Ｓ１２０６で未検証の移動候補ノードがないと判定された場合（Ｓ１２０６、Ｎｏ）、クラウド管理プログラム１７８は、移動候補ノードリストを参照し、移動候補があるかどうかを評価する（Ｓ１２０８）。移動候補があると判定された場合は（Ｓ１２０８、Ｙｅｓ）クラウド管理プログラム１７８は、処理をＳ１２０９に進める。移動候補が無いと判定された場合は（Ｓ１２０８、Ｎｏ）、クラウド管理プログラム１７８は、本処理を終了してノード移動全体フローに戻る。
【００８６】
Ｓ１２０９において、クラウド管理プログラム１７８は、ミドルボックス１３への要求サービスレベルを確定する。具体的には、クラウド管理プログラム１７８は、管理サーバ１１の結合度管理テーブル１７２から、ノードＩＤ列５０２が移動候補ノードリストに含まれるノードのＩＤに合致する全てのレコードのうち、当該レコードにおいてサービスプロファイル列５０５に値を含むレコードを取得する。さらにクラウド管理プログラム１７８は、取得したレコードのサービスプロファイル列５０５に含まれる値に合致するサービスプロファイルＩＤ７０１をサービスプロファイルＩＤ記述子８００に持つサービスプロファイル１７５を取得する。
【００８７】
次に、ステップ１２１０において、クラウド管理プログラム１７８は、移動先であるデータセンタ２に設けられている管理サーバ１１に、以下の問い合わせを行う（Ｓ１２１０）。具体的には、クラウド管理プログラム１７８は、管理サーバ１１の結合度管理テーブル１７２から、ノードＩＤ列５０２が移動候補ノードリストに含まれるノードのＩＤに合致する全てのレコードを取得して、ノード移動要求プロファイル１７６を作成する。ノード移動要求プロファイル１７５の作成においては、クラウド管理プログラム１７８は、結合度５０４に対応する帯域３０１と応答速度３０２を、管理サーバ１１の結合度定義テーブル１７０から取得する。さらにクラウド管理プログラム１７８は、ノード移動要求プロファイル１７６とＳ１２０９において取得したサービスプロファイル１７５を、データセンタ２の管理サーバ１１で稼働しているクラウド管理プログラム１７８に送信する。ノード移動要求プロファイル１７６やサービスプロファイル１７５の送信については、ＳＯＡＰやＨＴＴＰ等の通信プロトコルに関する公知技術を活用できる。
【００８８】
次に、データセンタ２の管理サーバ１１で稼働しているクラウド管理プログラム１７８は、受け入れ可否判定フローを実施する（Ｓ１２１１）。当該フローについては後述する。
【００８９】
次いで、クラウド管理プログラム１７８は、ステップ１２１０における受け入れ可否判定フローの実行結果を評価する（Ｓ１２１２）。データセンタ２のクラウド管理プログラム１７８による受け入れ可否判定の結果、受け入れ可能と判定された場合（Ｓ１２１２、Ｙｅｓ）、クラウド管理プログラム１７８は、作成した移動候補ノードリストを確定してノード移動全体フローに戻る（Ｓ１２１３）。受け入れ可否判定の結果、受け入れ不可と判定された場合（Ｓ１２１２、Ｎｏ）、クラウド管理プログラム１７８は移動候補無しと判定してノード移動全体フローに戻る。
【００９０】
以上のノード移動可否検証処理によれば、各ノードの重みと他のノードとの関連性を考慮して、データセンタ間で移動可能なノード候補を選定することができる。
【００９１】
次に、ノード移動可否検証処理において実行される、重み及び結合度検証処理について説明する。図２２は、本実施例における、ノードの重み及び結合度検証の詳細処理手順の一例を示すフローチャートである。
【００９２】
クラウド管理プログラム１７８は、ノード重み情報管理テーブル１７３から、ノードＩＤ列６０２がノード移動可否検証処理フローのＳ１２０３において指定されたノードのＩＤに合致するレコードの重み列６０３の値を取得する。さらにクラウド管理プログラム１７８は、重み定義テーブル１７１から、重み列４００が当該重み値に合致するレコードのデータセンタ列４０２の値を取得する（Ｓ１３０１）。
【００９３】
次に、クラウド管理プログラム１７８は、Ｓ１２０３において指定されたノードとその移動先の妥当性を検証するために、Ｓ１２０３で指定された移動先がＳ１３０１において取得した値に含まれるかどうかを比較評価する（Ｓ１３０２）。移動先検証の結果、移動先が適切であると判定された場合（Ｓ１３０２、Ｙｅｓ）、クラウド管理プログラム１７８は、Ｓ１２０３で指定されたノードを移動候補ノードリストに追加する（Ｓ１３０３）。移動先検証の結果、移動先が適切ではないと判定された場合（Ｓ１３０２、Ｎｏ）、クラウド管理プログラム１７８は、当該ノードを移動不可と判定してノード移動可否検証フローに戻る。
【００９４】
Ｓ１３０４において、クラウド管理プログラム１７８は、結合度管理テーブル１７２から、ノードＩＤ列５０２がＳ１２０３において指定されたノードのＩＤに合致する全てのレコードの関連ノード列５０３の値を取得し、関連ノードリストを作成する。
【００９５】
次に、クラウド管理プログラム１７８は、関連ノードリストと検証済みノードリストとを比較し、検証済みノードリストに含まれていないノードを関連ノードリストより一つずつ選択して以降のＳ１３０６〜Ｓ１３０９を繰り返し処理する（Ｓ１３０５）。
【００９６】
次に、クラウド管理プログラム１７８は、結合度管理テーブル１７２から、ノードＩＤ列５０２及び関連ノードＩＤ列５０３が、Ｓ１２０３で指定されたノード及びＳ１３０５で選択した関連ノードに合致するレコードを取得し、結合度列５０４の値を取得する（Ｓ１３０６）。
【００９７】
次に、クラウド管理プログラム１７８は、結合度定義テーブル１７０から、結合度列３００の値がＳ１３０６において取得した結合度値に合致するレコードを取得し、帯域列３０１及び応答速度列３０２の値を取得する（１３０７）。
【００９８】
次いで、クラウド管理プログラム１７８は、Ｓ１３０７において取得した帯域値及び応答速度値が、Ｓ１２０１において取得したデータセンタ１、２間の帯域及び応答速度を双方共に上回るかどうかを比較する（Ｓ１３０８）。比較の結果、結合度がデータセンタ間回線状況と同等かあるいはそれを上回ると判定された場合（Ｓ１３０８、Ｙｅｓ）、クラウド管理プログラム１７８は処理をＳ１３０９に進める。比較の結果、結合度がデータセンタ間回線状況を下回ると判定された場合（Ｓ１３０８、Ｎｏ）、クラウド管理プログラム１７８は処理をＳ１３１０に進める。
【００９９】
次に、クラウド管理プログラム１７８は、結合度管理テーブル１７２から、関連ノードＩＤ列５０３がＳ１３０５で選択した関連ノードのＩＤに合致するレコードを取得し、当該レコードがサービスプロファイル列５０５に値を持つかどうかを判定することで、Ｓ１３０５で選択した関連ノードがミドルボックス１３であるかどうかを判定する。Ｓ１３０５で選択した関連ノードがミドルボックス１３ではなく、且つ、移動候補ノードリストに含まれていなければ、当該関連ノードを移動候補ノードリストに追加する（Ｓ１３０９）。
【０１００】
Ｓ１３１０において、クラウド管理プログラム１７８は、Ｓ１３０４において作成した関連ノードリストのうち、検証済みノードリストに含まれていない全てのノードについてＳ１３０６〜Ｓ１３０９の処理を実施したかどうかを評価する。実施したと判定された場合（Ｓ１３１０、Ｙｅｓ）、本処理はノード移動可否検証フローに戻る。まだ実施していない関連ノードがあると判定された場合（Ｓ１３１０、Ｎｏ）、クラウド管理プログラム１７８、処理をＳ１３０５に戻す。
【０１０１】
以上の重み及び結合度検証処理によれば、各ノードについて、そのノードの重み及び他ノードとの関連性の点から、他のデータセンタへの移動候補となりうるかを検証することができる。
【０１０２】
次に、ノード移動可否検証処理において実行される、受入可否検証処理について説明する。図２３は、本実施例における、移動先データセンタ２の管理サーバ１１で稼働しているクラウド管理プログラム１７８による、移動候補ノードの受け入れ可否検証の詳細処理手順の一例を示すフローチャートである。
【０１０３】
まず、データセンタ２のクラウド管理プログラム１７８は、データセンタ１のクラウド管理プログラム１７８より移動要求を受信する（Ｓ１４０１）。移動要求にはノード移動要求プロファイル１７６と、ミドルボックス１３に求めるサービスプロファイル１７５が含まれる。
【０１０４】
データセンタ２のクラウド管理プログラム１７８は、データセンタ２の監視サーバ１２のネットワーク監視プログラム１８０及びノード監視プログラム１８１に問い合わせ、データセンタ２のホストコンピュータ１０の空きリソースや、ホストコンピュータ１０間のデータ通信における帯域及び応答速度を取得する（Ｓ１４０２）。
【０１０５】
次に、データセンタ２のクラウド管理プログラム１７８は、Ｓ１４０２において取得したホストコンピュータ１０のリソース空き状況やホストコンピュータ１０間のデータ通信における帯域、及び応答速度が、Ｓ１４０１において受信したノード移動要求プロファイル１７６内のリソース記述子８１５や帯域記述子８１７、応答速度記述子８１８に記載された値を満たすかどうかを比較することで、移動候補のノードがデータセンタ２においてデータセンタ１と同じ結合度を維持可能かどうか判定する（Ｓ１４０３）。判定の結果、移動候補ノードの結合度が維持可能と判定された場合（Ｓ１４０３、Ｙｅｓ）、クラウド管理プログラム１７８は、処理をＳ１４０４に進める。判定の結果、結合度が維持不可と判定された場合（Ｓ１４０３、Ｎｏ）、受け入れ不可として、クラウド管理プログラム１７８は処理をＳ１４０８に進める。
【０１０６】
データセンタ２のクラウド管理プログラム１７８は、ミドルボックス管理テーブル１７４において、サービスプロファイル列７０１を参照し、データセンタ２内の既存のミドルボックス１３がサポートしているサービスプロファイル１７５の一覧を取得する（Ｓ１４０４）。
【０１０７】
次に、データセンタ２のクラウド管理プログラム１７８は、Ｓ１４０４において取得したサービスプロファイル１７５の一覧においてサービスプロファイルＩＤ８００が指し示すサービスプロファイル１７５の中から、Ｓ１４０１においてデータセンタ１の管理サーバ１１から受信した要求サービスプロファイル１７５を満たすものがあるかどうかを、個々の記述子の値を比較することで判定する（Ｓ１４０５）。これにより、クラウド管理プログラム１７８は、データセンタ２のミドルボックス１３が、移動候補のノードに対してデータセンタ１のミドルボックス１３と同じサービスレベルを提供可能かどうか判定する（Ｓ１４０６）。
【０１０８】
データセンタ２のクラウド管理プログラム１７８は、Ｓ１４０５において候補となるサービスプロファイルが見つかったと判定し場合（Ｓ１４０６、Ｙｅｓ）、処理をＳ１４０７に進める。候補となるサービスプロファイル１７５が見つからないと判定された場合（Ｓ１４０６、Ｎｏ）、受け入れ不可としてクラウド管理プログラム１７８は処理をＳ１４０８に進める。
【０１０９】
Ｓ１４０７において、データセンタ２のクラウド管理プログラム１７８は、移動候補のノードを受け入れるためのリソースを確保するため、データセンタ２内のホストコンピュータ１０のリソースを予約する。リソースの予約管理については、仮想マシンモニタプログラム１６０、クラウド管理プログラム１７８、外部の管理プログラムのいずれかが行ってよい。
【０１１０】
次いで、データセンタ２のクラウド管理プログラム１７８は、データセンタ１のクラウド管理プログラム１７８に受け入れ可否の結果を通知する（Ｓ１４０８）。データセンタ１のクラウド管理プログラム１７８は当該結果をもってノード移動可否検証フローに処理を戻す。
【０１１１】
以上の受入可否検証処理によれば、移動先のデータセンタにおいて、ホストコンピュータ１０等のリソース、及びミドルボックス１３が提供するサービスの点から移動対象であるノードを受け入れることができるか判定することができる。
【０１１２】
次に、再構成処理について説明する。図２４は、本実施例における、ノード移動後のアプリケーションシステム再構成の詳細処理手順の一例を示すフローチャートである。ここでは、データセンタ１からデータセンタ２へのノード移動後に、データセンタ１、２間の回線状況が変化したことに伴って、データセンタ１及びデータセンタ２にまたがったアプリケーションシステム２０００のノードを再配置する例を示す。
【０１１３】
まず、データセンタ１のクラウド管理プログラム１７８はデータセンタ１とデータセンタ２との間の回線状況の変化を認識する（Ｓ１５０１）。具体的には、クラウド管理プログラム１７８が監視サーバ１２のネットワーク監視プログラム１８０に定期的に問い合わせてもよいし、ネットワーク監視プログラム１８０がクラウド管理プログラム１７８に定期的、あるいは変更発生時に通知してもよい。
【０１１４】
次いで、データセンタ１のクラウド管理プログラム１７８は、ノード管理テーブル１７９において場所４５３がデータセンタ１を示すレコードのうち、現在場所４５４がデータセンタ２を示すレコードのノードＩＤ列４５２の値を取得する。次いでクラウド管理プログラム１７８は、結合度管理テーブル１７２のノードＩＤ列５０２あるいは関連ノードＩＤ列５０３が取得した値と合致するレコードの結合度列５０４の値を取得する（Ｓ１５０２）。さらにクラウド管理プログラム１７８は、Ｓ１５０１において認識したデータセンタ１、２間の回線状況が取得した結合度値を上回るかどうかを判定する（Ｓ１５０３）。判定の手法は、図２２に例示した重み及び結合度検証フローのＳ１３０７〜Ｓ１３０８と同じである。判定の結果、回線状況が結合度値を下回ると判定された場合（Ｓ１５０３、Ｎｏ）、Ｓ１５０４に進む。結合度が維持可能と判定された場合（Ｓ１５０３、Ｙｅｓ）、再構成の必要無しとして本フローを終了する。
【０１１５】
Ｓ１５０４において、データセンタ１のクラウド管理プログラム１７８は、データセンタ１の監視サーバ１２のネットワーク監視プログラム１８０及びノード監視プログラム１８１に問い合わせ、ノードの空きリソースやノード間の帯域及び応答速度を取得する（Ｓ１５０４）。
【０１１６】
次いで、データセンタ１のクラウド管理プログラム１７８は、Ｓ１５０４において取得したノードのリソース状況やノード間の回線状況を、当該アプリケーションシステム２０００を構成するデータセンタ１のノードとデータセンタ２のノードとの間の結合度と比較することで、データセンタ２に移動したノードをデータセンタ１に戻せるかどうかを判定する（Ｓ１５０５）。判定の結果、データセンタ２のノードがデータセンタ１に戻せると判定された場合（Ｓ１５０５、Ｙｅｓ）、クラウド管理プログラム１７８は処理をＳ１５０６に進める。判定の結果、データセンタ２のノードがデータセンタ１に戻せないと判定された場合（Ｓ１５０５、Ｎｏ）、受け入れ不可としてクラウド管理プログラム１７８は、処理をＳ１５０８に進める。
【０１１７】
Ｓ１５０６において、データセンタ１のクラウド管理プログラム１７８はデータセンタ２のノードを戻すためのリソースを確保するため、データセンタ１内のホストコンピュータ１０のリソースを予約する。
【０１１８】
次いで、データセンタ１のクラウド管理プログラム１７８は、データセンタ２のクラウド管理プログラム１７８に対して、ノードを戻すための移動を通知する（Ｓ１５０７）。
【０１１９】
データセンタ１のクラウド管理プログラム１７８とデータセンタ２のクラウド管理プログラム１７８とは、移動対象のノードが稼動する仮想マシンモニタプログラム１６０、及び移動先の仮想マシンモニタプログラム１６０に移動を指示して処理を終了する（Ｓ１５０８）。
【０１２０】
一方、データセンタ２のノードがデータセンタ１に戻せないと判定された場合、Ｓ１５０９において、データセンタ１のクラウド管理プログラム１７８は、データセンタ２以外の他のデータセンタであって、当該アプリケーションシステム２０００のノード間の結合度を維持可能な回線状況であるデータセンタを選択し、当該データセンタのクラウド管理プログラム１７８に移動を問い合わせる。以降の処理は前述のノード移動可否検証フローのＳ１２１０以降と同じである。
【０１２１】
以上の処理によれば、移動先のノードに関して回線状況が変化した場合に、結合度を維持したまま当該ノードの再配置を実行することができる。
【０１２２】
以上、本発明の第一の実施例を説明した。第一の実施例によると、データセンタシステム１０００はノード間の関係を結合度という抽象化された指標で管理し、ノードとミドルボックス１３との関係を結合度及びサービスプロファイル１７５という指標で管理する。これにより、クラウド管理者がクラウド利用者のアプリケーションシステム２０００の構成を知ることなく、アプリケーションシステム２０００のサービスレベルに影響が出ない範囲で、データセンタにまたがったアプリケーションシステム２０００を構築可能となる。また、データセンタ間の回線状況変化に応じてアプリケーションシステム２０００を再構成できる。結果として、リソースの負荷や利用率の平準化と、クラウド管理及びクラウド利用との適切な分離を両立できる。
【実施例２】
【０１２３】
次に、本発明を適用する図１に例示したデータセンタ連携システム１０００の二つ目の実施例について説明する。以下、特に説明の無い箇所は実施例１と同じ構成を有するものとする。
【０１２４】
本実施例は、データセンタシステム１０００がノード間の結合度を導出するという点で実施例１とは異なる。この構成により、本実施例においては、クラウド利用者は事前にノード間の結合度を設定する必要が無くなる。さらに、例えばノード間の実質的な回線利用状況を用いて結合度を算出することにより、クラウド管理プログラム１７８が回線状況の実態に合わせて仮想マシン１６１の移動を判定することが可能となる。
【０１２５】
図２５は、実施例２における、クラウド管理プログラム１７８による結合度導出の詳細処理手順の一例を示すフローチャートである。本フローは、結合度設定プログラム１７７が提供するインタフェースを介して、クラウド利用者が後述するパラメータを更新したことをきっかけに実施してもよいし、クラウド管理者がパラメータを更新したことをきっかけに実施してもよいし、結合度設定プログラム１７７が定期的にその時点でのパラメータを用いて実施してもよい。
【０１２６】
まず、結合度設定プログラム１７７は監視サーバ１２上のネットワーク監視プログラム１８０に対して、ノード間の回線状況を問い合わせる（Ｓ１６０１）。本実施例においては、回線状況としてノード間の使用帯域と応答速度の実測値を用いるものとする。
【０１２７】
次いで、結合度設定プログラム１７７は以下の計算式に従って結合度を算出する（Ｓ１６０２）。
【０１２８】
ノードｍｎ間の結合度＝Ｃ１（ノードｍｎ間の単位時間当たりの通信流量／アプリケーションシステム内の全ノード間の単位時間当たりの平均流量）＋Ｃ２（ノードｍｎ間の平均応答速度／アプリケーションシステム内の全ノード間の平均応答速度）
ここで、Ｃ１及びＣ２は係数であり、流量と応答速度のどちらを重要視するかを調整するために利用することができるパラメータである。パラメータＣ１、Ｃ２は、クラウド利用者が事前に定義してもよいし、クラウド管理者が事前に定義してもよい。
【０１２９】
次に、結合度設定プログラム１７７は、Ｓ１６０２において算出した結合度を結合度管理テーブル１７２の結合度列５０４に格納する（Ｓ１６０３）。
【０１３０】
図２４は、実施例２における、クラウド利用者による結合度設定の詳細処理手順の一例を示すフローチャートである。
【０１３１】
まず、クラウド利用者の操作に従って、管理サーバ１１がクラウド利用端末３からの指示を受領する（Ｓ１７０１）。
【０１３２】
次に、クラウド利用端末３から受領した指示に基づいて、結合度設定プログラム１７７が提供するインタフェースを介して、アプリケーションシステム２０００に含まれる個々のノード間の結合度を算出するためのパラメータ指定をクラウド利用端末３から受け付ける（Ｓ１７０２）。ここで、パラメータは上述の計算式における係数Ｃ１、Ｃ２や、ミドルボックス１３に求める要件に相当するサービスプロファイル１７５である。
【０１３３】
次いで、結合度設定プログラム１７７は、Ｓ１７０２においてクラウド利用者から指定されたサービスプロファイル１７５を基に、結合度管理テーブル１７２のサービスプロファイル列５０５を更新する（Ｓ１７０３）。
【０１３４】
最後に、結合度設定プログラム１７７は、Ｓ１７０２においてクラウド利用者により設定された係数を基に、図２５の結合度導出処理フローを実行する（Ｓ１７０４）。
【０１３５】
以上、本発明の第二の実施例を説明した。この第二の実施例によると、データセンタシステム１０００がノード間の結合度を導出することで、クラウド利用者は事前にノード間の結合度を設定する必要が無くなる。さらに、例えばノード間の実質的な回線利用状況を用いて結合度を算出することにより、利用実態に合わせてリソース利用の平準化を行うことができる。
【０１３６】
なお、以上説明した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良することができると共に、本発明にはその等価物も含まれる。
【符号の説明】
【０１３７】
１  データセンタ１
２  データセンタ２
３  クラウド利用端末
４  クラウド管理端末
５  クライアント端末
６  通信ネットワーク
１０  ホストコンピュータ
１１  管理サーバ
１２  監視サーバ
１３  ミドルボックス
１４  ルーティング装置
１５  通信ネットワーク
【図１】
0005675471.tif 000002
【図２】
0005675471.tif 000003
【図３】
0005675471.tif 000004
【図４】
0005675471.tif 000005
【図５】
0005675471.tif 000006
【図６】
0005675471.tif 000007
【図７】
0005675471.tif 000008
【図８】
0005675471.tif 000009
【図９】
0005675471.tif 000010
【図１０】
0005675471.tif 000011
【図１１】
0005675471.tif 000012
【図１２】
0005675471.tif 000013
【図１３】
0005675471.tif 000014
【図１４】
0005675471.tif 000015
【図１５】
0005675471.tif 000016
【図１６】
0005675471.tif 000017
【図１７】
0005675471.tif 000018
【図１８】
0005675471.tif 000019
【図１９】
0005675471.tif 000020
【図２０】
0005675471.tif 000021
【図２１】
0005675471.tif 000022
【図２２】
0005675471.tif 000023
【図２３】
0005675471.tif 000024
【図２４】
0005675471.tif 000025
【図２５】
0005675471.tif 000026
【図２６】
0005675471.tif 000027