JP6819378B2 - 並列処理装置、ステージアウト処理方法、およびジョブ管理プログラム - Google Patents

並列処理装置、ステージアウト処理方法、およびジョブ管理プログラム Download PDF

Info

Publication number
JP6819378B2
JP6819378B2 JP2017050025A JP2017050025A JP6819378B2 JP 6819378 B2 JP6819378 B2 JP 6819378B2 JP 2017050025 A JP2017050025 A JP 2017050025A JP 2017050025 A JP2017050025 A JP 2017050025A JP 6819378 B2 JP6819378 B2 JP 6819378B2
Authority
JP
Japan
Prior art keywords
job
execution
staging
metadata
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017050025A
Other languages
English (en)
Other versions
JP2018156142A (ja
Inventor
淳史 忽滑谷
淳史 忽滑谷
剛 橋本
剛 橋本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017050025A priority Critical patent/JP6819378B2/ja
Priority to US15/898,274 priority patent/US10599472B2/en
Publication of JP2018156142A publication Critical patent/JP2018156142A/ja
Application granted granted Critical
Publication of JP6819378B2 publication Critical patent/JP6819378B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、並列処理装置、ステージアウト処理方法、およびジョブ管理プログラムに関する。
従来、ファイルシステムは、ファイルの実データと、ファイルを管理することに用いられるメタデータとに分けて管理することがある。また、ジョブ実行中のファイルアクセスを高速化するため、ジョブの実行前後で、アクセス性能が異なる2つの記憶領域の間でファイルを移動する、いわゆるステージングと呼ばれる技術がある。
関連する先行技術として、例えば、即時転送が不要な場合や、サービスの提供装置の負荷が高い状態である場合、サービスの要求をキューに一旦蓄積し、負荷が低くなった提供装置に対して、許容遅延が小さく最優先の要求をキューから転送するものがある。また、ジョブの投入後にCPU(Central Processing Unit)等の稼働率が高くなり、投入ジョブの実行速度が落ちた場合、ノードテーブル、ジョブ管理テーブル、およびジョブクラステーブルを参照して、現用のノードから他のノードへジョブの再投入を行う技術がある。また、ジョブ実行時にジョブが用いるファイルに対応する作業ファイルを創成し、他ノードから転送した情報の作業ファイルの書き込み終了時にジョブで指定したファイルに作業ファイルの内容を複写し、作業ファイルを消滅させる技術がある。
特開2011−186810号公報 国際公開第2006/100752号 特開昭60−157642号公報
しかしながら、従来技術によれば、メタデータにアクセスするメタデータ処理を実行するメタデータ処理実行ノードの負荷量を、メタデータ処理実行ノードの処理能力に対して適正な割合以下に維持することができない場合がある。具体的には、ステージングを行うファイルシステムでは、メタデータ処理実行ノードの負荷量は、ステージングが発生するジョブの実行前後に上昇する。そして、ジョブの実行前後というタイミングは、ジョブのスケジューリングに依存することであり、ファイルシステム側の制御では原理的に不可能な要因である。ここで、ジョブのスケジューリングでは、ジョブを実行する計算ノードの数と、ジョブを実行する計算ノードのネットワーク上での配置とが重要である。従って、メタデータ処理実行ノードの負荷量を、メタデータ処理実行ノードの処理能力に対して適正な割合以下に維持するジョブのスケジューリングを採用することは、妥当ではない。
1つの側面では、本発明は、メタデータにアクセスするメタデータ処理を実行するメタデータ処理実行ノードの負荷量を、メタデータ処理実行ノードの処理能力に対して適正な割合以下に維持しやすくすることができる並列処理装置、ステージアウト処理方法、およびジョブ管理プログラムを提供することを目的とする。
1つの実施態様では、並列処理装置、ステージアウト処理方法、およびジョブ管理プログラムは、プロセッサとメモリとを有する複数のノードを有する並列処理装置であって、複数のノードのうちのジョブのスケジューリング処理を実行する特定のノードに、複数のノードのうちのいずれかが第1のジョブを実行する際に、ジョブの実行時間を記録した実行履歴を参照して、第1のジョブの実行が終了する実行終了時刻を算出し、複数のノードのうちのファイルのメタデータにアクセスするメタデータ処理を実行するメタデータ処理実行ノードの負荷を管理する負荷管理ノードから、算出した実行終了時刻におけるメタデータ処理実行ノードの負荷量を取得し、取得した負荷量が所定の閾値以上である場合、2つの記憶領域の間でファイルを移動するステージングによって発生するメタデータ処理を実行するステージング実行ノードに、第1のジョブの実行結果を有するファイルに対するステージングによって発生するメタデータ処理を第1のジョブの実行終了時に実行させるスケジュールデータを生成する。
一つの側面では、メタデータにアクセスするメタデータ処理を実行するメタデータ処理実行ノードの負荷量を、メタデータ処理実行ノードの処理能力に対して適正な割合以下に維持しやすくすることが可能となる。
図1は、本実施の形態にかかる並列処理装置101の動作例を示す説明図である。 図2は、並列処理システム200の構成例を示す説明図である。 図3は、ノードのハードウェア構成例を示す説明図である。 図4は、並列処理システム200の機能構成例を示す説明図である。 図5は、ジョブ管理サーバjmsの機能構成例を示す説明図である。 図6は、ジョブごとの資源予約管理表521の記憶内容の一例を示す説明図である。 図7は、ステージング予定表522の記憶内容の一例を示す説明図である。 図8は、ジョブ投入時からステージングバッファサーバstgがステージング処理を実行するまでのシーケンスを示す説明図である。 図9は、ジョブ投入時からステージングバッファサーバstgがステージング処理を実行するまでの一連の処理を示すフローチャート(その1)である。 図10は、ジョブ投入時からステージングバッファサーバstgがステージング処理を実行するまでの一連の処理を示すフローチャート(その2)である。 図11は、メタデータサーバ負荷管理表523の記憶内容の一例を示す説明図である。 図12は、ステージングバッファサーバ負荷管理表524の記憶内容の一例を示す説明図である。 図13は、過去に実行されたジョブ情報DB525の記憶内容の一例を示す説明図である。 図14は、メタデータサーバmdsで発生するCPU使用率とディスクI/O量との一例を示す説明図である。 図15は、ステージングバッファサーバstgで発生するCPU使用率の一例を示す説明図である。 図16は、ステージングバッファサーバ負荷状況413の一例を示す説明図である。 図17は、各時刻におけるメタデータサーバmdsのCPU使用率の一例を示す説明図である。 図18は、ステージングするデータ間でデータの順序制約がある場合の一連の処理を示すフローチャートである。 図19は、ステージングでのメタデータ更新順序制約管理表526の記憶内容の一例を示す説明図である。
以下に図面を参照して、開示の並列処理装置、ステージアウト処理方法、およびジョブ管理プログラムの実施の形態を詳細に説明する。
図1は、本実施の形態にかかる並列処理装置101の動作例を示す説明図である。並列処理装置101は、複数のノードにより形成される並列計算機システムである。複数のノードの各ノードは、それぞれ、プロセッサとメモリとを有する。また、複数のノードのうちの計算ノードは、科学技術計算等の処理といったジョブを実行する。
ここで、大規模並列計算機システムは、「ステージング」と呼ばれる機能を有することがある。ステージングとは、ジョブの実行前後にユーザディスクと計算ノード上のワークディスク間で任意のファイルを転送する機能である。以下、2つの記憶領域の間でファイルを移動することを、「ステージング」と呼称する。ステージングは、多くの場合、バッチジョブ・スケジューラの一部として、または、バッチジョブ・スケジューラを補助する役割を持つミドルウェアの一部として、実行される。
ユーザディスクとは、ジョブを実行するユーザやユーザのグループが所有者である二次記憶領域や、ジョブ実行前後で一貫性のあるアクセス権が付与されているファイルが配置されている二次記憶領域である。また、ワークディスクは、ジョブ実行中に限定して、一時的に利用できる二次記憶領域である。そして、ユーザディスクから計算ノード上のワークディスクへの転送を「ステージイン」、計算ノード上のワークディスクからユーザディスクへの転送を「ステージアウト」と呼称する。以下、「ステージング」は、ステージイン、ステージアウトの総称とする。
一般的には、大規模並列計算機システムにおけるユーザディスクは、大規模構成に対応した並列分散ファイルシステムプログラムにより並列計算機システム全体に対して一元管理されるディスクである。また、大規模並列計算機システムにおけるワークディスクは、各計算ノードに接続されたハードディスク、SSD、または、システム全体ではなく比較的少数の一部の計算ノードの間でのみ共有されるネットワークファイルシステムにより管理されるディスクである。このように、ファイルシステムが階層化されている状況を、「システムのファイルシステムが2階層で形成される」と呼称することがある。
通常、ジョブ実行開始前には、ステージインとして、ジョブが参照あるいは更新すべきファイルがユーザディスクからワークディスクにコピーされる。また、ジョブ実行終了後には、ステージアウトとして、ジョブが更新したファイル、およびジョブが新たに作成し、かつ保存すべきファイルが、ワークディスクからユーザディスクにコピーされる。ステージイン、ステージアウトの目的は、ワークディスクをキャッシュのように使用することで、ジョブ実行中のファイルアクセスを高速化することである。
ここで、大規模構成に対応した並列分散ファイルシステムにおける性能のボトルネックは、データ量自体は大きいファイルの内容のI/O(Input/Output)処理以上に、データ量自体は小さいファイルの管理情報のI/O処理における場合が、より深刻となることがある。以下、管理情報を、「メタデータ」と呼称する。メタデータには、例えば、ファイルのサイズ、ファイルの属性、ファイルのパーミッション、ファイルへのアクセス時刻等が含まれる。
そして、メタデータのI/O処理が深刻となる理由として、ファイルの内容のI/O処理のボトルネックは、データを保持するためのサーバやディスクの増設で比較的容易に対応できる。これに対し、メタデータのI/O処理では、ファイルシステムとしての管理情報の一貫性の維持のため、直列にしかできない処理の割合が、比較的高いからである。ここで、以下の記載では、複数のノードのうち、メタデータにアクセスするメタデータ処理を実行するノードを、「メタデータサーバ」と呼称する。
そして、メタデータサーバの負荷量を、メタデータサーバの処理能力に対して適正な割合に維持することができない場合がある。具体的には、ステージングを行うファイルシステムでは、メタデータサーバの負荷量は、ステージングが発生するジョブの実行前後に上昇する。そして、ジョブの実行前後というタイミングは、ジョブのスケジューリングに依存することであり、ファイルシステム側の制御では原理的に不可能な要因である。ここで、ジョブのスケジューリングでは、計算ノードの数と、計算ノードのネットワーク上での配置とが重要である。従って、メタデータサーバの負荷量を、メタデータサーバの処理能力に対して適正な割合に維持するジョブのスケジューリングを採用することは、妥当ではない。
特に、並列ファイルシステム全体中で、どのサブツリーのメタデータへのアクセスが、どの時点で多くなるのかを個別に制御することは困難であるため、特定時点での特定メタデータサーバへのアクセス集中の回避が深刻な問題を引き起しうる。
そこで、本実施の形態では、ステージングによって発生するメタデータ処理を実行するステージング実行ノードを用意する。以下、ステージング実行ノードを、「ステージングバッファサーバ」と呼称する。また、本実施の形態では、ステージングに伴うメタデータ処理を、「ステージング処理」と呼称する。ステージング処理は、例えば、ステージングの対象となったファイルのファイルサイズやアクセス時刻の更新を行う処理である。
そして、本実施の形態では、ステージアウトに関して、ジョブの実行履歴からジョブの実行終了時刻を求め、求めた時刻のメタデータサーバの負荷が高ければ、求めた時刻にステージングバッファサーバにステージアウトさせる。同様に、本実施の形態では、ステージインに関して、ジョブのスケジューリング結果からジョブの実行開始時刻を求め、求めた時刻のメタデータサーバの負荷が高ければ、求めた時刻にステージングバッファサーバにステージインさせる。これにより、並列処理装置101は、メタデータサーバmdsが負荷集中する可能性が高い時刻がわかり、メタデータサーバmdsの負荷を抑えることができる。
図1を用いて、並列処理装置101の動作例について説明する。並列処理装置101には、ジョブのスケジューリング処理を実行する特定のノードとして、ジョブ管理サーバjmsと、計算ノードcnと、メタデータサーバmdsと、ステージング処理実行ノードとしてステージングバッファサーバstgとを含む。そして、図1では、ステージアウトが発生する時刻において、メタデータサーバmdsの負荷量が、メタデータサーバmdsの処理能力に対して適正な割合以下に維持できるようにする。
ジョブ管理サーバjmsは、複数のノードのうちのいずれかが第1のジョブを実行する際に、ジョブの実行時間を記録した実行履歴を参照して、第1のジョブの実行が終了する実行終了時刻を算出する。第1のジョブを実行するノードは、計算ノードcnである。ここで、図1では、ジョブの実行が終了する時刻が、ステージアウトが発生する時刻とみなしている。ステージアウトが発生する時刻をより正確に算出するには、例えば、実行履歴には、ジョブの実行が開始してから、ステージアウトが発生するまでの時間を有してもよい。
また、具体的な実行終了時刻の算出方法としては、例えば、ジョブ管理サーバjmsは、第1のジョブを実行する際に、実行履歴を参照して、第1のジョブが使用するプロセッサの数や第1のジョブの名称と一致するジョブの実行時間を検出する。そして、ジョブ管理サーバjmsは、現在時刻に、検出した実行時間を加えた時刻を、実行終了時刻として算出する。また、第1のジョブを実行する前でも、実行終了時刻を算出することができる。具体的には、ジョブ管理サーバjmsは、前述したように実行履歴を参照して実行時間を検出し、ジョブのスケジューリング結果から第1のジョブの実行開始時刻を取得し、取得した実行開始時刻に、検出した実行時間を加えた時刻を、実行終了時刻として算出する。
図1で示すグラフ102は、実行履歴を参照して得られた、ジョブj1の実行時間を示す。グラフ102の横軸は、時刻を示す。そして、グラフ102は、現在時刻である時刻t1では、ジョブj1が実行開始して、ステージインが発生し、時刻t2では、ジョブj1が実行終了することを示す。従って、図1の例では、ジョブ管理サーバjmsは、図1の(1)で示すように、第1のジョブとしてジョブj1を実行する際に、実行履歴を参照して、ジョブj1の実行終了時刻として時刻t2を算出する。
次に、ジョブ管理サーバjmsは、ノードの負荷を管理する負荷管理ノードから、算出した実行終了時刻におけるメタデータサーバmdsの負荷量を取得する。ここで、負荷管理ノードは、並列処理装置101に含まれる複数のノードのいずれでもよく、例えば、ジョブ管理サーバjmsそのものでもよいし、他のノードでもよい。以下の記載では、負荷管理ノードは、ジョブ管理サーバjmsであるとする。また、実行終了時刻におけるメタデータサーバmdsの負荷量は、メタデータサーバmdsのCPU使用率でもよいし、ディスクI/O量でもよいし、CPU使用率とディスクI/O量の両方でもよい。
また、実行終了時刻におけるメタデータサーバmdsの負荷量を取得する方法としては、ジョブ管理サーバjmsは、メタデータ処理の対象となるファイルの数に対応するメタデータサーバmdsの負荷量を示す負荷情報を記憶しておく。そして、ジョブ管理サーバjmsは、ジョブのスケジューリング結果から、実行終了時刻におけるステージアウトが発生するファイルの数を特定する。そして、ジョブ管理サーバjmsは、負荷情報を参照して、特定したファイルの数に対応するメタデータサーバmdsの負荷量を取得する。
図1の(2)で示すように、ジョブ管理サーバjmsは、実行終了時刻におけるメタデータサーバmdsの負荷量を取得する。図1で示すグラフ103は、取得したメタデータサーバmdsの負荷量を示す。
そして、ジョブ管理サーバjmsは、取得した負荷量が所定の閾値以上であるか否かを判定する。所定の閾値は、並列処理装置101の管理者等によって設定される値である。図1の例では、取得した負荷量が所定の閾値以上であるとする。この場合、ジョブ管理サーバjmsは、図1の(3)で示すように、ステージングバッファサーバstgに、ジョブj1の実行結果を有するファイルに対するステージング処理をジョブj1の実行終了時に実行させるスケジュールデータ104を生成する。図1に示すスケジュールデータ104の内容は、「時刻t2に、ジョブj1の実行結果を有するファイルをステージアウト」する旨が記載される。
このように、並列処理装置101は、ステージアウト時におけるメタデータサーバmdsの負荷量が所定の閾値以上ならば、事前にステージングバッファサーバstgにステージング処理を割り当てる。従って、並列処理装置101は、ステージアウト時におけるメタデータサーバmdsの負荷量を、メタデータサーバmdsの処理能力に対して適正な割合以下に維持しやすくすることができる。
なお、図1の例では、ステージアウトに関する説明であったが、同様な方法で、並列処理装置101は、ステージイン時におけるメタデータサーバmdsの負荷量を、メタデータサーバmdsの処理能力に対して適正な割合以下に維持しやすくすることができる。次に、並列処理装置101を並列処理システムに適用した例を、図2を用いて説明する。
図2は、並列処理システム200の構成例を示す説明図である。並列処理システム200は、1以上の計算ノードcnと、ジョブ管理サーバjmsと、代表ステージングサーバrsと、1以上のステージングバッファサーバstgと、並列分散ファイルシステム201と、ユーザ端末utとを含む。計算ノードcn、ジョブ管理サーバjms、代表ステージングサーバrs、ステージングバッファサーバstg、並列分散ファイルシステム201、ユーザ端末utは、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等のネットワーク210で接続される。並列分散ファイルシステム201は、複数のメタデータサーバmdsと、複数の実データサーバrdsとを含む。図2の例では、並列分散ファイルシステム201は、メタデータサーバmds_00〜02と、実データサーバrds_00〜03とを有する。
以下の説明では、同種の要素を区別する場合には、「メタデータサーバmds_00」、「メタデータサーバmds_01」のように参照符号を使用する。そして、同種の要素を区別しない場合には、「メタデータサーバmds」のように参照符号のうちの共通番号だけを使用することがある。
計算ノードcnは、アプリを実行するノードである。ジョブ管理サーバjmsは、ジョブ実行のスケジュールやステージング指示を出すノードである。
代表ステージングサーバrsは、ステージング処理を行うノードである。具体的には、代表ステージングサーバrsは、ジョブ運用開始時に、ステージングバッファサーバstgの中から代表ステージングサーバとして選出される。そして、代表ステージングサーバrsは、メタデータサーバmdsと、ステージングバッファサーバstgとの負荷を取得し、ジョブ管理サーバjmsからの問い合わせに対し応答する。ステージングバッファサーバstgは、メタデータサーバmdsの負荷が高い時に、ステージング処理を一時的に保留しておき、メタデータサーバmdsの負荷が低くなった時に、保留しておいたステージング処理を実行するノードである。
ユーザ端末utは、並列処理システム200を利用するユーザが操作するコンピュータである。メタデータサーバmdsは、ファイルのメタデータ処理を担うノードである。ここで、メタデータ処理は、ステージング処理を含む。さらに、メタデータ処理には、ステージング処理以外の処理として、ファイルの最終アクセス時刻を変更する処理や、ファイルのアクセス権限を変更する処理等を含む。実データサーバrdsは、ファイルのI/O処理を担うノードである。
次に、計算ノードcn、ジョブ管理サーバjms、代表ステージングサーバrs、ステージングバッファサーバstg、メタデータサーバmds、実データサーバrdsを総称したノードのハードウェア構成例を示す。
図3は、ノードのハードウェア構成例を示す説明図である。図3において、ノードは、プロセッサ301と、ROM(Read Only Memory)302と、RAM(Random Access Memory)303と、を含む。また、ノードは、ディスクドライブ304およびディスク305と、通信インターフェース306と、を含む。また、プロセッサ301〜ディスクドライブ304、通信インターフェース306はバス307によってそれぞれ接続される。
プロセッサ301は、ノードの全体の制御を司る演算処理装置である。また、ノードは、複数のプロセッサを有してもよい。プロセッサ301は、例えば、CPUである。ROM302は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。RAM303は、プロセッサ301のワークエリアとして使用される揮発性メモリである。
ディスクドライブ304は、プロセッサ301の制御に従ってディスク305に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ304には、例えば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク305は、ディスクドライブ304の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ304が磁気ディスクドライブである場合、ディスク305には、磁気ディスクを採用することができる。また、ディスクドライブ304が光ディスクドライブである場合、ディスク305には、光ディスクを採用することができる。また、ディスクドライブ304がソリッドステートドライブである場合、ディスク305には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
通信インターフェース306は、ネットワークと内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース306は、通信回線を通じてネットワークを介して他の装置に接続される。通信インターフェース306には、例えば、モデムやLANアダプタなどを採用することができる。
また、ユーザ端末utは、図3に示したハードウェアに加え、ディスプレイ、キーボード、マウスといったハードウェアを有する。
図4は、並列処理システム200の機能構成例を示す説明図である。ジョブ管理サーバjmsは、制御部401を有する。制御部401は、ジョブスケジューラ402を有する。制御部401は、記憶装置に記憶されたプログラムを、ジョブ管理サーバjmsのプロセッサ301が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図3に示したジョブ管理サーバjmsのROM302、RAM303、ディスク305などである。また、各部の処理結果は、RAM303や、プロセッサ301のレジスタ、プロセッサ301のキャッシュメモリ等に格納される。ジョブスケジューラ402の詳細な機能と、ジョブ管理サーバjmsが有する情報については、図5で示す。
また、代表ステージングサーバrsは、メタデータサーバ負荷状況411を有する。また、ステージングバッファサーバstgは、ステージングバッファ412と、ステージングバッファサーバ負荷状況413とを有する。メタデータサーバ負荷状況411は、各ステージングバッファサーバstgの負荷状況を示す情報である。ステージングバッファ412は、保留されたステージング処理のメタデータ要求が格納される。ステージングバッファサーバ負荷状況413は、自身の負荷量が格納される。
メタデータサーバmdsは、先行要求待ちメタデータ要求キュー414と、メタデータサーバ性能情報415とを有する。先行要求待ちメタデータ要求キュー414は、先行すべきメタデータ要求に対するメタデータ処理が終了するまで待ち続けるメタデータ要求が格納される。メタデータサーバ性能情報415は、自身の負荷量が格納される。実データサーバrdsは、ディスク416を有する。
(ジョブ管理サーバjmsの機能構成例)
図5は、ジョブ管理サーバjmsの機能構成例を示す説明図である。ジョブスケジューラ402は、メタデータサーバ負荷管理部501と、ステージングバッファサーバ負荷管理部502と、ステージング処理スケジューリング部503とを有する。ステージング処理スケジューリング部503は、算出部511と、取得部512と、決定部513と、生成部514とを有する。
また、ジョブ管理サーバjmsは、記憶部520を有する。記憶部520は、RAM303やディスク305等の記憶領域である。そして、記憶部520は、ジョブごとの資源予約管理表521と、ステージング予定表522と、メタデータサーバ負荷管理表523と、ステージングバッファサーバ負荷管理表524とを有する。さらに、記憶部520は、過去に実行されたジョブ情報DB525と、ステージングでのメタデータ更新順序制約管理表526と、設定ファイル527とを有する。
ジョブごとの資源予約管理表521は、ジョブごとに割り当てられた資源に関する情報を有する。ジョブごとの資源予約管理表521の記憶内容の一例は、図6で示す。ステージング予定表522は、ジョブのステージングに関する情報を有する。ステージング予定表522の記憶内容の一例は、図7で示す。メタデータサーバ負荷管理表523は、各メタデータサーバmdsの負荷量を有する。メタデータサーバ負荷管理表523の記憶内容の一例は、図11で示す。ステージングバッファサーバ負荷管理表524は、各ステージングサーバstgの負荷量を有する。ステージングバッファサーバ負荷管理表524の記憶内容の一例は、図12で示す。
過去に実行されたジョブ情報DB525は、過去に実行されたジョブに関する情報を有する。過去に実行されたジョブ情報DB525の記憶内容の一例は、図13で示す。ステージングでのメタデータ更新順序制約管理表526は、ジョブに関するファイルに対するメタデータ処理を実行する順序を示す順序情報を有する。ステージングでのメタデータ更新順序制約管理表526の記憶内容の一例は、図19で示す。設定ファイル527は、並列処理システム200構築時に、並列処理システム200の管理者等によって作成されるファイルである。具体的には、設定ファイル527には、並列処理システム200に含まれるメタデータサーバmdsの識別IDの一覧や、ステージングバッファサーバstgの識別IDの一覧を有する。
メタデータサーバ負荷管理部501は、メタデータサーバmdsの負荷を管理するサブコンポーネントである。メタデータサーバmdsが複数ある場合には、メタデータサーバ負荷管理部501は、複数のメタデータサーバmdsの各メタデータサーバmdsの負荷を管理する。メタデータサーバ負荷管理部501は、メタデータサーバmdsに、メタデータサーバmdsの負荷状況を問い合わせた後、ステージング時(ジョブ開始・終了時)に発生しうるメタデータサーバの負荷を算出する。メタデータサーバ負荷管理部501による一連の処理は、ジョブ投入時にステージング処理スケジューリング部503より依頼のあった時に実行される。
ステージングバッファサーバ負荷管理部502は、ステージングバッファサーバstgの負荷を管理するサブコンポーネントである。ステージングバッファサーバstgが複数ある場合には、ステージングバッファサーバ負荷管理部502は、複数のステージングバッファサーバstgの各ステージングバッファサーバstgの負荷を管理する。ステージングバッファサーバ負荷管理部502は、ステージングバッファサーバstgに負荷状況を問い合わせた後、ステージング時に発生しうるステージングバッファサーバstgの負荷を算出する。ステージングバッファサーバ負荷管理部502による一連の処理は、ジョブ投入時にステージング処理スケジューリング部503より依頼のあった時に実行される。
ステージング処理スケジューリング部503は、メタデータサーバmdsの負荷が高い場合に、ステージング処理をステージングバッファサーバstgに割り当てるスケジューリングを行うサブコンポーネントである。
まずは、ステージアウトにおける、メタデータサーバmdsの負荷を抑える機能について説明する。算出部511は、複数のノードのうちのいずれかが第1のジョブを実行する際に、過去に実行されたジョブ情報DB525を参照して、第1のジョブの実行終了時刻を算出する。過去に実行されたジョブ情報DB525が、図1で説明した実行履歴に相当する。
取得部512は、メタデータサーバ負荷管理部501から、算出部511が算出した実行終了時刻におけるメタデータサーバmdsの負荷量を取得する。メタデータサーバmdsの負荷量の負荷の算出方法として、例えば、メタデータサーバ負荷管理部501は、メタデータサーバmdsの過去の負荷量の変動から、時刻に対する負荷量を表すモデル式を生成してもよい。そして、メタデータサーバ負荷管理部501は、生成したモデル式に実行終了時刻を入力することにより、実行終了時刻におけるメタデータサーバmdsの負荷量を算出する。
生成部514は、取得部512が取得した負荷量が所定の閾値以上である場合、ステージングバッファサーバstgに、第1のジョブの実行結果を有するファイルに対するステージング処理を第1のジョブの実行終了時に実行させるスケジュールデータを生成する。生成したスケジュールデータは、ステージング予定表522内に格納される。
また、より正確な負荷量を算出するため、ジョブ管理サーバjmsは、メタデータ処理の対象となるファイルの数に対応するメタデータ処理実行ノードの負荷量を示す負荷情報として、ステージングバッファサーバ負荷管理表524を有してもよい。そして、取得部512は、複数のファイルの各ファイルに対してステージングを実行する予定時刻を示す予定情報としてステージング予定表522を参照して、算出部511が算出した実行終了時刻に実行されるステージングの対象となるファイルの数を特定する。次に、取得部512は、特定したファイルの数を、メタデータサーバ負荷管理部501に送信する。メタデータサーバ負荷管理部501は、ステージングバッファサーバ負荷管理表524を参照して得られたファイルの数に対応するメタデータサーバmdsの負荷量を、取得部512に送信する。取得部512は、受信したメタデータサーバmdsの負荷量を、実行終了時刻におけるメタデータサーバmdsの負荷量として取得する。
また、算出部511は、ステージアウトの予定時間を算出してもよい。この場合、過去に実行されたジョブ情報DB525は、ジョブの実行を開始した時刻と、ジョブの実行結果を有するファイルに対するステージングを開始した実行開始時刻と、ファイルに対するステージングの実行終了時刻とを含む。そして、算出部511は、過去に実行されたジョブ情報DB525を参照して、第1のジョブの実行結果を有するファイルに対するステージングの実行開始時刻と、ステージングの実行終了時刻とを算出する。
次に、取得部512は、算出部511が算出した実行開始時刻から実行終了時刻までの間に実行されるステージングの対象となるファイルの数を特定する。そして、取得部512は、特定したファイルの数と、実行開始時刻から実行終了時刻までの時間の長さを示す情報を、メタデータサーバ負荷管理部501に送信する。メタデータサーバ負荷管理部501は、時間の長さに基づき算出したファイルの数に対応するメタデータサーバmdsの単位時間当たりの負荷量を、取得部512に送信する。単位時間は、例えば、1[秒]でもよいし、1[分]でもよい。取得部512は、受信したメタデータサーバmdsの単位時間当たりの負荷量を、実行開始時刻から実行終了時刻までのメタデータサーバmdsの負荷量として取得する。そして、生成部514は、取得したメタデータサーバmdsの単位時間当たりの負荷量が所定の閾値以上である場合、スケジュールデータを生成する。
次に、ステージインにおける、メタデータサーバmdsの負荷を抑える機能について説明する。算出部511は、第1のジョブを実行する前に、ステージング予定表522を参照して、第1のジョブの実行開始時刻を算出する。第1のジョブを実行する前は、例えば、第1のジョブがユーザ端末utから投入され、ステージング予定表522に第1のジョブの実行開始時刻を登録した後である。取得部512は、メタデータサーバ負荷管理部501から、算出部511が算出した実行開始時刻におけるメタデータサーバmdsの負荷量を取得する。生成部514は、取得部512が取得した負荷量が所定の閾値以上である場合、ステージングバッファサーバstgに、第1のジョブが参照または更新するファイルに対するステージング処理を第1のジョブの実行開始時に実行させるスケジュールデータを生成する。
また、図2で示したように、並列処理システム200内にステージングバッファサーバstgは複数あってもよいため、ステージング処理を実行させる候補となる複数の候補ノードとなるステージングバッファサーバstgがあってもよい。この場合、ステージング処理スケジューリング部503は、ステージング処理を複数のステージングバッファサーバstgのいずれかに実行させてもよい。具体的には、決定部513は、取得部512が取得した負荷量が所定の閾値以上である場合、ステージングバッファサーバ負荷管理部502から、算出部511が算出した実行終了時刻における各ステージングバッファstgの負荷量を取得する。そして、決定部513は、取得した各ステージングバッファstgの負荷量に基づいて、ステージング処理を実行するステージングバッファstgを決定する。
(メタデータサーバmdsの機能構成例)
メタデータサーバmdsは、第1のジョブに関するファイルに対するメタデータ処理を実行する際に、第1のジョブに関するファイルに対するメタデータ処理より前に実行すべきメタデータ処理の有無を確認する要求を、ジョブ管理サーバjmsに送信する。そして、ジョブ管理サーバjmsは、前述した要求を受け付けたとする。この場合、ジョブ管理サーバjmsは、ステージングでのメタデータ更新順序制約管理表526を参照して、第1のジョブに関するファイルに対するメタデータ処理より前に実行すべきメタデータ処理があるか否か判断する。第1のジョブに関するファイルに対するメタデータ処理より前に実行すべきメタデータ処理があると判断すれば、ジョブ管理サーバjmsは、前に実行すべきメタデータ処理を特定する情報を、メタデータサーバmdsに送信する。前に実行すべきメタデータ処理を特定する情報は、例えば、前に実行すべきメタデータ処理のジョブIDである。そして、メタデータサーバmdsは、前に実行すべきメタデータ処理を特定する情報を受け付けた場合、前に実行すべきメタデータ処理を、第1のジョブに関するファイルに対するメタデータ処理より前に実行する。
図6は、ジョブごとの資源予約管理表521の記憶内容の一例を示す説明図である。図6に示すジョブごとの資源予約管理表521は、レコード601〜603を有する。
ジョブごとの資源予約管理表521は、ジョブIDと、ジョブ名と、プロセッサの使用開始時刻と、プロセッサ集合管理構造体と、プロセッサの使用終了時刻というフィールドを含む。ジョブIDフィールドには、ジョブを一意に識別するために付与される識別番号となるジョブIDが格納される。ジョブIDは、配列のインデックスや検索のキーとして利用される。ジョブ名フィールドには、ジョブの名称が格納される。プロセッサの使用開始時刻は、ジョブが計算ノードcnのプロセッサの使用を開始する時刻を示す情報が格納される。プロセッサ集合管理構造体フィールドには、ジョブが使用する計算ノードcnのプロセッサの一覧が格納される。プロセッサの使用終了時刻フィールドには、ジョブが計算ノードcnのプロセッサの使用を終了する時刻を示す情報が格納される。
図7は、ステージング予定表522の記憶内容の一例を示す説明図である。図7に示すステージング予定表522は、レコード701_1〜3、702、703を有する。なお、ステージング予定表522の各レコードが、スケジュールデータ104に相当する。
ステージング予定表522は、ジョブIDと、ファイルIDと、ファイルサイズと、ステージアウト予定時刻と、ステージアウト予定時間と、ステージングを行うノードの識別IDというフィールドを含む。
ジョブIDフィールドには、ジョブを一意に識別するために付与される識別番号となるジョブIDが格納される。ジョブIDは、配列のインデックスや検索のキーとして利用される。ファイルIDフィールドには、ステージングするファイルを一意に識別するために付与される識別番号となるファイルIDが格納される。ファイルサイズフィールドには、ステージングするファイルのサイズが格納される。ステージアウト予定時間フィールドには、ファイルをステージアウトする場合の予定時刻を示す情報が格納される。ステージアウト予定時間フィールドには、ファイルをステージアウトする場合の予定時間を示す情報が格納される。ステージングを行うノードの識別IDフィールドには、ステージングを行う代表ステージングサーバrsまたはステージングバッファサーバstgの識別情報が格納される。識別情報は、例えば、代表ステージングサーバrsやステージングバッファサーバstgのIP(Internet Protocol)アドレスやホスト名である。
なお、図7で示すステージング予定表522は、ステージアウトに関するフィールドとして、ステージアウト予定時刻と、ステージアウト予定時間と、ステージングを行うノードの識別IDというフィールドを有するが、これに限らない。ステージング予定表522は、ステージインに関するフィールドを有してもよいし、ステージアウトに関するフィールドとステージインに関するフィールドとを有してもよい。
(ジョブ投入時からステージングバッファサーバstgへステージング処理を依頼するまでの一連の処理について)
次に、ジョブ投入時からステージングバッファサーバstgへステージング処理を依頼するまでの一連の処理について、図8〜図10を用いて説明する。図8では、前述した一連の処理について、並列処理システム200全体のシーケンスを示す。また、図9、図10では、図8で示す一連の処理を、図2で示した装置ごと、ジョブ管理サーバjmsに関しては図4で示した機能部ごとの処理の順序に並べ替え、かつ、データへのアクセスを示す。
また、図8〜図10では、ユーザ端末utが実行する処理のステップ番号を「Sutx」として示す。xは自然数である。また、代表ステージングサーバrs、ステージングバッファサーバstg、メタデータサーバmdsが実行する処理のステップ番号を、それぞれ、「Srsx」、「Sstgx」、「Smdsx」として示す。同様に、メタデータサーバ負荷管理部501、ステージングバッファサーバ負荷管理部502、ステージング処理スケジューリング部503が実行する処理のステップ番号を、それぞれ「Smdslx」、「Sstglx」、「Sssx」として示す。また、前述の一連の処理のそれぞれの処理を説明した後で、各ステップのより具体的な説明を行う。
図8は、ジョブ投入時からステージングバッファサーバstgがステージング処理を実行するまでのシーケンスを示す説明図である。図9は、ジョブ投入時からステージングバッファサーバstgがステージング処理を実行するまでの一連の処理を示すフローチャート(その1)である。また、図10は、ジョブ投入時からステージングバッファサーバstgがステージング処理を実行するまでの一連の処理を示すフローチャート(その2)である。まずは、図8で示したシーケンス順に、各ステップを説明する。
ユーザ端末utは、ジョブを投入する(ステップSut1)。ジョブの投入を受け付けたステージング処理スケジューリング部503は、ジョブごとの資源予約管理表521を更新する(ステップSss1)。次に、ステージング処理スケジューリング部503は、過去に実行されたジョブ情報DB525を参照して、ステージング予定表522を更新する(ステップSss2)。ステージング予定表522の更新後、ジョブの依存関係が判明するため、ステージング処理スケジューリング部503は、依存関係があるジョブについて、ステージングでのメタデータ更新順序制約管理表526を更新する。そして、ステージング処理スケジューリング部503は、メタデータサーバ負荷管理部501への負荷算出依頼を送信する(ステップSss3)。ステージング処理スケジューリング部503は、メタデータサーバ負荷管理部501の負荷算出結果を待ち受ける。
負荷算出依頼を受け付けたメタデータサーバ負荷管理部501は、設定ファイル527を参照して、メタデータサーバmdsの一覧を取得する(ステップSmdsl1)。次に、メタデータサーバ負荷管理部501は、代表ステージングサーバrsへの問い合わせとして、メタデータサーバmdsの負荷状況の取得依頼を代表ステージングサーバrsに送信する(ステップSmdsl2)。取得依頼送信後、メタデータサーバ負荷管理部501は、メタデータサーバ負荷状況411に格納された負荷状況を取得する。メタデータサーバ負荷管理部501は、取得した負荷状況で、メタデータサーバ負荷管理表523を更新する。
取得依頼を受け付けた代表ステージングサーバrsは、メタデータサーバmdsへの問い合わせとして、メタデータサーバmdsの性能値の取得依頼をメタデータサーバmdsに送信する(ステップSrs1)。取得依頼送信後、代表ステージングサーバrsは、メタデータサーバ性能情報415に格納された性能値を取得する。そして、代表ステージングサーバrsは、取得した性能値でメタデータサーバ負荷状況411を更新する。
取得依頼を受け付けたメタデータサーバmdsは、メタデータサーバ性能値を取得し(ステップSmds1)、取得した性能値でメタデータサーバ性能情報415を更新する。
メタデータサーバ負荷管理部501は、代表ステージングサーバrsへの問い合わせとして、ステージング対象のファイルを処理するメタデータサーバの取得依頼を送信する(ステップSmdsl3)。
次に、メタデータサーバ負荷管理部501は、メタデータサーバの負荷を算出する(ステップSmdsl4)。メタデータサーバ負荷管理部501は、算出した負荷を、ステージング処理スケジューリング部503に送信する。
ステージング処理スケジューリング部503は、ステージング予定表522と、メタデータサーバ負荷管理部501が算出した負荷とに基づいて、スケジューリング処理を実行する(ステップSss4)。次に、ステージング処理スケジューリング部503は、ステージングバッファサーバ負荷管理部502へのステージングバッファサーバ負荷算出依頼を送信する(ステップSss5)。
ステージングバッファサーバ負荷算出依頼を受け付けたステージングバッファサーバ負荷管理部502は、設定ファイル527を参照して、ステージングバッファサーバstgの一覧を取得する(ステップSstgl1)。次に、ステージングバッファサーバ負荷管理部502は、ステージングバッファサーバstgへの問い合わせとして、ステージングバッファサーバの負荷状況取得依頼を送信する(ステップSstgl2)。負荷状況取得依頼後、ステージングバッファサーバ負荷管理部502は、ステージングバッファサーバ負荷状況413から、ステージングバッファサーバstgの負荷状況を取得する。そして、ステージングバッファサーバ負荷管理部502は、取得した負荷状況で、ステージングバッファサーバ負荷管理表524を更新する。
負荷状況取得依頼を受け付けたステージングバッファサーバstgは、ステージングバッファサーバ負荷状況413を更新する(Sstg1)。
ステージングバッファサーバ負荷管理部502は、ステージングバッファサーバ負荷管理表524を参照して、ステージングバッファサーバの負荷を算出する(Sstgl3)。ステージングバッファサーバ負荷管理部502は、算出した負荷を、ステージング処理スケジューリング部503に送信する。
ステージング処理スケジューリング部503は、ステージングバッファサーバ負荷管理部502が算出した負荷に基づいて、ステージング処理を振り分ける(ステップSss6)。
ステージング処理を振り分けられたステージングバッファサーバstgは、ステージング処理を実行する(ステップSstg2)。次に、図9、図10における各装置、各機能部内で示す順に、各ステップの詳細について説明する。
(メタデータサーバ負荷管理部501の処理)
メタデータサーバ負荷管理部501の処理について説明する。ステップSmdsl1の処理として、メタデータサーバ負荷管理部501は、設定ファイル527等から、メタデータサーバmdsの一覧を取得する。次に、ステップSmdsl2の処理として、メタデータサーバ負荷管理部501は、ステップSmdsl1の処理で取得した各メタデータサーバmdsの負荷状況を取得する。メタデータサーバ負荷管理部501は、取得した情報を、メタデータサーバ負荷管理表523に保存する。そして、ステップSmdsl3の処理として、メタデータサーバ負荷管理部501は、代表ステージングサーバrsに問い合わせ、ステージング対象のファイルを処理するメタデータサーバmdsを取得する。
次に、ステップSmdsl4の処理として、メタデータサーバ負荷管理部501は、メタデータサーバ負荷管理表523と、次に示す情報とに基づいて、ステップSmdsl3の処理で取得したメタデータサーバmdsの負荷を算出する。次に示す情報は、ステージング時のメタアクセス数と、ステージインかステージアウトかの処理の種別と、処理の種別に応じた処理の開始時刻と終了時刻とである。これらの情報は、ステージング処理スケジューリング部503から受け付ける情報である。また、メタデータサーバmdsの負荷は、具体的には、CPU使用率でもよいし、ディスクI/O量でもよいし、CPU使用率とディスクI/O量との両方でもよい。ディスクI/O量は、1秒当たりのステージング時のメタアクセス数である。CPU使用率は、例えば、下記(1)式によって算出される値である。
CPU使用率=(1秒当たりのステージング時のメタアクセス数)×(メタデータサーバ負荷管理表523のCPU使用率)÷(メタデータサーバ負荷管理表523のディスクI/O量) …(1)
ここで、(1)式を用いた具体的なCPU使用率の算出例を、メタデータサーバ負荷管理表523の記憶内容を示しながら、図11を用いて説明する。
図11は、メタデータサーバ負荷管理表523の記憶内容の一例を示す説明図である。図11に示すメタデータサーバ負荷管理表523は、レコード1101〜1103を有する。
メタデータサーバ負荷管理表523は、識別IDと、CPU使用率と、ディスクI/O量というフィールドを含む。識別IDフィールドには、メタデータサーバmdsを識別する識別IDが格納される。CPU使用率フィールドには、メタデータサーバmdsのCPU使用率が格納される。ディスクI/O量フィールドには、メタデータサーバmdsのディスクI/O量を示す値が格納される。また、ディスクI/O量フィールドで示す[ops]は、operation per secondのことであり、1秒当たりのオペレーション数を示す。
図11を用いて、CPU使用率の算出例について示す。ここで、ステップSmdsl3で取得したメタデータサーバmdsの識別IDが、mds_00であるとする。また、ステージング時間10分の間に発生するメタアクセス数が500000回であるとする。このため、1秒間に500000÷600≒800回のメタアクセスが発生することになる。図11に示したレコード1101から、識別IDがmds_00であるメタデータサーバmdsは、ディスクI/O量が1505[ops]である時に、CPU使用率が13.0[%]である。従って、メタデータサーバ負荷管理表523は、(1)式に従って、CPU使用率を下記のように算出する。
CPU使用率=800×13÷1505≒7.0[%]
(ステージングバッファサーバ負荷管理部502の処理)
次に、ステージングバッファサーバ負荷管理部502の処理について説明する。ステップSstgl1の処理として、ステージングバッファサーバ負荷管理部502は、設定ファイル527等から、ステージングバッファサーバstgの一覧を取得する。次に、ステップSstgl2の処理として、ステージングバッファサーバ負荷管理部502は、ステップSstgl1の処理で取得した各ステージングバッファサーバstgに問い合わせ、ステージングバッファサーバstgの負荷状況を取得する。そして、ステージングバッファサーバ負荷管理部502は、取得した情報を、ステージングバッファサーバ負荷管理表524に保存する。
そして、ステップSstgl3の処理として、ステージングバッファサーバ負荷管理部502は、ステージングバッファサーバ負荷管理表524と、次に示す情報とに基づいて、ステージング処理時のステージングバッファサーバstgの負荷を算出する。ここで、算出対象となるステージングバッファサーバstgは、ステップSstgl1の処理で取得した各ステージングバッファサーバstgである。また、次に示す情報は、ステージング時のメタアクセス数と、ステージインかステージアウトかの処理の種別と、処理の種別に応じた処理の開始時刻と終了時刻とである。これらの情報は、ステージング処理スケジューリング部503から受け付ける情報である。また、ステージングバッファサーバstgの負荷は、CPU使用率である。CPU使用率は、例えば、下記(2)式によって算出される値である。
CPU使用率=(1秒当たりのステージング時のメタアクセス数)×(ステージングバッファサーバ負荷管理表524のCPU使用率)÷(ステージングバッファサーバ負荷管理表524のメタアクセス数) …(2)
なお、ステージングバッファサーバstgの負荷に、ディスクI/O量は含めなくてよい。ステージングバッファサーバstgの負荷に、ディスクI/O量は含めない理由として、ステージング処理は、ステージングバッファサーバstgのディスクにアクセスしないためである。
ここで、ステージングバッファサーバ負荷管理表524の記憶内容を図12で示しながら、(2)式を用いた具体的なCPU使用率の算出例を説明する。
図12は、ステージングバッファサーバ負荷管理表524の記憶内容の一例を示す説明図である。図12に示すステージングバッファサーバ負荷管理表524は、レコード1201〜1203を有する。
ステージングバッファサーバ負荷管理表524は、識別IDと、CPU使用率と、メタアクセス数、というフィールドを含む。識別IDフィールドには、ステージングバッファサーバstgを一意に識別可能な識別IDが格納される。CPU使用率フィールドには、CPU使用率を示す値が格納される。メタアクセス数フィールドには、1秒間当たりのメタアクセス数を示す値が格納される。
そして、ステップSstgl3の処理では、負荷算出対象のステージングバッファサーバstgのIDが、sstg_svr_00とする。また、ステージング時間10[分]の間に発生するメタアクセス数が500000[回]であるとする。このため、1秒間に500000÷600≒800[回]のメタアクセスが発生することになる。そして、レコード1201から、識別IDがsstg_svr_00の各ステージングバッファサーバstgのディスクI/O量は813[ops]の時にCPU使用率が3.0[%]である。このことから、ステージングバッファサーバ負荷管理部502は、(2)式に従って、ステージング処理で発生するCPU使用率を、下記のように算出する。
CPU使用率=800×3÷813≒3.0[%]
(ステージング処理スケジューリング部503の処理)
次に、ステージング処理スケジューリング部503の処理について説明する。ステップSss1の処理として、ステージング処理スケジューリング部503は、ユーザから指示された実行時間と、ジョブごとの資源予約管理表521とに基づいて、投入されたジョブのプロセッサと、該当のプロセッサの使用時間および終了時間を決定する。そして、ステージング処理スケジューリング部503は、決定した内容で、ジョブごとの資源予約管理表521を更新する。
ここで、図6で示したジョブごとの資源予約管理表521を用いて、ステップSss1の処理の具体例を説明する。また、並列処理システム200の計算ノードcnのプロセッサ数が64個であるとする。ジョブIDが141であるジョブが実行時間2時間、プロセッサ数64として投入された場合、ステージング処理スケジューリング部503は、資源予約管理表521を参照して、空きプロセッサ数が64となる時刻を検索する。図6の例では、ステージング処理スケジューリング部503は、空きプロセッサ数が64となる時刻が15:50であることから、15:50をプロセッサ使用開始時刻として決定し、ジョブの資源予約管理表521へ登録する。
次に、ステップSss2の処理として、ステージング処理スケジューリング部503は、決定したジョブの開始時刻および終了時刻から、ステージイン予定時刻と、ステージアウト予定時刻とを算出する。そして、ステージング処理スケジューリング部503は、算出結果をステージング予定表522に反映する。この時、ステージング処理スケジューリング部503は、自身が有する、過去に実行されたジョブ情報DB525に基づいて、ステージイン予定時刻およびステージアウト予定時刻を算出する。ここで、過去に実行されたジョブ情報DB525の記憶内容の一例を図13で示し、ステップSss2の処理を具体的に説明する。
図13は、過去に実行されたジョブ情報DB525の記憶内容の一例を示す説明図である。図13に示す過去に実行されたジョブ情報DB525は、レコード1301〜1303を有する。
過去に実行されたジョブ情報DB525は、ジョブIDと、ジョブ名と、ジョブ開始日時と、ジョブ終了日時とを有する。さらに、過去に実行されたジョブ情報DB525は、使用プロセッサ数と、ファイルIDと、ステージアウト開始日時と、ステージアウト終了日時と、ステージアウト時のメタアクセス数というフィールドを含む。
ジョブIDフィールドには、ジョブを一意に識別するために付与される識別番号となるジョブIDが格納される。ジョブ名フィールドには、ジョブの名称が格納される。ジョブ開始日時フィールドには、ジョブが実行を開始した日時を示す情報が格納される。ジョブ終了日時フィールドには、ジョブが実行を終了した日時を示す情報が格納される。使用プロセッサ数フィールドには、ジョブが使用したプロセッサの数が格納される。ファイルIDフィールドには、ステージングするファイルを一意に識別するために付与される識別番号が格納される。ステージアウト開始日時フィールドには、ステージアウトを開始した日時を示す情報が格納される。ステージアウト終了日時フィールドには、ステージアウトを終了した日時を示す情報が格納される。ステージアウト時のメタアクセス数フィールドには、ステージアウト時中に発生したメタアクセスの総量が格納される。
なお、図13で示す過去に実行されたジョブ情報DB525は、ステージアウトに関するフィールドとして、ステージアウト開始日時と、ステージアウト終了日時と、ステージアウト時のメタアクセス数というフィールドを有するが、これに限らない。過去に実行されたジョブ情報DB525は、ステージインに関するフィールドを有してもよいし、ステージアウトに関するフィールドとステージインに関するフィールドとを有してもよい。
ステップSss2の処理について、ステージング処理スケジューリング部503は、投入されたジョブのジョブ名と使用プロセッサ数が同一のジョブ情報を、過去に実行されたジョブ情報DB525から取得する。次に、ステージング処理スケジューリング部503は、取得したジョブ情報のステージアウト開始日時、終了日時から、ジョブが実行を開始してからステージアウトまでの時間と、ステージアウトに要した時間を算出する。そして、ステージング処理スケジューリング部503は、算出した時間を、ステップSss1の処理で決定したジョブのステージイン/ステージアウトの予定時刻の算出に利用する。
より具体的な例を用いて、ステップSss2の処理について説明する。ここで、資源予約管理表521のジョブID=135であるジョブについて、ステージイン予定時刻およびステージアウト予定時刻を算出する例を示す。レコード601により、ジョブID=135であるジョブのジョブ名は、「Job A」であり、使用プロセッサ数は、48である。ステージング処理スケジューリング部503は、「ジョブ名:Job A」、「使用プロセッサ数:48」をキーに過去に実行されたジョブ情報DB525を検索すると、レコード1301が示すジョブIDが11であるジョブが類似ジョブであることを特定する。そして、ジョブIDが11であるジョブは、レコード1301が示すように、ジョブ開始時刻である11:35から40分後の12:15にはステージアウトが開始している。
このため、ステージング処理スケジューリング部503は、ステージング予定表522のステージアウト予定時刻を、レコード601のプロセッサの使用開始時刻の40分後である15:40であるとして、ステージング予定表522を更新する。ステージアウト予定時間は、過去に実行されたジョブ情報DB525のステージアウト開始日時とステージアウト終了日時の差とする。
次に、ステップSss3の処理について、ステージング処理スケジューリング部503は、メタデータサーバ負荷管理部501に、メタデータサーバmdsの負荷算出依頼を送信する。例えば、ステージング処理スケジューリング部503は、ステージアウト予定時刻の負荷量を取得する場合、引数として、ステップSss2で算出したステージアウト予定時刻のメタデータアクセス数、ステージアウト予定時間を含めて、負荷算出依頼を送信する。また、ステージング処理スケジューリング部503は、ステージイン予定時刻の負荷量を取得する場合、引数として、ステップSss2で算出したステージイン予定時刻のメタデータアクセス数、ステージイン予定時間を含めて、負荷算出依頼を送信する。
ここで、ステージング予定表522の例を用いると、15:40にステージアウトが始まるファイルは、ジョブIDが135であるジョブが扱うファイル3個で、ステージアウト予定時間は9分であることが分かる。そして、ステージング処理スケジューリング部503は、メタアクセス数としてステージアウトが始まるファイル数と、ステージアウト予定時間とをメタデータサーバ負荷管理部501に送信する。メタアクセス数とステージアウト予定時間とを送信することにより、ステージング処理スケジューリング部503は、メタデータサーバmdsで発生しうるCPU使用率とディスクI/O量を取得する。
そして、ステップSss4の処理について、ステージング処理スケジューリング部503は、ステップSss3で取得したメタデータサーバmdsの負荷を、ステージアウト処理を行っている全てのジョブに対して求める。メタデータサーバmdsの負荷は、メタデータ処理量を表すことになる。次に、ステージング処理スケジューリング部503は、メタデータサーバmdsでステージアウト処理を実行する予定のジョブによる負荷の合計が、並列処理システム200の管理者が設定した所定の閾値を超えるか否かを判断する。そして、前述した合計が所定の閾値を超えた場合、ステージング処理スケジューリング部503は、ステージング処理の一部または全てをステージングバッファサーバstgがステージング処理するように、スケジュールする。
ここで、ステップSss4の処理の具体例について、図14を用いて説明する。まず、ステップSss2の処理について、ジョブIDが1、2である2つのジョブが並列分散ファイルシステム201上で実行中であるとする。ステージング処理スケジューリング部503は、ステップSss3で取得したメタデータサーバmdsの負荷に基づいて、サンプリング間隔ごとに、実行中のジョブごとのメタデータサーバのCPU使用率とディスクI/O量の合算値を算出する。ここで、サンプリング間隔は、並列処理システム200の管理者が任意に設定可能な値である。
図14は、メタデータサーバmdsで発生するCPU使用率とディスクI/O量との一例を示す説明図である。図14の上部で示す表1400は、時刻12:00から12:01までの間にメタデータサーバで発生するCPU使用率とディスクI/O量を示す。図14の上部で示す表1400は、レコード1401_1〜3、1402を有する。
そして、ステージング処理スケジューリング部503は、表1400に基づいて、各メタデータサーバmdsに発生しうるCPU使用率とディスクI/O量とを算出し、図14の下部で示す表1410を得る。図14の下部で示す表1410は、レコード1411〜1413を有する。
ここで、並列処理システム200の管理者が設定したCPU使用率の閾値が80[%]であり、ディスクI/O量が10000[ops]であるとする。時刻12:00から12:01までの間は、識別IDがmds_00であるメタデータサーバmdsに発生するCPU使用率が87.3[%]であるため、並列処理システム200の管理者が設定したCPU使用率の閾値を上回る。このため、ステージング処理スケジューリング部503は、ジョブIDが2であるジョブによるステージアウト処理をステージングバッファサーバstgへ一時的に転送することを決定する。
そして、ステップSss5の処理では、ステップSss4の処理で、決定したステージアウト処理を対象とする。そして、ステージング処理スケジューリング部503は、ステップSss3の処理で求めたメタアクセス数と、ステージアウト予定時間とをステージングバッファサーバ負荷管理部502に送信する。メタアクセス数と、ステージアウト予定時間とを送信することにより、ステージング処理スケジューリング部503は、対象とするステージアウト処理を各ステージングバッファサーバstgで実行することになった場合のCPU使用率を取得する。
ここで、ステップSss5の処理の具体例について、図15を用いて説明する。そして、ステップSss5の処理の具体例では、ジョブIDが2のジョブによるステージングアウト処理が、ステージングバッファサーバstgへ一時的に転送すると決定された処理である。ステップSss5の処理において、ステージング処理スケジューリング部503は、メタアクセス数とステージアウト予定時間を、ステージングバッファサーバ負荷管理部502に送信する。メタアクセス数とステージアウト予定時間を送信したことにより取得したCPU使用率を、図15で示す。
図15は、ステージングバッファサーバstgで発生するCPU使用率の一例を示す説明図である。図15で示す表1500は、レコード1501〜1503を有する。表1500は、ステージングバッファサーバstgへ一時的に転送すると決定されたステージアウト処理を実行する時刻12:00から12:01までの間に、各ステージングバッファサーバで発生するCPU使用率の例である。
次に、ステップSss6の処理について、ステージング処理スケジューリング部503は、CPU使用率が最も低いステージングバッファサーバstgに、ステップSss4の処理で決定したステージング処理の要求を送信する。
ここで、ステップSss6の処理の具体例について、図15の例を用いて説明する。ステージング処理スケジューリング部503は、CPU使用率が最も低い、識別IDがsstg_svr_02となるステージングバッファサーバstgに、ステージアウト処理の要求を送信する。
(ステージングバッファサーバstgの処理)
次に、ステージングバッファサーバstgの処理について説明する。ステップSstg1の処理について、ステージングバッファサーバstgは、自身のCPU使用率やディスクI/O量を取得し、取得した情報をステージングバッファサーバ負荷状況413に保存する。図16を用いて、ステージングバッファサーバ負荷状況413を説明する。
図16は、ステージングバッファサーバ負荷状況413の一例を示す説明図である。図16で示すステージングバッファサーバ負荷状況413は、レコード1601を有する。ステージングバッファサーバ負荷状況413は、CPU使用率と、メタアクセス数とを有する。CPU使用率フィールドには、負荷状況取得時点でのステージングバッファサーバstgのCPU使用率が格納される。メタアクセス数フィールドには、負荷状況取得時点でのステージングバッファサーバstgのメタアクセス数が格納される。
ステップSstg2の処理について、ステージングバッファサーバstgは、保留したステージング処理を実行する。具体的には、ステージングバッファサーバstgは、メタデータサーバmdsの負荷状況を代表ステージングサーバrsに問い合わせ、保留したステージング処理を実行する。このとき、ステージングバッファサーバstgは、ステージング要求により、メタデータサーバmdsの負荷が並列処理システム200の管理者が設定したCPU使用率の閾値を超えない時刻に、前述のステージング処理が発生するように設定する。
ステップSstg2の処理の具体例について、図17を用いて説明する。ステージングバッファサーバstgは、代表ステージングサーバrsに問い合わせ、メタデータサーバmdsで発生するCPU使用率にステージング処理を加えても、前述したCPU使用率の閾値を超えない時刻に、ステージング処理の実行開始時間を決定する。ここで、メタデータサーバmdsのCPU使用率を参照する理由は、ステージングバッファサーバstgでステージング処理を実行すると、メタデータサーバmdsに処理が発生するためである。そして、各時刻におけるメタデータサーバmdsのCPU使用率の一例を、図17で示す。
図17は、各時刻におけるメタデータサーバmdsのCPU使用率の一例を示す説明図である。図17で示す表1700は、各時刻における識別IDがmds_00のメタデータサーバmdsと、識別IDがmds_00のメタデータサーバmdsとのそれぞれのCPU使用率を示す。図17に示す表1700は、レコード1701〜1704を有する。
そして、ステップSstg2の処理の具体例について、図17に示す表1700のように、各時刻におけるメタデータサーバmdsのCPU使用率が、代表ステージングサーバrsから得られたとする。また、本ステージング処理によりメタデータサーバmdsのCPU使用率が40[%]増加すると算出されており、また、本ステージング処理は、識別IDがmds_00であるメタデータサーバmdsで行うことが決定されているとする。この時、ステージングバッファサーバstgは、図17から、12:04−12:05に識別IDがmds_00であるメタデータサーバmdsに対してステージング処理を行うようにする。
(メタデータサーバmdsの処理)
次に、メタデータサーバmdsの処理について説明する。ステップSmds1の処理として、各メタデータサーバmdsは、代表ステージングサーバrsからの問い合わせに応じて、自サーバの性能値と、ファイルの識別子とを通知する。
(ステージングするデータ間でデータの順序制約がある場合の処理)
順序制約がある場合の処理は、メタデータ処理間で使用するファイルに依存関係のあるファイルを扱う場合に発生する。例えば、メタデータ処理に含まれるステージング処理Aとステージング処理Bの2つのステージング処理があるとして、本来であればステージング処理Aが実行された後に、ステージング処理Bの順番で実行される場合を想定する。このように想定される例としては、ステージング処理Bでアクセスするファイルの中に、ステージング処理Aのファイルパスが含まれているとすると、ステージング処理B実行前にステージング処理Aを実行することになる。順序制約がある場合の一連の処理のフローチャートについて、図18を用いて説明する。
図18は、ステージングするデータ間でデータの順序制約がある場合の一連の処理を示すフローチャートである。メタデータサーバmdsは、対象のメタデータ要求より先行処理すべきメタデータ要求の存在を確認する(ステップS1801)。具体的には、各メタデータサーバmdsは、ステージング処理スケジューリング部503に問い合わせて、先行処理すべきメタデータ要求の存在を確認する。ステップS1801の処理のより具体的な説明は、図19で行う。
次に、メタデータサーバmdsは、先行処理すべきメタデータ要求があるか否かを判断する(ステップS1802)。先行処理すべきメタデータ要求がある場合(ステップS1802:Yes)、メタデータサーバmdsは、対象のメタデータ要求を、先行要求待ちメタデータ要求キュー414に登録する(ステップS1803)。次に、メタデータサーバmdsは、先行要求待ちメタデータ要求キューから、メタデータ要求を取り出す(ステップS1804)。
そして、メタデータサーバmdsは、取り出したメタデータ要求より先行処理すべきメタデータ要求が処理済か否かを判断する(ステップS1805)。取り出したメタデータ要求より先行処理すべきメタデータ要求が処理済でない場合(ステップS1805:No)、メタデータサーバmdsは、先行処理すべきメタデータ要求が、先行要求待ちメタデータ要求キュー414に含まれるか否かを判断する(ステップS1806)。先行処理すべきメタデータ要求が先行要求待ちメタデータ要求キュー414に含まれる場合(ステップS1806:Yes)、メタデータサーバmdsは、先行処理すべきメタデータ要求を、対象のメタデータ要求より前に移動する(ステップS1807)。ステップS1807の処理終了後、または、先行要求待ちメタデータ要求キュー414に含まれない場合(ステップS1806:No)、メタデータサーバmdsは、ステップS1805の処理に移行する。
また、先行処理すべきメタデータ要求がない場合(ステップS1802:No)、または、取り出したメタデータ要求より先行処理すべきメタデータ要求が処理済である場合(ステップS1805:Yes)、メタデータサーバmdsは、対象のメタデータ要求によるメタデータ処理を実行する(ステップS1808)。ステップS1808の処理終了後、メタデータサーバmdsは、一連の処理を終了する。
図19は、ステージングでのメタデータ更新順序制約管理表526の記憶内容の一例を示す説明図である。図19に示すステージングでのメタデータ更新順序制約管理表526は、レコード1901〜1904を有する。
ステージングでのメタデータ更新順序制約管理表526は、ジョブIDと、依存するジョブというフィールドを含む。ジョブIDフィールドには、ステージング処理を含むメタデータ要求を行うジョブの識別子となるジョブIDを示す値が格納される。依存するジョブフィールドには、該当のステージング処理において、該当のメタデータ処理が依存するステージング処理を行うジョブの識別子となるジョブIDが格納される。
例えば、レコード1901は、ジョブIDが12であるジョブのステージング処理のメタデータ要求の中に、先行して処理すべきメタデータ要求があることを示す。先行して処理すべきメタデータ要求は、ジョブIDが8であるジョブのステージング処理に含まれる。このため、メタデータサーバmdsは、ジョブIDが8であるジョブのステージング処理が完了するまで、ジョブIDが12であるジョブのステージング処理を保留する。
以上説明したように、ジョブ管理サーバjmsは、ステージアウトに関して、ジョブの実行履歴からジョブの実行終了時刻を求め、求めた時刻のメタデータサーバの負荷が高ければ、求めた時刻にステージングバッファサーバにステージアウトさせる。これにより、ジョブ管理サーバjmsは、メタデータサーバmdsが負荷集中する可能性が高い時刻がわかり、メタデータサーバmdsの負荷を抑えることができる。
また、ジョブ管理サーバjmsは、ジョブのスケジューリング結果から、実行終了時刻におけるステージアウトが発生するファイルの数を特定し、特定したファイルの数に対応するメタデータサーバmdsの負荷量を取得してもよい。このように、ジョブ管理サーバjmsは、未来に確実に起こるステージアウトが発生するファイルの数を用いて、実行終了時刻におけるメタデータサーバmdsの負荷量を取得する。従って、ジョブ管理サーバjmsは、メタデータサーバmdsの過去の負荷量だけを用いる場合より、より精度の良い実行終了時刻におけるメタデータサーバmdsの負荷量を取得することができる。そして、ジョブ管理サーバjmsは、実際には実行終了時刻におけるメタデータサーバmdsの負荷量が所定の閾値を超えたのに、超えないと誤判断してメタデータサーバmdsにステージング処理をさせてしまうという可能性を低くすることができる。
また、ジョブ管理サーバjmsは、ジョブのステージアウト予定時間を算出し、ステージアウト予定時間においてステージアウトが発生するファイルの数を特定し、ファイルの数に対応するメタデータサーバmdsの単位時間当たりの負荷量を取得してもよい。これにより、ジョブ管理サーバjmsは、ステージアウト予定時間が、ある程度の期間ある場合でも、メタデータサーバmdsの負荷を抑えることができる。
また、ジョブ管理サーバjmsは、ステージインに関して、ジョブのスケジューリング結果からジョブの実行開始時刻を求め、求めた時刻のメタデータサーバの負荷が高ければ、求めた時刻にステージングバッファサーバにステージインさせる。これにより、ジョブ管理サーバjmsは、メタデータサーバmdsが負荷集中する可能性が高い時刻がわかり、メタデータサーバmdsの負荷を抑えることができる。
また、メタデータサーバjmsは、ジョブに関するファイルに対するメタデータ処理を実行する際に、ジョブに関するファイルに対するメタデータ処理より前に実行すべきメタデータ処理の有無を確認する要求を、ジョブ管理サーバjmsに送信する。これにより、並列処理システム200は、依存関係があるメタデータ処理も、正しく処理することができる。
また、ジョブ管理サーバjmsは、複数のステージングバッファサーバstgから、各ステージングバッファサーバstgの負荷量に基づいて、ステージング処理を実行させるステージングバッファサーバstgを決定してもよい。これにより、ジョブ管理サーバjmsは、各ステージングバッファサーバstgの間で、負荷を分散することができる。
なお、本実施の形態で説明した並列処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本並列処理プログラムは、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本並列処理プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)プロセッサとメモリとを有する複数のノードを有する並列処理装置であって、
前記複数のノードのうちのジョブのスケジューリング処理を実行する特定のノードは、
前記複数のノードのうちのいずれかが第1のジョブを実行する際に、前記ジョブの実行時間を記録した実行履歴を参照して、前記第1のジョブの実行が終了する実行終了時刻を算出し、
前記複数のノードのうちのファイルのメタデータにアクセスするメタデータ処理を実行するメタデータ処理実行ノードの負荷を管理する負荷管理ノードから、算出した前記実行終了時刻における前記メタデータ処理実行ノードの負荷量を取得し、
取得した前記負荷量が所定の閾値以上である場合、2つの記憶領域の間でファイルを移動するステージングによって発生する前記メタデータ処理を実行するステージング実行ノードに、前記第1のジョブの実行結果を有するファイルに対するステージングによって発生する前記メタデータ処理を前記第1のジョブの実行終了時に実行させるスケジュールデータを生成する、
ことを特徴とする並列処理装置。
(付記2)前記負荷管理ノードは、前記メタデータ処理の対象となるファイルの数に対応する前記メタデータ処理実行ノードの負荷量を示す負荷情報を有しており、
前記特定のノードは、
複数のファイルの各ファイルに対してステージングを実行する予定時刻を示す予定情報を参照して、算出した前記実行終了時刻に実行されるステージングの対象となるファイルの数を特定し、
前記負荷管理ノードに、特定した前記ファイルの数を送信し、
前記負荷管理ノードは、
前記負荷情報を参照して得られた前記ファイルの数に対応する前記メタデータ処理実行ノードの負荷量を、前記特定のノードに送信し、
前記特定のノードは、
受信した前記メタデータ処理実行ノードの負荷量を、前記実行終了時刻における前記メタデータ処理実行ノードの負荷量として取得する、
ことを特徴とする付記1に記載の並列処理装置。
(付記3)前記実行履歴は、前記ジョブの実行を開始した時刻と、前記ジョブの実行結果を有するファイルに対するステージングを開始した実行開始時刻と、当該ファイルに対するステージングの実行終了時刻とを含み、
前記特定のノードは、
前記第1のジョブを実行する際に、前記実行履歴を参照して、前記第1のジョブの実行結果を有するファイルに対するステージングの実行開始時刻と、当該ステージングの実行終了時刻とを算出し、
前記予定情報を参照して、算出した前記実行開始時刻から前記実行終了時刻までの間に実行されるステージングの対象となるファイルの数を特定し、
前記負荷管理ノードに、特定した前記ファイルの数と、前記実行開始時刻から前記実行終了時刻までの時間の長さを示す情報とを送信し、
前記負荷管理ノードは、
前記負荷情報を参照して、前記時間の長さに基づき算出した前記ファイルの数に対応する前記メタデータ処理実行ノードの単位時間当たりの負荷量を、前記特定のノードに送信し、
前記特定のノードは、
取得した前記単位時間当たりの負荷量が所定の閾値以上である場合、前記スケジュールデータを生成する、
ことを特徴とする付記2に記載の並列処理装置。
(付記4)前記特定のノードは、
前記複数のノードのうちのいずれかが前記第1のジョブを実行する前に、前記ジョブがノードの使用を開始する時刻を示す情報に基づいて、前記第1のジョブの実行が開始する実行開始時刻を算出し、
前記負荷管理ノードから、算出した前記実行開始時刻における前記メタデータ処理実行ノードの負荷量を取得し、
取得した前記負荷量が所定の閾値以上である場合、前記ステージング実行ノードに、前記第1のジョブが参照するファイルまたは前記第1のジョブが更新するファイルに対するステージングによって発生する前記メタデータ処理を前記第1のジョブの実行開始時に実行させるスケジュールデータを生成する、
ことを特徴とする付記1〜3のいずれか一つに記載の並列処理装置。
(付記5)前記特定のノードは、ジョブに関するファイルに対する前記メタデータ処理を実行する順序を示す順序情報を有し、
前記メタデータ処理実行ノードは、
前記第1のジョブに関するファイルに対するメタデータ処理を実行する際に、前記第1のジョブに関するファイルに対するメタデータ処理より前に実行すべきメタデータ処理の有無を確認する要求を、前記特定のノードに送信し、
前記特定のノードは、
前記要求を受け付けた場合、前記順序情報を参照して、前記第1のジョブに関するファイルに対するメタデータ処理より前に実行すべきメタデータ処理がある場合、前記前に実行すべきメタデータ処理を特定する情報を、前記メタデータ処理実行ノードに送信し、
前記メタデータ処理実行ノードは、
前記前に実行すべきメタデータ処理を特定する情報を受け付けた場合、前記前に実行すべきメタデータ処理を、前記第1のジョブに関するファイルに対するメタデータ処理より前に実行する、
ことを特徴とする付記1〜4のいずれか一つに記載の並列処理装置。
(付記6)前記複数のノードは、前記ステージング実行ノードとなる複数の候補ノードを含み、
前記特定のノードは、
取得した前記負荷量が所定の閾値以上である場合、前記複数の候補ノードの各候補ノードの負荷を管理する負荷管理ノードから、算出した前記実行終了時刻における前記各候補ノードの負荷量を取得し、
取得した前記各候補ノードの負荷量に基づいて、前記複数の候補ノードから前記ステージング実行ノードを決定する、
ことを特徴とする付記1〜5のいずれか一つに記載の並列処理装置。
(付記7)プロセッサとメモリとを有する複数のノードを有する並列処理装置のステージアウト処理方法であって、
前記複数のノードのうちのジョブのスケジューリング処理を実行する特定のノードが、
前記複数のノードのうちのいずれかが第1のジョブを実行する際に、前記ジョブの実行時間を記録した実行履歴を参照して、前記第1のジョブの実行が終了する実行終了時刻を算出し、
前記複数のノードのうちのファイルのメタデータにアクセスするメタデータ処理を実行するメタデータ処理実行ノードの負荷を管理する負荷管理ノードから、算出した前記実行終了時刻における前記メタデータ処理実行ノードの負荷量を取得し、
取得した前記負荷量が所定の閾値以上である場合、2つの記憶領域の間でファイルを移動するステージングによって発生する前記メタデータ処理を実行するステージング実行ノードに、前記第1のジョブの実行結果を有するファイルに対するステージングによって発生する前記メタデータ処理を前記第1のジョブの実行終了時に実行させるスケジュールデータを生成する、
処理を実行することを特徴とするステージアウト処理方法。
(付記8)プロセッサとメモリとを有する複数のノードを有する並列処理装置のジョブ管理プログラムであって、
前記複数のノードのうちのジョブのスケジューリング処理を実行する特定のノードに、
前記複数のノードのうちのいずれかが第1のジョブを実行する際に、前記ジョブの実行時間を記録した実行履歴を参照して、前記第1のジョブの実行が終了する実行終了時刻を算出し、
前記複数のノードのうちのファイルのメタデータにアクセスするメタデータ処理を実行するメタデータ処理実行ノードの負荷を管理する負荷管理ノードから、算出した前記実行終了時刻における前記メタデータ処理実行ノードの負荷量を取得し、
取得した前記負荷量が所定の閾値以上である場合、2つの記憶領域の間でファイルを移動するステージングによって発生する前記メタデータ処理を実行するステージング実行ノードに、前記第1のジョブの実行結果を有するファイルに対するステージングによって発生する前記メタデータ処理を前記第1のジョブの実行終了時に実行させるスケジュールデータを生成する、
処理を実行させることを特徴とするジョブ管理プログラム。
101 並列処理装置
411 メタデータサーバ負荷状況
412 ステージングバッファ
413 ステージングバッファサーバ負荷状況
414 先行要求待ちメタデータ要求キュー
415 メタデータサーバ性能情報
501 メタデータサーバ負荷管理部
502 ステージングバッファサーバ負荷管理部
503 ステージング処理スケジューリング部
511 算出部
512 取得部
513 決定部
514 生成部
520 記憶部
521 ジョブごとの資源予約管理表
522 ステージング予定表
523 メタデータサーバ負荷管理表
524 ステージングバッファサーバ負荷管理表
525 過去に実行されたジョブ情報DB
526 ステージングでのメタデータ更新順序制約管理表

