(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024141251
(43)【公開日】2024-10-10
(54)【発明の名称】配置案算出装置、計算機システム及び配置案算出方法
(51)【国際特許分類】
G06F 9/50 20060101AFI20241003BHJP
【FI】
G06F9/50 150C
G06F9/50 150D
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023052785
(22)【出願日】2023-03-29
(71)【出願人】
【識別番号】524132520
【氏名又は名称】日立ヴァンタラ株式会社
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】野村 鎮平
(72)【発明者】
【氏名】早坂 光雄
(57)【要約】
【課題】ユーザの様々な要望を考慮した配置案を容易に作成することが可能な配置案算出装置を提供する。
【解決手段】配置最適化プログラム111は、データとコンテナとの配置案の算出に使用するポリシが異なる複数の最適化エンジン1100のそれぞれを実行して配置案の候補である候補案とその候補案でのデータに関する処理を評価した評価値とを含む候補情報を算出させ、その算出された複数の候補情報に含まれる候補配置案に基づいて当該複数の候補情報を統合してデータ・コンテナ配置案情報として生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
計算機を有する複数の拠点システムのいずれかに、データと当該データに関する処理を行う処理コンポーネントとを配置する配置案に関する配置案情報を生成する配置案算出装置であって、
前記配置案には、前記データ及び前記処理コンポーネントと、それを配置する前記拠点システムとが対応付けられており、
メモリと、
プロセッサと、
前記プロセッサで実行される複数の算出エンジンと、を有し、
前記メモリは、前記複数の拠点システムのそれぞれに関する管理情報を有し、
前記複数の算出エンジンは、前記管理情報と前記処理の目標となる性能である目標性能とに基づいて前記配置案の候補である候補配置案と当該候補配置案での前記データに関する処理を評価した評価値とを含む候補情報を算出し、
それぞれ前記候補情報を算出するための算出方法を定めたポリシを複数有して、前記複数の算出エンジンはそれぞれ前記複数のポリシのうちの1又は複数を用いて候補情報を算出し、
前記プロセッサは、前記配置案の算出に使用する前記ポリシが異なる複数の前記算出エンジンのぞれぞれを実行して前記候補情報を算出させ、当該算出された複数の候補情報に含まれる候補配置案に基づいて当該複数の候補情報を統合して前記配置案情報として生成する、配置案算出装置。
【請求項2】
前記プロセッサは、複数の前記ポリシを指定する指定情報にて指定された複数のポリシのそれぞれに対応している前記算出エンジンを実行する、請求項1に記載の配置案算出装置。
【請求項3】
前記複数の算出エンジンは、それぞれ前記拠点システムを使用する用途である複数のユースケースのいずれかと対応し、
前記指定情報は、前記配置案の算出に使用する前記ユースケースをさらに指定し、
前記プロセッサは、前記指定情報にて指定されたポリシ及びユースケースの両方に対応している前記算出エンジンを実行する、請求項2に記載の配置案算出装置。
【請求項4】
前記プロセッサは、前記候補配置案の前記データ及び処理コンポーネントとそれが配置される前記拠点システムとの組み合わせの少なくとも一部が互いに共通する複数の前記候補情報を統合する、請求項1に記載の配置案算出装置。
【請求項5】
前記配置案は、前記データ及び前記処理コンポーネントを配置する拠点システムである配置拠点システムと、前記配置拠点システムにおいて前記処理コンポーネントに割り当てるハードウェアのリソース量である割当リソース量を含む、請求項4に記載の配置案算出装置。
【請求項6】
前記配置案情報は、当該配置案での前記データに関する処理を評価した評価値を含み、
前記プロセッサは、前記配置拠点システム及び前記割当リソース量の両方が互いに同一となる複数の前記候補情報が存在する場合、当該複数の候補情報のそれぞれに含まれる複数の前記評価値を前記配置案情報の評価値にする、請求項5に記載の配置案算出装置。
【請求項7】
前記配置案情報は、当該配置案での前記データに関する処理を評価した評価値を含み、
前記プロセッサは、前記配置拠点システムが共通し、かつ、前記割当リソース量が異なる複数の前記候補情報が存在する場合、当該複数の候補情報のそれぞれに含まれる前記割当リソース量に基づいて、該複数の候補情報のそれぞれに含まれる複数の前記評価値を修正して前記配置案情報の評価値を生成する、請求項5に記載の配置案算出装置。
【請求項8】
前記プロセッサは、前記配置案情報及び前記管理情報に基づいて、前記配置案情報に従って前記データ及び前記処理コンポーネントを配置する際に係る負荷を評価した負荷評価値を前記配置案情報に追加する、請求項1に記載の配置案算出装置。
【請求項9】
前記負荷評価値は、前記配置案情報に従って前記データ及び前記処理コンポーネントを配置するための係る移行時間及び移行コストの少なくとも一方を含む、請求項8に記載の配置案算出装置。
【請求項10】
前記プロセッサは、前記配置案情報に従って、前記データ及び前記処理コンポーネントを配置させる、
請求項1に記載の配置案算出装置。
【請求項11】
前記プロセッサは、前記配置案情報に従って、前記データ及び前記処理コンポーネントを配置させ、所定の条件に該当した場合に、前記配置案情報を修正し、前記修正した配置案情報に従って、前記データ及び前記処理コンポーネントを再配置する、請求項10に記載の配置案算出装置。
【請求項12】
計算機を有する複数の拠点システムのいずれかに、データと当該データに関する処理を行う処理コンポーネントとを配置する配置案に関する配置案情報を生成する配置案算出装置による配置案算出方法であって、
前記配置案には、前記データ及び前記処理コンポーネントと、それを配置する前記拠点システムとが対応付けられており、
前記配置案算出装置は、
メモリと、
プロセッサと、
前記プロセッサで実行される複数の算出エンジンと、を有し、
前記メモリは、前記複数の拠点システムのそれぞれに関する管理情報を有し、
前記プロセッサで実行される複数の算出エンジンは、前記管理情報と前記処理の目標となる性能である目標性能とに基づいて、前記配置案の候補である候補配置案と当該候補配置案での前記データに関する処理を評価した評価値とを含む候補情報を算出し、
それぞれ前記候補情報を算出するための算出方法を定めたポリシを複数有して、前記複数の算出エンジンはそれぞれ前記複数のポリシのうちの1又は複数を用いて候補情報を算出し、
前記プロセッサは、前記配置案の算出に使用する前記ポリシが異なる複数の前記算出エンジンのぞれぞれを実行して前記候補情報を算出させ、当該算出された複数の候補情報に含まれる候補配置案に基づいて当該複数の候補情報を統合して前記配置案情報として生成する、配置案算出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、配置案算出装置、計算機システム及び配置案算出方法に関する。
【背景技術】
【0002】
ハイブリッドクラウドシステム及びマルチクラウドシステムなどでは、複数の拠点に格納されたデータが様々な用途で利用されている。データの利用効率の向上のためには、各拠点の性能及びコストなどを考慮して、データを利用するためのアプリケーションプログラムを配置する拠点、及び、アプリケーションプログラムに割り当てる割当リソース量などを決定する必要がある(特許文献1参照)。また、近年では、脱炭素社会の実現などのために再生可能エネルギーの利用に対する要望も高く、再生可能エネルギーの利用率なども考慮することが求められている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願公開第2014/0380307号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
アプリケーションプログラムの配置先及び割当リソース量などの配置案を決定する最適化エンジンとして、ユーザの様々な要望に適用した単一の最適化エンジンを作成するには、工数が大きいという問題がある。また、単一の要望に適用した最適化エンジンを複数併用しただけでは、単一の要望を考慮した複数の最適案が算出されるだけなので、複数の要望を考慮した配置案を作成することが難しい。
【0005】
本開示の目的は、ユーザの様々な要望を考慮した配置案を容易に作成することが可能な配置案算出装置、計算機システム及び配置案算出方法を提供することにある。
【課題を解決するための手段】
【0006】
本開示の一態様に従う配置案算出装置は、計算機を有する複数の拠点システムのいずれかに、データと当該データに関する処理を行う処理コンポーネントとを配置する配置案に関する配置案情報を生成する配置案算出装置であって、前記配置案には、前記データ及び前記処理コンポーネントと、それを配置する前記拠点システムとが対応付けられており、メモリと、プロセッサと、前記プロセッサで実行される複数の算出エンジンと、を有し、前記メモリは、前記複数の拠点システムのそれぞれに関する管理情報を有し、前記複数の算出エンジンは、前記管理情報と前記処理の目標となる性能である目標性能とに基づいて前記配置案の候補である候補配置案と当該候補配置案での前記データに関する処理を評価した評価値とを含む候補情報を算出し、それぞれ前記候補情報を算出するための算出方法を定めたポリシを複数有して、前記複数の算出エンジンはそれぞれ前記複数のポリシのうちの1又は複数を用いて候補情報を算出し、前記プロセッサは、前記配置案の算出に使用する前記ポリシが異なる複数の前記算出エンジンのぞれぞれを実行して前記候補情報を算出させ、当該算出された複数の候補情報に含まれる候補配置案に基づいて当該複数の候補情報を統合して前記配置案情報として生成する、配置案算出装置。
【発明の効果】
【0007】
本発明によれば、ユーザの様々な要望を考慮した配置案を容易に作成することが可能になる。
【図面の簡単な説明】
【0008】
【
図1】本開示の実施例に係る計算機システムの構成全体を示す図である。
【
図2】各拠点のハードウェア構成の一例を示す図である
【
図5】拠点間ネットワーク管理表の一例を示す図である。
【
図8】最適化エンジン管理表の一例を示す図である。
【
図9】分散拠点間メタデータ検索処理の一例を説明するためのフローチャートである。
【
図10】拠点内メタデータ検索処理の一例を説明するための図である。
【
図11】分散拠点間メタデータ検索結果の一例を説明するための図である。
【
図12】アプリデプロイ処理の一例を説明するためのフローチャートである。
【
図13】コンテナ・データ配置案算出要求画面の一例を示す図である。
【
図14】配置案作成処理の一例を説明するためのフローチャートである。
【
図15】コンテナ・データ配置情報の一例を示す図である。
【
図19】アプリ配置修正処理の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【0009】
以下、本開示の実施形態を本発明の実施例について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる開示を限定するものではなく、また実施形態で説明されている諸要素及びその組み合わせの全てが本開示の解決手段に必須であるとは限らない。
【0010】
なお、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えば、CPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェースデバイス(例えば、NIC(Network Interface Card))を用いながら行うため、処理の主語がプロセッサ又はプロセッサを有する計算機が行う処理としても良い。
【0011】
図1は、本開示の実施例に係る計算機システムの構成全体を示す図である。
図1に示す計算機システムは、アプリケーションプラットフォーム100と、ホスト150と、複数の拠点(拠点システム)200とを有する。アプリケーションプラットフォーム100、ホスト150及び各拠点200は、ネットワーク10を介して相互に通信可能に接続される。
【0012】
アプリケーションプラットフォーム100は、データとデータに関する処理コンポーネントとを拠点200のいずれかに配置する配置案に関する配置案情報を生成する配置案算出装置である。配置案では、データ及び処理コンポーネントと、それらを配置する拠点200とが対応付けられている。処理コンポーネントは、本実施例では、コンテナであるが、VM(virtual machine)又はプロセスなどでもよい。また、処理コンポーネントとして、プログラムを実行するプロセッサである実行プロセッサに関する配置案が作成されてもよい。データに関する処理を行うプログラムは、本実施例では、第1のプログラムと、第2のプログラムとを含み、第1のプログラムは、データを管理するデータストアプログラム(以下、データストアと略す)であり、第2のプログラムは、データストアにアクセスして所定の処理を実行するアプリケーションプログラム(以下、アプリケーションと略す)である。ただし、第1及び第2のプログラムは、この例に限らず、互いに異なる処理を行うアプリケーションなどでもよい。例えば、第1のプログラムが機械学習の推論を行うアプリケーションであり、第2のプログラムが第1のプログラムによる推論結果を用いて商品やサービスなどのレコメンデーションを行うアプリケーションなどでもよい。
【0013】
ホスト150は、計算機システムを利用するユーザにて使用される。ホスト150は、メモリ160と、CPU161とを有する。メモリ160は、クライアントプログラム162を格納する。CPU161は、メモリ160に格納されたクライアントプログラム162を読み取り、その読み取ったクライアントプログラム162を実行してクライアント処理を行う。クライアント処理は、例えば、コンテナ及びデータの配置案であるコンテナ・データ配置案の算出要求と、コンテナ・データ配置案に基づくデプロイ要求とをアプリケーションプラットフォーム100に送信する処理を含む。
【0014】
拠点200は、データを格納すると共に、コンテナを構築してデータに関する処理を実行するための計算機システムである拠点システムである。各拠点200は、例えば、地理的に隔たった場所に設置される。また、各拠点200は、国を跨いで設置されてもよい。
図1では、拠点200として、3つの拠点200-1~200-3が示されているが、拠点200は、複数あればよい。なお、拠点200-1をエッジ(Edge)、拠点200-2をプライベートクラウド(Private Cloud)、拠点200-3をパブリッククラウド(Public cloud)としているが、これは単なる一例であり、各拠点200の種別は、この例に限定されない。
【0015】
図2は、各拠点200のハードウェア構成の一例を示す図である。
図2に示すように拠点200は、データを格納して所定の処理を実行するための設備(インフラストラクチャ)であるインフラとして、1以上のコンピュートクラスタ30と、1以上のストレージクラスタ40と、1以上のストレージアプライアンス50とを有する。コンピュートクラスタ30、ストレージクラスタ40及びストレージアプライアンス50は、LAN(Local Area Network)21及びSAN(Storage Area Network)22を介して相互に通信可能に接続される。
【0016】
コンピュートクラスタ30は、コンピュートノード300の集合であり、1以上のコンピュートノード300を含む。
【0017】
コンピュートノード300は、アプリケーションを実行して所定の処理を行う計算機ノードである。コンピュートノード300は、本実施例では、汎用のコンピュータシステムにて実現されるが、専用機器にて実現されてもよい。コンピュートノード300は、CPU301と、メモリ302と、ディスク303と、電力計304と、NIC(Network Interface Card)305と、ストレージI/F306とを有し、それらがバス307を介して相互に通信可能に接続される。CPU301は、メモリ302に記録されたプログラムを読み取り、その読み取ったプログラムを実行して種々の処理を行う。メモリ302は、CPU301の動作を規定するプログラム及びプログラムにて使用又は生成される種々の情報などを記憶する。ディスク303は、二次記憶装置である。電力計304は、自ノードの消費電力量を計測する。NIC305は、LAN21を介して他の装置と通信するためのインタフェースである。ストレージI/F306は、SAN22を介してストレージアプライアンス50と通信するためのインタフェースである。
【0018】
ストレージクラスタ40は、ストレージノード400の集合であり、1以上のストレージノード400を含む。
【0019】
ストレージノード400は、データストアプログラム(以下、データストアと略す)を実行してデータの管理を行う計算機ノードである。ストレージノード400は、本実施例では、汎用のコンピュータシステムにて実現されるが、専用機器にて実現されてもよい。ストレージノード400は、CPU401と、メモリ402と、ディスク403と、電力計404と、NIC405とを有し、それらがバス407を介して相互に通信可能に接続される。CPU401は、メモリ402に記録されたプログラムを読み取り、その読み取ったプログラムを実行して種々の処理を行う。メモリ402は、CPU401の動作を規定するプログラム及びプログラムにて使用又は生成される種々の情報などを記憶する。ディスク403は、二次記憶装置である。電力計404は、自ノードの消費電力量を計測する。NIC405は、LAN21を介して他の装置と通信するためのインタフェースである。
【0020】
ストレージアプライアンス50は、データを記憶する複数のディスク503と、ディスク503に対するデータの読み書きを行うストレージコントローラ500とを有する計算機ノード(ストレージ装置)である。ストレージアプライアンス50は、ブロックストレージでもよいし、ファイルストレージでもよいし、オブジェクトストレージでもよいし、それらの組み合わせでもよい。ストレージコントローラ500は、CPU501と、メモリ502と、電力計504と、NIC505と、ホストI/F506と、IOI/F508とを有し、それらがバス507を介して相互に通信可能に接続される。CPU501は、メモリ502に格納されたプログラムを読み取り、その読み取ったプログラムを実行して種々の処理を行う。メモリ502は、CPU501の動作を規定するプログラム及びプログラムにて使用又は生成される種々の情報などを記憶する。電力計504は、自ノードの消費電力量を計測する。NIC405は、LAN21を介して他の装置と通信するためのインタフェースである。ホストI/F506は、SAN22を介してコンピュートクラスタ30と通信するためのインタフェースである。IOI/F508は、ディスク503と通信するためのインタフェースである
【0021】
なお、コンピュートクラスタ30とストレージクラスタ40とが区別されず、同一のクラスタがアプリケーション及びデータストアの両方を実行する構成でもよい。
【0022】
コンピュートノード300、ストレージノード400及びストレージアプライアンス50のメモリ302、402及び502は、
図1に示したように、デプロイ制御プログラム211と、実行基盤プログラム212と、電力消費計測プログラム213とを記憶する。また、コンピュートノード300のメモリは、これらのプログラム(211~213)に加えて複数のアプリ(アプリケーション)251をさらに記憶し、ストレージノード400及びストレージアプライアンス50のメモリ402及び502は、これらのプログラム(211~213)に加えて、拠点間データ制御プログラム214及びメタデータ管理プログラム215を記憶し、メモリ502は、さらに複数のデータストア252とを記憶する。拠点ごとに、その拠点のいずれかのメモリにメタデータDB600が記憶される。なお、
図1では、メモリ302、402及び502の区別をせずに、各プログラム及び情報が示されている。
【0023】
デプロイ制御プログラム211は、コンテナ・データ配置案に基づくデプロイ要求に従って、コンテナ上でアプリ251及びデータストア252のデプロイを実行する。実行基盤プログラム212は、デプロイ要求に従って、アプリ251及びデータストア252のコンテナを構築する。また、実行基盤プログラム212は、デプロイ要求に従った、アプリ251及びデータストア252に対してハードウェアのリソース(HWリソース)の割り当て、ハードウェアのメトリックス及び実行ログの取得などを行う。
【0024】
電力消費計測プログラム213は、電力計304、404又は504を用いて、自ノードの電力消費量を計測する。拠点間データ制御プログラム214は、コンテナ・データ配置案に基づくデータ移動要求に従って、拠点200間でデータを移動(移行)させる。メタデータ管理プログラム215は、拠点間でデータを探すためメタデータDBの拠点間検索機能を提供する。
【0025】
メタデータDB600は、ストレージクラスタ40及びストレージアプライアンス50のディスク403及び503に記憶されたデータに関するメタデータの集合である。
【0026】
図3は、メタデータDB600の一例を示す図である。なお、メタデータDB600は、本実施形態では、上述したように拠点200ごとに格納されるが、この例に限らず、例えば、インフラごとに格納されてもよい。また、
図3では、拠点200-1におけるメタデータDB600の一例が示されている。
【0027】
図3に示すメタデータDB600は、フィールド601~610を有する。フィールド601は、インフラを識別するための識別情報であるインフラIDを格納する。インフラは、ここでは、ストレージクラスタ40及びストレージアプライアンス50である。フィールド602は、データを管理するデータストアを識別するための識別情報であるデータストアIDを格納する。フィールド603は、データを識別するための識別情報であるデータIDを格納する。フィールド604は、データの種別を格納する。データの種別は、本実施形態では、オリジナルのデータを示す「Original」、同一拠点内のオリジナルのデータのスナップショットを示す「Snapshot」、又は、他の拠点のオリジナルデータのスナップショットである複製データを示す「Replica」である。フィールド605は、データの種別が「Snapshot」又は「Replica」の場合に、スナップショットが取得された日時であるスナップショット日時を格納する。
【0028】
フィールド606は、データを格納している格納先を示す格納先情報であるパス情報を格納する。ただし、格納先情報は、パス情報に限らず、格納先の種別に応じて異なっていてもよい。例えば、格納先情報は、格納先がブロックストレージの場合、ボリュームの識別子、格納先がオブジェクトストレージの場合、URI(Uniform Resource Identifier)などでもよい。また、格納先は、データベースのURL(Uniform Resource Name)又はテーブル名などでもよい。フィールド607は、データのサイズを格納する。フィールド608は、データの種別が「Replica」の場合に、そのデータ(複製データ)のレプリカ元の拠点を識別する識別情報である拠点IDを格納する。フィールド609及び610は、データの移動に係る制約情報を格納する。具体的には、フィールド609は、国内の別の拠点へのデータの移動を許可するか否かを示す国内移動可否情報を格納し、フィールド610は、国外の別の拠点へのデータの移動を許可するか否かを示す国外移動可否情報を格納する。国内移動可否情報及び国内移動可否情報は、移動を許可する場合、「可」を示し、移動を許可しない場合、「不可」を示す。
【0029】
なお、メタデータDB600は、フィールド601~610以外にも、他の情報を格納するフィールド、例えば、データの内容を示すラベルを、メタデータを検索するために使用する情報として格納するフィールドを有してもよい。
【0030】
図1の説明に戻る。アプリケーションプラットフォーム100は、種々のプログラム及び情報を記憶するメモリ110と、メモリ110に記憶されたプログラムを読み取り、その読み取ったプログラムを実行して種々の機能を実現するプロセッサであるCPU120とを有する。
【0031】
メモリ110は、本実施例では、配置最適化プログラム111と、メタデータ管理プログラム112と、リソース管理表700と、拠点間ネットワーク管理表800と、アプリ管理表900と、データストア管理表1000と、複数の最適化エンジン1100と、最適化エンジン管理表1200と、コンテナ・データ配置情報3000とを記憶する。
【0032】
配置最適化プログラム111は、最適化エンジン1100を用いて、コンテナ・データ配置案に関する配置案情報であるコンテナ・データ配置情報3000を生成するためのプログラムである。また、配置最適化プログラム111は、コンテナ・データ配置情報3000をホスト150を介してユーザに提示したり、コンテナ・データ配置情報3000に基づくデプロイ要求及びデータ移動要求を各拠点200に送信することで、データ及びコンテナをコンテナ・データ配置情報3000に従って配置させたりすることもできる。
【0033】
メタデータ管理プログラム112は、各拠点200に分散して管理されるデータに関するメタデータを管理するためのプログラムである。リソース管理表700、拠点間ネットワーク管理表800、アプリ管理表900及びデータストア管理表1000は、各拠点200に関する管理情報である。
【0034】
最適化エンジン1100は、管理情報と分散メタデータ管理処理113にて管理されるメタデータとに基づいて、コンテナ・データ配置案の候補である候補配置案を含む候補情報を算出する算出エンジンである。候補情報は、配置最適化プログラム111にてコンテナ・データ配置情報3000を生成するために使用される情報であり、具体的には、候補配置案とその候補配置案によるアプリ151及びデータストア152の処理に関する性能を評価した評価値とを含む。評価値の種類は、後述する最適化ポリシに応じて異なる。なお、最適化エンジン1100は、例えば、数理最適化又は機械学習などの技術に基づいて構築される。最適化エンジン管理表1200は、最適化エンジン1100を管理するための情報である。
【0035】
図4は、リソース管理表700の一例を示す図である。リソース管理表700は、各拠点200のハードウェアのリソースに関するHWリソース情報と、各拠点200における電力状況に関する電力リソース情報とを管理する情報であり、フィールド701~715を有する。
【0036】
フィールド701は、拠点200を識別する識別情報である拠点IDを格納する。フィールド702は、拠点200が置かれた国を示す国コードを格納する。
【0037】
フィールド703~711は、HWリソース情報を格納する。具体的には、フィールド703は、拠点200に設置されたインフラを識別するインフラIDを格納する。フィールド704~709は、インフラが有するHWリソースを示す情報を格納する。具体的には、フィールド704は、インフラ内の計算機ノードが備えるCPUのコア数の総和である総コア数を格納する。フィールド705は、インフラ内の計算機ノードが備えるメモリの容量を総和である総容量を格納する。フィールド706は、インフラ内の計算機ノードが備えるCPUの使用率を格納する。フィールド706は、インフラ内の計算機ノードが備えるメモリの使用率を格納する。フィールド708は、インフラ内の計算機ノードの1つ当たりのコア数であるノードコア数を格納する。フィールド709は、インフラ内の計算機ノードの1つ当たりのメモリの容量であるノードメモリ容量を格納する。なお、本実施例は、CPUのコア数及びメモリの容量は、計算機ノードごとに同一である。
【0038】
フィールド710は、計算機ノードの1当たりのユーザが負担する費用であるノード費用を格納する。なお、本実施例は、計算機ノードごとにユーザに提供される。フィールド711は、拠点200内におけるデータ転送に係る費用であるデータ転送費用を格納する。フィールド712は、インフラの全稼働時間に対する実際に継続稼働できる時間の割合を可用性として格納する。
【0039】
フィールド713~715は、電力リソース情報を格納する。具体的には、フィールド713は、拠点200で使用可能な全電力量に対する、拠点200にて利用可能な再生可能エネルギーによる電力量である利用可能再エネルギー量(利用可能再エネ量)の割合である電力中再エネルギー率(電力中再エネ率)を格納する。フィールド714は、拠点200における現在の電力利用量を格納する。フィールド715は、電力の利用に係る費用である電力費用を格納する。なお、拠点200にて、電力中再エネルギー率の代わりに、利用可能再エネルギー量が決まっている場合には、その情報がリソース管理表700に保持されてもよい。
【0040】
なお、電力費用は、再生可能エネルギーによる電力量による費用と、それ以外の電力量による費用とに分かれていてもよい。また、利用可能再エネルギー量及び電力中再エネルギー率の一方のみが格納されていてもよい。なお、拠点200によって、利用可能再エネルギー量が決まっている場合と、電力中再エネルギー率が決まっている場合とがある。また、利用可能再エネルギー量及び電力中再エネルギー率の両方が決まっていない場合もある。
【0041】
また、リソース管理表700は、現在の利用可能再エネルギー量又は電力中再エネルギー率の代わりに、又は加えて、将来の利用可能再エネルギー量又は電力中再エネルギーを予測した予測値を示す電力予測情報を含んでもよい。
【0042】
図5は、拠点間ネットワーク管理表800の一例を示す図である。拠点間ネットワーク管理表800は、拠点200間の通信に関する情報であり、ネットワーク帯域管理表810と、ネットワークレイテンシ管理表820と、ネットワーク転送課金管理表830とを含む。
【0043】
ネットワーク帯域管理表810は、データの転送元となる拠点200である転送元拠点811とデータの転送先となる転送先拠点812との間のネットワーク帯域を拠点200(拠点ID)の組み合わせごとに示す。
【0044】
ネットワークレイテンシ管理表820は、転送元拠点811と転送先拠点812との間のレイテンシであるネットワークレイテンシを拠点200の組み合わせごとに示す。
【0045】
ネットワーク転送課金管理表830は、転送元拠点811と転送先拠点812との間の通信に係る料金である転送量課金を拠点200の組み合わせごとに示す。
【0046】
図6は、アプリ管理表900の一例を示す図である。アプリ管理表900は、フィールド901~903を有する。フィールド901は、アプリ251を識別するための識別情報であるアプリIDを格納する。フィールド902は、アプリ251が行う処理の内容を示す説明情報を格納する。フィールド903は、アプリ251の実行が許可されない拠点200である実行不可拠点の拠点IDを格納する。
【0047】
図7は、データストア管理表1000の一例を示す図である。データストア管理表1000は、データストア252を管理するための情報であり、フィールド1001及び1002を有する。フィールド1001は、データストア252を識別するための識別情報であるデータストアIDを格納する。フィールド1002は、データストア252の種類として、データストア252が対応しているストレージの種類を格納する。
【0048】
図8は、最適化エンジン管理表1200の一例を示す図である。最適化エンジン管理表1200は、最適化エンジン1100を管理するための情報であり、フィールド1201~1204を含む。
【0049】
フィールド1201は、最適化エンジン1100を識別するための識別情報である最適化エンジンIDを格納する。フィールド1202は、最適化エンジン1100にてサポートされている1つ又は複数の最適化ポリシを示すサポートポリシ情報を格納する。最適化ポリシは、コンテナ・データ配置案の候補である候補配置案を算出するための算出方法(最適化方法)を定めたポリシである。本実施例では、最適化ポリシは、アプリ151による処理に関する、最適化(例えば、最小化又は最大化)する対象となる性能指標で区別される。性能指標は、性能指標は、アプリ151による処理に関する性能を示す指標であり、例えば、アプリケーション自身の性能であるアプリ性能(処理速度など)、処理時の実行に係る実行コスト、処理の可用性及び処理に係る電力中再エネ率(再エネ率)又は消費電力などである。
図8の例では、サポートポリシ情報は、各最適化ポリシについて、当該最適化ポリシをサポートしている場合、「〇」、当該最適化ポリシをサポートしていない場合、「×」を示す。
【0050】
なお、最適化エンジン1100は、複数の最適化ポリシをサポートしていてもよいし、同一の最適化ポリシをサポートしている複数の最適化エンジン1100が存在してもよい。
【0051】
フィールド1203は、最適化エンジン1100にてサポートされているユースケースを示すサポートユースケース情報を格納する。ユースケースは、拠点200を使用する用途である。本実施例では、ユースケースとして、クラウド(拠点200-2及び200-3など)のアプリ251が生成したデータを他のアプリで使用する「二次使用」と、ローカル(拠点200-1)のアプリ251が生成したデータをクラウドに移行する「クラウド移行」と、災害などにより拠点200の利用が困難になった際に別の拠点200で復旧する「DR(Disaster Recovery:ディザスタリカバリ)」とがあるが、ユースケースはこれらの例に限らない。
図8の例では、サポートユースケース情報は、各ユースケースについて、当該ユースケースをサポートしている場合、「〇」、当該ユースケースをサポートしていない場合、「×」を示す。フィールド1204は、最適化エンジン1100が格納されている格納場所を示すパス情報を格納する。
【0052】
なお、最適化エンジン1100は、複数の最適化ポリシをサポートしていてもよいし、複数のユースケースをサポートしていてもよい。また、同一の最適化ポリシをサポートしている複数の最適化エンジン1100が存在してもよいし、同一のユースケースをサポートしている複数の最適化エンジン1100が存在してもよい。
【0053】
図9は、アプリケーションプラットフォーム100のメタデータ管理プログラム112による分散拠点間メタデータ検索処理の一例を説明するためのフローチャートである。分散拠点間メタデータ検索処理は、例えば、ユーザからホスト150のクライアントプログラム162を介して、メタデータの検索要求を受け付けた場合などに実行される。
【0054】
分散拠点間メタデータ検索処理では、先ず、メタデータ管理プログラム112は、各拠点200に対してメタデータDB600の検索クエリを発行する(ステップS401)。その後、メタデータ管理プログラム112は、各拠点200から検索クエリに応じた検索結果を受領する(ステップS402)。メタデータ管理プログラム112は、各拠点200からの検索結果を集約した分散拠点間メタデータ検索結果を作成して、ホスト150のクライアントプログラム162を介してユーザに応答し(ステップS403)、処理を終了する。なお、分散拠点間メタデータ検索結果は、アプリケーションプラットフォーム100のメモリ110などに記録されてもよい。
【0055】
図10は、ステップS401の検索クエリを受領した側の処理である拠点内メタデータ検索処理の一例を説明するための図である。拠点内メタデータ検索処理は、例えば、拠点200の内の計算機ノードのいずれか(メタデータDB600を保持している計算機ノードなど)のメタデータ管理プログラム215にて、検索クエリを受領した場合などに実行される。
【0056】
拠点内メタデータ検索処理では、メタデータ管理プログラム215は、検索クエリに応じたレコードを自拠点内のメタデータDB600から検索する(ステップS451)。メタデータ管理プログラム215は、検索したレコードから、検索元のユーザにアクセス権がないレコードを削除する(ステップS452)。メタデータ管理プログラム215は、削除されずに残ったレコードを検索クエリの検索結果として作成してストレージアプライアンス50に応答し(ステップS453)、処理を終了する。なお、アクセス権は、例えば、各拠点200にて管理される。
【0057】
図11は、分散拠点間メタデータ検索結果の一例を説明するための図である。
図11に示す分散拠点間メタデータ検索結果650は、フィールド651~660を含む。
【0058】
フィールド651は、データを識別するためのデータIDを格納する。フィールド652は、データのスナップショット日時を格納する。フィールド652は、データのサイズを格納する。フィールド654は、データの国内移動可否情報を格納する。フィールド655は、データの国外移動可否情報を格納する。フィールド656は、データを格納している拠点を示す拠点IDを格納する。フィールド657は、データに対応するデータストアを識別するデータストアIDを格納する。フィールド658は、データに対応するデータストアを実行するインフラを識別するインフラIDを格納する。フィールド659は、データの種別を格納する。フィールド660は、データのパス情報を格納する。
【0059】
図12は、アプリ151及びデータストア152をデプロイするためのアプリデプロイ処理の一例を説明するためのフローチャートである。
【0060】
アプリデプロイ処理では、先ず、ホスト150のクライアントプログラム162は、ユーザからアプリ151及びデータストア152のデプロイするための条件であるデプロイ条件を受け付け、そのデプロイ条件に応じたコンテナ・データ配置案の算出要求を作成する(ステップS501)。クライアントプログラム162は、作成した算出要求をアプリケーションプラットフォーム100に送信する(ステップS502)。
【0061】
アプリケーションプラットフォーム100の配置最適化プログラム111は、算出要求を受信し、その算出要求に基づいてコンテナ・データ配置情報3000を作成してメモリ110に記憶すると共にホスト150に返信する配置案作成処理(
図14参照)を実行する(ステップS503)。
【0062】
ホスト150のクライアントプログラム162は、コンテナ・データ配置情報3000を受信し、そのコンテナ・データ配置情報3000を表示(提示)する。その後、クライアントプログラム162は、コンテナ・データ配置情報3000を承認する旨の情報を受け付けると、コンテナ・データ配置情報3000に基づくデプロイを要求するデプロイ要求をアプリケーションプラットフォーム100に送信する(ステップS504)。なお、コンテナ・データ配置案が承認されなかった場合、クライアントプログラム162は、ステップS501の処理に戻る。
【0063】
アプリケーションプラットフォーム100の配置最適化プログラム111は、デプロイ要求を受信すると、コンテナ・データ配置情報3000に基づくデータ移動要求をデータの転送元の拠点に送信して、データの転送先の拠点への転送を実行する(ステップS505)。例えば、配置最適化プログラム111は、データの転送元の拠点200において、転送するデータに対応するデータストア252を実行するストレージノード400の拠点間データ制御プログラム214にデータ移動要求を送信することで、その拠点間データ制御プログラム214にデータの転送を実行させる。
【0064】
配置最適化プログラム111は、デプロイ要求に従ってアプリ151及びデータストア152に対するHWリソースのリソース割当量に関する設定ファイル(例えば、コンテナのマニフェストファイルなど)を作成する(ステップS506)。配置最適化プログラム111は、設定ファイルを加えたデプロイ要求を、コンテナ・データ配置案にて示される配置拠点に送信して(ステップS507)、処理を終了する。
【0065】
図13は、ユーザがデプロイ条件を入力するためのコンテナ・データ配置案算出要求画面の一例を示す図である。
【0066】
図13に示すコンテナ・データ配置案算出要求画面1900は、ユースケース選択欄1910と、アプリケーション選択欄1920と、データ選択欄1930と、KPI(Key Performance Indicator)入力欄1940と、実行日時入力欄1950と、送信ボタン1960とを有する。
【0067】
ユースケース選択欄1910は、拠点200を使用する用途であるユースケースを指定するためのインタフェースである。アプリケーション選択欄1920は、コンテナに配置する対象となるアプリ151を指定するためのインタフェースである。データ選択欄1930は、対象のアプリ151での利用対象となるデータを指定するためのインタフェースであり、利用対象のデータの一覧を示す一覧表1931と、利用対象とするデータを追加するための追加ボタン1932とを有する。
【0068】
アプリケーション選択欄1920及びデータ選択欄1930は、ユースケース選択欄1910にて指定されたユースケースに応じて変更されてもよい。例えば、ユースケースとして「クラウド移行」が指定された場合、アプリケーション選択欄1920を稼働中のコンテナを選択するインタフェースとし、稼働中のコンテナの情報から、対応するアプリケーション及びデータが特定されてもよい。
【0069】
KPI入力欄1940は、作成するコンテナ・データ配置案の目標となる目標性能であるKPIを指定するためのインタフェースであり、KPIの種別を指定する選択欄1941と、選択欄1941にて選択された種別のKPIの値を指定するための入力欄1942と、指定するKPIの種別を追加する追加ボタン1943と、最適化ポリシを指定する方法選択欄1944とを含む。KPIの種別は、例えば、アプリケーションの性能、信頼性、実行時にかかるコスト、及び、実行時にかかる電力などである。最適化ポリシは、例えば、電力中再エネルギー率の最大化、利用可能再エネルギー量の最大化、又は、電力費用の最小化などを示す。
【0070】
実行日時入力欄1950は、デプロイを実行するデプロイタイミングを指定するためのインタフェースであり、図の例では、現時点(今すぐ)と、任意の日時の設定とを選択することができる。送信ボタン1960は、指定されたデプロイ条件を送信するためのボタンである。なお、デプロイ条件は、コンテナ・データ配置案算出要求画面1900にて指定された情報(ユースケース、アプリケーション、データ、KPI、最適化ポリシ及びデプロイタイミング)である指定情報を含む。
【0071】
図14は、
図12のステップS503の配置案作成処理の一例を説明するためのフローチャートである。
【0072】
配置案作成処理では、配置最適化プログラム111は、算出要求にデプロイ条件として含まれるユースケース及びアプリケーションに基づいて、コンテナ・データ配置案の算出対象のアプリケーションが単一か否かを判断する(ステップS601)。算出対象のアプリケーションが複数の場合(ステップS601:No)、配置最適化プログラム111は、複数の算出対象のアプリケーションのいずれかを選択する(ステップS602)。例えば、配置最適化プログラム111は、算出対象のアプリケーションの実行ログに基づいて、まだ選択されていない算出対象のアプリケーションのうち、KPIへの影響が最も大きいアプリケーションを判別して配置対象のアプリケーションとして選択する(ステップS602)。なお、算出対象となるアプリケーションが単一の場合(ステップS601:No)、ステップS602の処理はスキップされる。
【0073】
次に、配置最適化プログラム111は、算出要求にデプロイ条件として含まれるユースケース及び最適化ポリシである指定ユースケース及び指定ポリシと、最適化エンジン管理表1200とに基づいて、メモリ110に記憶されている最適化エンジン1100の中から、コンテナ・データ配置案の算出に使用する最適化エンジンを対象エンジンとして複数選択する(ステップS603)。具体的には、配置最適化プログラム111は、指定ユースケースをサポートする最適化エンジンの中から、指定ポリシをサポートする最適化エンジンを対象エンジンとして複数選択する。ここでは、指定ポリシが複数あるとする。この場合、配置最適化プログラムは、複数の指定ポリシのそれぞれをサポートする複数の最適化エンジン1100を対象エンジンとして選択する。例えば、指定ユースケースが「二次利用」であり、かつ、指定KPIが「アプリケーション性能」及び「コスト」の場合、配置最適化プログラム111は、「二次利用」のユースケースをサポートする最適化エンジン1100の中から、「アプリケーション性能」のKPIをサポートする最適化エンジン1100と、「コスト」のKPIをサポートする最適化エンジン1100とを対象エンジンとして選択する。
【0074】
配置最適化プログラム111は、リソース管理表700、分散拠点間メタデータ検索結果650、アプリ管理表900及びデータストア管理表1000に基づいて、各対象エンジンに入力する入力情報を生成する(ステップS604)。入力情報は、例えば、各拠点200ので余っている(使用されていない)余剰リソース量及び余剰電力量、アプリ及びデータストアに既に費やされているリソース量及び電力消費量、アプリ及びデータの移動に係る制約情報などであるが、これらの例に限定されない。
【0075】
配置最適化プログラム111は、対象エンジンのそれぞれに、入力情報と算出要求にデプロイ条件として含まれるKPIとを入力して、対象エンジンのそれぞれに候補情報を算出させ、所定の条件に基づいて、それらの候補情報(
図15参照)から複数の対象候補情報を選択する(ステップS605)。ここでは、配置最適化プログラム111は、対象エンジンごとに、複数の候補情報を算出させ、さらに、対象エンジンごとに、それらの候補情報の中から評価値の高い方から所定個の候補情報を対象候補情報として選択する。
【0076】
そして、配置最適化プログラム111は、互いに異なる対象エンジンの対象候補情報を、その対象候補情報が含む候補配置案に基づいて統合した統合情報をコンテナ・データ配置情報3000を生成する配置案統合処理(
図16及び
図17参照)を実行する(ステップS606)。
【0077】
配置最適化プログラム111は、コンテナ・データ配置情報3000と管理情報とに基づいて、コンテナ・データ配置情報3000に従ってデータ及びコンテナを配置した際に係る負荷を評価した負荷評価値を算出してコンテナ・データ配置案に追加する(ステップS607)。負荷評価値は、本実施例では、データ及びコンテナを配置するために係る移行時間及び移行コストであるが、この例に限定されない。例えば、負荷評価値は、移行時間及び移行コストの一方でもよいし、データ及びコンテナを配置するために係る電力量などの他の情報でもよい。
【0078】
配置最適化プログラム111は、算出対象のアプリケーションが単一か否かを判定する(ステップS608)。算出対象のアプリケーションが複数の場合(ステップS608:No)、配置最適化プログラム111は、統合情報による候補配置案の目標性能であるKPIが達成されたか否かを判定する(ステップS609)。KPIが達成されていない場合(ステップS609:No)、ステップS603の処理に戻り、次に影響が大きいアプリケーションを選択する。
【0079】
また、算出対象のアプリケーションが単一の場合(ステップS608:Yes)、及び、KPIが達成されている場合(ステップS609:Yes)、配置最適化プログラム111は、処理を終了する。
【0080】
図15は、候補情報の一例を示す図である。
図15に示す候補情報2000は、コンテナ配置案2010と、コンテナ割当リソース案2020と、データ配置案2030と、データストア割当リソース案2040と、実行時情報見積2050とを含む。
【0081】
コンテナ配置案2010は、コンテナを配置する配置先を示す情報であり、フィールド2011~2013を含む。フィールド2011は、コンテナを識別する識別情報であるコンテナIDを格納する。フィールド2012は、コンテナを配置する拠点200である配置拠点(配置拠点システム)を識別する拠点IDを格納する。フィールド2013は、コンテナを配置するインフラである配置インフラを識別するインフラIDを格納する。
【0082】
コンテナ割当リソース案2020は、コンテナに割り当てる割当リソース量を示す情報であり、図の例では、フィールド2021及び2022を含む。フィールド2021は、コンテナに割り当てるCPUのコア数を格納する。フィールド2022は、コンテナに割り当てるメモリの容量を格納する。コンテナ割当リソース案2020は、他のハードウェアリソースに関する割当リソース量を格納するフィールドを含んでもよい。
【0083】
データ配置案2030は、データを配置する配置先を示す情報であり、フィールド2031~2034を含む。フィールド2031は、データを識別するデータIDを格納する。フィールド2032は、データを格納する拠点200である配置拠点を識別する拠点IDを格納する。本実施形態では、コンテナの配置拠点とデータの配置拠点は同一である。フィールド2033は、データを格納するインフラである配置インフラを識別するインフラIDを格納する。フィールド2034は、データを読み書きするためのデータストアである配置データストアを識別するデータストアIDを格納する。なお、データ配置案2030は、データストアを実行するインフラを識別するインフラIDを格納するフィールドなどをさらに備えていてもよい。
【0084】
データストア割当リソース案2040は、データストアに割り当てる割当リソース量を示す情報であり、図の例では、フィールド2041及び2042を含む。フィールド2041は、データストアに割り当てるCPUのコア数を格納する。フィールド2042は、データストアに割り当てるメモリの容量を格納する。データストア割当リソース案2040は、他のハードウェアリソースに関する割当リソース量を格納するフィールドを含んでもよい。
【0085】
実行時情報見積2050は、候補配置案によるアプリ151及びデータストア152の処理に関する性能を評価した評価値を示す情報であり、ユーザによるコンテナ・データ配置案の妥当性の判断を支援するために使用される。
【0086】
図15の例では、実行時情報見積2050は、互いに異なる種類の評価値を格納するフィールド2051~2058を有する。具体的には、フィールド2051は、アプリ151による処理の実行時間を格納する。フィールド2052は、アプリ251の実行コストを格納する。フィールド2053は、アプリ251実行時の可用性を格納する。フィールド2054は、アプリ251の実行による電力消費量における再生可能エネルギーによる電力量の割合である再エネルギー率(再エネ率)を格納する。フィールド2055は、アプリ251の実行による電力消費量を格納する。フィールド2056は、アプリ251の実行によるCO2の排出量を格納する。なお、CO2の排出量は、例えば、アプリ251の実行による電力消費量における再生可能エネルギー以外のエネルギーによる電力量などから算出することができる。フィールド2057は、配置への移行に要するデータ転送時間を格納する。フィールド2058は、配置への移行に要するデータ転送コストを格納する。
【0087】
実行時情報見積2050に格納される評価値は、上述したように最適化エンジン1100がサポートしている最適化ポリシごとに変わる。
図15の例では、実行時情報見積2050は、評価値として実行時間のみを格納している。
【0088】
図16及び
図17は、
図14のステップS606の配置案統合処理の一例を示す図である。配置案統合処理は、配置最適化プログラム111は、候補配置案の少なくとも一部が互いに一致する(共通する)複数の候補情報を統合する処理である。
図16の例は、候補配置案の全てが一致する候補情報を統合する例であり、
図17の例は、候補配置案の一部が一致する候補情報を統合する例である。一致するものがない候補情報(例えば、案2000-A2など)は、破棄されてもよい。
【0089】
図16では、最適化エンジン1100-Aにて算出された複数の候補情報(案2000-A1、A2…)と、最適化エンジン1100-Bにて算出された複数の候補情報(案2000-B1、B2…)とを統合する例が示されている。最適化エンジン1100-Aは、最適化ポリシとして性能指標として「アプリ性能」をサポートした最適化エンジンであり、最適化エンジン1100-Bは、最適化ポリシとして性能指標として「消費電力」をサポートした最適化エンジンである。また、最適化エンジン1100-Aにて算出された候補情報は、評価値として実行時間3051が含まれ、最適化エンジン1100-Bにて算出された候補情報には、電力消費量3055が含まれる。
【0090】
図16の例では、最適化エンジン1100-A及び1100-Bのそれぞれの候補情報のうち、コンテナ配置案2010、コンテナ割当リソース案2020、データ配置案2030及びデータストア割当リソース案2040の全てが一致する候補情報(案2000-A1及びB1と2000-A3及びB3)が存在する。この場合、配置最適化プログラム111は、これらの全てが一致する候補情報を統合した統合情報(案2000-A1/B1及びA3/B3)を生成する。その際、配置最適化プログラム111は、統合情報に対して、統合前の候補情報のそれぞれに含まれる評価値の両方を加える。このため、例えば、統合情報(案2000-A1/B1)には、実行時間3051及び電力消費量3055の両方が含まれる。
【0091】
図17では、最適化エンジン1100-Cにて算出された候補情報(案2000-C1)と、最適化エンジン1100-Dにて算出された候補情報(案2000-D1)とを統合する例が示されている。最適化エンジン1100-Cは、最適化ポリシとして性能指標として「アプリ性能」をサポートした最適化エンジンであり、最適化エンジン1100-Dは、最適化ポリシとして性能指標として「消費電力」をサポートした最適化エンジンである。また、最適化エンジン1100-Cにて算出された候補情報は、評価値として実行時間3051が含まれ、最適化エンジン1100-Dにて算出された候補情報には、電力消費量3055が含まれる。
【0092】
図17の例では、最適化エンジン1100-C1及び1100-D1のそれぞれの候補情報のうち、コンテナ配置案2010及びデータ配置案2030が一致し、かつ、コンテナ割当リソース案2020及びデータストア割当リソース案2040が異なっている。この場合でも、配置最適化プログラム111は、これらの候補情報を統合した統合情報を生成する。
【0093】
その際、配置最適化プログラム111は、統合情報に対して、当該候補情報のそれぞれに含まれる割当リソース量に基づいて、その候補情報に含まれる評価値を修正した修正評価値を加える。例えば、配置最適化プログラム111は、コンテナ割当リソース案2020及びデータストア割当リソース案2040に含まれる全てのHWリソースの種別において、一方の案の方が他方の案よりも割当リソース量が多くなる候補情報の組を探索する。そして、配置最適化プログラム111は、リソース割当量が少ない案から多い案へは実行時間3051を、多い案から少ない案へは電力消費量3055を組み込み。その際、配置最適化プログラム111は、実行時間3051を組み込んだ方の案の電力消費量3055を消費電力の最大値に修正し、電力消費量3055を組み込んだ方の案の実行時間3051を実行時間の最大値に修正する。これは、HWリソース量が多くなる場合に性能は高くなる、または使用されたHWリソース量が増えると消費電力が大きくなるという性質を利用したものである。
【0094】
図18は、統合情報であるコンテナ・データ配置情報3000をユーザに提示するための提示画面の一例を示す図である。
図18に示す提示画面2300は、配置案比較表2310と、配置案詳細表2330と、KPI関係グラフ2340とを含む。
【0095】
配置案比較表2310は、コンテナ・データ配置情報3000のリストを示し、フィールド2311及び2320を含む。フィールド2311は、コンテナ・データ配置情報3000を識別するための名称を格納する。フィールド2320は、ユーザによるコンテナ・データ配置情報3000の妥当性の判断を支援するための情報であり、コンテナ・データ配置情報3000に含まれる実行時情報見積2050に応じた見積情報を格納する。見積情報は、実行時情報見積2050そのものでもよいし、ユーザによる視認性などを考慮して実行時情報見積2050を加工した情報でもよい。実行時情報見積2050の加工としては、項目の一時削除、実行コスト3052及びデータ転送コスト3058などのコストの統計値(例えば、総計など)の算出などが挙げられる。
図18の例では、フィールド2320は、実行時間、実行コスト、再エネ率、データ転送時間、及びデータ転送コストのそれぞれを格納するフィールド2321~2325を含む。
【0096】
配置案詳細表2330は、配置案比較表2310にて選択された配置案の詳細として、コンテナ・データ配置情報3000を示す配置案情報を示す。配置案詳細表2330は、コンテナ・データ配置情報3000そのものでもよいし、ユーザによる視認性などを考慮してコンテナ・データ配置情報3000を加工した情報でもよい。
【0097】
KPI関係グラフ2340は、ユーザの指定するKPIを縦軸と横軸にとり、各配置案の評価値をプロットすることで、KPI間の関係性を可視化する。なお、ユーザが指定するKPIは1つでも3つ以上でもよい。
【0098】
図19は、デプロイしたアプリ151及びデータストア152を修正するアプリ配置修正処理の一例を説明するためのフローチャートである。
【0099】
アプリ配置修正処理は、所定の条件に該当した場合(例えば、各拠点から収集するアプリとデータストアの性能情報やコスト情報、電力情報に基づいてKPIが未達であることを検知した場合、障害の発生によるアプリの性能の低下又は停止を検知した場合、及び、定期的にアプリ配置の修正案を算出するように設定されている場合など)に実行される。
【0100】
アプリ配置修正処理では、先ず、配置最適化プログラム111は、修正対象となるアプリケーションに対して、デプロイ時に設定したKPIに基づいてコンテナ・データ配置情報を修正案として生成する(ステップS701)。このとき、配置最適化プログラム111は、コンテナ・データ配置情報3000を最初に作成したときと比べて、例えば、各拠点200のHWリソースの余剰量を変更したり、最適化エンジン1100が使用する数式又はパラメータなどを変更したりしてもよい。
【0101】
配置最適化プログラム111は、コンテナ・データ配置の自動修正が許可されているか否かを確認する(ステップS702)。なお、自動修正の許否は、例えば、ユーザなどにて予め設定される。
【0102】
自動修正が許可されていない場合(ステップS702:No)、配置最適化プログラム111は、生成した修正案をホスト150に送信して、修正案に基づくデプロイを許可するか否かをユーザに問い合わせる(ステップS703)。ここでは、デプロイが許可されたとする。この場合、ホスト150のクライアントプログラム162は、修正案に基づくデプロイを要求するデプロイ要求をアプリケーションプラットフォーム100に送信する。また、自動修正が許可された場合(ステップS702:Yes)、配置最適化プログラム111は、ステップS703の処理をスキップする。
【0103】
その後、
図12を用いて説明したアプリデプロイ処理のステップS505~S507の処理が実行される。
【0104】
以上説明したように本実施形態によれば、配置最適化プログラム111は、データとコンテナとの配置案の算出に使用するポリシが異なる複数の最適化エンジン1100のぞれぞれを実行して配置案の候補である候補案とその候補案でのデータに関する処理を評価した評価値とを含む候補情報を算出させ、その算出された複数の候補情報に含まれる候補配置案に基づいて当該複数の候補情報を統合してデータ・コンテナ配置案情報として生成する。したがって、複数の最適化エンジン1100を使用してユーザの様々な要望を考慮したデータ・コンテナ配置情報を生成することができるため、ユーザの様々な要望を考慮した配置案を容易に作成することが可能になる。
【0105】
また、本実施形態では、配置最適化プログラム111は、指定された複数の最適化ポリシのそれぞれをサポートしている最適化エンジン1100を対象エンジンとして実行する。したがって、ユーザの様々な要望をより適切に考慮することが可能となる。
【0106】
また、本実施形態では、配置最適化プログラム111は、指定された最適化ポリシ及びユースケースの両方をサポートしている最適化エンジン1100を対象エンジンとして実行する。したがって、ユーザの様々な要望をより適切に考慮することが可能となる。
【0107】
また、本実施形態では、配置最適化プログラム111は、候補配置案の少なくとも一部が互いに共通する複数の候補情報を統合する。より具体的には、配置拠点が互いに共通する複数の候補情報を統合する。この場合、候補情報を適切に統合することが可能となる。
【0108】
また、本実施形態では、配置最適化プログラム111は、配置拠点及び割当リソース量の両方が互いに共通する複数の候補情報が存在する場合、その候補情報のそれぞれに含まれる評価値を含むデータ・コンテナ配置情報を生成する。また、配置最適化プログラム111は、配置拠点が共通し、かつ、割当リソース量が異なる複数の候補情報が存在する場合、その候補情報のそれぞれに含まれる割当リソース量に基づいて候補情報のそれぞれに含まれる複数の評価値を修正した修正評価値を含む統合情報を生成する。したがって、データ・コンテナ配置案を適切に評価した評価値を提示することが可能となる。
【0109】
また、本実施形態では、配置最適化プログラム111は、データ・コンテナ配置案情報及び管理情報に基づいて、データ・コンテナ配置案情報に従ってデータ及びコンテナを配置する際に係る負荷を評価した負荷評価値をデータ・コンテナ配置案情報に追加する。負荷評価値は、例えば、データ及びコンテナを配置するための係る移行時間及び移行コストの少なくとも一方を含む。この場合、データ・コンテナ配置案が妥当か否かをより適切にユーザに判断させることが可能となる。
【0110】
配置最適化プログラム111は、データ・コンテナ配置案に従って、データ及びコンテナを配置させ、所定の条件に該当した場合に、データ・コンテナ配置案を修正し、修正したデータ・コンテナ配置案に従って、データ及びコンテナを再配置する。この場合、適切な配置が可能となる。
【0111】
上述した本開示の実施形態は、本開示の説明のための例示であり、本開示の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本開示の範囲を逸脱することなしに、他の様々な態様で本開示を実施することができる。
【符号の説明】
【0112】
10:ネットワーク 30:コンピュートクラスタ 40:ストレージクラスタ 50:ストレージアプライアンス 100:アプリケーションプラットフォーム 110:メモリ 111:配置最適化プログラム 112:メタデータ管理プログラム 113:分散メタデータ管理処理 120:CPU 150:ホスト 151:アプリ 152:データストア 160:メモリ 161:CPU 162:クライアントプログラム 200:拠点 200:拠点 211:デプロイ制御プログラム 212:実行基盤プログラム 213:電力消費計測プログラム 214:拠点間データ制御プログラム 215:メタデータ管理プログラム 251:アプリ 252:データストア 300:コンピュートノード 301:CPU 302:メモリ 303:ディスク 304:電力計 306:ストレージI/F 307:バス 400:ストレージノード 401:CPU 402:メモリ 403:ディスク 404:電力計 407:バス 500:ストレージコントローラ 501:CPU 502:メモリ 503:ディスク 504:電力計 506:ホストI/F 507:バス