(57)【特許請求の範囲】
【請求項１】
複数のノードがネットワーク回線で接続された計算機システムにおいて、
前記計算機システムは、ジョブにノードを割り当てるスケジューリングを行うためのジョブサーバを備え、
前記ジョブサーバは、
ジョブで使用するデータファイルが格納されているディスク装置とのＩＯ経路の距離がより近いノードを割り当てるジョブスケジューラであって、割り当てノードと前記ジョブで使用するデータファイルが格納されているディスク装置のＩＯ経路の距離が所定の閾値を越えている場合、前記データファイルをＩＯ経路の距離がより近いディスク装置にコピーした後、ノードを割り当てるジョブスケジューラを備え、
前記ジョブスケジューラは、ノードを解放するとき、当該ノードを割り当てる際にＩＯ経路の距離が閾値を超えていたためにデータファイルをコピーしていた場合は、当該コピーしたデータファイルを削除することを特徴とする計算機システム。
【請求項２】
前記ジョブサーバは、前記計算機システム上に空きノードがまったくない場合は、ノードの確保要求を行わないことを特徴とする請求項１に記載の計算機システム。
【請求項３】
複数のノードがネットワーク回線で接続された計算機システムにおいて、前記計算機システムに含まれるジョブサーバがジョブのスケジューリングを行う方法であって、
前記ジョブサーバは、
ジョブにノードを割り当てるスケジューリングを行う際、ジョブで使用するデータファイルが格納されているディスク装置とのＩＯ経路の距離がより近いノードを割り当てること、
割り当てノードと前記ジョブで使用するデータファイルが格納されているディスク装置のＩＯ経路の距離が、所定の閾値を越えている場合、前記データファイルをＩＯ経路の距離がより近いディスク装置にコピーした後、ノードを割り当てること、及び
ノードを解放するとき、当該ノードを割り当てる際にＩＯ経路の距離が閾値を超えていたためにデータファイルをコピーしていた場合は、当該コピーしたデータファイルを削除することを特徴とする方法。
【請求項４】
前記ジョブサーバは、さらに、前記計算機システム上に空きノードがまったくない場合は、ノードの確保要求を行わないことを特徴とする請求項３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大規模なデータの高速処理に関する。
【背景技術】
【０００２】
従来、ＣＰＵの高速化やメモリの大容量化などにより、ＩＯデータ量は大規模化してきている。特に、ＨＰＣ（High Performance Computing）の分野では、大規模な環境下でのファイル共有が一般化するなど、ＩＯの重要性が増してきており、ジョブ管理の観点においても、ＩＯを考慮することが求められる。しかし、従来のジョブスケジューラは、管理の対象として、ＣＰＵ数やメモリ量などを主に対象としており、ＩＯ構成を考慮していないため、システムのＩＯ性能を効果的に引きだせていない。なお、特許文献１は、ジョブスケジューリング方法の一例である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２４２６１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
計算機システムは、各ノードの規模よりもノードの数を増加させることにより性能を向上させることが一般化している。このような計算機システムの構成として、ノードとディスク装置が接続されたスイッチが多数存在し、かつ、各ノードはそれらのスイッチを経由してそれぞれのディスク装置にアクセスする構成が考えられる。なお、スイッチはお互い、あるいはより上位のスイッチによって接続されている。このような計算機システムの構成において、ＩＯ性能に着目した場合、ジョブの入力ファイルは、ユーザのホーム領域など特定の領域に置かれることが多く、ファイル格納ディスク装置と同じスイッチに接続されているノードをジョブに割り当てることが望ましい。
【０００５】
しかし、従来の計算機システムにおいては、ジョブに空きノードを割り当てる際に、ＩＯ構成を反映させる手段がなく、ＩＯ性能に効果的なノードの割り当てができない。このため、特にＩＯ量の多いジョブの実行時間が延びるという問題が指摘されている。また、同じジョブを実行する場合であっても、ジョブが動作するノードにより実行時間にばらつくことがある。
【０００６】
本発明は、かかる実情に鑑み、ＨＰＣ（High Performance Computing）のような大規模なデータを高速に処理しなければならない分野において、ＩＯ量が多く、特に大規模なファイル共有を行うような場合に利用可能なジョブスケジューリングを提供しようとするものである。
【課題を解決するための手段】
【０００７】
本発明による計算機システムの一つは、多数のノードがネットワーク回線で接続された計算機システムにおいて、この計算機システムで実行されるジョブのスケジューリングに際し、システムのＩＯ構成を考慮し、ジョブで使用するデータファイル（ジョブの入力ファイル）が格納されているディスク装置（以下「ファイル格納ディスク装置」という。）とＩＯ経路の距離的に近いノードをジョブに割り当て、ＩＯ性能を確保することを特徴とする。また、距離の遠いノードしか確保できない場合には、ジョブの入力ファイルを、確保したノードに近いディスク装置に複写することでＩＯ性能を確保する機能を有することを特徴とする。
【発明の効果】
【０００８】
本発明のジョブスケジューリングによれば、第１に、ジョブの実行時間を短縮できるという効果を奏し得る。これは、ディスク装置に近い距離のノードからファイルアクセスを行うことでＩＯ時間が短縮されるためである。
【０００９】
第２に、ジョブの実行時間のばらつきが小さくなるという効果を奏し得る。従来、ジョブの実行時に割り当たるノードはＩＯ構成とは無関係であり、割り当たったノードとファイル格納ディスク装置の距離により、同じジョブを実行しても実行時間にばらつきがあった。ＩＯ構成に合わせたノードの割り当てによりこれが改善できる。特に、本発明では、距離が遠い場合には、より近いディスクにファイルをコピーするため、距離が最も遠いノードを割り当てるケースにおいて、従来方式にくらべ大きな効果がみられる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係る計算機システムの概略構成を示すブロック図である。
【図２】本実施例におけるジョブサーバ１の概略構成を示すブロック図である。
【図３】本実施例による計算機システムの装置構成の一例とその効果を説明するための図である。
【図４】本実施例において、ノードを確保する処理の流れを示すフローチャートである。
【図５】本実施例において、スイッチから一番近い距離の空きノードを確保する処理の流れを示すフローチャートである。
【図６】本実施例において、ノードを解放する処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について図面を参照しつつ詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。
【００１２】
図１は、本発明の一実施形態に係る計算機システムの概略構成を示すブロック図である。同図に示すように、本実施例では、ジョブサーバ１と、ファイルサーバ４と、第１の同一スイッチ接続装置３１と、第２の同一スイッチ接続装置３２とがネットワーク回線２により相互に接続されている。第１の同一スイッチ接続装置３１と第２の同一スイッチ接続装置３２はそれぞれ、スイッチ３１１，３２１に接続されている装置群であり、それぞれ、ノードとディスク装置およびディスク装置上に作成されたファイルシステムを含む。ファイルシステムはすべてのノードで共有されており、ファイルサーバ４がその管理を行う。ファイルシステムは同じスイッチに接続されている複数のディスク装置で構成することができるが、異なるスイッチに接続されているディスク装置で構成されることはない。
【００１３】
本実施例は、同一スイッチ接続装置がネットワーク回線２により多数接続されている構成を前提としている。各ノードは、自身が含まれる同一スイッチ接続装置内のディスク装置だけでなく、他の同一スイッチ接続装置内のディスク装置へもネットワーク回線２を通してアクセス可能であり、ファイルサーバ４を経由せずにＩＯデータにアクセスする。ジョブサーバ１と各ノードは同一のファイルに対しては同じパス名でアクセスすることが可能である。また、オペレーティングシステムはＵＮＩＸ（登録商標）やＬｉｎｕｘなどを前提とする。
【００１４】
図２は、本実施例におけるジョブサーバ１の概略構成を示すブロック図である。同図に示すとおり、ユーザが投入したジョブの制御を行うジョブスケジューラ１１は、ジョブサーバ１で動作する。ジョブスケジューラ１１は、システム構成情報ファイル１０１と、システム構成情報登録手段１０２と、ノード確保／解放手段１０３と、ファイルパス情報取得手段１０４と、ファイルシステム特定手段１０５と、スイッチ特定手段１０６と、ファイルシステム／スイッチ対応表１０７と、ネットワーク構成情報１０８と、空きノード選定手段１０９と、スイッチ配下ノード情報１１０と、ノード情報変更手段１１１と、ファイル操作手段１１２と、ジョブスケジューラ標準機能１１３を含んで構成される。
【００１５】
システム構成情報ファイル１０１は、ファイル格納ディスク装置とノード間の距離の閾値と、スイッチ毎にそのスイッチに接続されているノードおよび配下のファイルシステムの一覧と、ネットワークの構成といったシステム構成にかかわる情報を記述したファイルである。ジョブサーバ１に置かれ、システム管理者によって作成、変更される。
【００１６】
システム構成情報登録手段１０２は、ジョブスケジューラ１１起動時に、システム構成情報ファイル１０１を読み込んで、ファイル格納ディスク装置とノード間の距離の閾値の取り込みと、ファイルシステム/スイッチ対応表１０７、スイッチ配下ノード情報１１０、ネットワーク構成情報１０８の作成を行う。
【００１７】
ノード確保／解放手段１０３は、ジョブへのノードの割り当ておよび解放に関する処理の全体的な制御を行う。ファイルパス情報取得手段１０４は、ユーザによって指定されるジョブの入力ファイルのパス名を取得する。ファイルシステム特定手段１０５は、ファイルのパス名からそのファイルが存在するファイルシステムを特定する。
【００１８】
スイッチ特定手段１０６は、ファイルシステム／スイッチ対応表１０７を参照して、ファイル格納ディスク装置が接続されているスイッチを特定する。ファイルシステムは複数のスイッチに接続されているディスク装置から構成されることはないため、ファイルシステムとスイッチの対応がわかれば、ファイル格納ディスク装置が接続されているスイッチが特定できる。
【００１９】
ファイルシステム／スイッチ対応表１０７は、ディスク装置とスイッチの対応を表したもので、ファイル格納ディスク装置がどのスイッチに接続されているかの特定に使用する。ネットワーク構成情報１０８は、スイッチ同士の接続構成の情報であり、この情報を参照することにより、スイッチ間の距離がわかる。
【００２０】
空きノード選定手段１０９は、ノード確保／解放手段１０３から呼び出され、ファイル格納ディスク装置に、より近い距離の空きノードの情報（空きノード、空きノードが接続されているスイッチ、距離）を返却する。ノード確保／解放手段１０３は、この距離によってファイルのコピーを行うかを判断する。
【００２１】
スイッチ配下ノード情報１１０は、各スイッチに接続されているノードの一覧とそのノードの状態（空き、使用中、故障中など）を含む情報である。ノード情報変更手段１１１は、ノードの確保／解放時にスイッチ配下ノード情報１１０に含まれるノードの状態を更新するために使用する。
【００２２】
ファイル操作手段１１２は、確保したノードとファイル格納ディスク装置の距離が閾値以上の場合に、ノード確保／解放手段１０３から呼び出され、ジョブの入力ファイルを、確保したノードが接続されているスイッチ配下のディスク装置にコピーする。これにより、ジョブが動作するノードと距離の近いファイルＩＯが可能となる。また、ノード解放時にはコピーしたファイルの削除を行う。ジョブスケジューラ標準機能１１３は、ユーザが投入したジョブのキューイングやジョブが要求した資源に基づく順序制御、ジョブの起動／終了、状態監視などといった、スケジューラが通常持っている一般的な機能を指すものである。
【００２３】
次に、本実施例において、ジョブにノードを割り当てるときの動作について説明する。
【００２４】
図４は、本実施例において、ノードを確保する処理の流れを示すフローチャートである。ノード確保／解放手段１０３は、ジョブスケジューラ標準機能１１３からのノード確保の要求を受け、ファイルパス情報取得手段１０４により、ユーザより指定されるジョブの入力ファイルのパス名を取得する（Ｓ４１）。ファイルのパス名が与えられれば、オペレーティングシステムの一般的な機能を使用して、そのファイルが存在するファイルシステムを得ることができる。ノード確保／解放手段１０３は、ファイルシステム特定手段１０５を使用してファイルのパス名から、そのファイルが存在するファイルシステムを特定する（Ｓ４２）。続いて、スイッチ特定手段１０６を使用して、ファイルシステム／スイッチ対応表１０７をもとに、ファイルシステムがあるスイッチを特定し（Ｓ４３）、空きノード選定手段１０９により、スイッチから一番近い距離のノードの確保を行う（Ｓ４４）。次に、ステップＳ４４で確保したノードと、ファイル格納ディスク装置との距離があらかじめ設定された閾値以上であるかチェックを行い（Ｓ４５）、閾値以上の場合は、ファイル操作手段１１２により、確保したノードと同じスイッチ配下のディスク装置にジョブの入力ファイルをコピーする（Ｓ４６）。ジョブはこのコピー後のファイルをアクセスする。次に、確保したノードについて、ノード情報変更手段１１１を使用して、スイッチ配下ノード情報１１０にある、ノードの状態を“空き”から“使用中”に更新する（Ｓ４７）。
【００２５】
図５は、本実施例において、スイッチから一番近い距離の空きノードを確保する処理の流れを示すフローチャートである。同図に示すように、まず、空きノード選定手段１０９は、最初に空きノードを探す対象とするスイッチおよびファイル格納ディスク装置との距離の初期設定を行う（Ｓ５１）。対象とするスイッチは図４のステップＳ４３で特定したスイッチであり、距離はそのスイッチに接続されているノードとの距離である１とする。次に、対象スイッチに空きノードがあるかをスイッチ配下ノード情報１１０でチェックし（Ｓ５２）、空きがあれば空きノードを確保し(Ｓ５４)、空きノードがなければネットワーク構成情報１０８をもとに次に近い距離のスイッチを対象に設定して、その分の距離を加算し（Ｓ５３）、空きノードが確保できるまでステップＳ５３以降の処理を繰り返す。なお、計算機システム上に空きノードがまったくない場合は、ジョブスケジューラ標準機能１１３からノードの確保要求が行われることはない。
【００２６】
図６は、本実施例において、ノードを解放する処理の流れを示すフローチャートである。同図に示すように、ジョブスケジューラ標準機能１１３からの要求を受け、ノード確保／解放手段１０３は、解放するノードについて、ノード情報変更手段１１１を使用して、スイッチ配下ノード情報１１０にあるノードの状態を“使用中”から“空き”に更新する（Ｓ６１）。次に、ノード確保時に距離が閾値以上であったためにファイルをコピーしていた場合は、ファイル操作手段１１２により、コピーしたジョブの入力ファイルを削除する（ステップＳ６２）。
【００２７】
図３は、本実施例による計算機システムの装置構成の一例とその効果を説明するための図である。ジョブスケジューラが空きノードを確保する処理において、ジョブの入力ファイルのパス名より、ファイル格納ディスク装置が接続されているスイッチを特定し、ファイル格納ディスク装置により近いノードを確保できるようにする。ディスク装置とノードの距離は、経由するスイッチの台数で判断する。例えば、図３のような構成において、ジョブの入力ファイルがディスク装置＃１に格納されているとする。この場合、ディスク装置＃１に最も近いのは、同じスイッチ＃１に接続されているノード＃１−１とノード＃１−２であり、スイッチを１台経由することから距離を１と考える。同様にスイッチ＃２に接続されているノード＃２−１、ノード＃２−２はスイッチを３台経由することから、ディスク装置＃１からの距離は３となる。この距離の小さいノードを近いノードと判断する。
【００２８】
ジョブスケジューラは、ファイルシステムとスイッチの対応表から、ファイル格納ディスク装置が接続されているスイッチを特定し、そのスイッチに接続されている空きノードを割り当てる。スイッチに接続されているノードに空きがない場合は、ネットワーク構成の情報をもとに、次に距離の近いスイッチに接続されているノードに空きがあるかを確認する。これを空きノードが確保できるまで繰り返すことでより近いノードの割り当てを行う。
【００２９】
しかし、このようにして空きノードを割り当てた場合でも、ファイル格納ディスク装置に近いノードに空きがなければ、結果としてファイル格納ディスク装置との距離が遠いノードが割りあたる場合が発生し得る。このようなケースにおいては、ジョブのＩＯ性能が低下したり、経由するスイッチが多くなることで、ジョブ以外の外的な要因の影響を受けやすくなってしまう。そこで、割り当てるノードとファイル格納ディスク装置の距離に閾値を設け、この閾値以上となる場合にはジョブの入力ファイルを割り当てノードと同じスイッチに接続されているディスク装置上にコピーし、そのコピーしたファイルを入力ファイルとすることで上記問題を解決する。
【００３０】
なお、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において、他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。例えば、上述の各処理ステップは処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【００３１】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限
られない。
【００３２】
（付記１）複数のノードがネットワーク回線で接続された計算機システムにおいて、前記計算機システムは、ジョブにノードを割り当てるスケジューリングを行うためのジョブサーバを備え、前記ジョブサーバは、ジョブで使用するデータファイルが格納されているディスク装置とのＩＯ経路の距離がより近いノードを割り当てることを特徴とする計算機システム。
【００３３】
（付記２）前記ジョブサーバは、割り当てノードと前記ジョブで使用するデータファイルが格納されているディスク装置のＩＯ経路の距離が所定の閾値を越えている場合、前記データファイルをＩＯ経路の距離がより近いディスク装置にコピーした後、ノードを割り当てることを特徴とする付記１に記載の計算機システム。
【００３４】
（付記３）複数のノードがネットワーク回線で接続された計算機システムにおいて、前記計算機システムに含まれるジョブサーバがジョブのスケジューリングを行う方法であって、前記ジョブサーバは、ジョブにノードを割り当てるスケジューリングを行う際、ジョブで使用するデータファイルが格納されているディスク装置とのＩＯ経路の距離がより近いノードを割り当てることを特徴とする方法。
【００３５】
（付記４）前記ジョブサーバは、割り当てノードと前記ジョブで使用するデータファイルが格納されているディスク装置のＩＯ経路の距離が、所定の閾値を越えている場合、前記データファイルをＩＯ経路の距離がより近いディスク装置にコピーした後、ノードを割り当てることを特徴とする付記３に記載の方法。
【符号の説明】
【００３６】
１  ジョブサーバ、２  ネットワーク回線、３１，３２  同一スイッチ接続装置、３１１，３２１  スイッチ、４  ファイルサーバ、１１  ジョブスケジューラ、１０１  システム構成情報ファイル、１０２  システム構成情報登録手段、１０３  ノード確保／解放手段、１０４  ファイルパス情報取得手段、１０５  ファイルシステム特定手段、１０６  スイッチ特定手段、１０７  ファイルシステム／スイッチ対応表、１０８  ネットワーク構成情報、１０９  空きノード選定手段、１１０  スイッチ配下ノード情報、１１１  ノード情報変更手段、１１２  ファイル操作手段、１１３  ジョブスケジューラ標準機能
【図３】
0005696891.tif 000002
【図４】
0005696891.tif 000003
【図５】
0005696891.tif 000004
【図６】
0005696891.tif 000005
【図１】
0005696891.tif 000006
【図２】
0005696891.tif 000007