説明

IO構成によるジョブスケジューリング方法

【課題】大規模なデータを高速に処理しなければならない分野において、IO量が多く、特に大規模なファイル共有を行うような場合に利用可能なジョブスケジューリングを提供する。
【解決手段】多数のノードがネットワーク回線で接続された計算機システムにおいて、この計算機システムで実行されるジョブのスケジューリングに際し、システムのIO構成を考慮し、ジョブで使用するデータファイルが格納されているディスク装置とIO経路の距離的に近いノードをジョブに割り当て、IO性能を確保する。また、距離の遠いノードしか確保できない場合には、ジョブの入力ファイルを、確保したノードに近いディスク装置に複写することでIO性能を確保する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、大規模なデータの高速処理に関する。
【背景技術】
【0002】
従来、CPUの高速化やメモリの大容量化などにより、IOデータ量は大規模化してきている。特に、HPC(High Performance Computing)の分野では、大規模な環境下でのファイル共有が一般化するなど、IOの重要性が増してきており、ジョブ管理の観点においても、IOを考慮することが求められる。しかし、従来のジョブスケジューラは、管理の対象として、CPU数やメモリ量などを主に対象としており、IO構成を考慮していないため、システムのIO性能を効果的に引きだせていない。なお、特許文献1は、ジョブスケジューリング方法の一例である。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−242614号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
計算機システムは、各ノードの規模よりもノードの数を増加させることにより性能を向上させることが一般化している。このような計算機システムの構成として、ノードとディスク装置が接続されたスイッチが多数存在し、かつ、各ノードはそれらのスイッチを経由してそれぞれのディスク装置にアクセスする構成が考えられる。なお、スイッチはお互い、あるいはより上位のスイッチによって接続されている。このような計算機システムの構成において、IO性能に着目した場合、ジョブの入力ファイルは、ユーザのホーム領域など特定の領域に置かれることが多く、ファイル格納ディスク装置と同じスイッチに接続されているノードをジョブに割り当てることが望ましい。
【0005】
しかし、従来の計算機システムにおいては、ジョブに空きノードを割り当てる際に、IO構成を反映させる手段がなく、IO性能に効果的なノードの割り当てができない。このため、特にIO量の多いジョブの実行時間が延びるという問題が指摘されている。また、同じジョブを実行する場合であっても、ジョブが動作するノードにより実行時間にばらつくことがある。
【0006】
本発明は、かかる実情に鑑み、HPC(High Performance Computing)のような大規模なデータを高速に処理しなければならない分野において、IO量が多く、特に大規模なファイル共有を行うような場合に利用可能なジョブスケジューリングを提供しようとするものである。
【課題を解決するための手段】
【0007】
本発明による計算機システムの一つは、多数のノードがネットワーク回線で接続された計算機システムにおいて、この計算機システムで実行されるジョブのスケジューリングに際し、システムのIO構成を考慮し、ジョブで使用するデータファイル(ジョブの入力ファイル)が格納されているディスク装置(以下「ファイル格納ディスク装置」という。)とIO経路の距離的に近いノードをジョブに割り当て、IO性能を確保することを特徴とする。また、距離の遠いノードしか確保できない場合には、ジョブの入力ファイルを、確保したノードに近いディスク装置に複写することでIO性能を確保する機能を有することを特徴とする。
【発明の効果】
【0008】
本発明のジョブスケジューリングによれば、第1に、ジョブの実行時間を短縮できるという効果を奏し得る。これは、ディスク装置に近い距離のノードからファイルアクセスを行うことでIO時間が短縮されるためである。
【0009】
第2に、ジョブの実行時間のばらつきが小さくなるという効果を奏し得る。従来、ジョブの実行時に割り当たるノードはIO構成とは無関係であり、割り当たったノードとファイル格納ディスク装置の距離により、同じジョブを実行しても実行時間にばらつきがあった。IO構成に合わせたノードの割り当てによりこれが改善できる。特に、本発明では、距離が遠い場合には、より近いディスクにファイルをコピーするため、距離が最も遠いノードを割り当てるケースにおいて、従来方式にくらべ大きな効果がみられる。
【図面の簡単な説明】
【0010】
【図1】本発明の一実施形態に係る計算機システムの概略構成を示すブロック図である。
【図2】本実施例におけるジョブサーバ1の概略構成を示すブロック図である。
【図3】本実施例による計算機システムの装置構成の一例とその効果を説明するための図である。
【図4】本実施例において、ノードを確保する処理の流れを示すフローチャートである。
【図5】本実施例において、スイッチから一番近い距離の空きノードを確保する処理の流れを示すフローチャートである。
【図6】本実施例において、ノードを解放する処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について図面を参照しつつ詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。
【0012】
図1は、本発明の一実施形態に係る計算機システムの概略構成を示すブロック図である。同図に示すように、本実施例では、ジョブサーバ1と、ファイルサーバ4と、第1の同一スイッチ接続装置31と、第2の同一スイッチ接続装置32とがネットワーク回線2により相互に接続されている。第1の同一スイッチ接続装置31と第2の同一スイッチ接続装置32はそれぞれ、スイッチ311,321に接続されている装置群であり、それぞれ、ノードとディスク装置およびディスク装置上に作成されたファイルシステムを含む。ファイルシステムはすべてのノードで共有されており、ファイルサーバ4がその管理を行う。ファイルシステムは同じスイッチに接続されている複数のディスク装置で構成することができるが、異なるスイッチに接続されているディスク装置で構成されることはない。
【0013】
本実施例は、同一スイッチ接続装置がネットワーク回線2により多数接続されている構成を前提としている。各ノードは、自身が含まれる同一スイッチ接続装置内のディスク装置だけでなく、他の同一スイッチ接続装置内のディスク装置へもネットワーク回線2を通してアクセス可能であり、ファイルサーバ4を経由せずにIOデータにアクセスする。ジョブサーバ1と各ノードは同一のファイルに対しては同じパス名でアクセスすることが可能である。また、オペレーティングシステムはUNIX(登録商標)やLinuxなどを前提とする。
【0014】
図2は、本実施例におけるジョブサーバ1の概略構成を示すブロック図である。同図に示すとおり、ユーザが投入したジョブの制御を行うジョブスケジューラ11は、ジョブサーバ1で動作する。ジョブスケジューラ11は、システム構成情報ファイル101と、システム構成情報登録手段102と、ノード確保/解放手段103と、ファイルパス情報取得手段104と、ファイルシステム特定手段105と、スイッチ特定手段106と、ファイルシステム/スイッチ対応表107と、ネットワーク構成情報108と、空きノード選定手段109と、スイッチ配下ノード情報110と、ノード情報変更手段111と、ファイル操作手段112と、ジョブスケジューラ標準機能113を含んで構成される。
【0015】
システム構成情報ファイル101は、ファイル格納ディスク装置とノード間の距離の閾値と、スイッチ毎にそのスイッチに接続されているノードおよび配下のファイルシステムの一覧と、ネットワークの構成といったシステム構成にかかわる情報を記述したファイルである。ジョブサーバ1に置かれ、システム管理者によって作成、変更される。
【0016】
システム構成情報登録手段102は、ジョブスケジューラ11起動時に、システム構成情報ファイル101を読み込んで、ファイル格納ディスク装置とノード間の距離の閾値の取り込みと、ファイルシステム/スイッチ対応表107、スイッチ配下ノード情報110、ネットワーク構成情報108の作成を行う。
【0017】
ノード確保/解放手段103は、ジョブへのノードの割り当ておよび解放に関する処理の全体的な制御を行う。ファイルパス情報取得手段104は、ユーザによって指定されるジョブの入力ファイルのパス名を取得する。ファイルシステム特定手段105は、ファイルのパス名からそのファイルが存在するファイルシステムを特定する。
【0018】
スイッチ特定手段106は、ファイルシステム/スイッチ対応表107を参照して、ファイル格納ディスク装置が接続されているスイッチを特定する。ファイルシステムは複数のスイッチに接続されているディスク装置から構成されることはないため、ファイルシステムとスイッチの対応がわかれば、ファイル格納ディスク装置が接続されているスイッチが特定できる。
【0019】
ファイルシステム/スイッチ対応表107は、ディスク装置とスイッチの対応を表したもので、ファイル格納ディスク装置がどのスイッチに接続されているかの特定に使用する。ネットワーク構成情報108は、スイッチ同士の接続構成の情報であり、この情報を参照することにより、スイッチ間の距離がわかる。
【0020】
空きノード選定手段109は、ノード確保/解放手段103から呼び出され、ファイル格納ディスク装置に、より近い距離の空きノードの情報(空きノード、空きノードが接続されているスイッチ、距離)を返却する。ノード確保/解放手段103は、この距離によってファイルのコピーを行うかを判断する。
【0021】
スイッチ配下ノード情報110は、各スイッチに接続されているノードの一覧とそのノードの状態(空き、使用中、故障中など)を含む情報である。ノード情報変更手段111は、ノードの確保/解放時にスイッチ配下ノード情報110に含まれるノードの状態を更新するために使用する。
【0022】
ファイル操作手段112は、確保したノードとファイル格納ディスク装置の距離が閾値以上の場合に、ノード確保/解放手段103から呼び出され、ジョブの入力ファイルを、確保したノードが接続されているスイッチ配下のディスク装置にコピーする。これにより、ジョブが動作するノードと距離の近いファイルIOが可能となる。また、ノード解放時にはコピーしたファイルの削除を行う。ジョブスケジューラ標準機能113は、ユーザが投入したジョブのキューイングやジョブが要求した資源に基づく順序制御、ジョブの起動/終了、状態監視などといった、スケジューラが通常持っている一般的な機能を指すものである。
【0023】
次に、本実施例において、ジョブにノードを割り当てるときの動作について説明する。
【0024】
図4は、本実施例において、ノードを確保する処理の流れを示すフローチャートである。ノード確保/解放手段103は、ジョブスケジューラ標準機能113からのノード確保の要求を受け、ファイルパス情報取得手段104により、ユーザより指定されるジョブの入力ファイルのパス名を取得する(S41)。ファイルのパス名が与えられれば、オペレーティングシステムの一般的な機能を使用して、そのファイルが存在するファイルシステムを得ることができる。ノード確保/解放手段103は、ファイルシステム特定手段105を使用してファイルのパス名から、そのファイルが存在するファイルシステムを特定する(S42)。続いて、スイッチ特定手段106を使用して、ファイルシステム/スイッチ対応表107をもとに、ファイルシステムがあるスイッチを特定し(S43)、空きノード選定手段109により、スイッチから一番近い距離のノードの確保を行う(S44)。次に、ステップS44で確保したノードと、ファイル格納ディスク装置との距離があらかじめ設定された閾値以上であるかチェックを行い(S45)、閾値以上の場合は、ファイル操作手段112により、確保したノードと同じスイッチ配下のディスク装置にジョブの入力ファイルをコピーする(S46)。ジョブはこのコピー後のファイルをアクセスする。次に、確保したノードについて、ノード情報変更手段111を使用して、スイッチ配下ノード情報110にある、ノードの状態を“空き”から“使用中”に更新する(S47)。
【0025】
図5は、本実施例において、スイッチから一番近い距離の空きノードを確保する処理の流れを示すフローチャートである。同図に示すように、まず、空きノード選定手段109は、最初に空きノードを探す対象とするスイッチおよびファイル格納ディスク装置との距離の初期設定を行う(S51)。対象とするスイッチは図4のステップS43で特定したスイッチであり、距離はそのスイッチに接続されているノードとの距離である1とする。次に、対象スイッチに空きノードがあるかをスイッチ配下ノード情報110でチェックし(S52)、空きがあれば空きノードを確保し(S54)、空きノードがなければネットワーク構成情報108をもとに次に近い距離のスイッチを対象に設定して、その分の距離を加算し(S53)、空きノードが確保できるまでステップS53以降の処理を繰り返す。なお、計算機システム上に空きノードがまったくない場合は、ジョブスケジューラ標準機能113からノードの確保要求が行われることはない。
【0026】
図6は、本実施例において、ノードを解放する処理の流れを示すフローチャートである。同図に示すように、ジョブスケジューラ標準機能113からの要求を受け、ノード確保/解放手段103は、解放するノードについて、ノード情報変更手段111を使用して、スイッチ配下ノード情報110にあるノードの状態を“使用中”から“空き”に更新する(S61)。次に、ノード確保時に距離が閾値以上であったためにファイルをコピーしていた場合は、ファイル操作手段112により、コピーしたジョブの入力ファイルを削除する(ステップS62)。
【0027】
図3は、本実施例による計算機システムの装置構成の一例とその効果を説明するための図である。ジョブスケジューラが空きノードを確保する処理において、ジョブの入力ファイルのパス名より、ファイル格納ディスク装置が接続されているスイッチを特定し、ファイル格納ディスク装置により近いノードを確保できるようにする。ディスク装置とノードの距離は、経由するスイッチの台数で判断する。例えば、図3のような構成において、ジョブの入力ファイルがディスク装置#1に格納されているとする。この場合、ディスク装置#1に最も近いのは、同じスイッチ#1に接続されているノード#1−1とノード#1−2であり、スイッチを1台経由することから距離を1と考える。同様にスイッチ#2に接続されているノード#2−1、ノード#2−2はスイッチを3台経由することから、ディスク装置#1からの距離は3となる。この距離の小さいノードを近いノードと判断する。
【0028】
ジョブスケジューラは、ファイルシステムとスイッチの対応表から、ファイル格納ディスク装置が接続されているスイッチを特定し、そのスイッチに接続されている空きノードを割り当てる。スイッチに接続されているノードに空きがない場合は、ネットワーク構成の情報をもとに、次に距離の近いスイッチに接続されているノードに空きがあるかを確認する。これを空きノードが確保できるまで繰り返すことでより近いノードの割り当てを行う。
【0029】
しかし、このようにして空きノードを割り当てた場合でも、ファイル格納ディスク装置に近いノードに空きがなければ、結果としてファイル格納ディスク装置との距離が遠いノードが割りあたる場合が発生し得る。このようなケースにおいては、ジョブのIO性能が低下したり、経由するスイッチが多くなることで、ジョブ以外の外的な要因の影響を受けやすくなってしまう。そこで、割り当てるノードとファイル格納ディスク装置の距離に閾値を設け、この閾値以上となる場合にはジョブの入力ファイルを割り当てノードと同じスイッチに接続されているディスク装置上にコピーし、そのコピーしたファイルを入力ファイルとすることで上記問題を解決する。
【0030】
なお、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、上述の各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【0031】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限
られない。
【0032】
(付記1)複数のノードがネットワーク回線で接続された計算機システムにおいて、前記計算機システムは、ジョブにノードを割り当てるスケジューリングを行うためのジョブサーバを備え、前記ジョブサーバは、ジョブで使用するデータファイルが格納されているディスク装置とのIO経路の距離がより近いノードを割り当てることを特徴とする計算機システム。
【0033】
(付記2)前記ジョブサーバは、割り当てノードと前記ジョブで使用するデータファイルが格納されているディスク装置のIO経路の距離が所定の閾値を越えている場合、前記データファイルをIO経路の距離がより近いディスク装置にコピーした後、ノードを割り当てることを特徴とする付記1に記載の計算機システム。
【0034】
(付記3)複数のノードがネットワーク回線で接続された計算機システムにおいて、前記計算機システムに含まれるジョブサーバがジョブのスケジューリングを行う方法であって、前記ジョブサーバは、ジョブにノードを割り当てるスケジューリングを行う際、ジョブで使用するデータファイルが格納されているディスク装置とのIO経路の距離がより近いノードを割り当てることを特徴とする方法。
【0035】
(付記4)前記ジョブサーバは、割り当てノードと前記ジョブで使用するデータファイルが格納されているディスク装置のIO経路の距離が、所定の閾値を越えている場合、前記データファイルをIO経路の距離がより近いディスク装置にコピーした後、ノードを割り当てることを特徴とする付記3に記載の方法。
【符号の説明】
【0036】
1 ジョブサーバ、2 ネットワーク回線、31,32 同一スイッチ接続装置、311,321 スイッチ、4 ファイルサーバ、11 ジョブスケジューラ、101 システム構成情報ファイル、102 システム構成情報登録手段、103 ノード確保/解放手段、104 ファイルパス情報取得手段、105 ファイルシステム特定手段、106 スイッチ特定手段、107 ファイルシステム/スイッチ対応表、108 ネットワーク構成情報、109 空きノード選定手段、110 スイッチ配下ノード情報、111 ノード情報変更手段、112 ファイル操作手段、113 ジョブスケジューラ標準機能

