(57)【要約】【課題】Ｉ／Ｏの応答性能を重視するタスクの実行時間を維持する。【解決手段】複数の処理ノードのうち、指定されたタスクの実行優先度に基づいて、タスクを実行する処理ノードを選択する処理ノード選択部１１０と、実行優先度が所定の優先度よりも低いタスクを処理ノード選択部１１０が選択した処理ノードが実行中、タスクを実行している処理ノードが管理するストレージディスクのＩ／Ｏ負荷が所定の閾値を超えた場合、タスクから発行されるＩ／Ｏの同時発行数を制限するＩ／Ｏ発行数制御部１２０とを有する。【選択図】図２
2018151749.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理ノードのうち、指定されたタスクの実行優先度に基づいて、該タスクを実行する処理ノードを選択する処理ノード選択部と、
前記実行優先度が所定の優先度よりも低いタスクを前記処理ノード選択部が選択した処理ノードが実行中、該タスクを実行している処理ノードが管理するストレージディスクのＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）負荷が所定の閾値を超えた場合、該タスクから発行されるＩ／Ｏの同時発行数を制限するＩ／Ｏ発行数制御部とを有する制御装置。
【請求項２】
請求項１に記載の制御装置において、
前記実行優先度が所定の優先度よりも低いタスクを前記処理ノード選択部が選択した処理ノードが実行中、該タスクを実行している処理ノードが管理するストレージディスクのＩ／Ｏ負荷が所定の閾値を超えた場合、該タスクから発行されるＩ／Ｏの処理優先度を下げるＩ／Ｏ処理優先度制御部を有する制御装置。
【請求項３】
請求項１または請求項２に記載の制御装置において、
前記Ｉ／Ｏ発行数制御部は、前記Ｉ／Ｏの同時発行数として、レプリカデータの作成要求の同時発行数を制御する制御装置。
【請求項４】
請求項１から３のいずれ１項に記載の制御装置において、
前記処理ノード選択部は、当該制御装置と接続された管理装置から、前記タスクのプログラムおよび該タスクの実行優先度を示す実行優先度情報を取得し、該取得したタスクのプログラムを前記選択した処理ノードへ送信する制御装置。
【請求項５】
請求項１から４のいずれか１項に記載の制御装置において、
前記処理ノード選択部は、前記タスクの実行優先度が所定の優先度よりも高い場合、該タスクを実行する処理ノードとして、他のタスクを実行していない処理ノードを選択する制御装置。
【請求項６】
請求項１から５のいずれか１項に記載の制御装置において、
前記複数の処理ノードにおけるリソースの消費情報を取得し、該取得した消費情報に基づいて、前記処理ノードが管理するストレージディスクのＩ／Ｏ負荷が所定の閾値を超えたかどうかを判定する判定部を有する制御装置。
【請求項７】
タスクを実行する複数の処理ノードと、
請求項１から６のいずれか１項に記載の制御装置とを有する情報処理システム。
【請求項８】
複数の処理ノードのうち、指定されたタスクの実行優先度に基づいて、該タスクを実行する処理ノードを選択する処理と、
前記実行優先度が所定の優先度よりも低いタスクを前記選択した処理ノードが実行中、該タスクを実行している処理ノードが管理するストレージディスクのＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）負荷が所定の閾値を超えた場合、該タスクから発行されるＩ／Ｏの同時発行数を制限する処理とを行う制御方法。
【請求項９】
コンピュータに、
複数の処理ノードのうち、指定されたタスクの実行優先度に基づいて、該タスクを実行する処理ノードを選択する手順と、
前記実行優先度が所定の優先度よりも低いタスクを前記選択した処理ノードが実行中、該タスクを実行している処理ノードが管理するストレージディスクのＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）負荷が所定の閾値を超えた場合、該タスクから発行されるＩ／Ｏの同時発行数を制限する手順とを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、情報処理システム、制御方法およびプログラムに関する。
【背景技術】
【０００２】
ある大量のデータを対象としたデータ解析を行う際、複数のサーバノード（処理ノード）と、複数のサーバノードからアクセス可能な分散ファイルシステムとから構成された分散システムが利用される場合がある。分散ファイルシステムに格納されているデータ群を対象としたデータ解析を実行する際、データ解析のタスクを複数のジョブ群に分割し、複数のサーバノードに分配して、ジョブを並列に実行させる。これにより、データ解析処理時間を短縮する手法が存在する。この手法の代表的な例として、ＨａｄｏｏｐのＭａｐＲｅｄｕｃｅアルゴリズムによるデータ解析手法が挙げられる。この解析手法では、データ解析のタスクのプログラム作成者が、データ解析を行う分散システムの構成（ノード構成や、データの配置先など）を意識することなく、ＭａｐＲｅｄｕｃｅに基づく処理手順に基づく手続きをプログラミングするだけで、分散システム側の構成に合わせて、タスクを並列実行させることができる。このような機能を実現できるのは、Ｈａｄｏｏｐに備えられた並列分散機構が、システム構成に応じて、タスクを複数のジョブに分割し、ジョブを配布、結果の収集を自律的に制御する機能を備えているためである。
このようなＨａｄｏｏｐに代表される分散システムでは、複数のタスクを同時に実行する際、各タスクが消費する計算リソースの上限を規定することで、お互いの処理が干渉し合わないようにするための仕掛けが存在する。この仕掛けを用いることで、単一の分散システム上で、複数のタスクを安定して同時実行させることが可能となる。また、単一のクラスタを複数のノードの集合体として物理的分割し、分割したノード集合体ごとにタスクを同時実行させることで、計算リソースの競合が発生させずに複数のタスクを安定して同時実行させることが可能となる。
【０００３】
データの処理対象の読み込みや、処理結果の書き込みに用いられる分散ファイルシステムは、計算を行うノードのローカルディスクを用いて構成され、単一の分散システムで１つの分散ファイルシステムを構成する。計算リソースの上限を規定した、複数のタスクの同時並列実行時においては、個々のタスクから発生するＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）は１つの分散ファイルシステム上で処理され、データの読み書きが行われる。また、同様に単一のクラスタを複数のノードの集合体として物理的に分割した環境での、複数のタスクの同時並列実行時においても、個々のタスクから発生するＩ／Ｏは１つの分散ファイルシステム上で処理され、データの読み書きが行われる。なお、この分散ファイルシステム上でデータを新規に書き込む際は、データの書き込み要求元となった処理ノードに具備されたローカルディスク上にデータの書き込みが行われた後、他の処理ノードに具備されたローカルディスク上にデータのレプリカが保存されることで、ディスクやノード故障時のデータの信頼性が確保される。
【０００４】
また、Ｉ／Ｏ負荷状況を監視し、閾値以上のＩ／Ｏ要求に対して、ネットワークスイッチのスイッチングオーバヘッドが適正となるようにプロセスの再配置を行う技術が考えられている（例えば、特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−３５３２８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
計算リソースの上限を規定し、単一の分散システム上で複数のタスクを同時実行させる、もしくは、単一の分散システムを、複数の処理ノードから構成される複数の集合に物理的分割し、分割したノード集合ごとにタスクを同時実行させる際、実行中に高いＩ／Ｏ負荷を発生させるタスクが混在すると、分散ファイルシステムへのＩ／Ｏ負荷が高くなり、システムとしてのＩ／Ｏ性能が劣化する。これにより、そのタスク以外に実行中のタスクが発生させたＩ／Ｏ処理の応答時間が遅くなり、タスクの実行完了までにかかる時間が延びてしまう。このように、タスクの実行完了までの時間を常に一定に保持したいタスクを実行したい場合、計算リソースの上限の規定や分割による、複数タスクの同時実行手段のみではタスクの実行完了時間を担保しきれない。
また、特許文献１に記載の技術においては、プロセスの再配置を行うため、その処理にかかる負荷が重くなり、全体の処理に時間がかかってしまうおそれがある。
【０００７】
このように、上述した技術においては、Ｉ／Ｏの応答性能を重視するタスクの実行時間を維持することができないという問題点がある。
【０００８】
本発明の目的は、上記課題を解決する制御装置、情報処理システム、制御方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の制御装置は、
複数の処理ノードのうち、指定されたタスクの実行優先度に基づいて、該タスクを実行する処理ノードを選択する処理ノード選択部と、
前記実行優先度が所定の優先度よりも低いタスクを前記処理ノード選択部が選択した処理ノードが実行中、該タスクを実行している処理ノードが管理するストレージディスクのＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）負荷が所定の閾値を超えた場合、該タスクから発行されるＩ／Ｏの同時発行数を制限するＩ／Ｏ発行数制御部とを有する。
また、本発明の情報処理システムは、
タスクを実行する複数の処理ノードと、制御装置とを有し、
前記制御装置は、
前記複数の処理ノードのうち、指定されたタスクの実行優先度に基づいて、該タスクを実行する処理ノードを選択する処理ノード選択部と、
前記実行優先度が所定の優先度よりも低いタスクを前記処理ノード選択部が選択した処理ノードが実行中、該タスクを実行している処理ノードが管理するストレージディスクのＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）負荷が所定の閾値を超えた場合、該タスクから発行されるＩ／Ｏの同時発行数を制限するＩ／Ｏ発行数制御部とを有する。
また、本発明の制御方法は、
複数の処理ノードのうち、指定されたタスクの実行優先度に基づいて、該タスクを実行する処理ノードを選択する処理と、
前記実行優先度が所定の優先度よりも低いタスクを前記選択した処理ノードが実行中、該タスクを実行している処理ノードが管理するストレージディスクのＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）負荷が所定の閾値を超えた場合、該タスクから発行されるＩ／Ｏの同時発行数を制限する処理とを行う。
また、本発明のプログラムは、
コンピュータに実行させるためのプログラムであって、
複数の処理ノードのうち、指定されたタスクの実行優先度に基づいて、該タスクを実行する処理ノードを選択する手順と、
前記実行優先度が所定の優先度よりも低いタスクを前記選択した処理ノードが実行中、該タスクを実行している処理ノードが管理するストレージディスクのＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）負荷が所定の閾値を超えた場合、該タスクから発行されるＩ／Ｏの同時発行数を制限する手順とを実行させる。
【発明の効果】
【００１０】
以上説明したように、本発明においては、Ｉ／Ｏの応答性能を重視するタスクの実行時間を維持することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の情報処理システムの第１の実施の形態を示す図である。
【図２】図１に示した制御装置の内部構成の一例を示す図である。
【図３】図１に示した制御装置における制御方法の一例を説明するためのフローチャートである。
【図４】本発明の情報処理システムの第２の実施の形態を示す図である。
【図５】図４に示したタスク実行制御ノードの内部構成の一例を示す図である。
【図６】図４に示した処理ノードの内部構成の一例を示す図である。
【図７】図４に示した情報処理システムにおける処理のうち、タスク実行制御ノードにおける処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１２】
以下に本発明の実施の形態について図面を参照して説明する。
（第１の実施の形態）
【００１３】
図１は、本発明の情報処理システムの第１の実施の形態を示す図である。本形態における情報処理システムは図１に示すように、制御装置１００と、処理ノード２００−１〜２００−４とを有する。制御装置１００と処理ノード２００−１〜２００−４とは、互いに通信可能となっている。なお、図１に示した形態では、処理ノード２００−１〜２００−４が４台である場合を例に挙げて示しているが、この数に限定しない。
処理ノード２００−１〜２００−４は、タスクを実行する。
【００１４】
図２は、図１に示した制御装置１００の内部構成の一例を示す図である。図１に示した制御装置１００は図２に示すように、処理ノード選択部１１０と、Ｉ／Ｏ発行数制御部１２０とを有する。なお、図２には、図１に示した制御装置１００が具備する構成要素のうち、本実施の形態に関わる主要な構成要素の一例を示す。
【００１５】
処理ノード選択部１１０は、処理ノード２００−１〜２００−４のうち、指定されたタスクの実行優先度に基づいて、そのタスクを実行する処理ノードを選択する。
Ｉ／Ｏ発行数制御部１２０は、実行優先度が所定の優先度よりも低いタスクを処理ノード選択部１１０が選択した処理ノードが実行中、そのタスクを実行している処理ノードが管理するストレージディスクのＩ／Ｏ負荷が所定の閾値を超えた場合、そのタスクから発行されるＩ／Ｏの同時発行数を制限する。
【００１６】
以下に、図１に示した制御装置１００における制御方法について説明する。図３は、図１に示した制御装置１００における制御方法の一例を説明するためのフローチャートである。
まず、処理ノード選択部１１０は、処理ノード２００−１〜２００−４のうち、指定されたタスクの実行優先度に基づいて、そのタスクを実行する処理ノードを選択する（ステップＳ１）。
続いて、制御装置１００は、実行優先度が所定の優先度よりも低いタスクを処理ノード選択部１１０が選択した処理ノードが実行中、そのタスクを実行している処理ノードが管理するストレージディスクのＩ／Ｏ負荷が所定の閾値を超えたかどうかを判定する（ステップＳ２）。実行優先度が所定の優先度よりも低いタスクを処理ノード選択部１１０が選択した処理ノードが実行中、そのタスクを実行している処理ノードが管理するストレージディスクのＩ／Ｏ負荷が所定の閾値を超えた場合、Ｉ／Ｏ発行数制御部１２０は、そのタスクから発行されるＩ／Ｏの同時発行数を制限する（ステップＳ３）。
【００１７】
このように、実行優先度が所定の優先度よりも低いタスクを実行している処理ノードが管理するストレージディスクのＩ／Ｏ負荷が所定の閾値を超えた場合、制御装置１００が、そのタスクから発行されるＩ／Ｏの同時発行数を制限する。そのため、Ｉ／Ｏの応答性能を重視するタスクの実行時間を維持することができる。
（第２の実施の形態）
【００１８】
図４は、本発明の情報処理システムの第２の実施の形態を示す図である。本形態における情報処理システムは図４に示すように、タスク実行制御ノード１０１と、タスク登録管理ノード３０１と、分散ファイルシステム管理ノード４０１と、リソース監視ノード５０１と、処理ノード２０１−１〜２０１−４とを有する。これらは、通信ネットワーク６０１を介して互いに通信可能となっている。なお、図４に示した形態においては、処理ノードの数が４台である場合を例に挙げて示しているが、その数は限定しない。これらのノードは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、ディスク、ネットワーク等を備えた汎用的なサーバから構成されるものとする。
【００１９】
タスク登録管理ノード３０１は、本情報処理システムを利用する利用者からのタスク登録を担い、利用者が登録したタスクを、タスク実行制御ノード１０１へ転送（送信）する。
分散ファイルシステム管理ノード４０１は、本通信システムのような分散ファイルシステムを管理する。分散ファイルシステム管理ノード４０１は、ファイルの新規作成時に、ファイルを構成するデータの格納先となる処理ノード２０１−１〜２０１−４を決定する。また、分散ファイルシステム管理ノード４０１は、ファイルの読み出し時に、データの読み出し元となる処理ノード２０１−１〜２０１−４の情報を提供する。
リソース監視ノード５０１は、処理ノード２０１−１〜２０１−４が消費しているＣＰＵリソースや、Ｉ／Ｏリソース、メモリリソース情報となる消費情報を、すべての処理ノード２０１−１〜２０１−４から定期的に取得し、各処理ノード２０１−１〜２０１−４のリソース消費状況を監視する。
タスク実行制御ノード１０１は、処理ノード２０１−１〜２０１−４におけるタスクの実行を制御する制御装置である。タスク実行制御ノード１０１は、処理ノード２０１−１〜２０１−４から構成される処理グループ（図４に示した形態では、処理ノード２０１−１〜２０１−３が１つの処理グループを構成）の構成を管理する。タスク実行制御ノード１０１は、タスク登録管理ノード３０１を介して登録されたタスクの実行先となる処理ノード２０１−１〜２０１−４を、指定されたタスクの実行優先度に基づいて、決定する。
処理ノード２０１−１〜２０１−４は、タスクを実行する処理・記憶ノードである。
【００２０】
図５は、図４に示したタスク実行制御ノード１０１の内部構成の一例を示す図である。図４に示したタスク実行制御ノード１０１は図５に示すように、処理ノード選択部１１１と、Ｉ／Ｏ発行数制御部１２１と、Ｉ／Ｏ処理優先度制御部１３１と、判定部１４１とを有する。なお、図５には、図４に示したタスク実行制御ノード１０１が具備する構成要素のうち、本実施の形態に関わる主要な構成要素の一例を示す。
処理ノード選択部１１１は、処理ノード２０１−１〜２０１−４のうち、指定されたタスクの実行優先度に基づいて、そのタスクを実行する処理ノードを選択する。処理ノード選択部１１１は、タスク実行制御ノード１０１と接続された管理装置であるタスク登録管理ノード３０１から、タスクのプログラムおよびそのタスクの実行優先度を示す実行優先度情報を取得する。処理ノード選択部１１１は、取得したタスクのプログラムを選択した処理ノード２０１−１〜２０１−４へ送信する。処理ノード選択部１１１は、タスクの実行優先度が所定の優先度よりも高い場合、そのタスクを実行する処理ノードとして、他のタスクを実行していない処理ノードを選択する。
Ｉ／Ｏ発行数制御部１２１は、実行優先度が所定の優先度よりも低いタスクを実行している処理ノードが管理するストレージディスクのＩ／Ｏ負荷が所定の閾値を超えた場合、そのタスクから発行されるＩ／Ｏの同時発行数を制限する。Ｉ／Ｏ発行数制御部１２１は、Ｉ／Ｏの同時発行数として、レプリカデータの作成要求の同時発行数を制御する。
Ｉ／Ｏ処理優先度制御部１３１は、実行優先度が所定の優先度よりも低いタスクを実行している処理ノードが管理するストレージディスクのＩ／Ｏ負荷が所定の閾値を超えた場合、そのタスクから発行されるＩ／Ｏの処理優先度を下げる。
判定部１４１は、処理ノード２０１−１〜２０１−４におけるリソースの消費情報をリソース監視ノード５０１から取得する。判定部１４１は、取得した消費情報に基づいて、処理ノード２０１−１〜２０１−４が管理するストレージディスクのＩ／Ｏ負荷が所定の閾値を超えたかどうかを判定する。
【００２１】
図６は、図４に示した処理ノード２０１−１の内部構成の一例を示す図である。図４に示した処理ノード２０１−１は図６に示すように、データ処理部２１１と、データ管理部２１２と、ストレージディスク２１３と、Ｉ／Ｏ制御部２１４と、リソース収集部２１５と、通信制御部２１６とを有する。なお、図６には、図４に示した処理ノード２０１−１が具備する構成要素のうち、本実施の形態に関わる主要な構成要素の一例を示す。また、図４に示した２０１−２〜２０１−４についても、図６に示した構成要素と同じ構成要素を具備する。
データ処理部２１１は、タスク実行制御ノード１０１から割り当てられたデータ処理のジョブ（タスク）を実行する。
データ管理部２１２は、Ｉ／Ｏ要求元から要求があった場合、ストレージディスク２１３へのデータの書き出しと、データの読み込みを行い、Ｉ／Ｏ要求元へ応答する。また、データ管理部２１２は、データの書き出し時においては、あらかじめ決められたレプリカ作成数に応じて、処理ノード２０１−１自身がデータのオーナーである場合、他の処理ノード２０１−２〜２０１−４に対して、データのレプリカデータの作成要求を行う。
ストレージディスク２１３は、情報を記憶する記憶部である。図６に示すように、ストレージディスク２１３は、複数のディスクから構成されたものであっても良い。
Ｉ／Ｏ制御部２１４は、データ管理部２１２が発行するレプリカデータの作成要求の送信タイミング、および外部の処理ノード２０１−２〜２０１−４から内部のデータ管理部２１２へのレプリカ作成要求の実行タイミングの制御を行う。
リソース収集部２１５は、処理ノード２０１−１を動作させるサーバシステムのＣＰＵ、メモリ、ストレージディスク２１３、ネットワークのリソース消費情報を収集し、リソース監視ノード５０１に対して、収集したリソース消費情報を定期的に送信する。
通信制御部２１６は、他のノードとのネットワーク通信を仲介する役割を有し、タスクの実行要求、応答および、Ｉ／Ｏ要求、応答、リソース収集部２１５が収集したリソース消費情報の送信に関する通信を行う。
【００２２】
以下に、図４に示した情報処理システムにおける処理について説明する。まずは、図４に示した情報処理システム全体における処理について説明する。
【００２３】
＜複数のタスクが並列に実行されない場合のタスクの実行手順＞
まず、複数のタスクが並列に実行されない場合のタスクの実行手順を説明する。ここでは、タスク実行制御ノード１０１が処理ノード２０１−１を選択する場合を例に挙げて説明する。
タスクを実行したい利用者は、実行するタスクを登録する際、タスク登録管理ノード３０１に対して、実行するタスクのプログラム本体およびタスクの実行優先度を示す実行優先度情報を登録する。タスク登録管理ノード３０１は、登録されたタスクのプログラム本体およびタスクの実行優先度を示す実行優先度情報をタスク実行制御ノード１０１へ転送（送信）する。タスク実行制御ノード１０１は、タスクが実行されていない処理グループの中から１つの処理ノード２０１−１を選択する。タスク実行制御ノード１０１は、タスク登録管理ノード３０１から送信されてきたタスクのプログラム本体を、選択した処理ノード２０１−１へ送信する。
【００２４】
タスクのプログラムを受信した処理ノード２０１−１の通信制御部２１６は、受信したプログラムをデータ処理部２１１へ転送する。データ処理部２１１は、転送されてきたタスクのプログラムを実行する。
データ処理部２１１がタスクのプログラムを実行中に、本情報処理システムからの読み出しを行う場合は、データ処理部２１１は、分散ファイルシステム管理ノード４０１に対して読み出し対象となるデータの保存先を問い合わせる。分散ファイルシステム管理ノード４０１は、要求されたデータの保存先となる処理ノードを示す情報をデータ処理部２１１へ返送する。データ処理部２１１は、分散ファイルシステム管理ノード４０１から返送された情報が示す処理サーバに対して、データ読み出し要求を発行する。データ読み出し要求を受け取った、処理ノードの通信制御部２１６は、Ｉ／Ｏ制御部２１４を経由して、データ管理部２１２に要求を転送する。データ管理部２１２は、配下に接続されたストレージディスク２１３の中から要求されたデータを読み出す。データ管理部２１２は、Ｉ／Ｏ制御部２１４および通信制御部２１６を介して、データ読み出し要求を発行したデータ処理部２１１へデータを返送（送信）する。
【００２５】
データ処理部２１１がタスクのプログラムを実行中に、本情報処理システムへのデータの書き込みを行う場合は、データ処理部２１１は、分散ファイルシステム管理ノード４０１に対して書き込み対象となるデータのレプリカデータを含む保存先を問い合わせる。分散ファイルシステム管理ノード４０１は、本情報処理システムにおけるレプリカデータの総数に応じて、複数の処理ノードを選択する。分散ファイルシステム管理ノード４０１は、書き込み対象となる処理ノードのリストを、書き込み要求元となるデータ処理部２１１へ返送（送信）する。分散ファイルシステム管理ノード４０１から送信されてきたリストを受信したデータ処理部２１１は、受信したリストに基づいて、最初のデータの保存先となる処理ノードへデータの書き込み要求およびリストを送信する。書き込み要求を受信した処理ノードは、通信制御部２１６とＩ／Ｏ制御部２１４とを介して、データ管理部２１２に対して要求を送信する。
すると、データ管理部２１２は、書き込み要求のあったデータを配下のストレージディスク２１３に記録し、リストに記載された２番目のデータの保存先となる処理ノードへ書き込み要求を転送する。レプリカデータの総数に応じて、このようなデータ書き込み処理が繰り返され、リストされたすべての処理ノードに対して、データの保存先にデータが書き込まれる。
【００２６】
データ処理部２１１がプログラムの実行を完了した後、処理ノードは、通信制御部２１６を介してタスク実行制御ノード１０１へプログラムの実行が完了したことを通知する。タスクに含まれるすべての処理が完了すると、タスク実行制御ノード１０１は、タスク登録管理ノード３０１に対してタスクが完了したことを通知する。
【００２７】
＜複数のタスクが並列に実行される場合のタスクの実行手順＞
次に、複数のタスクが並列に実行される場合のタスクの実行手順を説明する。タスクを実行したい利用者は、実行するタスクを登録する際、タスク登録管理ノード３０１に対して、実行するタスクのプログラム本体およびタスクの実行優先度を示す実行優先度情報を登録する。タスク登録管理ノード３０１は、登録されたタスクのプログラム本体およびタスクの実行優先度を示す実行優先度情報をタスク実行制御ノード１０１へ転送（送信）する。
タスク実行制御ノード１０１は、すでに登録、実行されているタスク群の実行優先度情報を判定し、実行優先度情報が示す実行優先度に基づいて、複数ある処理グループの中から、タスクの実行先を選択する。タスク実行制御ノード１０１は、このタスクの実行先を選択する際、所定の優先度よりも高い実行優先度のタスクを、他のタスクの実行されていない処理グループに割り当てる（実行させる）。一方、タスク実行制御ノード１０１は、所定の優先度以下の実行優先度のタスクを、実行優先度が高いタスクを実行する処理グループ以外の処理グループに処理の実行先を割り当てる。
【００２８】
タスク実行制御ノード１０１は、登録されたタスクを各処理グループに属する処理ノード群に割り当てた、タスクの処理を実行開始後、各処理ノードからリソース監視ノード５０１へ集められたリソースの消費情報の中から、実行優先度の低いタスクを実行する処理グループに属する、処理ノードのストレージディスク２１３のＩ／Ｏリソースの消費情報を継続的に取得する。
タスク実行制御ノード１０１が取得した、Ｉ／Ｏリソースの消費情報に含まれるＩ／Ｏ負荷データが、所定の閾値を超えた場合、タスク実行制御ノード１０１は、実行優先度の低いタスクを実行する処理グループに属する、すべての処理ノードのＩ／Ｏ制御部２１４に対して、以下に示す（１）および（２）の制御動作を開始することを命令する。
（１）本情報処理システムに書き込まれるデータのうち、同一処理ノード内のデータ処理部２１１から作成要求のあったデータに関する、同一処理ノードのデータ管理部２１２から、実行優先度の高い処理グループの処理ノードへのレプリカ作成のための書き込み要求の同時発行数をある一定値以下に抑える。
（２）実行優先度の高いタスクを実行する処理グループに属する、処理ノードから発行されるＩ／Ｏ要求から順番にデータ管理部２１２へＩ／Ｏ要求を転送する。
タスク実行制御ノード１０１から命令を受信したＩ／Ｏ制御部２１４は、タスク実行制御ノード１０１から上記の制御動作の解除命令が発行されるまで、上記の制御動作を実行し続ける。タスク実行制御ノード１０１が取得する、Ｉ／Ｏリソースの消費情報に含まれるＩ／Ｏ消費データが、所定の閾値を下回った場合、タスク実行制御ノード１０１は、実行優先度の低いタスクを実行する処理グループに属する、すべての処理ノードのＩ／Ｏ制御部２１４に対して、上記の制御動作の解除命令を発行する。
【００２９】
次に、図４に示した情報処理システムにおける処理のうち、タスク実行制御ノード１０１における処理について説明する。図７は、図４に示した情報処理システムにおける処理のうち、タスク実行制御ノード１０１における処理を説明するためのフローチャートである。
【００３０】
まず、処理ノード選択部１１１は、タスク登録管理ノード３０１からタスクのプログラムおよびタスクの実行優先度を示す実行優先度情報を取得する（ステップＳ１１）。すると、処理ノード選択部１１１は、処理ノード２００−１〜２００−４のうち、取得したタスクの実行優先度情報が示す実行優先度に基づいて、そのタスクを実行する処理ノードを選択する（ステップＳ１２）。
続いて、処理ノード選択部１１１は、選択した処理ノードに対して、そのタスクのプログラムを送信する（ステップＳ１３）。
すると、判定部１４１は、実行優先度が所定の優先度よりも低いタスクを処理ノード選択部１１１が選択した処理ノードが実行中、そのタスクを実行している処理ノードが管理するストレージディスク２１３のＩ／Ｏ負荷が所定の閾値を超えたかどうかを判定する（ステップＳ１４）。判定部１４１が、実行優先度が所定の優先度よりも低いタスクを処理ノード選択部１１１が選択した処理ノードが実行中、そのタスクを実行している処理ノードが管理するストレージディスクのＩ／Ｏ負荷が所定の閾値を超えたと判定した場合、Ｉ／Ｏ発行数制御部１２１は、そのタスクから発行されるＩ／Ｏの同時発行数を制限する（ステップＳ１５）。また、Ｉ／Ｏ処理優先度制御部１３１は、そのタスクから発行されるＩ／Ｏの処理優先度を下げる（ステップＳ１６）。
【００３１】
このように、Ｉ／Ｏ負荷の高い実行優先度の低いタスクが混在した場合であっても、このタスクから発行されるＩ／Ｏ要求の同時発行数の抑制を行うことで、分散ファイルシステム全体にかかるＩ／Ｏのピーク負荷の軽減、および他の同時実行されるタスクから発行されるＩ／Ｏ要求が優先的に処理される。そのため、Ｉ／Ｏの応答性能を重視するタスクの実行時間を維持することが可能となる。
【００３２】
以上、各構成要素に各機能（処理）それぞれを分担させて説明したが、この割り当ては上述したものに限定しない。また、構成要素の構成についても、上述した形態はあくまでも例であって、これに限定しない。
【００３３】
上述した制御装置１００、タスク実行制御ノード１０１それぞれに設けられた各構成要素が行う処理は、目的に応じてそれぞれ作製された論理回路で行うようにしても良い。また、処理内容を手順として記述したコンピュータプログラム（以下、プログラムと称する）を制御装置１００、タスク実行制御ノード１０１それぞれにて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムを制御装置１００、タスク実行制御ノード１０１それぞれに読み込ませ、実行するものであっても良い。制御装置１００、タスク実行制御ノード１０１それぞれにて読取可能な記録媒体とは、フロッピー（登録商標）ディスク、光磁気ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃなどの移設可能な記録媒体の他、制御装置１００、タスク実行制御ノード１０１それぞれに内蔵されたＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリやＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）等を指す。この記録媒体に記録されたプログラムは、制御装置１００、タスク実行制御ノード１０１それぞれに設けられたＣＰＵにて読み込まれ、ＣＰＵの制御によって、上述したものと同様の処理が行われる。ここで、ＣＰＵは、プログラムが記録された記録媒体から読み込まれたプログラムを実行するコンピュータとして動作するものである。
【符号の説明】
【００３４】
１００    制御装置
１０１    タスク実行制御ノード
１１０，１１１    処理ノード選択部
１２０，１２１    Ｉ／Ｏ発行数制御部
１３１    Ｉ／Ｏ処理優先度制御部
１４１    判定部
２００−１〜２００−４，２０１−１〜２０１−４    処理ノード
２１１    データ処理部
２１２    データ管理部
２１３    ストレージディスク
２１４    Ｉ／Ｏ制御部
２１５    リソース収集部
２１６    通信制御部
３０１    タスク登録管理ノード
４０１    分散ファイルシステム管理ノード
５０１    リソース監視ノード
６０１    通信ネットワーク
【図１】
2018151749.tif 000003
【図２】
2018151749.tif 000004
【図３】
2018151749.tif 000005
【図４】
2018151749.tif 000006
【図５】
2018151749.tif 000007
【図６】
2018151749.tif 000008
【図７】
2018151749.tif 000009