Claims (7)

  1. プロセッサとメモリとを有する複数のノードを有する並列処理装置であって、
    前記複数のノードのうちのジョブのスケジューリング処理を実行する特定のノードは、
    前記複数のノードのうちのいずれかが第1のジョブを実行する際に、前記ジョブの実行時間を記録した実行履歴を参照して、前記第1のジョブの実行が終了する実行終了時刻を算出し、
    前記複数のノードのうちのファイルのメタデータにアクセスするメタデータ処理を実行するメタデータ処理実行ノードの負荷を管理する負荷管理ノードから、算出した前記実行終了時刻における前記メタデータ処理実行ノードの負荷量を取得し、
    取得した前記負荷量が所定の閾値以上である場合、2つの記憶領域の間でファイルを移動するステージングによって発生する前記メタデータ処理を実行するステージング実行ノードに、前記第1のジョブの実行結果を有するファイルに対するステージングによって発生する前記メタデータ処理を前記第1のジョブの実行終了時に実行させるスケジュールデータを生成する、
    ことを特徴とする並列処理装置。
  2. 前記負荷管理ノードは、前記メタデータ処理の対象となるファイルの数に対応する前記メタデータ処理実行ノードの負荷量を示す負荷情報を有しており、
    前記特定のノードは、
    複数のファイルの各ファイルに対してステージングを実行する予定時刻を示す予定情報を参照して、算出した前記実行終了時刻に実行されるステージングの対象となるファイルの数を特定し、
    前記負荷管理ノードに、特定した前記ファイルの数を送信し、
    前記負荷管理ノードは、
    前記負荷情報を参照して得られた前記ファイルの数に対応する前記メタデータ処理実行ノードの負荷量を、前記特定のノードに送信し、
    前記特定のノードは、
    受信した前記メタデータ処理実行ノードの負荷量を、前記実行終了時刻における前記メタデータ処理実行ノードの負荷量として取得する、
    ことを特徴とする請求項1に記載の並列処理装置。
  3. 前記実行履歴は、前記ジョブの実行を開始した時刻と、前記ジョブの実行結果を有するファイルに対するステージングを開始した実行開始時刻と、当該ファイルに対するステージングの実行終了時刻とを含み、
    前記特定のノードは、
    前記第1のジョブを実行する際に、前記実行履歴を参照して、前記第1のジョブの実行結果を有するファイルに対するステージングの実行開始時刻と、当該ステージングの実行終了時刻とを算出し、
    前記予定情報を参照して、算出した前記実行開始時刻から前記実行終了時刻までの間に実行されるステージングの対象となるファイルの数を特定し、
    前記負荷管理ノードに、特定した前記ファイルの数と、前記実行開始時刻から前記実行終了時刻までの時間の長さを示す情報とを送信し、
    前記負荷管理ノードは、
    前記負荷情報を参照して、前記時間の長さに基づき算出した前記ファイルの数に対応する前記メタデータ処理実行ノードの単位時間当たりの負荷量を、前記特定のノードに送信し、
    前記特定のノードは、
    取得した前記単位時間当たりの負荷量が所定の閾値以上である場合、前記スケジュールデータを生成する、
    ことを特徴とする請求項2に記載の並列処理装置。
  4. 前記特定のノードは、
    前記複数のノードのうちのいずれかが前記第1のジョブを実行する前に、前記ジョブがノードの使用を開始する時刻を示す情報に基づいて、前記第1のジョブの実行が開始する実行開始時刻を算出し、
    前記負荷管理ノードから、算出した前記実行開始時刻における前記メタデータ処理実行ノードの負荷量を取得し、
    取得した前記負荷量が所定の閾値以上である場合、前記ステージング実行ノードに、前記第1のジョブが参照するファイルまたは前記第1のジョブが更新するファイルに対するステージングによって発生する前記メタデータ処理を前記第1のジョブの実行開始時に実行させるスケジュールデータを生成する、
    ことを特徴とする請求項1〜3のいずれか一つに記載の並列処理装置。
  5. 前記特定のノードは、ジョブに関するファイルに対する前記メタデータ処理を実行する順序を示す順序情報を有し、
    前記メタデータ処理実行ノードは、
    前記第1のジョブに関するファイルに対するメタデータ処理を実行する際に、前記第1のジョブに関するファイルに対するメタデータ処理より前に実行すべきメタデータ処理の有無を確認する要求を、前記特定のノードに送信し、
    前記特定のノードは、
    前記要求を受け付けた場合、前記順序情報を参照して、前記第1のジョブに関するファイルに対するメタデータ処理より前に実行すべきメタデータ処理がある場合、前記前に実行すべきメタデータ処理を特定する情報を、前記メタデータ処理実行ノードに送信し、
    前記メタデータ処理実行ノードは、
    前記前に実行すべきメタデータ処理を特定する情報を受け付けた場合、前記前に実行すべきメタデータ処理を、前記第1のジョブに関するファイルに対するメタデータ処理より前に実行する、
    ことを特徴とする請求項1〜4のいずれか一つに記載の並列処理装置。
  6. プロセッサとメモリとを有する複数のノードを有する並列処理装置のステージアウト処理方法であって、
    前記複数のノードのうちのジョブのスケジューリング処理を実行する特定のノードが、
    前記複数のノードのうちのいずれかが第1のジョブを実行する際に、前記ジョブの実行時間を記録した実行履歴を参照して、前記第1のジョブの実行が終了する実行終了時刻を算出し、
    前記複数のノードのうちのファイルのメタデータにアクセスするメタデータ処理を実行するメタデータ処理実行ノードの負荷を管理する負荷管理ノードから、算出した前記実行終了時刻における前記メタデータ処理実行ノードの負荷量を取得し、
    取得した前記負荷量が所定の閾値以上である場合、2つの記憶領域の間でファイルを移動するステージングによって発生する前記メタデータ処理を実行するステージング実行ノードに、前記第1のジョブの実行結果を有するファイルに対するステージングによって発生する前記メタデータ処理を前記第1のジョブの実行終了時に実行させるスケジュールデータを生成する、
    処理を実行することを特徴とするステージアウト処理方法。
  7. プロセッサとメモリとを有する複数のノードを有する並列処理装置のジョブ管理プログラムであって、
    前記複数のノードのうちのジョブのスケジューリング処理を実行する特定のノードに、
    前記複数のノードのうちのいずれかが第1のジョブを実行する際に、前記ジョブの実行時間を記録した実行履歴を参照して、前記第1のジョブの実行が終了する実行終了時刻を算出し、
    前記複数のノードのうちのファイルのメタデータにアクセスするメタデータ処理を実行するメタデータ処理実行ノードの負荷を管理する負荷管理ノードから、算出した前記実行終了時刻における前記メタデータ処理実行ノードの負荷量を取得し、
    取得した前記負荷量が所定の閾値以上である場合、2つの記憶領域の間でファイルを移動するステージングによって発生する前記メタデータ処理を実行するステージング実行ノードに、前記第1のジョブの実行結果を有するファイルに対するステージングによって発生する前記メタデータ処理を前記第1のジョブの実行終了時に実行させるスケジュールデータを生成する、
    処理を実行させることを特徴とするジョブ管理プログラム。
