(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023088212
(43)【公開日】2023-06-26
(54)【発明の名称】情報基盤管理方法、情報基盤の管理サーバ、及び情報基盤管理プログラム
(51)【国際特許分類】
G06F 9/50 20060101AFI20230619BHJP
【FI】
G06F9/50 150B
【審査請求】有
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2021202916
(22)【出願日】2021-12-14
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】長崎 英紀
(72)【発明者】
【氏名】神原 康之
(72)【発明者】
【氏名】菅内 公徳
(72)【発明者】
【氏名】二階堂 旭
(57)【要約】
【課題】情報基盤におけるリソースの配置を適切に行う。
【解決手段】ワークフローを実行する計算リソースを有する計算機と、記憶リソースとを管理する情報基盤管理方法における管理サーバは、アプリケーション毎の処理速度と計算リソースモデルからアプリケーションを実行するために必要な計算リソースの必要量を算出する。ワークフローの実行期限内における計算リソースの使用率が上限を超過する場合に、計算リソースモデルを用いて、計算リソースの空き容量からアプリケーションを実行可能な第1の実行可能時間を算出する。ワークフローを実行する際のアプリケーションの目標実行時間を第1の実行可能時間とし、第1の実行可能時間による目標実行時間の延長時間を、計算リソース上限を超過しない他のアプリケーションの目標実行時間へ加算して、アプリケーションの終了時刻を遅らせ、他のアプリケーションの開始時刻を早める調整を行う。
【選択図】
図52
【特許請求の範囲】
【請求項1】
ワークフローを実行する計算リソースを有する計算機と、前記計算機と通信可能に接続された記憶リソースとを管理する情報基盤管理方法であって、
プロセッサ及びメモリを有する管理サーバは、
前記ワークフローにおいて実行されるアプリケーションの実行順序及び実行回数、該アプリケーションによる前記記憶リソースに格納されるデータへのデータアクセスの実行順序及び実行回数、並びに、前記ワークフローの実行期限のユーザによる編集結果に基づいて前記ワークフローを作成するワークフロー編集機能を有し、
前記管理サーバが、
前記ワークフロー編集機能から前記アプリケーションの実行順序及び実行回数、並びに、該アプリケーションによるデータアクセスの実行順序及び実行回数を取得し、
前記アプリケーション毎に、
前記データアクセスによるデータサイズの合計を前記アプリケーションの処理時間で除算した前記アプリケーションの処理速度を算出し、
前記処理速度と前記計算リソースの使用量との関係をモデル化した計算リソースモデルに対して、算出した前記処理速度を入力として、前記アプリケーションを実行するために必要な前記計算リソースの必要量を算出し、
前記実行期限内における前記必要量と前記計算リソースの既存負荷とに基づく前記計算リソースの使用率が計算リソース上限を超過する場合に、前記計算リソースモデルに対して、前記計算リソースの上限量から該既存負荷を減算した前記計算リソースの空き容量を入力として、前記計算リソースの空き容量に基づく前記アプリケーションを実行可能な第1の実行可能時間を算出し、
前記ワークフローを実行する際の前記アプリケーションの目標実行時間を前記第1の実行可能時間とし、前記第1の実行可能時間による該目標実行時間の延長時間を、前記計算リソース上限を超過しない他の前記アプリケーションの目標実行時間へ加算して、前記アプリケーションの終了時刻を遅らせ、他の前記アプリケーションの開始時刻を遅らせる調整を行う
各処理を含んだことを特徴とする情報基盤管理方法。
【請求項2】
請求項1に記載の情報基盤管理方法であって、
前記管理サーバが、
前記アプリケーション毎に、
前記処理速度と前記記憶リソースのアクセス性能との関係をモデル化したアクセス特性モデルに対して、算出した前記処理速度を入力として、前記アプリケーションを実行するために必要な前記記憶リソースの必要アクセス性能を算出し、
前記実行期限内における前記必要アクセス性能と前記記憶リソースの既存負荷とに基づく前記記憶リソースの使用率が記憶リソース上限を超過する場合に、前記アクセス特性モデルに対して、前記記憶リソースの上限量から該既存負荷を減算した前記記憶リソースの空き容量を入力として、前記記憶リソースの実現可能なアクセス性能に基づく前記アプリケーションを実行可能な第2の実行可能時間を算出し、
前記ワークフローを実行する際の前記アプリケーションの目標実行時間を前記第2の実行可能時間とし、前記第2の実行可能時間による該目標実行時間の延長時間を、前記記憶リソース上限を超過しない他の前記アプリケーションの目標実行時間へ加算して、前記終了時刻を遅らせ、前記開始時刻を遅らせる調整を行う
各処理を含んだことを特徴とする情報基盤管理方法。
【請求項3】
請求項2に記載の情報基盤管理方法であって、
複数の前記計算機が、複数の拠点に配置され、各拠点の前記記憶リソースがネットワークを介して接続され、
前記管理サーバが、
前記ワークフローにおいて実行されるアプリケーションが配置される前記計算リソースと該アプリケーションがアクセスするデータが配置される前記記憶リソースの拠点情報を取得し、
前記アプリケーションの実行順序及び実行回数、前記データアクセスの実行順序及び実行回数、並びに、前記拠点情報に基づいて、前記データを各拠点の前記記憶リソースへ配置する複数の配置パターンを作成し、
前記実行期限内に前記ワークフローを実行完了可能な全ての前記複数の配置パターンについて、
前記拠点毎及び前記記憶リソース毎に、
前記ネットワークを介した2つの前記拠点間の前記記憶リソースのアクセス性能と該拠点間の前記ネットワークのネットワーク帯域及び前記記憶リソースのノード数のそれぞれとの関係をモデル化した記憶リソース性能モデルに対して、前記必要アクセス性能、前記アプリケーションの前記拠点情報、及び前記データが格納される前記記憶リソースの前記拠点情報を入力として、前記アプリケーションを実行するために必要な前記拠点間の前記ネットワークの必要帯域及び前記記憶リソースの必要ノード数を算出し、
前記実行期限内における前記必要帯域と前記記憶リソースの既存負荷とに基づく前記記憶リソースのネットワーク帯域の使用率が帯域上限を超過する場合に、前記記憶リソース性能モデルに対して、前記ネットワーク帯域の上限量から該既存負荷を減算した前記ネットワーク帯域の空き容量を入力として、前記ネットワークの実現可能なアクセス性能に基づく前記アプリケーションを実行可能な第3の実行可能時間を算出し、
前記ワークフローを実行する際の前記アプリケーションの目標実行時間を前記第3の実行可能時間とし、前記第3の実行可能時間による該目標実行時間の延長時間を、前記帯域上限を超過しない他の前記アプリケーションの目標実行時間へ加算して、前記終了時刻を遅らせ、前記開始時刻を遅らせる調整を行う
各処理を含んだことを特徴とする情報基盤管理方法。
【請求項4】
請求項3に記載の情報基盤管理方法であって、
前記ワークフローは、複数のワークフローを含み、
前記管理サーバが、
前記複数のワークフローの各々について最短のデータのアクセス実行時間を単位として実行開始時刻を遅らせ、遅らせた実行開始時刻だけ各ワークフローの実行時間を短縮する処理を繰返し、前記複数のワークフローの実行時の前記計算リソース、前記記憶リソース、及び前記ネットワークのうちの少なくとも何れかを含むリソースの全ての使用率の平均が最も低くなる前記実行時間を選択する
処理を含んだことを特徴とする情報基盤管理方法。
【請求項5】
請求項4に記載の情報基盤管理方法であって、
前記管理サーバが、
前記複数の配置パターン毎に、
前記配置パターンに従って再配置開始時刻から再配置終了時刻までの再配置時間で前記ネットワークを介して2つの前記拠点間で前記データの再配置を実行させた場合の前記ネットワーク帯域の使用率を算出し、
前記使用率が上限を超過する場合に、前記複数のワークフローにおいて実行される前記アプリケーションによる前記データへの最短のアクセス時間を単位として前記再配置終了時刻を遅らせ、遅らせた前記再配置終了時刻だけ前記再配置時間を延長する処理を繰返し、前記データの再配置の実行時及び前記複数のワークフローを実行時の前記リソースの全ての使用率の平均が最も低くなる前記再配置時間を選択する
処理を含んだことを特徴とする情報基盤管理方法。
【請求項6】
請求項5に記載の情報基盤管理方法であって、
前記管理サーバが、
前記複数の配置パターンの中から、前記リソースの全ての使用率の平均が最も低くなる所定配置パターンを選択する
処理を含んだことを特徴とする情報基盤管理方法。
【請求項7】
請求項6に記載の情報基盤管理方法であって、
前記管理サーバは、
前記ネットワークを介して接続された各拠点の前記記憶リソースにおけるデータの仮想化を行う前記計算機の仮想化機能と、
前記リソースを管理する管理機能と、を有し、
前記管理サーバが、
前記管理機能に対して、前記データの再配置に際して前記リソースにQoS(Quality of Service)の設定を行うように指示し、
前記リソースへのQoSの設定完了後に、前記仮想化機能に対して、前記所定配置パターンに従って前記データの再配置を実行するように指示する
処理を含んだことを特徴とする情報基盤管理方法。
【請求項8】
請求項7に記載の情報基盤管理方法であって、
前記管理サーバは、
前記所定配置パターンに従って前記データの再配置が完了後に、前記管理機能に対して、前記リソースに前記複数のワークフロー毎のQoSの設定を行うように指示し、
前記リソースに前記複数のワークフロー毎のQoSの設定完了後に、前記ワークフローの実行を開始する
処理を含んだことを特徴とする情報基盤管理方法。
【請求項9】
ワークフローを実行する計算リソースを有する計算機と、前記計算機と通信可能に接続された記憶リソースとを管理する情報基盤の管理サーバであって、
前記ワークフローにおいて実行されるアプリケーションの実行順序及び実行回数、該アプリケーションによる前記記憶リソースに格納されるデータへのデータアクセスの実行順序及び実行回数、並びに、前記ワークフローの実行期限のユーザによる編集結果に基づいて前記ワークフローを作成するワークフロー編集機能部と、
前記ワークフロー編集機能部から前記アプリケーションの実行順序及び実行回数、並びに、該アプリケーションによるデータアクセスの実行順序及び実行回数を取得し、
前記アプリケーション毎に、
前記データアクセスによるデータサイズの合計を前記アプリケーションの処理時間で除算した前記アプリケーションの処理速度を算出し、
前記処理速度と前記計算リソースの使用量との関係をモデル化した計算リソースモデルに対して、算出した前記処理速度を入力として、前記アプリケーションを実行するために必要な前記計算リソースの必要量を算出し、
前記実行期限内における前記必要量と前記計算リソースの既存負荷とに基づく前記計算リソースの使用率が計算リソース上限を超過する場合に、前記計算リソースモデルに対して、前記計算リソースの上限量から該既存負荷を減算した前記計算リソースの空き容量を入力として、前記計算リソースの空き容量に基づく前記アプリケーションを実行可能な第1の実行可能時間を算出し、
前記ワークフローを実行する際の前記アプリケーションの目標実行時間を前記第1の実行可能時間とし、前記第1の実行可能時間による該目標実行時間の延長時間を、前記計算リソース上限を超過しない他の前記アプリケーションの目標実行時間へ加算して、前記アプリケーションの終了時刻を遅らせ、他の前記アプリケーションの開始時刻を遅らせる調整を行う
各処理を実行するアプリ処理・データアクセス実行時間計算部と、
を有することを特徴とする管理サーバ。
【請求項10】
請求項9に記載の管理サーバであって、
前記アプリ処理・データアクセス実行時間計算部は、
前記アプリケーション毎に、
前記処理速度と前記記憶リソースのアクセス性能との関係をモデル化したアクセス特性モデルに対して、算出した前記処理速度を入力として、前記アプリケーションを実行するために必要な前記記憶リソースの必要アクセス性能を算出し、
前記実行期限内における前記必要アクセス性能と前記記憶リソースの既存負荷とに基づく前記記憶リソースの使用率が記憶リソース上限を超過する場合に、前記アクセス特性モデルに対して、前記記憶リソースの上限量から該既存負荷を減算した前記記憶リソースの空き容量を入力として、前記記憶リソースの実現可能なアクセス性能に基づく前記アプリケーションを実行可能な第2の実行可能時間を算出し、
前記ワークフローを実行する際の前記アプリケーションの目標実行時間を前記第2の実行可能時間とし、前記第2の実行可能時間による該目標実行時間の延長時間を、前記記憶リソース上限を超過しない他の前記アプリケーションの目標実行時間へ加算して、前記終了時刻を遅らせ、前記開始時刻を遅らせる調整を行う
各処理を実行する
ことを特徴とする管理サーバ。
【請求項11】
請求項10に記載の管理サーバであって、
複数の前記計算機が、複数の拠点に配置され、各拠点の前記記憶リソースがネットワークを介して接続され、
前記ワークフローにおいて実行されるアプリケーションが配置される前記計算リソースと該アプリケーションがアクセスするデータが配置される前記記憶リソースの拠点情報を取得し、前記アプリケーションの実行順序及び実行回数、前記データアクセスの実行順序及び実行回数、並びに、前記拠点情報に基づいて、前記データを各拠点の前記記憶リソースへ配置する複数の配置パターンを作成するデータ配置組合せ計算部を有し、
前記アプリ処理・データアクセス実行時間計算部は、
前記実行期限内に前記ワークフローを実行完了可能な全ての前記複数の配置パターンについて、
前記拠点毎及び前記記憶リソース毎に、
前記ネットワークを介した2つの前記拠点間の前記記憶リソースのアクセス性能と該拠点間の前記ネットワークのネットワーク帯域及び前記記憶リソースのノード数のそれぞれとの関係をモデル化した記憶リソース性能モデルに対して、前記必要アクセス性能、前記アプリケーションの前記拠点情報、及び前記データが格納される前記記憶リソースの前記拠点情報を入力として、前記アプリケーションを実行するために必要な前記拠点間の前記ネットワークの必要帯域及び前記記憶リソースの必要ノード数を算出し、
前記実行期限内における前記必要帯域と前記記憶リソースの既存負荷とに基づく前記記憶リソースのネットワーク帯域の使用率が帯域上限を超過する場合に、前記記憶リソース性能モデルに対して、前記ネットワーク帯域の上限量から該既存負荷を減算した前記ネットワーク帯域の空き容量を入力として、前記ネットワークの実現可能なアクセス性能に基づく前記アプリケーションを実行可能な第3の実行可能時間を算出し、
前記ワークフローを実行する際の前記アプリケーションの目標実行時間を前記第3の実行可能時間とし、前記第3の実行可能時間による該目標実行時間の延長時間を、前記帯域上限を超過しない他の前記アプリケーションの目標実行時間へ加算して、前記終了時刻を遅らせ、前記開始時刻を遅らせる調整を行う
各処理を実行することを特徴とする管理サーバ。
【請求項12】
請求項11に記載の管理サーバであって、
前記ワークフローは、複数のワークフローを含み、
前記アプリ処理・データアクセス実行時間計算部は、
前記複数のワークフローの各々について最短のデータのアクセス実行時間を単位として実行開始時刻を遅らせ、遅らせた実行開始時刻だけ各ワークフローの実行時間を短縮する処理を繰返し、
前記複数のワークフローの実行時の前記計算リソース、前記記憶リソース、及び前記ネットワークのうちの少なくとも何れかを含むリソースの全ての使用率の平均が最も低くなる前記実行時間を選択する
処理を実行することを特徴とする管理サーバ。
【請求項13】
請求項12に記載の管理サーバであって、
前記アプリ処理・データアクセス実行時間計算部は、
前記複数の配置パターン毎に、
前記配置パターンに従って再配置開始時刻から再配置終了時刻までの再配置時間で前記ネットワークを介して2つの前記拠点間で前記データの再配置を実行させた場合の前記ネットワーク帯域の使用率を算出し、
前記使用率が上限を超過する場合に、前記複数のワークフローにおいて実行される前記アプリケーションによる前記データへの最短のアクセス時間を単位として前記再配置終了時刻を遅らせ、遅らせた前記再配置終了時刻だけ前記再配置時間を延長する処理を繰返し、
前記データの再配置の実行時及び前記複数のワークフローを実行時の前記リソースの全ての使用率の平均が最も低くなる前記再配置時間を選択する
処理を実行することを特徴とする管理サーバ。
【請求項14】
請求項13に記載の管理サーバであって、
前記データ配置組合せ計算部は、
前記複数の配置パターンの中から、前記リソースの全ての使用率の平均が最も低くなる所定配置パターンを選択する
処理を実行することを特徴とする管理サーバ。
【請求項15】
請求項9~14の何れか1項に記載の管理サーバとしてコンピュータを機能させるための情報基盤管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報基盤管理方法、情報基盤の管理サーバ、及び情報基盤管理プログラムに関する。
【背景技術】
【0002】
近年、ハイブリッドクラウドやマルチクラウドといった複数の拠点(オンプレミスやパブリッククラウドなど)が連携する連携システムをターゲットにしたデータ管理市場が急成長してきている。例えばハイブリッドクラウド環境では、コスト、パフォーマンス、セキュリティ等を踏まえて、各拠点に、利用アプリケーション(利用アプリケーションで稼働するソフトウェア)のデプロイ、及び、利用アプリケーションが利用するデータの配置(データ移行、データコピーなどによるデータ利活用)が行われる。例えば特許文献1では、メタデータを手掛かりにデータセット単位でデータの配置が行われている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
一般的に情報基盤上で分析ワークフロー(アプリケーションとデータを組合せた一連の分析処理)を実行するには、処理時間がかかる。情報基盤上で、分析者の指定時間内に、全ての分析ワークフローの実行を完了させるためには、アプリケーションの実行順序から実行時間を正確に予測し、情報基盤の割当て(リソースの配置)を適切に行うことが求められる。
【0005】
しかし、従来のコンピュートやストレージといった情報基盤のスケジューリング機能は、分析アプリケーションがいつ実行開始され、終了するかを知る術が無く、アプリケーションの実行時間を予測し得なかった。具体的には、従来の情報基盤のスケジューリング機能は、起動中のアプリケーションや使用データに対して、CPU(Central Processing Unit)使用率やIOPS(Input/Output Per Second)といった単位時間あたりのリソース消費頻度の指標だけを頼りに、リソースを配置するしかなかった。また、ある特定の処理がリソースを大量消費していても、それが妥当なのか妥当ではないのかを判断する情報がなかった。
【0006】
すなわち、上述の従来技術では、データの準備から分析ワークフローの完了までの合計時間を考慮していないため、アプリケーションの実行時間を正確に予測し得ず、リソースの配置を適切に行うことができなかった。
【0007】
本発明は、上記に鑑みてなされたものであり、情報基盤におけるリソースの配置を適切に行うことを一つの目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決するため、本発明の一態様では、ワークフローを実行する計算リソースを有する計算機と、前記計算機と通信可能に接続された記憶リソースとを管理する情報基盤管理方法であって、プロセッサ及びメモリを有する管理サーバは、前記ワークフローにおいて実行されるアプリケーションの実行順序及び実行回数、該アプリケーションによる前記記憶リソースに格納されるデータへのデータアクセスの実行順序及び実行回数、並びに、前記ワークフローの実行期限のユーザによる編集結果に基づいて前記ワークフローを作成するワークフロー編集機能を有し、前記管理サーバが、前記ワークフロー編集機能から前記アプリケーションの実行順序及び実行回数、並びに、該アプリケーションによるデータアクセスの実行順序及び実行回数を取得し、前記アプリケーション毎に、前記データアクセスによるデータサイズの合計を前記アプリケーションの処理時間で除算した前記アプリケーションの処理速度を算出し、前記処理速度と前記計算リソースの使用量との関係をモデル化した計算リソースモデルに対して、算出した前記処理速度を入力として、前記アプリケーションを実行するために必要な前記計算リソースの必要量を算出し、前記実行期限内における前記必要量と前記計算リソースの既存負荷とに基づく前記計算リソースの使用率が計算リソース上限を超過する場合に、前記計算リソースモデルに対して、前記計算リソースの上限量から該既存負荷を減算した前記計算リソースの空き容量を入力として、前記計算リソースの空き容量に基づく前記アプリケーションを実行可能な第1の実行可能時間を算出し、前記ワークフローを実行する際の前記アプリケーションの目標実行時間を前記第1の実行可能時間とし、前記第1の実行可能時間による該目標実行時間の延長時間を、前記計算リソース上限を超過しない他の前記アプリケーションの目標実行時間へ加算して、前記アプリケーションの終了時刻を遅らせ、他の前記アプリケーションの開始時刻を早める調整を行う各処理を含んだことを特徴とする。
【発明の効果】
【0009】
本発明の一態様によれば、例えば、情報基盤におけるリソースの配置を適切に行うことができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係る全体システムの構成例を示す図。
【
図4】分析ワークフロー情報管理表の構成例を示す図。
【
図5】アプリ・データ特性情報管理表の構成例を示す図。
【
図11】計算用再配置変数管理表の構成例を示す図。
【
図12】計算用インフラ情報管理表の構成例を示す図。
【
図13】実施形態に係るデータ最適配置処理の全体処理例を示すシーケンス図。
【
図14】学習フェーズの処理例を示すフローチャート。
【
図15】リソース稼働情報を実測する際のアプリの種別ごとのアプリとデータの配置パターンの組合せ例を示す図。
【
図16】アプリ・計算リソースモデルの例を示す図。
【
図17】アプリ・データアクセス特性モデルの例を示す図。
【
図18】ストレージ性能モデル(拠点内コンピュート-ストレージ間)の例を示す図。
【
図19】ストレージ性能モデル(拠点間-ストレージ間)の例を示す図。
【
図20】ストレージ性能モデル(ストレージノード数)の例を示す図。
【
図21】推論フェーズの処理概要を説明するための図。
【
図22】推論フェーズの処理例を示すフローチャート。
【
図23】データ配置組合せ計算の詳細処理例を示すフローチャート。
【
図24】分析ワークフロー・アプリ・データ情報取得の詳細処理例を示すフローチャート。
【
図25】データ配置パターン作成の詳細処理例を示すフローチャート。
【
図26】アプリ処理・データアクセス実行時間計算の処理概要を説明するための図。
【
図27】アプリ処理・データアクセス実行時間計算の詳細処理例を示すフローチャート。
【
図28】各種実行時刻_初期値決めの詳細処理例を示すフローチャート。
【
図29】データ再配置_初期値設定の処理概要を説明するための図。
【
図30】データ再配置_初期値設定の詳細処理例を示すフローチャート。
【
図31】ワークフロー_初期値設定の処理概要を説明するための図。
【
図32】ワークフロー_初期値設定の詳細処理例を示すフローチャート。
【
図33】複数ワークフロー_初期値設定の処理概要を説明するための図。
【
図34】複数ワークフロー_初期値設定の詳細処理例を示すフローチャート。
【
図35】アプリ・データ_初期値設定の処理概要を説明するための図。
【
図36】アプリ・データ_初期値設定の詳細処理例を示すフローチャート。
【
図37】アプリ・データアクセス実行時刻計算の詳細処理例を示すフローチャート。
【
図38】データアクセス実行時刻計算の詳細処理例を示すフローチャート。
【
図39】複数アプリ間配分調整の処理概要を説明するための図。
【
図40】複数アプリ間配分調整の詳細処理例を示すフローチャート。
【
図41】1つのアプリ実行におけるリソース消費量計算の詳細処理例を示すフローチャート。
【
図42】アプリケーションの要求処理速度算出の詳細処理例を示すフローチャート。
【
図43】コンピュートのハードウェアリソース量算出の詳細処理例を示すフローチャート。
【
図44】ストレージの必要性能算出の詳細処理例を示すフローチャート。
【
図45】ストレージ・ネットワークのハードウェアリソース量算出の詳細処理例を示すフローチャート。
【
図46】1つのワークフロー実行におけるリソース消費量計算の詳細処理例を示すフローチャート。
【
図47】拠点内(クラスタ内)のコンピュート消費量計算の詳細処理例を示すフローチャート。
【
図48】拠点内(クラスタ内)のストレージ消費量計算の詳細処理例を示すフローチャート。
【
図49】消費IO量及びストレージノード数換算の詳細処理例を示すフローチャート。
【
図50】拠点間のストレージ・ネットワーク消費量計算の詳細処理例を示すフローチャート。
【
図51】アプリ時間調整必要性確認の詳細処理例を示すフローチャート。
【
図52】WF内アプリ目標実行時間調整の詳細処理例を示すフローチャート。
【
図53】複数ワークフロー間配分調整の処理概要を説明するための図。
【
図54】複数ワークフロー間配分調整の詳細処理例を示すフローチャート。
【
図55】複数WFリソース消費量計算の詳細処理例を示すフローチャート。
【
図56】複数WFコンピュート/ストレージ消費量計算の詳細処理例を示すフローチャート。
【
図57】複数WFストレージ・ネットワーク消費量計算の詳細処理例を示すフローチャート。
【
図58】データ再配置・ワークフロー配分調整の処理概要を説明するための図。
【
図59】データ再配置・ワークフロー配分調整の詳細処理例を示すフローチャート。
【
図60】データ再配置のリソース使用量計算の詳細処理例を示すフローチャート。
【
図61】データ再配置の時間調整の詳細処理例を示すフローチャート。
【
図62】データ再配置・ワークフローの時間配分選択の詳細処理例を示すフローチャート。
【
図63】配置変更実行の詳細処理例を示すフローチャート。
【
図64】分析ワークフロー実行の詳細処理例を示すフローチャート。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は、図面を含めて例示に過ぎず、特許請求の範囲に係る発明を限定するものではない。また、実施形態の中で説明されている諸要素及びその組合せの全てが、発明の解決手段に必須であるとは限らない。また、発明の構成に必須だが周知である構成については、図示及び説明を省略する場合がある。
【0012】
以下の説明において、プログラムは、計算機のような装置にインストールされてもよいし、例えば、プログラム配布サーバ又は計算機が読取り可能な(例えば非一時的な)記録媒体にあってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
【0013】
また、以下の説明において、CPU(Central Processing Unit)は、1又は複数である。CPUに代表されるマイクロプロセッサに限らず、GPU(Graphics Processing Unit)のような他種のプロセッサでもよい。また、CPUは、シングルコアでもよいしマルチコアでもよい。また、CPUは、処理の一部又は全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサでも代替できる。
【0014】
また、以下の説明において、「xxx表」のように情報をテーブル形式で説明するが、情報はどのような構造のデータでもよい。従って、「xxx表」は「xxx情報」と言うことができる。また、以下の説明において、各表の構成は一例であり、一つの表は、二つ以上の表に分割されてもよいし、二つ以上の表の全部又は一部が一つの表にまとめられてもよい。
【0015】
また、以下の説明において、種々の対象の識別情報として、識別番号が使用されるが、識別番号以外の種類の識別情報(例えば、英字や符号を含んだ識別子)が採用されてもよい。以下の説明において、“#Y”は番号Yを表し、例えば“XXX#Y”は、番号Yで識別されるXXXを表す。
【0016】
また、以下の説明において、同種の要素を区別しないで説明する場合には、参照符号(または、参照符号のうちの共通符号)を使用し、同種の要素を区別して説明する場合は、要素の識別番号(または参照符号)を使用することがある。また、各図に示す各要素の数は一例であって、図示に限られるものではない。
【0017】
また、以下の説明において、連携システムは、ハイブリッドクラウドであるが、分析ワークフローを実行する情報基盤の一例を示すに過ぎない。すなわち、分析ワークフローを実行する情報基盤は、単独拠点のシステム及び複数拠点が連携する連携システムの何れであってもよい。また、各拠点のコンピュート(計算リソース)は、オンプレミスサーバ及び仮想マシンの何れであってもよい。例えば、連携システムは、ハイブリッドクラウドに限らず、マルチクラウドであってもよい。
【0018】
また、以下の説明において、データDxとファイルFLxは、同義である。
【0019】
(全体システムSの構成)
図1は、実施形態に係る全体システムSの構成例を示す図である。全体システムSは、管理サイト1、1以上のオンプレミスサイト2、及び、1以上のクラウドサイト3の各拠点を含んで構成される。管理サイト1には、管理サーバ10、及び、NW-SW(ネットワークスイッチ)100が配置される。
【0020】
オンプレミスサイト2には、1以上のオンプレミスのサーバ20、1以上のストレージデバイス201、NW-SW200a、及び、ストレージNW-SW200bが配置される。同一拠点内の複数のサーバ20全体が1つのクラスタであり、個々のサーバ20がノードである。
【0021】
クラウドサイト3には、物理マシン上に構築された1以上の仮想マシン30、及び、ストレージの仮想化によるストレージサービスとして提供されるストレージデバイス301が配置される。同一拠点内の複数の仮想マシン30全体が1つのクラスタであり、個々の仮想マシン30がノードである。
【0022】
管理サーバ10、サーバ20、及び、仮想マシン30は、NW-SW100、200a及びネットワークを介して接続される。また、ストレージデバイス201、301は、ストレージNW-SW200b及びネットワークを介して接続される。
【0023】
管理サーバ10は、サーバ20及び仮想マシン30を含んで構成される連携システムCSを管理する。管理サーバ10は、CPU11、メモリ12、及び、ネットワークI/F(Inter Face)13を含んで構成される。CPU11は、メモリ12と協働してプログラムを実行することで各種の機能部を実現する。メモリ12には、CPU11によって実現される機能部として、アロケーション制御部121、フローベースプログラミング機能部122、及び、ITインフラ管理部123が格納されている。
【0024】
アロケーション制御部121は、連携システムCS上で実行する分析ワークフローの各データを配置する拠点(オンプレミスサイト2、クラウドサイト3)を決定する計算を行い、計算した配置先へ各データの配置の実行指示を出力する。
【0025】
フローベースプログラミング機能部122は、ユーザがUI(User Interface)上でアプリケーションやデータを接続し、分析ワークフローを定義するための機能を有するFlow-Based Programming Functionと呼ばれるワークフローエディタを提供する。ITインフラ管理部123は、オンプレミスサイト2及びクラウドサイト3の遠隔の拠点に配置される情報基盤を構成する各種情報機器を、一元的に管理及び監視する。
【0026】
サーバ20は、CPU21、メモリ22、及び、ネットワークI/F23を含んで構成される。CPU21は、メモリ22と協働してプログラムを実行することで各種の機能部を実現する。メモリ22には、CPU21によって実現される機能部として、モニタリング機能部221、コンテナ管理部222、及び、データ仮想化機能部223が格納されている。
【0027】
モニタリング機能部221は、コンテナアプリケーション(以下、「アプリ」と略称する)とITインフラなどの稼働情報を紐づけ、監視可能にする。コンテナ管理部222は、アプリの実行基盤である。データ仮想化機能部223は、他のデータ仮想化機能部223、323と連携してストレージ・ネットワークを構築し、異なるストレージデバイス201、301間で、データの配置実行を行う。また、データ仮想化機能部223は、他のデータ仮想化機能部223、323と連携し、ファイル又はボリュームのスタブ化(仮想化)を行い、バックグラウンドでデータの実体を転送する。また、データ仮想化機能部223は、ストレージデバイス201、301とデータの配置位置との関係を管理する。
【0028】
仮想マシン30は、CPU31、及び、メモリ32を含んで構成される。CPU31は、メモリ32と協働してプログラムを実行することで各種の機能部を実現する。メモリ32には、CPU31によって実現される機能部として、モニタリング機能部321、コンテナ管理部322、及び、データ仮想化機能部323が格納されている。モニタリング機能部321、コンテナ管理部322、及び、データ仮想化機能部323は、それぞれ、モニタリング機能部221、コンテナ管理部222、及び、データ仮想化機能部223と同様の機能を有する。
【0029】
なお、仮想マシン30は、コンテナ型仮想サーバに限らず、ハイパーバイザ型仮想サーバでもよく、サーバ20及び仮想マシン30上で動作するアプリは、コンテナアプリに限られない。
【0030】
(ストレージデバイス201の構成)
図2は、ストレージデバイス201の構成例を示す図である。ストレージデバイス201は、通信可能に接続された1以上のストレージノード2010を含んで構成される。ストレージノード2010は、CPU2011、メモリ2012、ディスク2013、及び、ネットワークI/F2014を含んで構成される。CPU2011は、単独で又は他のストレージノード2010のCPU2011と共に、メモリ2012の協働により、物理的な記憶媒体であるディスク2013を管理し、サーバ20に対して記憶領域を提供する。
【0031】
なお、ストレージデバイス301は、ストレージの仮想化によって、ストレージデバイス201と同様の機能を提供する。
【0032】
(アロケーション制御部121の構成)
図3は、アロケーション制御部121の構成例を示す図である。アロケーション制御部121は、CPU11のプログラム実行により実現される機能部として、リソースモデル作成部1211、データ配置組合せ計算部1212、アプリ処理・データアクセス実行時間計算部1213、配置変更実行部1214、及び、分析ワークフロー実行部1215を有する。
【0033】
また、アロケーション制御部121は、各種情報として、分析ワークフロー情報管理表1216、アプリ・データ特性情報管理表1217、リソースモデル管理表1218、構成情報管理表1219、稼働情報管理表1220、データ配置組合せ表1221、計算用WF(Work Flow)変数管理表1222、計算用再配置変数管理表1223、及び、計算用インフラ情報管理表1224を格納している。
【0034】
(分析ワークフロー情報管理表1216の構成)
図4は、分析ワークフロー情報管理表1216の構成例を示す図である。分析ワークフロー情報管理表1216は、連携システムCS上で実行する分析ワークフローの情報を管理する表である。分析ワークフロー情報管理表1216は、「対象」「項目」「値」「ソース」の項目を有する。「対象」は、対象の分析ワークフロー、該当の分析ワークフローで実行されるアプリ(アプリ(コンテナ))、及び、該当の分析ワークフローで使用するデータ(データ(ファイル))に関する情報を管理する。
【0035】
例えば分析ワークフロー情報管理表1216の#1~#4の行では、“ワークフロー1”の「項目」、その「値」、及び、情報の出力元である「ソース」として、“ワークフロー識別子”“ワークフローの実行期限(min(分))”“アプリの実行順序/回数”“ファイルアクセスの実行順序/回数”に対応する各値とソースがそれぞれ格納されている。#1~#4の行では、“WF1”で識別されるワークフロー1は、120分の実行期限であり、アプリ“App-a”と“App-b”を1回ずつ並列実行後、アプリ“App-c”が1回実行され、アプリ“App-a”がファイル“FL0”に1回アクセス後にファイル“FL1”に1回アクセスし、これらの情報の出力元は“Flow-Based Programing Function”(フローベースプログラミング機能部122)であることを表す。
【0036】
(アプリ・データ特性情報管理表1217の構成)
図5は、アプリ・データ特性情報管理表1217の構成例を示す図である。アプリ・データ特性情報管理表1217は、連携システムCS上で実行する分析ワークフローのアプリ及びデータの属性情報を管理する表である。アプリ・データ特性情報管理表1217は、「分類」「項目」「詳細」「値」「ソース」「取得対象」の項目を有する。
【0037】
「分類」は、対象がコンテナアプリ(アプリ(コンテナ))か、データファイル(データ(ファイル))か、あるいはこれらの両方(共通)であるかを示す。「項目」は、「分類」に示される対象のIDや種類といった識別情報や、アプリが行うデータのIO量やCPUコア数といったアプリ実行に関する特性情報の具体的項目を列挙する。「詳細」は、各「項目」の説明である。「値」は、各「項目」が取る具体値である。「ソース」は、各「項目」の値の出力元である。「取得対象」は、各「項目」が取得されるのが、後述の「学習フェーズ」「推論フェーズ」の何れか又は両方であるかを示す。
【0038】
例えばアプリ・データ特性情報管理表1217の#3の行では、“アプリ(コンテナ)”の「項目」、その「値」、「ソース」、及び、「取得対象」として、“アプリの場所”“オンプレミスサイト((On-premise Site)#1)”“Monitoring Function(学習時)/Flow-Based Programming Function(推論時)”“学習・推論”の各値がそれぞれ格納されている。#3の行では、“アプリ(コンテナ)”の“アプリの場所”は、学習フェーズ時及び推論フェーズ時に取得及び出力される情報であり、学習フェーズ時には“Monitoring Function”によって取得及び出力され、推論フェーズ時には“Flow-Based Programming Function”によって取得及び出力されることを表す。
【0039】
(リソースモデル管理表1218の構成)
図6は、リソースモデル管理表1218の構成例を示す図である。リソースモデル管理表1218は、後述の学習フェーズによって作成されたリソースモデルを管理する表である。リソースモデル管理表1218は、「分類」「モデル名」「対象リソース(x)」「対象要件・指標(y)」「アプリ種別」「配置パターン」「モデル式」の項目を有する。また、「配置パターン」は、「アプリ(スタブデータ)」「データ(オリジナルデータ)」の項目を有する。
【0040】
「分類」は、該当のリソースモデルの分類を表す。「モデル名」は、該当のリソースモデルの名称である。「対象リソース(x)」は、該当のリソースモデルの対象であり、該当のリソースモデルの説明変数xを与えるリソースを表す。「対象要件・指標(y)」は、該当のリソースの評価指標であり、該当のリソースモデルの目的変数yである。「アプリ種別」は、該当のリソースモデルが適用されるアプリケーションの種別を表す。
【0041】
「配置パターン」の「アプリ(スタブデータ)」は、該当のアプリケーションが配置される拠点を表す。「配置パターン」の「データ(オリジナルデータ)」は、該当のアプリケーションが入出力するデータが配置される拠点を表す。「アプリ(スタブデータ)」と「データ(オリジナルデータ)」の拠点が異なる場合は、「データ(オリジナルデータ)」の拠点のオリジナルデータは、「アプリ(スタブデータ)」の拠点ではスタブ化されたスタブデータとなる。
【0042】
「モデル式」は、該当のリソースモデルの表現式を表す。
【0043】
例えばリソースモデル管理表1218の第1行目では、“アプリ・計算リソースモデル”の“CPUコア数モデル”というリソースモデルは、「対象リソース(x)」を“CPU[Cores](CPUのコア数x)とし、“アプリ処理速度[MB/s]”を「対象要件・指標(y)」とし、“MachineLearningX”というアプリ種別のアプリに適用される“y=f1(x)”のモデル式で表されるリソースモデルであることを表す。
【0044】
(構成情報管理表1219の構成)
図7は、構成情報管理表1219の構成例を示す図である。構成情報管理表1219は、ITインフラモデルとして収集した構成情報=対象環境ハードウェアのスペック情報を管理する表である。
【0045】
構成情報管理表1219は、「対象」「モデル化項目」「詳細」「値」の項目を有する。「対象」は、“ストレージ”(記憶リソース)又は“コンピュート”(計算リソース)の種別と共に、該当のリソースの適用箇所を表す。「モデル化項目」は、「詳細」で説明が示されるスペック情報を示す項目を表し、「値」にその具体値が格納される。例えば構成情報管理表1219の#1の行では、ストレージ全体を対象として、システム全体のクラスタ数(拠点数)として“ストレージクラスタ数”が“3”であることを表す。
【0046】
(稼働情報管理表1220の構成)
図8は、稼働情報管理表1220の構成例を示す図である。稼働情報管理表1220は、ITインフラモデルとして収集した稼働情報=対象環境ハードウェアの使用状況のログ情報を管理する表である。
【0047】
稼働情報管理表1220は、「対象」「モデル化項目」「詳細」「値」の項目を有する。「値」はさらに、「各時間(時:分:秒)あたりのリソース使用量」に分かれる。「対象」は、“ストレージ”(記憶リソース)又は“コンピュート”(計算リソース)の種別と共に、該当のリソースの適用箇所を表す。「モデル化項目」は、「詳細」で説明が示される稼動情報を示す項目を表し、「値」にその具体値が格納される。例えば稼働情報管理表1220の#1の行では、拠点1のストレージを対象として、利用容量(1クラスタ内)が“40TB”であることを表す。また、稼働情報管理表1220の#2の行によれば、拠点1のストレージを対象として、各時間におけるRnd(ランダム)/Seq(シーケンシャル)のリード・ライトの書込み量(スピード)及び読込み量(スピード)が示されている。
【0048】
(データ配置組合せ表1221の構成)
図9は、データ配置組合せ表1221の構成例を示す図である。データ配置組合せ表1221は、対象の分析ワークフローで使用するデータを各拠点へ配置する配置パターンの組合せを管理するための表である。データ配置組合せ表1221は、対象の分析ワークフローでは、データ1~データ6の6つのデータを使用し、これらのデータを連携システムCSを構成する各拠点に配置するパターンとその配置可否を管理している。例えばデータ配置組合せ表1221の#1の行では、データ1~データ6を全てOn-Prem1(オンプレミスサイト#1)に配置するパターンは配置可(Yes)であることを表す。
【0049】
(その他の表)
図10は、計算用WF変数管理表1222の構成例を示す図である。
図11は、計算用再配置変数管理表1223の構成例を示す図である。
図12は、計算用インフラ情報管理表1224の構成例を示す図である。計算用WF変数管理表1222は、ワークフローのワーク変数を一時的に管理するための表である。計算用再配置変数管理表1223は、データ配置変数のワーク変数を一時的に管理するための表である。計算用インフラ情報管理表1224は、インフラ情報を一時的に管理するための表である。
【0050】
(分析ワークフローに関する仮想データセットの最適分散配置処理)
以下、本実施形態に係る分析ワークフローに関する仮想データセットの最適分散配置処理を説明する。以下では、分析ワークフローで登場するアプリケーションが拠点(サイト)を跨いで動作し、使用するデータがData Virtualization Function(データ仮想化機能部223、323)を介してサイト間で相互参照可能であることを前提とする。
【0051】
(データ最適配置処理の全体処理)
図13は、実施形態に係るデータ最適配置処理の全体処理例を示すシーケンス図である。データ最適配置処理は、大きく分けて各種リソースモデルを作成する学習フェーズF1と、学習フェーズF1で作成された各種リソースモデルを用いて各種リソースの稼働状況を推論し、推論結果に基づいて、分析ワークフローで使用するデータの配置を決定する推論フェーズF2とに分かれる。
【0052】
学習フェーズF1は、各種リソースモデル作成S1を含む。各種リソースモデル作成S1では、アロケーション制御部121は、コンテナ管理部222、322からアプリの種類を収集し(S1a)、モニタリング機能部221、321からアプリの場所、データのr/w量、アプリ・データのレスポンスタイム、データサイズ、アプリが使用しているCPU、メモリなどのコンピュートリソース及びストレージリソースの稼働状況を収集し(S1b)、ITインフラ管理部123からサイト間のNW(Network)帯域やレイテンシなどのネットワークリソースの稼働状況を収集し(S1c)、データ仮想化機能部223、323からデータの配置場所の情報を収集し(S1d)、フローベースプログラミング機能部122から各処理の実行回数や実行時間などの情報を収集する(S1e)。そして、アロケーション制御部121は、S1a~S1eで収集した各種情報を学習して各種リソースモデルを作成する(S1f)。
【0053】
また、推論フェーズF2は、データ配置組合せ計算S2、アプリ処理・データアクセス実行時間計算S3、データ再配置実行S4、及び、分析ワークフロー実行S5を含む。
【0054】
アプリ処理・データアクセス実行時間計算S3では、フローベースプログラミング機能部122は、データ配置組合せ計算S2で計算された拠点配置の組合せでのデータのデプロイを、アロケーション制御部121に対して指示する(S3x)。そして、アロケーション制御部121は、S1a~S1eと同様の情報を収集する。すなわち、アロケーション制御部121は、コンテナ管理部222、322からアプリの種類を収集し(S3a)、モニタリング機能部221、321からアプリの場所、データのr/w量、アプリ・データのレスポンスタイム、データサイズ、アプリが使用しているCPU、メモリなどのコンピュートリソース及びストレージリソースの稼働状況を収集し(S3b)、ITインフラ管理部123からサイト間のNW帯域やレイテンシなどのネットワークリソースの稼働状況を収集し(S3c)、データ仮想化機能部223、323からデータの配置場所の情報を収集し(S3d)、フローベースプログラミング機能部122から各処理の実行回数や実行時間などの情報を収集する(S3e)。そして、アロケーション制御部121は、S3a~S3eで収集した各種情報を、S1fで作成した各種リソースモデルを用いてアプリ処理・データアクセス実行時間を計算する(S3f)。
【0055】
(学習フェーズの処理)
次に学習フェーズを説明する。
図14は、学習フェーズの処理例を示すフローチャートである。
図14に示す学習フェーズのS11~S13は、各種リソースモデル作成S1(
図13)に該当する。リソースモデルとは、アプリの実行に必要とする処理速度を達成するために、必要となるハードウェアリソース量を求めるためのモデルである。リソースモデルは、管理サーバ10のアロケーション制御部121によって作成される。
【0056】
各種リソースモデル作成S1では、アロケーション制御部121は、ユーザが分析ワークフローの本番処理を実施する前に、少量のデータを用いて対象アプリを事前に実行し、モデルを作成する。アプリの種別毎に、アプリとデータの配置パターンの組合せで、処理速度及びリソース稼働情報を実測した結果を基にモデルを作成する。各種リソースモデル作成S1では、モデル作成の際に統計回帰式や機械学習など、周知技術を用いる。
【0057】
先ずS11では、アロケーション制御部121のリソースモデル作成部1211(
図3)は、ユーザ環境の性能・稼働情報実測を実行する。リソースモデル作成部1211は、各種リソースモデル作成に必要なリソース稼働情報を各種ソースから収集し、アプリ・データ特性情報管理表1217(
図5)に登録する。ここで収集する情報のうち、各種リソースの使用量は、例えば単位時間毎に取得したものを平均する。各種リソースモデル作成に必要な情報の収集を行う際のアプリ種別とデータの配置パターンの組合せは、例えば
図15に示すようになる。
【0058】
次にS12では、リソースモデル作成部1211は、アプリの要求処理速度を算出する。アプリの要求処理速度とは、アプリが特定のデータにアクセスし、一連の分析処理を所定の時間内に実行するために必要な速度のことを指す。アプリの要求処理速度の実測値は、下記式(1)のように「アプリの実行時間(分析処理時間)」と「アプリが行うデータのIO量」を基に算出する。
アプリ要求処理速度(の実測値)(byte/sec)
=アプリが行うデータのIO量(byte)/アプリの実行時間(sec)
・・・(1)
【0059】
次にS13では、リソースモデル作成部1211は、アプリの要求処理速度と必要リソース量の関係を推定し、関係モデルを作成する。例えば、統計的にモデルを作成する例では、アプリの要求処理速度(y)と、リソースの使用量(x)をXY平面にプロットし、最小二乗法などによる線形又は非線形の回帰式を作成する。S13での作成対象のリソースモデルは、アプリの実行性能及びアプリからデータへのアクセス性能とハードウェアリソースとの相関モデルであり、「アプリ・計算リソースモデル」、「アプリ・データアクセス特性モデル」、及び、「ストレージ性能モデル」を含む。リソースモデル作成部1211は、作成した各モデルを、リソースモデル管理表1218(
図6)に登録する。
【0060】
「アプリ・計算リソースモデル」は、アプリの計算処理に必要な要求性能に対する必要CPU及びメモリの量をモデル化したものである。「アプリ・計算リソースモデル」は、アプリ毎に、アプリの処理速度と、アプリが消費するCPU、及び、メモリの関係を学習することで生成される。
【0061】
図16(a)に示す「CPUコア数モデル」は、アプリ処理速度からコンテナの割当リソース量(CPUコア数)を推論するモデル・回帰式である。例えばアプリ処理速度をy、CPUコア数をxとしてy=h1(x)と表される。
【0062】
図16(b)に示す「メモリ容量モデル」は、アプリ処理速度からコンテナの割当リソース量(メモリ容量)を推論するモデル・回帰式である。例えばアプリ処理速度をy、メモリ容量をxとしてy=h2(x)と表される。
【0063】
図16(c)に示す「拠点内コンピュートNW帯域モデル」は、アプリ処理速度からコンテナの拠点内コンピュートNW帯域を推論するモデル・回帰式である。例えばアプリ処理速度をy、コンテナの拠点内コンピュートNW帯域をxとしてy=h3(x)と表される。
【0064】
「アプリ・データアクセス特性モデル」は、アプリからデータへのアクセス処理速度に対して必要なストレージのIO性能(要求ストレージ性能)をモデル化したものである。「アプリ・データアクセス特性モデル」は、アプリ毎に、アプリの処理速度と、アプリが必要とするストレージ性能の関係を学習することで生成される。
【0065】
図17(a)に示す「ストレージIO性能(Seq.Read)(順次読込み速度)」は、アプリ処理速度からストレージIO性能(順次読込み速度)を推論するモデル・回帰式である。例えばアプリ処理速度をy、ストレージIO性能(順次読込み速度)をxとしてy=g1(x)と表される。
【0066】
図17(b)に示す「ストレージIO性能(Seq.Wite)(順次書込み速度)」は、アプリ処理速度からストレージIO性能(順次書込み速度)を推論するモデル・回帰式である。例えばアプリ処理速度をy、ストレージIO性能(順次書込み速度)をxとしてy=g2(x)と表される。
【0067】
図17(c)に示す「ストレージIO性能(Rand.Read/Wite)(ランダム読み書き速度)モデル」は、アプリ処理速度からストレージIO性能(ランダム読み書き速度)を推論するモデル・回帰式である。例えばアプリ処理速度をy、ストレージIO性能(ランダム読み書き速度)をxとしてy=g3(x)と表される。
【0068】
図17(d)に示す「ストレージIOPS(Seq.Read)(順次読込み速度)モデル」は、アプリ処理速度からストレージIOPS(順次読込み速度)を推論するモデル・回帰式である。例えばアプリ処理速度をy、ストレージIOPS(順次読込み速度)をxとしてy=g4(x)と表される。
【0069】
図17(e)に示す「ストレージIOPS(Seq.Wite)(順次書込み速度)モデル」は、アプリ処理速度からストレージIOPS(順次書込み速度)を推論するモデル・回帰式である。例えばアプリ処理速度をy、ストレージIOPS(順次書込み速度)をxとしてy=g5(x)と表される。
【0070】
図17(f)に示す「ストレージIOPS(Rand.Read/Wite)(ランダム読み書き速度)モデル」は、アプリ処理速度からストレージIOPS(ランダム読み書き速度)を推論するモデル・回帰式である。例えばアプリ処理速度をy、ストレージIOPS(ランダム読み書き速度)をxとしてy=g6(x)と表される。
【0071】
「ストレージ性能モデル」は、求められるストレージIO性能(要求ストレージ性能)に対して必要なハードウェアリソース量をモデル化したものである。「ストレージ性能モデル」は、拠点又は拠点間毎に、求められるストレージのIO性能(要求ストレージ性能)に対して必要なストレージのハードウェアリソース量の関係を学習することで生成される。
【0072】
図18(a)に示す「拠点内NW帯域(コンピュート-ストレージ間)モデル」は、ストレージのIO性能(Seq.Read)から拠点内NW帯域(コンピュート-ストレージ間)を推論するモデル・回帰式である。例えばストレージのIO性能(Seq.Read)をy、拠点内NW帯域(コンピュート-ストレージ間)をxとしてy=f1(x)と表される。
【0073】
図18(b)に示す「拠点内NW帯域(コンピュート-ストレージ間)モデル」は、ストレージのIO性能(Seq.Wite)から拠点内NW帯域(コンピュート-ストレージ間)を推論するモデル・回帰式である。例えばストレージのIO性能(Seq.Wite)をy、拠点内NW帯域(コンピュート-ストレージ間)をxとしてy=f2(x)と表される。
【0074】
図18(c)に示す「拠点内NW帯域(コンピュート-ストレージ間)モデル」は、ストレージのIO性能(Rand.Read/Wite)から拠点内NW帯域(コンピュート-ストレージ間)を推論するモデル・回帰式である。例えばストレージのIO性能(Rand.Read/Wite)をy、拠点内NW帯域(コンピュート-ストレージ間)をxとしてy=f3(x)と表される。
【0075】
図18(a)~(c)に示す「拠点内NW帯域(コンピュート-ストレージ間)モデル」は、拠点ごとに作成される。
【0076】
図19(a)に示す「拠点内NW帯域(ストレージ-ストレージ間)モデル」は、ストレージのIO性能(Seq.Read)から拠点内NW帯域(ストレージ-ストレージ間)を推論するモデル・回帰式である。例えばストレージのIO性能(Seq.Read)をy、拠点内NW帯域(ストレージ-ストレージ間)をxとしてy=f4(x)と表される。
【0077】
図19(b)に示す「拠点内NW帯域(ストレージ-ストレージ間)モデル」は、ストレージのIO性能(Seq.Wite)から拠点内NW帯域(ストレージ-ストレージ間)を推論するモデル・回帰式である。例えばストレージのIO性能(Seq.Wite)をy、拠点内NW帯域(ストレージ-ストレージ間)をxとしてy=f5(x)と表される。
図19(b)に示す「拠点内NW帯域(ストレージ-ストレージ間)モデル」は、拠点間ごとに作成される。
【0078】
図19(c)に示す「拠点内NW帯域(ストレージ-ストレージ間)モデル」は、ストレージのIO性能(Rand.Read/Wite)から拠点内NW帯域(ストレージ-ストレージ間)を推論するモデル・回帰式である。例えばストレージのIO性能(Rand.Read/Wite)をy、拠点内NW帯域(ストレージ-ストレージ間)をxとしてy=f6(x)と表される。
【0079】
図19(a)~(c)に示す「拠点内NW帯域(ストレージ-ストレージ間)モデル」は、拠点間ごとに作成される。
【0080】
図20(a)に示す「ストレージノード数モデル」は、ストレージのIO性能(Seq.Read)からストレージノード数を推論するモデル・回帰式である。例えばストレージのIO性能(Seq.Read)をy、ストレージノード数をxとしてy=f7(x)と表される。
【0081】
図20(b)に示す「ストレージノード数モデル」は、ストレージのIO性能(Seq.Wite)からストレージノード数を推論するモデル・回帰式である。例えばストレージのIO性能(Seq.Wite)をy、ストレージノード数をxとしてy=f8(x)と表される。
【0082】
図20(c)に示す「ストレージノード数モデル」は、ストレージのIO性能(Rand.Read/Wite)からストレージノード数を推論するモデル・回帰式である。例えばストレージのIO性能(Rand.Read/Wite)をy、ストレージノード数をxとしてy=f9(x)と表される。
【0083】
図20(a)~(c)に示す「ストレージノード数モデル」は、ストレージデバイスごとに作成される。
【0084】
次にS14では、リソースモデル作成部1211は、構成情報管理表1219及び稼働情報管理表1220(これらを「ITインフラモデル」と総称する)を作成する。構成情報管理表1219及び稼働情報管理表1220は、S13で作成したリソースモデル作成の基礎となる、収集した実測値をまとめたしたものである。
【0085】
(推論フェーズ)
次に推論フェーズを説明する。
【0086】
(推論フェーズの処理概要)
推論フェーズの処理フローの説明に先立ち、処理概要を説明する。
図21は、推論フェーズの処理概要を説明するための図である。
図21は、推論フェーズ内のアプリ処理・データアクセス実行時間計算の概要を説明するための図である。
【0087】
例えば、
図21の上方に示すように、フローベースプログラミング機能部122が、WF(Work Flow(分析ワークフロー))1、WF2、及び、WF3の3つのワークフローを実行する場合を考える。また、拠点は、オンプレミスサイト#1、#2、クラウドサイトの3つとする。
【0088】
WF1は、処理開始から終了までの実行期限が3時間以内である。WF1では、アプリケーションa(App-a)がFL(ファイル)0を使用して処理を実行して実行結果をFL1へ出力し、並行してアプリケーションc(App-c)がFLaを使用して処理を実行して実行結果をFLbへ出力する。そして、アプリケーションb(App-b)がFL1及びFLbを使用して処理を実行して実行結果をFL2へ出力して処理が終了する。
【0089】
WF2は、処理開始から終了までの実行期限が1時間以内である。WF2では、アプリケーションc(App-c)がFLaを使用して処理を実行して実行結果をFLbへ出力する。そして、アプリケーションb(App-b)がFLbを使用して処理を実行して実行結果をFL2へ出力する。
【0090】
WF3は、処理開始から終了までの実行期限が3時間以内である。WF3では、アプリケーションa(App-a)がFL1を使用して処理を実行して実行結果をFL1へ出力し、並行してアプリケーションc(App-c)がFLbを使用して処理を実行して実行結果をFLcへ出力する。そして、アプリケーションb(App-b)がFL1及びFLcを使用して処理を実行して実行結果をFL2へ出力して処理が終了する。
【0091】
アロケーション制御部121は、3つのワークフローWF1~WF3を同時に実行する場合の実行時間を見積るために、大別して次の(1)~(5)の処理を行う。
【0092】
(1)アプリ・ファイルアクセスの実行順序及び実行回数等を取得
アロケーション制御部121は、フローベースプログラミング機能部122から、アプリ及びファイルアクセスの実行順序及び実行回数等の分析ワークフロー情報(
図4の「項目」参照)、アプリ・データ特性情報(
図5の「取得対象」“推論”に対応する「項目」参照)を取得する。
【0093】
(2)データ配置パターン作成
次に、アロケーション制御部121は、各アプリケーション及びデータファイルを、オンプレミスサイト#1、オンプレミスサイト#2、及び、クラウドサイトに配置する全てのデータ配置組合せのパターンを作成する。
図21では、各拠点に配置されるファイルFLxのうち、破線表示がスタブファイルであり、実線表示がマスタファイル(オリジナルデータ)である。拠点内のアプリがスタブファイルに対して入出力する場合には、他の拠点に存在するオリジナルファイルのキャッシュデータの転送が発生するため、スタブファイルへのアクセスが多いほどキャッシュデータの転送量が大きくなる。
【0094】
例えば
図21に示すパターンAでは、アプリケーションc、FL0、及びFLaをオンプレミスサイト#1に配置し、アプリケーションa、FL1、及びFLbをオンプレミスサイト#2に配置し、アプリケーションb、FL2、及びFLcをクラウドサイトに配置する。また、パターンBでは、アプリケーションc、FL0、FL1、FLa、及びFLbをオンプレミスサイト#1に配置し、アプリケーションaをオンプレミスサイト#2に配置し、アプリケーションb、FL2、及びFLcをクラウドサイトに配置する。
【0095】
(3)必要リソース量算出
次に、アロケーション制御部121は、アプリ毎の処理時間やデータサイズといったKPI(Key Performance Indicator)から必要なアプリ処理速度等の指標値を算出する。そして、このアプリ毎の指標値を、学習フェーズで生成した各種リソースモデルに適用して、CPUコア数やストレージの必要IO性能といったアプリ毎のコンピュート、ストレージ、及びネットワークの必要リソース量を推論する。
【0096】
(4)アプリ及びファイルアクセスの実行時間推測
次に、アロケーション制御部121は、推論したアプリ毎の必要リソース量と、各アプリのリソース消費率と、実行回数及び実行順序とから、データ配置パターン毎に、ワークフロー毎の各アプリの実行時間(開始時刻及び終了時刻)及びファイルアクセスの実行時間(開始時刻及び終了時刻)を算出する。
【0097】
(5)ワークフロー実行時間算出
そして、アロケーション制御部121は、推測したワークフロー毎の各アプリの実行時間(開始時刻及び終了時刻)及びファイルアクセスの実行時間を基に、全ワークフローWF1~WF3を並列実行した場合の実行時間を推測する。例えば
図21では、アロケーション制御部121は、全ワークフローの実行時間をパターンAでは4時間と推測し、パターンBでは5時間と推測している。
【0098】
例えばパターンAとパターンBを比較すると、パターンBでは、オンプレミスサイト#2に配置されたアプリケーションaがアクセスするファイルが何れも他の拠点であるオンプレミスサイト#1に存在する。このため、パターンBでは、パターンAと比較して、キャッシュデータの転送量が大きくなり、同じアプリ処理速度(60MB/s)を達成するためには、より高いIO性能が要求されることになる(パターンAのデータストア目標性能が100MB/sに対し、パターンBが150MB/s)。よって、IO性能が同一であれば、パターンAでは、WF1、WF2、及びWF3の3つのワークフローが4時間で実行可終了するのに対し、パターンBでは、全てのワークフローが実行可終了するまでに5時間かかることが分かる。
【0099】
(6)データ配置パターン決定
最後に、アロケーション制御部121は、推定したデータ配置パターン毎の全ワークフロー実行時間のうち、ユーザの実行期限を超過するものについては、各ワークフロー、各ワークフロー内の各アプリ、各アプリのデータアクセスの実行開始及び終了時刻を、リソース利用率が100%を超えないように調整する。そして、アロケーション制御部121は、調整後にリソース利用率が100%を超えないデータ配置パターンのうち、全ての拠点の全てのリソースの使用率の平均が最小となるデータ配置パターンを選択する。このときデータ配置パターンの選択に付随して、全ワークフロー実行時間、並びに、各アプリ及び各アプリのデータアクセスの実行開始及び終了時刻も決まる。
【0100】
(推論フェーズの処理)
以下、推論フェーズの処理フローを説明する。
図22は、推論フェーズの処理例を示すフローチャートである。
図22に示す推論フェーズのS22は、データ配置組合せ計算S2及びアプリ処理・データアクセス実行時間計算S3(
図13)に該当する。また、推論フェーズのS26は、データ再配置実行S4(
図13)に該当する。また、推論フェーズのS27は、分析ワークフロー実行S5(
図13)に該当する。
【0101】
先ずS21では、アロケーション制御部121は、ユーザによるフロー実行時間見積り指示を受付ける。次にS22では、アロケーション制御部121のデータ配置組合せ計算部1212(
図3)がデータ配置組合せの全パターンを計算し、アプリ処理・データアクセス実行時間計算部1213(
図3)がデータ配置組合せの各パターンで分析ワークフローの実行時間を推定する。
【0102】
データ配置組合せの計算では、アプリの配置及びマスタファイルの配置が決められる。ここで、サイト間のキャッシュ転送が頻繁に起きると、アプリからのデータアクセス性能が遅くなるという問題が発生する。そこで、マスタファイルを配置する位置を調節して、指定時間内に処理が終わるようにする。データ配置組合せ計算の詳細処理例は、
図23を参照して後述する。
【0103】
次にS23では、アロケーション制御部121は、S22で選択されたデータ配置の組合せでの推定フロー実行時間がユーザの指定時間以下か否かを判定する。アロケーション制御部121は、S22で選択されたデータ配置の組合せでの推定フロー実行時間がユーザの指定時間以下である場合(S23YES)にステップS25へ処理を移し、推定フロー実行時間がユーザの指定時間を超過する場合(S23YES)にステップS24へ処理を移す。
【0104】
S24では、アロケーション制御部121は、出力装置(不図示)を介してユーザに対して指定時間内に実行処理が終わらないことを通知する。S25では、アロケーション制御部121は、ユーザによるフロー実行を受付ける。
【0105】
S26では、配置変更実行部1214は、配置変更実行を行う。配置変更実行の詳細処理例は、
図63を参照して後述する。次にS27では、分析ワークフロー実行部1215は、分析ワークフロー実行を行う。分析ワークフロー実行の詳細処理例は、
図64を参照して後述する。
【0106】
(データ配置組合せ計算S22(
図22)の詳細処理)
図23は、データ配置組合せ計算S22の詳細処理例を示すフローチャートである。
【0107】
先ずS22aでは、データ配置組合せ計算部1212(
図3)は、分析ワークフロー・アプリ・データ情報取得を実行する。分析ワークフロー・アプリ・データ情報取得では、アロケーション制御部121は、各ワークフローのアプリの実行予定場所と、データの配置場所を取得する。S22aの詳細処理は、
図24を参照して後述する。
【0108】
次にS22bでは、データ配置組合せ計算部1212は、データ配置パターン作成を実行する。データ配置パターン作成では、アロケーション制御部121は、各データの配置場所の全ての組合せを作成する。S22bの詳細処理は、
図25を参照して後述する。
【0109】
次に、データ配置組合せ計算部1212は、S22c~S22dのループ処理を、S22bで作成された全てのデータ配置パターンについて実行する。S22cでは、アロケーション制御部121は、現在のループ処理対象のデータ配置パターンの配置可否を判定する。データ配置組合せ計算部1212は、現在のループ処理対象のデータ配置パターンが「配置可(Yes)」である場合にはS22dへ処理を移し、「配置不可(No)」である場合には、次のデータ配置パターンについてループ処理を継続する、又は全てのデータ配置パターンについてループ処理が終了した場合にS22eへ処理を移す。
【0110】
S22dでは、アプリ処理・データアクセス実行時間計算部1213(
図3)は、アプリ処理・データアクセス実行時間計算を実行する。S22dでは、アプリ処理・データアクセス実行時間計算部1213は、S22cで「配置可(Yes)」と判定されたデータ配置パターンでのワークフローの実行時間をシミュレーションする。S22dの詳細処理は、
図27を参照して後述する。
【0111】
全てのデータ配置パターンについてS22c~S22dのループ処理が終了すると、S22eでは、データ配置組合せ計算部1212は、全てのデータ配置組合せの実行時間の計算終了後、計算用WF変数管理表1222(
図10)、計算用再配置変数管理表1223(
図11)、及び計算用インフラ情報管理表1224(
図12)に格納される情報及びこの情報から導き出される全てのデータ配置のパターンのリソース使用率の平均(平均リソース使用率)のうち、最も使用率が低くなるデータ配置のパターンを選択する。
【0112】
(分析ワークフロー・アプリ・データ情報取得S22a(
図23)の詳細処理)
図24は、分析ワークフロー・アプリ・データ情報取得S22aの詳細処理例を示すフローチャートである。
【0113】
先ずS22a1では、データ配置組合せ計算部1212(
図3)は、ワークフローエディタ(フローベースプログラミング機能部122)から、分析ワークフローにおけるアプリ及びこのアプリによるファイルアクセスの実行順序及び回数等を含む分析ワークフロー情報を取得する。次にS22a2では、データ配置組合せ計算部1212は、S22a1での取得データを分析ワークフロー情報管理表1216(
図4)に登録する。
【0114】
次にS22a3では、データ配置組合せ計算部1212は、推論に必要なアプリ・データ特性情報を、ワークフローエディタ以外の各種ソース(
図5参照)から取得する。S22a3では、アプリ・データ特性情報管理表1217(
図5)において「取得対象」が“推論”である「分類」及び「項目」に対応する値が、各拠点の「ソース」から取得される。次にS22a4では、データ配置組合せ計算部1212は、S22a3での取得データをアプリ・データ特性情報管理表1217(
図5)に登録する。また、データ配置組合せ計算部1212は、ワークフローの実行開始時刻を0:00(デプロイ実行時刻)、終了時刻を開始時刻+実行期限として、計算用WF変数管理表1222(
図10)に登録する。
【0115】
(データ配置パターン作成S22b(
図23)の詳細処理)
図25は、データ配置パターン作成S22bの詳細処理例を示すフローチャートである。S22bでは、各拠点に配置するファイルデータの全ての配置組合せ(配置パターン)の作成を行う。そして、配置組合せのうち、データ容量が拠点のストレージ容量を超えてしまうものを、配置不可な組合せとする。
【0116】
先ずS22b1では、データ配置組合せ計算部1212は、全てのデータDx(x=1~n)を、全ての拠点Sy(y=1~m)のうちの何れかへ配置する全ての組合せ(データ配置パターンPz(z=1~c))を作成し、データ配置組合せ表1221(
図9)へ登録する。
【0117】
次に、データ配置組合せ計算部1212は、S22b2~S22b3のループ処理を、全ての拠点Sy(y=1~m)について繰り返し実行する。S22b2では、データ配置組合せ計算部1212は、構成情報管理表1219(
図7)から、拠点Syのストレージの「1クラスタ最大容量」の値を取得する。次にS22b3では、データ配置組合せ計算部1212は、稼働情報管理表1220(
図8)から、拠点Syのストレージの「利用容量(1クラスタ内)」の値を取得する。
【0118】
S22b2~S22b3のループ処理が終了すると、S22b4では、データ配置組合せ計算部1212は、アプリ・データ特性情報管理表1217から、全てのデータDx(x=1~n)の「データのサイズ」の値を取得する。次にS22b5では、データ配置組合せ計算部1212は、S22b5~S22b10のループ処理を、全てのデータ配置パターンPz(z=1~c)について繰り返し実行する。
【0119】
S22b5では、データ配置組合せ計算部1212は、拠点Syのストレージ消費容量小計=拠点Syのストレージの利用容量(1クラスタ内)とする。次にS22b6では、データ配置組合せ計算部1212は、処理対象のデータ配置パターンPzにおける全てのデータDxの配置拠点を確認する。次にS22b7では、データ配置組合せ計算部1212は、各拠点Syのストレージの消費容量小計にS22b6で配置が確認されたデータDxのデータサイズを加算する。
【0120】
次にS22b8では、データ配置組合せ計算部1212は、拠点Syのストレージの[1クラスタ最大容量]≧[拠点Syストレージ消費容量小計]であるか否かを判定する。データ配置組合せ計算部1212は、拠点Syのストレージの[1クラスタ最大容量]≧[拠点Syストレージ消費容量小計]である場合(すなわちデータ容量が拠点のストレージ容量以下)にS22b9へ処理を移し、拠点ストレージの[1クラスタ最大容量]<[拠点Syストレージ消費容量小計]である場合にS22b10へ処理を移す。
【0121】
S22b9では、データ配置組合せ計算部1212は、データ配置組合せ表1221(
図9)の該当データ配置の[配置可否]を“Yes(配置可)”にする。一方S22b10では、データ配置組合せ計算部1212は、データ配置組合せ表1221の該当データ配置の[配置可否]を“No(配置不可)”にする。
【0122】
(アプリ処理・データアクセス実行時間計算の処理概要)
アプリ処理・データアクセス実行時間計算S22d(
図23)の詳細処理の説明に先立ち、処理概要を説明する。
図26は、アプリ処理・データアクセス実行時間計算S22dの処理概要を説明するための図である。
【0123】
図26人示すように、分析ワークフローの実行時間の配分を調整する要素が複数階層あるため、以下の(手順1)~(手順4)の順序で実行時間を調整していく。分析ワークフローでは、先ず拠点へのデータの再配置を実行後、分析ワークフロー内のアプリ及びファイルアクセス実行を行う。時間配分調整の各要素を、データ再配置X1、複数ワークフローX2、複数ワークフローX2内のワークフローX3、ワークフローX3内のアプリX4、及びアプリX4がアクセスするデータX5とする。
【0124】
(手順1)初期値決め
データ再配置X1の実行時間を、分析ワークフローの実行環境のリソース量と転送量から算出される最短時間とする。ワークフローX3の実行時間を、ユーザから指定されたワークフローX3の実行期限とする。複数ワークフローX2の実行時間を、最長のワークフローX3の実行時間とする。アプリX4及びデータX5の実行時間を、ワークフローX3の実行時間をアプリX4及びデータX5で均等割した時間とする。
【0125】
(手順2)複数アプリ間配分調整
アプリX4及びデータX5の実行時間を、1つのワークフローX3の実行時間内で、リソース使用率が100%を超えないように調整する。1つのワークフローの実行時間中(全アプリ及びデータアクセスの実行時間中)、何れかのリソース使用率が一度でも100%を超える場合、指定された実行期限内に終わらないため、100%を超えたアプリの目標実行時間を延ばし、その代わりにリソース使用率が最も低いアプリの目標実行時間を縮めて、再度リソース使用量を計算する。詳細は
図40を参照して後述する。
【0126】
(手順3)複数ワークフロー間配分調整
データ再配置と複数ワークフローの時間配分を固定とする。ワークフローX3同士の並列実行数を減らすために、何れかのワークフローX3の実行開始時刻を後ろに遅らせる(実行時間を短くする)。アプリX4及びデータX5の実行時間を、ワークフローX3の実行時間の変更を受けて、リソース使用率が100%を超えないように調整する。
【0127】
(手順4)データ再配置・ワークフロー配分調整
データ再配置X1は、リソース使用率を減らすために、実行終了時刻を後ろに遅らせる(実行時間を長くする)。複数ワークフローX2は、データ再配置X1の実行時間の変更を受けて、実行開始時刻を後ろに遅らせる(実行時間を短くする)。ワークフローX3は、複数ワークフローX2の実行時間の変更を受け、実行開始時刻を後ろに遅らせる(実行時間を短くする)。アプリX4及びデータX5は、ワークフローX3の実行時間の変更を受けて、リソース使用率が100%を超えないよう調整する。
【0128】
(アプリ処理・データアクセス実行時間計算S22d(
図23)の詳細処理)
図27は、アプリ処理・データアクセス実行時間計算S22dの詳細処理例を示すフローチャートである。
【0129】
先ずS22d1では、アプリ処理・データアクセス実行時間計算部1213(
図3)は、各種実行時刻_初期値決めを行う。S22d1の詳細処理は、
図28を参照して後述する。次にS22d2では、アプリ処理・データアクセス実行時間計算部1213は、複数アプリ間配分調整を行う。S22d2の詳細処理は、
図40を参照して後述する。
【0130】
次にS22d3では、アプリ処理・データアクセス実行時間計算部1213は、複数ワークフロー間配分調整を行う。S22d3の詳細処理は、
図54を参照して後述する。次にS22d4では、アプリ処理・データアクセス実行時間計算部1213は、データ再配置・ワークフロー配分調整を行う。S22d4の詳細処理は、
図59を参照して後述する。
【0131】
(各種実行時刻_初期値決めS22d1(
図27)の詳細処理)
図28は、各種実行時刻_初期値決めS22d1の詳細処理例を示すフローチャートである。
【0132】
先ずS31では、アプリ処理・データアクセス実行時間計算部1213(
図3)は、データ再配置_初期値設定を行う。S31の詳細処理は、
図30を参照して後述する。次にS32では、アプリ処理・データアクセス実行時間計算部1213は、ワークフロー_初期値設定を行う。S32の詳細処理は、
図40を参照して後述する。次にS33では、アプリ処理・データアクセス実行時間計算部1213は、複数ワークフロー_初期値設定を行う。S33の詳細処理は、
図34を参照して後述する。次にS34では、アプリ処理・データアクセス実行時間計算部1213は、アプリ・データ_初期値設定を行う。S34の詳細処理は、
図36を参照して後述する。
【0133】
(データ再配置_初期値設定S31(
図28)の処理概要)
データ再配置_初期値設定S31の詳細処理の説明に先立ち、処理概要を説明する。
図29は、データ再配置_初期値設定S31の処理概要を説明するための図である。
【0134】
実行時間計算対象のデータが現在において実際に配置されている拠点と、最適配置を検討するデータ配置組合せのパターンとが異なる場合に、データの再配置が必要となり、拠点間でデータ転送を行うデータ再配置X1の実行時間を要する。データ再配置X1の実行時間は、
図29に示すように、データの再配置のデータ転送の開始時刻から終了時刻までである。既述のように、データ再配置X1の実行時間は、分析ワークフローの実行環境のリソース量と転送量から算出される最短時間である。
【0135】
(データ再配置_初期値設定S31(
図28)の詳細処理)
図30は、データ再配置_初期値設定S31の詳細処理例を示すフローチャートである。
【0136】
先ずS31aでは、アプリ処理・データアクセス実行時間計算部1213は、次の情報を取得する。すなわち、アプリ処理・データアクセス実行時間計算部1213は、データ配置組合せ表1221(
図9)から該当の組合せの全データ配置場所を、アプリ・データ特性情報管理表1217(
図5)から[現在の全データの配置場所]と[全データのサイズ]を、構成情報管理表1219(
図7)から[拠点間ネットワーク帯域]を、稼働情報管理表1220から[既存拠点間ネットワーク利用量]をそれぞれ取得する。
【0137】
次に、アプリ処理・データアクセス実行時間計算部1213は、S31b~S31dのループ処理を、全データDx(x=1~n)について実行する。S31b~S31dのループ処理では、[現在のデータ配置場所]からデータ配置組合せ表1221(
図9)の[該当組合せのデータ配置場所]へ全てのデータを再配置する場合の転送データ量を算出する。
【0138】
S31bでは、アプリ処理・データアクセス実行時間計算部1213は、[現在のデータ配置場所]≠[該当組合せのデータ配置場所]であるかを判定する。アプリ処理・データアクセス実行時間計算部1213は、[現在のデータ配置場所]≠[該当組合せのデータ配置場所]である場合(S31bYES)に、S31cへ処理を移す。一方、アプリ処理・データアクセス実行時間計算部1213は、[現在のデータ配置場所]=[該当組合せのデータ配置場所]である場合(S31bNO)には、S31c、S31dをスキップして次のデータDxを対象にループ処理を行うか、全てのデータDxについてループ処理が終了した場合にはループ処理を終了する。
【0139】
S31cでは、アプリ処理・データアクセス実行時間計算部1213は、[現在のデータ配置場所]から[該当組合せのデータ配置場所]へ全てのデータを転送するNW経路を求める。次にS31dでは、アプリ処理・データアクセス実行時間計算部1213は、S31cで求めた[該当NW経路の再配置転送量]に転送対象の[データのサイズ]を追加する。
【0140】
S31b~S31dのループ処理が終了すると、アプリ処理・データアクセス実行時間計算部1213は、S31e~S31fのループ処理を、全拠点間のNW経路について実行する。S31e~S31fのループ処理では、[現在のデータ配置場所]からデータ配置組合せ表1221(
図9)の[該当組合せのデータ配置場所]へ全てのデータを再配置する場合の転送時間(再配置時間)を算出する。
【0141】
S31eでは、アプリ処理・データアクセス実行時間計算部1213は、使用可能な拠点間NW帯域=[拠点間ネットワーク帯域]-[既存拠点間ネットワーク利用量]を算出する。S31eでは、拠点間のネットワークの帯域のうち現在使用可能な帯域を計算する。
【0142】
次にS31fでは、アプリ処理・データアクセス実行時間計算部1213は、該当NW経路の再配置時間=[該当NW経路の再配置転送量]/[使用可能な拠点間NW帯域]を計算する。[該当NW経路の再配置転送量]はS31b~S31dのループ処理で算出されたものである。[使用可能な拠点間NW帯域]は、S31eで算出されたものである。
【0143】
S31e~S31fのループ処理が終了すると、S31gでは、アプリ処理・データアクセス実行時間計算部1213は、全NW経路のうち最大の再配置時間を全体の[データ再配置時間]とする。次に、S31hでは、アプリ処理・データアクセス実行時間計算部1213は、[データ再配置開始時刻]=0:00、[データ再配置終了時刻]=[データ再配置開始時刻]+[データ再配置時間]とする。
【0144】
次に、S31iでは、アプリ処理・データアクセス実行時間計算部1213は、次の情報を計算用再配置変数管理表1223(
図11)に登録する。すなわちアプリ処理・データアクセス実行時間計算部1213は、[データ再配置時間](S31gで算出)、[データ再配置開始時刻](S31hで設定)、[データ再配置終了時刻](S31hで設定)、各NW経路の[再配置転送量](S31b~S1dのループ処理で算出)、[拠点間ネットワーク帯域](S31aで取得)、[既存拠点間ネットワーク利用量](S31aで取得)を計算用再配置変数管理表1223に登録する。
【0145】
(ワークフロー_初期値設定S32(
図28)の処理概要)
ワークフロー_初期値設定S32の詳細処理の説明に先立ち、処理概要を説明する。
図31は、ワークフロー_初期値設定S31の処理概要を説明するための図である。
【0146】
各ワークフローX3のそれぞれは、ユーザ指定の実行期限があるため、その実行開始時刻に関わらず、
図31に示すように、分析ワークフロー全体のデプロイ開始時刻から実行期限までの実行終了時刻が決まる。
【0147】
(ワークフロー_初期値設定S32(
図28)の詳細処理)
図32は、ワークフロー_初期値設定S32の詳細処理例を示すフローチャートである。
【0148】
先ず、S32aでは、アプリ処理・データアクセス実行時間計算部1213は、次の情報を取得する。すなわちアプリ処理・データアクセス実行時間計算部1213は、分析ワークフロー情報管理表1216(
図4)から[ワークフローの実行期限]を、計算用再配置変数管理表1223(
図11)から[データ再配置終了時刻]をそれぞれ取得する。
【0149】
次に、アプリ処理・データアクセス実行時間計算部1213は、S32bのループ処理を、全てのワークフローについて実行する。S32bでは、アプリ処理・データアクセス実行時間計算部1213は、次の情報を計算用WF変数管理表1222(
図10)に登録する。すなわちアプリ処理・データアクセス実行時間計算部1213は、[ワークフロー終了時刻]=[ワークフローの実行期限]、[ワークフロー開始時刻]=[データ再配置終了時刻]、[ワークフロー実行時間]=[ワークフロー終了時刻]-[ワークフロー開始時刻]を計算用WF変数管理表1222に登録する。
【0150】
(複数ワークフロー_初期値設定S33(
図28)の処理概要)
複数ワークフロー_初期値設定S33の詳細処理の説明に先立ち、処理概要を説明する。
図33は、複数ワークフロー_初期値設定S33の処理概要を説明するための図である。
【0151】
図33に示すように、ユーザ指定の実行期限が最長である最後のワークフローX3の実行終了時刻が、複数ワークフローX2の実行終了時刻となるように、複数ワークフローX2の実行時間を定める。すなわち、複数ワークフローX2の実行開始時刻=データ再配置X1の実行終了時刻、複数ワークフローX2の実行終了時刻=最後のワークフローX3の実行終了時刻、複数ワークフローX2の実行時間=複数ワークフローX2の実行終了時刻-複数ワークフローX2の実行開始時刻とする。
【0152】
(複数ワークフロー_初期値設定S33(
図28)の詳細処理)
図34は、複数ワークフロー_初期値設定S33の詳細処理例を示すフローチャートである。
【0153】
S33aでは、アプリ処理・データアクセス実行時間計算部1213は、次の情報を計算用WF変数管理表1222に登録する。すなわちアプリ処理・データアクセス実行時間計算部1213は、[複数ワークフロー開始時刻]=[データ再配置終了時刻]、[複数ワークフロー終了時刻]=[最後のワークフロー終了時刻]、[複数ワークフロー実行時間]=[複数ワークフロー終了時刻]-[複数ワークフロー開始時刻]を計算用WF変数管理表1222に登録する。
【0154】
(アプリ・データ_初期値設定S34(
図28)の処理概要)
アプリ・データ_初期値設定S34の詳細処理の説明に先立ち、処理概要を説明する。
図35は、アプリ・データ_初期値設定S34の処理概要を説明するための図である。
【0155】
各アプリX4の実行時間は、複数ワークフローX2の実行期限(複数ワークフローX2の実行終了時刻)から割り出す。初回は、複数ワークフローX2の実行時間をアプリの数で除算した結果を各アプリX4の目標実行時間とする。このとき並列に同時実行できるアプリは、同じ実行時間帯を割当てる。アプリからデータへの目標アクセス時間は、アプリがどのタイミングでデータへアクセスするかを予測できないため、アプリの目標実行時間と同じとする。
【0156】
(アプリ・データ_初期値設定S34(
図28)の詳細処理)
図36は、アプリ・データ_初期値設定S34の詳細処理例を示すフローチャートである。
【0157】
S34aでは、アプリ処理・データアクセス実行時間計算部1213は、分析ワークフロー情報管理表1216(
図4)の「アプリの実行順序/回数」が等しいアプリの数(ParaAppNum)をカウントする。
【0158】
次にS24bでは、アプリ処理・データアクセス実行時間計算部1213は、各[アプリの目標実行時間]=ワークフローの実行時間/{全アプリの数-(ParaAppNum-1)}を計算する。ワークフローの実行時間は、計算用WF変数管理表1222(
図10)に既に格納されている値を用いる。
【0159】
S24bでは、同時実行できるアプリは、同じ実行時間帯を割当てるとし、分析ワークフローの実行期限から、各アプリの実行時間を割り出す。
【0160】
次にS34cでは、アプリ処理・データアクセス実行時間計算部1213は、各アプリからのファイルへの目標アクセス時間=各アプリの目標実行時間とする。各アプリの目標実行時間は、S23bで算出された情報である。S34cでは、アプリがどのタイミングでデータをオープン、クローズするか予測するのが難しいため、アプリからデータへの目標アクセス時間は、アプリの目標実行時間と同じとしている。
【0161】
次にS34dでは、アプリ処理・データアクセス実行時間計算部1213は、計算用WF変数管理表1222(
図10)に、各[アプリの目標実行時間]と[ファイル目標アクセス時間]を登録する。
【0162】
次にS34eでは、アプリ処理・データアクセス実行時間計算部1213は、アプリ・データアクセス実行時刻計算を行う。S34eの詳細処理は、
図37を参照して後述する。
【0163】
(アプリ・データアクセス実行時刻計算34e(
図36)の詳細処理)
図37は、アプリ・データアクセス実行時刻計算34eの詳細処理例を示すフローチャートである。アプリ・データアクセス実行時刻計算34eでは、次の方針でアプリ及びデータアクセス実行時刻を計算する。時間軸上、同じ実行順序のアプリは並列に実行し、その他は実行順序に従ってアプリを実行する。実行順序が最も早いアプリの開始時刻は、そのアプリが含まれるワークフローの開始時刻と同一に設定する。実行順序が次に早いアプリの開始時刻は、前のアプリの終了時刻にする。アプリを並列に実行する場合は、実行開始時刻及び実行終了時刻のそれぞれを同一にする。データのアクセス開始時刻及び終了時刻は、データアクセスのタイミングを把握できないため、アプリの実行開始時刻及び実行終了時刻と同一とする。
【0164】
先ずS34e1では、アプリ処理・データアクセス実行時間計算部1213は、分析ワークフロー情報管理表1216(
図4)から「アプリの実行順序/回数」及び「ファイルアクセスの実行順序/回数」を取得する。
【0165】
次にS34e2では、アプリ処理・データアクセス実行時間計算部1213は、計算用WF変数管理表1222(
図10)から、各「アプリの目標実行時間」を取得する。次にS34e3では、アプリ処理・データアクセス実行時間計算部1213は、最も実行順序の早いアプリX1の実行開始時刻=[ワークフローの開始時刻]とする。
【0166】
次にS34e4では、アプリ処理・データアクセス実行時間計算部1213は、最も実行順序の早いアプリX1の実行終了時刻=アプリX1の実行開始時刻+(アプリX1の目標実行時間×実行回数)を計算する。
【0167】
次にアプリ処理・データアクセス実行時間計算部1213は、S34e5~S34e11のループ処理を、ワークフロー内の全てのアプリのペアX,Yについて実行する。
【0168】
S34e5では、アプリ処理・データアクセス実行時間計算部1213は、アプリYの実行順序=アプリXの実行順序か否かを判定する。アプリ処理・データアクセス実行時間計算部1213は、アプリYの実行順序=アプリXの実行順序の場合(S34e5YES)にS34e6へ処理を移し、アプリYの実行順序≠アプリXの実行順序の場合(S34e5NO)にS34e8へ処理を移す。
【0169】
S34e6では、アプリ処理・データアクセス実行時間計算部1213は、アプリYの実行開始時刻=アプリXの実行開始時刻とする。次にS34e7では、アプリ処理・データアクセス実行時間計算部1213は、アプリYの実行終了時刻=アプリXの実行終了時刻とする。S34e7が終了すると、アプリ処理・データアクセス実行時間計算部1213は、S34e11へ処理を移す。
【0170】
一方、S34e8では、アプリ処理・データアクセス実行時間計算部1213は、アプリYの実行順序=アプリXの実行順序+1か否かを判定する。アプリ処理・データアクセス実行時間計算部1213は、アプリYの実行順序=アプリXの実行順序+1の場合(S34e8YES)にS34e9へ処理を移し、アプリYの実行順序≠アプリXの実行順序+1の場合(S34e8NO)にS34e11へ処理を移す。
【0171】
S34e9では、アプリ処理・データアクセス実行時間計算部1213は、アプリYの実行開始時刻=アプリXの実行終了時刻とする。次にS34e10では、アプリ処理・データアクセス実行時間計算部1213は、アプリYの実行開始時刻=アプリYの実行開始時刻+(アプリYの目標実行時間×実行回数)とする。S34e10が終了すると、アプリ処理・データアクセス実行時間計算部1213は、S34e11へ処理を移す。
【0172】
S34e11では、アプリ処理・データアクセス実行時間計算部1213は、データアクセス時刻計算処理を実行する。データアクセス時刻計算処理の詳細は、
図38を参照して後述する。
【0173】
(データアクセス時刻計算S34e11(
図37)の詳細処理)
図38は、データアクセス時刻計算S34e11の詳細処理例を示すフローチャートである。
【0174】
アプリ処理・データアクセス実行時間計算部1213は、S34e11a~S34a11bのループ処理を、アプリ内のアクセス対象ファイルFLx(x=1~n)に関して繰返す。
【0175】
S34e11aでは、アプリ処理・データアクセス実行時間計算部1213は、ファイルFLxの目標アクセス開始時刻=アプリの実行開始時刻とする。次にS34e11bでは、アプリ処理・データアクセス実行時間計算部1213は、ファイルFLxの目標アクセス終了時刻=アプリの実行終了時刻とする。
【0176】
(複数アプリ間配分調整S22d2(
図27)の処理概要)
複数アプリ間配分調整S22d2の詳細処理の説明に先立ち、処理概要を説明する。
図39は、複数アプリ間配分調整S22d2の処理概要を説明するための図である。
【0177】
図39の例では、ワークフローX3#1に含まれるアプリX4#1~#4は、アプリX4#1、#2の並列実行時にリソース使用率が100%を超えてしまう。そこで、並列実行するアプリX4#1、#2の実行時間を延長して実行終了時刻を遅らせることでリソース使用率を100%未満に下げ、最後に実行されるアプリX4#4の実行時間を短くして実行開始時刻を遅らせる。この際、ワークフローX3#1の実行時間は、変えないように、アプリX4#1、#2の実行時間の延長時間と、アプリX4#4の実行時間の短縮時間とを同一にする。
【0178】
(複数アプリ間配分調整S22d2(
図27)の詳細処理)
図40は、複数アプリ間配分調整S22d2の詳細処理例を示すフローチャートである。
【0179】
先ずS41では、アプリ処理・データアクセス実行時間計算部1213(
図3)は、1つのアプリ実行におけるリソース消費量計算を行う。S41の詳細処理は、
図41を参照して後述する。次にS42では、アプリ処理・データアクセス実行時間計算部1213は、1つのワークフローにおけるリソース消費量計算を行う。S42の詳細処理は、
図46を参照して後述する。
【0180】
次にS43では、アプリ処理・データアクセス実行時間計算部1213は、アプリ時間調整必要性確認を行う。アプリ処理・データアクセス実行時間計算部1213は、アプリ時間の調整必要の場合はS44へ処理を移し、アプリ時間の調整不要の場合は複数アプリ間配分調整S22d2を終了する。S43の詳細処理は、
図51を参照して後述する。
【0181】
S44では、アプリ処理・データアクセス実行時間計算部1213は、WF内アプリ目標実行時間の調整を行う。S44が終了すると、アプリ処理・データアクセス実行時間計算部1213は、S41へ処理を戻す。S44の詳細処理は、
図52を参照して後述する。
【0182】
(1つのアプリ実行におけるリソース消費量計算S41(
図40)の詳細処理)
図41は、1つのアプリ実行におけるリソース消費量計算S41の詳細処理例を示すフローチャートである。
【0183】
先ず、アプリ処理・データアクセス実行時間計算部1213は、以下の情報を取得する。アプリ・データ特性情報管理表1217から[アプリの種類]、[データのサイズ]、[アプリの場所]を取得する。また、計算用WF変数管理表1222(
図10)から[アプリの目標実行時間]を取得する。また、データ配置組合せ表1221(
図9)から[データ配置]を取得する。
【0184】
次にS41bでは、アプリ処理・データアクセス実行時間計算部1213は、アプリケーションの要求処理速度算出を実行する。アプリケーションの要求処理速度算出の詳細は、
図42を参照して後述する。
【0185】
次にS41cでは、アプリ処理・データアクセス実行時間計算部1213は、コンピュートのハードウェアリソース量算出を実行する。コンピュートのハードウェアリソース量算出の詳細は、
図43を参照して後述する。
【0186】
次にS41dでは、アプリ処理・データアクセス実行時間計算部1213は、ストレージの必要性能算出を実行する。ストレージの必要性能算出の詳細は、
図44を参照して後述する。
【0187】
次にS41eでは、アプリ処理・データアクセス実行時間計算部1213は、ストレージ・ネットワークのハードウェアリソース量算出を実行する。ストレージ・ネットワークのハードウェアリソース量算出の詳細は、
図45を参照して後述する。
【0188】
次にS41fでは、アプリ処理・データアクセス実行時間計算部1213は、計算用WF変数管理表1222に、S41b~S41eで取得した各リソース消費量を登録する。
【0189】
(アプリケーションの要求処理速度算出S41b(
図41)の詳細処理)
図42は、アプリケーションの要求処理速度算出S41bの詳細処理例を示すフローチャートである。
【0190】
先ずS41b1では、アプリ処理・データアクセス実行時間計算部1213は、アプリ・データ特性情報管理表(
図5)を参照し、データサイズ(byte)=アプリからアクセスする全ファイルサイズの合計を計算する。次にS41b2では、アプリ処理・データアクセス実行時間計算部1213は、アプリ処理速度(byte/sec)=データサイズ(byte)/処理時間(sec)を計算する。
【0191】
(コンピュートのハードウェアリソース量算出S41c(
図41)の詳細処理)
図43は、コンピュートのハードウェアリソース量算出S41cの詳細処理例を示すフローチャートである。
【0192】
先ずS41c1では、アプリ処理・データアクセス実行時間計算部1213は、リソースモデル管理表1218(
図6)を参照し、アプリ・計算リソースモデルに分類されるモデルに対して、[アプリ処理速度]及び[アプリ種別]を入力する。次にS41c2では、アプリ処理・データアクセス実行時間計算部1213は、S41c1の入力に対して、[CPU(cores)](CPUコア数)、[メモリ(GB)](メモリ容量)、[拠点内コンピュートNW帯域(MB/s)]をリソース消費量として得る。
【0193】
(ストレージの必要性能算出S41d(
図41)の詳細処理)
図44は、ストレージの必要性能算出S41d(
図41)の詳細処理例を示すフローチャートである。
【0194】
先ずS41d1では、アプリ処理・データアクセス実行時間計算部1213は、リソースモデル管理表1218(
図6)を参照し、アプリ・データアクセス特性モデルに分類されるモデルに対して、[アプリ処理速度]及び[アプリ種別]を入力する。次にS41d2では、アプリ処理・データアクセス実行時間計算部1213は、S41d1の入力に対して、Sequential Read、Sequential Write、Random Read/Writeの各[ストレージIO性能(IOPS,MB/s)]を取得する。
【0195】
(ストレージ・ネットワークのハードウェアリソース量算出S41e(
図41)の詳細処理)
図45は、ストレージ・ネットワークのハードウェアリソース量算出S41eの詳細処理例を示すフローチャートである。
【0196】
先ずS41e1では、アプリ処理・データアクセス実行時間計算部1213は、リソースモデル管理表1218(
図6)を参照し、ストレージ性能モデルに分類されるモデルに対して、[(ストレージ)IO性能](S41d1で取得)、配置パターンの[アプリ(スタブデータ)]、及び[データ(オリジナルデータ)]を入力する。次にS41e2では、アプリ処理・データアクセス実行時間計算部1213は、S41e1の入力に対して、拠点内コンピュート-ストレージ間ネットワーク帯域[MB/s]、拠点間ストレージ-ネットワーク帯域[MB/s]、ストレージノード数をリソース消費量として得る。
【0197】
(1つのワークフロー実行におけるリソース消費量計算S42(
図40)の詳細処理)
図46は、1つのワークフロー実行におけるリソース消費量計算S42の詳細処理例を示すフローチャートである。
【0198】
先ずS42aでは、アプリ処理・データアクセス実行時間計算部1213は、拠点内(クラスタ内)のコンピュート消費量計算を実行する。拠点内(クラスタ内)のコンピュート消費量計算の詳細は、
図47を参照して後述する。
【0199】
次にS42bでは、アプリ処理・データアクセス実行時間計算部1213は、拠点内(クラスタ内)のストレージ消費量計算を実行する。拠点内(クラスタ内)のストレージ消費量計算の詳細は、
図48を参照して後述する。
【0200】
次にS42cでは、アプリ処理・データアクセス実行時間計算部1213は、拠点間のストレージ・ネットワーク消費量計算を実行する。アプリが自拠点内のスタブファイルへアクセス要求すると、データ仮想化機能部223は、他拠点にあるスタブファイルのオリジナルファイルから、アクセス元のスタブファイルの拠点へ、キャッシュを自動転送する。拠点間のストレージ・ネットワーク消費量計算では、このキャッシュ転送で発生する拠点間のストレージ・ネットワーク消費量を計算する。拠点間のストレージ・ネットワーク消費量計算の詳細は、
図50を参照して後述する。
【0201】
(拠点内(クラスタ内)のコンピュート消費量計算S42a(
図46)の詳細処理)
図47は、拠点内(クラスタ内)のコンピュート消費量計算S42aの詳細処理例を示すフローチャートである。
【0202】
先ずS42a1では、アプリ処理・データアクセス実行時間計算部1213は、計算用WF変数管理表1222(
図10)から、ワークフロー実行開始時刻とワークフロー実行終了時刻を取得する。
【0203】
次に、アプリ処理・データアクセス実行時間計算部1213は、S42a2~S42a7のループ処理を、全拠点Sy(y=1~m)に関して実行する。
【0204】
S42a2では、アプリ処理・データアクセス実行時間計算部1213は、稼働情報管理表1220(
図8)から、既存ワークロードのCPU利用量、メモリ利用量、及びNW利用量を取得する。次にS42a3では、アプリ処理・データアクセス実行時間計算部1213は、ワークフローの実行開始時刻~実行終了時刻において、拠点Syのコンピュート消費量=既存ワークロードのコンピュート消費量(CPU利用量、メモリ利用量、及びNW利用量)とする。
【0205】
次に、アプリ処理・データアクセス実行時間計算部1213は、S42a4~S42a5のループ処理を、全拠点Syで実行されるWF内の全アプリAk(k=1~a)に関して実行する。
【0206】
S42a4では、アプリ処理・データアクセス実行時間計算部1213は、計算用WF変数管理表1222から、アプリAkの実行開始時刻と実行終了時刻を取得する。次にS42a5では、アプリ処理・データアクセス実行時間計算部1213は、アプリAkの実行開始時刻~実行終了時刻において、拠点Syのコンピュート消費量=拠点Syのコンピュート消費量+アプリAkのコンピュート消費量(CPU利用量、メモリ利用量、及びNW利用量)とする。
【0207】
S42a4~S42a5のループ処理が終了すると、S42a6では、アプリ処理・データアクセス実行時間計算部1213は、構成情報管理表1219から、拠点Syのコンピュートリソース量(CPUコア数、メモリ搭載量、及びNW帯域)を取得する。
【0208】
次にS42a7では、アプリ処理・データアクセス実行時間計算部1213は、拠点Syのコンピュートリソース使用率(%)=拠点Syのコンピュート消費量/拠点Syのコンピュートリソース量を計算する。
【0209】
S42a2~S42a7のループ処理が終了すると、S42a8では、アプリ処理・データアクセス実行時間計算部1213は、S42a3、S42a5、及びS42a7の計算結果を、計算時刻と共に計算用インフラ情報管理表1224(
図12)に登録する。
【0210】
(拠点内(クラスタ内)のストレージ消費量計算S42b(
図46)の詳細処理)
図48は、拠点内(クラスタ内)のストレージ消費量計算S42bの詳細処理例を示すフローチャートである。
【0211】
先ずS42b1では、アプリ処理・データアクセス実行時間計算部1213は、計算用WF変数管理表1222(
図10)から、ワークフロー実行開始時刻とワークフロー実行終了時刻を取得する。
【0212】
次に、アプリ処理・データアクセス実行時間計算部1213は、S42b2~S42b4のループ処理を、全拠点Sy(y=1~m)に関して実行する。
【0213】
S42b2では、アプリ処理・データアクセス実行時間計算部1213は、稼働情報管理表1220(
図8)から、既存ワークロードのストレージ消費量(IO量、拠点内コンピュート・ストレージ間ネットワーク利用量)を取得する。
【0214】
次にS42b3では、アプリ処理・データアクセス実行時間計算部1213は、消費IO量及びストレージノード数換算処理を実行する。消費IO量及びストレージノード数換算処理の詳細は、
図49を参照して後述する。
【0215】
次にS42b4では、アプリ処理・データアクセス実行時間計算部1213は、ワークフローの実行開始時刻~実行終了時刻において、拠点Syのストレージ消費量=既存ワークロードのストレージ消費量(IO用ストレージノード数、IO性能利用量、拠点内コンピュート・ストレージ間ネットワーク利用量)とする。
【0216】
S42b2~S42b4のループ処理が終了すると、アプリ処理・データアクセス実行時間計算部1213は、S42b5~S42b6のループ処理を、拠点Syで実行されるWF内の全アプリAk(k=1~a)、アプリAkからアクセスされるファイルFLx(x=1~n)に関して繰返す。
【0217】
S42b5では、アプリ処理・データアクセス実行時間計算部1213は、計算用WF変数管理表1222(
図10)から、ファイルFLxの次の情報を取得する。すなわち、[アプリからの目標アクセス開始時刻]、[アプリからの目標アクセス終了時刻]、[必要ストレージノード数]、及び[必要拠点内コンピュート-ストレージ間ネットワーク帯域]を取得する。
【0218】
次にS42b6では、アプリ処理・データアクセス実行時間計算部1213は、ファイルFLxの目標アクセス開始時刻~終了時刻において、拠点Syのストレージ消費量=拠点Syのストレージ消費量+ファイルFLxのストレージ消費量を計算する。
【0219】
S42b5~S42b6のループ処理が終了すると、S42b7では、アプリ処理・データアクセス実行時間計算部1213は、構成情報管理表1219(
図7)から、拠点Syのストレージリソース量(クラスタ内ノード数、及び拠点内コンピュート・ストレージ間ネットワーク帯域)を取得する。
【0220】
次にS42b8では、アプリ処理・データアクセス実行時間計算部1213は、拠点Syのストレージリソース使用率(%)=拠点Syのストレージ消費量/拠点Syのストレージリソース量を計算する。最後にS42b9では、アプリ処理・データアクセス実行時間計算部1213は、S42b4、S42b6、及びS42b8の計算結果を、計算時刻と共に計算用インフラ情報管理表1224に登録する。
【0221】
(消費IO量及びストレージノード数換算S42b3(
図48)の詳細処理)
図49は、消費IO量及びストレージノード数換算S42b3の詳細処理例を示すフローチャートである。
【0222】
先ずS42b3aでは、アプリ処理・データアクセス実行時間計算部1213は、稼働情報管理表1220(
図8)から、拠点Syの既存ワークロードのストレージの[IO量(1クラスタ内)]を取得する。次にS42b3bでは、アプリ処理・データアクセス実行時間計算部1213は、構成情報管理表1219(
図7)から、拠点Syの[1クラスタ最大IO量]を取得する。
【0223】
次にS42b3cでは、アプリ処理・データアクセス実行時間計算部1213は、ワークフローの実行開始時刻~実行終了時刻において、既存ワークロードのストレージ消費量(IO用ストレージノード数)=([既存ワークロードのストレージIO量]/[1クラスタ最大IO量])×[クラスタ内ノード数]とする。
【0224】
図50は、拠点間のストレージ・ネットワーク消費量計算S42c(
図46)の詳細処理例を示すフローチャートである。
【0225】
先ずS42c1では、アプリ処理・データアクセス実行時間計算部1213は、計算用WF変数管理表1222(
図10)から、ワークフローの実行開始時刻とワークフロー実行終了時刻を取得する。
【0226】
次に、アプリ処理・データアクセス実行時間計算部1213は、S42c2~S42c8のループ処理を、全拠点Syのうちの全ての2つの拠点間のネットワークNz(z=1~b)に関して繰返し実行する。
【0227】
S42c2では、アプリ処理・データアクセス実行時間計算部1213は、稼働情報管理表1220(
図8)から、既存ワークロードの[拠点間ネットワーク利用量]を取得する。次にS42c3では、アプリ処理・データアクセス実行時間計算部1213は、ワークフローの実行開始時刻~ワークフロー実行終了時刻において、ネットワークNzの[拠点間ストレージ用ネットワーク利用量]=既存ワークロードの拠点間ネットワーク利用量とする。
【0228】
次に、アプリ処理・データアクセス実行時間計算部1213は、S42c4~S42c6のループ処理を、拠点Syで実行されるWF内の全アプリAk(k=1~a)、及び、アプリAkからアクセスされるファイルFLx(x=1~n)に関して実行する。
【0229】
S42c4では、アプリ処理・データアクセス実行時間計算部1213は、アプリAkが拠点Syで実行され、ファイルFLxが拠点Syに配置されているか否かを判定する。アプリ処理・データアクセス実行時間計算部1213は、アプリAkが拠点Syで実行され、ファイルFLxが拠点Syに配置されている場合(S42c4YES)にS42c5へ処理を移す。一方、アプリAkが拠点Syで実行されたがファイルFLxが拠点Syに配置されていない場合(S42c4NO)に、次のファイルFLxもしくはアプリAkについてループ処理を継続する、又は、全てのファイルFLx及びアプリAkについてループ処理が終了した場合にS42c7へ処理を移す。
【0230】
S42c5では、アプリ処理・データアクセス実行時間計算部1213は、計算用WF変数管理表1222(
図10)から、ファイルFLxの次の情報を取得する。すなわち、[アプリからの目標アクセス開始時刻]、[アプリからの目標アクセス終了時刻]、及び[必要拠点間ストレージ用ネットワーク帯域]を取得する。
【0231】
S42c6では、アプリ処理・データアクセス実行時間計算部1213は、ファイルFLxの目標アクセス開始時刻~終了時刻において、ネットワークNzの[拠点間ストレージ用ネットワーク利用量]=ネットワークNzの[拠点間ストレージ用ネットワーク利用量]+ファイルFLxの[必要拠点間ストレージ用ネットワーク帯域]を計算する。
【0232】
S42c4~S42c6のループ処理が終了すると、S42c7では、アプリ処理・データアクセス実行時間計算部1213は、構成情報管理表1219(
図7)から、ネットワークNzの[拠点間ネットワーク帯域]を取得する。
【0233】
次にS42c8では、アプリ処理・データアクセス実行時間計算部1213は、ネットワークNzのリソース使用率(%)=ネットワークNzの利用量/ネットワークNzの拠点間ネットワーク帯域を計算する。
【0234】
S42c2~S42c8のループ処理が終了すると、S42c9では、アプリ処理・データアクセス実行時間計算部1213は、S42c3、S42c6、及び、S42c8の計算結果を、計算時刻と共に計算用インフラ情報管理表1224(
図12)に登録する。
【0235】
(アプリ時間調整必要性確認S43(
図40)の詳細処理)
図51は、アプリ時間調整必要性確認S43の詳細処理例を示すフローチャートである。
【0236】
先ず、アプリ処理・データアクセス実行時間計算部1213は、S43a~S43bのループ処理を、全拠点Sy(y=1~n)及びワークフローの実行開始時刻Ts~実行終了時刻Teの全ての時刻Txについて実行する。時刻Txは、単位時間(例えば1秒)の時刻である。
【0237】
S43aでは、アプリ処理・データアクセス実行時間計算部1213は、時刻Txのリソース使用率>最大リソース使用率であるか否かを判定する。ただし、拠点内(クラスタ内)のコンピュート消費量、拠点内(クラスタ内)のストレージ消費量、及び拠点間のストレージ・ネットワーク消費量について、拠点Syの全てのリソースについて比較する。アプリ処理・データアクセス実行時間計算部1213は、時刻Txのリソース使用率>最大リソース使用率となるリソースがある場合(S43aYES)にS43bへ処理を移す。一方、アプリ処理・データアクセス実行時間計算部1213は、全てのリソースについて時刻Txのリソース使用率≦最大リソース使用率である場合(S43aNO)に、次の拠点Sy又は時刻Txについてループ処理を継続する、又は全ての拠点Sy及び時刻Txについてループ処理が終了した場合にS43cへ処理を移す。
【0238】
S43bでは、アプリ処理・データアクセス実行時間計算部1213は、最大リソース使用率=時刻Txのリソース使用率とする。
【0239】
S43a~S43bのループ処理が終了すると、S43cでは、アプリ処理・データアクセス実行時間計算部1213は、最大リソース使用率が100%を超えているか否かを判定する。アプリ処理・データアクセス実行時間計算部1213は、最大リソース使用率が100%を超えている場合(S43cYES)にS43dへ処理を移し、最大リソース使用率が100%以下の場合(S43cNO)にアプリ時間調整必要性確認S43を終了する。
【0240】
S43dでは、アプリ処理・データアクセス実行時間計算部1213は、アプリの時間調整が必要であるとする。
【0241】
(WF内アプリ目標実行時間調整S44(
図40)の詳細処理)
図52は、WF内アプリ目標実行時間調整S44の詳細処理例を示すフローチャートである。WF内アプリ目標実行時間調整S44では、リソース使用率が高い(100%を超える)アプリの実行時間を延ばし、その分をリソース使用率が低い(100%未満)アプリの実行時間を短くする。具体的には、リソース使用率が最大のアプリをリソース使用率100%以下で実行した場合の実行可能時間を計算し、この実行可能時間をリソース使用率が最小のアプリの実行可能時間に加算する。同様に、リソース使用率がi番目に大きいアプリをリソース使用率100%以下で実行した場合の実行可能時間を計算し、この実行可能時間をリソース使用率がi番目に小さいアプリの実行可能時間に加算する処理を、リソース使用率が100%を超える全てのアプリについて実行する。なお、実行可能時間は、リソース使用率が最も高いリソースのリソースモデルに基づいて計算する。
【0242】
先ずS44aでは、アプリ処理・データアクセス実行時間計算部1213は、リソース使用率が100%を超えるアプリをリソース使用率が高い順に並べ替える。リソース使用率が高い順に並べ替えたアプリをVx(x=1~p)とする。
【0243】
次にS44bでは、アプリ処理・データアクセス実行時間計算部1213は、リソース使用率が100%を下回るアプリをリソース使用率が低い順に並べ替える。リソース使用率が低い順に並べ替えたアプリをUx(x=1~q)とする。
【0244】
次に、アプリ処理・データアクセス実行時間計算部1213は、S44c~S44fのループ処理を、リソース使用率が100%を超えるアプリVx(x=1~p)について実行する。
【0245】
S44cでは、アプリ処理・データアクセス実行時間計算部1213は、リソース使用率が最も高いリソースについて、該当リソースのリソースモデルを使用してアプリVxの「実行可能速度」を、リソースの種類によって、以下の(A)~(C)のように計算する。
【0246】
(A)リソースが拠点内(クラスタ内)のコンピュートの場合:
・構成情報管理表1219(
図7)から、該当拠点のコンピュートリソース量(CPUコア数、メモリ容量、及びクラスタ内ネットワーク帯域)を取得する。
・稼働情報管理表1220(
図8)から、既存ワークロードのコンピュート消費量(CPU利用量、メモリ利用量、及びクラスタ内ネットワーク利用量)を取得する。
・空きコンピュートリソース量=拠点内のコンピュートリソース量-既存ワークロードのコンピュート消費量を計算する。
・空きコンピュートリソース量(コンピュートのリソース量(CPU[core]、メモリ[byte]、及び拠点内コンピュートネットワーク帯域[byte/sec]))を入力として、「アプリ・計算リソースモデル」の各モデル(リソースモデル管理表1218(
図6)参照)から、実行可能なアプリ処理速度(「実行可能速度」)(byte/sec)を算出する。
【0247】
(B)リソースが拠点内(クラスタ内)のストレージの場合:
・構成情報管理表1219(
図7)から、該当拠点のストレージリソース量(クラスタ内ノード数、拠点内コンピュート・ストレージ間ネットワーク帯域)を取得する。
・稼働情報管理表1220(
図8)から、既存ワークロードのストレージ消費量(IO量、拠点内コンピュート・ストレージ間ネットワーク利用量)を取得する。
・空きストレージリソース量=拠点内のストレージリソース量-既存ワークロードのストレージ消費量を算出する。
・空きストレージリソース量(ストレージリソース量(ストレージノード数、拠点内コンピュート-ストレージ間ネットワーク帯域(byte/sec)))を入力として、「ストレージ性能モデル」の各モデル(リソースモデル管理表1218(
図6参照))から、実現可能なストレージIO性能(byte/sec,IOPS)を算出する。
・実現可能なストレージIO性能を入力として、「アプリ・データアクセス特性モデル」の各モデル(リソースモデル管理表1218(
図6)参照)から、実行可能なアプリ処理速度(「実行可能速度」)(byte/sec)を算出する。
【0248】
(C)リソースが拠点間のストレージ・ネットワークの場合:
・構成情報管理表1219(
図7)から、対象ネットワークの[拠点間ネットワーク帯域]を取得する。
・稼働情報管理表1220(
図8)から、既存ワークロードの[拠点間ネットワーク利用量]を取得する。
・空きネットワークリソース量=対象ネットワークの[拠点間ネットワーク帯域]-既存ワークロードの[拠点間ネットワーク利用量]を計算する。
・空きネットワークリソース量(拠点間ネットワーク帯域(byte/sec))を入力として、「ストレージ性能モデル」の各モデル(リソースモデル管理表1218(
図6)参照)から、実現可能なストレージIO性能を算出する。
・実現可能なストレージIO性能から、実現可能なストレージ性能(byte/sec,IOPS)を入力として、実行可能なアプリ処理速度(「実行可能速度」)(byte/sec)を算出する。
【0249】
次にS44dでは、アプリ処理・データアクセス実行時間計算部1213は、S44cで計算したアプリVxの実行可能速度を基に、下記式(2)を用いて、アプリVxの実行可能時間を計算する。
実行可能時間(sec)=データサイズ(byte)/実行可能速度(byte/sec)・・・(2)
ただし、データサイズ(byte)は、アプリVxがアクセスするファイルのデータサイズの合計である。
【0250】
次にS44eでは、アプリ処理・データアクセス実行時間計算部1213は、アプリVxの変更後の新実行可能時間を、S44eで計算された実行可能時間として設定する(新実行可能時間=実行可能時間)。次にS44fでは、アプリ処理・データアクセス実行時間計算部1213は、アプリVxの変更前の旧実行可能時間と、新実行可能時間との差分を、アプリUxの実行可能時間に加算する。
【0251】
このように、ワークフロー内でアプリの実行時間を最小単位として、各アプリの実行開始時刻を調節することで、例えば分単位でアプリの実行開始時刻をずらして計算する場合に比べ計算量を抑制できる。
【0252】
(複数ワークフロー間配分調整S22d3(
図27)の処理概要)
複数ワークフロー間配分調整S22d3の詳細処理の説明に先立ち、処理概要を説明する。
図53は、複数ワークフロー間配分調整S22d3の処理概要を説明するための図である。
【0253】
複数ワークフロー間配分調整S22d3では、リソース使用率を下げるために、ワークフロー同士の並列実行を減らし、実行開始時刻を後ろにずらす(時間を短くする)。
図53に示すように、複数ワークフローX2#1内では、実行開始初期においてワークフローX3#1~#3が並列実行されており、リソース使用率が100%を超過している。そこで、ワークフローX3#3の実行開始時刻を後ろへ遅らせて実行時間を短縮する。このとき、複数ワークフローX2#1全体の実行時間は不変とする。すると、ワークフローX3#3の実行時のリソース使用率は上昇するものの100%未満であり、かつ複数ワークフローX2#1の実行開始初期でのリソース使用率が100%を超過する状態が解消されている。
【0254】
(複数ワークフロー間配分調整S22d3の詳細処理)
図54は、複数ワークフロー間配分調整S22d3(
図27、S62(
図59)も同様)の詳細処理例を示すフローチャートである。複数ワークフロー間配分調整S22d3では、複数のワークフロー全体の実行時間の配分は不変として、個別のワークフローの開始時刻を後ろに遅らせる(ワークフローの実行時間を短くする)ことで、ワークフロー同士の並列を減らす。ワークフローの開始時刻の変更を受け、ワークフロー内のアプリの実行時間及びデータのアクセス時間を調整することで、リソース使用率が100%を超えないようにする。
【0255】
複数ワークフロー間配分調整S22d3では、複数のワークフローが実行期限内に終わる配置パターンの中で、最も平均リソース使用率が低くなるワークフローの実行開始時間の組合せを選択することで、複数のワークフローの実行期間中の各リソース使用率を平準化している。実行開始時刻を遅らせるワークフローの中で、最もリソース使用率が低くなる時刻が発見されると、そのワークフローの実行開始時刻は決定したとする。次のワークフローの実行開始時刻を遅らせるとき、実行開始時刻を決定済みのワークフローは実行開始時刻を動かさない。
【0256】
先ずアプリ処理・データアクセス実行時間計算部1213は、S51~S56のループ処理を、実行時間が長い順のワークフローWx(x=1~w)について繰り返す。
【0257】
S51では、アプリ処理・データアクセス実行時間計算部1213は、複数WFリソース消費量計算を実行する。複数WFリソース消費量計算の詳細は、
図55を参照して後述する。
【0258】
次にS52では、アプリ処理・データアクセス実行時間計算部1213は、ワークフローWx内のアクセス対象ファイルのうち、アクセス時間が最も短いファイルのアクセス時間を単位として、ワークフローWxの実行開始時刻を後ろに遅らせる。
【0259】
次にS53では、アプリ処理・データアクセス実行時間計算部1213は、ワークフローWxの実行開始時刻を遅らせた分だけ、ワークフローWxの実行時間を短縮する。次にS54では、アプリ処理・データアクセス実行時間計算部1213は、ワークフローWxの実行時間≦0か否かを判定する。アプリ処理・データアクセス実行時間計算部1213は、ワークフローWxの実行時間≦0である場合(S54YES)にS55へ処理を移し、ワークフローWxの実行時間>0である場合(S54NO)にS56へ処理を移す。
【0260】
S55では、アプリ処理・データアクセス実行時間計算部1213は、下記式(3)で表される各拠点の平均リソース使用率が最も短くなる時刻を、ワークフローWxの実行開始時刻として選択する。
平均リソース使用率=Σリソース使用率/(リソース種別数×拠点数)・・・(3)
ただし、Σリソース使用率は、全拠点における全リソース種別のリソース使用率の和である。
【0261】
一方S56では、アプリ処理・データアクセス実行時間計算部1213は、複数アプリ間配分調整(
図40)を実行する。S56が終了すると、アプリ処理・データアクセス実行時間計算部1213は、S51へ処理を移す。
【0262】
S51~S56のループ処理が終了すると、S57では、アプリ処理・データアクセス実行時間計算部1213は、全てのワークフローの実行開始時刻の組合せにおいて、全ワークフロー合計リソース使用率>100%か否かを判定する。全ワークフロー合計リソース使用率は、下記式(4)で表される。
全ワークフロー合計リソース使用率=Σリソース使用量/全リソース量・・・(4)
ただし、Σは、該当拠点における全てのワークフローWx(x=1~w)の該当リソース種別のリソース使用量の和であり、全リソース量は該当拠点の全てのリソース量である。
【0263】
アプリ処理・データアクセス実行時間計算部1213は、全ワークフロー合計リソース使用率>100%である場合(S57YES)にS58へ処理を移し、全ワークフロー合計リソース使用率≦100%である場合(S57NO)に複数ワークフロー間配分調整S22d3を終了する。
【0264】
S58では、アプリ処理・データアクセス実行時間計算部1213は、該当のデータ配置では、指定された実行時間内に全WFを完了できない旨の通知を出力する。
【0265】
このように、ワークフロー内でリソース消費量を変えることができるファイルアクセスの実行時間を最小単位として、各ワークフローの実行開始時刻を調節することで、例えば分単位でワークフローの実行開始時刻をずらして計算する場合に比べ計算量を抑制できる。
【0266】
(複数WFリソース消費量計算S51(
図54)の詳細処理)
図55は、複数WFリソース消費量計算S51の詳細処理例を示すフローチャートである。複数WFリソース消費量計算S51では、各ワークフローの実行開始時刻と実行終了時刻に沿って、リソース消費量を算出する。初回計算時は、全ワークフローを同時に並列実行する前提で算出する。
【0267】
先ずS51aでは、アプリ処理・データアクセス実行時間計算部1213は、複数WFコンピュート/ストレージ消費量計算を実行する。複数WFコンピュート/ストレージ消費量計算の詳細は、
図56を参照して後述する。
【0268】
次にS51bでは、アプリ処理・データアクセス実行時間計算部1213は、複数WFストレージ・ネットワーク消費量計算を実行する。複数WFストレージ・ネットワーク消費量計算の詳細は、
図57を参照して後述する。
【0269】
(複数WFコンピュート/ストレージ消費量計算S51aの詳細処理)
図56は、複数WFコンピュート/ストレージ消費量計算S51a(
図55)の詳細処理例を示すフローチャートである。
【0270】
先ず、アプリ処理・データアクセス実行時間計算部1213は、S51a1~S51a5のループ処理を、全拠点Sy(y=1~n)に関して繰返す。
【0271】
S51a1では、アプリ処理・データアクセス実行時間計算部1213は、計算用インフラ情報管理表1224(
図12)から、既存ワークロードの次の情報を取得する。すなわち、コンピュート消費量(CPU利用量、メモリ利用量、及びNW利用量)、ストレージ消費量(IO用ストレージノード数、IO性能利用量、及び拠点内コンピュート・ストレージ間ネットワーク利用量)を取得する。
【0272】
次にS51a2では、アプリ処理・データアクセス実行時間計算部1213は、ワークフローの実行開始時刻~実行終了時刻において次のようにする。すなわち、拠点Syのコンピュート消費量=既存ワークロードのコンピュート消費量、拠点Syのストレージ消費量=既存ワークロードのストレージ消費量とする。
【0273】
次にアプリ処理・データアクセス実行時間計算部1213は、S51a3~S51a5のループ処理を、全ワークフローWx(x=1~w)に関して繰返す。
【0274】
S51a3では、アプリ処理・データアクセス実行時間計算部1213は、計算用WF変数管理表1222(
図10)からワークフローWxの開始時刻と終了時刻の情報を取得する。次にS51a4では、アプリ処理・データアクセス実行時間計算部1213は、計算用インフラ情報管理表1224(
図12)からワークフローWxの次の情報を取得する。すなわち、コンピュート消費量(CPU利用量、メモリ利用量、及びNW利用量)、ストレージ消費量(IO用ストレージノード数、IO性能利用量、及び拠点内コンピュート・ストレージ間ネットワーク利用量)を取得する。
【0275】
次にS51a5では、アプリ処理・データアクセス実行時間計算部1213は、ワークフローWxの実行開始時刻~実行終了時刻において、拠点Syのコンピュート消費量=拠点syのコンピュート消費量+ワークフローWxのコンピュート消費量、拠点Syのストレージ消費量=拠点Syのストレージ消費量+ワークフローWxのストレージ消費量とする。
【0276】
(複数WFストレージ・ネットワーク消費量計算S51b(
図55)の詳細処理)
図57は、複数WFストレージ・ネットワーク消費量計算S51bの詳細処理例を示すフローチャートである。
【0277】
先ず、アプリ処理・データアクセス実行時間計算部1213は、S51b1~S51b5のループ処理を、全拠点Sy(y=1~n)のうちの全ての2拠点間のネットワークNz(z=1~b)に関して繰返す。
【0278】
S51b1では、アプリ処理・データアクセス実行時間計算部1213は、計算用インフラ情報管理表1224(
図12)から、現在の処理対象の2拠点間の既存ワークロードの[拠点間ネットワーク利用量]を取得する。
【0279】
次にS51b2では、アプリ処理・データアクセス実行時間計算部1213は、ワークフローの実行開始時刻~実行終了時刻において、ネットワークNzの利用量=既存ワークロードの拠点間ネットワーク利用量とする。
【0280】
次に、アプリ処理・データアクセス実行時間計算部1213は、S51b3~S51b5のループ処理を、全ワークフローWx(x=1~w)に関して繰返す。
【0281】
S51b3では、アプリ処理・データアクセス実行時間計算部1213は、計算用WF変数管理表1222(
図10)からワークフローWxのワークフロー開始時刻とワークフロー終了時刻を取得する。次にS51b4では、アプリ処理・データアクセス実行時間計算部1213は、計算用インフラ情報管理表1224(
図12)からワークフローWxの拠点間ストレージ用ネットワーク利用量を取得する。
【0282】
次にS51b5では、アプリ処理・データアクセス実行時間計算部1213は、ワークフローWxの実行開始時刻~実行終了時刻において、ネットワークNzの利用量=ネットワークNzの利用量+ワークフローWxの拠点間ストレージ用ネットワーク利用量とする。
【0283】
(データ再配置・ワークフロー配分調整S22d4(
図27)の処理概要)
データ再配置・ワークフロー配分調整S22d4の詳細処理の説明に先立ち、処理概要を説明する。
図58は、データ再配置・ワークフロー配分調整S22d4の処理概要を説明するための図である。
【0284】
データ再配置・ワークフロー配分調整S22d4では、リソース使用率を下げるために、データ再配置X1の実行終了時刻を後ろに遅らせる(実行時間を長くする)。
図58に示すように、分析ワークフロー全体では、データ再配置X1の実行によってリソース使用率が100%近くと高い状態になっている。そこで、データ再配置X1の実行終了時刻を後ろへ遅らせて実行時間を短縮し、それに合せて複数ワークフローX2の実行開始時刻もデータ再配置X1の実行終了時刻と同様に後ろへ遅らせる。このとき、分析ワークフロー全体の実行期限は遵守するものとする。すると、複数ワークフローX2の実行時のリソース使用率は上昇するものの100%未満であり、かつデータ再配置X1の実行時のリソース使用率が100%近くの高い状態から低下し、分析ワークフローの実行期限内でリソース使用率の平準化が図られている。
【0285】
(データ再配置・ワークフロー配分調整S22d4(
図27)の詳細処理)
図59は、データ再配置・ワークフロー配分調整S22d4の詳細処理例を示すフローチャートである。
【0286】
先ずS61では、アプリ処理・データアクセス実行時間計算部1213は、データ再配置のリソース使用量計算を実行する。データ再配置のリソース使用量計算の詳細は、
図60を参照して後述する。次にS62では、アプリ処理・データアクセス実行時間計算部1213は、複数ワークフロー間配分調整を実行する。複数ワークフロー間配分調整の詳細は、
図54を参照して説明している。次にS63では、アプリ処理・データアクセス実行時間計算部1213は、データ再配置の時間調整を実行する。データ再配置の時間調整の詳細は、
図61を参照して後述する。
【0287】
次にS64では、アプリ処理・データアクセス実行時間計算部1213は、全ワークフローの実行開始時刻の組合せにおいてWF合計リソース使用率≦100%か否かを判定する。アプリ処理・データアクセス実行時間計算部1213は、全ワークフローの実行開始時刻の組合せにおいて、WF合計リソース使用率≦100%である場合(S64YES)にS65へ処理を移し、WF合計リソース使用率>100%である場合(S64NO)にS61へ処理を戻す。
【0288】
S65では、アプリ処理・データアクセス実行時間計算部1213は、データ再配置・ワークフローの時間配分選択を実行する。データ再配置・ワークフローの時間配分選択の詳細は、
図62を参照して後述する。
【0289】
(データ再配置のリソース使用量計算S61(
図59)の詳細処理)
図60は、データ再配置のリソース使用量計算S61の詳細処理例を示すフローチャートである。
【0290】
先ずS61aでは、アプリ処理・データアクセス実行時間計算部1213は、計算用再配置変数管理表1223(
図11)から[データ再配置時間]、[再配置転送量]、[拠点間ネットワーク帯域]、及び[既存拠点間ネットワーク利用量]の情報を取得する。
【0291】
次にアプリ処理・データアクセス実行時間計算部1213は、S62b~S61cのループ処理を、全ての拠点間ストレージNW経路に関して繰返す。S61bでは、アプリ処理・データアクセス実行時間計算部1213は、該当のネットワークNzについて、NW使用量=[再配置転送量]/[再配置時間]を計算する。次にS61cでは、アプリ処理・データアクセス実行時間計算部1213は、該当のネットワークNzについて、NWリソース使用率=([NW使用量]+[既存拠点間ネットワーク利用量]]/[拠点間ネットワーク帯域]を計算する。
【0292】
S62b~S61cのループ処理が終了すると、S61dでは、アプリ処理・データアクセス実行時間計算部1213は、拠点間ストレージNW経路毎の[再配置NW使用量](S61aで算出)及び[NWリソース使用率](S61cで算出)を、計算用再配置変数管理表1223(
図11)に登録する。
【0293】
(データ再配置の時間調整S63(
図59)の詳細処理)
図61は、データ再配置の時間調整S63の詳細処理例を示すフローチャートである。
【0294】
先ずS63aでは、アプリ処理・データアクセス実行時間計算部1213は、次の情報を取得する。すなわち、計算用再配置変数管理表1223(
図11)から[データ再配置時間]、[データ再配置開始時刻]、及び[データ再配置終了時刻]を、計算用WF変数管理表1222(
図10)から[複数ワークフロー実行時間]、[複数ワークフロー開始時刻]、[複数ワークフロー終了時刻]、[ワークフロー実行時間]、[ワークフロー開始時刻]、[ワークフロー終了時刻]、及びデータ(ファイル)の[アプリからの目標アクセス時間]を取得する。
【0295】
次にS63bでは、アプリ処理・データアクセス実行時間計算部1213は、計算用WF変数管理表1222(
図10)を参照し、全ワークフロー内のアクセス対象ファイルのうち、[アプリからの目標アクセス時間]が最も短いファイルのアクセス時間を選択する。次にS63cでは、アプリ処理・データアクセス実行時間計算部1213は、S63bで選択したファイルの最短のアクセス時間を単位としてデータ再配置の終了時刻を後ろに遅らせ、データ再配置時間を延長する。すなわち、[データ再配置時間]=[データ再配置時間]+[アプリからの目標アクセス時間]とした上で、[データ再配置終了時刻]=[データ再配置開始時刻]+[データ再配置時間]とする。
【0296】
次にS63dでは、アプリ処理・データアクセス実行時間計算部1213は、全ワークフローのうちの先頭のワークフロー開始時刻をデータ再配置終了時刻に合わせ、先頭のワークフロー実行時間を短縮する。すなわち、[(先頭の)ワークフロー開始時刻]=[データ再配置終了時刻]とした上で、[(先頭の)ワークフロー実行時間]=[ワークフロー終了時刻]-[ワークフロー開始時刻]、[複数ワークフロー開始時刻]=[(先頭の)ワークフロー開始時刻]、[複数ワークフロー実行時間]=[複数ワークフロー終了時刻]-[複数ワークフロー開始時刻]とする。
【0297】
次にS63eでは、アプリ処理・データアクセス実行時間計算部1213は、S63cの計算結果を計算用再配置変数管理表1223(
図11)に登録し、S63dの計算結果を計算用WF変数管理表1222(
図10)に登録する。
【0298】
(データ再配置・ワークフローの時間配分選択S65(
図59)の詳細処理)
図62は、データ再配置・ワークフローの時間配分選択S65の詳細処理例を示すフローチャートである。
【0299】
先ずS65aでは、アプリ処理・データアクセス実行時間計算部1213は、データ再配置の実行時間配分の全パターンにおいてWF合計リソース使用率>100%か否かを判定する。アプリ処理・データアクセス実行時間計算部1213は、データ再配置の実行時間配分の全パターンにおいてWF合計リソース使用率>100%である場合(S65aYES)にS65dへ処理を移し、少なくともあるデータ再配置の実行時間配分のパターンにおいてはWF合計リソース使用率≦100%である場合(S65aNO)にS65bへ処理を移す。
【0300】
S65bでは、アプリ処理・データアクセス実行時間計算部1213は、下記式(5)のように全リソースの平均使用率を計算する。
全リソースの平均使用率=Σ(R1j+ΣR2j)/(全リソース数×2)
・・・(5)
ただし、Σは、全てのリソースjのリソース使用率の和であり、R1jはデータ再配置時のリソースjのリソース使用率、R2jはワークフロー実行時のリソースjのリソース使用率である。
【0301】
次にS65cでは、アプリ処理・データアクセス実行時間計算部1213は、データ再配置の実行時間配分のうち、S65bで計算した全リソースの平均使用率が最も低い時間配分を選択する。
【0302】
一方S65dでは、アプリ処理・データアクセス実行時間計算部1213は、該当のデータ配置では、指定された実行時間内に全てのワークフローを完了できない旨の通知を出力する。
【0303】
(配置変更実行S26(
図22)の詳細処理)
図63は、配置変更実行S26の詳細処理例を示すフローチャートである。
【0304】
先ずS26aでは、アロケーション制御部121の配置変更実行部1214(
図3)は、各テーブルから必要な情報を取得する。すなわち、計算用再配置変数管理表1223(
図11)から[データ再配置開始時刻]及び[データ再配置終了時刻]、及び[再配置NW使用量]を、データ配置組合せ表1221(
図9)からデータ配置組合せ計算(
図23)のS22eで選択されたデータ配置に該当する[データ配置組合せ]を取得する。
【0305】
次にS26bでは、配置変更実行部1214は、管理サーバ10のITインフラ管理部123(
図1)に対して、S26aで計算用再配置変数管理表1223(
図11)から取得した[再配置NW使用量]に従って拠点間ストレージ・ネットワークのQoS(Quality of Service)制御を行うように指示する。次にS26cでは、ITインフラ管理部123は、S26bの指示に従って、データ再配置に関係するデータ転送元の拠点内のネットワーク機器(ストレージNW-SW200bなど)に対して、QoS制御の設定を行う。
【0306】
次にS26dでは、配置変更実行部1214は、QoSの設定完了後に、データ再配置に関係する拠点のデータ仮想化機能部223、323に対して、S26aでデータ配置組合せ表1221(
図9)から取得した[データ配置組合せ]に従ってデータの配置変更を行うように指示する。次にS26eでは、データ再配置に関係する拠点のデータ仮想化機能部223、323は、S26dの指示に従って、拠点間で配置変更対象データを転送する。
【0307】
(分析ワークフロー実行S27(
図22)の詳細処理)
図64は、分析ワークフロー実行S27の詳細処理例を示すフローチャートである。
【0308】
先ずS27aでは、アロケーション制御部121の分析ワークフロー実行部1215(
図3)は、計算用再配置変数管理表1223(
図11)、計算用WF変数管理表1222(
図10)、及び計算用インフラ情報管理表1224(
図12)から分析ワークフローの実行に必要なリソース情報、ワークフロー及びアプリの開始時刻を取得する。
【0309】
次にS27bでは、分析ワークフロー実行部1215は、ITインフラ管理部123に対して、ワークフロー毎に各リソースのQoS機能に上限値を設定するように指示する。すなわち、コンピュート(コンテナ毎の[必要CPU]及び[必要メモリ])に関しては、コンテナ管理部222、322に対してQoSの上限値を設定する。拠点内コンピュートNW([(コンピュート)クラスタ内ネットワーク利用量](ワークフロー毎)(
図8、
図12参照))に関しては、ITインフラ管理部123を介してNW-SW200aに対してQoSの上限値を設定する。拠点内コンピュート・ストレージ間NW([拠点内コンピュート・ストレージ間ネットワーク利用量](ワークフロー毎)(
図8、
図12参照))に関しては、ITインフラ管理部123を介してストレージNW-SW200bに対してQoSの上限値を設定する。ストレージ([IO性能利用量(IOPS,MB/s)](ワークフロー毎)(
図10、
図12参照))に関しては、ITインフラ管理部123を介してデータ仮想化機能部223、323に対してQoSの上限値を設定する。拠点間ストレージNWに関しては、ITインフラ管理部123を介してストレージNW-SW200bに対してQoSの上限値を設定する。
【0310】
次にS27cでは、アロケーション制御部121は、QoSの設定完了後に、S27aで取得したワークフロー及びアプリの開始時刻に従って、コンテナ管理部222、322に対してコンテナのデプロイ指示を出力する。
【0311】
上述の実施形態では、ワークフローエディタ(フローベースプログラミング機能部122)から取得した各アプリ及びデータアクセスの実行順序と実行回数を基に、各アプリ及びデータアクセスの実行時間を算出する。全ワークフローが指定時間内に実行完了する各拠点へのデータの全データ配置組合せパターンのうちで、全ての拠点の全てのリソース利用率の平均が最も低くなるデータの配置を決定する。また、個々のアプリ及びデータアクセスが過剰に特定リソースを消費しないように、QoS制御(最高性能や最小性能の指定)を行う。これらを前提として全ワークフローの実行時間を推測する。
【0312】
従来、アプリとインフラ(オンプレミス、クラウド)とでアプリ及びデータアクセスの実行開始、終了、及び実行時間の情報共有がなく、複数アプリをインフラ上で動作させる際の実行時間の予測ができなかった。このような不都合は、マルチクラウドやハイブリッドクラウドのように複数インフラを跨いでアプリが実行される状況下ではより顕著になる。上述の実施形態では、この点を考慮し、インフラ側でアプリの情報を取得し、ワークフローの実行時間を予測し、効率的にアプリ及びデータを各インフラにデプロイし、リソース処理効率化を迅速に行う。
【0313】
よって、上述の実施形態によれば、データの配置が分析ワークフローに最適化されるので、ユーザの指定時間内に分析が終わると共に、インフラリソースの利用状況に空きが生まれ、別のワークロードのために、インフラを有効活用できるという効果を奏する。
【0314】
本発明は上述の実施形態に限定されるものではなく、様々な変形例を含む。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、矛盾しない限りにおいて、ある実施形態の構成の一部を他の実施形態の構成で置き換え、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、構成の追加、削除、置換、統合、又は分散をすることが可能である。また、実施形態で示した構成及び処理は、処理効率又は実装効率に基づいて適宜分散、統合、又は入れ替えることが可能である。
【符号の説明】
【0315】
1:管理サイト、2:オンプレミスサイト、3:クラウドサイト、10:管理サーバ、121:アロケーション制御部、122:フローベースプログラミング機能部、123:ITインフラ管理部、1212:データ配置組合せ計算部、1213:アプリ処理・データアクセス実行時間計算部、20:サーバ、201,301:ストレージデバイス、223,323:データ仮想化機能部、30:仮想マシン。