(57)【要約】      （修正有）【課題】パーティション分割をする際に、管理ノードを容易に再配置する。【解決手段】複数の計算ノード５１Ａ〜Ｄ、５２Ａ〜Ｄと、管理対象の計算ノードの計算量を記憶する記憶部を有するとともにツリー状に接続された複数の管理ノード３１Ａ〜３１Ｅ、３２Ａ〜３２Ｉと、複数の管理ノードの接続を管理する管理装置１とを含む情報処理システムにおいて、管理装置が、記憶部に記憶された管理対象の計算ノードの計算量を用いて、複数の計算ノードを分割した分割後の各パーティション５１、５２に属する計算ノードの総計算量を生成し、生成した分割後の各パーティションに属する計算ノードの総計算量に基づき、複数の管理ノードから分割後の各パーティションに属する計算ノードを管理する所定階層の管理ノードを割り当て、所定階層の管理ノードを所定階層より上位の階層の管理ノードが管理するように、複数の管理ノードを接続する。【選択図】図７
2014063418.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算ノードと、前記複数の計算ノードのうち管理対象の計算ノードの計算量を記憶する記憶部を有するとともにツリー状に接続された複数の管理ノードと、前記複数の管理ノードの接続を管理する管理装置を含む情報処理システムの管理プログラムにおいて、
前記管理装置に、
前記記憶部に記憶された管理対象の計算ノードの計算量を用いて、前記複数の計算ノードを分割した分割後の各パーティションに属する計算ノードの総計算量を生成させ、
生成した前記分割後の各パーティションに属する計算ノードの総計算量に基づき、前記複数の管理ノードから前記分割後の各パーティションに属する計算ノードを管理する所定階層の管理ノードを割り当てさせ、
前記所定階層の管理ノードを前記所定階層より上位の階層の管理ノードが管理するように、前記複数の管理ノードを接続させる
ことを特徴とする管理プログラム。
【請求項２】
前記所定階層の管理ノードを割り当てさせる処理において、
前記管理装置に、
分割前の各パーティションに割り当てられた所定階層の管理ノードのうち、前記所定階層より上位の階層の管理ノードに共通して接続された管理ノードを、前記分割後の各パーティションに属する計算ノードを管理する管理ノードとして割り当てさせる
ことを特徴とする請求項１記載の管理プログラム。
【請求項３】
前記所定階層の管理ノードを割り当てさせる処理において、
前記管理装置に、
下位の階層から管理ノードを順に割り当てさせ、
前記所定階層より１つ下位の階層に割り当てた管理ノードに接続された管理ノードを、前記所定階層より上位の階層の管理ノードとして割り当てさせる
ことを特徴とする請求項１又は２記載の管理プログラム。
【請求項４】
分割前の各パーティションに属する計算ノードに割り当てられた複数の管理ノードには、管理ノードがツリー状に接続されたノードツリーが複数含まれ、
前記所定階層の管理ノードを割り当てさせる処理において、
前記管理装置に、
前記分割後の各パーティションに属する計算ノードには、分割前におけるノードツリーとは異なるノードツリーから管理ノードを割り当てさせる
ことを特徴とする請求項１乃至３のいずれか１項記載の管理プログラム。
【請求項５】
複数の計算ノードと、前記複数の計算ノードのうち管理対象の計算ノードの計算量を記憶する記憶部を有するとともにツリー状に接続された複数の管理ノードと、前記複数の管理ノードの接続を管理する管理装置を含む情報処理システムの制御方法において、
前記管理装置が、
前記記憶部に記憶された管理対象の計算ノードの計算量を用いて、前記複数の計算ノードを分割した分割後の各パーティションに属する計算ノードの総計算量を生成し、
生成した前記分割後の各パーティションに属する計算ノードの総計算量に基づき、前記複数の管理ノードから前記分割後の各パーティションに属する計算ノードを管理する所定階層の管理ノードを割り当て、
前記所定階層の管理ノードを前記所定階層より上位の階層の管理ノードが管理するように、前記複数の管理ノードを接続する
ことを特徴とする管理方法。
【請求項６】
複数の計算ノードと、前記複数の計算ノードのうち管理対象の計算ノードの計算量を記憶する記憶部を有するとともにツリー状に接続された複数の管理ノードを有する情報処理システムに含まれ、前記複数の管理ノードの接続を管理する管理装置において、
前記記憶部に記憶された管理対象の計算ノードの計算量を用いて、前記複数の計算ノードを分割した分割後の各パーティションに属する計算ノードの総計算量を生成する生成部と、
前記生成部が生成した前記分割後の各パーティションに属する計算ノードの総計算量に基づき、前記複数の管理ノードから前記分割後の各パーティションに属する計算ノードを管理する所定階層の管理ノードを割り当てる割り当て部と、
前記所定階層の管理ノードを前記所定階層より上位の階層の管理ノードが管理するように、前記複数の管理ノードを接続させる接続部と
を有することを特徴とする管理装置。
【請求項７】
複数の計算ノードと、前記複数の計算ノードのうち管理対象の計算ノードの計算量を記憶する記憶部を有するとともにツリー状に接続された複数の管理ノードと、前記複数の管理ノードの接続を管理する管理装置を有する情報処理システムにおいて、
前記管理装置は、
前記記憶部に記憶された管理対象の計算ノードの計算量を用いて、前記複数の計算ノードを分割した分割後の各パーティションに属する計算ノードの総計算量を生成する生成部と、
前記生成部が生成した前記分割後の各パーティションに属する計算ノードの総計算量に基づき、前記複数の管理ノードから前記分割後の各パーティションに属する計算ノードを管理する所定階層の管理ノードを割り当てる割り当て部と、
前記所定階層の管理ノードを前記所定階層より上位の階層の管理ノードが管理するように、前記複数の管理ノードを接続させる接続部と
を有することを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理プログラム、管理方法、管理装置及び情報処理システムに関する。
【背景技術】
【０００２】
近年開発されている大規模な情報処理システム（例えばスーパーコンピュータ等の並列計算機）は、数万台以上の計算ノードから構成されることがある。情報処理システムには、異常の発生等に備え、運用を定常的に監視する機構を設けるが、このような大規模な情報処理システムの場合、監視情報の交換によって発生する通信負荷及び計算ノード上での監視処理の負荷等が、無視できないほど大きくなる。
【０００３】
このような監視処理の負荷を分散するため、従来技術においては、計算ノード群を複数のノードグループに分けると共に、各ノードグループに割り当てる管理ノード群を階層化している。具体的には、最下層の管理ノードが計算ノード群を監視し、最下層の管理ノード以外の管理ノード（すなわち、最下層より上の階層の管理ノード）は１つ下の階層の管理ノードを監視する。この技術においては、最下層の管理ノード単位で計算ノード群の計算量を把握している。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】平井浩一、井口裕次、宇野篤也、黒川原佳、「スーパーコンピュータ「京」の運用管理ソフトウェア」、雑誌FUJITSU、富士通株式会社、2012年5月号、VOL.63、NO.3、p.287-292
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上で述べたような大規模な情報処理システムは、単一の情報処理システムとして利用されるだけでなく、利用者（例えば、企業又は部署など）単位で、パーティションに分割して利用されることがある。
【０００６】
パーティション分割をする際には、分割後の各パーティションに合わせて管理ノードの配置を最適化したいものの、計算ノードの処理能力にはばらつきがある。上記の従来技術においては、最下層の管理ノード単位で計算ノード群の計算量を把握しているため、単純に管理ノードの再配置を行おうとすると、最下層の管理ノードが担当する計算ノードを選択する処理から開始することになる。計算ノードの数は数万以上になることもあるため、この処理には非常に時間がかかる。
【０００７】
従って、１つの側面では、本発明の目的は、パーティション分割をする際に、管理ノードを容易に再配置できるようにするための技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明に係る管理方法は、複数の計算ノードと、複数の計算ノードのうち管理対象の計算ノードの計算量を記憶する記憶部を有するとともにツリー状に接続された複数の管理ノードと、複数の管理ノードの接続を管理する管理装置を含む情報処理システムにおいて実行される。そして、本管理方法は、上で述べた管理装置が、記憶部に記憶された管理対象の計算ノードの計算量を用いて、複数の計算ノードを分割した分割後の各パーティションに属する計算ノードの総計算量を生成し、生成した分割後の各パーティションに属する計算ノードの総計算量に基づき、複数の管理ノードから分割後の各パーティションに属する計算ノードを管理する所定階層の管理ノードを割り当て、所定階層の管理ノードを所定階層より上位の階層の管理ノードが管理するように、複数の管理ノードを接続する処理を含む。
【発明の効果】
【０００９】
パーティション分割をする際に、管理ノードを容易に再配置できるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施のシステムの概要を示す図である。
【図２】図２は、クラスタ管理装置の機能ブロック図である。
【図３】図３は、管理ノード及び計算ノードの機能ブロック図である。
【図４】図４は、パーティション情報格納部に格納されるデータの一例を示す図である。
【図５】図５は、ノード情報格納部に格納されるデータの一例を示す図である。
【図６】図６は、ポリシー情報格納部に格納されるデータの一例を示す図である。
【図７】図７は、変更後のシステムの概要を示す図である。
【図８】図８は、変更前のクラスタにおける管理ノードへの識別情報の付与の仕方の一例を示す図である。
【図９】図９は、メインの処理フローを示す図である。
【図１０】図１０は、変更処理の処理フローを示す図である。
【図１１】図１１は、規則に従った管理ノードの割り当て方法について説明するための図である。
【図１２】図１２は、規則に従った管理ノードの割り当て方法について説明するための図である。
【図１３】図１３は、変更処理の処理フローを示す図である。
【図１４】図１４は、規則に従った管理ノードの割り当て方法について説明するための図である。
【図１５】図１５は、規則に従った管理ノードの割り当て方法について説明するための図である。
【図１６】図１６は、変更後のクラスタを示す図である。
【図１７】図１７は、メインの処理フローを示す図である。
【図１８】図１８は、ポリシー情報格納部に格納されるデータの一例を示す図である。
【図１９】図１９は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１１】
図１に、本実施の形態のシステム概要を示す。本実施の形態における主要な処理を実施するクラスタ管理装置１は、管理対象のクラスタ３０に接続されている。クラスタ３０は、管理ノード３０Ａ乃至３０Ｈを含むノードツリーと、管理ノード３０Ｉ乃至３０Ｐを含むノードツリーとを含む。クラスタ３０は、計算ノード５０Ａ乃至５０Ｌを含むパーティション５０に接続されている。なお、本実施の形態の処理と直接関係しないので図示していないが、計算ノード５０Ａ乃至５０Ｌもクラスタを形成する場合がある。
【００１２】
クラスタ３０に含まれる管理ノード３０Ａ乃至３０Ｐは、パーティション５０に含まれる計算ノード５０Ａ乃至５０Ｌを管理する処理（例えば、故障の検出、ジョブの実行プログラムの割り当て、及びソフトウェアの更新等）を行う。但し、計算ノード５０Ａ乃至５０Ｌを直接管理しているのは、各ノードツリーにおける最も下の階層の管理ノード（すなわち、管理ノード３０Ｅ乃至３０Ｈ及び管理ノード３０Ｌ乃至３０Ｐ）である。最も下の階層の管理ノードを直接管理しているのは、管理ノード３０Ｂ乃至３０Ｄ並びに管理ノード３０Ｊ及び３０Ｋである。最も下の階層より１つ上の階層の管理ノードを直接管理しているのは、管理ノード３０Ａ及び３０Ｉである。
【００１３】
計算ノード５０Ａ乃至５０Ｌの各々は、ジョブを実行する。クラスタ３０における管理ノードの数及び階層構造は、パーティション５０における計算ノードの数（すなわち、計算ノードによる計算の総量）に応じて変更される。
【００１４】
図２に、クラスタ管理装置１の機能ブロック図を示す。クラスタ管理装置１は、パーティション情報格納部１０１と、ノード情報格納部１０３と、ポリシー情報格納部１０５と、変更部１０９及び設定部１１１を含む管理部１０７とを含む。
【００１５】
変更部１０９は、パーティション情報格納部１０１に格納されているデータ、ノード情報格納部１０３に格納されているデータ及びポリシー情報格納部１０５に格納されているデータを用いて処理を行い、処理結果を設定部１１１に出力する。設定部１１１は、変更部１０９から受け取った処理結果を用いて、クラスタ３０における管理ノード３０Ａ乃至３０Ｐ及びパーティション５０における計算ノード５０Ａ乃至５０Ｌに対し、クラスタの構成変更のためのノード情報を送信する。
【００１６】
図３に、管理ノード及び計算ノードの機能ブロック図を示す。管理ノード及び計算ノードは、メモリに常駐する常駐プログラムの一種である変更デーモン７１を実行する。また、管理ノード及び計算ノードは、ノード情報格納部７３を含む。変更デーモン７１は、図示しないプロセッサにより実行され、ノード情報をクラスタ管理装置１における設定部１１１から受信した場合に、受信したノード情報をノード情報格納部７３に格納するプログラムである。また、変更デーモン７１は、受信したノード情報に従い、ノードの再設定及び再起動等を行う。ここで、各管理ノードは、管理対象の計算ノードから、当該管理対象の各計算ノードが実行するタスク、プロセス又はタスク等の数である「計算量」をノード情報に含めて受信し、ノード情報格納部７３に格納する。また、各管理ノードは、管理対象の計算ノードが複数である場合には、当該複数の計算ノードを計算ノード群として管理を行い、管理対象のノード情報について、各計算ノードから受信した「計算量」の総和である「総計算量」を算出し、算出した「総計算量」をノード情報格納部７３に格納する。
【００１７】
図４に、クラスタ管理装置１のパーティション情報格納部１０１に格納されるデータの一例を示す。図４の例では、パーティションの識別情報と、そのパーティションを管理する管理ノードの識別情報とが格納される。使用されない管理ノードは、「Vacancy」に対応付けられている。パーティションの変更が行われた場合には、変更部１０９によってパーティション情報格納部１０１に格納されたデータが更新される。
【００１８】
図５に、クラスタ管理装置１のノード情報格納部１０３に格納されるデータの一例を示す。図５は、管理ノードについてのノード情報の一例を示しており、当該ノード情報には、ホスト名と、管理ネットワークの情報と、制御ネットワークの情報と、親ノードの識別情報と、子ノードの識別情報と、階層レベルと、ノード種別と、自ノードの識別情報とが含まれる。ノード情報格納部１０３には、図１に示したシステムにおける各管理ノード及び各計算ノードについてのノード情報が格納される。パーティションの変更が行われた場合には、変更部１０９によってノード情報格納部１０３に格納されているデータが更新される。
【００１９】
なお、クラスタ管理装置１は、クラスタ３０における各管理ノード及びパーティション５０における各計算ノードについてのノード情報をノード情報格納部１０３において管理する。一方、各管理ノード及び各計算ノードは、自ノードについてのノード情報をノード情報格納部７３において管理する。
【００２０】
図６に、クラスタ管理装置１のポリシー情報格納部１０５に格納されるデータの一例を示す。図６の例では、計算ノードの数の範囲毎に、当該計算ノードを管理するクラスタの各階層のノード数が格納される。すなわち、計算ノード群による計算の総量が多いほど、最も下の階層の管理ノードの数が多くなり、管理ノードのクラスタはより大規模になる。管理ノードが行うべき処理の量が増えるためである。
【００２１】
次に、図７乃至図１７を用いて、本実施の形態のシステムの動作について説明する。以下では、図１に示したシステムを、図７に示すように変更する際の動作を例として説明をする。すなわち、パーティション５０をパーティション５１及び５２に分割し、それに伴い、クラスタ３０を、パーティション５１を管理するクラスタ３１及びパーティション５２を管理するクラスタ３２に分割する。
【００２２】
また、説明を簡単にするため、変更前のクラスタを「クラスタＤ」と呼び、クラスタＤにおける各管理ノードには、図８に示すように階層レベル及び階層内の位置を特定するための識別情報を付与する。例えば、管理ノードに「Ｄ（１，２）」という識別情報が付与されている場合には、その管理ノードは第１階層に属し且つ第１階層における第２番目の管理ノードである。そして、クラスタＤを分割することにより得られるクラスタを、クラスタＡ（図７におけるクラスタ３１に相当）及びクラスタＢ（図７におけるクラスタ３２に相当）とする。
【００２３】
まず、クラスタ管理装置１における変更部１０９は、ユーザからパーティション変更指示の入力を受け付ける（図９：ステップＳ１）。パーティション変更指示には、変更前のパーティションの識別情報、変更後のパーティションに含まれる計算ノードの数及び変更後のパーティションの識別情報等が含まれる。
【００２４】
変更部１０９は、パーティション情報格納部１０１から、変更前のパーティションの識別情報に対応する管理ノードの識別情報を取得する（ステップＳ３）。すなわち、変更前のパーティションを管理する管理ノードの識別情報を取得する。
【００２５】
変更部１０９は、ノード情報格納部１０３から、ステップＳ３において取得した管理ノードの識別情報に対応するノード情報を取得する（ステップＳ５）。すなわち、変更前のクラスタに含まれる管理ノードのノード情報を取得する。
【００２６】
変更部１０９は、規則１に従い、変更後のパーティションに含まれる計算ノードの数（すなわち、計算ノードによる計算の総量）に基づき変更後のクラスタの階層情報（すなわち、各階層の管理ノード数）をポリシー情報格納部１０５から取得する（ステップＳ７）。
【００２７】
本実施の形態においては、以下のような規則に従って、変更前のクラスタから管理ノードを選び出し、変更後のクラスタに割り当てる。なお、規則を適用する際の優先順位は、規則の番号が小さいほど高い。
【００２８】
１．変更後のクラスタにおける各階層の管理ノードの数は、ポリシー情報格納部１０５に格納されたデータを用いて決定する。
【００２９】
２．変更後のクラスタの管理ノードは、最も下の階層から順に決定する。
【００３０】
３．変更後のクラスタにおける特定の階層の管理ノードを決定する際、異なるクラスタに属する管理ノードには、変更前のクラスタにおいて異なるノードツリー（すなわち、最も上の階層の管理ノードが異なるノードツリー）に属する管理ノードを優先的に割り当てる。変更前のクラスタに、最も上の階層の管理ノードが異なるノードツリーが無い場合には、最も上の階層より１つ下の階層の管理ノードが異なるノードツリーを特定し、特定されたノードツリーに属する管理ノードを割り当てる。
【００３１】
４．変更後のクラスタにおける特定の階層の管理ノードを決定する際、同じクラスタに属する管理ノードには、変更前のクラスタにおける管理ノードのうち親ノード（すなわち、その管理ノードに接続された管理ノードであって１つ上の階層の管理ノード）が同じである管理ノード（「兄弟ノード」と呼ぶ）を優先的に割り当てる。兄弟ノードが無い場合には、変更前のクラスタにおける管理ノードのうち祖父母ノード（すなわち、親ノードに接続された管理ノードであって親ノードの１つ上の階層の管理ノード）が同じである管理ノード（「孫ノード」と呼ぶ）を優先的に割り当てる。
【００３２】
５．規則３及び規則４によって特定の階層の管理ノードを決定した後、１つ上の階層の管理ノードを決定する際、その階層の管理ノードには、特定の階層の管理ノードに割り当てた管理ノードの親ノードを優先的に割り当てる。特定の階層の管理ノードに割り当てた管理ノードの親ノードが無い場合には、さらに１つ上の階層において、特定の階層の管理ノードに割り当てた管理ノードの共通の祖先になっている管理ノードの配下にある管理ノードのうち、未割り当ての管理ノードを最も下の階層から順に探索する。そのような管理ノードも無い場合には、変更前のクラスタにおいて別の管理ノードの配下にある管理ノードのうち、未割り当ての管理ノードを最下層から順に探索する。
【００３３】
図９の説明に戻り、変更部１０９は、変更処理を実施する（ステップＳ９）。変更処理については、図１０乃至図１６を用いて説明する。
【００３４】
まず、変更部１０９は、変更後の各クラスタ（ここでは、クラスタＡ及びＢ）について、規則２及び３に従い、最も下の階層の管理ノードの候補Ｃｍ（ｍは最も下の階層の階層レベルを表す自然数。本実施の形態の例の場合、ｍ＝３）を決定する（図１０：ステップＳ３１）。
【００３５】
ステップＳ３１においては、図１１に示すように、規則２に従い、クラスタＡ及びクラスタＢにおける最も下の階層の管理ノード群（管理ノード群Ａ３及び管理ノード群Ｂ３）の候補を決定する。また、規則３に従い、最も上の階層の管理ノードが管理ノードＤ（１，１）であるノードツリーの管理ノードをクラスタＡに割り当て、最も上の階層の管理ノードが管理ノードＤ（１，２）であるノードツリーの管理ノードをクラスタＢに割り当てる。
【００３６】
このようにすれば、クラスタＤが複数のノードツリーを有する場合には、その複数のノードツリーを活かしつつ、複数のクラスタを構築できるようになる。
【００３７】
図１０の説明に戻り、変更部１０９は、変更後のクラスタ（すなわち、クラスタＡ及びＢ）のうち未処理のクラスタを１つ特定する（ステップＳ３３）。以下では、説明を簡単にするため、ステップＳ３３において特定されたクラスタをクラスタＸと呼ぶ。
【００３８】
変更部１０９は、階層レベルを表す変数ｎ（ｎは自然数）をｎ＝ｍと設定する（ステップＳ３５）。
【００３９】
変更部１０９は、ｎ＝ｍであるか判断する（ステップＳ３７）。ｎ＝ｍではない場合（ステップＳ３７：Ｎｏルート）、最も下の階層以外の階層であるので、処理は端子Ｂを介して図１３のステップＳ５１に移行する。
【００４０】
ｎ＝ｍである場合（ステップＳ３７：Ｙｅｓルート）、最も下の階層であるので、変更部１０９は、ステップＳ７において取得した各階層の管理ノード数から、第ｎ階層の管理ノード群Ｘｎの管理ノード数を特定する（ステップＳ３９）。
【００４１】
変更部１０９は、（第ｎ階層のノード群Ｘｎの管理ノード数）＞（候補の管理ノード群Ｃｎの管理ノード数）であるか判断する（ステップＳ４１）。（第ｎ階層のノード群Ｘｎの管理ノード数）＞（候補の管理ノード群Ｃｎの管理ノード数）である場合（ステップＳ４１：Ｙｅｓルート）、管理ノードが足りないので、変更部１０９は、候補の管理ノード群Ｃｎ＝Ｃｎ＋Ｃ（ｎ−１）とする（ステップＳ４３）。すなわち、１つ上の階層の管理ノード群の候補を加える。ステップＳ４３においては、例えば、候補の管理ノード群Ｃｎが属する階層の１つ上の階層のノード群をＣ（ｎ−１）とする。
【００４２】
変更部１０９は、規則４に従い、第ｎ階層のノード群Ｘｎの管理ノードを、候補の管理ノード群Ｃｎから割り当てる（ステップＳ４５）。ステップＳ４５の処理によって、例えば図１２に示すように割り当てが行われる。すなわち、管理ノードＤ（３，３）を管理ノードＡ（３，１）とし、管理ノードＤ（３，４）を管理ノードＡ（３，２）とし、管理ノードＤ（３，５）を管理ノードＢ（３，１）とし、管理ノードＤ（３，６）を管理ノードＢ（３，２）とし、管理ノードＤ（３，７）を管理ノードＢ（３，３）とし、管理ノードＤ（３，８）を管理ノードＢ（３，４）とする。なお、単純に規則４に従えば、管理ノードＤ（３，１）を管理ノードＡ（３，１）とし、管理ノードＤ（３，２）を管理ノードＡ（３，２）とすることになる。しかしながら、クラスタＡにおいては、最も下の階層に属するノードとその１つ上の階層に属するノードとが１対１で対応しているので、例外的に規則４を適用していない。
【００４３】
このように、共通の親ノードを有する兄弟ノードを利用すれば、変更前のクラスタにおけるノード間の親子関係を活かした割り当てを行えるようになる。
【００４４】
図１０の説明に戻り、変更部１０９は、クラスタＸについて処理が完了したか判断する（ステップＳ４７）。クラスタＸについて処理が完了していない場合（ステップＳ４７：Ｎｏルート）、次の階層について処理するため、ｎ＝ｎ−１と設定し（ステップＳ５０）、ステップＳ３７の処理に戻る。
【００４５】
一方、クラスタＸについて処理が完了した場合（ステップＳ４７：Ｙｅｓルート）、変更部１０９は、未処理のクラスタが有るか判断する（ステップＳ４９）。未処理のクラスタが有る場合（ステップＳ４９：Ｙｅｓルート）、次のクラスタについて処理するため、ステップＳ３３に戻る。未処理のクラスタが無い場合（ステップＳ４９：Ｎｏルート）、元の処理に戻る。
【００４６】
次に、図１３乃至図１６を用いて、端子Ｂ以降の処理について説明する。まず、変更部１０９は、第ｎ階層の候補の管理ノード群Ｃｎを、規則５に従い、第（ｎ＋１）階層の割り当て済み管理ノードの親ノードから特定する（図１３：ステップＳ５１）。
【００４７】
ステップＳ５１においては、例えば図１４に示すように、クラスタＡの第２階層に割り当てる管理ノードを、第３階層に割り当てた管理ノードの親ノード（管理ノードＤ（２，２）及び管理ノードＤ（２，３））とする。また、クラスタＢの第２階層に割り当てる管理ノードを、第３階層に割り当てた管理ノードの親ノード（管理ノードＤ（２，４）及び管理ノードＤ（２，５））とする。但し、クラスタＢの第２階層の管理ノード数は３であり、管理ノードが足りないので、以下で説明するステップＳ５５の処理によって、第３階層に属する管理ノードＤ（３，９）を第２階層に割り当てる。
【００４８】
このような割り当てを行うことによって、クラスタＤにおける親子関係をそのままクラスタＡ及びクラスタＢにおいても利用できるようになるので、設定の変更を少なくすることができるようになる。
【００４９】
図１３の説明に戻り、変更部１０９は、ステップＳ７において取得した各階層の管理ノード数から、第ｎ階層の管理ノード群Ｘｎの管理ノード数を特定する（ステップＳ５３）。変更部１０９は、（第ｎ階層のノード群Ｘｎの管理ノード数）＞（候補の管理ノード群Ｃｎの管理ノード数）であるか判断する（ステップＳ５５）。（第ｎ階層のノード群Ｘｎの管理ノード数）＞（候補の管理ノード群Ｃｎの管理ノード数）である場合（ステップＳ５５：Ｙｅｓルート）、候補Ｃｎの管理ノード数が足りないので、変更部１０９は、規則５に従い、第ｎ階層より下の階層における未割り当ての管理ノードをＣｎに追加する（ステップＳ５７）。一方、（第ｎ階層のノード群Ｘｎの管理ノード数）＞（候補の管理ノード群Ｃｎの管理ノード数）ではない場合（ステップＳ５５：Ｎｏルート）、処理は端子Ｃを介して図１０のステップＳ４５に移行する。
【００５０】
変更部１０９は、（第ｎ階層のノード群Ｘｎの管理ノード数）＞（候補の管理ノード群Ｃｎの管理ノード数）であるか判断する（ステップＳ５９）。（第ｎ階層のノード群Ｘｎの管理ノード数）＞（候補の管理ノード群Ｃｎの管理ノード数）である場合（ステップＳ５９：Ｙｅｓルート）、管理ノードが足りないので、変更部１０９は、規則５に従い、第ｎ階層より上の階層における未割り当ての管理ノードをＣｎに追加する（ステップＳ６１）。一方、（第ｎ階層のノード群Ｘｎの管理ノード数）＞（候補の管理ノード群Ｃｎの管理ノード数）ではない場合（ステップＳ５９：Ｎｏルート）、処理は端子Ｃを介して図１０のステップＳ４５に移行する。
【００５１】
変更部１０９は、（第ｎ階層のノード群Ｘｎの管理ノード数）＞（候補の管理ノード群Ｃｎの管理ノード数）であるか判断する（ステップＳ６３）。（第ｎ階層のノード群Ｘｎの管理ノード数）＞（候補の管理ノード群Ｃｎの管理ノード数）である場合（ステップＳ６３：Ｙｅｓルート）、管理ノードが足りないので、変更部１０９は、規則５に従い、変更前のクラスタにおいて異なるノードツリーに属する管理ノードのうち未割り当ての管理ノードをＣｎに追加する（ステップＳ６５）。一方、（第ｎ階層のノード群Ｘｎの管理ノード数）＞（候補の管理ノード群Ｃｎの管理ノード数）ではない場合（ステップＳ６３：Ｎｏルート）、処理は端子Ｃを介して図１０のステップＳ４５に移行する。
【００５２】
図１４のように第２階層の管理ノードを決定した後、第１階層の管理ノードを決定する場合、クラスタＡについては、管理ノードＡ（２，２）及び管理ノードＡ（２，３）の親ノードであるＤ（１，１）を割り当てることになる。また、クラスタＢについては、管理ノードＢ（２，１）及び管理ノードＢ（２，２）の親ノードであるＤ（１，２）を割り当てることになる。しかしながら、クラスタＢについては、第１階層の管理ノードの数が２でなければならないので、管理ノードが足りないことになる。そこで、ステップＳ６５においては、例えば図１５に示すように、異なるノードツリーに属する管理ノードのうち未割り当ての管理ノードを管理ノードＢ（１，２）として利用する。
【００５３】
図１３の説明に戻り、変更部１０９は、（第ｎ階層のノード群Ｘｎの管理ノード数）＞（候補の管理ノード群Ｃｎの管理ノード数）であるか判断する（ステップＳ６７）。（第ｎ階層のノード群Ｘｎの管理ノード数）＞（候補の管理ノード群Ｃｎの管理ノード数）である場合（ステップＳ６７：Ｙｅｓルート）、これ以上追加できる管理ノードは無いので、変更部１０９は、エラーメッセージを表示するためのデータを生成し、表示装置等に出力する（ステップＳ６９）。そして、元の処理に戻る。一方、（第ｎ階層のノード群Ｘｎの管理ノード数）＞（候補の管理ノード群Ｃｎの管理ノード数）ではない場合（ステップＳ６７：Ｎｏルート）、処理は端子Ｃを介して図１０のステップＳ４５に移行する。
【００５４】
以上のような処理を実施すれば、変更後のパーティションに含まれる計算ノード群の総計算量に応じた適切なクラスタを構築できるようになる。例えば図８に示したシステムに対して上で述べたような処理を行うと、図１６に示すようなシステムが構築される。ここで、各計算ノードの「計算量」とは、例えば、各計算ノードが実行するタスク、プロセス又はタスク等の数であり、計算ノード群の「総計算量」とは、例えば、計算ノード群に含まれる複数の計算ノードが実行するタスク、プロセス又はタスク等の数の総和である。そして、各計算ノードの「計算量」は、例えば、各計算ノードを管理する最下層の管理ノードが把握することができ、計算ノード群の「総計算量」は、計算ノード群を管理する最下層の管理ノードが把握することができる。なお、未割り当ての管理ノードは、別のクラスタに割り当てられることもあれば、処理負荷に応じてクラスタＡ及びクラスタＢに追加されることもある。
【００５５】
図９の説明に戻り、変更部１０９は、変更処理（Ｓ９）の結果に基づき、ノード情報格納部１０３に格納されたデータを更新する（ステップＳ１１）。ステップＳ１１の処理により、変更後の接続関係等がノード情報格納部１０３に格納されたノード情報に反映される。
【００５６】
また、変更部１０９は、変更処理（Ｓ９）の結果に基づき、パーティション情報格納部１０１に格納されたデータを更新する（ステップＳ１３）。変更処理によってパーティションが分割されているためである。そして処理は端子Ａを介して図１７のステップＳ１５に移行する。
【００５７】
図１７の説明に移行し、設定部１１１は、各管理ノード及び各計算ノードに対し、ノード情報格納部１０３に格納されたノード情報を送信する（ステップＳ１５）。ステップＳ１５においては、各管理ノード及び各計算ノードに対してそのノード用のノード情報を送信する。
【００５８】
各管理ノード及び各計算ノードにおける変更デーモン７１は、クラスタ管理装置１からノード情報を受信すると、ノード情報格納部７３に格納されているノード情報を更新する（ステップＳ１７）。
【００５９】
変更デーモン７１は、ノード情報格納部７３に格納されたノード情報を用いて、自ノードに対して再設定を実行する（ステップＳ１９）。ステップＳ１９においては、管理ノードであれば、他のノードとの間の接続についての設定及び管理する計算ノードについての設定等を行う。また、計算ノードであれば、他のノードとの間の接続についての設定及び実行するジョブについての設定等を行う。
【００６０】
変更デーモン７１は、ステップＳ１９における再設定の結果再起動を行った方がよい場合には、自ノードの再起動を実行する（ステップＳ２１）。ステップＳ２１の処理は、再起動を行わなくてもよい場合には実行されない処理であるので、図１７におけるステップＳ２１のブロックは点線で示されている。
【００６１】
変更デーモン７１は、自ノードの再設定が完了すると、クラスタ管理装置１に対し、変更完了通知を送信する（ステップＳ２３）。
【００６２】
クラスタ管理装置１における設定部１１１は、各管理ノード及び各計算ノードから変更完了通知を受信する（ステップＳ２５）。
【００６３】
設定部１１１は、いずれの管理ノード及びいずれの計算ノードからも変更完了通知を受信したことを確認すると、変更完了を示す情報を表示装置等に表示する（ステップＳ２７）。これによって、ユーザは、パーティションの変更が完了したことを確認することができる。
【００６４】
以上のような処理を実施すれば、各管理ノード及び各計算ノードに構成変更のための設定を行わせることができるので、階層構造を有するクラスタの構成変更を自動的に行えるようになる。よって、構成変更の際における作業者の負担を減らし、構成変更に要するコストを削減することができるようになる。
【００６５】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したクラスタ管理装置１、管理ノード及び計算ノードの機能ブロック構成は必ずしも実際のプログラムモジュール構成に対応するものではない。
【００６６】
また、上で説明した各テーブルの構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００６７】
また、上で述べた例では、１つのクラスタから２つのクラスタを構築する例を説明したが、構築するクラスタの数が１つであっても３つ以上であっても本実施の形態の処理を同様に適用することが可能である。
【００６８】
また、上で述べた例では、階層が３つのクラスタを構築する例を示したが、階層の数は３つに限られない。例えば３階層以上の階層構造を定義するポリシー情報（例えば図１８に示すようなデータ）をポリシー情報格納部１０５に予め格納しておけば、３階層以上のクラスタを構築することができる。また、階層の数が３より少ないクラスタ（例えば２階層）であっても、本実施の形態の処理を同様に適用可能である。
【００６９】
なお、上で述べたクラスタ管理装置１、管理ノード及び計算ノードは、コンピュータ装置であって、図１９に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００７０】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００７１】
本実施の形態に係る管理方法は、（Ａ）最下層の管理ノードの数毎に該最下層の管理ノードが管理する計算ノードの総計算量を格納するデータ格納部を用いて、分割後の各パーティションに含まれる計算ノードの総計算量に合うように、該計算ノードを管理する最下層の管理ノードを割り当て、（Ｂ）分割後の各パーティションに割り当てられた最下層の管理ノードを該最下層より上の階層の管理ノードが管理するように、管理ノードの再配置を行う処理を含む。
【００７２】
このようにすれば、計算ノードを再配置してから管理ノードを再配置する方法に比べ、管理ノードの再配置を容易に行うことができるようになる。
【００７３】
また、最下層の管理ノードを割り当てる処理において、（ａ１）分割前のパーティションに割り当てられた最下層の管理ノードのうち該最下層より上の階層の管理ノードを共有する管理ノードを、優先的に同じパーティションに割り当てるようにしてもよい。このようにすれば、最下層の管理ノードと該最下層より１つ上の階層の管理ノードとの間の接続関係が活かされるので、再配置に伴って発生する設定の変更等を少なくすることができるようになる。
【００７４】
また、再配置を行う処理において、（ｂ１）下の階層から順に管理ノードの割り当てを行わせ、（ｂ２）最下層より上の階層には、該階層より１つ下の階層に割り当てた管理ノードに接続されている管理ノードを優先的に割り当てさせるようにしてもよい。元の階層構造を活かすことができるので、再配置に伴って発生する設定の変更等を少なくすることができるようになる。
【００７５】
また、分割前のパーティションに割り当てられた管理ノード群には、複数のノードツリーが含まれるようにしてもよい。そして、再配置を行う処理において、（ｂ３）分割後の各パーティションには、異なるノードツリー由来の管理ノードを割り当てさせるようにしてもよい。このようにすれば、元のノードツリーの構造を活かすことができるので、再配置に伴って発生する設定の変更等を少なくすることができるようになる。
【００７６】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００７７】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７８】
（付記１）
複数の計算ノードと、前記複数の計算ノードのうち管理対象の計算ノードの計算量を記憶する記憶部を有するとともにツリー状に接続された複数の管理ノードと、前記複数の管理ノードの接続を管理する管理装置を含む情報処理システムの管理プログラムにおいて、
前記管理装置に、
前記記憶部に記憶された管理対象の計算ノードの計算量を用いて、前記複数の計算ノードを分割した分割後の各パーティションに属する計算ノードの総計算量を生成させ、
生成した前記分割後の各パーティションに属する計算ノードの総計算量に基づき、前記複数の管理ノードから前記分割後の各パーティションに属する計算ノードを管理する所定階層の管理ノードを割り当てさせ、
前記所定階層の管理ノードを前記所定階層より上位の階層の管理ノードが管理するように、前記複数の管理ノードを接続させる
ことを特徴とする管理プログラム。
【００７９】
（付記２）
前記所定階層の管理ノードを割り当てさせる処理において、
前記管理装置に、
分割前の各パーティションに割り当てられた所定階層の管理ノードのうち、前記所定階層より上位の階層の管理ノードに共通して接続された管理ノードを、前記分割後の各パーティションに属する計算ノードを管理する管理ノードとして割り当てさせる
ことを特徴とする請求項１記載の管理プログラム。
【００８０】
（付記３）
前記所定階層の管理ノードを割り当てさせる処理において、
前記管理装置に、
下位の階層から管理ノードを順に割り当てさせ、
前記所定階層より１つ下位の階層に割り当てた管理ノードに接続された管理ノードを、前記所定階層より上位の階層の管理ノードとして割り当てさせる
ことを特徴とする請求項１又は２記載の管理プログラム。
【００８１】
（付記４）
分割前の各パーティションに属する計算ノードに割り当てられた複数の管理ノードには、管理ノードがツリー状に接続されたノードツリーが複数含まれ、
前記所定階層の管理ノードを割り当てさせる処理において、
前記管理装置に、
前記分割後の各パーティションに属する計算ノードには、分割前におけるノードツリーとは異なるノードツリーから管理ノードを割り当てさせる
ことを特徴とする請求項１乃至３のいずれか１項記載の管理プログラム。
【００８２】
（付記５）
複数の計算ノードと、前記複数の計算ノードのうち管理対象の計算ノードの計算量を記憶する記憶部を有するとともにツリー状に接続された複数の管理ノードと、前記複数の管理ノードの接続を管理する管理装置を含む情報処理システムの制御方法において、
前記管理装置が、
前記記憶部に記憶された管理対象の計算ノードの計算量を用いて、前記複数の計算ノードを分割した分割後の各パーティションに属する計算ノードの総計算量を生成し、
生成した前記分割後の各パーティションに属する計算ノードの総計算量に基づき、前記複数の管理ノードから前記分割後の各パーティションに属する計算ノードを管理する所定階層の管理ノードを割り当て、
前記所定階層の管理ノードを前記所定階層より上位の階層の管理ノードが管理するように、前記複数の管理ノードを接続する
ことを特徴とする管理方法。
【００８３】
（付記６）
複数の計算ノードと、前記複数の計算ノードのうち管理対象の計算ノードの計算量を記憶する記憶部を有するとともにツリー状に接続された複数の管理ノードを有する情報処理システムに含まれ、前記複数の管理ノードの接続を管理する管理装置において、
前記記憶部に記憶された管理対象の計算ノードの計算量を用いて、前記複数の計算ノードを分割した分割後の各パーティションに属する計算ノードの総計算量を生成する生成部と、
前記生成部が生成した前記分割後の各パーティションに属する計算ノードの総計算量に基づき、前記複数の管理ノードから前記分割後の各パーティションに属する計算ノードを管理する所定階層の管理ノードを割り当てる割り当て部と、
前記所定階層の管理ノードを前記所定階層より上位の階層の管理ノードが管理するように、前記複数の管理ノードを接続させる接続部と
を有することを特徴とする管理装置。
【００８４】
（付記７）
複数の計算ノードと、前記複数の計算ノードのうち管理対象の計算ノードの計算量を記憶する記憶部を有するとともにツリー状に接続された複数の管理ノードと、前記複数の管理ノードの接続を管理する管理装置を有する情報処理システムにおいて、
前記管理装置は、
前記記憶部に記憶された管理対象の計算ノードの計算量を用いて、前記複数の計算ノードを分割した分割後の各パーティションに属する計算ノードの総計算量を生成する生成部と、
前記生成部が生成した前記分割後の各パーティションに属する計算ノードの総計算量に基づき、前記複数の管理ノードから前記分割後の各パーティションに属する計算ノードを管理する所定階層の管理ノードを割り当てる割り当て部と、
前記所定階層の管理ノードを前記所定階層より上位の階層の管理ノードが管理するように、前記複数の管理ノードを接続させる接続部と
を有することを特徴とする情報処理システム。
【符号の説明】
【００８５】
１  クラスタ管理装置    １０１  パーティション情報格納部
１０３  ノード情報格納部    １０５  ポリシー情報格納部
１０７  管理部    １０９  変更部
１１１  設定部    ３０乃至３２  クラスタ
３０Ａ乃至３０Ｐ，３１Ａ乃至３１Ｅ，３２Ａ乃至３２Ｉ  管理ノード
５０乃至５２  パーティション
５０Ａ乃至５０Ｌ，５１Ａ乃至５１Ｄ，５２Ａ乃至５２Ｄ  計算ノード
【図１】
2014063418.tif 000003
【図２】
2014063418.tif 000004
【図３】
2014063418.tif 000005
【図４】
2014063418.tif 000006
【図５】
2014063418.tif 000007
【図６】
2014063418.tif 000008
【図７】
2014063418.tif 000009
【図８】
2014063418.tif 000010
【図９】
2014063418.tif 000011
【図１０】
2014063418.tif 000012
【図１１】
2014063418.tif 000013
【図１２】
2014063418.tif 000014
【図１３】
2014063418.tif 000015
【図１４】
2014063418.tif 000016
【図１５】
2014063418.tif 000017
【図１６】
2014063418.tif 000018
【図１７】
2014063418.tif 000019
【図１８】
2014063418.tif 000020
【図１９】
2014063418.tif 000021