JP2017050025A 2017-03-15 2017-03-15 並列処理装置、ステージアウト処理方法、およびジョブ管理プログラム Active JP6819378B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017050025A JP6819378B2 (ja) 2017-03-15 2017-03-15 並列処理装置、ステージアウト処理方法、およびジョブ管理プログラム
US15/898,274 US10599472B2 (en) 2017-03-15 2018-02-16 Information processing apparatus, stage-out processing method and recording medium recording job management program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017050025A JP6819378B2 (ja) 2017-03-15 2017-03-15 並列処理装置、ステージアウト処理方法、およびジョブ管理プログラム

Publications (2)

Publication Number Publication Date
JP2018156142A JP2018156142A (ja) 2018-10-04
JP6819378B2 true JP6819378B2 (ja) 2021-01-27

Family

ID=63520071

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017050025A Active JP6819378B2 (ja) 2017-03-15 2017-03-15 並列処理装置、ステージアウト処理方法、およびジョブ管理プログラム

Country Status (2)

Country Link
US (1) US10599472B2 (ja)
JP (1) JP6819378B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10968610B2 (en) 2018-06-05 2021-04-06 Rose Elizabeth Modica Faucet insulation apparatus
CN110716808B (zh) * 2019-10-15 2023-10-31 腾讯科技(深圳)有限公司 业务处理方法、装置、计算机设备和存储介质
US11816132B2 (en) * 2021-04-20 2023-11-14 Vesoft Inc. Method and system for optimizing data storage of query statistics of graph database

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60157642A (ja) 1984-01-27 1985-08-17 Hitachi Ltd 自動フアイルステ−ジング方式
JPWO2006100752A1 (ja) 2005-03-22 2008-08-28 富士通株式会社 分散処理管理装置、分散処理管理方法、分散処理管理プログラム
JP2011186810A (ja) 2010-03-09 2011-09-22 Fujitsu Ltd 負荷分散装置、負荷分散方法及び負荷分散プログラム
US9038088B2 (en) * 2011-03-10 2015-05-19 Nec Laboratories America, Inc. Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases
US10108458B2 (en) * 2017-02-28 2018-10-23 Huawei Technologies Canada Co., Ltd. System and method for scheduling jobs in distributed datacenters