【特許請求の範囲】
【請求項1】
複数のノードがネットワーク回線で接続された計算機システムにおいて、
前記計算機システムは、ジョブにノードを割り当てるスケジューリングを行うためのジョブサーバを備え、
前記ジョブサーバは、ジョブで使用するデータファイルが格納されているディスク装置とのIO経路の距離がより近いノードを割り当てることを特徴とする計算機システム。
【請求項2】
前記ジョブサーバは、割り当てノードと前記ジョブで使用するデータファイルが格納されているディスク装置のIO経路の距離が所定の閾値を越えている場合、前記データファイルをIO経路の距離がより近いディスク装置にコピーした後、ノードを割り当てることを特徴とする請求項1に記載の計算機システム。
【請求項3】
複数のノードがネットワーク回線で接続された計算機システムにおいて、前記計算機システムに含まれるジョブサーバがジョブのスケジューリングを行う方法であって、
前記ジョブサーバは、ジョブにノードを割り当てるスケジューリングを行う際、ジョブで使用するデータファイルが格納されているディスク装置とのIO経路の距離がより近いノードを割り当てることを特徴とする方法。
【請求項4】
前記ジョブサーバは、割り当てノードと前記ジョブで使用するデータファイルが格納されているディスク装置のIO経路の距離が、所定の閾値を越えている場合、前記データファイルをIO経路の距離がより近いディスク装置にコピーした後、ノードを割り当てることを特徴とする請求項3に記載の方法。

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2012−215936(P2012−215936A)
【公開日】平成24年11月8日(2012.11.8)
【国際特許分類】
【出願番号】特願2011−78989(P2011−78989)
【出願日】平成23年3月31日(2011.3.31)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】