(57)【要約】プログラムを実行できるアプリケーションノードを、複数拠点のサイトに設け、データを格納するストレージノードを前記複数の拠点に設けておき、各拠点間をネットワークを介して接続したデータ処理システムにおいて、第一のアプリケーションノードは、プログラムのＩ／Ｏ履歴を保存し、Ｉ／Ｏ履歴をもとに、第二のアプリケーションノードがＩ／Ｏ再現実行を行うことで、データ処理性能を予測し、第一のアプリケーションノードは、データ性能予測に基づいて、第二のアプリケーションノードにプログラムを移送するか否かを決める。
2017141363.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行できるアプリケーションノードを、複数拠点のサイトに設け、データを格納するストレージノードを前記複数の拠点に設けておき、各拠点間をネットワークを介して接続したデータ処理システムにおいて、
前記複数のアプリケーションノードのうち一つアプリケーションノードである第一のアプリケーションノードは、
前記プログラムを実行することでストレージノードに発行するＩ／Ｏの履歴を保存し、
前記プログラムの実行における実データ処理性能を計測し、
前記プログラムの移送先候補となる前記アプリケーションノードのリストを受付け、
前記アプリケーションノードのリストに含まれる第二のアプリケーションノードに前記Ｉ／Ｏの履歴を含むＩ／Ｏの履歴再現要求をし、
前記Ｉ／Ｏの履歴再現要求を受取った第二のアプリケーションノードは、
前記Ｉ／Ｏの履歴再現要求に含まれる前記Ｉ／Ｏの履歴に従って、前記プログラムが発行したＩ／Ｏを再現する再現Ｉ／Ｏを発行し、前記再現Ｉ／Ｏの性能をＩ／Ｏの予測性能として求め、
前記第一のアプリケーションノードは、
前記第二のアプリケーションノードで求めた前記Ｉ／Ｏの予測性能に基づいて、前記第二のアプリケーションノードに前記プログラムを移送するか否かを決める
ことを特徴とするデータ処理システム。
【請求項２】
請求項１記載のデータ処理システムおいて、
前記ストレージノードは、前記プログラムを実行することで発行するＩ／Ｏと、前記再現Ｉ／Ｏとを振り分けて、前記プログラムが発行するＩ／Ｏの場合には、ストレージノードにおける記録媒体に対してＩ／Ｏを実行し、前記再現Ｉ／Ｏの場合には、
前記記録媒体に対するＩ／Ｏに対応する時間を待ちあわすことを特徴とするデータ処理システム。
【請求項３】
請求項２記載のデータ処理システムにおいて、
前記第一のアプリケーションノードのＣＰＵ使用率が、閾値より低い場合には、
前記第二のアプリケーションノードの予測スループットが、前記第一のアプリケーションノードの実データ処理スループットより大きい場合には、前記第二のアプリケーションノードに前記プログラムを移送することを特徴とするデータ処理システム。
【請求項４】
請求項２記載のデータ処理システムにおいて、
前記第一のアプリケーションノードのＣＰＵ使用率が、閾値以上の場合には、
前記第一のノードアプリケーションの実データ処理性能と前記Ｉ／Ｏ予測性能とから、前記プログラムを前記第二のアプリケーションノードに移送するかどうかを決めることを特徴とするデータ処理システム。
【請求項５】
請求項１記載のデータ処理システムにおいて、前記第一のアプリケーションノードは、
前記Ｉ／Ｏ履歴再現実行に要する計測負荷の上限値と、前記Ｉ／Ｏの予測性能の予測誤差の上限値を受付け、前記上限値に基づいて、前記Ｉ／Ｏ履歴再現要求の発行間隔と、前記Ｉ／Ｏ履歴再現要求に含めるＩ／Ｏ履歴の量を調整することを特徴とするデータ処理システム。
【請求項６】
プログラムを実行できるアプリケーションノードを、複数拠点のサイトに設け、データを格納するストレージノードを前記複数の拠点に設けておき、各拠点間をネットワークを介して接続したデータ処理システムにおけるデータ処理方法であって、
前記複数のアプリケーションノードのうち一つアプリケーションノードである第一のアプリケーションノードは、
前記プログラムを実行することでストレージノードに発行するＩ／Ｏの履歴を保存し、
前記プログラムの実行における実データ処理性能を計測し、
前記プログラムを移送先候補となる前記アプリケーションノードのリストを受付け、
前記アプリケーションノードのリストに含まれる第二のアプリケーションノードに前記Ｉ／Ｏの履歴を含むＩ／Ｏの履歴再現要求をし、
前記Ｉ／Ｏの履歴再現要求を受取った第二のアプリケーションノードは、
前記Ｉ／Ｏの履歴再現要求に含まれる前記Ｉ／Ｏの履歴に従って、前記プログラムが発行したＩ／Ｏを再現する再現Ｉ／Ｏを発行し、前記再現Ｉ／Ｏの性能をＩ／Ｏの予測性能として求め、
前記第一のアプリケーションノードは、
前記第二のアプリケーションノードで求めた前記Ｉ／Ｏの予測性能に基づいて、前記第二のアプリケーションノードに前記プログラムを移送するか否かを決める
ことを特徴とするデータ処理方法。
【請求項７】
請求項６記載のデータ処理方法おいて、
前記ストレージノードは、前記プログラムを実行することで発行するＩ／Ｏと、前記再現Ｉ／Ｏとを振り分けて、前記プログラムが発行するＩ／Ｏの場合には、ストレージノードにおける記録媒体に対してＩ／Ｏを実行し、前記再現Ｉ／Ｏの場合には、
前記記録媒体に対するＩ／Ｏに対応する時間を待ちあわすことを特徴とするデータ処理方法。
【請求項８】
請求項７記載のデータ処理方法において、
前記第一のアプリケーションノードのＣＰＵ使用率が、閾値より低い場合には、
前記第二のアプリケーションノードの予測スループットが、前記第一のアプリケーションノードの実データ処理スループットより大きい場合には、前記第二のアプリケーションノードに前記プログラムを移送することを特徴とするデータ処理方法。
【請求項９】
請求項７記載のデータ処理方法において、
前記第一のアプリケーションノードのＣＰＵ使用率が、閾値以上の場合には、
前記第一のノードアプリケーションの実データ処理性能と前記Ｉ／Ｏ予測性能とから、前記プログラムを前記第二のアプリケーションノードに移送するかどうかを決めることを特徴とするデータ処理方法。
【請求項１０】
請求項６記載のデータ処理方法において、前記第一のアプリケーションノードは、
前記Ｉ／Ｏ履歴再現実行に要する計測負荷の上限値と、前記Ｉ／Ｏ予測性能の予測誤差の上限値を受付け、前記上限値に基づいて、前記Ｉ／Ｏ履歴再現要求の発行間隔と、前記Ｉ／Ｏ履歴再現要求に含めるＩ／Ｏ履歴の量を調整することを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散データ処理装置及び方法、特に、ネットワーク通信コストを抑えつつ、広域分散配置されたデータに対するコンピューティング処理を高速に実行する装置及び方法に関する。
【背景技術】
【０００２】
広域分散配置されたデータに対するコンピューティング処理を高速に実行する装置及び方法としては、特許文献1及び特許文献2に記載の技術が知られている。
特許文献1記載の技術では、特定のデバイスから遠隔に離れたデバイスにアプリケーションを移送し、実行を継続する技術を提供している。本技術を用いることで、広域分散配置されたデータの近傍のデバイスに、当該データに対するコンピューティング処理を行うアプリケーションをマイグレートすることで、データアクセスの際のアクセスレイテンシを低減することが可能になる。【０００３】
一方、特許文献2記載の技術では、ネットワーク帯域の使用率の統計情報、及びネットワーク性能に関する要求情報を一括管理し、ネットワーク帯域の使用率（達成性能）が要求情報を下回った場合には、より大きな空きネットワーク帯域を使用可能なホストに対象VM（プログラム）をマイグレートする技術を提供している。本技術を用いることで、データアクセスの際のネットワーク帯域を最大化することが可能になる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】Cisco, “Application Context Transfer for Distributed Computing Resources”, Patent US2013/0212212, Aug. 2013.
【特許文献２】Microsoft, “Controlling Network Utilization”, US2013/0007254, Jun. 2011.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
背景技術で示した技術により、広域分散配置されたデータに対するコンピューティング処理の際に発生するデータアクセスのレイテンシ、もしくは、ネットワーク帯域の最大化が可能になる。【０００６】
しかし、これらの技術を単純に組み合わせても、プログラムレベルのデータ処理スループット（実効性能）を最大化することは難しい。その理由の一つは、データアクセスのレイテンシ、及びネットワーク帯域を同時に最適化できる保証がないことにある。すなわち、レイテンシを下げようとするとネットワーク帯域が得られない、もしくは、ネットワーク帯域を上げようとするとレイテンシが大きくなる、ということがありうる。また、データアクセスのレイテンシまたはネットワーク帯域のどちらを重点的に最適化すべきかについては、プログラムによって変わりうる。例えばI/O並列度が十分得られるプログラムにおいて、アクセスレイテンシの最適化の重要度が下がるが、I/O並列度が不十分であれば、アクセスレイテンシは重点的に最適化しなければならない。【０００７】
本発明の目的は、プログラムの特性まで考慮に入れて、分散配置されたデータに対するコンピューティング処理の性能を高くすることにある。
【課題を解決するための手段】
【０００８】
本発明は、プログラムを実行できるアプリケーションノードを、複数拠点のサイトに設け、データを格納するストレージノードを複数の拠点に設けておき、各拠点間をネットワークを介して接続し、記複数のアプリケーションノードのうち一つアプリケーションノードである第一のアプリケーションノードは、
プログラムを実行することでストレージノードに発行するＩ／Ｏの履歴を保存し、
プログラムの実行における実データ処理性能を計測し、
プログラムの移送先候補となるアプリケーションノードのリストを受付け、
アプリケーションノードリストに含まれる第二のアプリケーションノードにＩ／Ｏの履歴を含むＩ／Ｏの履歴再現要求をし、
Ｉ／Ｏの履歴再現要求を受取った第二のアプリケーションノードは、
Ｉ／Ｏの履歴再現要求に含まれるＩ／Ｏの履歴に従って、プログラムが発行したＩ／Ｏを再現する再現Ｉ／Ｏを発行し、再現Ｉ／Ｏの性能をＩ／Ｏの予測性能として求め、
第一のアプリケーションノードは、
第二のアプリケーションノードで求めた前記Ｉ／Ｏの予測性能に基づいて、第二のアプリケーションノードに前記プログラムを移送するか否かを決めることにある。
【発明の効果】
【０００９】
本発明によれば、プログラムの特性まで考慮に入れて、分散配置されたデータに対するコンピューティング処理の性能を高くすることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例１のソフトウェアモジュール構成を示す図である。
【図２】アプリケーションノードのハードウェア構成を示す図である。
【図３】ストレージノードのハードウェア構成を示す図である。
【図４】本発明の実施例１の全体処理フローを示す図である。
【図５】データ移送先決定部のユーザインタフェースを示す図である。
【図６】移送ポリシーのデータ構造を示す図である。
【図７】I/O履歴のデータ構造を示す図である。
【図８】実処理性能のデータ構造を示す図である。
【図９】予測処理性能のデータ構造を示す図である。
【図１０】I/O履歴記録部の動作フローとCPU利用率を取得するフローを示す図である。
【図１１】移送先決定部の動作フローを示す図である。
【図１２】データ処理性能予測部の動作フローを示す図である。
【図１３】ストレージ制御部のモジュール構成と動作概要を示す図である。
【図１４】本発明の実施例２のソフトウェアモジュール構成を示す図である。
【図１５】計測精度最適化部のユーザインタフェースを示す図である。
【図１６】計測ポリシーのデータ構造を示す図である。
【図１７】計測負荷のデータ構造を示す図である。
【図１８】計測パラメータのデータ構造を示す図である。
【図１９】計測精度最適化部の動作フローを示す図である。
【発明を実施するための形態】
【実施例１】
【００１１】
本発明の第1の実施形態のソフトウェアモジュール構成を図1に示す。【００１２】
本実施の第1の実施形態では、本社サイト（101）、及び拠点サイト（102、103）に配置された計算機が連携して、データコンピューティング処理を行うことを想定している。【００１３】
本社サイト、及び拠点サイトには、アプリケーションノードもしくはアプリケーションVM（111）（以下、「アプリケーションノード」と略記する）が配置されており、本ノード上でプログラム（125）が動作し、コンピューティング処理を実行する。また、少なくとも拠点サイトでは、ストレージノードもしくはストレージVM（112）（以下、「ストレージノード」と略記する）が配置されており、コンピューティング処理の対象となるデータを格納する。アプリケーションノード、もしくは、ストレージノードは、一つのコンピュータもしくは仮想コンピュータに相当する。図１では、本社には、ストレージノードは省力してあるが、ストレージノード０を備えていてもよい。【００１４】
プログラム（125）は、データ処理スループットを最適にするアプリケーションノード（111）に移送し、処理を継続する機能を持つ。この最適な移送先の決定のため、まず、各アプリケーションノード（111）上でI/O履歴記録部部（124）が動作する。I/O履歴記録部（124）は、プログラムをＣＰＵが実行することでストレージノードに発行するI/O履歴（131）を、本社サイト（101）に配置されたアプリケーションノード（111）に接続されたストレージメディア（113）に記録する機能を持つ。さらに、プログラム実行時のデータ処理スループット性能を格納した実処理性能（133）も計測することができる。【００１５】
さらに、本社サイト（101）に配置されるアプリケーションノード（111）上では移送先決定部ユーザインタフェース（121）及び移送先決定部（122）が、そして、少なくとも拠点サイト（102、103）に配置されるアプリケーションノード（111）上ではデータ処理性能予測部（123）が動作する。
移送先決定部ユーザインタフェース（121）は、ユーザから、プログラム（125）の移送先候補となるアプリケーションノードのリスト情報を含む移送ポリシー（134）を受け取り、移送先決定部（122）に受け渡す。移送先決定部（122）は、本ポリシーに記載されたアプリケーションノード（111）上で動作するデータ処理性能予測部（123）に、I/O履歴記録部（124）が記録したI/O履歴（131）を含むデータ処理性能計測要求を発行する。【００１６】
当該要求を受け取ったデータ処理予測部（123）は、当該要求に含まれるI/O履歴（131）に基づきI/Oの再現実行を行う。そして、プログラム（125）を当該アプリケーションノード（111）に移送した場合に得られるデータ処理スループットを予測し、その予測処理性能（132）を移送先決定部に送信する。【００１７】
移送先決定部（122）は、I/O履歴記録部（124）が計測した実処理性能（133）、及び、データ処理性能予測部（123）から受信した予測処理性能（132）をもとに、最適なプログラムの移送先となるアプリケーションノード（111）を決定する。そして、当該アプリケーションノード（111）へのプログラム移送指示をプログラム（125）に対して発行する。【００１８】
プログラム（125）は上記指示を受け取ると、指定されたアプリケーションノード（111）への移送を実行させるようにした後、処理を継続する。【００１９】
なお、ストレージノード（112）にはストレージ制御部（126）を搭載されている。ストレージ制御部（126）は、プログラム（125）が発行するデータI/Oだけでなく、データ処理予測部（123）が発行するダミーデータI/Oを処理する機能を持つ。データI/O処理においては、当該ストレージノードのストレージメディアに対するI/Oを実行するのに対し、ダミーデータI/O処理においては、当該I/Oを行わず、I/O処理時間経過をエミュレートする。本機能により、データ処理性能予測部（123）による予測処理性能の計測時に、ストレージメディアへの負荷発生を抑えられる。【００２０】
本発明の実施形態のアプリケーションノード（111）のハードウェア構成を図２に示す。【００２１】
アプリケーションノード（111）は、CPU（201）、主メモリ（202）、入力部（203）、ネットワークI/O部（204）、ディスクI/O部（205）を保持する。  主メモリ（202）には、プログラム（125）、移送先決定部ユーザインタフェース（121）、移送先決定部（122）、データ処理性能予測部（123）、I/O履歴記録部（124）を含むアプリケーション実行コードが格納されている。これらのコードをCPU（201）が読み込んで、アプリケーション実行を行う。また、ディスクI/O部（205）を介して、接続されたストレージメディア（113）に対してデータI/Oを行うこともできる。さらに、ストレージノード（112）と通信して、データI/OやダミーデータI/Oを行うこともできる。【００２２】
必要に応じて、入力部（203）を介して、移送ポリシー（134）などのユーザからの入力を取得することができる。また、ネットワークI/O部（204）を介して、他アプリケーションノード（111）と、データ処理性能計測要求などの要求や、I/O履歴（131）や予測処理性能（132）などのデータを送受できる。また、ネットワークI/O部（204）を介して、I/O履歴（131）などのデータを他アプリケーションノード（111）に接続されたストレージメディア（113）に保存することもできる。【００２３】
本発明の実施形態のストレージノード（112）のハードウェア構成を図３に示す。【００２４】
ストレージノード（112）も、アプリケーションノード（111）と同様に、CPU（201）、主メモリ（202）、ネットワークI/O部（204）、ディスクI/O部（205）を保持する。【００２５】
主メモリ（202）にはストレージ制御部（126）を含むアプリケーション実行コードを搭載し、当該実行コードをCPU（201）が読み込んで、アプリケーション実行を行う。【００２６】
ネットワークI/O部（204）を介して、アプリケーションノード（111）からデータI/O要求やダミーデータI/O要求を受信し、ストレージ制御部（126）にて当該要求を処理する。【００２７】
また、ディスクI/O部（205）を介して、接続されたストレージメディア（113）に対するディスクI/Oも実行できる。【００２８】
本発明の実施形態の全体処理フローを図４に示す。【００２９】
まず、本実施形態の初期状態では、本社サイト（101）に配置されたアプリケーションノード（111）上で、プログラム（125）及びI/O履歴記録部（124）が動作している。そして、プログラムが、拠点サイト（102、103）に配置されたストレージノード（112）上のストレージ制御部（126）からデータを取得しながら、コンピューティング処理を行う。この際、I/O履歴記録部が、I/O履歴（131）及び実処理性能（133）を取得し、移送先決定部（122）に受け渡す。【００３０】
移送先決定部（122）は、移送先決定部ユーザインタフェース（121）経由で移送ポリシー（134）をユーザから取得し、当該移送ポリシー（134）に記載されたアプリケーションノード（111）上に存在するデータ処理性能予測部（123）に対してデータ処理性能計測要求を発行する。この要求には、I/O履歴記録部（124）が取得したI/O履歴（131）も含まれる。【００３１】
本要求を受け取ったデータ処理性能予測部（123）は、ストレージ制御部（126）に対してダミーデータI/O要求を発行し、当該I/O履歴の再現実行を行う。そして、予測処理性能（132）を算出し、移送先決定部（122）に送信する。【００３２】
移送先決定部（122）は、実処理性能（133）、及び予測処理性能（132）をもとに、最適なプログラム（125）の移送先を決定し、当該移送先となるアプリケーションノード（111）への移送指示をプログラム（125）に対して発行する。プログラム（125）は当該アプリケーションノード（111）への移送を実行したのち、処理を継続する。【００３３】
データ処理性能計測部ユーザインタフェース（121）が提供するユーザインタフェース画面を図５に示す。【００３４】
本ユーザインタフェース画面は、ユーザからデータ処理性能計測要求発行受け付け画面（501）、データ処理性能計測結果表示画面（502）、及びプログラム移送確認画面（503）からなる。【００３５】
データ処理性能計測要求発行受け付け画面(501)は、「対象プログラムID」（511）、「対象アプリケーションノード」（512）、「使用I/O履歴実行時刻」（513）、「CPU利用率しきい値」（514）の部位からなる。各部位をユーザが指定する。「対象プログラムID」には、移送対象となるプログラム（125）のIDを指定する。「対象アプリケーションノード」には、移送先候補となるアプリケーションノード（111）のIPアドレスを指定する。「使用I/O履歴実行時刻」には、移送先決定部（122）がデータ処理性能予測部（123）に対して発行するデータ処理性能計測要求に付随させるI/O履歴（131）の時刻範囲を指定する。「CPU利用率しきい値」には、移送先決定部（122）が、対象となるプログラム（125）がCPUネック状態で走行しているか否かを判定するためのしきい値を指定する。【００３６】
本画面で指定された情報をもとに、図６に示すデータ構造を持つ移送ポリシー（134）が生成される。移送ポリシーには、「対象プログラムID」（601）、「対象アプリケーションノード」（602）、「使用I/O履歴実行時刻」（603）、「CPU利用率しきい値」（604）のフィールドを持ち、それぞれのフィールドは、上記データ処理性能計測要求発行受け付け画面(501)で指定された値が格納される。【００３７】
データ処理性能計測結果表示画面（502）は、「計測データ処理スループット、遠隔I/O率、平均I/O遅延時間、平均I/Oビジー時間、予測スループット」（521）、「実CPU利用率、実データ処理スループット、遠隔I/O率、平均I/O遅延時間、平均I/Oビジー時間」（522）、「プログラム移送先」（523）の部位からなる。データ処理性能計測要求発行受け付け画面(501)をユーザが入力した後に、データ処理性能計測結果表示画面（502）の各部位に結果が出力される。【００３８】
データ処理性能計測要求発行受け付け画面の入力の結果、移送先決定部（122）がデータ処理性能予測部（123）に対してデータ処理性能計測要求を発行する。そして、移送先決定部（122）はデータ処理性能予測部（123）から予測処理性能（132）を受け取る。「計測データ処理スループット、遠隔I/O率、平均I/O遅延時間、予測スループット」は、この受け取った予測処理性能（132）の情報を表示する。【００３９】
予測処理性能（132）は図9に示す様に、「プログラムID」（901）、「I/O履歴実行時刻」（902）、「I/Oバイト数累計」（903）、「遠隔I/Oバイト数累計」（904）、「I/O遅延時間累計」（905）、「I/Oビジー時間累計」（906）、「予測スループット」（907）のフィールドを持つ。「プログラムID」（901）には計測対象となるプログラムIDを格納する。「I/O履歴実行時刻」（902）には、データ処理性能予測部（123）が再現実行したI/O履歴（131）の時刻情報を格納する。「I/Oバイト数累計」（903）には、上記時刻のI/O履歴の再現実行において発行したダミーデータI/O要求のI/Oバイト数総計を格納する。「遠隔I/Oバイト数累計」（904）には、上記I/Oバイト数の総計のうち、異なる拠点に配置されたストレージノード（112）に対して発行したダミーデータI/Oのバイト数の総計を格納する。「I/O遅延時間累計」（905）には、上記時刻のI/O履歴（131）の再現実行において発行したダミーデータI/O要求処理におけるI/O応答時間の総計を格納する。「I/Oビジー時間累計」（906）には、なんらかのダミーI/Oが実行中であった（I/O要求を発行したがI/O完了通知を受け取っていないI/Oが存在する）時間の累計値を格納する。「予測スループット」（907）には、これらの測定結果をもとに、データ処理性能予測部（122）が予測したデータ処理スループットを格納する。【００４０】
移動先決定部（122）は、上記フィールドを持つ予測処理性能（132）から、データ処理スループット（「I/Oバイト数累計」（903））の平均、「遠隔I/Oバイト数累計」（904）／「「I/Oバイト数累計」（903）の平均、「I/O遅延時間累計」（905）の平均、「I/Oビジー時間累計」（906）の平均、「予測スループット」（907）の平均を算出し、移動先決定部ユーザインタフェース（121）に受け渡す。そして、移動先決定部ユーザインタフェース（121）がこれらの情報をデータ処理性能計測結果表示画面の「計測データ処理スループット、遠隔I/O率、平均I/O遅延時間、平均I/Oビジー時間、予測スループット」（521）の部位に表示する。【００４１】
また、移動先決定部（122）は、I/O履歴記録部（124）から実処理性能（133）を受け取る。「実CPU利用率、実データ処理スループット、遠隔I/O率、平均I/O遅延時間、平均I/Oビジー時間」（522）には、この実処理性能の情報を表示する。実処理性能（133）は、図8に示すように、「プログラムID」（801）、「I/O実行時刻」（802）、「CPU利用率」（803）、「I/Oバイト数累計」（804）、「遠隔I/Oバイト数累計」（805）、「I/O遅延時間累計」（806）、「I/Oビジー時間累計」（807）のフィールドを持つ。「プログラムID」（801）には、計測対象となるプログラム（125）のIDを格納する。「I/O実行時刻」（802）には、当該プログラム（125）がデータI/O要求を発行した時刻を格納する。「CPU利用率」（803）は、当該時刻におけるCPU使用率を格納する。「I/Oバイト数累計」（804）は、当該時刻に発行されたデータI/O要求のI/Oバイト数の総計を格納する。「遠隔I/Oバイト数累計」（805）は、上記I/Oバイト数総計のうち、異なる拠点に配置されたストレージノード（112）に対して発行したデータI/Oのバイト数の総計を格納する。「I/O遅延時間累計」（806）には、上記時刻のI/O履歴の再現実行において発行したデータI/O要求処理におけるI/O応答時間の総計を格納する。「I/Oビジー時間累計」（807）には、なんらかのI/Oが実行中であった（I/O要求を発行したがI/O完了通知を受け取っていないI/Oが存在する）時間の累計値を格納する。【００４２】
移動先決定部（122）は、これらの情報から、「CPU利用率」（803）の平均、データ処理スループット（「I/Oバイト数累計」（804））の平均、「遠隔I/Oバイト数累計」（805）／「I/Oバイト数累計」（804）の平均、「I/O遅延時間累計」（806）の平均、「I/Oビジー時間累計」（807）の平均を算出して、移動先決定部ユーザインタフェース（121）に受け渡す。そして、移動先決定部ユーザインタフェース（121）がこれらの情報をデータ処理性能計測結果表示画面（502）の「実CPU利用率、実データ処理スループット、遠隔I/O率、平均I/O遅延時間、平均I/Oビジー時間」（522）部位に表示する。【００４３】
「プログラム移送先」（523）には、データ処理性能の計測の結果、プログラム（125）の移送先として最適と判定されたアプリケーションノード（111）のIPアドレスを表示する。【００４４】
データ移送確認画面（503）は、「プログラム移送確認」（531）の部位からなる。データ処理性能計測結果画面（502）に表示された移送の実行を行いたい場合に、それを指示する入力をユーザが行うことで、移送先決定部（122）はプログラム（125）に対する移送指示の発行を開始する。【００４５】
I/O履歴記録部（124）の動作フローを図１０に示す。【００４６】
I/O履歴記録部（124）は、プログラム（125）/データ処理性能予測部（123）のデータI/OもしくはダミーデータI/Oを検知し、I/O履歴（131）、実処理性能（133）、予測処理性能（134）を記録する機能を持つ。【００４７】
I/O履歴（131）は図7に示すデータ構造を持つ。I/O履歴（131）は、「プログラムID」（701）、「実行時刻」（702）、「通信先ノード」（703）、「データタイプ」（704）、「ファイル/DB名」（705）、「オフセット」（706）、「RW種別/SQL」（707）、「I/Oバイト数」（708）のフィールドを持つ。【００４８】
「プログラムID」（701）は、のデータI/OもしくはダミーデータI/O要求を発行したプログラムのIDを格納する。「実行時刻」（702）は、当該I/O要求の発行時刻を格納する。「通信先ノード」（703）には、ファイルもしくはDBのデータを格納しているストレージノード（112）のIPアドレスを格納する。「データタイプ」（704）には、アクセス先のデータがファイルかDBかの種別を格納する。「ファイル/DB名」（705）には、アクセス先となるファイル名、もしくはDB名を格納する。「オフセット」（706）には、アクセス先がファイルの場合に、アクセス先オフセットを格納する。「RW種別/SQL」（707）には、アクセス先がファイルの場合にはread I/Oかwrite I/Oかの種別を格納する。アクセスがDBの場合にはSQLを格納する。「I/Oバイト数」（708）には、実際に行ったI/Oバイト数を格納する。【００４９】
I/O履歴記録部（124）は、図１０(a)に示すように、まず、ステップ1001にて、プログラム（125）／データ処理予測部（123）からのI/O要求発行を検知する。【００５０】
ステップ1002にて、I/O履歴（131）に格納すべき情報を取得し、ステップ1003にてI/O履歴のエントリを作成し、本社サイト（101）に配置されたアプリケーションノード（111）に附属のストレージメディア（113）に、当該I/O履歴エントリを格納する。【００５１】
ステップ1004にて、プログラム／データ処理予測部からのI/O完了通知到達を検知する。【００５２】
ステップ1005にて、現在時刻を取得し、ステップ1006にて、I/O遅延時間、すなわち、ステップ1002にて取得した現在時刻情報と、ステップ1005にて取得した現在時刻情報の差分を算出する。【００５３】
ステップ1007にて、実処理情報（133）/予測処理性能（132）の「I/Oバイト数累計」（804/903）「遠隔I/Oバイト数累計」（805/904）「I/O遅延時間累計」（806/905）、「I/Oビジー時間累計」（807/906）の更新を行う。これにより、実処理情報（133）もしくは予測処理性能（132）の対応する「I/O実行時刻」（802/902）における性能情報を最新に保つことが可能になる。【００５４】
実処理性能（133）の「CPU利用率」（803）については、図１０（b）に示すように、定期的な起床を契機に更新する。具体的には、ステップ1011にて定期的な起床を行った後、ステップ1012にてCPU利用率情報を取得し、ステップ1013にて当該フィールドの更新処理を行う。【００５５】
移動先決定部（122）の動作フローを図１１に示す。【００５６】
まず、移送先決定部（122）は、移送先決定部ユーザインタフェース（121）におけるデータ処理性能計測要求発行画面（501）からの移送ポリシー（134）の入力に伴い、データ処理性能予測部（123）へのデータ処理性能計測要求の発行を行う。この処理を、図１１(a)に示すように、ステップ1101から1103にて行う。【００５７】
ステップ1101にて、移送先ユーザインタフェース（121）から移送ポリシー（134）を受け取る。【００５８】
ステップ1102にて、移送ポリシー（134）の使用I/O履歴実行時刻（603）に記載の時刻に対応するI/O履歴（131）をストレージメディア（113）から読み出し取得する。【００５９】
ステップ1103にて、移送ポリシー（134）の対象アプリケーションノード（602）に記載のアプリケーションノード（111）に対して、データ処理性能計測要求を発行する。この際、ステップ1102で取得したI/O履歴の情報もあわせて送信する。【００６０】
また、移送先決定部（122）は、データ処理性能予測部（123）から予測処理性能（132）を受け取り、最適なプログラム（125）の移送先を決定する。これをステップ1111以降で実現する。【００６１】
図１１(b)に示すように、ステップ1111にて、データ処理性能予測部（123）から予測処理性能（132）を受信する。また、I/O履歴記録部（124）から、実処理性能（131）を受信する。【００６２】
ステップ1112にて、実処理性能（131）のCPU利用率（803）の平均値が、移送ポリシー（134）のCPU利用率しきい値（604）に指定された値以上か否かを判定する。しきい値以上であればステップ1113に、しきい値以下であればステップ1114にジャンプする。【００６３】
ステップ1113では、CPU利用率がしきい値以上ゆえコンピューティング処理がCPUネックであると判断し、その仮定のもとで、最適な移送先アプリケーションノード（111）を決定する。具体的には、受信した予測性能（132）のうち、予測性能（132）のI/Oバイト数累計（903）の平均値が実処理性能（133）のI/Oバイト数累計（804）の平均値を超えている、かつ、予測性能（132）のI/O遅延時間累計（905）の平均値が実処理性能（133）のI/O遅延時間累計（806）の平均値より下回っている予測性能（132）をフィルタリングする。そして、その条件下で、遠隔I/Oバイト数累計（805）が最小の予測性能（132）を送信したデータ処理性能予測部（123）が存在するアプリケーションノード（111）をプログラム（125）の移送先とする。上記の条件下では、分散配置されたアプリケーションノード全体でのCPU資源のうち、コンピューティング以外に使用するCPU資源の総量をできる限り減らすことができる。一般にネットワークI/OはCPU資源を大量に消費することから、発生するネットワークI/O総量を減らすことは、CPU利用効率を高くできる。移送しても、現状のI/O性能を下回らず、かつ、ネットワーク経由のI/O発生を極力抑えることで、I/O性能維持とCPU利用効率の両立を図ろうとしている。【００６４】
ステップ1114では、CPU利用率がしきい値以下ゆえコンピューティング処理がI/Oネックであると判断し、その仮定のもとで、最適な移送先アプリケーションノード（111）を決定する。具体的にはスループット（実データ処理スループットおよび予測スループット）が最大の性能のアプリケーションノード（111）をプログラム（125）の移送先とする。予測スループットの算出方法は図１２の説明で述べる。実データ処理スループットは、Ｉ/Oバイト数累計804を、累計した時間で割ることで求める。【００６５】
ステップ1113、もしくはステップ1114の実行後に、選択された移送先が現在実行中のアプリケーションノードであるか否かをステップ1117で判定する。そして、選択された移送先が現在実行中のアプリケーションノードであれば処理を終了し、選択された移送先が現在実行中のアプリケーションノードでなければステップ1115にジャンプする。【００６６】
ステップ1115では、受信した予測処理性能（132）から、図５で説明したデータ処理性能計測結果画面（502）での表示内容を算出し、プログラム移動先決定部ユーザインタフェース（121）に受け渡す。【００６７】
ステップ1116では、移送先決定部ユーザインタフェース（121）経由で、ユーザからの移送OKの入力を受け取り、プログラム（125）に対して、プログラム移送指示を発行する。【００６８】
データ処理性能予測部（123）の動作フローを図１２に示す。【００６９】
ステップ1201にて、移送先決定部（122）からI/O履歴情報（131）を含むデータ処理性能計測要求を受信する。【００７０】
ステップ1202にて、I/O再現実行開始から所定時間（実処理性能（133）におけるI/O実行時刻（133）の時間単位）経過したかどうかを検査する。所定時間が経過していればステップ1206に、そうでなければステップ1203にジャンプする。
ステップ1203にて、受信したI/O履歴（131）のエントリのうち、I/O再現実行が終了していないI/O履歴エントリが存在するか否かを判定する。存在すればステップ1204に、存在しなければステップ1206にジャンプする。【００７１】
ステップ1204にて、I/O履歴エントリから1エントリを抜き取って、当該エントリに従って、DBアクセスもしくはファイルアクセスの再現を実行する。この再現の際には、I/O履歴（131）に格納された実行時刻（702）情報に基づき、ダミーデータI/Oの発行タイミングを調整する。そのため、再現実行での達成I/Oスループット、すなわち、予測処理性能（132）に格納されるI/Oバイト数累計（903）の値は、最大でも、実処理性能（133）のI/Oバイト数累計（804）と同等にしかならない。【００７２】
ステップ1205にて、ダミーI/O完了通知をストレージ制御部（1204）から受信し、ステップ1202に戻る。このようなI/Oの再現実行を行うことで、I/O記録保存部が、予測処理性能のI/Oバイト数累計（903）、遠隔I/Oバイト数累計（904）、I/O遅延時間累計（905）、I/Oビジー時間累計（906）の各フィールドの値を計測値に設定できるようになる。【００７３】
ステップ1206にて、予測処理性能（132）のI/Oバイト数累計（903）、遠隔I/Oバイト数累計（904）、I/O遅延時間累計（905）、I/Oビジー時間累計（906）の計測値をベースに予測スループット（907）、すなわち、プログラム（125）を当該アプリケーションノード（111）に移送した際に達成できるであるデータ処理スループットを算出する。
本算出は、例えば以下のアルゴリズムを用いて行う。まず、予測処理性能（132）に記載のI/Oバイト数累計（903）と、実処理性能（133）に記載のI/Oバイト数累計（804）を比較する。前者が後者を下回れば、データ処理性能予測部（123）によるI/O再現実行が、プログラム（125）によるデータI/O実行より所要時間がかかっていることを意味する。よって、移送後のデータ処理スループットは、I/O再現実行の時に達成したダミーデータI/Oのスループットと等しい、すなわち、予測スループット（907）は現状のI/Oバイト数累計（903）と等しいと想定する。一方、前者が後者を上回れば、データ処理性能予測部によるI/O再現実行を行っても、I/O 処理能力に余裕があることを意味する。そこで、I/Oビジー時間累計（906）から１分当たりのI/Oビジー時間累計であるI/Oビジー率を算出し、その逆数をI/Oバイト数累計（903）にかけた値を予測スループット（907）とする。例えば、I/O履歴 実行時刻が11:22における予測スループットは、12345*60/40=18517(Byte/s)で求められる。【００７４】
ストレージ制御部（126）の動作概要を図１３に示す。【００７５】
ストレージ制御部（126）は、プログラム（125）が発行するデータI/Oだけでなく、データ処理予測部（123）が発行するダミーデータI/Oを処理する。データI/O処理においては、当該ストレージノード（112）のストレージメディア（113）に対するI/Oを実行するのに対し、ダミーデータI/O処理においては、当該I/Oを行わず、I/O処理時間経過をエミュレートする。本機能により、データ処理性能予測部（123）による予測処理性能の計測時に、ストレージメディア（113）への負荷発生を抑える。【００７６】
上記実現のため、ストレージ制御部はI/O要求振り分け部（1301）を備え、到着したI/O要求がデータI/O要求かダミーデータI/O要求であるかの判別を行う。データI/O要求の場合は、メディアI/O部に当該要求を転送し、ストレージメディア（113）に対するメディアI/Oを実効する。ダミーデータI/O要求の場合は、メディアI/Oエミュレート部（1303）に当該要求を転送し、ストレージメディアI/Oと同等の時刻の経過を待ち合わせる。エミュレート部における待ちあわせの手法としては、公知の手法を使う。例えば、実際に予めいろんなI/Oサイズでランダムread/write及びシーケンシャルread/writeのパターンで実際のI/Oを実行しておき、その処理時間を計測しておく。そして、実際にダミーI/Oが到達した場合には、I/Oパターンとそのサイズを認識して、その計測処理時間から待ちあわせの時間を決めることが可能である。どちらの場合も、処理が完了した際には、I/O完了通知部（1302）を通じ、I/O完了通知をプログラム（125）もしくは、データ処理性能予測部（123）に通知する。
【実施例２】
【００７７】
本発明の第2の実施形態のソフトウェアモジュール構成を図1４に示す。【００７８】
本実施形態では、第1の実施形態の構成に加えて、データ処理性能予測部（123）から移送先決定部（122）に対して、計測負荷（1431）が送信させる。そして、移送先決定部（122）は、実処理性能（133）、予測処理性能（132）、計測負荷（1431）の情報を、本社サイト（101）に配置されたアプリケーションノード（111）直結のストレージメディア（113）に格納する。【００７９】
計測精度最適化部（1422）は、計測精度最適化部ユーザインタフェース（1421）より計測ポリシー（1432）を受け取る。計測ポリシー（1432）と、実処理性能（133）、予測処理性能（132）、計測負荷（1431）をもとに、計測精度最適化部（1422）は最適な計測パラメータ（計測対象として使用するI/O履歴の時間量、計測間隔）を決定し、プログラム移送先決定部（122）に通知する。プログラム移送先決定部は、この計測パラメータに基づき、データ処理性能予測部へのデータ処理性能計測要求発行を周期的に行う。この結果、本実施例では、移送先決定部ユーザインタフェース（121）経由でデータ処理性能計測要求実行を指示しなくとも、プログラムの移送先の自動決定を行うことが可能になる。【００８０】
計測精度最適化部ユーザインタフェース（1421）が提供するユーザインタフェース画面を図１５に示す。【００８１】
本ユーザインタフェース画面は、計測精度最適化実行指示画面（1501）、計測精度状況表示画面（1502）、計測精度最適化実行確認画面（1503）からなる。【００８２】
計測精度最適化実行指示画面（1501）は計測ポリシー（1432）の入力を行う。
計測ポリシー（1432）には、上限計測負荷1511と、上限計測誤差1512があり、ユーザが入力する。
計測ポリシー（1432）は図１６に示すように、上限計測誤差（1601）及び上限計測負荷（1602）のフィールドを持ち、本画面でこれらのパラメータ入力を行う。【００８３】
計測精度状況表示画面（1502）は、現在の計測精度の状況と、計測パラメータ調整の結果その精度がどの程度変化するかを表示する。【００８４】
まず、本画面には、計測負荷（1513）、誤差（1514）フィールドが存在する。計測負荷（1513）は、データ処理性能予測部（123）からの返送で得られる計測負荷（1431）情報を表示する。データ処理性能予測部（123）からの返送で得られる計測負荷（1431）は、図１７に示すようにCPU負荷フィールドがあり、各データ処理性能予測部（123）がダミーI/O要求発行するのに要したCPU負荷情報が格納されている。計測精度最適化部（1422）はこの平均値を計算し、計測精度最適化部ユーザインタフェース（1421）に受け渡し、計測負荷（1513）フィールドに表示させる。一方、誤差（1514）は、各データ処理性能予測部（123）が予測した予測処理性能（132）と、プログラム移送の結果達成できた実処理性能（131）の誤差を表示する。例えば、Ｉ/Oバイト数累計804を時間で割った実データ処理スループットを求めて、予測スループット907と実測スループットとの間の誤差を求める。計測精度最適化部（1422）はストレージメディア（113）に格納されたこれらの情報から予測データ処理スループット、実データ処理スループット、誤差の平均値を計算する。そして、計測精度最適化部ユーザインタフェース（1421）に受け渡し、誤差（1514）フィールドに表示させる。【００８５】
計測対象I/O履歴量（1515）、及び計測間隔（1516）フィールドには、計測パラメータ情報を表示する。図１８に示すように、計測パラメータにはこれらの情報を格納するフィールドが格納されている。本フィールドに、このパラメータの現在値と、この変更内容提案が表示される。計測精度最適化部（1422）による変更内容提案の算出方法は図１９で説明する。【００８６】
計測負荷（予測値）（1517）、計測誤差（予測値）（1518）フィールドには、上記計測パラメータ変更により、これらがどのように変化するかの予測が表示される。計測精度最適化部（1422）による本予測値の算出方法も図１９で説明する。【００８７】
計測精度最適化実行確認画面（1503）は、計測パラメータの変更を実施してよいかのユーザ確認を行う画面である。本画面でユーザがYESの操作ボタンを押す等して変更確認がとれれば、計測精度最適化部（1422）は、移送先決定部（122）に対して、新たな計測パラメータを通知する。【００８８】
計測精度最適化部（1422）の動作フローを図１９に示す。【００８９】
まず、ステップ1901において、ストレージディア（113）に蓄積された計測負荷（1431）から平均の計測負荷を算出する。【００９０】
次に、ステップ1902において、ストレージディア（113）に蓄積された予測処理性能（132）と実処理性能（133）から平均の計測誤差を算出する。【００９１】
ステップ1903にて、ステップ1901で算出した平均の計測負荷が、計測ポリシー（1432）の上限計測負荷（1602）フィールドで指定された上限値以上であるか否かを判定する。上限以上であればステップ1904に、上限より小さいならステップ1905にジャンプする。【００９２】
ステップ1904にて、計測パラメータ（1801）の計測間隔の調整を行う。計測間隔と計測負荷は逆比例の関係にあると想定し、目標の上限計測負荷（1602）を達成できる計測間隔（1802）の新たな値を算出する。【００９３】
ステップ1905にて、ステップ1902で算出した平均の計測誤差が、計測ポリシー（1432）の上限計測誤差（1601）フィールドで指定された上限値以上であるか否かを判定する。上限以上であればステップ1906にジャンプし、上限より小さいなら処理を終了する。【００９４】
ステップ1906にて、計測パラメータ（1801）の計測対象I/O履歴量（1802）の調整を行う。計測対象I/O履歴量と計測誤差は逆比例の関係にあると想定し、目標の上限計測誤差（1601）を達成できる計測対象I/O履歴量（1802）の新たな値を算出する。但し、計測対象I/O履歴量（1802）に比例して計測負荷も増えると想定し、計測負荷を変えないように、計測間隔（1803）も同様に増大させる。【００９５】
このようなステップを経ることで、新たな計測パラメータ（1801）の値と、計測誤差、計測負荷の予想値を算出できる。この値を計測精度最適化部ユーザインタフェース（1421）に受け渡し、計測精度状況表示画面（1502）に表示させる。
【符号の説明】
【００９６】
111…アプリケーションノード、112…ストレージノード、121…移送先決定部UI、122…移送先決定部、123…データ処理性能予測部、124…I/O履歴記録部、125…プログラム、131…I/O履歴、132…予測処理性能、133…実処理性能、134…移送ポリシー
【図１】
2017141363.tif 000003
【図２】
2017141363.tif 000004
【図３】
2017141363.tif 000005
【図４】
2017141363.tif 000006
【図５】
2017141363.tif 000007
【図６】
2017141363.tif 000008
【図７】
2017141363.tif 000009
【図８】
2017141363.tif 000010
【図９】
2017141363.tif 000011
【図１０】
2017141363.tif 000012
【図１１】
2017141363.tif 000013
【図１２】
2017141363.tif 000014
【図１３】
2017141363.tif 000015
【図１４】
2017141363.tif 000016
【図１５】
2017141363.tif 000017
【図１６】
2017141363.tif 000018
【図１７】
2017141363.tif 000019
【図１８】
2017141363.tif 000020
【図１９】
2017141363.tif 000021
【手続補正書】
【提出日】平成28年12月13日(2016.12.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラムを実行できるアプリケーションノードを、複数拠点のサイトに設け、データを格納するストレージノードを前記複数の拠点に設けておき、各拠点間をネットワークを介して接続したデータ処理システムにおいて、
前記複数のアプリケーションノードのうち一つアプリケーションノードである第一のアプリケーションノードは、
前記プログラムを実行することでストレージノードに発行するＩ／Ｏの履歴を記録し、
前記プログラムの実行における実データ処理性能を計測し、
前記複数のアプリケーションノードのうち第二のアプリケーションノードは、
前記Ｉ／Ｏの履歴を含むＩ／Ｏの履歴再現要求を受信し、
前記Ｉ／Ｏの履歴再現要求に含まれる前記Ｉ／Ｏの履歴に従って、前記プログラムが発行したＩ／Ｏを再現する再現Ｉ／Ｏを発行し、前記再現Ｉ／Ｏの性能をＩ／Ｏの予測性能として求め、
前記第一のアプリケーションノードは、
前記第二のアプリケーションノードで求めた前記Ｉ／Ｏの予測性能に基づいて、前記第二のアプリケーションノードに前記プログラムを移送すると決定された場合、前記プログラムを前記第二のアプリケーションノードに移送する
ことを特徴とするデータ処理システム。
【請求項２】
請求項１記載のデータ処理システムおいて、
前記ストレージノードは、前記プログラムを実行することで発行するＩ／Ｏと、前記再現Ｉ／Ｏとを振り分けて、前記プログラムが発行するＩ／Ｏの場合には、ストレージノードにおける記録媒体に対してＩ／Ｏを実行し、前記再現Ｉ／Ｏの場合には、
前記記録媒体に対するＩ／Ｏに対応する時間を待ちあわすことを特徴とするデータ処理システム。
【請求項３】
請求項２記載のデータ処理システムにおいて、
前記第一のアプリケーションノードのＣＰＵ使用率が、閾値より低い場合には、
前記第二のアプリケーションノードの予測スループットが、前記第一のアプリケーションノードの実データ処理スループットより大きい場合には、前記第二のアプリケーションノードに前記プログラムを移送することを特徴とするデータ処理システム。
【請求項４】
請求項２記載のデータ処理システムにおいて、
前記第一のアプリケーションノードのＣＰＵ使用率が、閾値以上の場合には、
前記第一のノードアプリケーションの実データ処理性能と前記Ｉ／Ｏ予測性能とから、前記プログラムを前記第二のアプリケーションノードに移送するかどうかを決めることを特徴とするデータ処理システム。
【請求項５】
請求項１記載のデータ処理システムにおいて、前記第一のアプリケーションノードは、
前記Ｉ／Ｏ履歴再現実行に要する計測負荷の上限値と、前記Ｉ／Ｏの予測性能の予測誤差の上限値を受付け、前記上限値に基づいて、前記Ｉ／Ｏ履歴再現要求の発行間隔と、前記Ｉ／Ｏ履歴再現要求に含めるＩ／Ｏ履歴の量を調整することを特徴とするデータ処理システム。
【請求項６】
プログラムを実行できるアプリケーションノードを、複数拠点のサイトに設け、データを格納するストレージノードを前記複数の拠点に設けておき、各拠点間をネットワークを介して接続したデータ処理システムにおけるデータ処理方法であって、
前記複数のアプリケーションノードのうち第一のアプリケーションノードにおける前記プログラムを実行することでストレージノードに発行するＩ／Ｏの履歴を記録し、
前記プログラムの実行における実データ処理性能を計測し、
前記複数のアプリケーションノードのうち第二のアプリケーションノードに前記Ｉ／Ｏの履歴を含むＩ／Ｏの履歴再現要求をし、
第二のアプリケーションノードで前記Ｉ／Ｏの履歴再現要求に含まれる前記Ｉ／Ｏの履歴に従って、前記プログラムが発行したＩ／Ｏを再現する再現Ｉ／Ｏを発行し、前記再現Ｉ／Ｏの性能をＩ／Ｏの予測性能として求め、前記第二のアプリケーションノードで求めた前記Ｉ／Ｏの予測性能に基づいて、前記第二のアプリケーションノードに前記プログラムを移送するか否かを決める
ことを特徴とするデータ処理方法。
【請求項７】
請求項６記載のデータ処理方法おいて、
前記ストレージノードは、前記プログラムを実行することで発行するＩ／Ｏと、前記再現Ｉ／Ｏとを振り分けて、前記プログラムが発行するＩ／Ｏの場合には、ストレージノードにおける記録媒体に対してＩ／Ｏを実行し、前記再現Ｉ／Ｏの場合には、
前記記録媒体に対するＩ／Ｏに対応する時間を待ちあわすことを特徴とするデータ処理方法。
【請求項８】
請求項７記載のデータ処理方法において、
前記第一のアプリケーションノードのＣＰＵ使用率が、閾値より低い場合には、前記第二のアプリケーションノードの予測スループットが、前記第一のアプリケーションノードの実データ処理スループットより大きい場合には、前記第二のアプリケーションノードに前記プログラムを移送することを特徴とするデータ処理方法。
【請求項９】
請求項７記載のデータ処理方法において、
前記第一のアプリケーションノードのＣＰＵ使用率が、閾値以上の場合には、
前記第一のノードアプリケーションの実データ処理性能と前記Ｉ／Ｏ予測性能とから、前記プログラムを前記第二のアプリケーションノードに移送するかどうかを決めることを特徴とするデータ処理方法。
【請求項１０】
請求項６記載のデータ処理方法において、前記第一のアプリケーションノードは、
前記Ｉ／Ｏ履歴再現実行に要する計測負荷の上限値と、前記Ｉ／Ｏ予測性能の予測誤差の上限値を受付け、前記上限値に基づいて、前記Ｉ／Ｏ履歴再現要求の発行間隔と、前記Ｉ／Ｏ履歴再現要求に含めるＩ／Ｏ履歴の量を調整することを特徴とするデータ処理方法。
【手続補正書】
【提出日】平成29年2月27日(2017.2.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラムを実行できるアプリケーションノードを、複数の拠点のサイトに設け、データを格納するストレージノードを前記複数の拠点に設けておき、各拠点間をネットワークを介して接続したデータ処理システムにおいて、
前記複数のアプリケーションノードのうち一つのアプリケーションノードである第一のアプリケーションノードは、
前記プログラムを実行することでストレージノードに発行するＩ／Ｏの履歴を保存し、
前記プログラムの実行における実データ処理性能を計測し、
前記プログラムの移送先候補となる前記アプリケーションノードのリストを受付け、
前記アプリケーションノードのリストに含まれる第二のアプリケーションノードに前記Ｉ／Ｏの履歴を含むＩ／Ｏの履歴再現要求をし、
前記Ｉ／Ｏの履歴再現要求を受取った前記第二のアプリケーションノードは、
前記Ｉ／Ｏの履歴再現要求に含まれる前記Ｉ／Ｏの履歴に従って、前記プログラムが発行したＩ／Ｏを再現する再現Ｉ／Ｏを発行し、前記再現Ｉ／Ｏの性能をＩ／Ｏの予測性能として求め、
前記第一のアプリケーションノードは、
前記第二のアプリケーションノードで求めた前記Ｉ／Ｏの予測性能に基づいて、前記第二のアプリケーションノードに前記プログラムを移送するか否かを決める
ことを特徴とするデータ処理システム。
【請求項２】
請求項１記載のデータ処理システムおいて、
前記ストレージノードは、前記プログラムを実行することで発行するＩ／Ｏと、前記再現Ｉ／Ｏとを振り分けて、前記プログラムが発行するＩ／Ｏの場合には、前記ストレージノードにおける記録媒体に対してＩ／Ｏを実行し、前記再現Ｉ／Ｏの場合には、
前記記録媒体に対するＩ／Ｏに対応する時間を待ちあわす
ことを特徴とするデータ処理システム。
【請求項３】
請求項２記載のデータ処理システムにおいて、
前記第一のアプリケーションノードのＣＰＵ使用率が、閾値より低い場合には、
前記第二のアプリケーションノードの予測スループットが、前記第一のアプリケーションノードの実データ処理スループットより大きい場合には、前記第二のアプリケーションノードに前記プログラムを移送する
ことを特徴とするデータ処理システム。
【請求項４】
請求項２記載のデータ処理システムにおいて、
前記第一のアプリケーションノードのＣＰＵ使用率が、閾値以上の場合には、
前記第一のノードアプリケーションの実データ処理性能と前記Ｉ／Ｏ予測性能とから、前記プログラムを前記第二のアプリケーションノードに移送するかどうかを決める
ことを特徴とするデータ処理システム。
【請求項５】
請求項１記載のデータ処理システムにおいて、
前記第一のアプリケーションノードは、
前記Ｉ／Ｏの履歴再現要求の実行に要する計測負荷の上限値と、前記Ｉ／Ｏの予測性能の予測誤差の上限値を受付け、前記上限値に基づいて、前記Ｉ／Ｏの履歴再現要求の発行間隔と、前記Ｉ／Ｏの履歴再現要求に含めるＩ／Ｏ履歴の量を調整する
ことを特徴とするデータ処理システム。
【請求項６】
プログラムを実行できるアプリケーションノードを、複数の拠点のサイトに設け、データを格納するストレージノードを前記複数の拠点に設けておき、各拠点間をネットワークを介して接続したデータ処理システムにおけるデータ処理方法であって、
前記複数のアプリケーションノードのうち一つのアプリケーションノードである第一のアプリケーションノードは、
前記プログラムを実行することでストレージノードに発行するＩ／Ｏの履歴を保存し、
前記プログラムの実行における実データ処理性能を計測し、
前記プログラムを移送先候補となる前記アプリケーションノードのリストを受付け、
前記アプリケーションノードのリストに含まれる第二のアプリケーションノードに前記Ｉ／Ｏの履歴を含むＩ／Ｏの履歴再現要求をし、
前記Ｉ／Ｏの履歴再現要求を受取った前記第二のアプリケーションノードは、
前記Ｉ／Ｏの履歴再現要求に含まれる前記Ｉ／Ｏの履歴に従って、前記プログラムが発行したＩ／Ｏを再現する再現Ｉ／Ｏを発行し、前記再現Ｉ／Ｏの性能をＩ／Ｏの予測性能として求め、
前記第一のアプリケーションノードは、
前記第二のアプリケーションノードで求めた前記Ｉ／Ｏの予測性能に基づいて、前記第二のアプリケーションノードに前記プログラムを移送するか否かを決める
ことを特徴とするデータ処理方法。
【請求項７】
請求項６記載のデータ処理方法おいて、
前記ストレージノードは、前記プログラムを実行することで発行するＩ／Ｏと、前記再現Ｉ／Ｏとを振り分けて、前記プログラムが発行するＩ／Ｏの場合には、前記ストレージノードにおける記録媒体に対してＩ／Ｏを実行し、前記再現Ｉ／Ｏの場合には、
前記記録媒体に対するＩ／Ｏに対応する時間を待ちあわす
ことを特徴とするデータ処理方法。
【請求項８】
請求項７記載のデータ処理方法において、
前記第一のアプリケーションノードのＣＰＵ使用率が、閾値より低い場合には、
前記第二のアプリケーションノードの予測スループットが、前記第一のアプリケーションノードの実データ処理スループットより大きい場合には、前記第二のアプリケーションノードに前記プログラムを移送する
ことを特徴とするデータ処理方法。
【請求項９】
請求項７記載のデータ処理方法において、
前記第一のアプリケーションノードのＣＰＵ使用率が、閾値以上の場合には、
前記第一のノードアプリケーションの実データ処理性能と前記Ｉ／Ｏ予測性能とから、前記プログラムを前記第二のアプリケーションノードに移送するかどうかを決める
ことを特徴とするデータ処理方法。
【請求項１０】
請求項６記載のデータ処理方法において、
前記第一のアプリケーションノードは、
前記Ｉ／Ｏの履歴再現要求の実行に要する計測負荷の上限値と、前記Ｉ／Ｏ予測性能の予測誤差の上限値を受付け、前記上限値に基づいて、前記Ｉ／Ｏの履歴再現要求の発行間隔と、前記Ｉ／Ｏの履歴再現要求に含めるＩ／Ｏ履歴の量を調整する
ことを特徴とするデータ処理方法。
【手続補正書】
【提出日】平成29年8月30日(2017.8.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラムを実行できるアプリケーションノードを、複数の拠点のサイトに設け、データを格納するストレージノードを前記複数の拠点に設けておき、各拠点間をネットワークを介して接続したデータ処理システムにおいて、
前記複数のアプリケーションノードのうち一つのアプリケーションノードである第一のアプリケーションノードは、
前記プログラムを実行することでストレージノードに発行するＩ／Ｏの履歴を保存し、
前記プログラムの実行における実データ処理性能を計測し、
前記プログラムの移送先候補となる前記アプリケーションノードのリストを受付け、
前記アプリケーションノードのリストに含まれる第二のアプリケーションノードに前記Ｉ／Ｏの履歴を含むＩ／Ｏの履歴再現要求をし、
前記Ｉ／Ｏの履歴再現要求を受取った前記第二のアプリケーションノードは、
前記Ｉ／Ｏの履歴再現要求に含まれる前記Ｉ／Ｏの履歴に従って、前記プログラムが発行したＩ／Ｏを再現する再現Ｉ／Ｏを発行し、前記再現Ｉ／Ｏの性能をＩ／Ｏの予測性能として求め、
前記第一のアプリケーションノードは、
前記第二のアプリケーションノードで求めた前記Ｉ／Ｏの予測性能に基づいて、前記第二のアプリケーションノードに前記プログラムを移送するか否かを決める
ことを特徴とするデータ処理システム。
【請求項２】
請求項１記載のデータ処理システムおいて、
前記ストレージノードは、前記プログラムを実行することで発行するＩ／Ｏと、前記再現Ｉ／Ｏとを振り分けて、前記プログラムが発行するＩ／Ｏの場合には、前記ストレージノードにおける記録媒体に対してＩ／Ｏを実行し、前記再現Ｉ／Ｏの場合には、
前記記録媒体に対するＩ／Ｏに対応する時間を待ちあわす
ことを特徴とするデータ処理システム。
【請求項３】
請求項２記載のデータ処理システムにおいて、
前記第一のアプリケーションノードのＣＰＵ使用率が、閾値より低い場合には、
前記第二のアプリケーションノードの予測スループットが、前記第一のアプリケーションノードの実データ処理スループットより大きい場合には、前記第二のアプリケーションノードに前記プログラムを移送する
ことを特徴とするデータ処理システム。
【請求項４】
請求項２記載のデータ処理システムにおいて、
前記第一のアプリケーションノードのＣＰＵ使用率が、閾値以上の場合には、
前記第一のアプリケーションノードの実データ処理性能と前記Ｉ／Ｏ予測性能とから、前記プログラムを前記第二のアプリケーションノードに移送するかどうかを決める
ことを特徴とするデータ処理システム。
【請求項５】
請求項１記載のデータ処理システムにおいて、
前記第一のアプリケーションノードは、
前記Ｉ／Ｏの履歴再現要求の実行に要する計測負荷の上限値と、前記Ｉ／Ｏの予測性能の予測誤差の上限値を受付け、前記上限値に基づいて、前記Ｉ／Ｏの履歴再現要求の発行間隔と、前記Ｉ／Ｏの履歴再現要求に含めるＩ／Ｏ履歴の量を調整する
ことを特徴とするデータ処理システム。
【請求項６】
プログラムを実行できるアプリケーションノードを、複数の拠点のサイトに設け、データを格納するストレージノードを前記複数の拠点に設けておき、各拠点間をネットワークを介して接続したデータ処理システムにおけるデータ処理方法であって、
前記複数のアプリケーションノードのうち一つのアプリケーションノードである第一のアプリケーションノードは、
前記プログラムを実行することでストレージノードに発行するＩ／Ｏの履歴を保存し、
前記プログラムの実行における実データ処理性能を計測し、
前記プログラムを移送先候補となる前記アプリケーションノードのリストを受付け、
前記アプリケーションノードのリストに含まれる第二のアプリケーションノードに前記Ｉ／Ｏの履歴を含むＩ／Ｏの履歴再現要求をし、
前記Ｉ／Ｏの履歴再現要求を受取った前記第二のアプリケーションノードは、
前記Ｉ／Ｏの履歴再現要求に含まれる前記Ｉ／Ｏの履歴に従って、前記プログラムが発行したＩ／Ｏを再現する再現Ｉ／Ｏを発行し、前記再現Ｉ／Ｏの性能をＩ／Ｏの予測性能として求め、
前記第一のアプリケーションノードは、
前記第二のアプリケーションノードで求めた前記Ｉ／Ｏの予測性能に基づいて、前記第二のアプリケーションノードに前記プログラムを移送するか否かを決める
ことを特徴とするデータ処理方法。
【請求項７】
請求項６記載のデータ処理方法おいて、
前記ストレージノードは、前記プログラムを実行することで発行するＩ／Ｏと、前記再現Ｉ／Ｏとを振り分けて、前記プログラムが発行するＩ／Ｏの場合には、前記ストレージノードにおける記録媒体に対してＩ／Ｏを実行し、前記再現Ｉ／Ｏの場合には、
前記記録媒体に対するＩ／Ｏに対応する時間を待ちあわす
ことを特徴とするデータ処理方法。
【請求項８】
請求項７記載のデータ処理方法において、
前記第一のアプリケーションノードのＣＰＵ使用率が、閾値より低い場合には、
前記第二のアプリケーションノードの予測スループットが、前記第一のアプリケーションノードの実データ処理スループットより大きい場合には、前記第二のアプリケーションノードに前記プログラムを移送する
ことを特徴とするデータ処理方法。
【請求項９】
請求項７記載のデータ処理方法において、
前記第一のアプリケーションノードのＣＰＵ使用率が、閾値以上の場合には、
前記第一のアプリケーションノードの実データ処理性能と前記Ｉ／Ｏ予測性能とから、前記プログラムを前記第二のアプリケーションノードに移送するかどうかを決める
ことを特徴とするデータ処理方法。
【請求項１０】
請求項６記載のデータ処理方法において、
前記第一のアプリケーションノードは、
前記Ｉ／Ｏの履歴再現要求の実行に要する計測負荷の上限値と、前記Ｉ／Ｏ予測性能の予測誤差の上限値を受付け、前記上限値に基づいて、前記Ｉ／Ｏの履歴再現要求の発行間隔と、前記Ｉ／Ｏの履歴再現要求に含めるＩ／Ｏ履歴の量を調整する
ことを特徴とするデータ処理方法。
【国際調査報告】
2017141363.tif 000022
2017141363.tif 000023