Also Published As

Publication number Publication date
JP2018156142A (ja) 2018-10-04
US10599472B2 (en) 2020-03-24
US20180267831A1 (en) 2018-09-20

Similar Documents

Publication Publication Date Title
US10929341B2 (en) Iterative object scanning for information lifecycle management
JP5191062B2 (ja) ストレージ制御システム、ストレージ制御システムに関する操作方法、データ・キャリア及びコンピュータ・プログラム
US10831387B1 (en) Snapshot reservations in a distributed storage system
KR101721892B1 (ko) 쿼리 관리
US8458712B2 (en) System and method for multi-level preemption scheduling in high performance processing
US20070024898A1 (en) System and method for executing job step, and computer product
US20070233837A1 (en) Job assigning device, job assigning method, and computer product
US20180144272A1 (en) Parallel processing apparatus and method of estimating power consumption of jobs
JP6819378B2 (ja) 並列処理装置、ステージアウト処理方法、およびジョブ管理プログラム
JP2011053995A (ja) データ処理制御方法および計算機システム
US10817380B2 (en) Implementing affinity and anti-affinity constraints in a bundled application
US10013288B2 (en) Data staging management system
US8443178B2 (en) Operating system image shrinking apparatus and method and computer readable tangible medium storing a program for operating system image shrinking
JP5637791B2 (ja) 計算機システム及びそのデータ処理方法
US20150154042A1 (en) Computer system and control method for virtual machine
JP2005338985A (ja) 記憶領域管理方法及びシステム
US10057338B2 (en) Data distribution apparatus, data distribution method, and data distribution program for parallel computing processing system
US20130332932A1 (en) Command control method
JP2017091330A (ja) 計算機システム及び計算機システムのタスク実行方法
JP6229733B2 (ja) 情報処理装置、方法、プログラム及び記録媒体
US20110191396A1 (en) Storage device and data storage control method
JP2007179100A (ja) ジョブキューシステムおよびジョブ管理方法、制御プログラム、可読記録媒体
WO2014038057A1 (ja) 計算機システム、データ管理方法及びプログラムを格納する記録媒体
JP2009037544A (ja) データベース処理方法、その実施システム及びプログラム
JP2005209055A (ja) ストレージの負荷分散方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201214

R150 Certificate of patent or registration of utility model

Ref document number: 6819378

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150